diff src/protocols/msn/session.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
children bd98232872a3
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/protocols/msn/session.h	Tue May 06 02:06:56 2003 +0000
@@ -0,0 +1,148 @@
+/**
+ * @file session.h MSN session functions
+ *
+ * gaim
+ *
+ * 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
+ * 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_SESSION_H_
+#define _MSN_SESSION_H_
+
+typedef struct _MsnSession MsnSession;
+
+#include "servconn.h"
+#include "switchboard.h"
+#include "user.h"
+
+struct _MsnSession
+{
+	struct gaim_account *account;
+
+	char *dispatch_server;
+	int dispatch_port;
+
+	gboolean connected;
+
+	MsnServConn *dispatch_conn;
+	MsnServConn *notification_conn;
+
+	unsigned int trId;
+
+	MsnUsers *users;
+
+	GList *switches;
+	GHashTable *groups;
+
+	struct
+	{
+		GSList *forward;
+		GSList *reverse;
+		GSList *allow;
+		GSList *block;
+
+	} lists;
+
+	struct
+	{
+		char *kv;
+		char *sid;
+		char *mspauth;
+		unsigned long sl;
+		char *file;
+
+	} passport_info;
+
+	/* You have no idea how much I hate this. */
+	GaimPlugin *prpl;
+};
+
+/**
+ * Creates an MSN session.
+ *
+ * @param account The account.
+ * @param server  The dispatch server.
+ * @param port    The dispatch port.
+ *
+ * @return The new MSN session.
+ */
+MsnSession *msn_session_new(struct gaim_account *account,
+							const char *server, int port);
+
+/**
+ * Destroys an MSN session.
+ *
+ * @param session The MSN session to destroy.
+ */
+void msn_session_destroy(MsnSession *session);
+
+/**
+ * Connects to and initiates an MSN session.
+ *
+ * @param session The MSN session.
+ *
+ * @return @c TRUE on success, @c FALSE on failure.
+ */
+gboolean msn_session_connect(MsnSession *session);
+
+/**
+ * Disconnects from an MSN session.
+ *
+ * @param session The MSN session.
+ */
+void msn_session_disconnect(MsnSession *session);
+
+/**
+ * Opens a new switchboard connection.
+ *
+ * @param session The MSN session.
+ *
+ * @return The new switchboard connection.
+ */
+MsnSwitchBoard *msn_session_open_switchboard(MsnSession *session);
+
+/**
+ * Finds a switch with the given passport.
+ *
+ * @param session  The MSN session.
+ * @param passport The passport to search for.
+ *
+ * @return The switchboard, if found.
+ */
+MsnSwitchBoard *msn_session_find_switch_with_passport(
+		const MsnSession *session, const char *passport);
+
+/**
+ * Finds a switchboard with the given chat ID.
+ *
+ * @param session The MSN session.
+ * @param chat_id The chat ID to search for.
+ *
+ * @return The switchboard, if found.
+ */
+MsnSwitchBoard *msn_session_find_switch_with_id(const MsnSession *session,
+												int chat_id);
+
+/**
+ * Finds the first unused switchboard.
+ *
+ * @param session  The MSN session.
+ *
+ * @return The first unused, writable switchboard, if found.
+ */
+MsnSwitchBoard *msn_session_find_unused_switch(const MsnSession *session);
+
+#endif /* _MSN_SESSION_H_ */