Wed, 19 Jul 2023 16:19:54 -0500
Update ContactManager to call ProtocolRoster.update_async when necessary
Testing Done:
Compiled. I didn't write unit tests because that would have required adding a protocol into `test_contact_manager.c` and that's a lot of work to test that our signal handlers are connected correctly when all of the other code is covered by tests.
Reviewed at https://reviews.imfreedom.org/r/2522/
|
42243
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1 | /* |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
2 | * Purple - Internet Messaging Library |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
3 | * Copyright (C) Pidgin Developers <devel@pidgin.im> |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
4 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
5 | * Purple is the legal property of its developers, whose names are too numerous |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
6 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
7 | * source distribution. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
8 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
9 | * This program is free software; you can redistribute it and/or modify |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
10 | * it under the terms of the GNU General Public License as published by |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
11 | * the Free Software Foundation; either version 2 of the License, or |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
12 | * (at your option) any later version. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
13 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
14 | * This program is distributed in the hope that it will be useful, |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
17 | * GNU General Public License for more details. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
18 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
19 | * You should have received a copy of the GNU General Public License |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
20 | * along with this program; if not, see <https://www.gnu.org/licenses/>. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
21 | */ |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
22 | |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
23 | #if !defined(PURPLE_GLOBAL_HEADER_INSIDE) && !defined(PURPLE_COMPILATION) |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
24 | # error "only <purple.h> may be included directly" |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
25 | #endif |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
26 | |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
27 | #ifndef PURPLE_PROTOCOL_ROSTER_H |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
28 | #define PURPLE_PROTOCOL_ROSTER_H |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
29 | |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
30 | #include <glib.h> |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
31 | #include <glib-object.h> |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
32 | |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
33 | #include <libpurple/account.h> |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
34 | #include <libpurple/purplecontact.h> |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
35 | #include <libpurple/purpleprotocol.h> |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
36 | |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
37 | #define PURPLE_TYPE_PROTOCOL_ROSTER (purple_protocol_roster_get_type()) |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
38 | G_DECLARE_INTERFACE(PurpleProtocolRoster, purple_protocol_roster, PURPLE, |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
39 | PROTOCOL_ROSTER, PurpleProtocol) |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
40 | |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
41 | /** |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
42 | * PurpleProtocolRoster: |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
43 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
44 | * The #PurpleProtocolRoster interface defines the behavior to tell a |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
45 | * protocol when the users wants to manage contacts on the server side roster. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
46 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
47 | * Since: 3.0.0 |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
48 | */ |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
49 | |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
50 | /** |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
51 | * PurpleProtocolRosterInterface: |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
52 | * @add_async: Called when the user is trying to add a contact to the server |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
53 | * side roster. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
54 | * @add_finish: Called when adding the contact has completed. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
55 | * @update_async: Called when the user is trying to update a contact on the |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
56 | * server side roster. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
57 | * @update_finish: Called when updating the contact has completed. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
58 | * @remove_async: Called when the user is trying to remove a contact from the |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
59 | * server side roster. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
60 | * @remove_finish: Called when removing the contact has completed. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
61 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
62 | * The interface for managing the server side roster. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
63 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
64 | * This interface provides a gateway between purple and the protocol for |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
65 | * managing the server side roster. All of the functions are asynchronous to |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
66 | * make sure nothing blocks the rest of the program. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
67 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
68 | * Since: 3.0.0 |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
69 | */ |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
70 | struct _PurpleProtocolRosterInterface { |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
71 | /*< private >*/ |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
72 | GTypeInterface parent; |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
73 | |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
74 | /*< public >*/ |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
75 | void (*add_async)(PurpleProtocolRoster *roster, PurpleContact *contact, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer data); |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
76 | gboolean (*add_finish)(PurpleProtocolRoster *roster, GAsyncResult *result, GError **error); |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
77 | |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
78 | void (*update_async)(PurpleProtocolRoster *roster, PurpleContact *contact, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer data); |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
79 | gboolean (*update_finish)(PurpleProtocolRoster *roster, GAsyncResult *result, GError **error); |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
80 | |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
81 | void (*remove_async)(PurpleProtocolRoster *roster, PurpleContact *contact, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer data); |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
82 | gboolean (*remove_finish)(PurpleProtocolRoster *roster, GAsyncResult *result, GError **error); |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
83 | |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
84 | /*< private >*/ |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
85 | gpointer reserved[4]; |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
86 | }; |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
87 | |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
88 | G_BEGIN_DECLS |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
89 | |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
90 | /** |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
91 | * purple_protocol_roster_add_async: |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
92 | * @roster: The instance. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
93 | * @contact: The [class@Contact] to add. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
94 | * @cancellable: A [class@Gio.Cancellable]. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
95 | * @callback: A [callback@Gio.AsyncReadyCallback] to call when the request has |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
96 | * completed. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
97 | * @data: User data to pass to @callback. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
98 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
99 | * Requests that @roster adds @contact to the server side roster. When |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
100 | * @callback is called, [method@ProtocolRoster.add_finish] should be called to |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
101 | * get the result. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
102 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
103 | * Since: 3.0.0 |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
104 | */ |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
105 | void purple_protocol_roster_add_async(PurpleProtocolRoster *roster, PurpleContact *contact, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer data); |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
106 | |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
107 | /** |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
108 | * purple_protocol_roster_add_finish: |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
109 | * @roster: The instance. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
110 | * @result: A [iface@Gio.AsyncResult]. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
111 | * @error: (out): A return address for an error. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
112 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
113 | * Gets the result of a previous call to [method@ProtocolRoster.add_async]. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
114 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
115 | * If an error was encountered, @error will be set and %FALSE will be returned. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
116 | * Otherwise the result will be returned. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
117 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
118 | * Returns: %TRUE if the operation was successful, otherwise %FALSE with error |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
119 | * optionally set. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
120 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
121 | * Since: 3.0.0 |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
122 | */ |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
123 | gboolean purple_protocol_roster_add_finish(PurpleProtocolRoster *roster, GAsyncResult *result, GError **error); |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
124 | |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
125 | /** |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
126 | * purple_protocol_roster_update_async: |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
127 | * @roster: The instance. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
128 | * @contact: The [class@Contact] to update. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
129 | * @cancellable: A [class@Gio.Cancellable]. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
130 | * @callback: A [callback@Gio.AsyncReadyCallback] to call when the request has |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
131 | * completed. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
132 | * @data: User data to pass to @callback. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
133 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
134 | * Requests that @roster updates @contact on the server side roster. When |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
135 | * @callback is called, [method@ProtocolRoster.update_finish] should be called |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
136 | * to get the result. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
137 | * |
|
42245
57a4955beaf3
Update ContactManager to call ProtocolRoster.update_async when necessary
Gary Kramlich <grim@reaperworld.com>
parents:
42243
diff
changeset
|
138 | * This would include things that the libpurple user can change about a remote |
|
57a4955beaf3
Update ContactManager to call ProtocolRoster.update_async when necessary
Gary Kramlich <grim@reaperworld.com>
parents:
42243
diff
changeset
|
139 | * contact. Including but not limited to [property@ContactInfo:alias], |
|
57a4955beaf3
Update ContactManager to call ProtocolRoster.update_async when necessary
Gary Kramlich <grim@reaperworld.com>
parents:
42243
diff
changeset
|
140 | * [property@ContactInfo:permission], [property@ContactInfo:person], and |
|
57a4955beaf3
Update ContactManager to call ProtocolRoster.update_async when necessary
Gary Kramlich <grim@reaperworld.com>
parents:
42243
diff
changeset
|
141 | * [property@ContactInfo:tags]. |
|
57a4955beaf3
Update ContactManager to call ProtocolRoster.update_async when necessary
Gary Kramlich <grim@reaperworld.com>
parents:
42243
diff
changeset
|
142 | * |
|
42243
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
143 | * Since: 3.0.0 |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
144 | */ |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
145 | void purple_protocol_roster_update_async(PurpleProtocolRoster *roster, PurpleContact *contact, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer data); |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
146 | |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
147 | /** |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
148 | * purple_protocol_roster_update_finish: |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
149 | * @roster: The instance. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
150 | * @result: A [iface@Gio.AsyncResult]. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
151 | * @error: (out): A return address for an error. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
152 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
153 | * Gets the result of a previous call to [method@ProtocolRoster.update_async]. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
154 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
155 | * If an error was encountered, @error will be set and %FALSE will be returned. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
156 | * Otherwise the result will be returned. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
157 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
158 | * Returns: %TRUE if the operation was successful, otherwise %FALSE with error |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
159 | * optionally set. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
160 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
161 | * Since: 3.0.0 |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
162 | */ |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
163 | gboolean purple_protocol_roster_update_finish(PurpleProtocolRoster *roster, GAsyncResult *result, GError **error); |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
164 | |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
165 | /** |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
166 | * purple_protocol_roster_remove_async: |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
167 | * @roster: The instance. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
168 | * @contact: The [class@Contact] to remove. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
169 | * @cancellable: A [class@Gio.Cancellable]. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
170 | * @callback: A [callback@Gio.AsyncReadyCallback] to call when the request has |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
171 | * completed. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
172 | * @data: User data to pass to @callback. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
173 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
174 | * Requests that @roster removes @contact from the server side roster. When |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
175 | * @callback is called, [method@ProtocolRoster.remove_finish] should be called |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
176 | * to get the result. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
177 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
178 | * Since: 3.0.0 |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
179 | */ |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
180 | void purple_protocol_roster_remove_async(PurpleProtocolRoster *roster, PurpleContact *contact, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer data); |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
181 | |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
182 | /** |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
183 | * purple_protocol_roster_remove_finish: |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
184 | * @roster: The instance. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
185 | * @result: A [iface@Gio.AsyncResult]. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
186 | * @error: (out): A return address for an error. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
187 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
188 | * Gets the result of a previous call to [method@ProtocolRoster.remove_async]. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
189 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
190 | * If an error was encountered, @error will be set and %FALSE will be returned. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
191 | * Otherwise the result will be returned. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
192 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
193 | * Returns: %TRUE if the operation was successful, otherwise %FALSE with error |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
194 | * optionally set. |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
195 | * |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
196 | * Since: 3.0.0 |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
197 | */ |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
198 | gboolean purple_protocol_roster_remove_finish(PurpleProtocolRoster *roster, GAsyncResult *result, GError **error); |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
199 | |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
200 | G_END_DECLS |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
201 | |
|
4659a7247aa7
Add PurpleProtocolRoster for managing server side rosters
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
202 | #endif /* PURPLE_PROTOCOL_ROSTER_H */ |