Fri, 01 Jun 2007 04:47:25 +0000
(Plugin loads, but cannot do anything useful)
Forward-declare _MsimSession structure and remove session.h.
This now allows the plugin to load correctly by Pidgin, as it finds the
purple_init_plugin symbol. Previous revision could be loaded because this
symbol could not be found.
Conversion to use MsimMessage for receiving messages is incomplete, and
therefore this plugin cannot be used for anything useful (login fails with
"Unparseable message" from server.)
|
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 */ |
|
81c562aafb21
Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
39 | #define MSIM_TYPE_INTEGER 'i' |
|
81c562aafb21
Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
40 | #define MSIM_TYPE_STRING 's' |
|
81c562aafb21
Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
41 | #define MSIM_TYPE_BINARY 'b' |
|
81c562aafb21
Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
42 | #define MSIM_TYPE_BOOLEAN 'f' |
|
81c562aafb21
Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
43 | #define MSIM_TYPE_DICTIONARY 'd' |
|
81c562aafb21
Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
44 | #define MSIM_TYPE_LIST 'l' |
|
81c562aafb21
Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
45 | |
|
81c562aafb21
Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
46 | MsimMessage *msim_msg_new(void); |
|
81c562aafb21
Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
47 | void msim_msg_free(MsimMessage *msg); |
|
81c562aafb21
Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
48 | MsimMessage *msim_msg_append(MsimMessage *msg, gchar *name, MsimMessageType type, gpointer data); |
|
81c562aafb21
Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
49 | gchar *msim_msg_debug_string(MsimMessage *msg); |
|
81c562aafb21
Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
50 | 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
|
51 | |
|
17911
8c54f28e3067
(Plugin loads, but cannot do anything useful)
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
17910
diff
changeset
|
52 | /* Defined in myspace.h */ |
|
8c54f28e3067
(Plugin loads, but cannot do anything useful)
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
17910
diff
changeset
|
53 | struct _MsimSession; |
|
8c54f28e3067
(Plugin loads, but cannot do anything useful)
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
17910
diff
changeset
|
54 | |
|
8c54f28e3067
(Plugin loads, but cannot do anything useful)
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
17910
diff
changeset
|
55 | 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
|
56 | |
|
17910
9bbfa75ba90b
(Incomplete - plugin does not load) Begin migrating protocol message receiving to MsimMessage.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
17908
diff
changeset
|
57 | 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
|
58 | 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
|
59 | |
|
9bbfa75ba90b
(Incomplete - plugin does not load) Begin migrating protocol message receiving to MsimMessage.
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
17908
diff
changeset
|
60 | MsimMessageElement *msim_msg_get_element(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
|
61 | 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
|
62 | guint msim_msg_get_integer(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
|
63 | |
|
17908
81c562aafb21
Add MsimMessage implementation (sending only).
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
diff
changeset
|
64 | #endif /* _MYSPACE_MESSAGE_H */ |