Mercurial > pidgin
diff src/protocols/msn/msg.h @ 5309:e2e53316a21d
[gaim-migrate @ 5681]
Announcing the new MSN prpl! It probably has some bugs, and for the time
being, there is no file transfer. That's good though, because the current
MSN file transfer is a little broken. I've had many corrupted files. I'll
commit new file transfer code when it's written.
I want this heavily tested before 0.63! If you use MSN, please talk to
people on it. Let me know of any oddities, crashes, bugs, whatever. I'll
fix things as I find them.
committer: Tailor Script <tailor@pidgin.im>
author | Christian Hammond <chipx86@chipx86.com> |
---|---|
date | Tue, 06 May 2003 02:06:56 +0000 |
parents | 86b0a0243be8 |
children | 4f72b611f0ee |
line wrap: on
line diff
--- a/src/protocols/msn/msg.h Tue May 06 00:34:54 2003 +0000 +++ b/src/protocols/msn/msg.h Tue May 06 02:06:56 2003 +0000 @@ -3,7 +3,7 @@ * * gaim * - * Copyright (C) 2003, Christian Hammond <chipx86@gnupdate.org> + * Copyright (C) 2003 Christian Hammond <chipx86@gnupdate.org> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -18,20 +18,233 @@ * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * */ #ifndef _MSN_MSG_H_ #define _MSN_MSG_H_ +typedef struct _MsnMessage MsnMessage; + +#include "session.h" +#include "user.h" + /** - * Writes a message to the server. + * A message. + */ +struct _MsnMessage +{ + MsnUser *sender; + MsnUser *receiver; + + unsigned int tid; + char flag; + + gboolean incoming; + + size_t size; + + char *content_type; + char *charset; + char *body; + + GHashTable *attr_table; + GList *attr_list; +}; + +/** + * Creates a new, empty message. + * + * @return A new message. + */ +MsnMessage *msn_message_new(void); + +/** + * Creates a new message based off a string. + * + * @param session The MSN session. + * @param str The string. + * + * @return The new message. + */ +MsnMessage *msn_message_new_from_str(MsnSession *session, const char *str); + +/** + * Destroys a message. + */ +void msn_message_destroy(MsnMessage *msg); + +/** + * Converts a message to a string. + * + * @param msg The message. + * + * @return The string representation of a message. + */ +char *msn_message_build_string(const MsnMessage *msg); + +/** + * Returns TRUE if the message is outgoing. + * + * @param msg The message. + * + * @return @c TRUE if the message is outgoing, or @c FALSE otherwise. + */ +gboolean msn_message_is_outgoing(const MsnMessage *msg); + +/** + * Returns TRUE if the message is incoming. + * + * @param msg The message. + * + * @return @c TRUE if the message is incoming, or @c FALSE otherwise. + */ +gboolean msn_message_is_incoming(const MsnMessage *msg); + +/** + * Sets the message's sender. + * + * @param msg The message. + * @param user The sender. + */ +void msn_message_set_sender(MsnMessage *msg, MsnUser *user); + +/** + * Returns the message's sender. + * + * @param msg The message. + * + * @return The sender. + */ +MsnUser *msn_message_get_sender(const MsnMessage *msg); + +/** + * Sets the message's receiver. + * + * @param msg The message. + * @param user The receiver. + */ +void msn_message_set_receiver(MsnMessage *msg, MsnUser *user); + +/** + * Returns the message's receiver. + * + * @param msg The message. * - * @param fd The file descriptor. - * @param data The data to write. - * @param len The length of the data + * @return The receiver. + */ +MsnUser *msn_message_get_receiver(const MsnMessage *msg); + +/** + * Sets the message transaction ID. + * + * @param msg The message. + * @param tid The transaction ID. + */ +void msn_message_set_transaction_id(MsnMessage *msg, unsigned int tid); + +/** + * Returns the message transaction ID. + * + * @param msg The message. + * + * @return The transaction ID. + */ +unsigned int msn_message_get_transaction_id(const MsnMessage *msg); + +/** + * Sets the flag for an outgoing message. + * + * @param msg The message. + * @param flag The flag. + */ +void msn_message_set_flag(MsnMessage *msg, char flag); + +/** + * Returns the flag for an outgoing message. + * + * @param msg The message. + * + * @return The flag. + */ +char msn_message_get_flag(const MsnMessage *msg); + +/** + * Sets the body of a message. + * + * @param msg The message. + * @param body The body of the message. + */ +void msn_message_set_body(MsnMessage *msg, const char *body); + +/** + * Returns the body of the message. + * + * @param msg The message. + * + * @return The body of the message. + */ +const char *msn_message_get_body(const MsnMessage *msg); + +/** + * Sets the content type in a message. * - * @return The number of bytes written. + * @param msg The message. + * @param type The content-type. + */ +void msn_message_set_content_type(MsnMessage *msg, const char *type); + +/** + * Returns the content type in a message. + * + * @param msg The message. + * + * @return The content-type. + */ +const char *msn_message_get_content_type(const MsnMessage *msg); + +/** + * Sets the charset in a message. + * + * @param msg The message. + * @param charset The charset. + */ +void msn_message_set_charset(MsnMessage *msg, const char *charset); + +/** + * Returns the charset in a message. + * + * @param msg The message. + * + * @return The charset. */ -int msn_write(int fd, void *data, int len); +const char *msn_message_get_charset(const MsnMessage *msg); + +/** + * Sets an attribute in a message. + * + * @param msg The message. + * @param attr The attribute name. + * @param value The attribute value. + */ +void msn_message_set_attr(MsnMessage *msg, const char *attr, + const char *value); + +/** + * Returns an attribute from a message. + * + * @param msg The message. + * @param attr The attribute. + * + * @return The value, or @c NULL if not found. + */ +const char *msn_message_get_attr(const MsnMessage *msg, const char *attr); + +/** + * Parses the body and returns it in the form of a hashtable. + * + * @param msg The message. + * + * @return The resulting hashtable. + */ +GHashTable *msn_message_get_hashtable_from_body(const MsnMessage *msg); #endif /* _MSN_MSG_H_ */