Wed, 26 May 2010 20:01:05 +0000
propagate from branch 'im.pidgin.cpw.qulogic.msnp16' (head 6b703b827c8c834fa6b785d9e2d2fa2b34849c09)
to branch 'im.pidgin.soc.2010.msn-tlc' (head f3f4e9b1b6ccbd6ab82dfbd0a4a7d1dec8c5bd9c)
| 8810 | 1 | /** |
| 2 | * @file command.h MSN command functions | |
| 3 | * | |
| 15884 | 4 | * purple |
| 8810 | 5 | * |
| 15884 | 6 | * Purple is the legal property of its developers, whose names are too numerous |
|
9198
e8eb6d5eb9eb
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
7 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
e8eb6d5eb9eb
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
8 | * source distribution. |
| 8810 | 9 | * |
| 10 | * This program is free software; you can redistribute it and/or modify | |
| 11 | * it under the terms of the GNU General Public License as published by | |
| 12 | * the Free Software Foundation; either version 2 of the License, or | |
| 13 | * (at your option) any later version. | |
| 14 | * | |
| 15 | * This program is distributed in the hope that it will be useful, | |
| 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 18 | * GNU General Public License for more details. | |
| 19 | * | |
| 20 | * You should have received a copy of the GNU General Public License | |
| 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 |
| 8810 | 23 | */ |
|
29305
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
24438
diff
changeset
|
24 | #ifndef MSN_COMMAND_H |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
24438
diff
changeset
|
25 | #define MSN_COMMAND_H |
| 8810 | 26 | |
| 27 | typedef struct _MsnCommand MsnCommand; | |
| 28 | ||
| 29 | #include "cmdproc.h" | |
| 30 | #include "transaction.h" | |
| 31 | ||
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
8810
diff
changeset
|
32 | typedef void (*MsnPayloadCb)(MsnCmdProc *cmdproc, MsnCommand *cmd, |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
8810
diff
changeset
|
33 | char *payload, size_t len); |
| 8810 | 34 | |
| 35 | /** | |
| 36 | * A received command. | |
| 37 | */ | |
| 38 | struct _MsnCommand | |
| 39 | { | |
| 40 | unsigned int trId; | |
| 41 | ||
| 42 | char *command; | |
| 43 | char **params; | |
| 44 | int param_count; | |
| 45 | ||
| 46 | int ref_count; | |
| 47 | ||
| 48 | MsnTransaction *trans; | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
8810
diff
changeset
|
49 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
8810
diff
changeset
|
50 | char *payload; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
8810
diff
changeset
|
51 | size_t payload_len; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
8810
diff
changeset
|
52 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
8810
diff
changeset
|
53 | MsnPayloadCb payload_cb; |
|
24438
f516df0c0926
Apply khc's patch for ADL error 205, with a few changes to get around
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
19859
diff
changeset
|
54 | void *payload_cbdata; |
| 8810 | 55 | }; |
| 56 | ||
|
30912
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
57 | /** |
|
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
58 | * Create a command object from the incoming string and ref it. |
|
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
59 | * |
|
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
60 | * @param string The incoming string. |
|
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
61 | * |
|
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
62 | * @return A MsnCommand object. |
|
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
63 | */ |
| 8810 | 64 | MsnCommand *msn_command_from_string(const char *string); |
|
30912
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
65 | |
|
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
66 | /** |
|
30914
24c47e42518a
Fix a few little things.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30912
diff
changeset
|
67 | * Destroy a MsnCommand object if its ref count is zero, otherwise |
|
24c47e42518a
Fix a few little things.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30912
diff
changeset
|
68 | * just unref it. |
|
30912
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
69 | * |
|
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
70 | * @param cmd The MsnCommand to be destroyed. |
|
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
71 | */ |
| 8810 | 72 | void msn_command_destroy(MsnCommand *cmd); |
|
30912
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
73 | |
|
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
74 | /** |
|
30914
24c47e42518a
Fix a few little things.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30912
diff
changeset
|
75 | * Increment the ref count. |
|
30912
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
76 | * |
|
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
77 | * @param cmd The MsnCommand to be ref. |
|
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
78 | * |
|
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
79 | * @return The ref command. |
|
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
80 | */ |
| 8810 | 81 | MsnCommand *msn_command_ref(MsnCommand *cmd); |
|
30912
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
82 | |
|
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
83 | /** |
|
30914
24c47e42518a
Fix a few little things.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30912
diff
changeset
|
84 | * Decrement the ref count. If the count goes to 0, destroy it. |
|
30912
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
85 | * |
|
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
86 | * @param cmd The MsnCommand to be unref. |
|
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
87 | * |
|
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
88 | * @return The ref command. |
|
d2d8dcbc99a9
msn: Document command.h
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29305
diff
changeset
|
89 | */ |
| 8810 | 90 | MsnCommand *msn_command_unref(MsnCommand *cmd); |
| 91 | ||
|
29305
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
24438
diff
changeset
|
92 | #endif /* MSN_COMMAND_H */ |