about summary refs log tree commit diff stats
path: root/src/xmpp/stanza.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/xmpp/stanza.h')
-rw-r--r--src/xmpp/stanza.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/xmpp/stanza.h b/src/xmpp/stanza.h
index 1a83c5a6..d6a3b042 100644
--- a/src/xmpp/stanza.h
+++ b/src/xmpp/stanza.h
@@ -157,6 +157,19 @@
 
 #define STANZA_DATAFORM_SOFTWARE "urn:xmpp:dataforms:softwareinfo"
 
+typedef struct presence_stanza_t {
+    Jid *jid;
+    char *show;
+    char *status;
+    int priority;
+    GDateTime *last_activity;
+} XMPPPresence;
+
+typedef enum {
+    STANZA_PARSE_ERROR_NO_FROM,
+    STANZA_PARSE_ERROR_INVALID_FROM
+} stanza_parse_error_t;
+
 xmpp_stanza_t* stanza_create_bookmarks_storage_request(xmpp_ctx_t *ctx);
 
 xmpp_stanza_t* stanza_create_chat_state(xmpp_ctx_t *ctx,
@@ -261,4 +274,8 @@ char* stanza_get_muc_destroy_reason(xmpp_stanza_t *stanza);
 char* stanza_get_actor(xmpp_stanza_t *stanza);
 char* stanza_get_reason(xmpp_stanza_t *stanza);
 
+Resource* stanza_resource_from_presence(XMPPPresence *presence);
+XMPPPresence* stanza_parse_presence(xmpp_stanza_t *stanza, int *err);
+void stanza_free_presence(XMPPPresence *presence);
+
 #endif