diff src/protocols/msn/user.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 d5690ed70085
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/protocols/msn/user.h	Tue May 06 02:06:56 2003 +0000
@@ -0,0 +1,184 @@
+/**
+ * @file user.h User 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_USER_H_
+#define _MSN_USER_H_
+
+typedef struct _MsnUser  MsnUser;
+typedef struct _MsnUsers MsnUsers;
+
+#include "session.h"
+
+/**
+ * A user.
+ */
+struct _MsnUser
+{
+	MsnSession *session; /**< The MSN session.      */
+
+	char *passport;      /**< The passport account. */
+	char *name;          /**< The friendly name.    */
+
+	int group_id;        /**< The group ID.         */
+
+	size_t ref_count;    /**< The reference count.  */
+};
+
+/**
+ * A collection of users.
+ */
+struct _MsnUsers
+{
+	GList *users; /** The list of users. */
+};
+
+/**
+ * Creates a new user structure.
+ * 
+ * @param session  The MSN session.
+ * @param passport The initial passport.
+ * @param name     The initial friendly name.
+ *
+ * @return A new user structure.
+ */
+MsnUser *msn_user_new(MsnSession *session, const char *passport,
+					  const char *name);
+
+/**
+ * Destroys a user structure.
+ *
+ * @param user The user to destroy.
+ */
+void msn_user_destroy(MsnUser *user);
+
+/**
+ * Increments the reference count on a user.
+ *
+ * @param user The user.
+ *
+ * @return @a user
+ */
+MsnUser *msn_user_ref(MsnUser *user);
+
+/**
+ * Decrements the reference count on a user.
+ *
+ * This will destroy the structure if the count hits 0.
+ *
+ * @param user The user.
+ *
+ * @return @a user, or @c NULL if the new count is 0.
+ */
+MsnUser *msn_user_unref(MsnUser *user);
+
+/**
+ * Sets the passport account for a user.
+ *
+ * @param user     The user.
+ * @param passport The passport account.
+ */
+void msn_user_set_passport(MsnUser *user, const char *passport);
+
+/**
+ * Sets the friendly name for a user.
+ *
+ * @param user The user.
+ * @param name The friendly name.
+ */
+void msn_user_set_name(MsnUser *user, const char *name);
+
+/**
+ * Sets the group ID for a user.
+ *
+ * @param user The user.
+ * @param id   The group ID.
+ */
+void msn_user_set_group_id(MsnUser *user, int id);
+
+/**
+ * Returns the passport account for a user.
+ *
+ * @param user The user.
+ *
+ * @return The passport account.
+ */
+const char *msn_user_get_passport(const MsnUser *user);
+
+/**
+ * Returns the friendly name for a user.
+ *
+ * @param user The user.
+ *
+ * @return The friendly name.
+ */
+const char *msn_user_get_name(const MsnUser *user);
+
+/**
+ * Returns the group ID for a user.
+ *
+ * @param user The user.
+ *
+ * @return The group ID.
+ */
+int msn_user_get_group_id(const MsnUser *user);
+
+/**
+ * Creates a new MsnUsers structure.
+ *
+ * @return A new MsnUsers structure.
+ */
+MsnUsers *msn_users_new(void);
+
+/**
+ * Destroys a users list.
+ *
+ * @param users The users list.
+ */
+void msn_users_destroy(MsnUsers *users);
+
+/**
+ * Adds a user to a users list.
+ *
+ * @param users The users list.
+ * @param user  The user.
+ */
+void msn_users_add(MsnUsers *users, MsnUser *user);
+
+/**
+ * Removes a user from a users list.
+ *
+ * @param users The users list.
+ * @param user  The user.
+ */
+void msn_users_remove(MsnUsers *users, MsnUser *user);
+
+
+/**
+ * Finds a user with the specified passport.
+ *
+ * @param users    A list of users.
+ * @param passport The passport.
+ *
+ * @return The user if found, or @c NULL otherwise.
+ */
+MsnUser *msn_users_find_with_passport(MsnUsers *users, const char *passport);
+
+#endif /* _MSN_USER_H_ */