From 43aa02ccbd484d8c7cecec7c38c446847b34e007 Mon Sep 17 00:00:00 2001 From: xengineering Date: Fri, 19 Aug 2022 10:51:24 +0200 Subject: Implement new datastructures --- data.h | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) (limited to 'data.h') diff --git a/data.h b/data.h index 6fabbe6..6b6e936 100644 --- a/data.h +++ b/data.h @@ -1,2 +1,36 @@ -void add_roster_item(const char* jid, const char* subscription, const char* name); -void* data_get_chat_page(void* roster_item_widget); +#ifndef DATA_H +#define DATA_H + +// https://www.rfc-editor.org/rfc/rfc6121#section-2.1.2.5 +typedef enum { + SUB_NONE, + SUB_TO, + SUB_FROM, + SUB_BOTH +} subscription_t; + +typedef struct _message_t { + char* content; + char* sender_jid; + struct _message_t* next; + void* widget; +} message_t; + +typedef struct _chat_t { + message_t* messages; + void* widget; +} chat_t; + +typedef struct _roster_item_t { + char* name; // could be NULL + char* jid; + subscription_t sub; + chat_t* chat; + struct _roster_item_t* next; + void* widget; +} roster_item_t; + +void data_add_roster_item(const char* jid, const char* subscription, + const char* name); +void data_add_incoming_message(const char* sender_jid, const char* content); +#endif -- cgit v1.2.3-70-g09d2