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 */