Mercurial > pidgin
comparison libpurple/protocols/jabber/data.h @ 24058:305fac6af8f9
Updated to use latest spec. in XEP-0231
New namespace. Cache data globally in a running instance based on CID.
Set the PNG compression level param when saving a custom smiley from
GTKIMHTML.
author | Marcus Lundblad <ml@update.uu.se> |
---|---|
date | Fri, 05 Sep 2008 21:55:09 +0000 |
parents | 9d83ae2c1a4f |
children | 7b11072ba907 |
comparison
equal
deleted
inserted
replaced
24057:8997acd7d143 | 24058:305fac6af8f9 |
---|---|
19 | 19 |
20 #include "xmlnode.h" | 20 #include "xmlnode.h" |
21 #include "conversation.h" | 21 #include "conversation.h" |
22 #include "jabber.h" | 22 #include "jabber.h" |
23 | 23 |
24 #define XEP_0231_NAMESPACE "urn:xmpp:tmp:data-element" | 24 #define XEP_0231_NAMESPACE "urn:xmpp:bob" |
25 #define XEP_0231_IB_IMAGE_NAMESPACE "urn:xmpp:tmp:data-element:inband-image" | |
26 | 25 |
27 #include <glib.h> | 26 #include <glib.h> |
28 | 27 |
29 typedef struct { | 28 typedef struct { |
30 char *cid; | 29 char *cid; |
31 char *alt; | |
32 char *type; | 30 char *type; |
33 gsize size; | 31 gsize size; |
34 gpointer data; | 32 gpointer data; |
35 } JabberData; | 33 } JabberData; |
36 | 34 |
37 void jabber_data_init(void); | |
38 | |
39 /* creates a JabberData instance from raw data */ | 35 /* creates a JabberData instance from raw data */ |
40 JabberData *jabber_data_create_from_data(gconstpointer data, gsize size, | 36 JabberData *jabber_data_create_from_data(gconstpointer data, gsize size, |
41 const char *type, const char *alt); | 37 const char *type, JabberStream *js); |
42 | 38 |
43 /* create a JabberData instance from an XML "data" element (as defined by | 39 /* create a JabberData instance from an XML "data" element (as defined by |
44 XEP 0231 */ | 40 XEP 0231 */ |
45 JabberData *jabber_data_create_from_xml(xmlnode *tag); | 41 JabberData *jabber_data_create_from_xml(xmlnode *tag); |
46 | 42 |
47 void jabber_data_delete(JabberData *data); | 43 void jabber_data_delete(JabberData *data); |
48 | 44 |
49 const char *jabber_data_get_cid(const JabberData *data); | 45 const char *jabber_data_get_cid(const JabberData *data); |
50 const char *jabber_data_get_alt(const JabberData *data); | |
51 const char *jabber_data_get_type(const JabberData *data); | 46 const char *jabber_data_get_type(const JabberData *data); |
52 | 47 |
53 gsize jabber_data_get_size(const JabberData *data); | 48 gsize jabber_data_get_size(const JabberData *data); |
54 gpointer jabber_data_get_data(const JabberData *data); | 49 gpointer jabber_data_get_data(const JabberData *data); |
55 | 50 |
56 /* returns the XML definition for the data element */ | 51 /* returns the XML definition for the data element */ |
57 xmlnode *jabber_data_get_xml_definition(const JabberData *data); | 52 xmlnode *jabber_data_get_xml_definition(const JabberData *data); |
58 | 53 |
59 /* returns an XHTML-IM "img" tag given a data instance */ | 54 /* returns an XHTML-IM "img" tag given a data instance */ |
60 xmlnode *jabber_data_get_xhtml_im(const JabberData *data); | 55 xmlnode *jabber_data_get_xhtml_im(const JabberData *data, const gchar *alt); |
61 | 56 |
62 /* returns a data request element (to be included in an iq stanza) for requesting | 57 /* returns a data request element (to be included in an iq stanza) for requesting |
63 data */ | 58 data */ |
64 xmlnode *jabber_data_get_xml_request(const gchar *cid); | 59 xmlnode *jabber_data_get_xml_request(const gchar *cid); |
65 | 60 |
66 /* lookup functions */ | 61 /* lookup functions */ |
67 const JabberData *jabber_data_find_local_by_alt(const PurpleConversation *conv, | 62 const JabberData *jabber_data_find_local_by_alt(const gchar *alt); |
63 const JabberData *jabber_data_find_local_by_cid(const gchar *cid); | |
64 const JabberData *jabber_data_find_remote_by_cid(const gchar *cid); | |
65 /* | |
66 const JabberData *jabber_data_find_local_by_alt(PurpleConversation *conv, | |
68 const char *alt); | 67 const char *alt); |
69 const JabberData *jabber_data_find_local_by_cid(const PurpleConversation *conv, | 68 const JabberData *jabber_data_find_local_by_cid(PurpleConversation *conv, |
70 const char *cid); | 69 const char *cid); |
71 const JabberData *jabber_data_find_remote_by_cid(const PurpleConversation *conv, | 70 const JabberData *jabber_data_find_remote_by_cid(PurpleConversation *conv, |
72 const char *cid); | 71 const char *cid); |
73 | 72 */ |
74 /* associate data objects with a conversation */ | 73 |
75 void jabber_data_associate_local_with_conv(JabberData *data, PurpleConversation *conv); | 74 /* store data objects */ |
75 void jabber_data_associate_local(JabberData *data, const gchar *alt); | |
76 void jabber_data_associate_remote(JabberData *data); | |
77 /* | |
78 void jabber_data_associate_local_with_conv(JabberData *data, PurpleConversation *conv, | |
79 const gchar *alt); | |
76 void jabber_data_associate_remote_with_conv(JabberData *data, PurpleConversation *conv); | 80 void jabber_data_associate_remote_with_conv(JabberData *data, PurpleConversation *conv); |
77 void jabber_data_delete_associated_with_conv(PurpleConversation *conv); | 81 void jabber_data_delete_associated_with_conv(PurpleConversation *conv); |
82 */ | |
78 | 83 |
79 /* handles iq requests */ | 84 /* handles iq requests */ |
80 void jabber_data_parse(JabberStream *js, xmlnode *packet); | 85 void jabber_data_parse(JabberStream *js, xmlnode *packet); |
81 | 86 |
87 void jabber_data_init(void); | |
88 void jabber_data_uninit(void); | |
82 | 89 |
83 #endif /* JABBER_DATA_H */ | 90 #endif /* JABBER_DATA_H */ |