libpurple/protocols/jabber/iq.h

Sat, 14 Aug 2010 05:17:38 +0000

author
Elliott Sales de Andrade <qulogic@pidgin.im>
date
Sat, 14 Aug 2010 05:17:38 +0000
changeset 30626
bec413ce77c7
parent 28322
ac8fec1d2234
child 34935
686fa55b0deb
child 35235
93d4bff19574
permissions
-rw-r--r--

Fix some "Dead nested assignment"s and then kill off some useless
variables related to them.

7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1 /**
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2 * @file iq.h JabberID handlers
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
3 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
4 * purple
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
5 *
28322
ac8fec1d2234 Remove specific copyright lines from the XMPP prpl.
Paul Aurich <darkrain42@pidgin.im>
parents: 27103
diff changeset
6 * Purple is the legal property of its developers, whose names are too numerous
ac8fec1d2234 Remove specific copyright lines from the XMPP prpl.
Paul Aurich <darkrain42@pidgin.im>
parents: 27103
diff changeset
7 * to list here. Please refer to the COPYRIGHT file distributed with this
ac8fec1d2234 Remove specific copyright lines from the XMPP prpl.
Paul Aurich <darkrain42@pidgin.im>
parents: 27103
diff changeset
8 * source distribution.
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
9 *
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
10 * This program is free software; you can redistribute it and/or modify
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
11 * it under the terms of the GNU General Public License as published by
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
12 * the Free Software Foundation; either version 2 of the License, or
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
13 * (at your option) any later version.
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
14 *
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
15 * This program is distributed in the hope that it will be useful,
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
18 * GNU General Public License for more details.
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
19 *
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
20 * You should have received a copy of the GNU General Public License
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
21 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 15884
diff changeset
22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
23 */
26703
17f9a4bef2a3 Further standardize the sentinel style (did someone say leading _s are theoretically a reserved namespace?)
Paul Aurich <darkrain42@pidgin.im>
parents: 26700
diff changeset
24 #ifndef PURPLE_JABBER_IQ_H_
17f9a4bef2a3 Further standardize the sentinel style (did someone say leading _s are theoretically a reserved namespace?)
Paul Aurich <darkrain42@pidgin.im>
parents: 26700
diff changeset
25 #define PURPLE_JABBER_IQ_H_
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
26
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
27 typedef enum {
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
28 JABBER_IQ_SET,
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
29 JABBER_IQ_GET,
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
30 JABBER_IQ_RESULT,
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
31 JABBER_IQ_ERROR,
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
32 JABBER_IQ_NONE
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
33 } JabberIqType;
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
34
25817
09d6a40a341d Pass IQ handlers type, from, id, and the child node
Paul Aurich <darkrain42@pidgin.im>
parents: 25815
diff changeset
35 #include "jabber.h"
27103
815af6acd59b Add jabber signals for IQ, Message, and Presence stanzas. Lightly tested (it doesn't crash [Prove me wrong!]) and as you'll note, I refer to documentation that doesn't yet exist.
Paul Aurich <darkrain42@pidgin.im>
parents: 26703
diff changeset
36 #include "connection.h"
25817
09d6a40a341d Pass IQ handlers type, from, id, and the child node
Paul Aurich <darkrain42@pidgin.im>
parents: 25815
diff changeset
37
09d6a40a341d Pass IQ handlers type, from, id, and the child node
Paul Aurich <darkrain42@pidgin.im>
parents: 25815
diff changeset
38 typedef struct _JabberIq JabberIq;
09d6a40a341d Pass IQ handlers type, from, id, and the child node
Paul Aurich <darkrain42@pidgin.im>
parents: 25815
diff changeset
39
26700
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
40 /**
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
41 * A JabberIqHandler is called to process an incoming IQ stanza.
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
42 * Handlers typically process unsolicited incoming GETs or SETs for their
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
43 * registered namespace, but may be called to handle the results of a
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
44 * GET or SET that we generated if no JabberIqCallback was generated
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
45 * The handler may be called for the results of a GET or SET (RESULT or ERROR)
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
46 * that we generated
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
47 * if the generating function did not register a JabberIqCallback.
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
48 *
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
49 * @param js The JabberStream object.
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
50 * @param from The remote entity (the from attribute on the <iq/> stanza)
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
51 * @param type The IQ type.
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
52 * @param id The IQ id (the id attribute on the <iq/> stanza)
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
53 * @param child The child element of the <iq/> stanza that matches the name
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
54 * and namespace registered with jabber_iq_register_handler.
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
55 *
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
56 * @see jabber_iq_register_handler()
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
57 * @see JabberIqCallback
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
58 */
25817
09d6a40a341d Pass IQ handlers type, from, id, and the child node
Paul Aurich <darkrain42@pidgin.im>
parents: 25815
diff changeset
59 typedef void (JabberIqHandler)(JabberStream *js, const char *from,
09d6a40a341d Pass IQ handlers type, from, id, and the child node
Paul Aurich <darkrain42@pidgin.im>
parents: 25815
diff changeset
60 JabberIqType type, const char *id,
09d6a40a341d Pass IQ handlers type, from, id, and the child node
Paul Aurich <darkrain42@pidgin.im>
parents: 25815
diff changeset
61 xmlnode *child);
14356
7f4abf922cfa [gaim-migrate @ 16984]
Nathan Walp <nwalp@pidgin.im>
parents: 14254
diff changeset
62
26700
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
63 /**
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
64 * A JabberIqCallback is called to process the results of a GET or SET that
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
65 * we send to a remote entity. The callback is matched based on the id
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
66 * of the incoming stanza (which matches the one on the initial stanza).
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
67 *
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
68 * @param js The JabberStream object.
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
69 * @param from The remote entity (the from attribute on the <iq/> stanza)
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
70 * @param type The IQ type. The only possible values are JABBER_IQ_RESULT
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
71 * and JABBER_IQ_ERROR.
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
72 * @param id The IQ id (the id attribute on the <iq/> stanza)
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
73 * @param packet The <iq/> stanza
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
74 * @param data The callback data passed to jabber_iq_set_callback()
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
75 *
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
76 * @see jabber_iq_set_callback()
8bdeed3f9115 Large documentation blocks never hurt anyone.
Paul Aurich <darkrain42@pidgin.im>
parents: 26687
diff changeset
77 */
26687
1e799151fabe Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <darkrain42@pidgin.im>
parents: 25821
diff changeset
78 typedef void (JabberIqCallback)(JabberStream *js, const char *from,
1e799151fabe Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <darkrain42@pidgin.im>
parents: 25821
diff changeset
79 JabberIqType type, const char *id,
1e799151fabe Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <darkrain42@pidgin.im>
parents: 25821
diff changeset
80 xmlnode *packet, gpointer data);
7395
e5595e8e13e4 [gaim-migrate @ 7990]
Nathan Walp <nwalp@pidgin.im>
parents: 7170
diff changeset
81
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
82 struct _JabberIq {
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
83 JabberIqType type;
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
84 char *id;
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
85 xmlnode *node;
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
86
7395
e5595e8e13e4 [gaim-migrate @ 7990]
Nathan Walp <nwalp@pidgin.im>
parents: 7170
diff changeset
87 JabberIqCallback *callback;
e5595e8e13e4 [gaim-migrate @ 7990]
Nathan Walp <nwalp@pidgin.im>
parents: 7170
diff changeset
88 gpointer callback_data;
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
89
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
90 JabberStream *js;
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
91 };
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
92
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
93 JabberIq *jabber_iq_new(JabberStream *js, JabberIqType type);
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
94 JabberIq *jabber_iq_new_query(JabberStream *js, JabberIqType type,
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
95 const char *xmlns);
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
96
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
97 void jabber_iq_parse(JabberStream *js, xmlnode *packet);
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
98
13794
7264393a2349 [gaim-migrate @ 16204]
Nathan Walp <nwalp@pidgin.im>
parents: 7395
diff changeset
99 void jabber_iq_remove_callback_by_id(JabberStream *js, const char *id);
7395
e5595e8e13e4 [gaim-migrate @ 7990]
Nathan Walp <nwalp@pidgin.im>
parents: 7170
diff changeset
100 void jabber_iq_set_callback(JabberIq *iq, JabberIqCallback *cb, gpointer data);
7170
93a12931a1fd [gaim-migrate @ 7737]
Nathan Walp <nwalp@pidgin.im>
parents: 7014
diff changeset
101 void jabber_iq_set_id(JabberIq *iq, const char *id);
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
102
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
103 void jabber_iq_send(JabberIq *iq);
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
104 void jabber_iq_free(JabberIq *iq);
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
105
14356
7f4abf922cfa [gaim-migrate @ 16984]
Nathan Walp <nwalp@pidgin.im>
parents: 14254
diff changeset
106 void jabber_iq_init(void);
7f4abf922cfa [gaim-migrate @ 16984]
Nathan Walp <nwalp@pidgin.im>
parents: 14254
diff changeset
107 void jabber_iq_uninit(void);
7f4abf922cfa [gaim-migrate @ 16984]
Nathan Walp <nwalp@pidgin.im>
parents: 14254
diff changeset
108
25821
5107c4870027 merge of '4dbe0c6eaf6dc066dddfd3084db3140b730b47a6'
Paul Aurich <darkrain42@pidgin.im>
parents: 25819
diff changeset
109 void jabber_iq_register_handler(const char *node, const char *xmlns,
5107c4870027 merge of '4dbe0c6eaf6dc066dddfd3084db3140b730b47a6'
Paul Aurich <darkrain42@pidgin.im>
parents: 25819
diff changeset
110 JabberIqHandler *func);
14356
7f4abf922cfa [gaim-migrate @ 16984]
Nathan Walp <nwalp@pidgin.im>
parents: 14254
diff changeset
111
27103
815af6acd59b Add jabber signals for IQ, Message, and Presence stanzas. Lightly tested (it doesn't crash [Prove me wrong!]) and as you'll note, I refer to documentation that doesn't yet exist.
Paul Aurich <darkrain42@pidgin.im>
parents: 26703
diff changeset
112 /* Connected to namespace-handler registration signals */
815af6acd59b Add jabber signals for IQ, Message, and Presence stanzas. Lightly tested (it doesn't crash [Prove me wrong!]) and as you'll note, I refer to documentation that doesn't yet exist.
Paul Aurich <darkrain42@pidgin.im>
parents: 26703
diff changeset
113 void jabber_iq_signal_register(const gchar *node, const gchar *xmlns);
815af6acd59b Add jabber signals for IQ, Message, and Presence stanzas. Lightly tested (it doesn't crash [Prove me wrong!]) and as you'll note, I refer to documentation that doesn't yet exist.
Paul Aurich <darkrain42@pidgin.im>
parents: 26703
diff changeset
114 void jabber_iq_signal_unregister(const gchar *node, const gchar *xmlns);
815af6acd59b Add jabber signals for IQ, Message, and Presence stanzas. Lightly tested (it doesn't crash [Prove me wrong!]) and as you'll note, I refer to documentation that doesn't yet exist.
Paul Aurich <darkrain42@pidgin.im>
parents: 26703
diff changeset
115
26703
17f9a4bef2a3 Further standardize the sentinel style (did someone say leading _s are theoretically a reserved namespace?)
Paul Aurich <darkrain42@pidgin.im>
parents: 26700
diff changeset
116 #endif /* PURPLE_JABBER_IQ_H_ */

mercurial