diff -r d10dda2777a9 -r b63ebf84c42b src/protocols/msn/switchboard.h --- a/src/protocols/msn/switchboard.h Sat Aug 19 00:24:14 2006 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,276 +0,0 @@ -/** - * @file switchboard.h MSN switchboard functions - * - * gaim - * - * Gaim is the legal property of its developers, whose names are too numerous - * to list here. Please refer to the COPYRIGHT file distributed with this - * source distribution. - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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_SWITCHBOARD_H_ -#define _MSN_SWITCHBOARD_H_ - -typedef struct _MsnSwitchBoard MsnSwitchBoard; - -#include "conversation.h" - -#include "msg.h" -#include "user.h" - -#include "servconn.h" - -#include "slplink.h" - -/** - * A switchboard error. - */ -typedef enum -{ - MSN_SB_ERROR_NONE, /**< No error. */ - MSN_SB_ERROR_CAL, /**< The user could not join (answer the call). */ - MSN_SB_ERROR_OFFLINE, /**< The account is offline. */ - MSN_SB_ERROR_USER_OFFLINE, /**< The user to call is offline. */ - MSN_SB_ERROR_CONNECTION, /**< There was a connection error. */ - MSN_SB_ERROR_TOO_FAST, /**< We are sending too fast */ - MSN_SB_ERROR_UNKNOWN /**< An unknown error occurred. */ - -} MsnSBErrorType; - -/** - * A switchboard flag. - */ -typedef enum -{ - MSN_SB_FLAG_IM = 0x01, /**< This switchboard is being used for a conversation. */ - MSN_SB_FLAG_FT = 0x02, /**< This switchboard is being used for file transfer. */ - -} MsnSBFlag; - -/** - * A switchboard. - * - * A place where a bunch of users send messages to the rest of the users. - */ -struct _MsnSwitchBoard -{ - MsnSession *session; - MsnServConn *servconn; - MsnCmdProc *cmdproc; - char *im_user; - - MsnSBFlag flag; - char *auth_key; - char *session_id; - - GaimConversation *conv; /**< The conversation that displays the - messages of this switchboard, or @c NULL if - this is a helper switchboard. */ - - gboolean empty; /**< A flag that states if the swithcboard has no - users in it. */ - gboolean invited; /**< A flag that states if we were invited to the - switchboard. */ - gboolean ready; /**< A flag that states if this switchboard is - ready to be used. */ - gboolean closed; /**< A flag that states if the switchboard has - been closed by the user. */ - gboolean destroying; /**< A flag that states if the switchboard is - alredy on the process of destruction. */ - - int current_users; - int total_users; - GList *users; - - int chat_id; - - GQueue *msg_queue; /**< Queue of messages to send. */ - GList *ack_list; /**< List of messages waiting for an ack. */ - - MsnSBErrorType error; /**< The error that occurred in this switchboard - (if applicable). */ - GList *slplinks; /**< The list of slplinks that are using this switchboard. */ -}; - -/** - * Initialize the variables for switchboard creation. - */ -void msn_switchboard_init(void); - -/** - * Destroy the variables for switchboard creation. - */ -void msn_switchboard_end(void); - -/** - * Creates a new switchboard. - * - * @param session The MSN session. - * - * @return The new switchboard. - */ -MsnSwitchBoard *msn_switchboard_new(MsnSession *session); - -/** - * Destroys a switchboard. - * - * @param swboard The switchboard to destroy. - */ -void msn_switchboard_destroy(MsnSwitchBoard *swboard); - -/** - * Sets the auth key the switchboard must use when connecting. - * - * @param swboard The switchboard. - * @param key The auth key. - */ -void msn_switchboard_set_auth_key(MsnSwitchBoard *swboard, const char *key); - -/** - * Returns the auth key the switchboard must use when connecting. - * - * @param swboard The switchboard. - * - * @return The auth key. - */ -const char *msn_switchboard_get_auth_key(MsnSwitchBoard *swboard); - -/** - * Sets the session ID the switchboard must use when connecting. - * - * @param swboard The switchboard. - * @param id The session ID. - */ -void msn_switchboard_set_session_id(MsnSwitchBoard *swboard, const char *id); - -/** - * Returns the session ID the switchboard must use when connecting. - * - * @param swboard The switchboard. - * - * @return The session ID. - */ -const char *msn_switchboard_get_session_id(MsnSwitchBoard *swboard); - -/** - * Sets whether or not we were invited to this switchboard. - * - * @param swboard The switchboard. - * @param invite @c TRUE if invited, @c FALSE otherwise. - */ -void msn_switchboard_set_invited(MsnSwitchBoard *swboard, gboolean invited); - -/** - * Returns whether or not we were invited to this switchboard. - * - * @param swboard The switchboard. - * - * @return @c TRUE if invited, @c FALSE otherwise. - */ -gboolean msn_switchboard_is_invited(MsnSwitchBoard *swboard); - -/** - * Connects to a switchboard. - * - * @param swboard The switchboard. - * @param host The switchboard server host. - * @param port The switcbharod server port. - * - * @return @c TRUE if able to connect, or @c FALSE otherwise. - */ -gboolean msn_switchboard_connect(MsnSwitchBoard *swboard, - const char *host, int port); - -/** - * Disconnects from a switchboard. - * - * @param swboard The switchboard to disconnect from. - */ -void msn_switchboard_disconnect(MsnSwitchBoard *swboard); - -/** - * Closes the switchboard. - * - * Called when a conversation is closed. - * - * @param swboard The switchboard to close. - */ -void msn_switchboard_close(MsnSwitchBoard *swboard); - -/** - * Release a switchboard from a certain function. - * - * @param swboard The switchboard to release. - * @param flag The flag that states the function. - * - * @return @c TRUE if the switchboard was closed, @c FALSE otherwise. - */ -gboolean msn_switchboard_release(MsnSwitchBoard *swboard, MsnSBFlag flag); - -/** - * Returns whether or not we currently can send a message through this - * switchboard. - * - * @param swboard The switchboard. - * - * @return @c TRUE if a message can be sent, @c FALSE otherwise. - */ -gboolean msn_switchboard_can_send(MsnSwitchBoard *swboard); - -/** - * Sends a message through this switchboard. - * - * @param swboard The switchboard. - * @param msg The message. - * @param queue A flag that states if we want this message to be queued (in - * the case it cannot currently be sent). - * - * @return @c TRUE if a message can be sent, @c FALSE otherwise. - */ -void msn_switchboard_send_msg(MsnSwitchBoard *swboard, MsnMessage *msg, - gboolean queue); - -gboolean msn_switchboard_chat_leave(MsnSwitchBoard *swboard); -gboolean msn_switchboard_chat_invite(MsnSwitchBoard *swboard, const char *who); - -void msn_switchboard_request(MsnSwitchBoard *swboard); -void msn_switchboard_request_add_user(MsnSwitchBoard *swboard, const char *user); - -/** - * Processes peer to peer messages. - * - * @param cmdproc The command processor. - * @param msg The message. - */ -void msn_p2p_msg(MsnCmdProc *cmdproc, MsnMessage *msg); - -/** - * Processes emoticon messages. - * - * @param cmdproc The command processor. - * @param msg The message. - */ -void msn_emoticon_msg(MsnCmdProc *cmdproc, MsnMessage *msg); - -/** - * Processes INVITE messages. - * - * @param cmdproc The command processor. - * @param msg The message. - */ -void msn_invite_msg(MsnCmdProc *cmdproc, MsnMessage *msg); - -#endif /* _MSN_SWITCHBOARD_H_ */