comparison src/protocols/msn/user.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 06f57183e29f
children ab6636c5a136
comparison
equal deleted inserted replaced
9192:5655dcd94d0f 9193:502707ca1836
21 */ 21 */
22 #ifndef _MSN_USER_H_ 22 #ifndef _MSN_USER_H_
23 #define _MSN_USER_H_ 23 #define _MSN_USER_H_
24 24
25 typedef struct _MsnUser MsnUser; 25 typedef struct _MsnUser MsnUser;
26 typedef struct _MsnUsers MsnUsers;
27 26
28 #include "session.h" 27 #include "session.h"
29 #include "msnobject.h" 28 #include "object.h"
29
30 #include "userlist.h"
30 31
31 /** 32 /**
32 * A user. 33 * A user.
33 */ 34 */
34 struct _MsnUser 35 struct _MsnUser
35 { 36 {
36 MsnSession *session; /**< The MSN session. */ 37 #if 0
37 38 MsnSession *session; /**< The MSN session. */
38 char *passport; /**< The passport account. */ 39 #endif
39 char *name; /**< The friendly name. */ 40 MsnUserList *userlist;
41
42 char *passport; /**< The passport account. */
43 char *store_name; /**< The name stored in the server. */
44 char *friendly_name; /**< The friendly name. */
40 45
41 struct 46 struct
42 { 47 {
43 char *home; /**< Home phone number. */ 48 char *home; /**< Home phone number. */
44 char *work; /**< Work phone number. */ 49 char *work; /**< Work phone number. */
45 char *mobile; /**< Mobile phone number. */ 50 char *mobile; /**< Mobile phone number. */
46 51
47 } phone; 52 } phone;
48 53
49 gboolean authorized; /**< Authorized to add this user. */ 54 gboolean authorized; /**< Authorized to add this user. */
50 gboolean mobile; /**< Signed up with MSN Mobile. */ 55 gboolean mobile; /**< Signed up with MSN Mobile. */
51 56
52 GList *group_ids; /**< The group IDs. */ 57 GList *group_ids; /**< The group IDs. */
53 58
54 size_t ref_count; /**< The reference count. */ 59 MsnObject *msnobj; /**< The user's MSN Object. */
55 60
56 MsnObject *msnobj; /**< The user's MSN Object. */ 61 GHashTable *clientcaps; /**< The client's capabilities. */
57 62
58 GHashTable *clientcaps; /**< The client's capabilities. */ 63 int list_op;
59 };
60
61 /**
62 * A collection of users.
63 */
64 struct _MsnUsers
65 {
66 size_t count; /**< The number of users. */
67
68 GList *users; /**< The list of users. */
69 }; 64 };
70 65
71 /**************************************************************************/ 66 /**************************************************************************/
72 /** @name User API */ 67 /** @name User API */
73 /**************************************************************************/ 68 /**************************************************************************/
74 /*@{*/ 69 /*@{*/
75 70
76 /** 71 /**
77 * Creates a new user structure. 72 * Creates a new user structure.
78 * 73 *
79 * @param session The MSN session. 74 * @param session The MSN session.
80 * @param passport The initial passport. 75 * @param passport The initial passport.
81 * @param name The initial friendly name. 76 * @param stored_name The initial stored name.
82 * 77 *
83 * @return A new user structure. 78 * @return A new user structure.
84 */ 79 */
85 MsnUser *msn_user_new(MsnSession *session, const char *passport, 80 MsnUser *msn_user_new(MsnUserList *userlist, const char *passport,
86 const char *name); 81 const char *store_name);
87 82
88 /** 83 /**
89 * Destroys a user structure. 84 * Destroys a user structure.
90 * 85 *
91 * @param user The user to destroy. 86 * @param user The user to destroy.
92 */ 87 */
93 void msn_user_destroy(MsnUser *user); 88 void msn_user_destroy(MsnUser *user);
94
95 /**
96 * Increments the reference count on a user.
97 *
98 * @param user The user.
99 *
100 * @return @a user
101 */
102 MsnUser *msn_user_ref(MsnUser *user);
103
104 /**
105 * Decrements the reference count on a user.
106 *
107 * This will destroy the structure if the count hits 0.
108 *
109 * @param user The user.
110 *
111 * @return @a user, or @c NULL if the new count is 0.
112 */
113 MsnUser *msn_user_unref(MsnUser *user);
114 89
115 /** 90 /**
116 * Sets the passport account for a user. 91 * Sets the passport account for a user.
117 * 92 *
118 * @param user The user. 93 * @param user The user.
124 * Sets the friendly name for a user. 99 * Sets the friendly name for a user.
125 * 100 *
126 * @param user The user. 101 * @param user The user.
127 * @param name The friendly name. 102 * @param name The friendly name.
128 */ 103 */
129 void msn_user_set_name(MsnUser *user, const char *name); 104 void msn_user_set_friendly_name(MsnUser *user, const char *name);
105
106 /**
107 * Sets the store name for a user.
108 *
109 * @param user The user.
110 * @param name The store name.
111 */
112 void msn_user_set_store_name(MsnUser *user, const char *name);
130 113
131 /** 114 /**
132 * Sets the buddy icon for a local user. 115 * Sets the buddy icon for a local user.
133 * 116 *
134 * @param user The user. 117 * @param user The user.
215 * 198 *
216 * @param user The user. 199 * @param user The user.
217 * 200 *
218 * @return The friendly name. 201 * @return The friendly name.
219 */ 202 */
220 const char *msn_user_get_name(const MsnUser *user); 203 const char *msn_user_get_friendly_name(const MsnUser *user);
221 204
222 /** 205 /**
223 * Returns the group IDs for a user. 206 * Returns the store name for a user.
224 * 207 *
225 * @param user The user. 208 * @param user The user.
226 * 209 *
227 * @return The group IDs. 210 * @return The store name.
228 */ 211 */
229 GList *msn_user_get_group_ids(const MsnUser *user); 212 const char *msn_user_get_store_name(const MsnUser *user);
230 213
231 /** 214 /**
232 * Returns the home phone number for a user. 215 * Returns the home phone number for a user.
233 * 216 *
234 * @param user The user. 217 * @param user The user.
273 */ 256 */
274 GHashTable *msn_user_get_client_caps(const MsnUser *user); 257 GHashTable *msn_user_get_client_caps(const MsnUser *user);
275 258
276 /*@}*/ 259 /*@}*/
277 260
278 /**************************************************************************/
279 /** @name User List API */
280 /**************************************************************************/
281 /*@{*/
282
283 /**
284 * Creates a new MsnUsers structure.
285 *
286 * @return A new MsnUsers structure.
287 */
288 MsnUsers *msn_users_new(void);
289
290 /**
291 * Destroys a users list.
292 *
293 * @param users The users list.
294 */
295 void msn_users_destroy(MsnUsers *users);
296
297 /**
298 * Adds a user to a users list.
299 *
300 * @param users The users list.
301 * @param user The user.
302 */
303 void msn_users_add(MsnUsers *users, MsnUser *user);
304
305 /**
306 * Removes a user from a users list.
307 *
308 * @param users The users list.
309 * @param user The user.
310 */
311 void msn_users_remove(MsnUsers *users, MsnUser *user);
312
313 /**
314 * Returns the number of users in a users list.
315 *
316 * @param users The users list.
317 *
318 * @return The number of users.
319 */
320 size_t msn_users_get_count(const MsnUsers *users);
321
322 /**
323 * Finds a user with the specified passport.
324 *
325 * @param users A list of users.
326 * @param passport The passport.
327 *
328 * @return The user if found, or @c NULL otherwise.
329 */
330 MsnUser *msn_users_find_with_passport(MsnUsers *users, const char *passport);
331
332 /*@}*/
333
334 #endif /* _MSN_USER_H_ */ 261 #endif /* _MSN_USER_H_ */