libpurple/protocols/jabber/presence.h

Fri, 23 Dec 2011 08:21:58 +0000

author
Elliott Sales de Andrade <qulogic@pidgin.im>
date
Fri, 23 Dec 2011 08:21:58 +0000
branch
cpw.qulogic.gtk3
changeset 32438
dc8991868906
parent 29848
999c0235bbc6
child 33400
752eea995e11
permissions
-rw-r--r--

A boring and large patch so I can merge heads.

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 presence.h Presence
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: 27280
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: 27280
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: 27280
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: 19897
diff changeset
24 #ifndef PURPLE_JABBER_PRESENCE_H_
17f9a4bef2a3 Further standardize the sentinel style (did someone say leading _s are theoretically a reserved namespace?)
Paul Aurich <darkrain42@pidgin.im>
parents: 19897
diff changeset
25 #define PURPLE_JABBER_PRESENCE_H_
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
26
29848
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
27 typedef enum {
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
28 JABBER_PRESENCE_ERROR = -2,
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
29 JABBER_PRESENCE_PROBE = -1,
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
30 JABBER_PRESENCE_AVAILABLE,
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
31 JABBER_PRESENCE_UNAVAILABLE,
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
32 JABBER_PRESENCE_SUBSCRIBE,
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
33 JABBER_PRESENCE_SUBSCRIBED,
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
34 JABBER_PRESENCE_UNSUBSCRIBE,
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
35 JABBER_PRESENCE_UNSUBSCRIBED
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
36 } JabberPresenceType;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
37
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
38 typedef struct _JabberPresenceChatInfo JabberPresenceChatInfo;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
39 typedef struct _JabberPresence JabberPresence;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
40
9954
52a14a58a33e [gaim-migrate @ 10851]
Nathan Walp <nwalp@pidgin.im>
parents: 9944
diff changeset
41 #include "buddy.h"
29848
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
42 #include "chat.h"
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
43 #include "jabber.h"
29848
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
44 #include "jutil.h"
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
45 #include "xmlnode.h"
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
46
29848
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
47 struct _JabberPresenceChatInfo {
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
48 GSList *codes;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
49 xmlnode *item;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
50 };
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
51
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
52 struct _JabberPresence {
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
53 JabberPresenceType type;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
54 JabberID *jid_from;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
55 const char *from;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
56 const char *to;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
57 const char *id;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
58
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
59 JabberBuddy *jb;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
60 JabberChat *chat;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
61 JabberPresenceChatInfo chat_info;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
62 xmlnode *caps; /* TODO: Temporary, see presence.c:parse_caps */
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
63
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
64 JabberBuddyState state;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
65 gchar *status;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
66 int priority;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
67
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
68 char *vcard_avatar_hash;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
69 char *nickname;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
70
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
71 gboolean delayed;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
72 time_t sent;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
73 int idle;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
74 };
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
75
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
76 typedef void (JabberPresenceHandler)(JabberStream *js, JabberPresence *presence,
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
77 xmlnode *child);
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
78 void jabber_presence_register_handler(const char *node, const char *xmlns,
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
79 JabberPresenceHandler *handler);
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
80
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
81 void jabber_presence_init(void);
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
82 void jabber_presence_uninit(void);
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
83
24717
13c7497f44f8 Clean up jabber_presence_send
Paul Aurich <darkrain42@pidgin.im>
parents: 19897
diff changeset
84 void jabber_set_status(PurpleAccount *account, PurpleStatus *status);
13c7497f44f8 Clean up jabber_presence_send
Paul Aurich <darkrain42@pidgin.im>
parents: 19897
diff changeset
85
13c7497f44f8 Clean up jabber_presence_send
Paul Aurich <darkrain42@pidgin.im>
parents: 19897
diff changeset
86 /**
13c7497f44f8 Clean up jabber_presence_send
Paul Aurich <darkrain42@pidgin.im>
parents: 19897
diff changeset
87 * Send a full presence stanza.
13c7497f44f8 Clean up jabber_presence_send
Paul Aurich <darkrain42@pidgin.im>
parents: 19897
diff changeset
88 *
13c7497f44f8 Clean up jabber_presence_send
Paul Aurich <darkrain42@pidgin.im>
parents: 19897
diff changeset
89 * @param js A JabberStream object.
13c7497f44f8 Clean up jabber_presence_send
Paul Aurich <darkrain42@pidgin.im>
parents: 19897
diff changeset
90 * @param force Force sending the presence stanza, irrespective of whether
13c7497f44f8 Clean up jabber_presence_send
Paul Aurich <darkrain42@pidgin.im>
parents: 19897
diff changeset
91 * the contents seem to have changed.
13c7497f44f8 Clean up jabber_presence_send
Paul Aurich <darkrain42@pidgin.im>
parents: 19897
diff changeset
92 */
13c7497f44f8 Clean up jabber_presence_send
Paul Aurich <darkrain42@pidgin.im>
parents: 19897
diff changeset
93 void jabber_presence_send(JabberStream *js, gboolean force);
13c7497f44f8 Clean up jabber_presence_send
Paul Aurich <darkrain42@pidgin.im>
parents: 19897
diff changeset
94
17770
e67998927a3c Added the ability to define extensions to caps
Andreas Monitzer <am@adiumx.com>
parents: 15884
diff changeset
95 xmlnode *jabber_presence_create_js(JabberStream *js, JabberBuddyState state, const char *msg, int priority);
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
96 void jabber_presence_parse(JabberStream *js, xmlnode *packet);
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
97 void jabber_presence_subscription_set(JabberStream *js, const char *who,
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
98 const char *type);
27280
55a39efcf7b8 Simplify the fake_to_self function.
Paul Aurich <darkrain42@pidgin.im>
parents: 26707
diff changeset
99 void jabber_presence_fake_to_self(JabberStream *js, PurpleStatus *status);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
100 void purple_status_to_jabber(const PurpleStatus *status, JabberBuddyState *state, char **msg, int *priority);
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
101
26703
17f9a4bef2a3 Further standardize the sentinel style (did someone say leading _s are theoretically a reserved namespace?)
Paul Aurich <darkrain42@pidgin.im>
parents: 19897
diff changeset
102 #endif /* PURPLE_JABBER_PRESENCE_H_ */

mercurial