diff 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
line wrap: on
line diff
--- a/src/protocols/msn/msg.h	Sun Jun 06 02:16:08 2004 +0000
+++ b/src/protocols/msn/msg.h	Sun Jun 06 02:39:08 2004 +0000
@@ -27,6 +27,17 @@
 #include "session.h"
 #include "user.h"
 
+#include "command.h"
+#include "transaction.h"
+
+typedef enum
+{
+	MSN_MSG_NORMAL,
+	MSN_MSG_SLP_SB,
+	MSN_MSG_SLP_DC
+
+} MsnMsgType;
+
 typedef struct
 {
 	guint32 session_id;
@@ -54,27 +65,30 @@
 {
 	size_t ref_count;           /**< The reference count.       */
 
+	MsnMsgType type;
+
 	gboolean msnslp_message;
-	gboolean msnslp_ack_message;
 
-	char *passport;
+	char *remote_user;
 	char flag;
 
 	char *content_type;
 	char *charset;
 	char *body;
-	size_t body_len;
+	gsize body_len;
 
 	MsnSlpHeader msnslp_header;
 	MsnSlpFooter msnslp_footer;
 
-	MsnMessage *acked_msg;
-
 	GHashTable *attr_table;
 	GList *attr_list;
-};
+
+	MsnCommand *cmd;
+	MsnTransaction *trans;
 
-#define MSN_MESSAGE(msg) ((MsnMessage *)(msg))
+	MsnTransCb ack_cb;
+	void *ack_data;
+};
 
 /**
  * Creates a new, empty message.
@@ -83,8 +97,6 @@
  */
 MsnMessage *msn_message_new(void);
 
-MsnMessage *msn_message_new_plain(const char *message);
-
 /**
  * Creates a new, empty MSNSLP message.
  *
@@ -92,6 +104,8 @@
  */
 MsnMessage *msn_message_new_msnslp(void);
 
+MsnMessage *msn_message_new_plain(const char *message);
+
 /**
  * Creates a MSNSLP ack message.
  *
@@ -102,7 +116,17 @@
 MsnMessage *msn_message_new_msnslp_ack(MsnMessage *acked_msg);
 
 /**
- * Parse the payload of a message.
+ * Creates a new message based off a command.
+ *
+ * @param session The MSN session.
+ * @param cmd     The command.
+ *
+ * @return The new message.
+ */
+MsnMessage *msn_message_new_from_cmd(MsnSession *session, MsnCommand *cmd);
+
+/**
+ * Parses the payload of a message.
  *
  * @param msg         The message.
  * @param payload     The payload.
@@ -146,7 +170,7 @@
  *
  * @return The payload data of the message.
  */
-char *msn_message_gen_payload(const MsnMessage *msg, size_t *ret_size);
+char *msn_message_gen_payload(MsnMessage *msg, size_t *ret_size);
 
 /**
  * Sets the flag for an outgoing message.
@@ -165,6 +189,7 @@
  */
 char msn_message_get_flag(const MsnMessage *msg);
 
+#if 0
 /**
  * Sets the body of a message.
  *
@@ -181,7 +206,7 @@
  * @return The body of the message.
  */
 const char *msn_message_get_body(const MsnMessage *msg);
-
+#endif
 /**
  * Sets the binary content of the message.
  *
@@ -264,4 +289,13 @@
  */
 GHashTable *msn_message_get_hashtable_from_body(const MsnMessage *msg);
 
+void msn_message_show_readable(MsnMessage *msg, const char *info,
+							   gboolean text_body);
+
+void msn_message_parse_slp_body(MsnMessage *msg, const char *body,
+								size_t len);
+
+char *msn_message_gen_slp_body(MsnMessage *msg, size_t *ret_size);
+
+
 #endif /* _MSN_MSG_H_ */