Mercurial > pidgin
comparison libpurple/protocols/jabber/data.h @ 23780:9d83ae2c1a4f
New files used for custom smileys.
committer: Sadrul Habib Chowdhury <imadil@gmail.com>
author | Marcus Lundblad <ml@update.uu.se> |
---|---|
date | Sun, 01 Jun 2008 21:39:15 +0000 |
parents | |
children | 305fac6af8f9 |
comparison
equal
deleted
inserted
replaced
23779:b2697ab66d23 | 23780:9d83ae2c1a4f |
---|---|
1 /* | |
2 * This program is free software; you can redistribute it and/or modify | |
3 * it under the terms of the GNU General Public License as published by | |
4 * the Free Software Foundation; either version 2 of the License, or | |
5 * (at your option) any later version. | |
6 * | |
7 * This program is distributed in the hope that it will be useful, | |
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
10 * GNU Library General Public License for more details. | |
11 * | |
12 * You should have received a copy of the GNU General Public License | |
13 * along with this program; if not, write to the Free Software | |
14 * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA | |
15 */ | |
16 | |
17 #ifndef JABBER_DATA_H | |
18 #define JABBER_DATA_H | |
19 | |
20 #include "xmlnode.h" | |
21 #include "conversation.h" | |
22 #include "jabber.h" | |
23 | |
24 #define XEP_0231_NAMESPACE "urn:xmpp:tmp:data-element" | |
25 #define XEP_0231_IB_IMAGE_NAMESPACE "urn:xmpp:tmp:data-element:inband-image" | |
26 | |
27 #include <glib.h> | |
28 | |
29 typedef struct { | |
30 char *cid; | |
31 char *alt; | |
32 char *type; | |
33 gsize size; | |
34 gpointer data; | |
35 } JabberData; | |
36 | |
37 void jabber_data_init(void); | |
38 | |
39 /* creates a JabberData instance from raw data */ | |
40 JabberData *jabber_data_create_from_data(gconstpointer data, gsize size, | |
41 const char *type, const char *alt); | |
42 | |
43 /* create a JabberData instance from an XML "data" element (as defined by | |
44 XEP 0231 */ | |
45 JabberData *jabber_data_create_from_xml(xmlnode *tag); | |
46 | |
47 void jabber_data_delete(JabberData *data); | |
48 | |
49 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); | |
52 | |
53 gsize jabber_data_get_size(const JabberData *data); | |
54 gpointer jabber_data_get_data(const JabberData *data); | |
55 | |
56 /* returns the XML definition for the data element */ | |
57 xmlnode *jabber_data_get_xml_definition(const JabberData *data); | |
58 | |
59 /* returns an XHTML-IM "img" tag given a data instance */ | |
60 xmlnode *jabber_data_get_xhtml_im(const JabberData *data); | |
61 | |
62 /* returns a data request element (to be included in an iq stanza) for requesting | |
63 data */ | |
64 xmlnode *jabber_data_get_xml_request(const gchar *cid); | |
65 | |
66 /* lookup functions */ | |
67 const JabberData *jabber_data_find_local_by_alt(const PurpleConversation *conv, | |
68 const char *alt); | |
69 const JabberData *jabber_data_find_local_by_cid(const PurpleConversation *conv, | |
70 const char *cid); | |
71 const JabberData *jabber_data_find_remote_by_cid(const PurpleConversation *conv, | |
72 const char *cid); | |
73 | |
74 /* associate data objects with a conversation */ | |
75 void jabber_data_associate_local_with_conv(JabberData *data, PurpleConversation *conv); | |
76 void jabber_data_associate_remote_with_conv(JabberData *data, PurpleConversation *conv); | |
77 void jabber_data_delete_associated_with_conv(PurpleConversation *conv); | |
78 | |
79 /* handles iq requests */ | |
80 void jabber_data_parse(JabberStream *js, xmlnode *packet); | |
81 | |
82 | |
83 #endif /* JABBER_DATA_H */ |