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