libpurple/protocols/myspace/message.h

Thu, 14 Jun 2007 01:53:58 +0000

author
Jeff Connelly <jeff2@soc.pidgin.im>
date
Thu, 14 Jun 2007 01:53:58 +0000
branch
soc.2007.msimprpl
changeset 17968
c29352b95fa6
parent 17946
69d0d7dfd3de
child 17970
3c92ce43ddae
permissions
-rw-r--r--

Add msim_offline_message() for offline message status. Always return TRUE,
though offline messages are not yet supported. Mainly for sending to users
whose status has not been retrieved yet.

17908
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
1 /** MySpaceIM protocol messages
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
2 *
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
3 * \author Jeff Connelly
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
4 *
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
5 * Copyright (C) 2007, Jeff Connelly <jeff2@homing.pidgin.im>
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
6 *
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
7 * This program is free software; you can redistribute it and/or modify
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
8 * it under the terms of the GNU General Public License as published by
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
9 * the Free Software Foundation; either version 2 of the License, or
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
10 * (at your option) any later version.
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
11 *
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
12 * This program is distributed in the hope that it will be useful,
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
15 * GNU General Public License for more details.
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
16 *
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
17 * You should have received a copy of the GNU General Public License
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
18 * along with this program; if not, write to the Free Software
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
20 */
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
21
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
22 #ifndef _MYSPACE_MESSAGE_H
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
23 #define _MYSPACE_MESSAGE_H
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
24
17910
9bbfa75ba90b (Incomplete - plugin does not load) Begin migrating protocol message receiving to MsimMessage.
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17908
diff changeset
25 #include <glib.h>
9bbfa75ba90b (Incomplete - plugin does not load) Begin migrating protocol message receiving to MsimMessage.
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17908
diff changeset
26
17908
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
27 /* Types */
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
28 #define MsimMessage GList /* #define instead of typedef to avoid casting */
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
29 typedef struct _MsimMessageElement
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
30 {
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
31 gchar *name; /**< Textual name of element. */
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
32 guint type; /**< MSIM_TYPE_* code. */
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
33 gpointer data; /**< Pointer to data, or GUINT_TO_POINTER for int/bool. */
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
34 } MsimMessageElement;
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
35
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
36 typedef gchar MsimMessageType;
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
37
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
38 /* Protocol field types */
17928
00bf757b5c48 Add new MsimMessage element type, MSIM_TYPE_RAW, for fields in incoming
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17925
diff changeset
39 #define MSIM_TYPE_RAW '-'
17908
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
40 #define MSIM_TYPE_INTEGER 'i'
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
41 #define MSIM_TYPE_STRING 's'
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
42 #define MSIM_TYPE_BINARY 'b'
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
43 #define MSIM_TYPE_BOOLEAN 'f'
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
44 #define MSIM_TYPE_DICTIONARY 'd'
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
45 #define MSIM_TYPE_LIST 'l'
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
46
17946
69d0d7dfd3de Enhance msim_msg_new() to accept a variadic arguments, like msim_send(),
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17945
diff changeset
47 MsimMessage *msim_msg_new(gboolean not_empty, ...);
69d0d7dfd3de Enhance msim_msg_new() to accept a variadic arguments, like msim_send(),
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17945
diff changeset
48 /* No sentinel attribute, because can leave off varargs if not_empty is FALSE. */
69d0d7dfd3de Enhance msim_msg_new() to accept a variadic arguments, like msim_send(),
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17945
diff changeset
49
17935
a6a70c7213ab Previously, the return value of the processing function and msim_process() told
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17928
diff changeset
50 MsimMessage *msim_msg_clone(MsimMessage *old);
17908
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
51 void msim_msg_free(MsimMessage *msg);
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
52 MsimMessage *msim_msg_append(MsimMessage *msg, gchar *name, MsimMessageType type, gpointer data);
17945
41cb5e7f15a3 Add msim_msg_insert_before(), needed since some elements must be in a certain order.
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17942
diff changeset
53 MsimMessage *msim_msg_insert_before(MsimMessage *msg, gchar *name_before, gchar *name, MsimMessageType type, gpointer data);
17942
4d750e00cdae Change msim_msg_debug_string() to msim_msg_dump(), which prints the string
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17939
diff changeset
54 void msim_msg_dump(char *fmt_string, MsimMessage *msg);
17908
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
55 gchar *msim_msg_pack(MsimMessage *msg);
17910
9bbfa75ba90b (Incomplete - plugin does not load) Begin migrating protocol message receiving to MsimMessage.
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17908
diff changeset
56
17911
8c54f28e3067 (Plugin loads, but cannot do anything useful)
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17910
diff changeset
57 /* Defined in myspace.h */
8c54f28e3067 (Plugin loads, but cannot do anything useful)
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17910
diff changeset
58 struct _MsimSession;
8c54f28e3067 (Plugin loads, but cannot do anything useful)
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17910
diff changeset
59
17939
dfc8f0e27d39 Add GCC sentinal attribute to msim_send().
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17935
diff changeset
60 gboolean msim_send(struct _MsimSession *session, ...)
dfc8f0e27d39 Add GCC sentinal attribute to msim_send().
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17935
diff changeset
61 #ifdef __GNUC__
dfc8f0e27d39 Add GCC sentinal attribute to msim_send().
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17935
diff changeset
62 /* Cause gcc to emit "a missing sentinel in function call" if forgot
dfc8f0e27d39 Add GCC sentinal attribute to msim_send().
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17935
diff changeset
63 * to write NULL as last, terminating parameter. */
dfc8f0e27d39 Add GCC sentinal attribute to msim_send().
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17935
diff changeset
64 __attribute__((__sentinel__(0)))
dfc8f0e27d39 Add GCC sentinal attribute to msim_send().
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17935
diff changeset
65 #endif
dfc8f0e27d39 Add GCC sentinal attribute to msim_send().
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17935
diff changeset
66 ;
dfc8f0e27d39 Add GCC sentinal attribute to msim_send().
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17935
diff changeset
67
17911
8c54f28e3067 (Plugin loads, but cannot do anything useful)
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17910
diff changeset
68 gboolean msim_msg_send(struct _MsimSession *session, MsimMessage *msg);
17908
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
69
17910
9bbfa75ba90b (Incomplete - plugin does not load) Begin migrating protocol message receiving to MsimMessage.
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17908
diff changeset
70 MsimMessage *msim_parse(gchar *raw);
9bbfa75ba90b (Incomplete - plugin does not load) Begin migrating protocol message receiving to MsimMessage.
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17908
diff changeset
71 GHashTable *msim_parse_body(const gchar *body_str);
9bbfa75ba90b (Incomplete - plugin does not load) Begin migrating protocol message receiving to MsimMessage.
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17908
diff changeset
72
17922
96a73f706e5b msim_msg_get_element() -> msim_msg_get(), now in header file.
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17921
diff changeset
73 MsimMessageElement *msim_msg_get(MsimMessage *msg, gchar *name);
17910
9bbfa75ba90b (Incomplete - plugin does not load) Begin migrating protocol message receiving to MsimMessage.
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17908
diff changeset
74 gchar *msim_msg_get_string(MsimMessage *msg, gchar *name);
9bbfa75ba90b (Incomplete - plugin does not load) Begin migrating protocol message receiving to MsimMessage.
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17908
diff changeset
75 guint msim_msg_get_integer(MsimMessage *msg, gchar *name);
17925
85eb0d95ae63 Trivial fixes to clean up MsimMessage.
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17923
diff changeset
76 gboolean msim_msg_get_binary(MsimMessage *msg, gchar *name, gchar **binary_data, gsize *binary_length);
17910
9bbfa75ba90b (Incomplete - plugin does not load) Begin migrating protocol message receiving to MsimMessage.
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 17908
diff changeset
77
17908
81c562aafb21 Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff changeset
78 #endif /* _MYSPACE_MESSAGE_H */

mercurial