src/protocols/msn/msg.h

Fri, 21 May 2004 14:33:32 +0000

author
Stu Tomlinson <nosnilmot@pidgin.im>
date
Fri, 21 May 2004 14:33:32 +0000
changeset 8999
dd434cfec86a
parent 8646
74d0e7406e3b
child 9158
f8dab42adeaf
permissions
-rw-r--r--

[gaim-migrate @ 9774]
" This patch renames the existing received-*-msg signals
to receiving-*msg to fit the naming of other signals
where a pointer to the message is passed (writing,
sending, displaying)

It adds new received-*-msg signals which are emitted
after the receiving signals, in line with the other
conversation signals (wrote, sent, displayed)

This is necessary to allow plugins which depend on the
final received message to work alongside plugins which
may modify the message.

One known example of this is festival-gaim alongside
gaim-encryption - festival-gaim would try to "speak"
the encrypted text:
http://sf.net/tracker/?func=detail&aid=943216&group_id=89763&atid=591320

I've tested this with gaim-encryption and festival-gaim
(locally modified so gaim-encryption uses the receiving
signal and festival uses the received signal)

All in-tree users of received-*-msg are updated to use
receiving-*-msg if they do modify the message, the
conversation-signals documentation is updated, the
signals-test.c & signal-test.tcl plugins are also updated." --Stu Tomlinson

committer: Luke Schierer <lschiere@pidgin.im>

4542
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 /**
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2 * @file msg.h Message functions
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3 *
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4 * gaim
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5 *
8475
3b5687726055 [gaim-migrate @ 9208]
Christian Hammond <chipx86@chipx86.com>
parents: 7604
diff changeset
6 * Copyright (C) 2003-2004 Christian Hammond <chipx86@gnupdate.org>
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 5506
diff changeset
7 *
4542
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 * (at your option) any later version.
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 *
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful,
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 * GNU General Public License for more details.
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 *
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 * along with this program; if not, write to the Free Software
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 */
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
22 #ifndef _MSN_MSG_H_
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
23 #define _MSN_MSG_H_
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
24
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
25 typedef struct _MsnMessage MsnMessage;
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
26
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
27 #include "session.h"
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
28 #include "user.h"
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
29
6786
096ebddea1f3 [gaim-migrate @ 7325]
Christian Hammond <chipx86@chipx86.com>
parents: 6701
diff changeset
30 typedef struct
096ebddea1f3 [gaim-migrate @ 7325]
Christian Hammond <chipx86@chipx86.com>
parents: 6701
diff changeset
31 {
096ebddea1f3 [gaim-migrate @ 7325]
Christian Hammond <chipx86@chipx86.com>
parents: 6701
diff changeset
32 long session_id;
096ebddea1f3 [gaim-migrate @ 7325]
Christian Hammond <chipx86@chipx86.com>
parents: 6701
diff changeset
33 long id;
6868
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
34 long offset_1;
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
35 long offset_2;
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
36 long total_size_1;
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
37 long total_size_2;
6786
096ebddea1f3 [gaim-migrate @ 7325]
Christian Hammond <chipx86@chipx86.com>
parents: 6701
diff changeset
38 long length;
096ebddea1f3 [gaim-migrate @ 7325]
Christian Hammond <chipx86@chipx86.com>
parents: 6701
diff changeset
39 long flags;
096ebddea1f3 [gaim-migrate @ 7325]
Christian Hammond <chipx86@chipx86.com>
parents: 6701
diff changeset
40 long ack_session_id;
096ebddea1f3 [gaim-migrate @ 7325]
Christian Hammond <chipx86@chipx86.com>
parents: 6701
diff changeset
41 long ack_unique_id;
6868
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
42 long ack_length_1;
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
43 long ack_length_2;
6786
096ebddea1f3 [gaim-migrate @ 7325]
Christian Hammond <chipx86@chipx86.com>
parents: 6701
diff changeset
44
096ebddea1f3 [gaim-migrate @ 7325]
Christian Hammond <chipx86@chipx86.com>
parents: 6701
diff changeset
45 } MsnSlpHeader;
096ebddea1f3 [gaim-migrate @ 7325]
Christian Hammond <chipx86@chipx86.com>
parents: 6701
diff changeset
46
096ebddea1f3 [gaim-migrate @ 7325]
Christian Hammond <chipx86@chipx86.com>
parents: 6701
diff changeset
47 typedef struct
096ebddea1f3 [gaim-migrate @ 7325]
Christian Hammond <chipx86@chipx86.com>
parents: 6701
diff changeset
48 {
096ebddea1f3 [gaim-migrate @ 7325]
Christian Hammond <chipx86@chipx86.com>
parents: 6701
diff changeset
49 long app_id;
096ebddea1f3 [gaim-migrate @ 7325]
Christian Hammond <chipx86@chipx86.com>
parents: 6701
diff changeset
50
096ebddea1f3 [gaim-migrate @ 7325]
Christian Hammond <chipx86@chipx86.com>
parents: 6701
diff changeset
51 } MsnSlpFooter;
096ebddea1f3 [gaim-migrate @ 7325]
Christian Hammond <chipx86@chipx86.com>
parents: 6701
diff changeset
52
4542
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
53 /**
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
54 * A message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
55 */
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
56 struct _MsnMessage
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
57 {
5506
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5309
diff changeset
58 size_t ref_count; /**< The reference count. */
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5309
diff changeset
59
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 5506
diff changeset
60 gboolean msnslp_message;
6868
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
61 gboolean msnslp_ack_message;
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 5506
diff changeset
62
8646
74d0e7406e3b [gaim-migrate @ 9398]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
63 char *passport;
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
64
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
65 unsigned int tid;
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
66 char flag;
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
67
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
68 size_t size;
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
69
6868
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
70 gboolean bin_content;
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
71
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
72 char *content_type;
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
73 char *charset;
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
74 char *body;
6868
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
75 size_t bin_len;
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
76
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 5506
diff changeset
77 MsnSlpHeader msnslp_header;
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 5506
diff changeset
78 MsnSlpFooter msnslp_footer;
7604
0800df4e5045 [gaim-migrate @ 8227]
Christian Hammond <chipx86@chipx86.com>
parents: 6868
diff changeset
79
6868
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
80 MsnMessage *acked_msg;
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 5506
diff changeset
81
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
82 GHashTable *attr_table;
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
83 GList *attr_list;
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
84 };
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
85
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 5506
diff changeset
86 #define MSN_MESSAGE(msg) ((MsnMessage *)(msg))
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 5506
diff changeset
87
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
88 /**
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
89 * Creates a new, empty message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
90 *
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
91 * @return A new message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
92 */
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
93 MsnMessage *msn_message_new(void);
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
94
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
95 /**
6800
8f99c220b503 [gaim-migrate @ 7340]
Christian Hammond <chipx86@chipx86.com>
parents: 6786
diff changeset
96 * Creates a new, empty MSNSLP message.
8f99c220b503 [gaim-migrate @ 7340]
Christian Hammond <chipx86@chipx86.com>
parents: 6786
diff changeset
97 *
8f99c220b503 [gaim-migrate @ 7340]
Christian Hammond <chipx86@chipx86.com>
parents: 6786
diff changeset
98 * @return A new MSNSLP message.
8f99c220b503 [gaim-migrate @ 7340]
Christian Hammond <chipx86@chipx86.com>
parents: 6786
diff changeset
99 */
8f99c220b503 [gaim-migrate @ 7340]
Christian Hammond <chipx86@chipx86.com>
parents: 6786
diff changeset
100 MsnMessage *msn_message_new_msnslp(void);
8f99c220b503 [gaim-migrate @ 7340]
Christian Hammond <chipx86@chipx86.com>
parents: 6786
diff changeset
101
8f99c220b503 [gaim-migrate @ 7340]
Christian Hammond <chipx86@chipx86.com>
parents: 6786
diff changeset
102 /**
6868
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
103 * Creates a MSNSLP ack message.
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
104 *
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
105 * @param acked_msg The message to acknowledge.
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
106 *
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
107 * @return A new MSNSLP ack message.
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
108 */
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
109 MsnMessage *msn_message_new_msnslp_ack(MsnMessage *acked_msg);
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
110
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
111 /**
8646
74d0e7406e3b [gaim-migrate @ 9398]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
112 * Parse the payload of a message.
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
113 *
8646
74d0e7406e3b [gaim-migrate @ 9398]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
114 * @param msg The message.
74d0e7406e3b [gaim-migrate @ 9398]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
115 * @param payload The payload.
74d0e7406e3b [gaim-migrate @ 9398]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
116 * @param payload_len The length payload.
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
117 */
8646
74d0e7406e3b [gaim-migrate @ 9398]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
118 void msn_message_parse_payload(MsnMessage *msg,
74d0e7406e3b [gaim-migrate @ 9398]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
119 const char *payload,
74d0e7406e3b [gaim-migrate @ 9398]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
120 size_t payload_len);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
121
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
122 /**
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
123 * Destroys a message.
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 5506
diff changeset
124 *
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 5506
diff changeset
125 * @param msg The message to destroy.
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
126 */
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
127 void msn_message_destroy(MsnMessage *msg);
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
128
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
129 /**
5506
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5309
diff changeset
130 * Increments the reference count on a message.
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5309
diff changeset
131 *
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5309
diff changeset
132 * @param msg The message.
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5309
diff changeset
133 *
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5309
diff changeset
134 * @return @a msg
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5309
diff changeset
135 */
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5309
diff changeset
136 MsnMessage *msn_message_ref(MsnMessage *msg);
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5309
diff changeset
137
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5309
diff changeset
138 /**
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5309
diff changeset
139 * Decrements the reference count on a message.
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5309
diff changeset
140 *
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5309
diff changeset
141 * This will destroy the structure if the count hits 0.
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5309
diff changeset
142 *
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5309
diff changeset
143 * @param msg The message.
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5309
diff changeset
144 *
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5309
diff changeset
145 * @return @a msg, or @c NULL if the new count is 0.
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5309
diff changeset
146 */
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5309
diff changeset
147 MsnMessage *msn_message_unref(MsnMessage *msg);
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5309
diff changeset
148
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5309
diff changeset
149 /**
8646
74d0e7406e3b [gaim-migrate @ 9398]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
150 * Generates the payload data of a message.
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
151 *
6826
986589449e69 [gaim-migrate @ 7371]
Christian Hammond <chipx86@chipx86.com>
parents: 6800
diff changeset
152 * @param msg The message.
8646
74d0e7406e3b [gaim-migrate @ 9398]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
153 * @param ret_size The returned size of the payload.
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
154 *
8646
74d0e7406e3b [gaim-migrate @ 9398]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
155 * @return The payload data of the message.
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
156 */
8646
74d0e7406e3b [gaim-migrate @ 9398]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
157 char *msn_message_gen_payload(const MsnMessage *msg, size_t *ret_size);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
158
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
159 /**
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
160 * Sets the flag for an outgoing message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
161 *
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
162 * @param msg The message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
163 * @param flag The flag.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
164 */
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
165 void msn_message_set_flag(MsnMessage *msg, char flag);
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
166
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
167 /**
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
168 * Returns the flag for an outgoing message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
169 *
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
170 * @param msg The message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
171 *
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
172 * @return The flag.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
173 */
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
174 char msn_message_get_flag(const MsnMessage *msg);
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
175
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
176 /**
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
177 * Sets the body of a message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
178 *
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
179 * @param msg The message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
180 * @param body The body of the message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
181 */
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
182 void msn_message_set_body(MsnMessage *msg, const char *body);
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
183
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
184 /**
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
185 * Returns the body of the message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
186 *
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
187 * @param msg The message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
188 *
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
189 * @return The body of the message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
190 */
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
191 const char *msn_message_get_body(const MsnMessage *msg);
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
192
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
193 /**
6868
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
194 * Sets the binary content of the message.
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
195 *
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
196 * @param msg The message.
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
197 * @param data The binary data.
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
198 * @param len The length of the data.
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
199 */
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
200 void msn_message_set_bin_data(MsnMessage *msg, const void *data, size_t len);
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
201
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
202 /**
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
203 * Returns the binary content of the message.
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
204 *
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
205 * @param msg The message.
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
206 * @param len The returned length of the data.
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
207 *
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
208 * @return The binary data.
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
209 */
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
210 const void *msn_message_get_bin_data(const MsnMessage *msg, size_t *len);
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
211
b9cc0730e11c [gaim-migrate @ 7414]
Christian Hammond <chipx86@chipx86.com>
parents: 6826
diff changeset
212 /**
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
213 * Sets the content type in a message.
4542
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
214 *
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
215 * @param msg The message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
216 * @param type The content-type.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
217 */
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
218 void msn_message_set_content_type(MsnMessage *msg, const char *type);
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
219
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
220 /**
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
221 * Returns the content type in a message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
222 *
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
223 * @param msg The message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
224 *
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
225 * @return The content-type.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
226 */
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
227 const char *msn_message_get_content_type(const MsnMessage *msg);
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
228
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
229 /**
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
230 * Sets the charset in a message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
231 *
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
232 * @param msg The message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
233 * @param charset The charset.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
234 */
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
235 void msn_message_set_charset(MsnMessage *msg, const char *charset);
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
236
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
237 /**
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
238 * Returns the charset in a message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
239 *
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
240 * @param msg The message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
241 *
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
242 * @return The charset.
4542
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
243 */
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
244 const char *msn_message_get_charset(const MsnMessage *msg);
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
245
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
246 /**
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
247 * Sets an attribute in a message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
248 *
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
249 * @param msg The message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
250 * @param attr The attribute name.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
251 * @param value The attribute value.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
252 */
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
253 void msn_message_set_attr(MsnMessage *msg, const char *attr,
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
254 const char *value);
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
255
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
256 /**
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
257 * Returns an attribute from a message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
258 *
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
259 * @param msg The message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
260 * @param attr The attribute.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
261 *
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
262 * @return The value, or @c NULL if not found.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
263 */
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
264 const char *msn_message_get_attr(const MsnMessage *msg, const char *attr);
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
265
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
266 /**
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
267 * Parses the body and returns it in the form of a hashtable.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
268 *
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
269 * @param msg The message.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
270 *
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
271 * @return The resulting hashtable.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
272 */
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents: 4542
diff changeset
273 GHashTable *msn_message_get_hashtable_from_body(const MsnMessage *msg);
4542
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
274
05a476dec582 [gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
275 #endif /* _MSN_MSG_H_ */

mercurial