Mercurial > pidgin
annotate src/protocols/novell/nmuser.h @ 13031:6728a282269b
[gaim-migrate @ 15384]
Show disconnected buttons for wants_to_die disconnections, too
(invalid password, for example)
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Tue, 24 Jan 2006 04:54:50 +0000 |
parents | d77537e8bfe5 |
children |
rev | line source |
---|---|
8675 | 1 /* |
2 * nmuser.h | |
3 * | |
8933 | 4 * Copyright (c) 2004 Novell, Inc. All Rights Reserved. |
5 * | |
6 * This program is free software; you can redistribute it and/or modify | |
7 * it under the terms of the GNU General Public License as published by | |
8 * the Free Software Foundation; version 2 of the License. | |
8675 | 9 * |
8933 | 10 * This program is distributed in the hope that it will be useful, |
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 * GNU General Public License for more details. | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
14 * |
8933 | 15 * You should have received a copy of the GNU General Public License |
16 * along with this program; if not, write to the Free Software | |
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
8675 | 18 * |
19 */ | |
20 | |
21 #ifndef __NM_USER_H__ | |
22 #define __NM_USER_H__ | |
23 | |
24 #include <glib.h> | |
25 #include <stdio.h> | |
26 #include <stdlib.h> | |
27 | |
28 typedef guint32 NMERR_T; | |
29 typedef int NMSTATUS_T; | |
30 | |
31 typedef struct _NMUser NMUser; | |
32 | |
33 typedef enum | |
34 { | |
35 NMREQUEST_TYPE_LOGIN = 0, | |
36 NMREQUEST_TYPE_LOGOUT, | |
37 NMREQUEST_TYPE_SETSTATUS, | |
38 NMREQUEST_TYPE_GETDETAILS, | |
39 NMREQUEST_TYPE_CREATECONF, | |
40 NMREQUEST_TYPE_SENDMESSAGE, | |
41 NMREQUEST_TYPE_JOINCONF, | |
42 NMREQUEST_TYPE_LEAVECONF, | |
43 NMREQUEST_TYPE_REJECTCONF, | |
44 NMREQUEST_TYPE_SENDTYPING, | |
45 NMREQUEST_TYPE_CREATECONTACT, | |
46 NMREQUEST_TYPE_DELETECONTACT | |
47 | |
48 } NMRequestType; | |
49 | |
50 #include "debug.h" | |
51 #include "nmmessage.h" | |
52 #include "nmconference.h" | |
53 #include "nmcontact.h" | |
54 #include "nmuserrecord.h" | |
55 #include "nmfield.h" | |
56 #include "nmevent.h" | |
57 | |
58 /* Callback typedefs */ | |
59 typedef void (*nm_response_cb) (NMUser * user, NMERR_T ret_code, | |
60 gpointer resp_data, gpointer user_data); | |
61 | |
62 typedef void (*nm_event_cb) (NMUser * user, NMEvent * event); | |
63 | |
64 #include "nmrequest.h" | |
65 #include "nmconn.h" | |
66 | |
67 /* This represents user that we are currently logged in as */ | |
68 struct _NMUser | |
69 { | |
70 | |
71 char *name; | |
72 | |
73 NMSTATUS_T status; | |
74 | |
75 /* A copy of the login response fields */ | |
76 NMField *fields; | |
77 | |
78 /* The user record for this user */ | |
79 NMUserRecord *user_record; | |
80 | |
81 /* Our connection information */ | |
82 NMConn *conn; | |
83 | |
84 /* Our public IP address */ | |
85 char *address; | |
86 | |
87 /* This is the contact list */ | |
88 NMFolder *root_folder; | |
89 | |
90 /* All contacts that we know about hashed by dn */ | |
91 GHashTable *contacts; | |
92 | |
93 /* All user records hashed by dn */ | |
94 GHashTable *user_records; | |
95 | |
96 /* DN lookup */ | |
97 GHashTable *display_id_to_dn; | |
98 | |
99 /* One on one conversations indexed by recipient's dn */ | |
100 GSList *conferences; | |
101 | |
102 guint32 conference_count; | |
103 | |
104 /* Called when we receive an event */ | |
105 nm_event_cb evt_callback; | |
106 | |
8933 | 107 /* Privacy settings */ |
108 gboolean privacy_locked; | |
109 gboolean default_deny; | |
110 GSList *allow_list; | |
111 GSList *deny_list; | |
112 | |
8675 | 113 /* Pending requests. If we need to go to the server to more info |
114 * before processing a request we will queue it up and process when | |
115 * we get a response | |
116 */ | |
117 GSList *pending_requests; | |
118 | |
119 /* Pending events. Same as above except for events. */ | |
120 GSList *pending_events; | |
121 | |
122 /* Generic pointer to data needed by the client | |
123 * using the API | |
124 */ | |
125 gpointer client_data; | |
126 | |
9268 | 127 /* Have the privacy lists been synched yet */ |
128 gboolean privacy_synched; | |
129 | |
9360 | 130 /* Has the contact list been synched */ |
131 gboolean clist_synched; | |
8675 | 132 }; |
133 | |
134 #define NM_STATUS_UNKNOWN 0 | |
135 #define NM_STATUS_OFFLINE 1 | |
136 #define NM_STATUS_AVAILABLE 2 | |
137 #define NM_STATUS_BUSY 3 | |
138 #define NM_STATUS_AWAY 4 | |
139 #define NM_STATUS_AWAY_IDLE 5 | |
140 #define NM_STATUS_INVALID 6 | |
141 | |
142 #define NMERR_BASE 0x2000L | |
143 #define NM_OK 0L | |
144 #define NMERR_BAD_PARM (NMERR_BASE + 0x0001) | |
145 #define NMERR_TCP_WRITE (NMERR_BASE + 0x0002) | |
146 #define NMERR_TCP_READ (NMERR_BASE + 0x0003) | |
147 #define NMERR_PROTOCOL (NMERR_BASE + 0x0004) | |
8933 | 148 #define NMERR_SERVER_REDIRECT (NMERR_BASE + 0x0005) |
8675 | 149 #define NMERR_CONFERENCE_NOT_FOUND (NMERR_BASE + 0x0006) |
150 #define NMERR_CONFERENCE_NOT_INSTANTIATED (NMERR_BASE + 0x0007) | |
151 #define NMERR_FOLDER_EXISTS (NMERR_BASE + 0x0008) | |
152 | |
8933 | 153 /* Errors that are returned from the server */ |
154 #define NMERR_SERVER_BASE 0xD100L | |
155 #define NMERR_ACCESS_DENIED (NMERR_SERVER_BASE + 0x0006) | |
156 #define NMERR_NOT_SUPPORTED (NMERR_SERVER_BASE + 0x000A) | |
157 #define NMERR_PASSWORD_EXPIRED (NMERR_SERVER_BASE + 0x000B) | |
158 #define NMERR_PASSWORD_INVALID (NMERR_SERVER_BASE + 0x000C) | |
159 #define NMERR_USER_NOT_FOUND (NMERR_SERVER_BASE + 0x000D) | |
160 #define NMERR_USER_DISABLED (NMERR_SERVER_BASE + 0x0010) | |
161 #define NMERR_DIRECTORY_FAILURE (NMERR_SERVER_BASE + 0x0011) | |
162 #define NMERR_HOST_NOT_FOUND (NMERR_SERVER_BASE + 0x0019) | |
163 #define NMERR_ADMIN_LOCKED (NMERR_SERVER_BASE + 0x001C) | |
164 #define NMERR_DUPLICATE_PARTICIPANT (NMERR_SERVER_BASE + 0x001F) | |
165 #define NMERR_SERVER_BUSY (NMERR_SERVER_BASE + 0x0023) | |
166 #define NMERR_OBJECT_NOT_FOUND (NMERR_SERVER_BASE + 0x0024) | |
167 #define NMERR_DIRECTORY_UPDATE (NMERR_SERVER_BASE + 0x0025) | |
168 #define NMERR_DUPLICATE_FOLDER (NMERR_SERVER_BASE + 0x0026) | |
169 #define NMERR_DUPLICATE_CONTACT (NMERR_SERVER_BASE + 0x0027) | |
170 #define NMERR_USER_NOT_ALLOWED (NMERR_SERVER_BASE + 0x0028) | |
171 #define NMERR_TOO_MANY_CONTACTS (NMERR_SERVER_BASE + 0x0029) | |
172 #define NMERR_CONFERENCE_NOT_FOUND_2 (NMERR_SERVER_BASE + 0x002B) | |
173 #define NMERR_TOO_MANY_FOLDERS (NMERR_SERVER_BASE + 0x002C) | |
174 #define NMERR_SERVER_PROTOCOL (NMERR_SERVER_BASE + 0x0030) | |
175 #define NMERR_CONVERSATION_INVITE (NMERR_SERVER_BASE + 0x0035) | |
176 #define NMERR_USER_BLOCKED (NMERR_SERVER_BASE + 0x0039) | |
177 #define NMERR_MASTER_ARCHIVE_MISSING (NMERR_SERVER_BASE + 0x003A) | |
178 #define NMERR_PASSWORD_EXPIRED_2 (NMERR_SERVER_BASE + 0x0042) | |
179 #define NMERR_CREDENTIALS_MISSING (NMERR_SERVER_BASE + 0x0046) | |
180 #define NMERR_AUTHENTICATION_FAILED (NMERR_SERVER_BASE + 0x0049) | |
181 #define NMERR_EVAL_CONNECTION_LIMIT (NMERR_SERVER_BASE + 0x004A) | |
8675 | 182 |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
183 /** |
8675 | 184 * Initialize the user that we are going to login to the system as. |
185 * | |
186 * @param name The userid of the user | |
187 * @param server IP Address of server | |
188 * @param port Port to connect to on the server | |
189 * @param data Client data to associate with the user | |
8735
92cbf9713795
[gaim-migrate @ 9490]
Christian Hammond <chipx86@chipx86.com>
parents:
8684
diff
changeset
|
190 * @param event_callback Function to call when we receive an event |
8675 | 191 * |
192 * @return The initialized user object. Must be freed by calling | |
193 * nm_deinitialize_user | |
194 */ | |
195 NMUser *nm_initialize_user(const char *name, const char *server, int port, | |
196 gpointer data, nm_event_cb event_callback); | |
197 | |
198 | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
199 /** |
8675 | 200 * Free up resources associated with the user object. |
201 * | |
202 * @param user The user to deinitialize | |
203 */ | |
204 void nm_deinitialize_user(NMUser * user); | |
205 | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
206 /** |
8675 | 207 * Send a login request to the server. |
208 * | |
209 * The response data sent to the callback will be NULL. | |
210 * | |
211 * @param user The User to login -- must be initialized | |
212 * @param pwd The password of the user | |
213 * @param my_addr The address of the client machine | |
214 * @param user_agent String describing the client (eg. "Gaim/0.76 (Linux; 2.4.20)") | |
215 * @param callback Function to call when we get the response from the server | |
216 * @param data User defined data to be passed to the callback function | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
217 * |
8675 | 218 * |
219 * @return NM_OK if login is sent successfully, error otherwise. | |
220 */ | |
221 NMERR_T nm_send_login(NMUser * user, const char *pwd, const char *my_addr, | |
222 const char *user_agent, nm_response_cb callback, | |
223 gpointer data); | |
224 | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
225 /** |
8675 | 226 * Send a set status request to the server. |
227 * | |
228 * The response data sent to the callback will be NULL. | |
229 * | |
230 * @param user The logged in User | |
231 * @param dn The DN of the user (if known, or NULL if not known) | |
232 * @param address IP Address of server | |
233 * @param callback Function to call when we get the response from the server | |
234 * | |
235 * | |
236 * @return NM_OK if successfully sent, error otherwise | |
237 */ | |
238 NMERR_T nm_send_set_status(NMUser * user, int status, const char *text, | |
239 const char *auto_resp, nm_response_cb callback, | |
240 gpointer data); | |
241 | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
242 /** |
8675 | 243 * Send a create conference to the server. |
244 * | |
245 * The response data sent to the callback will be NULL. | |
246 * | |
8933 | 247 * @param user The logged in User |
248 * @param conference Conference to create | |
249 * @param add_participants Add participant list on create? | |
250 * @param callback Function to call when we get the response from the server | |
251 * @param data User defined data to be passed to the callback function | |
8675 | 252 * |
253 * @return NM_OK if successfully sent, error otherwise | |
254 */ | |
255 NMERR_T nm_send_create_conference(NMUser * user, NMConference * conference, | |
256 nm_response_cb callback, gpointer data); | |
257 | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
258 /** |
8675 | 259 * Tell server we have left the conference. |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
260 * |
8675 | 261 * The response data sent to the callback will be NULL. |
262 * | |
263 * @param user The logged in User | |
264 * @param conference Conference the user is leaving | |
265 * @param callback Function to call when we get the response from the server | |
266 * @param data User defined data to be passed to the callback function | |
267 * | |
268 * @return NM_OK if successfully sent, error otherwise | |
269 */ | |
270 NMERR_T nm_send_leave_conference(NMUser * user, NMConference * conference, | |
271 nm_response_cb callback, gpointer data); | |
272 | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
273 /** |
8675 | 274 * Send a join conference request to the server. |
275 * | |
276 * The response data sent to the callback will be NULL. | |
277 * | |
278 * @param user The logged in User | |
279 * @param conference Conference the user is joining | |
280 * @param callback Function to call when we get the response from the server | |
281 * @param data User defined data to be passed to the callback function | |
282 * | |
283 * | |
284 * @return NM_OK if successfully sent, error otherwise | |
285 */ | |
286 NMERR_T nm_send_join_conference(NMUser * user, NMConference * conference, | |
287 nm_response_cb callback, gpointer data); | |
288 | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
289 /** |
8675 | 290 * Send a conference reject request to the server. |
291 * | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
292 * The response data sent to the callback will be NULL. |
8675 | 293 * |
294 * @param user The logged in User | |
295 * @param conference Conference the user is rejecting | |
296 * @param callback Function to call when we get the response from the server | |
297 * @param data User defined data to be passed to the callback function | |
298 * | |
299 * | |
300 * @return NM_OK if successfully sent, error otherwise | |
301 */ | |
302 NMERR_T nm_send_reject_conference(NMUser * user, NMConference * conference, | |
303 nm_response_cb callback, gpointer data); | |
304 | |
8933 | 305 |
306 /** | |
307 * Send a conference invitation to the server. | |
308 * | |
309 * The response data sent to the callback will be NULL. | |
310 * | |
311 * @param user The logged in User | |
312 * @param conference Conference the user is rejecting | |
313 * @param user_record The user to invite | |
314 * @param message The invite message if there is one, NULL otherwise | |
315 * @param callback Function to call when we get the response from the server | |
316 * @param data User defined data to be passed to the callback function | |
317 * | |
318 * | |
319 * @return NM_OK if successfully sent, error otherwise | |
320 */ | |
321 NMERR_T nm_send_conference_invite(NMUser *user, NMConference *conference, NMUserRecord *user_record, | |
322 const char *message, nm_response_cb callback, gpointer data); | |
323 | |
324 /** | |
325 * Get details for a more than one user from the server. | |
326 * | |
327 * The response data sent to the callback will be an NMUserRecord which should be | |
328 * freed with nm_release_user_record | |
329 * | |
330 * @param user The logged in User | |
331 * @param names Link list of user id's or dn's | |
332 * @param callback Function to call when we get the response from the server | |
333 * @param data User defined data to be passed to the callback function | |
334 * | |
335 * @return NM_OK if successfully sent, error otherwise | |
336 */ | |
337 NMERR_T nm_send_multiple_get_details(NMUser * user, GSList *names, | |
338 nm_response_cb callback, gpointer data); | |
339 | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
340 /** |
8675 | 341 * Get details for a user from the server. |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
342 * |
8675 | 343 * The response data sent to the callback will be an NMUserRecord which should be |
344 * freed with nm_release_user_record | |
345 * | |
346 * @param user The logged in User | |
347 * @param name Userid or DN of the user to look up | |
348 * @param callback Function to call when we get the response from the server | |
349 * @param data User defined data to be passed to the callback function | |
350 * | |
351 * @return NM_OK if successfully sent, error otherwise | |
352 */ | |
353 NMERR_T nm_send_get_details(NMUser * user, const char *name, | |
354 nm_response_cb callback, gpointer data); | |
355 | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
356 /** |
8675 | 357 * Send a message. |
358 * | |
359 * The response data sent to the callback will be NULL. | |
360 * | |
361 * @param user The logged in User | |
362 * @param message The message to send. | |
363 * @param callback Function to call when we get the response from the server | |
364 * | |
365 * @return NM_OK if successfully sent, error otherwise | |
366 */ | |
367 NMERR_T nm_send_message(NMUser * user, NMMessage * message, | |
368 nm_response_cb callback); | |
369 | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
370 /** |
8675 | 371 * Sends a typing event to the server. |
372 * | |
373 * The response data sent to the callback will be NULL. | |
374 * | |
375 * @param user The logged in User | |
376 * @param conf The conference that corresponds to the typing event | |
377 * @param typing TRUE if the user is typing | |
378 * FALSE if the user has stopped typing | |
379 * @param callback Function to call when we get the response from the server | |
380 * | |
381 * @return NM_OK if successfully sent, error otherwise | |
382 */ | |
383 NMERR_T nm_send_typing(NMUser * user, NMConference * conf, | |
384 gboolean typing, nm_response_cb callback); | |
385 | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
386 /** |
8675 | 387 * Send a create contact request to the server. |
388 * | |
389 * The given folder should already exist on the server. If not, | |
390 * the call will fail. | |
391 * | |
392 * The response data sent to the callback will be a NMContact which should | |
393 * be released with nm_release_contact | |
394 * | |
395 * @param user The logged in User | |
396 * @param folder The folder that the contact should be created in | |
397 * @param contact The contact to add | |
398 * @param callback Function to call when we get the response from the server | |
399 * @param data User defined data | |
400 * | |
401 * @return NM_OK if successfully sent, error otherwise | |
402 */ | |
403 NMERR_T nm_send_create_contact(NMUser * user, NMFolder * folder, | |
404 NMContact * contact, nm_response_cb callback, | |
405 gpointer data); | |
406 | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
407 /** |
8675 | 408 * Send a remove contact request to the server. |
409 * | |
410 * The response data sent to the callback will be NULL. | |
411 * | |
412 * @param user The logged in User | |
413 * @param folder The folder to remove contact from | |
414 * @param contact The contact to remove | |
415 * @param callback Function to call when we get the response from the server | |
416 * @param data User defined data | |
417 * | |
418 * @return NM_OK if successfully sent, error otherwise | |
419 */ | |
420 NMERR_T nm_send_remove_contact(NMUser * user, NMFolder * folder, | |
421 NMContact * contact, nm_response_cb callback, | |
422 gpointer data); | |
423 | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
424 /** |
8675 | 425 * Send a create folder request to the server. |
426 * | |
427 * The response data sent to the callback will be a NMFolder which should be | |
428 * released with nm_release_folder | |
429 * | |
430 * @param user The logged in User | |
431 * @param name The name of the folder to create | |
432 * @param callback Function to call when we get the response from the server | |
433 * @param data User defined data | |
434 * | |
435 * @return NM_OK if successfully sent, error otherwise | |
436 */ | |
437 NMERR_T nm_send_create_folder(NMUser * user, const char *name, | |
438 nm_response_cb callback, gpointer data); | |
439 | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
440 /** |
8675 | 441 * Send a delete folder request to the server. |
442 * | |
443 * The response data sent to the callback will be NULL. | |
444 * | |
445 * @param user The logged in User | |
446 * @param folder The name of the folder to remove | |
447 * @param callback Function to call when we get the response from the server | |
448 * @param data User defined data | |
449 * | |
450 * @return NM_OK if successfully sent, error otherwise | |
451 */ | |
452 NMERR_T nm_send_remove_folder(NMUser * user, NMFolder * folder, | |
453 nm_response_cb callback, gpointer data); | |
454 | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
455 /** |
8675 | 456 * Send a rename contact request to the server. |
457 * | |
458 * The response data sent to the callback will be NULL. | |
459 * | |
460 * @param user The logged in User | |
461 * @param contact The contact to rename | |
462 * @param new_name The new display name for the contact | |
463 * @param callback Function to call when we get the response from the server | |
464 * @param data User defined data | |
465 * | |
466 * @return NM_OK if successfully sent, error otherwise | |
467 */ | |
468 NMERR_T nm_send_rename_contact(NMUser * user, NMContact * contact, | |
469 const char *new_name, nm_response_cb callback, | |
470 gpointer data); | |
471 | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
472 /** |
8675 | 473 * Send a rename folder request to the server. |
474 * | |
475 * The response data sent to the callback will be NULL. | |
476 * | |
477 * @param user The logged in User | |
478 * @param folder The folder to rename | |
479 * @param new_name The new name of the folder | |
480 * @param callback Function to call when we get the response from the server | |
481 * @param data User defined data | |
482 * | |
483 * @return NM_OK if successfully sent, error otherwise | |
484 */ | |
485 NMERR_T nm_send_rename_folder(NMUser * user, NMFolder * folder, | |
486 const char *new_name, nm_response_cb callback, | |
487 gpointer data); | |
488 | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
489 /** |
8675 | 490 * Send a move contact request to the server. |
491 * | |
492 * The response data sent to the callback will be NULL. | |
493 * | |
494 * @param user The logged in User | |
495 * @param contact The contact to move | |
496 * @param folder The folder to move the contact to | |
497 * @param callback Function to call when we get the response from the server | |
498 * @param data User defined data | |
499 * | |
500 * @return NM_OK if successfully sent, error otherwise | |
501 */ | |
502 NMERR_T nm_send_move_contact(NMUser * user, NMContact * contact, | |
503 NMFolder * folder, nm_response_cb callback, | |
504 gpointer data); | |
505 | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
506 /** |
8675 | 507 * Send a get status request to the server. |
508 * | |
509 * The response data sent to the callback will be a NMUserRecord. | |
510 * | |
511 * @param user The logged in User | |
512 * @param contact The contact to move | |
513 * @param folder The folder to move the contact to | |
514 * @param callback Function to call when we get the response from the server | |
515 * @param data User defined data | |
516 * | |
517 * @return NM_OK if successfully sent, error otherwise | |
518 */ | |
519 NMERR_T nm_send_get_status(NMUser * user, NMUserRecord * user_record, | |
520 nm_response_cb callback, gpointer data); | |
521 | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
522 /** |
8933 | 523 * Send a request to add an item to the allow or deny list. |
524 * | |
525 * @param user The logged in User | |
526 * @param who The userid or DN of the user to add to list | |
527 * @param allow_list TRUE if adding to allow list, FALSE if adding to deny list | |
528 * @param callback Function to call when we get the response from the server | |
529 * @param data User defined data | |
530 * | |
531 * @return NM_OK if successfully sent, error otherwise | |
532 */ | |
533 NMERR_T | |
534 nm_send_create_privacy_item(NMUser *user, const char *who, gboolean is_allowed, | |
535 nm_response_cb callback, gpointer data); | |
536 | |
537 /** | |
538 * Send a request to remove an item from the allow or deny list. | |
539 * | |
540 * @param user The logged in User | |
541 * @param who The userid or DN of the user to add to list | |
542 * @param allow_list TRUE if removing from allow list, FALSE if removing from deny list | |
543 * @param callback Function to call when we get the response from the server | |
544 * @param data User defined data | |
545 * | |
546 * @return NM_OK if successfully sent, error otherwise | |
547 */ | |
548 NMERR_T | |
549 nm_send_remove_privacy_item(NMUser *user, const char *dn, gboolean allow_list, | |
550 nm_response_cb callback, gpointer data); | |
551 | |
552 /** | |
553 * Send a request to change the default privacy setting to deny all or allow all | |
554 * | |
555 * @param user The logged in User | |
556 * @param default_deny TRUE if default should be changed to deny all | |
557 * @param callback Function to call when we get the response from the server | |
558 * @param data User defined data | |
559 * | |
560 * @return NM_OK if successfully sent, error otherwise | |
561 */ | |
562 NMERR_T | |
563 nm_send_set_privacy_default(NMUser *user, gboolean default_deny, | |
564 nm_response_cb callback, gpointer data); | |
565 | |
566 /** | |
9268 | 567 * Send a ping to the server |
568 * | |
569 * @param user The logged in User | |
570 * @param callback Function to call when we get the response from the server | |
571 * @param data User defined data | |
572 * | |
573 * @return NM_OK if successfully sent, error otherwise | |
574 */ | |
575 NMERR_T | |
576 nm_send_keepalive(NMUser *user, nm_response_cb callback, gpointer data); | |
577 | |
578 /** | |
8675 | 579 * Reads a response/event from the server and processes it. |
580 * | |
581 * @param user The logged in User | |
582 */ | |
583 NMERR_T nm_process_new_data(NMUser * user); | |
584 | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
585 /** |
8675 | 586 * Return the root folder of the contact list |
587 * | |
588 * @param user The logged in User | |
589 * | |
590 * @return Root folder | |
591 */ | |
592 NMFolder *nm_get_root_folder(NMUser * user); | |
593 | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
594 /** |
8675 | 595 * Create the contact list based on the login fields |
596 * | |
597 * @param user The logged in User | |
598 * | |
599 */ | |
600 NMERR_T nm_create_contact_list(NMUser * user); | |
601 | |
602 void nm_destroy_contact_list(NMUser * user); | |
603 | |
604 void nm_user_add_contact(NMUser * user, NMContact * contact); | |
605 | |
606 void nm_user_add_user_record(NMUser * user, NMUserRecord * user_record); | |
607 | |
608 NMContact *nm_find_contact(NMUser * user, const char *dn); | |
609 | |
610 GList *nm_find_contacts(NMUser * user, const char *dn); | |
611 | |
612 NMUserRecord *nm_find_user_record(NMUser * user, const char *dn); | |
613 | |
614 NMFolder *nm_find_folder(NMUser * user, const char *name); | |
615 | |
616 NMFolder *nm_find_folder_by_id(NMUser * user, int object_id); | |
617 | |
618 NMConference *nm_find_conversation(NMUser * user, const char *who); | |
619 | |
620 void nm_conference_list_add(NMUser * user, NMConference * conf); | |
621 | |
622 void nm_conference_list_remove(NMUser * user, NMConference * conf); | |
623 | |
624 void nm_conference_list_free(NMUser * user); | |
625 | |
626 NMConference *nm_conference_list_find(NMUser * user, const char *guid); | |
627 | |
628 const char *nm_lookup_dn(NMUser * user, const char *display_id); | |
629 | |
630 nm_event_cb nm_user_get_event_callback(NMUser * user); | |
631 | |
632 NMConn *nm_user_get_conn(NMUser * user); | |
633 | |
8933 | 634 gboolean nm_user_is_privacy_locked(NMUser *user); |
635 | |
8675 | 636 /** Some utility functions **/ |
637 | |
638 /** | |
8684
046dd8ef2920
[gaim-migrate @ 9437]
Christian Hammond <chipx86@chipx86.com>
parents:
8675
diff
changeset
|
639 * Check to see if the conference GUIDs are equivalent. |
8675 | 640 * |
641 * @param guid1 First guid to compare | |
642 * @param guid2 Second guid to compare | |
643 * | |
644 * @return TRUE if conference GUIDs are equivalent, FALSE otherwise. | |
645 * | |
646 */ | |
647 gboolean nm_are_guids_equal(const char *guid1, const char *guid2); | |
648 | |
649 | |
650 /** | |
651 * Case insensitive compare for utf8 strings | |
652 * | |
653 * @param guid1 First string to compare | |
654 * @param guid2 Second string to compare | |
655 * | |
656 * @return -1 if str1 < str2, 0 if str1 = str2, 1 if str1 > str2 | |
657 * | |
658 */ | |
659 gint nm_utf8_strcasecmp(gconstpointer str1, gconstpointer str2); | |
660 | |
661 /** | |
662 * Compare UTF8 strings for equality only (case insensitive) | |
663 * | |
664 * @param guid1 First string to compare | |
665 * @param guid2 Second string to compare | |
666 * | |
667 * @return TRUE if strings are equal, FALSE otherwise | |
668 * | |
669 */ | |
670 gboolean nm_utf8_str_equal(gconstpointer str1, gconstpointer str2); | |
671 | |
672 /** | |
673 * Convert a fully typed LDAP DN to dotted, untype notation | |
674 * e.g. cn=mike,o=novell -> mike.novell | |
675 * | |
676 * @param typed Fully typed dn | |
677 * | |
678 * @return Dotted equivalent of typed (must be freed). | |
679 * | |
680 */ | |
681 char *nm_typed_to_dotted(const char *typed); | |
682 | |
8933 | 683 /** |
684 * Return a string representation of the error code. | |
685 * | |
686 * @param error NMERR_T to convert to string | |
687 * | |
688 * @return String representation. | |
689 */ | |
690 const char *nm_error_to_string (NMERR_T err); | |
691 | |
8675 | 692 #endif |