comparison src/protocols/msn/msg.h @ 9193:502707ca1836

[gaim-migrate @ 9988] Patch by Felipe Contreras to add MSN file transfer and buddy icons. Please test and report any bugs! committer: Tailor Script <tailor@pidgin.im>
author Christian Hammond <chipx86@chipx86.com>
date Sun, 06 Jun 2004 02:39:08 +0000
parents c30d81b4dd22
children ab6636c5a136
comparison
equal deleted inserted replaced
9192:5655dcd94d0f 9193:502707ca1836
24 24
25 typedef struct _MsnMessage MsnMessage; 25 typedef struct _MsnMessage MsnMessage;
26 26
27 #include "session.h" 27 #include "session.h"
28 #include "user.h" 28 #include "user.h"
29
30 #include "command.h"
31 #include "transaction.h"
32
33 typedef enum
34 {
35 MSN_MSG_NORMAL,
36 MSN_MSG_SLP_SB,
37 MSN_MSG_SLP_DC
38
39 } MsnMsgType;
29 40
30 typedef struct 41 typedef struct
31 { 42 {
32 guint32 session_id; 43 guint32 session_id;
33 guint32 id; 44 guint32 id;
52 */ 63 */
53 struct _MsnMessage 64 struct _MsnMessage
54 { 65 {
55 size_t ref_count; /**< The reference count. */ 66 size_t ref_count; /**< The reference count. */
56 67
68 MsnMsgType type;
69
57 gboolean msnslp_message; 70 gboolean msnslp_message;
58 gboolean msnslp_ack_message; 71
59 72 char *remote_user;
60 char *passport;
61 char flag; 73 char flag;
62 74
63 char *content_type; 75 char *content_type;
64 char *charset; 76 char *charset;
65 char *body; 77 char *body;
66 size_t body_len; 78 gsize body_len;
67 79
68 MsnSlpHeader msnslp_header; 80 MsnSlpHeader msnslp_header;
69 MsnSlpFooter msnslp_footer; 81 MsnSlpFooter msnslp_footer;
70 82
71 MsnMessage *acked_msg;
72
73 GHashTable *attr_table; 83 GHashTable *attr_table;
74 GList *attr_list; 84 GList *attr_list;
85
86 MsnCommand *cmd;
87 MsnTransaction *trans;
88
89 MsnTransCb ack_cb;
90 void *ack_data;
75 }; 91 };
76 92
77 #define MSN_MESSAGE(msg) ((MsnMessage *)(msg))
78
79 /** 93 /**
80 * Creates a new, empty message. 94 * Creates a new, empty message.
81 * 95 *
82 * @return A new message. 96 * @return A new message.
83 */ 97 */
84 MsnMessage *msn_message_new(void); 98 MsnMessage *msn_message_new(void);
85 99
100 /**
101 * Creates a new, empty MSNSLP message.
102 *
103 * @return A new MSNSLP message.
104 */
105 MsnMessage *msn_message_new_msnslp(void);
106
86 MsnMessage *msn_message_new_plain(const char *message); 107 MsnMessage *msn_message_new_plain(const char *message);
87 108
88 /** 109 /**
89 * Creates a new, empty MSNSLP message.
90 *
91 * @return A new MSNSLP message.
92 */
93 MsnMessage *msn_message_new_msnslp(void);
94
95 /**
96 * Creates a MSNSLP ack message. 110 * Creates a MSNSLP ack message.
97 * 111 *
98 * @param acked_msg The message to acknowledge. 112 * @param acked_msg The message to acknowledge.
99 * 113 *
100 * @return A new MSNSLP ack message. 114 * @return A new MSNSLP ack message.
101 */ 115 */
102 MsnMessage *msn_message_new_msnslp_ack(MsnMessage *acked_msg); 116 MsnMessage *msn_message_new_msnslp_ack(MsnMessage *acked_msg);
103 117
104 /** 118 /**
105 * Parse the payload of a message. 119 * Creates a new message based off a command.
120 *
121 * @param session The MSN session.
122 * @param cmd The command.
123 *
124 * @return The new message.
125 */
126 MsnMessage *msn_message_new_from_cmd(MsnSession *session, MsnCommand *cmd);
127
128 /**
129 * Parses the payload of a message.
106 * 130 *
107 * @param msg The message. 131 * @param msg The message.
108 * @param payload The payload. 132 * @param payload The payload.
109 * @param payload_len The length of the payload. 133 * @param payload_len The length of the payload.
110 */ 134 */
144 * @param msg The message. 168 * @param msg The message.
145 * @param ret_size The returned size of the payload. 169 * @param ret_size The returned size of the payload.
146 * 170 *
147 * @return The payload data of the message. 171 * @return The payload data of the message.
148 */ 172 */
149 char *msn_message_gen_payload(const MsnMessage *msg, size_t *ret_size); 173 char *msn_message_gen_payload(MsnMessage *msg, size_t *ret_size);
150 174
151 /** 175 /**
152 * Sets the flag for an outgoing message. 176 * Sets the flag for an outgoing message.
153 * 177 *
154 * @param msg The message. 178 * @param msg The message.
163 * 187 *
164 * @return The flag. 188 * @return The flag.
165 */ 189 */
166 char msn_message_get_flag(const MsnMessage *msg); 190 char msn_message_get_flag(const MsnMessage *msg);
167 191
192 #if 0
168 /** 193 /**
169 * Sets the body of a message. 194 * Sets the body of a message.
170 * 195 *
171 * @param msg The message. 196 * @param msg The message.
172 * @param body The body of the message. 197 * @param body The body of the message.
179 * @param msg The message. 204 * @param msg The message.
180 * 205 *
181 * @return The body of the message. 206 * @return The body of the message.
182 */ 207 */
183 const char *msn_message_get_body(const MsnMessage *msg); 208 const char *msn_message_get_body(const MsnMessage *msg);
184 209 #endif
185 /** 210 /**
186 * Sets the binary content of the message. 211 * Sets the binary content of the message.
187 * 212 *
188 * @param msg The message. 213 * @param msg The message.
189 * @param data The binary data. 214 * @param data The binary data.
262 * 287 *
263 * @return The resulting hashtable. 288 * @return The resulting hashtable.
264 */ 289 */
265 GHashTable *msn_message_get_hashtable_from_body(const MsnMessage *msg); 290 GHashTable *msn_message_get_hashtable_from_body(const MsnMessage *msg);
266 291
292 void msn_message_show_readable(MsnMessage *msg, const char *info,
293 gboolean text_body);
294
295 void msn_message_parse_slp_body(MsnMessage *msg, const char *body,
296 size_t len);
297
298 char *msn_message_gen_slp_body(MsnMessage *msg, size_t *ret_size);
299
300
267 #endif /* _MSN_MSG_H_ */ 301 #endif /* _MSN_MSG_H_ */