sync
[gir-1.1] / TelepathyGLib-0.12.gir
1 <?xml version="1.0"?>
2 <!-- This file was automatically generated from C sources - DO NOT EDIT!
3 To affect the contents of this file, edit the original C definitions,
4 and/or use gtk-doc annotations.  -->
5 <repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.1">
6   <include name="GLib" version="2.0"/>
7   <include name="GObject" version="2.0"/>
8   <include name="Gio" version="2.0"/>
9   <package name="dbus-glib-1"/>
10   <package name="gio-2.0"/>
11   <namespace name="TelepathyGLib" version="0.12" shared-library="libtelepathy-glib.so.0" c:prefix="tp">
12     <alias name="Handle" target="uint" c:type="TpHandle"/>
13     <constant name="ACCOUNT_MANAGER_BUS_NAME" value="org.freedesktop.Telepathy.AccountManager">
14       <type name="utf8"/>
15     </constant>
16     <constant name="ACCOUNT_MANAGER_OBJECT_PATH" value="/org/freedesktop/Telepathy/AccountManager">
17       <type name="utf8"/>
18     </constant>
19     <constant name="ACCOUNT_OBJECT_PATH_BASE" value="/org/freedesktop/Telepathy/Account/">
20       <type name="utf8"/>
21     </constant>
22     <class name="Account" c:type="TpAccount" version="0.7.32" parent="Proxy" glib:type-name="TpAccount" glib:get-type="tp_account_get_type" glib:type-struct="AccountClass">
23       <doc xml:whitespace="preserve">The Telepathy Account Manager stores the user's configured real-time
24 communication accounts. This object represents a stored account.
25 If this account is deleted from the account manager, the
26 #TpProxy::invalidated signal will be emitted
27 with the domain %TP_DBUS_ERRORS and the error code
28 %TP_DBUS_ERROR_OBJECT_REMOVED.
29 One can connect to the #GObject::notify signal to get change notifications
30 for many of the properties on this object. Refer to each property's
31 documentation for whether it can be used in this way.</doc>
32       <constructor name="new" c:identifier="tp_account_new" throws="1">
33         <doc xml:whitespace="preserve">Convenience function to create a new account proxy. The returned #TpAccount
34 is not guaranteed to be ready at the point of return.
35 not valid</doc>
36         <return-value transfer-ownership="full">
37           <doc xml:whitespace="preserve">a new reference to an account proxy, or %NULL if @object_path is</doc>
38           <type name="Account" c:type="TpAccount*"/>
39         </return-value>
40         <parameters>
41           <parameter name="bus_daemon" transfer-ownership="none">
42             <doc xml:whitespace="preserve">Proxy for the D-Bus daemon</doc>
43             <type name="DBusDaemon" c:type="TpDBusDaemon*"/>
44           </parameter>
45           <parameter name="object_path" transfer-ownership="none">
46             <doc xml:whitespace="preserve">The non-NULL object path of this account</doc>
47             <type name="utf8" c:type="gchar*"/>
48           </parameter>
49         </parameters>
50       </constructor>
51       <function name="get_feature_quark_core" c:identifier="tp_account_get_feature_quark_core" version="0.9.0">
52         <doc xml:whitespace="preserve">&lt;!-- --&gt;
53 #TpAccount</doc>
54         <return-value transfer-ownership="full">
55           <doc xml:whitespace="preserve">the quark used for representing the core feature of a</doc>
56           <type name="GLib.Quark" c:type="GQuark"/>
57         </return-value>
58       </function>
59       <function name="parse_object_path" c:identifier="tp_account_parse_object_path" version="0.9.0" throws="1">
60         <doc xml:whitespace="preserve">Validates and parses a Telepathy Account's object path, extracting the
61 connection manager's name, the protocol, and the account's unique identifier
62 from the path. This includes replacing underscores with hyphens in the
63 protocol name, as defined in the Account specification.
64 Any of the out parameters may be %NULL if not needed. If %TRUE is returned,
65 the caller is responsible for freeing the strings stored in any non-%NULL
66 out parameters, using g_free().</doc>
67         <return-value transfer-ownership="none">
68           <doc xml:whitespace="preserve">%TRUE if @object_path was successfully parsed; %FALSE and sets</doc>
69           <type name="boolean" c:type="gboolean"/>
70         </return-value>
71         <parameters>
72           <parameter name="object_path" transfer-ownership="none">
73             <doc xml:whitespace="preserve">a Telepathy Account's object path</doc>
74             <type name="utf8" c:type="gchar*"/>
75           </parameter>
76           <parameter name="cm" direction="out" caller-allocates="0" transfer-ownership="full">
77             <doc xml:whitespace="preserve">location at which to store the account's connection manager's name</doc>
78             <type name="utf8" c:type="gchar**"/>
79           </parameter>
80           <parameter name="protocol" direction="out" caller-allocates="0" transfer-ownership="full">
81             <doc xml:whitespace="preserve">location at which to store the account's protocol</doc>
82             <type name="utf8" c:type="gchar**"/>
83           </parameter>
84           <parameter name="account_id" direction="out" caller-allocates="0" transfer-ownership="full">
85             <doc xml:whitespace="preserve">location at which to store the account's unique identifier</doc>
86             <type name="utf8" c:type="gchar**"/>
87           </parameter>
88         </parameters>
89       </function>
90       <function name="init_known_interfaces" c:identifier="tp_account_init_known_interfaces" version="0.7.32">
91         <doc xml:whitespace="preserve">Ensure that the known interfaces for TpAccount have been set up.
92 This is done automatically when necessary, but for correct
93 overriding of library interfaces by local extensions, you should
94 call this function before calling
95 tp_proxy_or_subclass_hook_on_interface_add() with first argument
96 %TP_TYPE_ACCOUNT.</doc>
97         <return-value transfer-ownership="none">
98           <type name="none" c:type="void"/>
99         </return-value>
100       </function>
101       <method name="get_connection" c:identifier="tp_account_get_connection" version="0.9.0">
102         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
103         <return-value transfer-ownership="none">
104           <doc xml:whitespace="preserve">connection property</doc>
105           <type name="Connection" c:type="TpConnection*"/>
106         </return-value>
107       </method>
108       <method name="ensure_connection" c:identifier="tp_account_ensure_connection" version="0.9.0">
109         <doc xml:whitespace="preserve">Set the connection of the account by specifying the connection object path.
110 This function does not return a new ref and it is not guaranteed that the
111 returned #TpConnection object is ready.
112 The use-case for this function is in a HandleChannels callback and you
113 already know the object path for the connection, so you can let @account
114 create its #TpConnection and return it for use.
115 the object path @path is invalid or it is the null-value "/"</doc>
116         <return-value transfer-ownership="none">
117           <doc xml:whitespace="preserve">the connection of the account, or %NULL if either</doc>
118           <type name="Connection" c:type="TpConnection*"/>
119         </return-value>
120         <parameters>
121           <parameter name="path" transfer-ownership="none">
122             <doc xml:whitespace="preserve">the path to connection object for #TpAccount</doc>
123             <type name="utf8" c:type="gchar*"/>
124           </parameter>
125         </parameters>
126       </method>
127       <method name="get_display_name" c:identifier="tp_account_get_display_name" version="0.9.0">
128         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
129         <return-value transfer-ownership="none">
130           <doc xml:whitespace="preserve">the same as the #TpAccount:display-name property</doc>
131           <type name="utf8" c:type="gchar*"/>
132         </return-value>
133       </method>
134       <method name="get_connection_manager" c:identifier="tp_account_get_connection_manager" version="0.9.0">
135         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
136         <return-value transfer-ownership="none">
137           <doc xml:whitespace="preserve">the same as the #TpAccount:connection-manager property</doc>
138           <type name="utf8" c:type="gchar*"/>
139         </return-value>
140       </method>
141       <method name="get_protocol" c:identifier="tp_account_get_protocol" version="0.9.0">
142         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
143         <return-value transfer-ownership="none">
144           <doc xml:whitespace="preserve">the same as the #TpAccount:protocol property</doc>
145           <type name="utf8" c:type="gchar*"/>
146         </return-value>
147       </method>
148       <method name="get_service" c:identifier="tp_account_get_service" version="0.11.9">
149         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
150         <return-value transfer-ownership="none">
151           <doc xml:whitespace="preserve">the same as the #TpAccount:service property</doc>
152           <type name="utf8" c:type="gchar*"/>
153         </return-value>
154       </method>
155       <method name="get_icon_name" c:identifier="tp_account_get_icon_name" version="0.9.0">
156         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
157         <return-value transfer-ownership="none">
158           <doc xml:whitespace="preserve">the same as the #TpAccount:icon-name property</doc>
159           <type name="utf8" c:type="gchar*"/>
160         </return-value>
161       </method>
162       <method name="set_enabled_async" c:identifier="tp_account_set_enabled_async" version="0.9.0">
163         <doc xml:whitespace="preserve">Requests an asynchronous set of the Enabled property of @account. When the
164 operation is finished, @callback will be called. You can then call
165 tp_account_set_enabled_finish() to get the result of the operation.</doc>
166         <return-value transfer-ownership="none">
167           <type name="none" c:type="void"/>
168         </return-value>
169         <parameters>
170           <parameter name="enabled" transfer-ownership="none">
171             <doc xml:whitespace="preserve">the new enabled value of @account</doc>
172             <type name="boolean" c:type="gboolean"/>
173           </parameter>
174           <parameter name="callback" transfer-ownership="none" scope="async" closure="3">
175             <doc xml:whitespace="preserve">a callback to call when the request is satisfied</doc>
176             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
177           </parameter>
178           <parameter name="user_data" transfer-ownership="none">
179             <doc xml:whitespace="preserve">data to pass to @callback</doc>
180             <type name="any" c:type="gpointer"/>
181           </parameter>
182         </parameters>
183       </method>
184       <method name="set_enabled_finish" c:identifier="tp_account_set_enabled_finish" version="0.9.0" throws="1">
185         <doc xml:whitespace="preserve">Finishes an async set of the Enabled property.</doc>
186         <return-value transfer-ownership="none">
187           <doc xml:whitespace="preserve">%TRUE if the set was successful, otherwise %FALSE</doc>
188           <type name="boolean" c:type="gboolean"/>
189         </return-value>
190         <parameters>
191           <parameter name="result" transfer-ownership="none">
192             <doc xml:whitespace="preserve">a #GAsyncResult</doc>
193             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
194           </parameter>
195         </parameters>
196       </method>
197       <method name="reconnect_async" c:identifier="tp_account_reconnect_async" version="0.9.0">
198         <doc xml:whitespace="preserve">Requests an asynchronous reconnect of @account. When the operation is
199 finished, @callback will be called. You can then call
200 tp_account_reconnect_finish() to get the result of the operation.</doc>
201         <return-value transfer-ownership="none">
202           <type name="none" c:type="void"/>
203         </return-value>
204         <parameters>
205           <parameter name="callback" transfer-ownership="none" scope="async" closure="2">
206             <doc xml:whitespace="preserve">a callback to call when the request is satisfied</doc>
207             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
208           </parameter>
209           <parameter name="user_data" transfer-ownership="none">
210             <doc xml:whitespace="preserve">data to pass to @callback</doc>
211             <type name="any" c:type="gpointer"/>
212           </parameter>
213         </parameters>
214       </method>
215       <method name="reconnect_finish" c:identifier="tp_account_reconnect_finish" version="0.9.0" throws="1">
216         <doc xml:whitespace="preserve">Finishes an async reconnect of @account.</doc>
217         <return-value transfer-ownership="none">
218           <doc xml:whitespace="preserve">%TRUE if the reconnect call was successful, otherwise %FALSE</doc>
219           <type name="boolean" c:type="gboolean"/>
220         </return-value>
221         <parameters>
222           <parameter name="result" transfer-ownership="none">
223             <doc xml:whitespace="preserve">a #GAsyncResult</doc>
224             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
225           </parameter>
226         </parameters>
227       </method>
228       <method name="is_enabled" c:identifier="tp_account_is_enabled" version="0.9.0">
229         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
230         <return-value transfer-ownership="none">
231           <doc xml:whitespace="preserve">the same as the #TpAccount:enabled property</doc>
232           <type name="boolean" c:type="gboolean"/>
233         </return-value>
234       </method>
235       <method name="is_valid" c:identifier="tp_account_is_valid" version="0.9.0">
236         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
237         <return-value transfer-ownership="none">
238           <doc xml:whitespace="preserve">the same as the #TpAccount:valid property</doc>
239           <type name="boolean" c:type="gboolean"/>
240         </return-value>
241       </method>
242       <method name="update_parameters_async" c:identifier="tp_account_update_parameters_async" version="0.9.0">
243         <doc xml:whitespace="preserve">Requests an asynchronous update of parameters of @account. When the
244 operation is finished, @callback will be called. You can then call
245 tp_account_update_parameters_finish() to get the result of the operation.</doc>
246         <return-value transfer-ownership="none">
247           <type name="none" c:type="void"/>
248         </return-value>
249         <parameters>
250           <parameter name="parameters" transfer-ownership="none">
251             <doc xml:whitespace="preserve">new parameters to set on @account</doc>
252             <type name="GLib.HashTable" c:type="GHashTable*">
253               <type name="utf8"/>
254               <type name="GObject.Value"/>
255             </type>
256           </parameter>
257           <parameter name="unset_parameters" transfer-ownership="none">
258             <doc xml:whitespace="preserve">list of parameters to unset on @account</doc>
259             <array c:type="gchar**">
260               <type name="utf8"/>
261             </array>
262           </parameter>
263           <parameter name="callback" transfer-ownership="none" scope="async" closure="4">
264             <doc xml:whitespace="preserve">a callback to call when the request is satisfied</doc>
265             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
266           </parameter>
267           <parameter name="user_data" transfer-ownership="none">
268             <doc xml:whitespace="preserve">data to pass to @callback</doc>
269             <type name="any" c:type="gpointer"/>
270           </parameter>
271         </parameters>
272       </method>
273       <method name="update_parameters_finish" c:identifier="tp_account_update_parameters_finish" version="0.9.0" throws="1">
274         <doc xml:whitespace="preserve">Finishes an async update of the parameters on @account.</doc>
275         <return-value transfer-ownership="none">
276           <doc xml:whitespace="preserve">%TRUE if the request succeeded, otherwise %FALSE</doc>
277           <type name="boolean" c:type="gboolean"/>
278         </return-value>
279         <parameters>
280           <parameter name="result" transfer-ownership="none">
281             <doc xml:whitespace="preserve">a #GAsyncResult</doc>
282             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
283           </parameter>
284           <parameter name="reconnect_required" direction="out" caller-allocates="0" transfer-ownership="full">
285             <doc xml:whitespace="preserve">a #GStrv to fill with properties that need a reconnect to take effect</doc>
286             <type name="GObject.Strv" c:type="gchar***"/>
287           </parameter>
288         </parameters>
289       </method>
290       <method name="remove_async" c:identifier="tp_account_remove_async" version="0.9.0">
291         <doc xml:whitespace="preserve">Requests an asynchronous removal of @account. When the operation is
292 finished, @callback will be called. You can then call
293 tp_account_remove_finish() to get the result of the operation.</doc>
294         <return-value transfer-ownership="none">
295           <type name="none" c:type="void"/>
296         </return-value>
297         <parameters>
298           <parameter name="callback" transfer-ownership="none" scope="async" closure="2">
299             <doc xml:whitespace="preserve">a callback to call when the request is satisfied</doc>
300             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
301           </parameter>
302           <parameter name="user_data" transfer-ownership="none">
303             <doc xml:whitespace="preserve">data to pass to @callback</doc>
304             <type name="any" c:type="gpointer"/>
305           </parameter>
306         </parameters>
307       </method>
308       <method name="remove_finish" c:identifier="tp_account_remove_finish" version="0.9.0" throws="1">
309         <doc xml:whitespace="preserve">Finishes an async removal of @account.</doc>
310         <return-value transfer-ownership="none">
311           <doc xml:whitespace="preserve">%TRUE if the operation was successful, otherwise %FALSE</doc>
312           <type name="boolean" c:type="gboolean"/>
313         </return-value>
314         <parameters>
315           <parameter name="result" transfer-ownership="none">
316             <doc xml:whitespace="preserve">a #GAsyncResult</doc>
317             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
318           </parameter>
319         </parameters>
320       </method>
321       <method name="set_display_name_async" c:identifier="tp_account_set_display_name_async" version="0.9.0">
322         <doc xml:whitespace="preserve">Requests an asynchronous set of the DisplayName property of @account. When
323 the operation is finished, @callback will be called. You can then call
324 tp_account_set_display_name_finish() to get the result of the operation.</doc>
325         <return-value transfer-ownership="none">
326           <type name="none" c:type="void"/>
327         </return-value>
328         <parameters>
329           <parameter name="display_name" transfer-ownership="none">
330             <doc xml:whitespace="preserve">a new display name, or %NULL to unset the display name</doc>
331             <type name="utf8" c:type="gchar*"/>
332           </parameter>
333           <parameter name="callback" transfer-ownership="none" scope="async" closure="3">
334             <doc xml:whitespace="preserve">a callback to call when the request is satisfied</doc>
335             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
336           </parameter>
337           <parameter name="user_data" transfer-ownership="none">
338             <doc xml:whitespace="preserve">data to pass to @callback</doc>
339             <type name="any" c:type="gpointer"/>
340           </parameter>
341         </parameters>
342       </method>
343       <method name="set_display_name_finish" c:identifier="tp_account_set_display_name_finish" version="0.9.0" throws="1">
344         <doc xml:whitespace="preserve">Finishes an async set of the DisplayName property.</doc>
345         <return-value transfer-ownership="none">
346           <doc xml:whitespace="preserve">%TRUE if the call was successful, otherwise %FALSE</doc>
347           <type name="boolean" c:type="gboolean"/>
348         </return-value>
349         <parameters>
350           <parameter name="result" transfer-ownership="none">
351             <doc xml:whitespace="preserve">a #GAsyncResult</doc>
352             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
353           </parameter>
354         </parameters>
355       </method>
356       <method name="set_icon_name_async" c:identifier="tp_account_set_icon_name_async" version="0.9.0">
357         <doc xml:whitespace="preserve">Requests an asynchronous set of the Icon property of @account. When
358 the operation is finished, @callback will be called. You can then call
359 tp_account_set_icon_name_finish() to get the result of the operation.</doc>
360         <return-value transfer-ownership="none">
361           <type name="none" c:type="void"/>
362         </return-value>
363         <parameters>
364           <parameter name="icon_name" transfer-ownership="none">
365             <doc xml:whitespace="preserve">a new icon name, or %NULL to unset the icon name</doc>
366             <type name="utf8" c:type="gchar*"/>
367           </parameter>
368           <parameter name="callback" transfer-ownership="none" scope="async" closure="3">
369             <doc xml:whitespace="preserve">a callback to call when the request is satisfied</doc>
370             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
371           </parameter>
372           <parameter name="user_data" transfer-ownership="none">
373             <doc xml:whitespace="preserve">data to pass to @callback</doc>
374             <type name="any" c:type="gpointer"/>
375           </parameter>
376         </parameters>
377       </method>
378       <method name="set_icon_name_finish" c:identifier="tp_account_set_icon_name_finish" version="0.9.0" throws="1">
379         <doc xml:whitespace="preserve">Finishes an async set of the Icon parameter.</doc>
380         <return-value transfer-ownership="none">
381           <doc xml:whitespace="preserve">%TRUE if the operation was successful, otherwise %FALSE</doc>
382           <type name="boolean" c:type="gboolean"/>
383         </return-value>
384         <parameters>
385           <parameter name="result" transfer-ownership="none">
386             <doc xml:whitespace="preserve">a #GAsyncResult</doc>
387             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
388           </parameter>
389         </parameters>
390       </method>
391       <method name="set_service_async" c:identifier="tp_account_set_service_async" version="0.11.9">
392         <doc xml:whitespace="preserve">Requests an asynchronous set of the Service property on @self. When
393 the operation is finished, @callback will be called. You can then call
394 tp_account_set_service_finish() to get the result of the operation.</doc>
395         <return-value transfer-ownership="none">
396           <type name="none" c:type="void"/>
397         </return-value>
398         <parameters>
399           <parameter name="service" transfer-ownership="none">
400             <doc xml:whitespace="preserve">a new service name, or %NULL or the empty string to unset the service name (which will result in the #TpAccount:service property becoming the same as #TpAccount:protocol)</doc>
401             <type name="utf8" c:type="gchar*"/>
402           </parameter>
403           <parameter name="callback" transfer-ownership="none" scope="async" closure="3">
404             <doc xml:whitespace="preserve">a callback to call when the request is satisfied</doc>
405             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
406           </parameter>
407           <parameter name="user_data" transfer-ownership="none">
408             <doc xml:whitespace="preserve">data to pass to @callback</doc>
409             <type name="any" c:type="gpointer"/>
410           </parameter>
411         </parameters>
412       </method>
413       <method name="set_service_finish" c:identifier="tp_account_set_service_finish" version="0.11.9" throws="1">
414         <doc xml:whitespace="preserve">Finishes an async set of the Service parameter.</doc>
415         <return-value transfer-ownership="none">
416           <doc xml:whitespace="preserve">%TRUE if the operation was successful, otherwise %FALSE</doc>
417           <type name="boolean" c:type="gboolean"/>
418         </return-value>
419         <parameters>
420           <parameter name="result" transfer-ownership="none">
421             <doc xml:whitespace="preserve">a #GAsyncResult</doc>
422             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
423           </parameter>
424         </parameters>
425       </method>
426       <method name="request_presence_async" c:identifier="tp_account_request_presence_async" version="0.9.0">
427         <doc xml:whitespace="preserve">Requests an asynchronous change of presence on @account. When the
428 operation is finished, @callback will be called. You can then call
429 tp_account_request_presence_finish() to get the result of the operation.</doc>
430         <return-value transfer-ownership="none">
431           <type name="none" c:type="void"/>
432         </return-value>
433         <parameters>
434           <parameter name="type" transfer-ownership="none">
435             <doc xml:whitespace="preserve">the requested presence</doc>
436             <type name="ConnectionPresenceType" c:type="TpConnectionPresenceType"/>
437           </parameter>
438           <parameter name="status" transfer-ownership="none">
439             <doc xml:whitespace="preserve">a status message to set, or %NULL</doc>
440             <type name="utf8" c:type="gchar*"/>
441           </parameter>
442           <parameter name="message" transfer-ownership="none">
443             <doc xml:whitespace="preserve">a message for the change, or %NULL</doc>
444             <type name="utf8" c:type="gchar*"/>
445           </parameter>
446           <parameter name="callback" transfer-ownership="none" scope="async" closure="5">
447             <doc xml:whitespace="preserve">a callback to call when the request is satisfied</doc>
448             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
449           </parameter>
450           <parameter name="user_data" transfer-ownership="none">
451             <doc xml:whitespace="preserve">data to pass to @callback</doc>
452             <type name="any" c:type="gpointer"/>
453           </parameter>
454         </parameters>
455       </method>
456       <method name="request_presence_finish" c:identifier="tp_account_request_presence_finish" version="0.9.0" throws="1">
457         <doc xml:whitespace="preserve">Finishes an async presence change request on @account.</doc>
458         <return-value transfer-ownership="none">
459           <doc xml:whitespace="preserve">%TRUE if the operation was successful, otherwise %FALSE</doc>
460           <type name="boolean" c:type="gboolean"/>
461         </return-value>
462         <parameters>
463           <parameter name="result" transfer-ownership="none">
464             <doc xml:whitespace="preserve">a #GAsyncResult</doc>
465             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
466           </parameter>
467         </parameters>
468       </method>
469       <method name="get_connect_automatically" c:identifier="tp_account_get_connect_automatically" version="0.9.0">
470         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
471         <return-value transfer-ownership="none">
472           <doc xml:whitespace="preserve">the same as the #TpAccount:connect-automatically property</doc>
473           <type name="boolean" c:type="gboolean"/>
474         </return-value>
475       </method>
476       <method name="set_connect_automatically_async" c:identifier="tp_account_set_connect_automatically_async" version="0.9.0">
477         <doc xml:whitespace="preserve">Requests an asynchronous set of the ConnectAutomatically property of
478 then call tp_account_set_display_name_finish() to get the result of the
479 operation.</doc>
480         <return-value transfer-ownership="none">
481           <type name="none" c:type="void"/>
482         </return-value>
483         <parameters>
484           <parameter name="connect_automatically" transfer-ownership="none">
485             <doc xml:whitespace="preserve">new value for the parameter</doc>
486             <type name="boolean" c:type="gboolean"/>
487           </parameter>
488           <parameter name="callback" transfer-ownership="none" scope="async" closure="3">
489             <doc xml:whitespace="preserve">a callback to call when the request is satisfied</doc>
490             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
491           </parameter>
492           <parameter name="user_data" transfer-ownership="none">
493             <doc xml:whitespace="preserve">data to pass to @callback</doc>
494             <type name="any" c:type="gpointer"/>
495           </parameter>
496         </parameters>
497       </method>
498       <method name="set_connect_automatically_finish" c:identifier="tp_account_set_connect_automatically_finish" version="0.9.0" throws="1">
499         <doc xml:whitespace="preserve">Finishes an async set of the ConnectAutomatically property.</doc>
500         <return-value transfer-ownership="none">
501           <doc xml:whitespace="preserve">%TRUE if the call was successful, otherwise %FALSE</doc>
502           <type name="boolean" c:type="gboolean"/>
503         </return-value>
504         <parameters>
505           <parameter name="result" transfer-ownership="none">
506             <doc xml:whitespace="preserve">a #GAsyncResult</doc>
507             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
508           </parameter>
509         </parameters>
510       </method>
511       <method name="get_has_been_online" c:identifier="tp_account_get_has_been_online" version="0.9.0">
512         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
513         <return-value transfer-ownership="none">
514           <doc xml:whitespace="preserve">the same as the #TpAccount:has-been-online property</doc>
515           <type name="boolean" c:type="gboolean"/>
516         </return-value>
517       </method>
518       <method name="get_connection_status" c:identifier="tp_account_get_connection_status" version="0.9.0">
519         <doc xml:whitespace="preserve">Gets the connection status and reason from @account. The two values
520 are the same as the #TpAccount:connection-status and
521 #TpAccount:connection-status-reason properties.</doc>
522         <return-value transfer-ownership="full">
523           <doc xml:whitespace="preserve">the same as the #TpAccount:connection-status property</doc>
524           <type name="ConnectionStatus" c:type="TpConnectionStatus"/>
525         </return-value>
526         <parameters>
527           <parameter name="reason" direction="out" caller-allocates="1" transfer-ownership="none">
528             <doc xml:whitespace="preserve">a #TpConnectionStatusReason to fill, or %NULL</doc>
529             <type name="ConnectionStatusReason" c:type="TpConnectionStatusReason*"/>
530           </parameter>
531         </parameters>
532       </method>
533       <method name="get_detailed_error" c:identifier="tp_account_get_detailed_error" version="0.11.7" introspectable="0">
534         <doc xml:whitespace="preserve">If the account's connection is not connected, return the D-Bus error name
535 with which it last disconnected or failed to connect (in particular, this
536 is %TP_ERROR_STR_CANCELLED if it was disconnected by a user request).
537 This is the same as #TpAccount:connection-error.
538 If @details is not %NULL, it will be used to return additional details about
539 the error (the same as #TpAccount:connection-error-details).
540 Otherwise, return %NULL, without altering @details.
541 The returned string and @details may become invalid when the main loop is
542 re-entered or the account is destroyed.</doc>
543         <return-value transfer-ownership="none">
544           <doc xml:whitespace="preserve">a D-Bus error name, or %NULL.</doc>
545           <type name="utf8" c:type="gchar*"/>
546         </return-value>
547         <parameters>
548           <parameter name="details" direction="out" caller-allocates="0" transfer-ownership="none" allow-none="1">
549             <doc xml:whitespace="preserve">optionally used to return a map from string to #GValue, which must not be modified, destroyed or unreffed by the caller</doc>
550             <type name="GLib.HashTable" c:type="GHashTable**">
551               <type name="utf8"/>
552               <type name="GObject.Value"/>
553             </type>
554           </parameter>
555         </parameters>
556       </method>
557       <method name="get_current_presence" c:identifier="tp_account_get_current_presence" version="0.9.0">
558         <doc xml:whitespace="preserve">Gets the current presence, status and status message of @account. These
559 values are the same as the #TpAccount:current-presence-type,
560 #TpAccount:current-status and #TpAccount:current-status-message properties.</doc>
561         <return-value transfer-ownership="full">
562           <doc xml:whitespace="preserve">the same as the #TpAccount:current-presence-type property</doc>
563           <type name="ConnectionPresenceType" c:type="TpConnectionPresenceType"/>
564         </return-value>
565         <parameters>
566           <parameter name="status" direction="out" caller-allocates="0" transfer-ownership="full">
567             <doc xml:whitespace="preserve">return location for the current status</doc>
568             <type name="utf8" c:type="gchar**"/>
569           </parameter>
570           <parameter name="status_message" direction="out" caller-allocates="0" transfer-ownership="full">
571             <doc xml:whitespace="preserve">return location for the current status message</doc>
572             <type name="utf8" c:type="gchar**"/>
573           </parameter>
574         </parameters>
575       </method>
576       <method name="get_requested_presence" c:identifier="tp_account_get_requested_presence" version="0.9.0">
577         <doc xml:whitespace="preserve">Gets the requested presence, status and status message of @account. These
578 values are the same as the #TpAccount:requested-presence-type,
579 #TpAccount:requested-status and #TpAccount:requested-status-message
580 properties.</doc>
581         <return-value transfer-ownership="full">
582           <doc xml:whitespace="preserve">the same as the #TpAccount:requested-presence-type property</doc>
583           <type name="ConnectionPresenceType" c:type="TpConnectionPresenceType"/>
584         </return-value>
585         <parameters>
586           <parameter name="status" direction="out" caller-allocates="0" transfer-ownership="none">
587             <doc xml:whitespace="preserve">return location for the requested status</doc>
588             <type name="utf8" c:type="gchar**"/>
589           </parameter>
590           <parameter name="status_message" direction="out" caller-allocates="0" transfer-ownership="full">
591             <doc xml:whitespace="preserve">return location for the requested status message</doc>
592             <type name="utf8" c:type="gchar**"/>
593           </parameter>
594         </parameters>
595       </method>
596       <method name="get_parameters" c:identifier="tp_account_get_parameters" version="0.9.0">
597         <doc xml:whitespace="preserve">Returns the parameters of the account, in a hash table where each string
598 is the parameter name (account, password, require-encryption etc.), and
599 each value is a #GValue. Using the tp_asv_get family of functions
600 (tp_asv_get_uint32(), tp_asv_get_string() etc.) to access the parameters is
601 recommended.
602 The allowed parameters depend on the connection manager, and can be found
603 via tp_connection_manager_get_protocol() and
604 tp_connection_manager_protocol_get_param(). Well-known parameters are
605 listed
606 &lt;ulink url="http://telepathy.freedesktop.org/spec/org.freedesktop.Telepathy.ConnectionManager.html#org.freedesktop.Telepathy.ConnectionManager.RequestConnection"&gt;in
607 the Telepathy D-Bus Interface Specification&lt;/ulink&gt;.
608 parameters on @account</doc>
609         <return-value transfer-ownership="none">
610           <doc xml:whitespace="preserve">the hash table of</doc>
611           <type name="GLib.HashTable" c:type="GHashTable*">
612             <type name="utf8"/>
613             <type name="GObject.Value"/>
614           </type>
615         </return-value>
616       </method>
617       <method name="get_nickname" c:identifier="tp_account_get_nickname" version="0.9.0">
618         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
619         <return-value transfer-ownership="none">
620           <doc xml:whitespace="preserve">the same as the #TpAccount:nickname property</doc>
621           <type name="utf8" c:type="gchar*"/>
622         </return-value>
623       </method>
624       <method name="set_nickname_async" c:identifier="tp_account_set_nickname_async" version="0.9.0">
625         <doc xml:whitespace="preserve">Requests an asynchronous change of the Nickname parameter on @account. When
626 the operation is finished, @callback will be called. You can then call
627 tp_account_set_nickname_finish() to get the result of the operation.</doc>
628         <return-value transfer-ownership="none">
629           <type name="none" c:type="void"/>
630         </return-value>
631         <parameters>
632           <parameter name="nickname" transfer-ownership="none">
633             <doc xml:whitespace="preserve">a new nickname to set</doc>
634             <type name="utf8" c:type="gchar*"/>
635           </parameter>
636           <parameter name="callback" transfer-ownership="none" scope="async" closure="3">
637             <doc xml:whitespace="preserve">a callback to call when the request is satisfied</doc>
638             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
639           </parameter>
640           <parameter name="user_data" transfer-ownership="none">
641             <doc xml:whitespace="preserve">data to pass to @callback</doc>
642             <type name="any" c:type="gpointer"/>
643           </parameter>
644         </parameters>
645       </method>
646       <method name="set_nickname_finish" c:identifier="tp_account_set_nickname_finish" version="0.9.0" throws="1">
647         <doc xml:whitespace="preserve">Finishes an async nickname change request on @account.</doc>
648         <return-value transfer-ownership="none">
649           <doc xml:whitespace="preserve">%TRUE if the operation was successful, otherwise %FALSE</doc>
650           <type name="boolean" c:type="gboolean"/>
651         </return-value>
652         <parameters>
653           <parameter name="result" transfer-ownership="none">
654             <doc xml:whitespace="preserve">a #GAsyncResult</doc>
655             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
656           </parameter>
657         </parameters>
658       </method>
659       <method name="get_avatar_async" c:identifier="tp_account_get_avatar_async" version="0.9.0">
660         <doc xml:whitespace="preserve">Requests an asynchronous get of @account's avatar. When
661 the operation is finished, @callback will be called. You can then call
662 tp_account_get_avatar_finish() to get the result of the operation.</doc>
663         <return-value transfer-ownership="none">
664           <type name="none" c:type="void"/>
665         </return-value>
666         <parameters>
667           <parameter name="callback" transfer-ownership="none" scope="async" closure="2">
668             <doc xml:whitespace="preserve">a callback to call when the request is satisfied</doc>
669             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
670           </parameter>
671           <parameter name="user_data" transfer-ownership="none">
672             <doc xml:whitespace="preserve">data to pass to @callback</doc>
673             <type name="any" c:type="gpointer"/>
674           </parameter>
675         </parameters>
676       </method>
677       <method name="get_avatar_finish" c:identifier="tp_account_get_avatar_finish" version="0.9.0" throws="1">
678         <doc xml:whitespace="preserve">Finishes an async get operation of @account's avatar.
679 containing the bytes of the account's avatar, or %NULL on failure</doc>
680         <return-value transfer-ownership="none">
681           <doc xml:whitespace="preserve">a #GArray of #guchar</doc>
682           <array name="GLib.Array" c:type="GArray*">
683             <type name="uint8"/>
684           </array>
685         </return-value>
686         <parameters>
687           <parameter name="result" transfer-ownership="none">
688             <doc xml:whitespace="preserve">a #GAsyncResult</doc>
689             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
690           </parameter>
691         </parameters>
692       </method>
693       <method name="is_prepared" c:identifier="tp_account_is_prepared" version="0.9.0" introspectable="0">
694         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
695         <return-value transfer-ownership="none">
696           <doc xml:whitespace="preserve">the same thing as tp_proxy_is_prepared()</doc>
697           <type name="boolean" c:type="gboolean"/>
698         </return-value>
699         <parameters>
700           <parameter name="feature" transfer-ownership="none">
701             <doc xml:whitespace="preserve">a feature which is required</doc>
702             <type name="GLib.Quark" c:type="GQuark"/>
703           </parameter>
704         </parameters>
705       </method>
706       <method name="prepare_async" c:identifier="tp_account_prepare_async" version="0.9.0" introspectable="0">
707         <doc xml:whitespace="preserve">Requests an asynchronous preparation of @account with the features specified
708 by @features. When the operation is finished, @callback will be called. You
709 can then call tp_account_prepare_finish() to get the result of the
710 operation.
711 If @features is %NULL, then @callback will be called when the implied
712 %TP_ACCOUNT_FEATURE_CORE feature is ready.
713 If %NULL is given to @callback, then no callback will be called when the
714 operation is finished. Instead, it will simply set @features on @manager.
715 Note that if @callback is %NULL, then @user_data must also be %NULL.
716 Since 0.11.3, this is equivalent to calling the new function
717 tp_proxy_prepare_async() with the same arguments.</doc>
718         <return-value transfer-ownership="none">
719           <type name="none" c:type="void"/>
720         </return-value>
721         <parameters>
722           <parameter name="features" transfer-ownership="none">
723             <doc xml:whitespace="preserve">a 0-terminated list of features, or %NULL</doc>
724             <type name="GLib.Quark" c:type="GQuark*"/>
725           </parameter>
726           <parameter name="callback" transfer-ownership="none" scope="async" closure="3">
727             <doc xml:whitespace="preserve">a callback to call when the request is satisfied</doc>
728             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
729           </parameter>
730           <parameter name="user_data" transfer-ownership="none">
731             <doc xml:whitespace="preserve">data to pass to @callback</doc>
732             <type name="any" c:type="gpointer"/>
733           </parameter>
734         </parameters>
735       </method>
736       <method name="prepare_finish" c:identifier="tp_account_prepare_finish" version="0.9.0" introspectable="0" throws="1">
737         <doc xml:whitespace="preserve">Finishes an async preparation of the account @account.</doc>
738         <return-value transfer-ownership="none">
739           <doc xml:whitespace="preserve">%TRUE if the preparation was successful, otherwise %FALSE</doc>
740           <type name="boolean" c:type="gboolean"/>
741         </return-value>
742         <parameters>
743           <parameter name="result" transfer-ownership="none">
744             <doc xml:whitespace="preserve">a #GAsyncResult</doc>
745             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
746           </parameter>
747         </parameters>
748       </method>
749       <method name="set_avatar_async" c:identifier="tp_account_set_avatar_async" version="0.11.1">
750         <doc xml:whitespace="preserve">Requests an asynchronous change of the Avatar parameter on @self. When
751 the operation is finished, @callback will be called. You can then call
752 tp_account_set_avatar_finish() to get the result of the operation.
753 If @len equals 0, the avatar is cleared.</doc>
754         <return-value transfer-ownership="none">
755           <type name="none" c:type="void"/>
756         </return-value>
757         <parameters>
758           <parameter name="avatar" transfer-ownership="none" allow-none="1">
759             <doc xml:whitespace="preserve">a new avatar to set; can be %NULL only if @len equals 0</doc>
760             <array length="2" c:type="guchar*">
761               <type name="uint8"/>
762             </array>
763           </parameter>
764           <parameter name="len" transfer-ownership="none">
765             <doc xml:whitespace="preserve">the length of the new avatar</doc>
766             <type name="gsize" c:type="gsize"/>
767           </parameter>
768           <parameter name="mime_type" transfer-ownership="none" allow-none="1">
769             <doc xml:whitespace="preserve">the MIME type of the new avatar; can be %NULL only if @len equals 0</doc>
770             <type name="utf8" c:type="gchar*"/>
771           </parameter>
772           <parameter name="callback" transfer-ownership="none" scope="async" closure="5">
773             <doc xml:whitespace="preserve">a callback to call when the request is satisfied</doc>
774             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
775           </parameter>
776           <parameter name="user_data" transfer-ownership="none">
777             <doc xml:whitespace="preserve">data to pass to @callback</doc>
778             <type name="any" c:type="gpointer"/>
779           </parameter>
780         </parameters>
781       </method>
782       <method name="set_avatar_finish" c:identifier="tp_account_set_avatar_finish" version="0.11.1" throws="1">
783         <doc xml:whitespace="preserve">Finishes an async avatar change request on @account.</doc>
784         <return-value transfer-ownership="none">
785           <doc xml:whitespace="preserve">%TRUE if the operation was successful, otherwise %FALSE</doc>
786           <type name="boolean" c:type="gboolean"/>
787         </return-value>
788         <parameters>
789           <parameter name="result" transfer-ownership="none">
790             <doc xml:whitespace="preserve">a #GAsyncResult</doc>
791             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
792           </parameter>
793         </parameters>
794       </method>
795       <method name="get_changing_presence" c:identifier="tp_account_get_changing_presence" version="0.11.6">
796         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
797         <return-value transfer-ownership="none">
798           <doc xml:whitespace="preserve">the same as the #TpAccount:changing-presence property</doc>
799           <type name="boolean" c:type="gboolean"/>
800         </return-value>
801       </method>
802       <property name="changing-presence" version="0.11.6" transfer-ownership="none">
803         <doc xml:whitespace="preserve">%TRUE if an attempt is currently being made to change the account's
804 presence (#TpAccount:current-presence-type, #TpAccount:current-status
805 and #TpAccount:current-status-message) to match its requested presence
806 (#TpAccount:requested-presence-type, #TpAccount:requested-status
807 and #TpAccount:requested-status-message).
808 One can receive change notifications on this property by connecting
809 to the #GObject::notify signal and using this property as the signal
810 detail.
811 This is not guaranteed to have been retrieved until
812 tp_proxy_prepare_async() has finished; until then, the value is
813 %FALSE.</doc>
814         <type name="boolean" c:type="gboolean"/>
815       </property>
816       <property name="connect-automatically" version="0.9.0" transfer-ownership="none">
817         <doc xml:whitespace="preserve">Whether the account should connect automatically or not. To change this
818 property, use tp_account_set_connect_automatically_async().
819 One can receive change notifications on this property by connecting
820 to the #GObject::notify signal and using this property as the signal
821 detail.
822 This is not guaranteed to have been retrieved until
823 tp_proxy_prepare_async() has finished; until then, the value is
824 %FALSE.</doc>
825         <type name="boolean" c:type="gboolean"/>
826       </property>
827       <property name="connection" version="0.9.0" transfer-ownership="none">
828         <doc xml:whitespace="preserve">The connection of the account, or NULL if account is offline.
829 It is not guaranteed that the returned #TpConnection object is ready.
830 One can receive change notifications on this property by connecting
831 to the #GObject::notify signal and using this property as the signal
832 detail.
833 This is not guaranteed to have been retrieved until
834 tp_proxy_prepare_async() has finished; until then, the value is
835 %NULL.</doc>
836         <type name="Connection" c:type="TpConnection"/>
837       </property>
838       <property name="connection-error" version="0.11.7" transfer-ownership="none">
839         <doc xml:whitespace="preserve">The D-Bus error name for the last disconnection or connection failure,
840 (in particular, %TP_ERROR_STR_CANCELLED if it was disconnected by user
841 request), or %NULL if the account is connected.
842 One can receive change notifications on this property by connecting
843 to the #TpAccount::status-changed signal, or by connecting
844 to the #GObject::notify signal and using this property as the signal
845 detail.
846 This is not guaranteed to have been retrieved until
847 tp_proxy_prepare_async() has finished; until then, the value is
848 %NULL.</doc>
849         <type name="utf8" c:type="gchararray"/>
850       </property>
851       <property name="connection-error-details" version="0.11.7" transfer-ownership="none">
852         <doc xml:whitespace="preserve">A map from string to #GValue containing extensible error details
853 related to #TpAccount:connection-error. Functions like tp_asv_get_string()
854 can be used to read from this map.
855 The keys for this map are defined by
856 &lt;ulink url="http://telepathy.freedesktop.org/spec/"&gt;the Telepathy D-Bus
857 Interface Specification&lt;/ulink&gt;. They will typically include
858 &lt;literal&gt;debug-message&lt;/literal&gt;, which is a debugging message in the C
859 locale, analogous to #GError.message.
860 One can receive change notifications on this property by connecting
861 to the #TpAccount::status-changed signal, or by connecting
862 to the #GObject::notify signal and using this property as the signal
863 detail.
864 This is not guaranteed to have been retrieved until
865 tp_proxy_prepare_async() has finished; until then, the value is
866 an empty map.</doc>
867         <type name="GLib.HashTable" c:type="GHashTable"/>
868       </property>
869       <property name="connection-manager" version="0.9.0" transfer-ownership="none">
870         <doc xml:whitespace="preserve">The account's connection manager name.</doc>
871         <type name="utf8" c:type="gchararray"/>
872       </property>
873       <property name="connection-status" version="0.9.0" transfer-ownership="none">
874         <doc xml:whitespace="preserve">The account's connection status type (a %TpConnectionStatus).
875 One can receive change notifications on this property by connecting
876 to the #TpAccount::status-changed signal, or by connecting
877 to the #GObject::notify signal and using this property as the signal
878 detail.
879 This is not guaranteed to have been retrieved until
880 tp_proxy_prepare_async() has finished; until then, the value is
881 %TP_CONNECTION_STATUS_DISCONNECTED.</doc>
882         <type name="uint" c:type="guint"/>
883       </property>
884       <property name="connection-status-reason" version="0.9.0" transfer-ownership="none">
885         <doc xml:whitespace="preserve">The account's connection status reason (a %TpConnectionStatusReason).
886 One can receive change notifications on this property by connecting
887 to the #TpAccount::status-changed signal, or by connecting
888 to the #GObject::notify signal and using this property as the signal
889 detail.
890 This is not guaranteed to have been retrieved until
891 tp_proxy_prepare_async() has finished; until then, the value is
892 %TP_CONNECTION_STATUS_REASON_NONE_SPECIFIED.</doc>
893         <type name="uint" c:type="guint"/>
894       </property>
895       <property name="current-presence-type" version="0.9.0" transfer-ownership="none">
896         <doc xml:whitespace="preserve">The account connection's current presence type
897 (a %TpConnectionPresenceType).
898 One can receive change notifications on this property by connecting
899 to the #GObject::notify signal and using this property as the signal
900 detail.
901 This is not guaranteed to have been retrieved until
902 tp_proxy_prepare_async() has finished; until then, the value is
903 %TP_CONNECTION_PRESENCE_TYPE_UNSET.</doc>
904         <type name="uint" c:type="guint"/>
905       </property>
906       <property name="current-status" version="0.9.0" transfer-ownership="none">
907         <doc xml:whitespace="preserve">The current Status string of the account.
908 One can receive change notifications on this property by connecting
909 to the #GObject::notify signal and using this property as the signal
910 detail.
911 This is not guaranteed to have been retrieved until
912 tp_proxy_prepare_async() has finished; until then, the value is
913 %NULL.</doc>
914         <type name="utf8" c:type="gchararray"/>
915       </property>
916       <property name="current-status-message" version="0.9.0" transfer-ownership="none">
917         <doc xml:whitespace="preserve">The current status message message of the account.
918 One can receive change notifications on this property by connecting
919 to the #GObject::notify signal and using this property as the signal
920 detail.
921 This is not guaranteed to have been retrieved until
922 tp_proxy_prepare_async() has finished; until then, the value is
923 %NULL.</doc>
924         <type name="utf8" c:type="gchararray"/>
925       </property>
926       <property name="display-name" version="0.9.0" transfer-ownership="none">
927         <doc xml:whitespace="preserve">The account's display name, from the DisplayName property.
928 One can receive change notifications on this property by connecting
929 to the #GObject::notify signal and using this property as the signal
930 detail.
931 This is not guaranteed to have been retrieved until
932 tp_proxy_prepare_async() has finished; until then, the value is
933 %NULL.</doc>
934         <type name="utf8" c:type="gchararray"/>
935       </property>
936       <property name="enabled" version="0.9.0" transfer-ownership="none">
937         <doc xml:whitespace="preserve">Whether this account is enabled or not.
938 One can receive change notifications on this property by connecting
939 to the #GObject::notify signal and using this property as the signal
940 detail.
941 This is not guaranteed to have been retrieved until
942 tp_proxy_prepare_async() has finished; until then, the value is FALSE.</doc>
943         <type name="boolean" c:type="gboolean"/>
944       </property>
945       <property name="has-been-online" version="0.9.0" transfer-ownership="none">
946         <doc xml:whitespace="preserve">Whether this account has been online or not.
947 One can receive change notifications on this property by connecting
948 to the #GObject::notify signal and using this property as the signal
949 detail.
950 This is not guaranteed to have been retrieved until
951 tp_proxy_prepare_async() has finished; until then, the value is
952 %FALSE.</doc>
953         <type name="boolean" c:type="gboolean"/>
954       </property>
955       <property name="icon-name" version="0.9.0" transfer-ownership="none">
956         <doc xml:whitespace="preserve">The account's icon name. To change this propery, use
957 tp_account_set_icon_name_async().
958 One can receive change notifications on this property by connecting
959 to the #GObject::notify signal and using this property as the signal
960 detail.
961 This is not guaranteed to have been retrieved until
962 tp_proxy_prepare_async() has finished; until then, the value is
963 %NULL.</doc>
964         <type name="utf8" c:type="gchararray"/>
965       </property>
966       <property name="nickname" transfer-ownership="none">
967         <type name="utf8" c:type="gchararray"/>
968       </property>
969       <property name="protocol" version="0.9.0" transfer-ownership="none">
970         <doc xml:whitespace="preserve">The account's machine-readable protocol name, such as "jabber", "msn" or
971 "local-xmpp". Recommended names for most protocols can be found in the
972 Telepathy D-Bus Interface Specification.</doc>
973         <type name="utf8" c:type="gchararray"/>
974       </property>
975       <property name="requested-presence-type" version="0.9.0" transfer-ownership="none">
976         <doc xml:whitespace="preserve">The account's requested presence type (a #TpConnectionPresenceType).
977 One can receive change notifications on this property by connecting
978 to the #GObject::notify signal and using this property as the signal
979 detail.</doc>
980         <type name="uint" c:type="guint"/>
981       </property>
982       <property name="requested-status" version="0.9.0" transfer-ownership="none">
983         <doc xml:whitespace="preserve">The requested Status string of the account.
984 One can receive change notifications on this property by connecting
985 to the #GObject::notify signal and using this property as the signal
986 detail.</doc>
987         <type name="utf8" c:type="gchararray"/>
988       </property>
989       <property name="requested-status-message" version="0.9.0" transfer-ownership="none">
990         <doc xml:whitespace="preserve">The requested status message message of the account.
991 One can receive change notifications on this property by connecting
992 to the #GObject::notify signal and using this property as the signal
993 detail.</doc>
994         <type name="utf8" c:type="gchararray"/>
995       </property>
996       <property name="service" version="0.11.9" transfer-ownership="none">
997         <doc xml:whitespace="preserve">A machine-readable name identifying a specific service to which this
998 account connects, or a copy of #TpAccount:protocol if there is no more
999 specific service.
1000 Well-known names for various services can be found in the Telepathy D-Bus
1001 Interface Specification.
1002 For instance, accounts for the "jabber" protocol should have the service
1003 names "google-talk", "ovi-chat", "facebook" and "lj-talk" for accounts
1004 that connect to Google Talk, Ovi Chat, Facebook and Livejournal,
1005 respectively, and this property will be "jabber" for accounts that
1006 connect to a generic Jabber server.
1007 To change this property, use
1008 tp_account_set_service_async().</doc>
1009         <type name="utf8" c:type="gchararray"/>
1010       </property>
1011       <property name="valid" version="0.9.0" transfer-ownership="none">
1012         <doc xml:whitespace="preserve">Whether this account is valid.
1013 One can receive change notifications on this property by connecting
1014 to the #GObject::notify signal and using this property as the signal
1015 detail.
1016 This is not guaranteed to have been retrieved until
1017 tp_proxy_prepare_async() has finished; until then, the value is
1018 %FALSE.</doc>
1019         <type name="boolean" c:type="gboolean"/>
1020       </property>
1021       <field name="parent">
1022         <type name="Proxy" c:type="TpProxy"/>
1023       </field>
1024       <field name="priv">
1025         <type name="AccountPrivate" c:type="TpAccountPrivate*"/>
1026       </field>
1027       <glib:signal name="presence-changed" version="0.9.0">
1028         <doc xml:whitespace="preserve">Emitted when the presence of the account changes.</doc>
1029         <return-value transfer-ownership="full">
1030           <type name="none" c:type="void"/>
1031         </return-value>
1032         <parameters>
1033           <parameter name="presence" transfer-ownership="none">
1034             <doc xml:whitespace="preserve">the new presence</doc>
1035             <type name="uint" c:type="guint"/>
1036           </parameter>
1037           <parameter name="status" transfer-ownership="none">
1038             <doc xml:whitespace="preserve">the new presence status</doc>
1039             <type name="utf8" c:type="gchararray"/>
1040           </parameter>
1041           <parameter name="status_message" transfer-ownership="none">
1042             <doc xml:whitespace="preserve">the new presence status message</doc>
1043             <type name="utf8" c:type="gchararray"/>
1044           </parameter>
1045         </parameters>
1046       </glib:signal>
1047       <glib:signal name="status-changed" version="0.9.0">
1048         <doc xml:whitespace="preserve">Emitted when the connection status on the account changes.
1049 The @dbus_error_name and @details parameters were present, but
1050 non-functional (always %NULL), in older versions. They have been
1051 available with their current behaviour since version 0.11.7.</doc>
1052         <return-value transfer-ownership="full">
1053           <type name="none" c:type="void"/>
1054         </return-value>
1055         <parameters>
1056           <parameter name="old_status" transfer-ownership="none">
1057             <doc xml:whitespace="preserve">old #TpAccount:connection-status</doc>
1058             <type name="uint" c:type="guint"/>
1059           </parameter>
1060           <parameter name="new_status" transfer-ownership="none">
1061             <doc xml:whitespace="preserve">new #TpAccount:connection-status</doc>
1062             <type name="uint" c:type="guint"/>
1063           </parameter>
1064           <parameter name="reason" transfer-ownership="none">
1065             <doc xml:whitespace="preserve">the #TpAccount:connection-status-reason</doc>
1066             <type name="uint" c:type="guint"/>
1067           </parameter>
1068           <parameter name="dbus_error_name" transfer-ownership="none" allow-none="1">
1069             <doc xml:whitespace="preserve">connection-error</doc>
1070             <type name="utf8" c:type="gchararray"/>
1071           </parameter>
1072           <parameter name="details" transfer-ownership="none">
1073             <doc xml:whitespace="preserve">the #TpAccount:connection-error-details</doc>
1074             <type name="GLib.HashTable" c:type="GHashTable">
1075               <type name="utf8"/>
1076               <type name="GObject.Value"/>
1077             </type>
1078           </parameter>
1079         </parameters>
1080       </glib:signal>
1081     </class>
1082     <class name="AccountChannelRequest" c:type="TpAccountChannelRequest" version="0.11.12" parent="GObject.Object" glib:type-name="TpAccountChannelRequest" glib:get-type="tp_account_channel_request_get_type" glib:type-struct="AccountChannelRequestClass">
1083       <doc xml:whitespace="preserve">Data structure representing a #TpAccountChannelRequest object.</doc>
1084       <constructor name="new" c:identifier="tp_account_channel_request_new" version="0.11.12">
1085         <doc xml:whitespace="preserve">Convenience function to create a new #TpAccountChannelRequest object.</doc>
1086         <return-value transfer-ownership="full">
1087           <doc xml:whitespace="preserve">a new #TpAccountChannelRequest object</doc>
1088           <type name="AccountChannelRequest" c:type="TpAccountChannelRequest*"/>
1089         </return-value>
1090         <parameters>
1091           <parameter name="account" transfer-ownership="none">
1092             <doc xml:whitespace="preserve">a #TpAccount</doc>
1093             <type name="Account" c:type="TpAccount*"/>
1094           </parameter>
1095           <parameter name="request" transfer-ownership="none">
1096             <doc xml:whitespace="preserve">the requested properties of the channel (see #TpAccountChannelRequest:request)</doc>
1097             <type name="GLib.HashTable" c:type="GHashTable*">
1098               <type name="utf8"/>
1099               <type name="GObject.Value"/>
1100             </type>
1101           </parameter>
1102           <parameter name="user_action_time" transfer-ownership="none">
1103             <doc xml:whitespace="preserve">the time of the user action that caused this request, or one of the special values %TP_USER_ACTION_TIME_NOT_USER_ACTION or %TP_USER_ACTION_TIME_CURRENT_TIME (see #TpAccountChannelRequest:user-action-time)</doc>
1104             <type name="int64" c:type="gint64"/>
1105           </parameter>
1106         </parameters>
1107       </constructor>
1108       <method name="get_account" c:identifier="tp_account_channel_request_get_account" version="0.11.12">
1109         <doc xml:whitespace="preserve">Return the #TpAccountChannelRequest:account construct-only property</doc>
1110         <return-value transfer-ownership="none">
1111           <doc xml:whitespace="preserve">account</doc>
1112           <type name="Account" c:type="TpAccount*"/>
1113         </return-value>
1114       </method>
1115       <method name="get_request" c:identifier="tp_account_channel_request_get_request" version="0.11.12">
1116         <doc xml:whitespace="preserve">Return the #TpAccountChannelRequest:request construct-only property</doc>
1117         <return-value transfer-ownership="none">
1118           <doc xml:whitespace="preserve">request</doc>
1119           <type name="GLib.HashTable" c:type="GHashTable*"/>
1120         </return-value>
1121       </method>
1122       <method name="get_user_action_time" c:identifier="tp_account_channel_request_get_user_action_time" version="0.11.12">
1123         <doc xml:whitespace="preserve">Return the #TpAccountChannelRequest:user-action-time construct-only property</doc>
1124         <return-value transfer-ownership="none">
1125           <doc xml:whitespace="preserve">the value of #TpAccountChannelRequest:user-action-time</doc>
1126           <type name="int64" c:type="gint64"/>
1127         </return-value>
1128       </method>
1129       <method name="create_and_handle_channel_async" c:identifier="tp_account_channel_request_create_and_handle_channel_async" version="0.11.12">
1130         <doc xml:whitespace="preserve">Asynchronously calls CreateChannel on the ChannelDispatcher to create a
1131 channel with the properties defined in #TpAccountChannelRequest:request
1132 that you are going to handle yourself.
1133 When the operation is finished, @callback will be called. You can then call
1134 tp_account_channel_request_create_and_handle_channel_finish() to get the
1135 result of the operation.
1136 (Behind the scenes, this works by creating a temporary #TpBaseClient, then
1137 acting like tp_account_channel_request_create_channel_async() with the
1138 temporary #TpBaseClient as the @preferred_handler.)</doc>
1139         <return-value transfer-ownership="none">
1140           <type name="none" c:type="void"/>
1141         </return-value>
1142         <parameters>
1143           <parameter name="cancellable" transfer-ownership="none" allow-none="1">
1144             <doc xml:whitespace="preserve">optional #GCancellable object, %NULL to ignore</doc>
1145             <type name="Gio.Cancellable" c:type="GCancellable*"/>
1146           </parameter>
1147           <parameter name="callback" transfer-ownership="none" scope="async" closure="3">
1148             <doc xml:whitespace="preserve">a callback to call when the request is satisfied</doc>
1149             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
1150           </parameter>
1151           <parameter name="user_data" transfer-ownership="none">
1152             <doc xml:whitespace="preserve">data to pass to @callback</doc>
1153             <type name="any" c:type="gpointer"/>
1154           </parameter>
1155         </parameters>
1156       </method>
1157       <method name="create_and_handle_channel_finish" c:identifier="tp_account_channel_request_create_and_handle_channel_finish" version="0.11.12" throws="1">
1158         <doc xml:whitespace="preserve">Finishes an async channel creation started using
1159 tp_account_channel_request_create_and_handle_channel_async().
1160 See tp_account_channel_request_ensure_and_handle_channel_finish()
1161 for details of how @context can be used.
1162 channel was successfully created and you are handling it, otherwise %NULL.</doc>
1163         <return-value transfer-ownership="full">
1164           <doc xml:whitespace="preserve">a new reference on a #TpChannel if the</doc>
1165           <type name="Channel" c:type="TpChannel*"/>
1166         </return-value>
1167         <parameters>
1168           <parameter name="result" transfer-ownership="none">
1169             <doc xml:whitespace="preserve">a #GAsyncResult</doc>
1170             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
1171           </parameter>
1172           <parameter name="context" direction="out" caller-allocates="0" transfer-ownership="full" allow-none="1">
1173             <doc xml:whitespace="preserve">pointer used to return a reference to the context of the HandleChannels() call, or %NULL</doc>
1174             <type name="HandleChannelsContext" c:type="TpHandleChannelsContext**"/>
1175           </parameter>
1176         </parameters>
1177       </method>
1178       <method name="ensure_and_handle_channel_async" c:identifier="tp_account_channel_request_ensure_and_handle_channel_async" version="0.11.12">
1179         <doc xml:whitespace="preserve">Asynchronously calls EnsureChannel on the ChannelDispatcher to create a
1180 channel with the properties defined in #TpAccountChannelRequest:request
1181 that you are going to handle yourself.
1182 When the operation is finished, @callback will be called. You can then call
1183 tp_account_channel_request_ensure_and_handle_channel_finish() to get the
1184 result of the operation.
1185 If the channel already exists and is already being handled, or if a
1186 newly created channel is sent to a different handler, this operation
1187 will fail with the error %TP_ERROR_NOT_YOURS. The other handler
1188 will be notified that the channel was requested again (for instance
1189 with #TpAccountChannelRequest::re-handled,
1190 #TpBaseClientClassHandleChannelsImpl or #TpSimpleHandler:callback),
1191 and can move its window to the foreground, if applicable.
1192 (Behind the scenes, this works by creating a temporary #TpBaseClient, then
1193 acting like tp_account_channel_request_ensure_channel_async() with the
1194 temporary #TpBaseClient as the @preferred_handler.)</doc>
1195         <return-value transfer-ownership="none">
1196           <type name="none" c:type="void"/>
1197         </return-value>
1198         <parameters>
1199           <parameter name="cancellable" transfer-ownership="none" allow-none="1">
1200             <doc xml:whitespace="preserve">optional #GCancellable object, %NULL to ignore</doc>
1201             <type name="Gio.Cancellable" c:type="GCancellable*"/>
1202           </parameter>
1203           <parameter name="callback" transfer-ownership="none" scope="async" closure="3">
1204             <doc xml:whitespace="preserve">a callback to call when the request is satisfied</doc>
1205             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
1206           </parameter>
1207           <parameter name="user_data" transfer-ownership="none">
1208             <doc xml:whitespace="preserve">data to pass to @callback</doc>
1209             <type name="any" c:type="gpointer"/>
1210           </parameter>
1211         </parameters>
1212       </method>
1213       <method name="ensure_and_handle_channel_finish" c:identifier="tp_account_channel_request_ensure_and_handle_channel_finish" version="0.11.12" throws="1">
1214         <doc xml:whitespace="preserve">Finishes an async channel creation started using
1215 tp_account_channel_request_ensure_and_handle_channel_async().
1216 If the channel already exists and is already being handled, or if a
1217 newly created channel is sent to a different handler, this operation
1218 will fail with the error %TP_ERROR_NOT_YOURS.
1219 via tp_handle_channels_context_get_handler_info(), and any similar methods
1220 that are added in future. It is not valid for the caller of this method
1221 to call tp_handle_channels_context_accept(),
1222 tp_handle_channels_context_delay() or tp_handle_channels_context_fail().
1223 channel was successfully created and you are handling it, otherwise %NULL.</doc>
1224         <return-value transfer-ownership="full">
1225           <doc xml:whitespace="preserve">a new reference on a #TpChannel if the</doc>
1226           <type name="Channel" c:type="TpChannel*"/>
1227         </return-value>
1228         <parameters>
1229           <parameter name="result" transfer-ownership="none">
1230             <doc xml:whitespace="preserve">a #GAsyncResult</doc>
1231             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
1232           </parameter>
1233           <parameter name="context" direction="out" caller-allocates="0" transfer-ownership="full" allow-none="1">
1234             <doc xml:whitespace="preserve">pointer used to return a reference to the context of the HandleChannels() call, or %NULL</doc>
1235             <type name="HandleChannelsContext" c:type="TpHandleChannelsContext**"/>
1236           </parameter>
1237         </parameters>
1238       </method>
1239       <method name="create_channel_async" c:identifier="tp_account_channel_request_create_channel_async" version="0.11.12">
1240         <doc xml:whitespace="preserve">Asynchronously calls CreateChannel on the ChannelDispatcher to create a
1241 channel with the properties defined in #TpAccountChannelRequest:request
1242 and let the ChannelDispatcher dispatch it to an handler.
1243 or the request has failed.
1244 You can then call tp_account_channel_request_create_channel_finish() to
1245 get the result of the operation.</doc>
1246         <return-value transfer-ownership="none">
1247           <type name="none" c:type="void"/>
1248         </return-value>
1249         <parameters>
1250           <parameter name="preferred_handler" transfer-ownership="none">
1251             <doc xml:whitespace="preserve">Either the well-known bus name (starting with %TP_CLIENT_BUS_NAME_BASE) of the preferred handler for the channel, or %NULL to indicate that any handler would be acceptable.</doc>
1252             <type name="utf8" c:type="gchar*"/>
1253           </parameter>
1254           <parameter name="cancellable" transfer-ownership="none" allow-none="1">
1255             <doc xml:whitespace="preserve">optional #GCancellable object, %NULL to ignore</doc>
1256             <type name="Gio.Cancellable" c:type="GCancellable*"/>
1257           </parameter>
1258           <parameter name="callback" transfer-ownership="none" scope="async" closure="4">
1259             <doc xml:whitespace="preserve">a callback to call when the request is satisfied</doc>
1260             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
1261           </parameter>
1262           <parameter name="user_data" transfer-ownership="none">
1263             <doc xml:whitespace="preserve">data to pass to @callback</doc>
1264             <type name="any" c:type="gpointer"/>
1265           </parameter>
1266         </parameters>
1267       </method>
1268       <method name="create_channel_finish" c:identifier="tp_account_channel_request_create_channel_finish" version="0.11.12" throws="1">
1269         <doc xml:whitespace="preserve">Finishes an async channel creation started using
1270 tp_account_channel_request_create_channel_async().
1271 otherwise %FALSE.</doc>
1272         <return-value transfer-ownership="none">
1273           <doc xml:whitespace="preserve">%TRUE if the channel was successfully created and dispatched,</doc>
1274           <type name="boolean" c:type="gboolean"/>
1275         </return-value>
1276         <parameters>
1277           <parameter name="result" transfer-ownership="none">
1278             <doc xml:whitespace="preserve">a #GAsyncResult</doc>
1279             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
1280           </parameter>
1281         </parameters>
1282       </method>
1283       <method name="ensure_channel_async" c:identifier="tp_account_channel_request_ensure_channel_async" version="0.11.12">
1284         <doc xml:whitespace="preserve">Asynchronously calls EnsureChannel on the ChannelDispatcher to create a
1285 channel with the properties defined in #TpAccountChannelRequest:request
1286 and let the ChannelDispatcher dispatch it to an handler.
1287 If a suitable channel already existed, its handler will be notified that
1288 the channel was requested again (for instance with
1289 #TpAccountChannelRequest::re-handled, #TpBaseClientClassHandleChannelsImpl
1290 or #TpSimpleHandler:callback), and can move its window to the foreground,
1291 if applicable. Otherwise, a new channel will be created and dispatched to
1292 a handler.
1293 notified, a new channel has been created and dispatched, or the request
1294 has failed.
1295 You can then call tp_account_channel_request_ensure_channel_finish() to
1296 get the result of the operation.</doc>
1297         <return-value transfer-ownership="none">
1298           <type name="none" c:type="void"/>
1299         </return-value>
1300         <parameters>
1301           <parameter name="preferred_handler" transfer-ownership="none">
1302             <doc xml:whitespace="preserve">Either the well-known bus name (starting with %TP_CLIENT_BUS_NAME_BASE) of the preferred handler for the channel, or %NULL to indicate that any handler would be acceptable.</doc>
1303             <type name="utf8" c:type="gchar*"/>
1304           </parameter>
1305           <parameter name="cancellable" transfer-ownership="none" allow-none="1">
1306             <doc xml:whitespace="preserve">optional #GCancellable object, %NULL to ignore</doc>
1307             <type name="Gio.Cancellable" c:type="GCancellable*"/>
1308           </parameter>
1309           <parameter name="callback" transfer-ownership="none" scope="async" closure="4">
1310             <doc xml:whitespace="preserve">a callback to call when the request is satisfied</doc>
1311             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
1312           </parameter>
1313           <parameter name="user_data" transfer-ownership="none">
1314             <doc xml:whitespace="preserve">data to pass to @callback</doc>
1315             <type name="any" c:type="gpointer"/>
1316           </parameter>
1317         </parameters>
1318       </method>
1319       <method name="ensure_channel_finish" c:identifier="tp_account_channel_request_ensure_channel_finish" version="0.11.12" throws="1">
1320         <doc xml:whitespace="preserve">Finishes an async channel creation started using
1321 tp_account_channel_request_ensure_channel_async().
1322 otherwise %FALSE.</doc>
1323         <return-value transfer-ownership="none">
1324           <doc xml:whitespace="preserve">%TRUE if the channel was successfully ensured and (re-)dispatched,</doc>
1325           <type name="boolean" c:type="gboolean"/>
1326         </return-value>
1327         <parameters>
1328           <parameter name="result" transfer-ownership="none">
1329             <doc xml:whitespace="preserve">a #GAsyncResult</doc>
1330             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
1331           </parameter>
1332         </parameters>
1333       </method>
1334       <property name="account" version="0.11.12" writable="1" construct-only="1" transfer-ownership="none">
1335         <doc xml:whitespace="preserve">The #TpAccount used to request the channel.
1336 Read-only except during construction.
1337 This property can't be %NULL.</doc>
1338         <type name="Account" c:type="TpAccount"/>
1339       </property>
1340       <property name="user-action-time" version="0.11.12" writable="1" construct-only="1" transfer-ownership="none">
1341         <doc xml:whitespace="preserve">The user action time that will be passed to the channel dispatcher when
1342 requesting the channel.
1343 This may be the time at which user action occurred, or one of the special
1344 values %TP_USER_ACTION_TIME_NOT_USER_ACTION or
1345 %TP_USER_ACTION_TIME_CURRENT_TIME.
1346 If %TP_USER_ACTION_TIME_NOT_USER_ACTION, the action doesn't involve any
1347 user action. Clients should avoid stealing focus when presenting the
1348 channel.
1349 If %TP_USER_ACTION_TIME_CURRENT_TIME, clients SHOULD behave as though the
1350 user action happened at the current time, e.g. a client may
1351 request that its window gains focus.
1352 On X11-based systems, Gdk 2.x, Clutter 1.0 etc.,
1353 tp_user_action_time_from_x11() can be used to convert an X11 timestamp to
1354 a Telepathy user action time.
1355 If the channel request succeeds, this user action time will be passed on
1356 to the channel's handler. If the handler is a GUI, it may use
1357 tp_user_action_time_should_present() to decide whether to bring its
1358 window to the foreground.</doc>
1359         <type name="int64" c:type="gint64"/>
1360       </property>
1361       <glib:signal name="re-handled" version="0.11.12">
1362         <doc xml:whitespace="preserve">Emitted when the channel created using @self has been "re-handled".
1363 This means that a Telepathy client has made another request for a
1364 matching channel using an "ensure" API like
1365 tp_account_channel_request_ensure_channel_async(), while the channel
1366 still exists. Instead of creating a new channel, the channel dispatcher
1367 notifies the existing handler of @channel, resulting in this signal.
1368 Most GUI handlers should respond to this signal by checking
1369 via tp_handle_channels_context_get_handler_info(), and any similar methods
1370 that are added in future. It is not valid for the receiver of this signal
1371 to call tp_handle_channels_context_accept(),
1372 tp_handle_channels_context_delay() or tp_handle_channels_context_fail().</doc>
1373         <return-value transfer-ownership="full">
1374           <type name="none" c:type="void"/>
1375         </return-value>
1376         <parameters>
1377           <parameter name="channel" transfer-ownership="none">
1378             <doc xml:whitespace="preserve">the #TpChannel being re-handled</doc>
1379             <type name="Channel" c:type="TpChannel"/>
1380           </parameter>
1381           <parameter name="user_action_time" transfer-ownership="none">
1382             <doc xml:whitespace="preserve">the time at which user action occurred, or one of the special values %TP_USER_ACTION_TIME_NOT_USER_ACTION or %TP_USER_ACTION_TIME_CURRENT_TIME; see #TpAccountChannelRequest:user-action-time</doc>
1383             <type name="int64" c:type="gint64"/>
1384           </parameter>
1385           <parameter name="context" transfer-ownership="none">
1386             <doc xml:whitespace="preserve">a #TpHandleChannelsContext representing the context of the HandleChannels() call.</doc>
1387             <type name="HandleChannelsContext" c:type="TpHandleChannelsContext"/>
1388           </parameter>
1389         </parameters>
1390       </glib:signal>
1391     </class>
1392     <record name="AccountChannelRequestClass" c:type="TpAccountChannelRequestClass" glib:is-gtype-struct-for="AccountChannelRequest" version="0.11.12">
1393       <doc xml:whitespace="preserve">The class of a #TpAccountChannelRequest.</doc>
1394     </record>
1395     <record name="AccountChannelRequestPrivate" c:type="TpAccountChannelRequestPrivate">
1396     </record>
1397     <record name="AccountClass" c:type="TpAccountClass" glib:is-gtype-struct-for="Account">
1398       <doc xml:whitespace="preserve">The class of a #TpAccount.</doc>
1399       <field name="parent_class">
1400         <type name="ProxyClass" c:type="TpProxyClass"/>
1401       </field>
1402       <field name="_padding">
1403         <array zero-terminated="0" c:type="GCallback" fixed-size="7">
1404           <type name="GObject.Callback"/>
1405         </array>
1406       </field>
1407       <field name="priv">
1408         <type name="AccountClassPrivate" c:type="TpAccountClassPrivate*"/>
1409       </field>
1410     </record>
1411     <record name="AccountClassPrivate" c:type="TpAccountClassPrivate">
1412     </record>
1413     <class name="AccountManager" c:type="TpAccountManager" version="0.7.32" parent="Proxy" glib:type-name="TpAccountManager" glib:get-type="tp_account_manager_get_type" glib:type-struct="AccountManagerClass">
1414       <doc xml:whitespace="preserve">The Telepathy Account Manager stores real-time communication accounts and
1415 their configuration, places accounts online on request, and manipulates
1416 accounts' presence, nicknames and avatars.</doc>
1417       <constructor name="new" c:identifier="tp_account_manager_new">
1418         <doc xml:whitespace="preserve">Convenience function to create a new account manager proxy. The returned
1419 #TpAccountManager is not guaranteed to be ready on return.
1420 Use tp_account_manager_dup() instead if you want an account manager proxy
1421 on the starter or session bus (which is almost always the right thing for
1422 Telepathy).</doc>
1423         <return-value transfer-ownership="full">
1424           <doc xml:whitespace="preserve">a new reference to an account manager proxy</doc>
1425           <type name="AccountManager" c:type="TpAccountManager*"/>
1426         </return-value>
1427         <parameters>
1428           <parameter name="bus_daemon" transfer-ownership="none">
1429             <doc xml:whitespace="preserve">Proxy for the D-Bus daemon</doc>
1430             <type name="DBusDaemon" c:type="TpDBusDaemon*"/>
1431           </parameter>
1432         </parameters>
1433       </constructor>
1434       <function name="get_feature_quark_core" c:identifier="tp_account_manager_get_feature_quark_core" version="0.9.0">
1435         <doc xml:whitespace="preserve">&lt;!-- --&gt;
1436 #TpAccountManager</doc>
1437         <return-value transfer-ownership="full">
1438           <doc xml:whitespace="preserve">the quark used for representing the core feature of a</doc>
1439           <type name="GLib.Quark" c:type="GQuark"/>
1440         </return-value>
1441       </function>
1442       <function name="dup" c:identifier="tp_account_manager_dup" version="0.9.0">
1443         <doc xml:whitespace="preserve">Returns an account manager proxy on the D-Bus daemon on which this
1444 process was activated (if it was launched by D-Bus service activation), or
1445 the session bus (otherwise).
1446 The returned #TpAccountManager is cached; the same #TpAccountManager object
1447 will be returned by this function repeatedly, as long as at least one
1448 reference exists. Note that the returned #TpAccountManager is not guaranteed
1449 to be ready on return.
1450 if it wasn't possible to get a dbus daemon proxy for the
1451 appropriate bus</doc>
1452         <return-value transfer-ownership="full">
1453           <doc xml:whitespace="preserve">an account manager proxy on the starter or session bus, or %NULL</doc>
1454           <type name="AccountManager" c:type="TpAccountManager*"/>
1455         </return-value>
1456       </function>
1457       <function name="init_known_interfaces" c:identifier="tp_account_manager_init_known_interfaces" version="0.7.32">
1458         <doc xml:whitespace="preserve">Ensure that the known interfaces for TpAccountManager have been set up.
1459 This is done automatically when necessary, but for correct
1460 overriding of library interfaces by local extensions, you should
1461 call this function before calling
1462 tp_proxy_or_subclass_hook_on_interface_add() with first argument
1463 %TP_TYPE_ACCOUNT_MANAGER.</doc>
1464         <return-value transfer-ownership="none">
1465           <type name="none" c:type="void"/>
1466         </return-value>
1467       </function>
1468       <method name="ensure_account" c:identifier="tp_account_manager_ensure_account" version="0.9.0">
1469         <doc xml:whitespace="preserve">Lookup an account in the account manager @manager. If the desired account
1470 has already been ensured then the same object will be returned, otherwise
1471 it will create a new #TpAccount and add it to @manager. As a result, if
1472 to be ready on return.
1473 The caller must keep a ref to the returned object using g_object_ref() if
1474 it is to be kept.</doc>
1475         <return-value transfer-ownership="none">
1476           <doc xml:whitespace="preserve">a new #TpAccount at @path</doc>
1477           <type name="Account" c:type="TpAccount*"/>
1478         </return-value>
1479         <parameters>
1480           <parameter name="path" transfer-ownership="none">
1481             <doc xml:whitespace="preserve">the object path for an account</doc>
1482             <type name="utf8" c:type="gchar*"/>
1483           </parameter>
1484         </parameters>
1485       </method>
1486       <method name="get_valid_accounts" c:identifier="tp_account_manager_get_valid_accounts" version="0.9.0">
1487         <doc xml:whitespace="preserve">Returns a newly allocated #GList of valid accounts in @manager. The list
1488 must be freed with g_list_free() after used. None of the accounts in the
1489 returned list are guaranteed to be ready.
1490 Note that the #TpAccount&lt;!-- --&gt;s in the returned #GList are not reffed
1491 before returning from this function. One could ref every item in the list
1492 like the following example:
1493 |[
1494 GList *accounts;
1495 account = tp_account_manager_get_valid_accounts (manager);
1496 g_list_foreach (accounts, (GFunc) g_object_ref, NULL);
1497 ]|
1498 The list of valid accounts returned is not guaranteed to have been retrieved
1499 until %TP_ACCOUNT_MANAGER_FEATURE_CORE is prepared
1500 (tp_proxy_prepare_async() has returned). Until this feature has
1501 been prepared, an empty list (%NULL) will be returned.</doc>
1502         <return-value transfer-ownership="container">
1503           <doc xml:whitespace="preserve">a newly allocated #GList of valid accounts in @manager</doc>
1504           <type name="GLib.List" c:type="GList*">
1505             <type name="TelepathyGLib.Account"/>
1506           </type>
1507         </return-value>
1508       </method>
1509       <method name="set_all_requested_presences" c:identifier="tp_account_manager_set_all_requested_presences" version="0.9.0">
1510         <doc xml:whitespace="preserve">Iterates through the accounts in @manager and requests the presence
1511 (@type, @status and @message). Note that the presence requested here is
1512 merely a request, and if might not be satisfiable.
1513 You can find the most available presence across all accounts by calling
1514 tp_account_manager_get_most_available_presence().
1515 Setting a requested presence on all accounts will have no effect
1516 until tp_proxy_prepare_async()
1517 (or the older tp_account_manager_prepare_async()) has finished.</doc>
1518         <return-value transfer-ownership="none">
1519           <type name="none" c:type="void"/>
1520         </return-value>
1521         <parameters>
1522           <parameter name="type" transfer-ownership="none">
1523             <doc xml:whitespace="preserve">a presence type to request</doc>
1524             <type name="ConnectionPresenceType" c:type="TpConnectionPresenceType"/>
1525           </parameter>
1526           <parameter name="status" transfer-ownership="none">
1527             <doc xml:whitespace="preserve">a status to request</doc>
1528             <type name="utf8" c:type="gchar*"/>
1529           </parameter>
1530           <parameter name="message" transfer-ownership="none">
1531             <doc xml:whitespace="preserve">a status message to request</doc>
1532             <type name="utf8" c:type="gchar*"/>
1533           </parameter>
1534         </parameters>
1535       </method>
1536       <method name="get_most_available_presence" c:identifier="tp_account_manager_get_most_available_presence" version="0.9.0">
1537         <doc xml:whitespace="preserve">Gets the most available presence over all accounts in @manager. This
1538 function does not average presences across all accounts, but it merely
1539 finds the "most available" presence. As a result, there is a guarantee
1540 that there exists at least one account in @manager with the returned
1541 presence.
1542 If no accounts are enabled or valid the output will be
1543 (%TP_CONNECTION_PRESENCE_TYPE_OFFLINE, "offline", "").
1544 The return value of this function is not guaranteed to have been retrieved
1545 until tp_proxy_prepare_async() has finished; until then, the
1546 value will be the same as if no accounts are enabled or valid.</doc>
1547         <return-value transfer-ownership="full">
1548           <doc xml:whitespace="preserve">the most available presence across all accounts</doc>
1549           <type name="ConnectionPresenceType" c:type="TpConnectionPresenceType"/>
1550         </return-value>
1551         <parameters>
1552           <parameter name="status" direction="out" caller-allocates="0" transfer-ownership="full">
1553             <doc xml:whitespace="preserve">a string to fill with the actual status</doc>
1554             <type name="utf8" c:type="gchar**"/>
1555           </parameter>
1556           <parameter name="message" direction="out" caller-allocates="0" transfer-ownership="full">
1557             <doc xml:whitespace="preserve">a string to fill with the actual status message</doc>
1558             <type name="utf8" c:type="gchar**"/>
1559           </parameter>
1560         </parameters>
1561       </method>
1562       <method name="create_account_async" c:identifier="tp_account_manager_create_account_async" version="0.9.0">
1563         <doc xml:whitespace="preserve">Requests an asynchronous create of an account on the account manager
1564 then call tp_account_manager_create_account_finish() to get the result of
1565 the operation.
1566 %TP_ACCOUNT_FEATURE_CORE feature ready on it, so when calling
1567 tp_account_manager_create_account_finish(), one can guarantee this feature
1568 will be ready.</doc>
1569         <return-value transfer-ownership="none">
1570           <type name="none" c:type="void"/>
1571         </return-value>
1572         <parameters>
1573           <parameter name="connection_manager" transfer-ownership="none">
1574             <doc xml:whitespace="preserve">the name of a connection manager</doc>
1575             <type name="utf8" c:type="gchar*"/>
1576           </parameter>
1577           <parameter name="protocol" transfer-ownership="none">
1578             <doc xml:whitespace="preserve">the name of a protocol</doc>
1579             <type name="utf8" c:type="gchar*"/>
1580           </parameter>
1581           <parameter name="display_name" transfer-ownership="none">
1582             <doc xml:whitespace="preserve">the display name for the account</doc>
1583             <type name="utf8" c:type="gchar*"/>
1584           </parameter>
1585           <parameter name="parameters" transfer-ownership="none">
1586             <doc xml:whitespace="preserve">parameters for the new account</doc>
1587             <type name="GLib.HashTable" c:type="GHashTable*">
1588               <type name="utf8"/>
1589               <type name="GObject.Value"/>
1590             </type>
1591           </parameter>
1592           <parameter name="properties" transfer-ownership="none">
1593             <doc xml:whitespace="preserve">properties for the new account</doc>
1594             <type name="GLib.HashTable" c:type="GHashTable*">
1595               <type name="utf8"/>
1596               <type name="GObject.Value"/>
1597             </type>
1598           </parameter>
1599           <parameter name="callback" transfer-ownership="none" scope="async" closure="7">
1600             <doc xml:whitespace="preserve">a callback to call when the request is satisfied</doc>
1601             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
1602           </parameter>
1603           <parameter name="user_data" transfer-ownership="none">
1604             <doc xml:whitespace="preserve">data to pass to @callback</doc>
1605             <type name="any" c:type="gpointer"/>
1606           </parameter>
1607         </parameters>
1608       </method>
1609       <method name="create_account_finish" c:identifier="tp_account_manager_create_account_finish" version="0.9.0" throws="1">
1610         <doc xml:whitespace="preserve">Finishes an async create account operation, and returns a new #TpAccount
1611 object, with the %TP_ACCOUNT_FEATURE_CORE feature ready on it.
1612 The caller must keep a ref to the returned object using g_object_ref() if
1613 it is to be kept.
1614 success, otherwise %NULL</doc>
1615         <return-value transfer-ownership="none">
1616           <doc xml:whitespace="preserve">a new #TpAccount which was just created on</doc>
1617           <type name="Account" c:type="TpAccount*"/>
1618         </return-value>
1619         <parameters>
1620           <parameter name="result" transfer-ownership="none">
1621             <doc xml:whitespace="preserve">a #GAsyncResult</doc>
1622             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
1623           </parameter>
1624         </parameters>
1625       </method>
1626       <method name="is_prepared" c:identifier="tp_account_manager_is_prepared" version="0.9.0" introspectable="0">
1627         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
1628         <return-value transfer-ownership="none">
1629           <doc xml:whitespace="preserve">the same thing as tp_proxy_is_prepared()</doc>
1630           <type name="boolean" c:type="gboolean"/>
1631         </return-value>
1632         <parameters>
1633           <parameter name="feature" transfer-ownership="none">
1634             <doc xml:whitespace="preserve">a feature which is required</doc>
1635             <type name="GLib.Quark" c:type="GQuark"/>
1636           </parameter>
1637         </parameters>
1638       </method>
1639       <method name="prepare_async" c:identifier="tp_account_manager_prepare_async" version="0.9.0" introspectable="0">
1640         <doc xml:whitespace="preserve">Requests an asynchronous preparation of @manager with
1641 %TP_ACCOUNT_MANAGER_FEATURE_CORE, plus any features specified
1642 by @features. When the operation is finished, @callback will be called. You
1643 can then call tp_account_manager_prepare_finish() to get the result of the
1644 operation.
1645 If %NULL is given to @callback, then no callback will be called when the
1646 operation is finished. Instead, it will simply set @features on @manager.
1647 Note that if @callback is %NULL, then @user_data must also be %NULL.
1648 In version 0.11.3 or later, this is equivalent to calling
1649 tp_proxy_prepare_async() with the same arguments.</doc>
1650         <return-value transfer-ownership="none">
1651           <type name="none" c:type="void"/>
1652         </return-value>
1653         <parameters>
1654           <parameter name="features" transfer-ownership="none">
1655             <doc xml:whitespace="preserve">a 0-terminated list of features, or %NULL</doc>
1656             <type name="GLib.Quark" c:type="GQuark*"/>
1657           </parameter>
1658           <parameter name="callback" transfer-ownership="none" scope="async" closure="3">
1659             <doc xml:whitespace="preserve">a callback to call when the request is satisfied</doc>
1660             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
1661           </parameter>
1662           <parameter name="user_data" transfer-ownership="none">
1663             <doc xml:whitespace="preserve">data to pass to @callback</doc>
1664             <type name="any" c:type="gpointer"/>
1665           </parameter>
1666         </parameters>
1667       </method>
1668       <method name="prepare_finish" c:identifier="tp_account_manager_prepare_finish" version="0.9.0" introspectable="0" throws="1">
1669         <doc xml:whitespace="preserve">Finishes an async preparation of the account manager @manager.</doc>
1670         <return-value transfer-ownership="none">
1671           <doc xml:whitespace="preserve">%TRUE if the preparation was successful, otherwise %FALSE</doc>
1672           <type name="boolean" c:type="gboolean"/>
1673         </return-value>
1674         <parameters>
1675           <parameter name="result" transfer-ownership="none">
1676             <doc xml:whitespace="preserve">a #GAsyncResult</doc>
1677             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
1678           </parameter>
1679         </parameters>
1680       </method>
1681       <method name="enable_restart" c:identifier="tp_account_manager_enable_restart">
1682         <doc xml:whitespace="preserve">Enable autostarting the account manager D-Bus service. This means
1683 that the account manager will be restarted if it disappears from
1684 the bus.</doc>
1685         <return-value transfer-ownership="none">
1686           <type name="none" c:type="void"/>
1687         </return-value>
1688       </method>
1689       <field name="parent">
1690         <type name="Proxy" c:type="TpProxy"/>
1691       </field>
1692       <field name="priv">
1693         <type name="AccountManagerPrivate" c:type="TpAccountManagerPrivate*"/>
1694       </field>
1695       <glib:signal name="account-disabled" version="0.9.0">
1696         <doc xml:whitespace="preserve">Emitted when an account from @manager is disabled.</doc>
1697         <return-value transfer-ownership="full">
1698           <type name="none" c:type="void"/>
1699         </return-value>
1700         <parameters>
1701           <parameter name="account" transfer-ownership="none">
1702             <doc xml:whitespace="preserve">a #TpAccount</doc>
1703             <type name="Account" c:type="TpAccount"/>
1704           </parameter>
1705         </parameters>
1706       </glib:signal>
1707       <glib:signal name="account-enabled" version="0.9.0">
1708         <doc xml:whitespace="preserve">Emitted when an account from @manager is enabled.
1709 Note that the returned #TpAccount @account is not guaranteed to have any
1710 features pre-prepared, including %TP_ACCOUNT_FEATURE_CORE.</doc>
1711         <return-value transfer-ownership="full">
1712           <type name="none" c:type="void"/>
1713         </return-value>
1714         <parameters>
1715           <parameter name="account" transfer-ownership="none">
1716             <doc xml:whitespace="preserve">a #TpAccount</doc>
1717             <type name="Account" c:type="TpAccount"/>
1718           </parameter>
1719         </parameters>
1720       </glib:signal>
1721       <glib:signal name="account-removed" version="0.9.0">
1722         <doc xml:whitespace="preserve">Emitted when an account is removed from @manager.</doc>
1723         <return-value transfer-ownership="full">
1724           <type name="none" c:type="void"/>
1725         </return-value>
1726         <parameters>
1727           <parameter name="account" transfer-ownership="none">
1728             <doc xml:whitespace="preserve">a #TpAccount</doc>
1729             <type name="Account" c:type="TpAccount"/>
1730           </parameter>
1731         </parameters>
1732       </glib:signal>
1733       <glib:signal name="account-validity-changed" version="0.9.0">
1734         <doc xml:whitespace="preserve">Emitted when the validity on @account changes. @account is not guaranteed
1735 to be ready when this signal is emitted.</doc>
1736         <return-value transfer-ownership="full">
1737           <type name="none" c:type="void"/>
1738         </return-value>
1739         <parameters>
1740           <parameter name="account" transfer-ownership="none">
1741             <doc xml:whitespace="preserve">a #TpAccount</doc>
1742             <type name="Account" c:type="TpAccount"/>
1743           </parameter>
1744           <parameter name="valid" transfer-ownership="none">
1745             <doc xml:whitespace="preserve">%TRUE if the account is now valid</doc>
1746             <type name="boolean" c:type="gboolean"/>
1747           </parameter>
1748         </parameters>
1749       </glib:signal>
1750       <glib:signal name="most-available-presence-changed" version="0.9.0">
1751         <doc xml:whitespace="preserve">Emitted when the most available presence on @manager changes.</doc>
1752         <return-value transfer-ownership="full">
1753           <type name="none" c:type="void"/>
1754         </return-value>
1755         <parameters>
1756           <parameter name="presence" transfer-ownership="none">
1757             <doc xml:whitespace="preserve">new presence type</doc>
1758             <type name="uint" c:type="guint"/>
1759           </parameter>
1760           <parameter name="status" transfer-ownership="none">
1761             <doc xml:whitespace="preserve">new status</doc>
1762             <type name="utf8" c:type="gchararray"/>
1763           </parameter>
1764           <parameter name="message" transfer-ownership="none">
1765             <doc xml:whitespace="preserve">new status message</doc>
1766             <type name="utf8" c:type="gchararray"/>
1767           </parameter>
1768         </parameters>
1769       </glib:signal>
1770     </class>
1771     <record name="AccountManagerClass" c:type="TpAccountManagerClass" glib:is-gtype-struct-for="AccountManager">
1772       <doc xml:whitespace="preserve">The class of a #TpAccount.</doc>
1773       <field name="parent_class">
1774         <type name="ProxyClass" c:type="TpProxyClass"/>
1775       </field>
1776       <field name="_padding">
1777         <array zero-terminated="0" c:type="GCallback" fixed-size="7">
1778           <type name="GObject.Callback"/>
1779         </array>
1780       </field>
1781       <field name="priv">
1782         <type name="AccountManagerClassPrivate" c:type="TpAccountManagerClassPrivate*"/>
1783       </field>
1784     </record>
1785     <record name="AccountManagerClassPrivate" c:type="TpAccountManagerClassPrivate">
1786     </record>
1787     <record name="AccountManagerPrivate" c:type="TpAccountManagerPrivate">
1788     </record>
1789     <record name="AccountPrivate" c:type="TpAccountPrivate">
1790     </record>
1791     <class name="AddDispatchOperationContext" c:type="TpAddDispatchOperationContext" version="0.11.5" parent="GObject.Object" glib:type-name="TpAddDispatchOperationContext" glib:get-type="tp_add_dispatch_operation_context_get_type" glib:type-struct="AddDispatchOperationContextClass">
1792       <doc xml:whitespace="preserve">Data structure representing the context of a Approver.AddDispatchOperation()
1793 call.</doc>
1794       <method name="accept" c:identifier="tp_add_dispatch_operation_context_accept" version="0.11.5">
1795         <doc xml:whitespace="preserve">Called by #TpBaseClientClassAddDispatchOperationImpl when it's done so
1796 the D-Bus method can return.</doc>
1797         <return-value transfer-ownership="none">
1798           <type name="none" c:type="void"/>
1799         </return-value>
1800       </method>
1801       <method name="fail" c:identifier="tp_add_dispatch_operation_context_fail" version="0.11.5">
1802         <doc xml:whitespace="preserve">Called by #TpBaseClientClassAddDispatchOperationImpl to raise a D-Bus error.</doc>
1803         <return-value transfer-ownership="none">
1804           <type name="none" c:type="void"/>
1805         </return-value>
1806         <parameters>
1807           <parameter name="error" transfer-ownership="none">
1808             <doc xml:whitespace="preserve">the error to return from the method</doc>
1809             <type name="GLib.Error" c:type="GError*"/>
1810           </parameter>
1811         </parameters>
1812       </method>
1813       <method name="delay" c:identifier="tp_add_dispatch_operation_context_delay" version="0.11.5">
1814         <doc xml:whitespace="preserve">Called by #TpBaseClientClassAddDispatchOperationImpl to indicate that it
1815 implements the method in an async way. The caller must take a reference
1816 to the #TpAddDispatchOperationContext before calling this function, and
1817 is responsible for calling either
1818 tp_add_dispatch_operation_context_accept() or
1819 tp_add_dispatch_operation_context_fail() later.</doc>
1820         <return-value transfer-ownership="none">
1821           <type name="none" c:type="void"/>
1822         </return-value>
1823       </method>
1824       <property name="account" version="0.11.5" writable="1" construct-only="1" transfer-ownership="none">
1825         <doc xml:whitespace="preserve">A #TpAccount object representing the Account of the DispatchOperation
1826 that has been passed to AddDispatchOperation.
1827 Read-only except during construction.
1828 This property can't be %NULL.</doc>
1829         <type name="Account" c:type="TpAccount"/>
1830       </property>
1831       <property name="channels" version="0.11.5" writable="1" construct-only="1" transfer-ownership="none">
1832         <doc xml:whitespace="preserve">A #GPtrArray containing #TpChannel objects representing the channels
1833 that have been passed to AddDispatchOperation.
1834 Read-only except during construction.
1835 This property can't be %NULL.</doc>
1836         <type name="GLib.PtrArray" c:type="GPtrArray"/>
1837       </property>
1838       <property name="connection" version="0.11.5" writable="1" construct-only="1" transfer-ownership="none">
1839         <doc xml:whitespace="preserve">A #TpConnection object representing the Connection of the DispatchOperation
1840 that has been passed to AddDispatchOperation.
1841 Read-only except during construction.
1842 This property can't be %NULL.</doc>
1843         <type name="Connection" c:type="TpConnection"/>
1844       </property>
1845       <property name="dbus-context" version="0.11.5" introspectable="0" readable="0" writable="1" construct-only="1" transfer-ownership="none">
1846         <doc xml:whitespace="preserve">The #DBusGMethodInvocation representing the D-Bus context of the
1847 AddDispatchOperation call.
1848 Can only be written during construction.</doc>
1849         <type name="any" c:type="gpointer"/>
1850       </property>
1851       <property name="dispatch-operation" version="0.11.5" writable="1" construct-only="1" transfer-ownership="none">
1852         <doc xml:whitespace="preserve">A #TpChannelDispatchOperation object representing the
1853 ChannelDispatchOperation that has been passed to AddDispatchOperation.
1854 Read-only except during construction.
1855 This property can't be %NULL.</doc>
1856         <type name="ChannelDispatchOperation" c:type="TpChannelDispatchOperation"/>
1857       </property>
1858     </class>
1859     <record name="AddDispatchOperationContextClass" c:type="TpAddDispatchOperationContextClass" glib:is-gtype-struct-for="AddDispatchOperationContext" version="0.11.5">
1860       <doc xml:whitespace="preserve">The class of a #TpAddDispatchOperationContext.</doc>
1861     </record>
1862     <record name="AddDispatchOperationContextPrivate" c:type="TpAddDispatchOperationContextPrivate">
1863     </record>
1864     <enumeration name="AnonymityModeFlags" c:type="TpAnonymityModeFlags">
1865       <member name="client_info" value="1" c:identifier="TP_ANONYMITY_MODE_CLIENT_INFO"/>
1866       <member name="show_client_info" value="2" c:identifier="TP_ANONYMITY_MODE_SHOW_CLIENT_INFO"/>
1867       <member name="network_info" value="4" c:identifier="TP_ANONYMITY_MODE_NETWORK_INFO"/>
1868     </enumeration>
1869     <record name="AvatarRequirements" c:type="TpAvatarRequirements" glib:type-name="TpAvatarRequirements" glib:get-type="tp_avatar_requirements_get_type">
1870       <field name="supported_mime_types" writable="1">
1871         <array c:type="GStrv">
1872           <type name="utf8"/>
1873         </array>
1874       </field>
1875       <field name="minimum_width" writable="1">
1876         <type name="uint" c:type="guint"/>
1877       </field>
1878       <field name="minimum_height" writable="1">
1879         <type name="uint" c:type="guint"/>
1880       </field>
1881       <field name="recommended_width" writable="1">
1882         <type name="uint" c:type="guint"/>
1883       </field>
1884       <field name="recommended_height" writable="1">
1885         <type name="uint" c:type="guint"/>
1886       </field>
1887       <field name="maximum_width" writable="1">
1888         <type name="uint" c:type="guint"/>
1889       </field>
1890       <field name="maximum_height" writable="1">
1891         <type name="uint" c:type="guint"/>
1892       </field>
1893       <field name="maximum_bytes" writable="1">
1894         <type name="uint" c:type="guint"/>
1895       </field>
1896       <field name="_1" writable="1">
1897         <type name="any" c:type="gpointer"/>
1898       </field>
1899       <field name="_2" writable="1">
1900         <type name="any" c:type="gpointer"/>
1901       </field>
1902       <field name="_3" writable="1">
1903         <type name="any" c:type="gpointer"/>
1904       </field>
1905       <field name="_4" writable="1">
1906         <type name="any" c:type="gpointer"/>
1907       </field>
1908       <constructor name="new" c:identifier="tp_avatar_requirements_new">
1909         <return-value transfer-ownership="full">
1910           <type name="AvatarRequirements" c:type="TpAvatarRequirements*"/>
1911         </return-value>
1912         <parameters>
1913           <parameter name="supported_mime_types" transfer-ownership="none">
1914             <array c:type="GStrv">
1915               <type name="utf8"/>
1916             </array>
1917           </parameter>
1918           <parameter name="minimum_width" transfer-ownership="none">
1919             <type name="uint" c:type="guint"/>
1920           </parameter>
1921           <parameter name="minimum_height" transfer-ownership="none">
1922             <type name="uint" c:type="guint"/>
1923           </parameter>
1924           <parameter name="recommended_width" transfer-ownership="none">
1925             <type name="uint" c:type="guint"/>
1926           </parameter>
1927           <parameter name="recommended_height" transfer-ownership="none">
1928             <type name="uint" c:type="guint"/>
1929           </parameter>
1930           <parameter name="maximum_width" transfer-ownership="none">
1931             <type name="uint" c:type="guint"/>
1932           </parameter>
1933           <parameter name="maximum_height" transfer-ownership="none">
1934             <type name="uint" c:type="guint"/>
1935           </parameter>
1936           <parameter name="maximum_bytes" transfer-ownership="none">
1937             <type name="uint" c:type="guint"/>
1938           </parameter>
1939         </parameters>
1940       </constructor>
1941       <method name="copy" c:identifier="tp_avatar_requirements_copy">
1942         <return-value transfer-ownership="full">
1943           <type name="AvatarRequirements" c:type="TpAvatarRequirements*"/>
1944         </return-value>
1945       </method>
1946       <method name="destroy" c:identifier="tp_avatar_requirements_destroy">
1947         <return-value transfer-ownership="none">
1948           <type name="none" c:type="void"/>
1949         </return-value>
1950       </method>
1951     </record>
1952     <class name="BaseClient" c:type="TpBaseClient" version="0.11.5" parent="GObject.Object" abstract="1" glib:type-name="TpBaseClient" glib:get-type="tp_base_client_get_type" glib:type-struct="BaseClientClass">
1953       <doc xml:whitespace="preserve">Data structure representing a generic #TpSvcClient implementation.</doc>
1954       <function name="implement_observe_channels" c:identifier="tp_base_client_implement_observe_channels" version="0.11.5" introspectable="0">
1955         <doc xml:whitespace="preserve">Called by subclasses to define the actual implementation of the
1956 ObserveChannels() D-Bus method.
1957 Since 0.11.13 this is exactly equivalent to setting the
1958 #TpBaseClientClass.observe_channels function pointer.</doc>
1959         <return-value transfer-ownership="none">
1960           <type name="none" c:type="void"/>
1961         </return-value>
1962         <parameters>
1963           <parameter name="klass" transfer-ownership="none">
1964             <doc xml:whitespace="preserve">the #TpBaseClientClass of the object</doc>
1965             <type name="BaseClientClass" c:type="TpBaseClientClass*"/>
1966           </parameter>
1967           <parameter name="impl" transfer-ownership="none" scope="call">
1968             <doc xml:whitespace="preserve">the #TpBaseClientClassObserveChannelsImpl function implementing ObserveChannels()</doc>
1969             <type name="BaseClientClassObserveChannelsImpl" c:type="TpBaseClientClassObserveChannelsImpl"/>
1970           </parameter>
1971         </parameters>
1972       </function>
1973       <function name="implement_add_dispatch_operation" c:identifier="tp_base_client_implement_add_dispatch_operation" version="0.11.5" introspectable="0">
1974         <doc xml:whitespace="preserve">Called by subclasses to define the actual implementation of the
1975 AddDispatchOperation() D-Bus method.
1976 Since 0.11.13 this is exactly equivalent to setting the
1977 #TpBaseClientClass.add_dispatch_operation function pointer.</doc>
1978         <return-value transfer-ownership="none">
1979           <type name="none" c:type="void"/>
1980         </return-value>
1981         <parameters>
1982           <parameter name="klass" transfer-ownership="none">
1983             <doc xml:whitespace="preserve">the #TpBaseClientClass of the object</doc>
1984             <type name="BaseClientClass" c:type="TpBaseClientClass*"/>
1985           </parameter>
1986           <parameter name="impl" transfer-ownership="none" scope="call">
1987             <doc xml:whitespace="preserve">the #TpBaseClientClassAddDispatchOperationImpl function implementing AddDispatchOperation()</doc>
1988             <type name="BaseClientClassAddDispatchOperationImpl" c:type="TpBaseClientClassAddDispatchOperationImpl"/>
1989           </parameter>
1990         </parameters>
1991       </function>
1992       <function name="implement_handle_channels" c:identifier="tp_base_client_implement_handle_channels" version="0.11.6" introspectable="0">
1993         <doc xml:whitespace="preserve">Called by subclasses to define the actual implementation of the
1994 HandleChannels() D-Bus method.
1995 Since 0.11.13 this is exactly equivalent to setting the
1996 #TpBaseClientClass.handle_channels function pointer.</doc>
1997         <return-value transfer-ownership="none">
1998           <type name="none" c:type="void"/>
1999         </return-value>
2000         <parameters>
2001           <parameter name="klass" transfer-ownership="none">
2002             <doc xml:whitespace="preserve">the #TpBaseClientClass of the object</doc>
2003             <type name="BaseClientClass" c:type="TpBaseClientClass*"/>
2004           </parameter>
2005           <parameter name="impl" transfer-ownership="none" scope="call">
2006             <doc xml:whitespace="preserve">the #TpBaseClientClassHandleChannelsImpl function implementing HandleCHannels()</doc>
2007             <type name="BaseClientClassHandleChannelsImpl" c:type="TpBaseClientClassHandleChannelsImpl"/>
2008           </parameter>
2009         </parameters>
2010       </function>
2011       <method name="add_observer_filter" c:identifier="tp_base_client_add_observer_filter" version="0.11.5">
2012         <doc xml:whitespace="preserve">Register a new channel class as Observer.ObserverChannelFilter.
2013 The #TpBaseClientClass.observe_channels virtual method will be called
2014 whenever a new channel's properties match the ones in @filter.
2015 This method may only be called before tp_base_client_register() is
2016 called, and may only be called on objects whose class implements
2017 #TpBaseClientClass.observe_channels.</doc>
2018         <return-value transfer-ownership="none">
2019           <type name="none" c:type="void"/>
2020         </return-value>
2021         <parameters>
2022           <parameter name="filter" transfer-ownership="none">
2023             <doc xml:whitespace="preserve">a %TP_HASH_TYPE_CHANNEL_CLASS</doc>
2024             <type name="GLib.HashTable" c:type="GHashTable*">
2025               <type name="utf8"/>
2026               <type name="GObject.Value"/>
2027             </type>
2028           </parameter>
2029         </parameters>
2030       </method>
2031       <method name="take_observer_filter" c:identifier="tp_base_client_take_observer_filter" version="0.11.5" introspectable="0">
2032         <doc xml:whitespace="preserve">The same as tp_base_client_add_observer_filter(), but ownership of @filter
2033 is taken by @self. This makes it convenient to call using tp_asv_new():
2034 |[
2035 tp_base_client_take_observer_filter (client,
2036 tp_asv_new (
2037 TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING,
2038 TP_IFACE_CHANNEL_TYPE_TEXT,
2039 TP_PROP_CHANNEL_TARGET_HANDLE_TYPE, G_TYPE_UINT,
2040 TP_HANDLE_TYPE_CONTACT,
2041 ...));
2042 ]|</doc>
2043         <return-value transfer-ownership="none">
2044           <type name="none" c:type="void"/>
2045         </return-value>
2046         <parameters>
2047           <parameter name="filter" transfer-ownership="full">
2048             <doc xml:whitespace="preserve">a %TP_HASH_TYPE_CHANNEL_CLASS, ownership of which is taken by @self</doc>
2049             <type name="GLib.HashTable" c:type="GHashTable*">
2050               <type name="utf8"/>
2051               <type name="GObject.Value"/>
2052             </type>
2053           </parameter>
2054         </parameters>
2055       </method>
2056       <method name="set_observer_recover" c:identifier="tp_base_client_set_observer_recover" version="0.11.5">
2057         <doc xml:whitespace="preserve">Set whether the channel dispatcher should attempt to recover
2058 this Observer if it crashes. (This is implemented by setting
2059 the value of its Recover D-Bus property.)
2060 Normally, Observers are only notified when new channels
2061 appear. If an Observer is set to recover, when it registers with
2062 tp_base_client_register(), it will also be told about any channels
2063 that already existed before it started.
2064 For Observers that are activatable as a D-Bus service, if the
2065 Observer exits or crashes while there are any channels that match
2066 its filter, it will automatically be restarted by service-activation.
2067 This method may only be called before tp_base_client_register() is
2068 called, and may only be called on objects whose class implements
2069 #TpBaseClientClass.observe_channels.</doc>
2070         <return-value transfer-ownership="none">
2071           <type name="none" c:type="void"/>
2072         </return-value>
2073         <parameters>
2074           <parameter name="recover" transfer-ownership="none">
2075             <doc xml:whitespace="preserve">the value of the Observer.Recover property</doc>
2076             <type name="boolean" c:type="gboolean"/>
2077           </parameter>
2078         </parameters>
2079       </method>
2080       <method name="add_approver_filter" c:identifier="tp_base_client_add_approver_filter" version="0.11.5">
2081         <doc xml:whitespace="preserve">Register a new channel class as Approver.ApproverChannelFilter.
2082 The #TpBaseClientClass.add_dispatch_operation virtual method will be called
2083 whenever a new channel's properties match the ones in @filter.
2084 This method may only be called before tp_base_client_register() is
2085 called, and may only be called on objects whose class implements
2086 #TpBaseClientClass.add_dispatch_operation.</doc>
2087         <return-value transfer-ownership="none">
2088           <type name="none" c:type="void"/>
2089         </return-value>
2090         <parameters>
2091           <parameter name="filter" transfer-ownership="none">
2092             <doc xml:whitespace="preserve">a %TP_HASH_TYPE_CHANNEL_CLASS</doc>
2093             <type name="GLib.HashTable" c:type="GHashTable*">
2094               <type name="utf8"/>
2095               <type name="GObject.Value"/>
2096             </type>
2097           </parameter>
2098         </parameters>
2099       </method>
2100       <method name="take_approver_filter" c:identifier="tp_base_client_take_approver_filter" version="0.11.5" introspectable="0">
2101         <doc xml:whitespace="preserve">The same as tp_base_client_add_approver_filter(), but ownership of @filter
2102 is taken by @self. This makes it convenient to call using tp_asv_new():
2103 |[
2104 tp_base_client_take_approver_filter (client,
2105 tp_asv_new (
2106 TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING,
2107 TP_IFACE_CHANNEL_TYPE_TEXT,
2108 TP_PROP_CHANNEL_TARGET_HANDLE_TYPE, G_TYPE_UINT,
2109 TP_HANDLE_TYPE_CONTACT,
2110 ...));
2111 ]|</doc>
2112         <return-value transfer-ownership="none">
2113           <type name="none" c:type="void"/>
2114         </return-value>
2115         <parameters>
2116           <parameter name="filter" transfer-ownership="full">
2117             <doc xml:whitespace="preserve">a %TP_HASH_TYPE_CHANNEL_CLASS, ownership of which is taken by @self</doc>
2118             <type name="GLib.HashTable" c:type="GHashTable*">
2119               <type name="utf8"/>
2120               <type name="GObject.Value"/>
2121             </type>
2122           </parameter>
2123         </parameters>
2124       </method>
2125       <method name="be_a_handler" c:identifier="tp_base_client_be_a_handler" version="0.11.6">
2126         <doc xml:whitespace="preserve">Register @self as a ChannelHandler with an empty list of filter.
2127 This is useful if you want to create a client that only handle channels
2128 for which it's the PreferredHandler.
2129 This method may only be called before tp_base_client_register() is
2130 called, and may only be called on objects whose class has called
2131 #TpBaseClientClass.handle_channels.</doc>
2132         <return-value transfer-ownership="none">
2133           <type name="none" c:type="void"/>
2134         </return-value>
2135       </method>
2136       <method name="add_handler_filter" c:identifier="tp_base_client_add_handler_filter" version="0.11.6">
2137         <doc xml:whitespace="preserve">Register a new channel class as Handler.HandlerChannelFilter.
2138 The #TpBaseClientClass.handle_channels virtual method will be called
2139 whenever a new channel's properties match the ones in @filter.
2140 This method may only be called before tp_base_client_register() is
2141 called, and may only be called on objects whose class implements
2142 #TpBaseClientClass.handle_channels.</doc>
2143         <return-value transfer-ownership="none">
2144           <type name="none" c:type="void"/>
2145         </return-value>
2146         <parameters>
2147           <parameter name="filter" transfer-ownership="none">
2148             <doc xml:whitespace="preserve">a %TP_HASH_TYPE_CHANNEL_CLASS</doc>
2149             <type name="GLib.HashTable" c:type="GHashTable*">
2150               <type name="utf8"/>
2151               <type name="GObject.Value"/>
2152             </type>
2153           </parameter>
2154         </parameters>
2155       </method>
2156       <method name="take_handler_filter" c:identifier="tp_base_client_take_handler_filter" version="0.11.6" introspectable="0">
2157         <doc xml:whitespace="preserve">The same as tp_base_client_add_handler_filter(), but ownership of @filter
2158 is taken by @self. This makes it convenient to call using tp_asv_new():
2159 |[
2160 tp_base_client_take_handler_filter (client,
2161 tp_asv_new (
2162 TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING,
2163 TP_IFACE_CHANNEL_TYPE_TEXT,
2164 TP_PROP_CHANNEL_TARGET_HANDLE_TYPE, G_TYPE_UINT,
2165 TP_HANDLE_TYPE_CONTACT,
2166 ...));
2167 ]|</doc>
2168         <return-value transfer-ownership="none">
2169           <type name="none" c:type="void"/>
2170         </return-value>
2171         <parameters>
2172           <parameter name="filter" transfer-ownership="full">
2173             <doc xml:whitespace="preserve">a %TP_HASH_TYPE_CHANNEL_CLASS, ownership of which is taken by @self</doc>
2174             <type name="GLib.HashTable" c:type="GHashTable*">
2175               <type name="utf8"/>
2176               <type name="GObject.Value"/>
2177             </type>
2178           </parameter>
2179         </parameters>
2180       </method>
2181       <method name="set_handler_bypass_approval" c:identifier="tp_base_client_set_handler_bypass_approval" version="0.11.6">
2182         <doc xml:whitespace="preserve">Set whether the channels destined for this handler are automatically
2183 handled, without invoking approvers.
2184 (This is implemented by setting the value of its BypassApproval
2185 D-Bus property.)
2186 This method may only be called before tp_base_client_register() is
2187 called, and may only be called on objects whose class implements
2188 #TpBaseClientClass.handle_channels.</doc>
2189         <return-value transfer-ownership="none">
2190           <type name="none" c:type="void"/>
2191         </return-value>
2192         <parameters>
2193           <parameter name="bypass_approval" transfer-ownership="none">
2194             <doc xml:whitespace="preserve">the value of the Handler.BypassApproval property</doc>
2195             <type name="boolean" c:type="gboolean"/>
2196           </parameter>
2197         </parameters>
2198       </method>
2199       <method name="set_handler_request_notification" c:identifier="tp_base_client_set_handler_request_notification" version="0.11.6">
2200         <doc xml:whitespace="preserve">Indicate that @self is a Handler willing to be notified about requests for
2201 channels that it is likely to be asked to handle.
2202 That means the TpBaseClient::request-added and TpBaseClient::request-removed:
2203 signals will be fired and tp_base_client_get_pending_requests() will
2204 return the list of pending requests.
2205 This method may only be called before tp_base_client_register() is
2206 called, and may only be called on objects whose class implements
2207 #TpBaseClientClass.handle_channels.</doc>
2208         <return-value transfer-ownership="none">
2209           <type name="none" c:type="void"/>
2210         </return-value>
2211       </method>
2212       <method name="add_handler_capability" c:identifier="tp_base_client_add_handler_capability" version="0.11.6">
2213         <doc xml:whitespace="preserve">Add one capability token to this client, as if via
2214 tp_base_client_add_handler_capabilities().
2215 This method may only be called before tp_base_client_register() is
2216 called, and may only be called on objects whose class implements
2217 #TpBaseClientClass.handle_channels.</doc>
2218         <return-value transfer-ownership="none">
2219           <type name="none" c:type="void"/>
2220         </return-value>
2221         <parameters>
2222           <parameter name="token" transfer-ownership="none">
2223             <doc xml:whitespace="preserve">a capability token as defined by the Telepathy D-Bus API Specification</doc>
2224             <type name="utf8" c:type="gchar*"/>
2225           </parameter>
2226         </parameters>
2227       </method>
2228       <method name="add_handler_capabilities" c:identifier="tp_base_client_add_handler_capabilities" version="0.11.6">
2229         <doc xml:whitespace="preserve">Add several capability tokens to this client. These are used to signal
2230 that Telepathy connection managers should advertise certain capabilities
2231 to other contacts, such as the ability to receive audio/video calls using
2232 particular streaming protocols and codecs.
2233 This method may only be called before tp_base_client_register() is
2234 called, and may only be called on objects whose class implements
2235 #TpBaseClientClass.handle_channels.</doc>
2236         <return-value transfer-ownership="none">
2237           <type name="none" c:type="void"/>
2238         </return-value>
2239         <parameters>
2240           <parameter name="tokens" transfer-ownership="none">
2241             <doc xml:whitespace="preserve">capability tokens as defined by the Telepathy D-Bus API Specification</doc>
2242             <array c:type="gchar**">
2243               <type name="utf8"/>
2244             </array>
2245           </parameter>
2246         </parameters>
2247       </method>
2248       <method name="add_handler_capabilities_varargs" c:identifier="tp_base_client_add_handler_capabilities_varargs" version="0.11.6" introspectable="0">
2249         <doc xml:whitespace="preserve">Convenience C API equivalent to calling
2250 tp_base_client_add_handler_capability() for each capability token.
2251 This method may only be called before tp_base_client_register() is
2252 called, and may only be called on objects whose class implements
2253 #TpBaseClientClass.handle_channels.</doc>
2254         <return-value transfer-ownership="none">
2255           <type name="none" c:type="void"/>
2256         </return-value>
2257         <parameters>
2258           <parameter name="first_token" transfer-ownership="none">
2259             <doc xml:whitespace="preserve">a capability token from the Telepathy D-Bus API Specification</doc>
2260             <type name="utf8" c:type="gchar*"/>
2261           </parameter>
2262           <parameter transfer-ownership="none">
2263             <varargs>
2264             </varargs>
2265           </parameter>
2266         </parameters>
2267       </method>
2268       <method name="add_account_features" c:identifier="tp_base_client_add_account_features" version="0.11.14">
2269         <doc xml:whitespace="preserve">Request that the given features are prepared on each #TpAccount (in
2270 addition to %TP_ACCOUNT_FEATURE_CORE) before calling
2271 #TpBaseClient.observe_channels, #TpBaseClient.add_dispatch_operation or
2272 #TpBaseClient.handle_channels, or emitting #TpBaseClient::request-added.</doc>
2273         <return-value transfer-ownership="none">
2274           <type name="none" c:type="void"/>
2275         </return-value>
2276         <parameters>
2277           <parameter name="features" transfer-ownership="none">
2278             <doc xml:whitespace="preserve">the features</doc>
2279             <array length="2" c:type="GQuark*">
2280               <type name="GLib.Quark"/>
2281             </array>
2282           </parameter>
2283           <parameter name="n" transfer-ownership="none">
2284             <doc xml:whitespace="preserve">the number of features, or -1 if @features is 0-terminated</doc>
2285             <type name="gssize" c:type="gssize"/>
2286           </parameter>
2287         </parameters>
2288       </method>
2289       <method name="add_account_features_varargs" c:identifier="tp_base_client_add_account_features_varargs" version="0.11.14" introspectable="0">
2290         <doc xml:whitespace="preserve">The same as tp_base_client_add_account_features(), but with a more
2291 convenient calling convention from C.</doc>
2292         <return-value transfer-ownership="none">
2293           <type name="none" c:type="void"/>
2294         </return-value>
2295         <parameters>
2296           <parameter name="feature" transfer-ownership="none">
2297             <doc xml:whitespace="preserve">the first feature</doc>
2298             <type name="GLib.Quark" c:type="GQuark"/>
2299           </parameter>
2300           <parameter transfer-ownership="none">
2301             <varargs>
2302             </varargs>
2303           </parameter>
2304         </parameters>
2305       </method>
2306       <method name="add_channel_features" c:identifier="tp_base_client_add_channel_features" version="0.11.14">
2307         <doc xml:whitespace="preserve">Request that the given features are prepared on each #TpChannel (in
2308 addition to %TP_CHANNEL_FEATURE_CORE) before calling
2309 #TpBaseClient.observe_channels, #TpBaseClient.add_dispatch_operation or
2310 #TpBaseClient.handle_channels.</doc>
2311         <return-value transfer-ownership="none">
2312           <type name="none" c:type="void"/>
2313         </return-value>
2314         <parameters>
2315           <parameter name="features" transfer-ownership="none">
2316             <doc xml:whitespace="preserve">the features</doc>
2317             <array length="2" c:type="GQuark*">
2318               <type name="GLib.Quark"/>
2319             </array>
2320           </parameter>
2321           <parameter name="n" transfer-ownership="none">
2322             <doc xml:whitespace="preserve">the number of features, or -1 if @features is 0-terminated</doc>
2323             <type name="gssize" c:type="gssize"/>
2324           </parameter>
2325         </parameters>
2326       </method>
2327       <method name="add_channel_features_varargs" c:identifier="tp_base_client_add_channel_features_varargs" version="0.11.14" introspectable="0">
2328         <doc xml:whitespace="preserve">The same as tp_base_client_add_channel_features(), but with a more
2329 convenient calling convention from C.</doc>
2330         <return-value transfer-ownership="none">
2331           <type name="none" c:type="void"/>
2332         </return-value>
2333         <parameters>
2334           <parameter name="feature" transfer-ownership="none">
2335             <doc xml:whitespace="preserve">the first feature</doc>
2336             <type name="GLib.Quark" c:type="GQuark"/>
2337           </parameter>
2338           <parameter transfer-ownership="none">
2339             <varargs>
2340             </varargs>
2341           </parameter>
2342         </parameters>
2343       </method>
2344       <method name="add_connection_features" c:identifier="tp_base_client_add_connection_features" version="0.11.14">
2345         <doc xml:whitespace="preserve">Request that the given features are prepared on each #TpConnection (in
2346 addition to %TP_CONNECTION_FEATURE_CORE) before calling
2347 #TpBaseClient.observe_channels, #TpBaseClient.add_dispatch_operation or
2348 #TpBaseClient.handle_channels.</doc>
2349         <return-value transfer-ownership="none">
2350           <type name="none" c:type="void"/>
2351         </return-value>
2352         <parameters>
2353           <parameter name="features" transfer-ownership="none">
2354             <doc xml:whitespace="preserve">the features</doc>
2355             <array length="2" c:type="GQuark*">
2356               <type name="GLib.Quark"/>
2357             </array>
2358           </parameter>
2359           <parameter name="n" transfer-ownership="none">
2360             <doc xml:whitespace="preserve">the number of features, or -1 if @features is 0-terminated</doc>
2361             <type name="gssize" c:type="gssize"/>
2362           </parameter>
2363         </parameters>
2364       </method>
2365       <method name="add_connection_features_varargs" c:identifier="tp_base_client_add_connection_features_varargs" version="0.11.14" introspectable="0">
2366         <doc xml:whitespace="preserve">The same as tp_base_client_add_connection_features(), but with a more
2367 convenient calling convention from C.</doc>
2368         <return-value transfer-ownership="none">
2369           <type name="none" c:type="void"/>
2370         </return-value>
2371         <parameters>
2372           <parameter name="feature" transfer-ownership="none">
2373             <doc xml:whitespace="preserve">the first feature</doc>
2374             <type name="GLib.Quark" c:type="GQuark"/>
2375           </parameter>
2376           <parameter transfer-ownership="none">
2377             <varargs>
2378             </varargs>
2379           </parameter>
2380         </parameters>
2381       </method>
2382       <method name="register" c:identifier="tp_base_client_register" version="0.11.5" throws="1">
2383         <doc xml:whitespace="preserve">Publish @self as an available client. After this method is called, as long
2384 as it continues to exist, it will receive and process whatever events were
2385 requested via the various filters.
2386 Methods that set the filters and other immutable state, such as
2387 tp_base_client_add_observer_filter(), cannot be called after this one.</doc>
2388         <return-value transfer-ownership="none">
2389           <doc xml:whitespace="preserve">%TRUE if the client was registered successfully</doc>
2390           <type name="boolean" c:type="gboolean"/>
2391         </return-value>
2392       </method>
2393       <method name="get_pending_requests" c:identifier="tp_base_client_get_pending_requests" version="0.11.6">
2394         <doc xml:whitespace="preserve">Only works if tp_base_client_set_handler_request_notification() has been
2395 called.
2396 Returns the list of requests @self is likely be asked to handle.
2397 #GList of #TpChannelRequest</doc>
2398         <return-value transfer-ownership="container">
2399           <doc xml:whitespace="preserve">a</doc>
2400           <type name="GLib.List" c:type="GList*">
2401             <type name="TelepathyGLib.ChannelRequest"/>
2402           </type>
2403         </return-value>
2404       </method>
2405       <method name="get_handled_channels" c:identifier="tp_base_client_get_handled_channels" version="0.11.6">
2406         <doc xml:whitespace="preserve">Returns the set of channels currently handled by this base client or by any
2407 other #TpBaseClient with which it shares a unique name.
2408 handled channels</doc>
2409         <return-value transfer-ownership="container">
2410           <doc xml:whitespace="preserve">the</doc>
2411           <type name="GLib.List" c:type="GList*">
2412             <type name="TelepathyGLib.Channel"/>
2413           </type>
2414         </return-value>
2415       </method>
2416       <method name="get_name" c:identifier="tp_base_client_get_name" version="0.11.11" introspectable="0">
2417         <doc xml:whitespace="preserve">Return the #TpBaseClient:name construct-only property, which is used as
2418 part of the bus name and object path.</doc>
2419         <return-value transfer-ownership="none">
2420           <doc xml:whitespace="preserve">the value of #TpBaseClient:name</doc>
2421           <type name="utf8" c:type="gchar*"/>
2422         </return-value>
2423       </method>
2424       <method name="get_uniquify_name" c:identifier="tp_base_client_get_uniquify_name" version="0.11.11" introspectable="0">
2425         <doc xml:whitespace="preserve">Return the #TpBaseClient:uniquify-name construct-only property; if this
2426 is true, the bus name and object path will be made unique by appending
2427 a suffix that includes the D-Bus unique name and a per-process counter.</doc>
2428         <return-value transfer-ownership="none">
2429           <doc xml:whitespace="preserve">the value of #TpBaseClient:uniquify-name</doc>
2430           <type name="boolean" c:type="gboolean"/>
2431         </return-value>
2432       </method>
2433       <method name="get_bus_name" c:identifier="tp_base_client_get_bus_name" version="0.11.5">
2434         <doc xml:whitespace="preserve">Return the bus name of @self. Note that doesn't mean the client is
2435 actually owning this name; for example if tp_base_client_register()
2436 has not been called yet or failed.</doc>
2437         <return-value transfer-ownership="none">
2438           <doc xml:whitespace="preserve">the bus name of the client</doc>
2439           <type name="utf8" c:type="gchar*"/>
2440         </return-value>
2441       </method>
2442       <method name="get_object_path" c:identifier="tp_base_client_get_object_path" version="0.11.5">
2443         <doc xml:whitespace="preserve">Return the object path of @self. Note that doesn't mean the client is
2444 actually registered on this path; for example if tp_base_client_register()
2445 has not been called yet or failed.</doc>
2446         <return-value transfer-ownership="none">
2447           <doc xml:whitespace="preserve">the object path of the client</doc>
2448           <type name="utf8" c:type="gchar*"/>
2449         </return-value>
2450       </method>
2451       <method name="get_dbus_daemon" c:identifier="tp_base_client_get_dbus_daemon" version="0.11.11" introspectable="0">
2452         <doc xml:whitespace="preserve">Return the #TpBaseClient:dbus-daemon construct-only property, which
2453 represents the D-Bus connection used to export this client object.
2454 The returned object's reference count is not incremented, so it is not
2455 necessarily valid after @self is destroyed.</doc>
2456         <return-value transfer-ownership="none">
2457           <doc xml:whitespace="preserve">dbus-daemon</doc>
2458           <type name="DBusDaemon" c:type="TpDBusDaemon*"/>
2459         </return-value>
2460       </method>
2461       <method name="get_account_manager" c:identifier="tp_base_client_get_account_manager" version="0.11.14" introspectable="0">
2462         <doc xml:whitespace="preserve">Return the #TpBaseClient:account-manager construct-only property, which
2463 is the account manager used to look up or create #TpAccount objects.
2464 The returned object's reference count is not incremented, so it is not
2465 necessarily valid after @self is destroyed.
2466 It is not guaranteed that any particular features are prepared on this
2467 object; enable and wait for features with tp_proxy_prepare_async().</doc>
2468         <return-value transfer-ownership="none">
2469           <doc xml:whitespace="preserve">account-manager</doc>
2470           <type name="AccountManager" c:type="TpAccountManager*"/>
2471         </return-value>
2472       </method>
2473       <method name="unregister" c:identifier="tp_base_client_unregister" version="0.11.6">
2474         <doc xml:whitespace="preserve">Remove this client object from D-Bus, if tp_base_client_register()
2475 has already been called.
2476 If the object is not registered, this method may be called, but has
2477 no effect.
2478 Releasing the last reference to the object also has the same effect
2479 as calling this method, but this method should be preferred, as it
2480 has more deterministic behaviour.
2481 If the object still exists, tp_base_client_register() may be used to
2482 attempt to register it again.</doc>
2483         <return-value transfer-ownership="none">
2484           <type name="none" c:type="void"/>
2485         </return-value>
2486       </method>
2487       <property name="account-manager" version="0.11.14" writable="1" construct-only="1" transfer-ownership="none">
2488         <doc xml:whitespace="preserve">Account manager for this base client, used to look up or create
2489 #TpAccount objects. This may be specified in the constructor in order
2490 to get existing #TpAccount objects.
2491 It is not guaranteed that any of its features have been prepared, and
2492 it is not necessary to wait for any features before specifying this
2493 property in the constructor.
2494 Clients that interact with the #TpAccount should usually
2495 set this property instead of #TpBaseClient:dbus-daemon. Doing this
2496 will ensure that each account, connection or contact is represented by
2497 a single #TpAccount, #TpConnection or #TpContact object, shared between
2498 all the cooperating modules that have the same #TpAccountManager.
2499 If the #TpBaseClient:dbus-daemon is set to the result of
2500 tp_dbus_daemon_dup(), then this property defaults to
2501 the result of tp_account_manager_dup().
2502 This property may be %NULL initially, but will always be non-%NULL
2503 after the #TpBaseClient has been constructed.
2504 It is an error to specify both a non-%NULL account manager, and a
2505 non-%NULL #TpBaseClient:dbus-daemon that is not the same as the
2506 account manager's #TpProxy:dbus-daemon.</doc>
2507         <type name="AccountManager" c:type="TpAccountManager"/>
2508       </property>
2509       <property name="dbus-daemon" version="0.11.5" writable="1" construct-only="1" transfer-ownership="none">
2510         <doc xml:whitespace="preserve">#TpDBusDaemon object encapsulating this object's connection to D-Bus.
2511 Read-only except during construction.
2512 This property can't be %NULL after construction.
2513 Since 0.11.14 this property may be %NULL or unspecified in
2514 g_object_new(), but only if #TpBaseClient:account-manager is provided
2515 instead, in which case its #TpProxy:dbus-daemon property will be
2516 used.</doc>
2517         <type name="DBusDaemon" c:type="TpDBusDaemon"/>
2518       </property>
2519       <property name="name" version="0.11.5" writable="1" construct-only="1" transfer-ownership="none">
2520         <doc xml:whitespace="preserve">The name of the client. This is used to register the D-Bus service name
2521 and object path of the service.
2522 This property can't be %NULL.</doc>
2523         <type name="utf8" c:type="gchararray"/>
2524       </property>
2525       <property name="uniquify-name" version="0.11.5" writable="1" construct-only="1" transfer-ownership="none">
2526         <doc xml:whitespace="preserve">If %TRUE, tp_base_client_register() will append an unique token to the
2527 service bus name and object path to ensure they are unique.</doc>
2528         <type name="boolean" c:type="gboolean"/>
2529       </property>
2530       <field name="parent">
2531         <type name="GObject.Object" c:type="GObject"/>
2532       </field>
2533       <field name="priv">
2534         <type name="BaseClientPrivate" c:type="TpBaseClientPrivate*"/>
2535       </field>
2536       <glib:signal name="request-added" version="0.11.6">
2537         <doc xml:whitespace="preserve">Emitted when a channels have been requested, and that if the
2538 request is successful, they will probably be handled by this Handler.
2539 This signal is only fired if
2540 tp_base_client_set_handler_request_notification() has been called
2541 on @self previously.</doc>
2542         <return-value transfer-ownership="full">
2543           <type name="none" c:type="void"/>
2544         </return-value>
2545         <parameters>
2546           <parameter name="account" transfer-ownership="none">
2547             <doc xml:whitespace="preserve">the #TpAccount on which the request was made, with %TP_ACCOUNT_FEATURE_CORE, and any other features added via tp_base_client_add_account_features(), prepared if possible</doc>
2548             <type name="Account" c:type="TpAccount"/>
2549           </parameter>
2550           <parameter name="request" transfer-ownership="none">
2551             <doc xml:whitespace="preserve">a #TpChannelRequest having its object-path defined but is not guaranteed to be prepared.</doc>
2552             <type name="ChannelRequest" c:type="TpChannelRequest"/>
2553           </parameter>
2554         </parameters>
2555       </glib:signal>
2556       <glib:signal name="request-removed" version="0.11.6">
2557         <doc xml:whitespace="preserve">Emitted when a request has failed and should be disregarded.
2558 This signal is only fired if
2559 tp_base_client_set_handler_request_notification() has been called
2560 on @self previously.</doc>
2561         <return-value transfer-ownership="full">
2562           <type name="none" c:type="void"/>
2563         </return-value>
2564         <parameters>
2565           <parameter name="request" transfer-ownership="none">
2566             <doc xml:whitespace="preserve">the #TpChannelRequest being removed</doc>
2567             <type name="ChannelRequest" c:type="TpChannelRequest"/>
2568           </parameter>
2569           <parameter name="error" transfer-ownership="none">
2570             <doc xml:whitespace="preserve">the name of the D-Bus error with which the request failed.</doc>
2571             <type name="utf8" c:type="gchararray"/>
2572           </parameter>
2573           <parameter name="message" transfer-ownership="none">
2574             <doc xml:whitespace="preserve">any message supplied with the D-Bus error.</doc>
2575             <type name="utf8" c:type="gchararray"/>
2576           </parameter>
2577         </parameters>
2578       </glib:signal>
2579     </class>
2580     <record name="BaseClientClass" c:type="TpBaseClientClass" glib:is-gtype-struct-for="BaseClient" version="0.11.5">
2581       <doc xml:whitespace="preserve">The class of a #TpBaseClient.
2582 The virtual methods @observe_channels, @add_dispatch_operation and
2583 tp_base_client_implement_observe_channels(),
2584 tp_base_client_implement_add_dispatch_operation() and
2585 tp_base_client_implement_handle_channels(). This is compatible with
2586 telepathy-glib versions older than 0.11.13.</doc>
2587       <field name="parent_class">
2588         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
2589       </field>
2590       <field name="observe_channels">
2591         <type name="BaseClientClassObserveChannelsImpl" c:type="TpBaseClientClassObserveChannelsImpl"/>
2592       </field>
2593       <field name="add_dispatch_operation">
2594         <type name="BaseClientClassAddDispatchOperationImpl" c:type="TpBaseClientClassAddDispatchOperationImpl"/>
2595       </field>
2596       <field name="handle_channels">
2597         <type name="BaseClientClassHandleChannelsImpl" c:type="TpBaseClientClassHandleChannelsImpl"/>
2598       </field>
2599       <field name="_padding">
2600         <array zero-terminated="0" c:type="GCallback" fixed-size="4">
2601           <type name="GObject.Callback"/>
2602         </array>
2603       </field>
2604       <field name="dbus_properties_class">
2605         <type name="DBusPropertiesMixinClass" c:type="TpDBusPropertiesMixinClass"/>
2606       </field>
2607       <field name="priv">
2608         <type name="BaseClientClassPrivate" c:type="TpBaseClientClassPrivate*"/>
2609       </field>
2610     </record>
2611     <callback name="BaseClientClassAddDispatchOperationImpl" c:type="TpBaseClientClassAddDispatchOperationImpl" version="0.11.5">
2612       <doc xml:whitespace="preserve">Signature of the implementation of the AddDispatchOperation method.
2613 This function must call either tp_add_dispatch_operation_context_accept(),
2614 tp_add_dispatch_operation_context_delay() or
2615 tp_add_dispatch_operation_context_fail() on @context before it returns.
2616 The implementation can then use
2617 tp_channel_dispatch_operation_handle_with_async() to approve handling of the
2618 channels, or tp_channel_dispatch_operation_claim_async() to take
2619 responsibility for handling or closing them".</doc>
2620       <return-value transfer-ownership="none">
2621         <type name="none" c:type="void"/>
2622       </return-value>
2623       <parameters>
2624         <parameter name="client" transfer-ownership="none">
2625           <doc xml:whitespace="preserve">a #TpBaseClient instance</doc>
2626           <type name="BaseClient" c:type="TpBaseClient*"/>
2627         </parameter>
2628         <parameter name="account" transfer-ownership="none">
2629           <doc xml:whitespace="preserve">a #TpAccount with %TP_ACCOUNT_FEATURE_CORE, and any other features added via tp_base_client_add_account_features(), prepared if possible</doc>
2630           <type name="Account" c:type="TpAccount*"/>
2631         </parameter>
2632         <parameter name="connection" transfer-ownership="none">
2633           <doc xml:whitespace="preserve">a #TpConnection with %TP_CONNECTION_FEATURE_CORE, and any other features added via tp_base_client_add_connection_features(), prepared if possible</doc>
2634           <type name="Connection" c:type="TpConnection*"/>
2635         </parameter>
2636         <parameter name="channels" transfer-ownership="none">
2637           <doc xml:whitespace="preserve">a #GList of #TpChannel, each with %TP_CHANNEL_FEATURE_CORE, and any other features added via tp_base_client_add_channel_features(), prepared if possible</doc>
2638           <type name="GLib.List" c:type="GList*">
2639             <type name="TelepathyGLib.Channel"/>
2640           </type>
2641         </parameter>
2642         <parameter name="dispatch_operation" transfer-ownership="none">
2643           <doc xml:whitespace="preserve">a #TpChannelDispatchOperation having %TP_CHANNEL_DISPATCH_OPERATION_FEATURE_CORE prepared if possible</doc>
2644           <type name="ChannelDispatchOperation" c:type="TpChannelDispatchOperation*"/>
2645         </parameter>
2646         <parameter name="context" transfer-ownership="none">
2647           <doc xml:whitespace="preserve">a #TpObserveChannelsContext representing the context of this D-Bus call</doc>
2648           <type name="AddDispatchOperationContext" c:type="TpAddDispatchOperationContext*"/>
2649         </parameter>
2650       </parameters>
2651     </callback>
2652     <callback name="BaseClientClassHandleChannelsImpl" c:type="TpBaseClientClassHandleChannelsImpl" version="0.11.6">
2653       <doc xml:whitespace="preserve">Signature of the implementation of the HandleChannels method.
2654 This function must call either tp_handle_channels_context_accept(),
2655 tp_handle_channels_context_delay() or tp_handle_channels_context_fail()
2656 on @context before it returns.</doc>
2657       <return-value transfer-ownership="none">
2658         <type name="none" c:type="void"/>
2659       </return-value>
2660       <parameters>
2661         <parameter name="client" transfer-ownership="none">
2662           <doc xml:whitespace="preserve">a #TpBaseClient instance</doc>
2663           <type name="BaseClient" c:type="TpBaseClient*"/>
2664         </parameter>
2665         <parameter name="account" transfer-ownership="none">
2666           <doc xml:whitespace="preserve">a #TpAccount with %TP_ACCOUNT_FEATURE_CORE, and any other features added via tp_base_client_add_account_features(), prepared if possible</doc>
2667           <type name="Account" c:type="TpAccount*"/>
2668         </parameter>
2669         <parameter name="connection" transfer-ownership="none">
2670           <doc xml:whitespace="preserve">a #TpConnection with %TP_CONNECTION_FEATURE_CORE, and any other features added via tp_base_client_add_connection_features(), prepared if possible</doc>
2671           <type name="Connection" c:type="TpConnection*"/>
2672         </parameter>
2673         <parameter name="channels" transfer-ownership="none">
2674           <doc xml:whitespace="preserve">a #GList of #TpChannel, each with %TP_CHANNEL_FEATURE_CORE, and any other features added via tp_base_client_add_channel_features(), prepared if possible</doc>
2675           <type name="GLib.List" c:type="GList*">
2676             <type name="TelepathyGLib.Channel"/>
2677           </type>
2678         </parameter>
2679         <parameter name="requests_satisfied" transfer-ownership="none">
2680           <doc xml:whitespace="preserve">a #GList of #TpChannelRequest having their object-path defined but are not guaranteed to be prepared.</doc>
2681           <type name="GLib.List" c:type="GList*">
2682             <type name="TelepathyGLib.ChannelRequest"/>
2683           </type>
2684         </parameter>
2685         <parameter name="user_action_time" transfer-ownership="none">
2686           <doc xml:whitespace="preserve">the time at which user action occurred, or one of the special values %TP_USER_ACTION_TIME_NOT_USER_ACTION or %TP_USER_ACTION_TIME_CURRENT_TIME (see #TpAccountChannelRequest:user-action-time for details)</doc>
2687           <type name="int64" c:type="gint64"/>
2688         </parameter>
2689         <parameter name="context" transfer-ownership="none">
2690           <doc xml:whitespace="preserve">a #TpHandleChannelsContext representing the context of this D-Bus call</doc>
2691           <type name="HandleChannelsContext" c:type="TpHandleChannelsContext*"/>
2692         </parameter>
2693       </parameters>
2694     </callback>
2695     <callback name="BaseClientClassObserveChannelsImpl" c:type="TpBaseClientClassObserveChannelsImpl" version="0.11.5">
2696       <doc xml:whitespace="preserve">Signature of the implementation of the ObserveChannels method.
2697 This function must call either tp_observe_channels_context_accept(),
2698 tp_observe_channels_context_delay() or tp_observe_channels_context_fail()
2699 on @context before it returns.</doc>
2700       <return-value transfer-ownership="none">
2701         <type name="none" c:type="void"/>
2702       </return-value>
2703       <parameters>
2704         <parameter name="client" transfer-ownership="none">
2705           <doc xml:whitespace="preserve">a #TpBaseClient instance</doc>
2706           <type name="BaseClient" c:type="TpBaseClient*"/>
2707         </parameter>
2708         <parameter name="account" transfer-ownership="none">
2709           <doc xml:whitespace="preserve">a #TpAccount with %TP_ACCOUNT_FEATURE_CORE, and any other features added via tp_base_client_add_account_features(), prepared if possible</doc>
2710           <type name="Account" c:type="TpAccount*"/>
2711         </parameter>
2712         <parameter name="connection" transfer-ownership="none">
2713           <doc xml:whitespace="preserve">a #TpConnection with %TP_CONNECTION_FEATURE_CORE, and any other features added via tp_base_client_add_connection_features(), prepared if possible</doc>
2714           <type name="Connection" c:type="TpConnection*"/>
2715         </parameter>
2716         <parameter name="channels" transfer-ownership="none">
2717           <doc xml:whitespace="preserve">a #GList of #TpChannel, each with %TP_CHANNEL_FEATURE_CORE, and any other features added via tp_base_client_add_channel_features(), prepared if possible</doc>
2718           <type name="GLib.List" c:type="GList*">
2719             <type name="TelepathyGLib.Channel"/>
2720           </type>
2721         </parameter>
2722         <parameter name="dispatch_operation" transfer-ownership="none" allow-none="1">
2723           <doc xml:whitespace="preserve">a #TpChannelDispatchOperation or %NULL; the dispatch_operation is not guaranteed to be prepared</doc>
2724           <type name="ChannelDispatchOperation" c:type="TpChannelDispatchOperation*"/>
2725         </parameter>
2726         <parameter name="requests" transfer-ownership="none">
2727           <doc xml:whitespace="preserve">a #GList of #TpChannelRequest having their object-path defined but are not guaranteed to be prepared.</doc>
2728           <type name="GLib.List" c:type="GList*">
2729             <type name="TelepathyGLib.ChannelRequest"/>
2730           </type>
2731         </parameter>
2732         <parameter name="context" transfer-ownership="none">
2733           <doc xml:whitespace="preserve">a #TpObserveChannelsContext representing the context of this D-Bus call</doc>
2734           <type name="ObserveChannelsContext" c:type="TpObserveChannelsContext*"/>
2735         </parameter>
2736       </parameters>
2737     </callback>
2738     <record name="BaseClientClassPrivate" c:type="TpBaseClientClassPrivate">
2739     </record>
2740     <record name="BaseClientPrivate" c:type="TpBaseClientPrivate">
2741     </record>
2742     <class name="BaseConnection" c:type="TpBaseConnection" parent="GObject.Object" abstract="1" glib:type-name="TpBaseConnection" glib:get-type="tp_base_connection_get_type" glib:type-struct="BaseConnectionClass">
2743       <doc xml:whitespace="preserve">Data structure representing a generic #TpSvcConnection implementation.
2744 In addition to the fields documented here, there are four gpointer fields
2745 which must currently be %NULL (a meaning may be defined for these in a
2746 future version of telepathy-glib), and a pointer to opaque private data.</doc>
2747       <function name="dbus_request_handles" c:identifier="tp_base_connection_dbus_request_handles" introspectable="0">
2748         <doc xml:whitespace="preserve">Implements D-Bus method RequestHandles on interface
2749 org.freedesktop.Telepathy.Connection. Exported so subclasses can
2750 use it as a basis for their own implementations (for instance,
2751 at the time of writing Gabble's GabbleConnection does its own processing
2752 for room handles, in order to validate them asynchronously, but delegates
2753 to this implementation for all other types).</doc>
2754         <return-value transfer-ownership="none">
2755           <type name="none" c:type="void"/>
2756         </return-value>
2757         <parameters>
2758           <parameter name="iface" transfer-ownership="none">
2759             <doc xml:whitespace="preserve">A pointer to #TpBaseConnection, cast to a pointer to #TpSvcConnection</doc>
2760             <type name="TpSvcConnection" c:type="TpSvcConnection*"/>
2761           </parameter>
2762           <parameter name="handle_type" transfer-ownership="none">
2763             <doc xml:whitespace="preserve">The handle type (#TpHandleType) as a guint</doc>
2764             <type name="uint" c:type="guint"/>
2765           </parameter>
2766           <parameter name="names" transfer-ownership="none">
2767             <doc xml:whitespace="preserve">A strv of handle names</doc>
2768             <array c:type="gchar**">
2769               <type name="utf8"/>
2770             </array>
2771           </parameter>
2772           <parameter name="context" transfer-ownership="none">
2773             <doc xml:whitespace="preserve">The dbus-glib method invocation context</doc>
2774             <type name="DBusGMethodInvocation" c:type="DBusGMethodInvocation*"/>
2775           </parameter>
2776         </parameters>
2777       </function>
2778       <function name="channel_manager_iter_init" c:identifier="tp_base_connection_channel_manager_iter_init" version="0.7.15" introspectable="0">
2779         <doc xml:whitespace="preserve">Initializes an iterator over the #TpChannelManager objects known to
2780 &lt;informalexample&gt;&lt;programlisting&gt;
2781 TpChannelManagerIter iter;
2782 TpChannelManager *manager;
2783 tp_base_connection_channel_manager_iter_init (&amp;amp;iter, base_conn);
2784 while (tp_base_connection_channel_manager_iter_next (&amp;amp;iter, &amp;amp;manager))
2785 {
2786 ...do something with manager...
2787 }
2788 &lt;/programlisting&gt;&lt;/informalexample&gt;</doc>
2789         <return-value transfer-ownership="none">
2790           <type name="none" c:type="void"/>
2791         </return-value>
2792         <parameters>
2793           <parameter name="iter" transfer-ownership="none">
2794             <doc xml:whitespace="preserve">an uninitialized #TpChannelManagerIter</doc>
2795             <type name="ChannelManagerIter" c:type="TpChannelManagerIter*"/>
2796           </parameter>
2797           <parameter name="self" transfer-ownership="none">
2798             <doc xml:whitespace="preserve">a connection</doc>
2799             <type name="BaseConnection" c:type="TpBaseConnection*"/>
2800           </parameter>
2801         </parameters>
2802       </function>
2803       <function name="channel_manager_iter_next" c:identifier="tp_base_connection_channel_manager_iter_next" version="0.7.15" introspectable="0">
2804         <doc xml:whitespace="preserve">Advances @iter, and retrieves the #TpChannelManager it now points to.  If
2805 there are no more channel managers, @manager_out is not set and %FALSE is
2806 returned.</doc>
2807         <return-value transfer-ownership="none">
2808           <doc xml:whitespace="preserve">%FALSE if there are no more channel managers; else %TRUE.</doc>
2809           <type name="boolean" c:type="gboolean"/>
2810         </return-value>
2811         <parameters>
2812           <parameter name="iter" transfer-ownership="none">
2813             <doc xml:whitespace="preserve">an initialized #TpChannelManagerIter</doc>
2814             <type name="ChannelManagerIter" c:type="TpChannelManagerIter*"/>
2815           </parameter>
2816           <parameter name="manager_out" transfer-ownership="none">
2817             <doc xml:whitespace="preserve">a location to store the channel manager, or %NULL.</doc>
2818             <type name="TpChannelManager" c:type="TpChannelManager**"/>
2819           </parameter>
2820         </parameters>
2821       </function>
2822       <method name="get_handles" c:identifier="tp_base_connection_get_handles">
2823         <doc xml:whitespace="preserve">&lt;!----&gt;
2824 handle type, or #NULL if it's unsupported or invalid.</doc>
2825         <return-value transfer-ownership="none">
2826           <doc xml:whitespace="preserve">the handle repository corresponding to the given</doc>
2827           <type name="HandleRepoIface" c:type="TpHandleRepoIface*"/>
2828         </return-value>
2829         <parameters>
2830           <parameter name="handle_type" transfer-ownership="none">
2831             <doc xml:whitespace="preserve">The handle type</doc>
2832             <type name="HandleType" c:type="TpHandleType"/>
2833           </parameter>
2834         </parameters>
2835       </method>
2836       <method name="register" c:identifier="tp_base_connection_register" throws="1">
2837         <doc xml:whitespace="preserve">Make the connection object appear on the bus, returning the bus
2838 name and object path used. If %TRUE is returned, the connection owns the
2839 bus name, and will release it when destroyed.
2840 Since 0.11.11, @bus_name and @object_path may be %NULL if the
2841 strings are not needed.</doc>
2842         <return-value transfer-ownership="none">
2843           <doc xml:whitespace="preserve">%TRUE on success, %FALSE on error.</doc>
2844           <type name="boolean" c:type="gboolean"/>
2845         </return-value>
2846         <parameters>
2847           <parameter name="cm_name" transfer-ownership="none">
2848             <doc xml:whitespace="preserve">The name of the connection manager in the Telepathy protocol</doc>
2849             <type name="utf8" c:type="gchar*"/>
2850           </parameter>
2851           <parameter name="bus_name" direction="out" caller-allocates="0" transfer-ownership="full">
2852             <doc xml:whitespace="preserve">Used to return the bus name corresponding to the connection if %TRUE is returned. To be freed by the caller.</doc>
2853             <type name="utf8" c:type="gchar**"/>
2854           </parameter>
2855           <parameter name="object_path" direction="out" caller-allocates="0" transfer-ownership="full">
2856             <doc xml:whitespace="preserve">Used to return the object path of the connection if %TRUE is returned. To be freed by the caller.</doc>
2857             <type name="utf8" c:type="gchar**"/>
2858           </parameter>
2859         </parameters>
2860       </method>
2861       <method name="disconnect_with_dbus_error" c:identifier="tp_base_connection_disconnect_with_dbus_error" version="0.7.24" introspectable="0">
2862         <doc xml:whitespace="preserve">Change the status of the connection to %TP_CONNECTION_STATUS_DISCONNECTED,
2863 as if by a call to tp_base_connection_change_status(). Before doing so,
2864 emit the ConnectionError D-Bus signal to give more details of the error.
2865 "debug-message", whose value should have type G_TYPE_STRING.</doc>
2866         <return-value transfer-ownership="none">
2867           <type name="none" c:type="void"/>
2868         </return-value>
2869         <parameters>
2870           <parameter name="error_name" transfer-ownership="none">
2871             <doc xml:whitespace="preserve">The D-Bus error with which the connection changed status to Disconnected</doc>
2872             <type name="utf8" c:type="gchar*"/>
2873           </parameter>
2874           <parameter name="details" transfer-ownership="none">
2875             <doc xml:whitespace="preserve">Further details of the error, as a hash table where the keys are strings as defined in the Telepathy specification, and the values are GValues. %NULL is allowed, and treated as empty.</doc>
2876             <type name="GLib.HashTable" c:type="GHashTable*"/>
2877           </parameter>
2878           <parameter name="reason" transfer-ownership="none">
2879             <doc xml:whitespace="preserve">The reason code to use in the StatusChanged signal (a less specific, non-extensible version of @error_name)</doc>
2880             <type name="ConnectionStatusReason" c:type="TpConnectionStatusReason"/>
2881           </parameter>
2882         </parameters>
2883       </method>
2884       <method name="change_status" c:identifier="tp_base_connection_change_status">
2885         <doc xml:whitespace="preserve">Change the status of the connection. The allowed state transitions are:
2886 &lt;itemizedlist&gt;
2887 &lt;listitem&gt;NEW -&gt; CONNECTING&lt;/listitem&gt;
2888 &lt;listitem&gt;CONNECTING -&gt; CONNECTED&lt;/listitem&gt;
2889 &lt;listitem&gt;NEW -&gt; CONNECTED (equivalent to both of the above one after the
2890 other - see below)&lt;/listitem&gt;
2891 &lt;listitem&gt;(anything except DISCONNECTED) -&gt; DISCONNECTED&lt;/listitem&gt;
2892 &lt;/itemizedlist&gt;
2893 Before the transition to CONNECTED, the implementation must have discovered
2894 the handle for the local user, obtained a reference to that handle and
2895 stored it in the @self_handle member of #TpBaseConnection.
2896 Changing from NEW to CONNECTED is implemented by doing the transition from
2897 NEW to CONNECTING, followed by the transition from CONNECTING to CONNECTED;
2898 it's exactly equivalent to calling tp_base_connection_change_status for
2899 those two transitions one after the other.
2900 Any other valid transition does the following, in this order:
2901 &lt;itemizedlist&gt;
2902 &lt;listitem&gt;Update the @status member of #TpBaseConnection&lt;/listitem&gt;
2903 &lt;listitem&gt;If the new state is DISCONNECTED, call the close_all_channels
2904 callback on all channel factories&lt;/listitem&gt;
2905 &lt;listitem&gt;Emit the D-Bus StatusChanged signal&lt;/listitem&gt;
2906 &lt;listitem&gt;Call the subclass' status change callback&lt;/listitem&gt;
2907 &lt;listitem&gt;Call the channel factories' status change callbacks&lt;/listitem&gt;
2908 &lt;listitem&gt;If the new state is DISCONNECTED, call the subclass'
2909 &lt;/itemizedlist&gt;
2910 previously set to 0 at this stage. It now remains non-zero until the object
2911 is disposed.</doc>
2912         <return-value transfer-ownership="none">
2913           <type name="none" c:type="void"/>
2914         </return-value>
2915         <parameters>
2916           <parameter name="status" transfer-ownership="none">
2917             <doc xml:whitespace="preserve">The new status</doc>
2918             <type name="ConnectionStatus" c:type="TpConnectionStatus"/>
2919           </parameter>
2920           <parameter name="reason" transfer-ownership="none">
2921             <doc xml:whitespace="preserve">The reason for the status change</doc>
2922             <type name="ConnectionStatusReason" c:type="TpConnectionStatusReason"/>
2923           </parameter>
2924         </parameters>
2925       </method>
2926       <method name="get_self_handle" c:identifier="tp_base_connection_get_self_handle" version="0.7.15" introspectable="0">
2927         <doc xml:whitespace="preserve">Returns the #TpBaseConnection:self-handle property, which is guaranteed not
2928 to be 0 once the connection has moved to the CONNECTED state.</doc>
2929         <return-value transfer-ownership="full">
2930           <doc xml:whitespace="preserve">the current self handle of the connection.</doc>
2931           <type name="Handle" c:type="TpHandle"/>
2932         </return-value>
2933       </method>
2934       <method name="set_self_handle" c:identifier="tp_base_connection_set_self_handle" version="0.7.15">
2935         <doc xml:whitespace="preserve">Sets the #TpBaseConnection:self-handle property.  self_handle may not be 0
2936 once the connection has moved to the CONNECTED state.</doc>
2937         <return-value transfer-ownership="none">
2938           <type name="none" c:type="void"/>
2939         </return-value>
2940         <parameters>
2941           <parameter name="self_handle" transfer-ownership="none">
2942             <doc xml:whitespace="preserve">The new self handle for the connection.</doc>
2943             <type name="Handle" c:type="TpHandle"/>
2944           </parameter>
2945         </parameters>
2946       </method>
2947       <method name="finish_shutdown" c:identifier="tp_base_connection_finish_shutdown" introspectable="0">
2948         <doc xml:whitespace="preserve">Tell the connection manager that this Connection has been disconnected,
2949 has emitted StatusChanged and is ready to be removed from D-Bus.</doc>
2950         <return-value transfer-ownership="none">
2951           <type name="none" c:type="void"/>
2952         </return-value>
2953       </method>
2954       <method name="add_interfaces" c:identifier="tp_base_connection_add_interfaces" introspectable="0">
2955         <doc xml:whitespace="preserve">Add some interfaces to the list supported by this Connection. If you're
2956 going to call this function at all, you must do so before moving to state
2957 CONNECTED (or DISCONNECTED); if you don't call it, only the set of
2958 interfaces always present (@interfaces_always_present in
2959 #TpBaseConnectionClass) will be supported.</doc>
2960         <return-value transfer-ownership="none">
2961           <type name="none" c:type="void"/>
2962         </return-value>
2963         <parameters>
2964           <parameter name="interfaces" transfer-ownership="none">
2965             <doc xml:whitespace="preserve">A %NULL-terminated array of D-Bus interface names, which must remain valid at least until the connection enters state #TP_CONNECTION_STATUS_DISCONNECTED (in practice, you should either use static strings, or use strdup'd strings and free them in the dispose callback).</doc>
2966             <array c:type="gchar**">
2967               <type name="utf8"/>
2968             </array>
2969           </parameter>
2970         </parameters>
2971       </method>
2972       <method name="register_with_contacts_mixin" c:identifier="tp_base_connection_register_with_contacts_mixin" introspectable="0">
2973         <doc xml:whitespace="preserve">Register the Connection interface with the Contacts interface to make it
2974 inspectable. The Contacts mixin should be initialized before this function
2975 is called</doc>
2976         <return-value transfer-ownership="none">
2977           <type name="none" c:type="void"/>
2978         </return-value>
2979       </method>
2980       <method name="get_dbus_daemon" c:identifier="tp_base_connection_get_dbus_daemon" version="0.11.3" introspectable="0">
2981         <doc xml:whitespace="preserve">&lt;!-- --&gt;
2982 #TpBaseConnectionManager:dbus-daemon property. The caller must reference
2983 the returned object with g_object_ref() if it will be kept.</doc>
2984         <return-value transfer-ownership="none">
2985           <doc xml:whitespace="preserve">the value of the</doc>
2986           <type name="DBusDaemon" c:type="TpDBusDaemon*"/>
2987         </return-value>
2988       </method>
2989       <property name="dbus-daemon" version="0.11.3" introspectable="0" writable="1" construct-only="1" transfer-ownership="none">
2990         <doc xml:whitespace="preserve">#TpDBusDaemon object encapsulating this object's connection to D-Bus.
2991 Read-only except during construction.
2992 If this property is %NULL or omitted during construction, the object will
2993 automatically attempt to connect to the starter or session bus with
2994 tp_dbus_daemon_dup() just after it is constructed; if this fails, this
2995 property will remain %NULL, and tp_base_connection_register() will fail.</doc>
2996         <type name="DBusDaemon" c:type="TpDBusDaemon"/>
2997       </property>
2998       <property name="dbus-status" version="0.11.3" introspectable="0" transfer-ownership="none">
2999         <doc xml:whitespace="preserve">The Connection.Status as visible on D-Bus, which is the same as
3000 #TpBaseConnection.status except that %TP_INTERNAL_CONNECTION_STATUS_NEW
3001 is replaced by %TP_CONNECTION_STATUS_DISCONNECTED.
3002 The #GObject::notify signal is not currently emitted for this property.</doc>
3003         <type name="uint" c:type="guint"/>
3004       </property>
3005       <property name="interfaces" version="0.11.3" introspectable="0" transfer-ownership="none">
3006         <doc xml:whitespace="preserve">The set of D-Bus interfaces available on this Connection, other than
3007 Connection itself.</doc>
3008         <type name="GObject.Strv" c:type="GStrv"/>
3009       </property>
3010       <property name="protocol" introspectable="0" writable="1" construct-only="1" transfer-ownership="none">
3011         <doc xml:whitespace="preserve">Identifier used in the Telepathy protocol when this connection's protocol
3012 name is required.</doc>
3013         <type name="utf8" c:type="gchararray"/>
3014       </property>
3015       <property name="self-handle" version="0.7.15" introspectable="0" writable="1" transfer-ownership="none">
3016         <doc xml:whitespace="preserve">The handle of type %TP_HANDLE_TYPE_CONTACT representing the local user.
3017 Must be set nonzero by the subclass before moving to state CONNECTED.</doc>
3018         <type name="uint" c:type="guint"/>
3019       </property>
3020       <field name="parent">
3021         <type name="GObject.Object" c:type="GObject"/>
3022       </field>
3023       <field name="bus_name">
3024         <type name="utf8" c:type="gchar*"/>
3025       </field>
3026       <field name="object_path">
3027         <type name="utf8" c:type="gchar*"/>
3028       </field>
3029       <field name="status">
3030         <type name="ConnectionStatus" c:type="TpConnectionStatus"/>
3031       </field>
3032       <field name="self_handle">
3033         <type name="Handle" c:type="TpHandle"/>
3034       </field>
3035       <field name="_future1">
3036         <type name="any" c:type="gpointer"/>
3037       </field>
3038       <field name="_future2">
3039         <type name="any" c:type="gpointer"/>
3040       </field>
3041       <field name="_future3">
3042         <type name="any" c:type="gpointer"/>
3043       </field>
3044       <field name="_future4">
3045         <type name="any" c:type="gpointer"/>
3046       </field>
3047       <field name="priv">
3048         <type name="BaseConnectionPrivate" c:type="TpBaseConnectionPrivate*"/>
3049       </field>
3050       <glib:signal name="shutdown-finished" introspectable="0">
3051         <doc xml:whitespace="preserve">Emitted by tp_base_connection_finish_shutdown() when the underlying
3052 network connection has been closed; #TpBaseConnectionManager listens
3053 for this signal and removes connections from its table of active
3054 connections when it is received.</doc>
3055         <return-value transfer-ownership="full">
3056           <type name="none" c:type="void"/>
3057         </return-value>
3058       </glib:signal>
3059     </class>
3060     <record name="BaseConnectionClass" c:type="TpBaseConnectionClass" glib:is-gtype-struct-for="BaseConnection">
3061       <doc xml:whitespace="preserve">The class of a #TpBaseConnection. Many members are virtual methods etc.
3062 to be filled in in the subclass' class_init function.
3063 In addition to the fields documented here, there are three gpointer fields
3064 which must currently be %NULL (a meaning may be defined for these in a
3065 future version of telepathy-glib), and a pointer to opaque private data.</doc>
3066       <field name="parent_class">
3067         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
3068       </field>
3069       <field name="_internal_create_handle_repos">
3070         <type name="GObject.Callback" c:type="GCallback"/>
3071       </field>
3072       <field name="create_channel_factories">
3073         <type name="BaseConnectionCreateChannelFactoriesImpl" c:type="TpBaseConnectionCreateChannelFactoriesImpl"/>
3074       </field>
3075       <field name="get_unique_connection_name">
3076         <type name="BaseConnectionGetUniqueConnectionNameImpl" c:type="TpBaseConnectionGetUniqueConnectionNameImpl"/>
3077       </field>
3078       <field name="connecting">
3079         <type name="BaseConnectionProc" c:type="TpBaseConnectionProc"/>
3080       </field>
3081       <field name="connected">
3082         <type name="BaseConnectionProc" c:type="TpBaseConnectionProc"/>
3083       </field>
3084       <field name="disconnected">
3085         <type name="BaseConnectionProc" c:type="TpBaseConnectionProc"/>
3086       </field>
3087       <field name="shut_down">
3088         <type name="BaseConnectionProc" c:type="TpBaseConnectionProc"/>
3089       </field>
3090       <field name="start_connecting">
3091         <type name="BaseConnectionStartConnectingImpl" c:type="TpBaseConnectionStartConnectingImpl"/>
3092       </field>
3093       <field name="interfaces_always_present">
3094         <type name="utf8" c:type="gchar**"/>
3095       </field>
3096       <field name="create_channel_managers">
3097         <type name="BaseConnectionCreateChannelManagersImpl" c:type="TpBaseConnectionCreateChannelManagersImpl"/>
3098       </field>
3099       <field name="_future2">
3100         <type name="any" c:type="gpointer"/>
3101       </field>
3102       <field name="_future3">
3103         <type name="any" c:type="gpointer"/>
3104       </field>
3105       <field name="_future4">
3106         <type name="any" c:type="gpointer"/>
3107       </field>
3108       <field name="priv">
3109         <type name="any" c:type="gpointer"/>
3110       </field>
3111     </record>
3112     <callback name="BaseConnectionCreateChannelFactoriesImpl" c:type="TpBaseConnectionCreateChannelFactoriesImpl">
3113       <doc xml:whitespace="preserve">Signature of an implementation of the create_channel_factories method
3114 of #TpBaseConnection.
3115 which, between them, implement all channel types this Connection
3116 supports.</doc>
3117       <return-value transfer-ownership="full">
3118         <doc xml:whitespace="preserve">a GPtrArray of objects implementing #TpChannelFactoryIface</doc>
3119         <array name="GLib.PtrArray" c:type="GPtrArray*">
3120           <type name="any" c:type="gpointer"/>
3121         </array>
3122       </return-value>
3123       <parameters>
3124         <parameter name="self" transfer-ownership="none">
3125           <doc xml:whitespace="preserve">The implementation, a subclass of TpBaseConnection</doc>
3126           <type name="BaseConnection" c:type="TpBaseConnection*"/>
3127         </parameter>
3128       </parameters>
3129     </callback>
3130     <callback name="BaseConnectionCreateChannelManagersImpl" c:type="TpBaseConnectionCreateChannelManagersImpl">
3131       <doc xml:whitespace="preserve">Signature of an implementation of the create_channel_managers method
3132 of #TpBaseConnection.
3133 which, between them, implement all channel types this Connection
3134 supports.</doc>
3135       <return-value transfer-ownership="full">
3136         <doc xml:whitespace="preserve">a GPtrArray of objects implementing #TpChannelManager</doc>
3137         <array name="GLib.PtrArray" c:type="GPtrArray*">
3138           <type name="any" c:type="gpointer"/>
3139         </array>
3140       </return-value>
3141       <parameters>
3142         <parameter name="self" transfer-ownership="none">
3143           <doc xml:whitespace="preserve">The implementation, a subclass of TpBaseConnection</doc>
3144           <type name="BaseConnection" c:type="TpBaseConnection*"/>
3145         </parameter>
3146       </parameters>
3147     </callback>
3148     <callback name="BaseConnectionCreateHandleReposImpl" c:type="TpBaseConnectionCreateHandleReposImpl" introspectable="0">
3149       <doc xml:whitespace="preserve">Signature of an implementation of the create_handle_repos method
3150 of #TpBaseConnection.</doc>
3151       <return-value transfer-ownership="none">
3152         <type name="none" c:type="void"/>
3153       </return-value>
3154       <parameters>
3155         <parameter name="self" transfer-ownership="none">
3156           <doc xml:whitespace="preserve">The connection object</doc>
3157           <type name="BaseConnection" c:type="TpBaseConnection*"/>
3158         </parameter>
3159         <parameter name="repos" transfer-ownership="none">
3160           <doc xml:whitespace="preserve">An array of pointers to be filled in; the implementation may assume all are initially NULL.</doc>
3161           <type name="HandleRepoIface" c:type="TpHandleRepoIface*"/>
3162         </parameter>
3163       </parameters>
3164     </callback>
3165     <callback name="BaseConnectionGetUniqueConnectionNameImpl" c:type="TpBaseConnectionGetUniqueConnectionNameImpl">
3166       <doc xml:whitespace="preserve">Signature of the @get_unique_connection_name virtual method
3167 on #TpBaseConnection.
3168 connection manager process, as a string which the caller must free
3169 with #g_free.</doc>
3170       <return-value transfer-ownership="full">
3171         <doc xml:whitespace="preserve">a name for this connection which will be unique within this</doc>
3172         <type name="utf8" c:type="gchar*"/>
3173       </return-value>
3174       <parameters>
3175         <parameter name="self" transfer-ownership="none">
3176           <doc xml:whitespace="preserve">The implementation, a subclass of TpBaseConnection</doc>
3177           <type name="BaseConnection" c:type="TpBaseConnection*"/>
3178         </parameter>
3179       </parameters>
3180     </callback>
3181     <record name="BaseConnectionPrivate" c:type="TpBaseConnectionPrivate">
3182     </record>
3183     <callback name="BaseConnectionProc" c:type="TpBaseConnectionProc">
3184       <doc xml:whitespace="preserve">Signature of a virtual method on #TpBaseConnection that takes no
3185 additional parameters and returns nothing.</doc>
3186       <return-value transfer-ownership="none">
3187         <type name="none" c:type="void"/>
3188       </return-value>
3189       <parameters>
3190         <parameter name="self" transfer-ownership="none">
3191           <doc xml:whitespace="preserve">The connection object</doc>
3192           <type name="BaseConnection" c:type="TpBaseConnection*"/>
3193         </parameter>
3194       </parameters>
3195     </callback>
3196     <callback name="BaseConnectionStartConnectingImpl" c:type="TpBaseConnectionStartConnectingImpl" throws="1">
3197       <doc xml:whitespace="preserve">Signature of an implementation of the start_connecting method
3198 of #TpBaseConnection.
3199 On entry, the implementation may assume that it is in state NEW.
3200 If %TRUE is returned, the Connect D-Bus method succeeds; the
3201 implementation must either have already set the status to CONNECTED by
3202 calling tp_base_connection_change_status(), or have arranged for a
3203 status change to either state DISCONNECTED or CONNECTED to be signalled by
3204 calling tp_base_connection_change_status() at some later time.
3205 If the status is still NEW after returning %TRUE, #TpBaseConnection will
3206 automatically change it to CONNECTING for reason REQUESTED.
3207 If %FALSE is returned, the error will be raised from Connect as an
3208 exception. If the status is not DISCONNECTED after %FALSE is returned,
3209 #TpBaseConnection will automatically change it to DISCONNECTED
3210 with a reason appropriate to the error; NetworkError results in
3211 NETWORK_ERROR, PermissionDenied results in AUTHENTICATION_FAILED, and all
3212 other errors currently result in NONE_SPECIFIED.
3213 All except the simplest connection managers are expected to implement this
3214 asynchronously, returning %TRUE in most cases and changing the status
3215 to CONNECTED or DISCONNECTED later.</doc>
3216       <return-value transfer-ownership="none">
3217         <doc xml:whitespace="preserve">%FALSE if failure has already occurred, else %TRUE.</doc>
3218         <type name="boolean" c:type="gboolean"/>
3219       </return-value>
3220       <parameters>
3221         <parameter name="self" transfer-ownership="none">
3222           <doc xml:whitespace="preserve">The connection object</doc>
3223           <type name="BaseConnection" c:type="TpBaseConnection*"/>
3224         </parameter>
3225       </parameters>
3226     </callback>
3227     <constant name="CHANNEL_DISPATCHER_BUS_NAME" value="org.freedesktop.Telepathy.ChannelDispatcher">
3228       <type name="utf8"/>
3229     </constant>
3230     <constant name="CHANNEL_DISPATCHER_OBJECT_PATH" value="/org/freedesktop/Telepathy/ChannelDispatcher">
3231       <type name="utf8"/>
3232     </constant>
3233     <constant name="CLIENT_BUS_NAME_BASE" value="org.freedesktop.Telepathy.Client.">
3234       <type name="utf8"/>
3235     </constant>
3236     <constant name="CLIENT_OBJECT_PATH_BASE" value="/org/freedesktop/Telepathy/Client/">
3237       <type name="utf8"/>
3238     </constant>
3239     <enumeration name="CMInfoSource" version="0.7.1" c:type="TpCMInfoSource">
3240       <doc xml:whitespace="preserve">Describes possible sources of information on connection managers'
3241 supported protocols.
3242 Since 0.11.5, there is a corresponding #GEnumClass type,
3243 %TP_TYPE_CM_INFO_SOURCE.</doc>
3244       <member name="none" value="0" c:identifier="TP_CM_INFO_SOURCE_NONE"/>
3245       <member name="file" value="1" c:identifier="TP_CM_INFO_SOURCE_FILE"/>
3246       <member name="live" value="2" c:identifier="TP_CM_INFO_SOURCE_LIVE"/>
3247     </enumeration>
3248     <constant name="CM_BUS_NAME_BASE" value="org.freedesktop.Telepathy.ConnectionManager.">
3249       <type name="utf8"/>
3250     </constant>
3251     <constant name="CM_OBJECT_PATH_BASE" value="/org/freedesktop/Telepathy/ConnectionManager/">
3252       <type name="utf8"/>
3253     </constant>
3254     <constant name="CONN_BUS_NAME_BASE" value="org.freedesktop.Telepathy.Connection.">
3255       <type name="utf8"/>
3256     </constant>
3257     <constant name="CONN_OBJECT_PATH_BASE" value="/org/freedesktop/Telepathy/Connection/">
3258       <type name="utf8"/>
3259     </constant>
3260     <class name="Capabilities" c:type="TpCapabilities" version="0.11.3" parent="GObject.Object" glib:type-name="TpCapabilities" glib:get-type="tp_capabilities_get_type" glib:type-struct="CapabilitiesClass">
3261       <doc xml:whitespace="preserve">An object representing capabilities a #TpConnection or #TpContact supports.</doc>
3262       <method name="get_channel_classes" c:identifier="tp_capabilities_get_channel_classes" version="0.11.3">
3263         <doc xml:whitespace="preserve">&lt;!-- --&gt;
3264 #TpCapabilities:channel-classes property</doc>
3265         <return-value transfer-ownership="none">
3266           <doc xml:whitespace="preserve">the same #GPtrArray as the</doc>
3267           <array name="GLib.PtrArray" c:type="GPtrArray*">
3268             <type name="any" c:type="gpointer"/>
3269           </array>
3270         </return-value>
3271       </method>
3272       <method name="is_specific_to_contact" c:identifier="tp_capabilities_is_specific_to_contact" version="0.11.3">
3273         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
3274         <return-value transfer-ownership="none">
3275           <doc xml:whitespace="preserve">the same #gboolean as the #TpCapabilities:contact-specific property</doc>
3276           <type name="boolean" c:type="gboolean"/>
3277         </return-value>
3278       </method>
3279       <method name="supports_text_chats" c:identifier="tp_capabilities_supports_text_chats" version="0.11.3">
3280         <doc xml:whitespace="preserve">Return whether private text channels can be established by providing
3281 a contact identifier.
3282 If the protocol is such that text chats can be established, but only via a
3283 more elaborate D-Bus API than normal (because more information is needed),
3284 then this method will return %FALSE.
3285 HandleTypeContact as TargetHandleType and a contact identifier can be
3286 expected to work, %FALSE otherwise.</doc>
3287         <return-value transfer-ownership="none">
3288           <doc xml:whitespace="preserve">%TRUE if a channel request containing Text as ChannelType,</doc>
3289           <type name="boolean" c:type="gboolean"/>
3290         </return-value>
3291       </method>
3292       <method name="supports_text_chatrooms" c:identifier="tp_capabilities_supports_text_chatrooms" version="0.11.3">
3293         <doc xml:whitespace="preserve">If the #TpCapabilities:contact-specific property is %FALSE, this function
3294 checks if named text chatrooms can be joined by providing a chatroom
3295 identifier.
3296 If the #TpCapabilities:contact-specific property is %TRUE, this function
3297 checks if the contact associated with this #TpCapabilities can be invited
3298 to named text chatrooms.
3299 If the protocol is such that chatrooms can be joined or contacts can be
3300 invited, but only via a more elaborate D-Bus API than normal
3301 (because more information is needed), then this method will return %FALSE.
3302 HandleTypeRoom as TargetHandleType and a channel identifier can be
3303 expected to work, %FALSE otherwise.</doc>
3304         <return-value transfer-ownership="none">
3305           <doc xml:whitespace="preserve">%TRUE if a channel request containing Text as ChannelType,</doc>
3306           <type name="boolean" c:type="gboolean"/>
3307         </return-value>
3308       </method>
3309       <property name="contact-specific" writable="1" construct-only="1" transfer-ownership="none">
3310         <doc xml:whitespace="preserve">Whether this object accurately describes the capabilities of a particular
3311 contact, or if it's only a guess based on the capabilities of the
3312 underlying connection.</doc>
3313         <type name="boolean" c:type="gboolean"/>
3314       </property>
3315     </class>
3316     <record name="CapabilitiesClass" c:type="TpCapabilitiesClass" glib:is-gtype-struct-for="Capabilities">
3317     </record>
3318     <record name="CapabilitiesPrivate" c:type="TpCapabilitiesPrivate">
3319     </record>
3320     <class name="Channel" c:type="TpChannel" version="0.7.1" parent="Proxy" glib:type-name="TpChannel" glib:get-type="tp_channel_get_type" glib:type-struct="ChannelClass">
3321       <doc xml:whitespace="preserve">A proxy object for a Telepathy channel.
3322 A proxy object for a Telepathy channel. There are no interesting
3323 public struct fields.
3324 (Changed in 0.7.12: the layout of the structure is visible, allowing
3325 subclassing.)</doc>
3326       <constructor name="new" c:identifier="tp_channel_new" version="0.7.1" throws="1">
3327         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
3328         <return-value transfer-ownership="full">
3329           <doc xml:whitespace="preserve">a new channel proxy, or %NULL on invalid arguments.</doc>
3330           <type name="Channel" c:type="TpChannel*"/>
3331         </return-value>
3332         <parameters>
3333           <parameter name="conn" transfer-ownership="none">
3334             <doc xml:whitespace="preserve">a connection; may not be %NULL</doc>
3335             <type name="Connection" c:type="TpConnection*"/>
3336           </parameter>
3337           <parameter name="object_path" transfer-ownership="none">
3338             <doc xml:whitespace="preserve">the object path of the channel; may not be %NULL</doc>
3339             <type name="utf8" c:type="gchar*"/>
3340           </parameter>
3341           <parameter name="optional_channel_type" transfer-ownership="none">
3342             <doc xml:whitespace="preserve">the channel type if already known, or %NULL if not</doc>
3343             <type name="utf8" c:type="gchar*"/>
3344           </parameter>
3345           <parameter name="optional_handle_type" transfer-ownership="none">
3346             <doc xml:whitespace="preserve">the handle type if already known, or %TP_UNKNOWN_HANDLE_TYPE if not</doc>
3347             <type name="HandleType" c:type="TpHandleType"/>
3348           </parameter>
3349           <parameter name="optional_handle" transfer-ownership="none">
3350             <doc xml:whitespace="preserve">the handle if already known, or 0 if not (if @optional_handle_type is %TP_UNKNOWN_HANDLE_TYPE or %TP_HANDLE_TYPE_NONE, this must be 0)</doc>
3351             <type name="Handle" c:type="TpHandle"/>
3352           </parameter>
3353         </parameters>
3354       </constructor>
3355       <constructor name="new_from_properties" c:identifier="tp_channel_new_from_properties" version="0.7.19" throws="1">
3356         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
3357         <return-value transfer-ownership="full">
3358           <doc xml:whitespace="preserve">a new channel proxy, or %NULL on invalid arguments</doc>
3359           <type name="Channel" c:type="TpChannel*"/>
3360         </return-value>
3361         <parameters>
3362           <parameter name="conn" transfer-ownership="none">
3363             <doc xml:whitespace="preserve">a connection; may not be %NULL</doc>
3364             <type name="Connection" c:type="TpConnection*"/>
3365           </parameter>
3366           <parameter name="object_path" transfer-ownership="none">
3367             <doc xml:whitespace="preserve">the object path of the channel; may not be %NULL</doc>
3368             <type name="utf8" c:type="gchar*"/>
3369           </parameter>
3370           <parameter name="immutable_properties" transfer-ownership="none">
3371             <doc xml:whitespace="preserve">the immutable properties of the channel, as signalled by the NewChannel D-Bus signal or returned by the CreateChannel and EnsureChannel D-Bus methods: a mapping from strings (D-Bus interface name + "." + property name) to #GValue instances</doc>
3372             <type name="GLib.HashTable" c:type="GHashTable*">
3373               <type name="utf8"/>
3374               <type name="GObject.Value"/>
3375             </type>
3376           </parameter>
3377         </parameters>
3378       </constructor>
3379       <function name="init_known_interfaces" c:identifier="tp_channel_init_known_interfaces" version="0.7.6">
3380         <doc xml:whitespace="preserve">Ensure that the known interfaces for TpChannel have been set up.
3381 This is done automatically when necessary, but for correct
3382 overriding of library interfaces by local extensions, you should
3383 call this function before calling
3384 tp_proxy_or_subclass_hook_on_interface_add() with first argument
3385 %TP_TYPE_CHANNEL.</doc>
3386         <return-value transfer-ownership="none">
3387           <type name="none" c:type="void"/>
3388         </return-value>
3389       </function>
3390       <function name="get_feature_quark_core" c:identifier="tp_channel_get_feature_quark_core">
3391         <return-value transfer-ownership="full">
3392           <type name="GLib.Quark" c:type="GQuark"/>
3393         </return-value>
3394       </function>
3395       <function name="get_feature_quark_group" c:identifier="tp_channel_get_feature_quark_group">
3396         <return-value transfer-ownership="full">
3397           <type name="GLib.Quark" c:type="GQuark"/>
3398         </return-value>
3399       </function>
3400       <function name="get_feature_quark_chat_states" c:identifier="tp_channel_get_feature_quark_chat_states">
3401         <return-value transfer-ownership="full">
3402           <type name="GLib.Quark" c:type="GQuark"/>
3403         </return-value>
3404       </function>
3405       <method name="run_until_ready" c:identifier="tp_channel_run_until_ready" version="0.7.1" introspectable="0" deprecated="Use tp_connection_call_when_ready," deprecated-version="0.11.0">
3406         <doc xml:whitespace="preserve">If @self is ready for use (introspection has finished, etc.), return
3407 immediately. Otherwise, re-enter the main loop until the channel either
3408 becomes invalid or becomes ready for use, or until the main loop stored
3409 via @loop is cancelled.
3410 %FALSE if the channel has become invalid.
3411 or restructure your program in such a way as to avoid re-entering the
3412 main loop.</doc>
3413         <return-value transfer-ownership="none">
3414           <doc xml:whitespace="preserve">%TRUE if the channel has been introspected and is ready for use,</doc>
3415           <type name="boolean" c:type="gboolean"/>
3416         </return-value>
3417         <parameters>
3418           <parameter name="error" transfer-ownership="none">
3419             <doc xml:whitespace="preserve">if not %NULL and %FALSE is returned, used to raise an error</doc>
3420             <type name="GLib.Error" c:type="GError**"/>
3421           </parameter>
3422           <parameter name="loop" transfer-ownership="none">
3423             <doc xml:whitespace="preserve">if not %NULL, a #GMainLoop is placed here while it is being run (so calling code can call g_main_loop_quit() to abort), and %NULL is placed here after the loop has been run</doc>
3424             <type name="GLib.MainLoop" c:type="GMainLoop**"/>
3425           </parameter>
3426         </parameters>
3427       </method>
3428       <method name="call_when_ready" c:identifier="tp_channel_call_when_ready" version="0.7.7" introspectable="0">
3429         <doc xml:whitespace="preserve">If @self is ready for use or has been invalidated, call @callback
3430 immediately, then return. Otherwise, arrange
3431 for @callback to be called when @self either becomes ready for use
3432 or becomes invalid.
3433 This is a less general form of tp_proxy_prepare_async(), which should be
3434 used in new code. (One important difference is that this function can call
3435 calls @callback from the main loop.)</doc>
3436         <return-value transfer-ownership="none">
3437           <type name="none" c:type="void"/>
3438         </return-value>
3439         <parameters>
3440           <parameter name="callback" transfer-ownership="none" scope="call" closure="2">
3441             <doc xml:whitespace="preserve">called when the channel becomes ready or invalidated, whichever happens first</doc>
3442             <type name="ChannelWhenReadyCb" c:type="TpChannelWhenReadyCb"/>
3443           </parameter>
3444           <parameter name="user_data" transfer-ownership="none">
3445             <doc xml:whitespace="preserve">arbitrary user-supplied data passed to the callback</doc>
3446             <type name="any" c:type="gpointer"/>
3447           </parameter>
3448         </parameters>
3449       </method>
3450       <method name="is_ready" c:identifier="tp_channel_is_ready" version="0.7.12" introspectable="0">
3451         <doc xml:whitespace="preserve">Returns the same thing as the #TpChannel:channel-ready property.
3452 New code should use tp_proxy_is_prepared(), which is a more general form of
3453 this method.
3454 For group channels, this method is equivalent to checking for the
3455 combination of %TP_CHANNEL_FEATURE_CORE and %TP_CHANNEL_FEATURE_GROUP; for
3456 non-group channels, it's equivalent to checking for
3457 %TP_CHANNEL_FEATURE_CORE.
3458 One important difference is that after #TpProxy::invalidated is
3459 signalled, #TpChannel:channel-ready keeps its current value - which might
3460 be %TRUE, if the channel was successfully prepared before it became
3461 invalidated - but tp_proxy_is_prepared() returns %FALSE for all features.</doc>
3462         <return-value transfer-ownership="none">
3463           <doc xml:whitespace="preserve">%TRUE if introspection has completed</doc>
3464           <type name="boolean" c:type="gboolean"/>
3465         </return-value>
3466       </method>
3467       <method name="get_channel_type" c:identifier="tp_channel_get_channel_type" version="0.7.12">
3468         <doc xml:whitespace="preserve">Get the D-Bus interface name representing this channel's type,
3469 if it has been discovered.
3470 This is the same as the #TpChannelIface:channel-type property; it isn't
3471 guaranteed to be non-%NULL until the %TP_CHANNEL_FEATURE_CORE feature has
3472 been prepared.
3473 type or %NULL, if the channel is not yet ready.</doc>
3474         <return-value transfer-ownership="none">
3475           <doc xml:whitespace="preserve">the channel type, if the channel is ready; either the channel</doc>
3476           <type name="utf8" c:type="gchar*"/>
3477         </return-value>
3478       </method>
3479       <method name="get_channel_type_id" c:identifier="tp_channel_get_channel_type_id" version="0.7.12">
3480         <doc xml:whitespace="preserve">Get the D-Bus interface name representing this channel's type, as a GQuark,
3481 if it has been discovered.
3482 This is the same as the #TpChannelIface:channel-type property, except that it
3483 is a GQuark rather than a string. It isn't guaranteed to be nonzero until
3484 the %TP_CHANNEL_FEATURE_CORE property is ready.
3485 type or 0, if the channel is not yet ready.</doc>
3486         <return-value transfer-ownership="full">
3487           <doc xml:whitespace="preserve">the channel type, if the channel is ready; either the channel</doc>
3488           <type name="GLib.Quark" c:type="GQuark"/>
3489         </return-value>
3490       </method>
3491       <method name="get_handle" c:identifier="tp_channel_get_handle" version="0.7.12">
3492         <doc xml:whitespace="preserve">Get the handle representing the contact, chatroom, etc. with which this
3493 channel communicates for its whole lifetime, or 0 if there is no such
3494 handle or it has not yet been discovered.
3495 This is the same as the #TpChannelIface:handle property. It isn't
3496 guaranteed to have its final value until the %TP_CHANNEL_FEATURE_CORE
3497 feature is ready.
3498 If %handle_type is not %NULL, the type of handle is written into it.
3499 This will be %TP_UNKNOWN_HANDLE_TYPE if the handle has not yet been
3500 discovered, or %TP_HANDLE_TYPE_NONE if there is no handle with which this
3501 channel will always communicate. This is the same as the
3502 #TpChannelIface:handle-type property.</doc>
3503         <return-value transfer-ownership="full">
3504           <doc xml:whitespace="preserve">the handle</doc>
3505           <type name="Handle" c:type="TpHandle"/>
3506         </return-value>
3507         <parameters>
3508           <parameter name="handle_type" direction="out" caller-allocates="1" transfer-ownership="none">
3509             <doc xml:whitespace="preserve">if not %NULL, used to return the type of this handle</doc>
3510             <type name="HandleType" c:type="TpHandleType*"/>
3511           </parameter>
3512         </parameters>
3513       </method>
3514       <method name="get_identifier" c:identifier="tp_channel_get_identifier" version="0.7.21">
3515         <doc xml:whitespace="preserve">This channel's associated identifier, or the empty string if no identifier
3516 or unknown.
3517 This is the same as the #TpChannel:identifier property, and isn't guaranteed
3518 to be set until the %TP_CHANNEL_FEATURE_CORE property is ready.
3519 previously either be %NULL or the empty string if there was no suitable
3520 value. It is now non-%NULL in all cases.</doc>
3521         <return-value transfer-ownership="none">
3522           <doc xml:whitespace="preserve">the identifier</doc>
3523           <type name="utf8" c:type="gchar*"/>
3524         </return-value>
3525       </method>
3526       <method name="borrow_connection" c:identifier="tp_channel_borrow_connection" version="0.7.12">
3527         <doc xml:whitespace="preserve">Returns the connection for this channel. The returned pointer is only valid
3528 while this channel is valid - reference it with g_object_ref() if needed.</doc>
3529         <return-value transfer-ownership="none">
3530           <doc xml:whitespace="preserve">connection</doc>
3531           <type name="Connection" c:type="TpConnection*"/>
3532         </return-value>
3533       </method>
3534       <method name="borrow_immutable_properties" c:identifier="tp_channel_borrow_immutable_properties">
3535         <doc xml:whitespace="preserve">Returns the immutable D-Bus properties of this channel, the same as
3536 #TpChannel:channel-properties.
3537 The returned hash table should not be altered, and is not necessarily
3538 valid after the main loop is next re-entered. Copy it with
3539 g_boxed_copy() (its type is %TP_HASH_TYPE_QUALIFIED_PROPERTY_VALUE_MAP)
3540 if a copy that remains valid must be kept.
3541 If the #TpChannel:channel-properties property was not set during
3542 construction (e.g. by calling tp_channel_new_from_properties()), a
3543 reasonable but possibly incomplete version will be made up from the values
3544 of individual properties; reading this property repeatedly may yield
3545 progressively more complete values until the %TP_CHANNEL_FEATURE_CORE
3546 feature is prepared.
3547 where the keys are strings,
3548 D-Bus interface name + "." + property name, and the values are #GValue
3549 instances</doc>
3550         <return-value transfer-ownership="none">
3551           <doc xml:whitespace="preserve">a #GHashTable</doc>
3552           <type name="GLib.HashTable" c:type="GHashTable*">
3553             <type name="utf8"/>
3554             <type name="GObject.Value"/>
3555           </type>
3556         </return-value>
3557       </method>
3558       <method name="group_get_self_handle" c:identifier="tp_channel_group_get_self_handle">
3559         <return-value transfer-ownership="full">
3560           <type name="Handle" c:type="TpHandle"/>
3561         </return-value>
3562       </method>
3563       <method name="group_get_flags" c:identifier="tp_channel_group_get_flags">
3564         <return-value transfer-ownership="full">
3565           <type name="ChannelGroupFlags" c:type="TpChannelGroupFlags"/>
3566         </return-value>
3567       </method>
3568       <method name="group_get_members" c:identifier="tp_channel_group_get_members">
3569         <return-value transfer-ownership="none">
3570           <type name="IntSet" c:type="TpIntSet*"/>
3571         </return-value>
3572       </method>
3573       <method name="group_get_local_pending" c:identifier="tp_channel_group_get_local_pending">
3574         <return-value transfer-ownership="none">
3575           <type name="IntSet" c:type="TpIntSet*"/>
3576         </return-value>
3577       </method>
3578       <method name="group_get_remote_pending" c:identifier="tp_channel_group_get_remote_pending">
3579         <return-value transfer-ownership="none">
3580           <type name="IntSet" c:type="TpIntSet*"/>
3581         </return-value>
3582       </method>
3583       <method name="group_get_local_pending_info" c:identifier="tp_channel_group_get_local_pending_info">
3584         <return-value transfer-ownership="none">
3585           <type name="boolean" c:type="gboolean"/>
3586         </return-value>
3587         <parameters>
3588           <parameter name="local_pending" transfer-ownership="none">
3589             <type name="Handle" c:type="TpHandle"/>
3590           </parameter>
3591           <parameter name="actor" transfer-ownership="none">
3592             <type name="Handle" c:type="TpHandle*"/>
3593           </parameter>
3594           <parameter name="reason" transfer-ownership="none">
3595             <type name="ChannelGroupChangeReason" c:type="TpChannelGroupChangeReason*"/>
3596           </parameter>
3597           <parameter name="message" transfer-ownership="none">
3598             <array c:type="gchar**">
3599               <type name="utf8"/>
3600             </array>
3601           </parameter>
3602         </parameters>
3603       </method>
3604       <method name="group_get_handle_owner" c:identifier="tp_channel_group_get_handle_owner">
3605         <return-value transfer-ownership="full">
3606           <type name="Handle" c:type="TpHandle"/>
3607         </return-value>
3608         <parameters>
3609           <parameter name="handle" transfer-ownership="none">
3610             <type name="Handle" c:type="TpHandle"/>
3611           </parameter>
3612         </parameters>
3613       </method>
3614       <method name="get_chat_state" c:identifier="tp_channel_get_chat_state" version="0.11.3">
3615         <doc xml:whitespace="preserve">Return the chat state for the given contact. If tp_proxy_is_prepared()
3616 would return %FALSE for the feature %TP_CHANNEL_FEATURE_CHAT_STATES,
3617 the result will always be %TP_CHANNEL_CHAT_STATE_INACTIVE.
3618 if their chat state is not known</doc>
3619         <return-value transfer-ownership="full">
3620           <doc xml:whitespace="preserve">the chat state for @contact, or %TP_CHANNEL_CHAT_STATE_INACTIVE</doc>
3621           <type name="ChannelChatState" c:type="TpChannelChatState"/>
3622         </return-value>
3623         <parameters>
3624           <parameter name="contact" transfer-ownership="none">
3625             <doc xml:whitespace="preserve">a contact handle</doc>
3626             <type name="Handle" c:type="TpHandle"/>
3627           </parameter>
3628         </parameters>
3629       </method>
3630       <property name="channel-ready" transfer-ownership="none">
3631         <doc xml:whitespace="preserve">Initially %FALSE; changes to %TRUE when tp_proxy_prepare_async() has
3632 finished preparing %TP_CHANNEL_FEATURE_CORE, and if the channel is a
3633 group, %TP_CHANNEL_FEATURE_GROUP.
3634 This is a less general form of tp_proxy_is_prepared(), which should be
3635 used in new code.
3636 One important difference is that after #TpProxy::invalidated is
3637 signalled, #TpChannel:channel-ready keeps its current value - which might
3638 be %TRUE, if the channel was successfully prepared before it became
3639 invalidated - but tp_proxy_is_prepared() returns %FALSE for all features.
3640 Change notification is via notify::channel-ready.</doc>
3641         <type name="boolean" c:type="gboolean"/>
3642       </property>
3643       <property name="connection" writable="1" construct-only="1" transfer-ownership="none">
3644         <doc xml:whitespace="preserve">The #TpConnection to which this #TpChannel belongs. Used for e.g.
3645 handle manipulation.</doc>
3646         <type name="Connection" c:type="TpConnection"/>
3647       </property>
3648       <property name="group-flags" version="0.7.12" transfer-ownership="none">
3649         <doc xml:whitespace="preserve">If the %TP_CHANNEL_FEATURE_GROUP feature has been prepared successfully,
3650 #TpChannelGroupFlags indicating the capabilities and behaviour of that
3651 group.
3652 Otherwise, this may be 0.
3653 Change notification is via notify::group-flags or
3654 TpChannel::group-flags-changed.</doc>
3655         <type name="uint" c:type="guint"/>
3656       </property>
3657       <property name="group-self-handle" version="0.7.12" transfer-ownership="none">
3658         <doc xml:whitespace="preserve">If this channel is a group and %TP_CHANNEL_FEATURE_GROUP has been
3659 prepared, and the user is a member of the group, the #TpHandle
3660 representing them in this group.
3661 Otherwise, the result may be either a handle representing the user, or 0.
3662 Change notification is via notify::group-self-handle.</doc>
3663         <type name="uint" c:type="guint"/>
3664       </property>
3665       <property name="identifier" transfer-ownership="none">
3666         <doc xml:whitespace="preserve">This channel's associated identifier, or the empty string if it has
3667 handle type %TP_HANDLE_TYPE_NONE.
3668 For channels where #TpChannelIface:handle is non-zero, this is the result
3669 of inspecting #TpChannelIface:handle.
3670 This is not guaranteed to be set until tp_proxy_prepare_async() has
3671 finished preparing %TP_CHANNEL_FEATURE_CORE; until then, it may be
3672 the empty string.
3673 it was %NULL before an identifier was known, or when a channel
3674 with no TargetID D-Bus property had TargetHandleType %TP_HANDLE_TYPE_NONE.</doc>
3675         <type name="utf8" c:type="gchararray"/>
3676       </property>
3677       <field name="parent">
3678         <type name="Proxy" c:type="TpProxy"/>
3679       </field>
3680       <field name="priv">
3681         <type name="ChannelPrivate" c:type="TpChannelPrivate*"/>
3682       </field>
3683       <glib:signal name="chat-state-changed" version="0.11.3">
3684         <doc xml:whitespace="preserve">Emitted when a contact's chat state changes after tp_proxy_prepare_async()
3685 has finished preparing the feature %TP_CHANNEL_FEATURE_CHAT_STATES.</doc>
3686         <return-value transfer-ownership="full">
3687           <type name="none" c:type="void"/>
3688         </return-value>
3689         <parameters>
3690           <parameter name="contact" transfer-ownership="none">
3691             <doc xml:whitespace="preserve">a contact handle for the local user or another contact</doc>
3692             <type name="uint" c:type="guint"/>
3693           </parameter>
3694           <parameter name="state" transfer-ownership="none">
3695             <doc xml:whitespace="preserve">the new #TpChannelChatState for the contact</doc>
3696             <type name="uint" c:type="guint"/>
3697           </parameter>
3698         </parameters>
3699       </glib:signal>
3700       <glib:signal name="group-flags-changed" version="0.7.12">
3701         <doc xml:whitespace="preserve">Emitted when the #TpChannel:group-flags property changes while the
3702 channel is ready.</doc>
3703         <return-value transfer-ownership="full">
3704           <type name="none" c:type="void"/>
3705         </return-value>
3706         <parameters>
3707           <parameter name="added" transfer-ownership="none">
3708             <doc xml:whitespace="preserve">#TpChannelGroupFlags which are newly set</doc>
3709             <type name="uint" c:type="guint"/>
3710           </parameter>
3711           <parameter name="removed" transfer-ownership="none">
3712             <doc xml:whitespace="preserve">#TpChannelGroupFlags which are no longer set</doc>
3713             <type name="uint" c:type="guint"/>
3714           </parameter>
3715         </parameters>
3716       </glib:signal>
3717       <glib:signal name="group-members-changed" version="0.7.12" introspectable="0">
3718         <doc xml:whitespace="preserve">Emitted when the group members change in a Group channel that is ready.</doc>
3719         <return-value transfer-ownership="full">
3720           <type name="none" c:type="void"/>
3721         </return-value>
3722         <parameters>
3723           <parameter name="message" transfer-ownership="none">
3724             <doc xml:whitespace="preserve">an optional textual message</doc>
3725             <type name="utf8" c:type="gchararray"/>
3726           </parameter>
3727           <parameter name="added" transfer-ownership="none">
3728             <doc xml:whitespace="preserve">a #GArray of #guint containing the full members added</doc>
3729             <type name="GArray_guint_" c:type="GArray_guint_"/>
3730           </parameter>
3731           <parameter name="removed" transfer-ownership="none">
3732             <doc xml:whitespace="preserve">a #GArray of #guint containing the members (full, local-pending or remote-pending) removed</doc>
3733             <type name="GArray_guint_" c:type="GArray_guint_"/>
3734           </parameter>
3735           <parameter name="local_pending" transfer-ownership="none">
3736             <doc xml:whitespace="preserve">a #GArray of #guint containing the local-pending members added</doc>
3737             <type name="GArray_guint_" c:type="GArray_guint_"/>
3738           </parameter>
3739           <parameter name="remote_pending" transfer-ownership="none">
3740             <doc xml:whitespace="preserve">a #GArray of #guint containing the remote-pending members added</doc>
3741             <type name="GArray_guint_" c:type="GArray_guint_"/>
3742           </parameter>
3743           <parameter name="actor" transfer-ownership="none">
3744             <doc xml:whitespace="preserve">the #TpHandle of the contact causing the change, or 0</doc>
3745             <type name="uint" c:type="guint"/>
3746           </parameter>
3747           <parameter name="reason" transfer-ownership="none">
3748             <doc xml:whitespace="preserve">the reason for the change as a #TpChannelGroupChangeReason</doc>
3749             <type name="uint" c:type="guint"/>
3750           </parameter>
3751         </parameters>
3752       </glib:signal>
3753       <glib:signal name="group-members-changed-detailed" version="0.7.21">
3754         <doc xml:whitespace="preserve">Emitted when the group members change in a Group channel that is ready.
3755 Contains a superset of the information in the
3756 TpChannel::group-members-changed signal, and is emitted at the same time;
3757 applications can connect to this signal and ignore the other.</doc>
3758         <return-value transfer-ownership="full">
3759           <type name="none" c:type="void"/>
3760         </return-value>
3761         <parameters>
3762           <parameter name="added" transfer-ownership="none">
3763             <doc xml:whitespace="preserve">a #GArray of #guint containing the full members added</doc>
3764             <array name="GLib.Array" c:type="GArray_guint_">
3765               <type name="uint"/>
3766             </array>
3767           </parameter>
3768           <parameter name="removed" transfer-ownership="none">
3769             <doc xml:whitespace="preserve">a #GArray of #guint containing the members (full, local-pending or remote-pending) removed</doc>
3770             <array name="GLib.Array" c:type="GArray_guint_">
3771               <type name="uint"/>
3772             </array>
3773           </parameter>
3774           <parameter name="local_pending" transfer-ownership="none">
3775             <doc xml:whitespace="preserve">a #GArray of #guint containing the local-pending members added</doc>
3776             <array name="GLib.Array" c:type="GArray_guint_">
3777               <type name="uint"/>
3778             </array>
3779           </parameter>
3780           <parameter name="remote_pending" transfer-ownership="none">
3781             <doc xml:whitespace="preserve">a #GArray of #guint containing the remote-pending members added</doc>
3782             <array name="GLib.Array" c:type="GArray_guint_">
3783               <type name="uint"/>
3784             </array>
3785           </parameter>
3786           <parameter name="details" transfer-ownership="none">
3787             <doc xml:whitespace="preserve">a #GHashTable mapping (gchar *) to #GValue containing details about the change, as described in the specification of the MembersChangedDetailed signal.</doc>
3788             <type name="GLib.HashTable" c:type="GHashTable_gchararray+GValue_">
3789               <type name="utf8"/>
3790               <type name="GObject.Value"/>
3791             </type>
3792           </parameter>
3793         </parameters>
3794       </glib:signal>
3795     </class>
3796     <enumeration name="ChannelCallStateFlags" c:type="TpChannelCallStateFlags">
3797       <member name="ringing" value="1" c:identifier="TP_CHANNEL_CALL_STATE_RINGING"/>
3798       <member name="queued" value="2" c:identifier="TP_CHANNEL_CALL_STATE_QUEUED"/>
3799       <member name="held" value="4" c:identifier="TP_CHANNEL_CALL_STATE_HELD"/>
3800       <member name="forwarded" value="8" c:identifier="TP_CHANNEL_CALL_STATE_FORWARDED"/>
3801       <member name="in_progress" value="16" c:identifier="TP_CHANNEL_CALL_STATE_IN_PROGRESS"/>
3802       <member name="conference_host" value="32" c:identifier="TP_CHANNEL_CALL_STATE_CONFERENCE_HOST"/>
3803     </enumeration>
3804     <enumeration name="ChannelChatState" c:type="TpChannelChatState">
3805       <member name="gone" value="0" c:identifier="TP_CHANNEL_CHAT_STATE_GONE"/>
3806       <member name="inactive" value="1" c:identifier="TP_CHANNEL_CHAT_STATE_INACTIVE"/>
3807       <member name="active" value="2" c:identifier="TP_CHANNEL_CHAT_STATE_ACTIVE"/>
3808       <member name="paused" value="3" c:identifier="TP_CHANNEL_CHAT_STATE_PAUSED"/>
3809       <member name="composing" value="4" c:identifier="TP_CHANNEL_CHAT_STATE_COMPOSING"/>
3810     </enumeration>
3811     <record name="ChannelClass" c:type="TpChannelClass" glib:is-gtype-struct-for="Channel" version="0.7.1">
3812       <doc xml:whitespace="preserve">The class of a #TpChannel. In addition to @parent_class there are four
3813 pointers reserved for possible future use.
3814 (Changed in 0.7.12: the layout of the structure is visible, allowing
3815 subclassing.)</doc>
3816       <field name="parent_class">
3817         <type name="ProxyClass" c:type="TpProxyClass"/>
3818       </field>
3819       <field name="_1">
3820         <type name="GObject.Callback" c:type="GCallback"/>
3821       </field>
3822       <field name="_2">
3823         <type name="GObject.Callback" c:type="GCallback"/>
3824       </field>
3825       <field name="_3">
3826         <type name="GObject.Callback" c:type="GCallback"/>
3827       </field>
3828       <field name="_4">
3829         <type name="GObject.Callback" c:type="GCallback"/>
3830       </field>
3831     </record>
3832     <enumeration name="ChannelContactSearchState" c:type="TpChannelContactSearchState">
3833       <member name="not_started" value="0" c:identifier="TP_CHANNEL_CONTACT_SEARCH_STATE_NOT_STARTED"/>
3834       <member name="in_progress" value="1" c:identifier="TP_CHANNEL_CONTACT_SEARCH_STATE_IN_PROGRESS"/>
3835       <member name="more_available" value="2" c:identifier="TP_CHANNEL_CONTACT_SEARCH_STATE_MORE_AVAILABLE"/>
3836       <member name="completed" value="3" c:identifier="TP_CHANNEL_CONTACT_SEARCH_STATE_COMPLETED"/>
3837       <member name="failed" value="4" c:identifier="TP_CHANNEL_CONTACT_SEARCH_STATE_FAILED"/>
3838     </enumeration>
3839     <class name="ChannelDispatchOperation" c:type="TpChannelDispatchOperation" version="0.7.32" parent="Proxy" glib:type-name="TpChannelDispatchOperation" glib:get-type="tp_channel_dispatch_operation_get_type" glib:type-struct="ChannelDispatchOperationClass">
3840       <doc xml:whitespace="preserve">One of the channel dispatcher's functions is to offer incoming channels to
3841 Approver clients for approval. An approver should generally ask the user
3842 whether they want to participate in the requested communication channels
3843 (join the chat or chatroom, answer the call, accept the file transfer, or
3844 whatever is appropriate). A collection of channels offered in this way
3845 is represented by a ChannelDispatchOperation object.
3846 If the user wishes to accept the communication channels, the approver
3847 should call tp_cli_channel_dispatch_operation_call_handle_with() to
3848 indicate the user's or approver's preferred handler for the channels (the
3849 empty string indicates no particular preference, and will cause any
3850 suitable handler to be used).
3851 If the user wishes to reject the communication channels, or if the user
3852 accepts the channels and the approver will handle them itself, the approver
3853 should call tp_cli_channel_dispatch_operation_call_claim(). If this method
3854 succeeds, the approver immediately has control over the channels as their
3855 primary handler, and may do anything with them (in particular, it may close
3856 them in whatever way seems most appropriate).
3857 There are various situations in which the channel dispatch operation will
3858 be closed, causing the #TpProxy::invalidated signal to be emitted. If this
3859 happens, the approver should stop prompting the user.
3860 Because all approvers are launched simultaneously, the user might respond
3861 to another approver; if this happens, the #TpProxy::invalidated signal
3862 will be emitted with the domain %TP_DBUS_ERRORS and the error code
3863 %TP_DBUS_ERROR_OBJECT_REMOVED.
3864 If a channel closes, the #TpChannelDispatchOperation::channel-lost signal
3865 is emitted. If all channels
3866 close, there is nothing more to dispatch, so the #TpProxy::invalidated
3867 signal will be emitted with the domain %TP_DBUS_ERRORS and the error code
3868 %TP_DBUS_ERROR_OBJECT_REMOVED.
3869 If the channel dispatcher crashes or exits, the #TpProxy::invalidated
3870 signal will be emitted with the domain %TP_DBUS_ERRORS and the error code
3871 %TP_DBUS_ERROR_NAME_OWNER_LOST. In a high-quality implementation, the
3872 dispatcher should be restarted, at which point it will create new
3873 channel dispatch operations for any undispatched channels, and the approver
3874 will be notified again.
3875 be added in a later version of telepathy-glib, along with a mechanism
3876 similar to tp_connection_call_when_ready().</doc>
3877       <constructor name="new" c:identifier="tp_channel_dispatch_operation_new" throws="1">
3878         <doc xml:whitespace="preserve">Convenience function to create a new channel dispatch operation proxy.
3879 The @immutable_properties argument is not yet used.
3880 running</doc>
3881         <return-value transfer-ownership="full">
3882           <doc xml:whitespace="preserve">a new reference to an channel dispatch operation proxy, or %NULL if</doc>
3883           <type name="ChannelDispatchOperation" c:type="TpChannelDispatchOperation*"/>
3884         </return-value>
3885         <parameters>
3886           <parameter name="bus_daemon" transfer-ownership="none">
3887             <doc xml:whitespace="preserve">Proxy for the D-Bus daemon</doc>
3888             <type name="DBusDaemon" c:type="TpDBusDaemon*"/>
3889           </parameter>
3890           <parameter name="object_path" transfer-ownership="none">
3891             <doc xml:whitespace="preserve">The non-NULL object path of this channel dispatch operation</doc>
3892             <type name="utf8" c:type="gchar*"/>
3893           </parameter>
3894           <parameter name="immutable_properties" transfer-ownership="none">
3895             <doc xml:whitespace="preserve">As many as are known of the immutable D-Bus properties of this channel dispatch operation, or %NULL if none are known</doc>
3896             <type name="GLib.HashTable" c:type="GHashTable*"/>
3897           </parameter>
3898         </parameters>
3899       </constructor>
3900       <function name="init_known_interfaces" c:identifier="tp_channel_dispatch_operation_init_known_interfaces" version="0.7.32">
3901         <doc xml:whitespace="preserve">Ensure that the known interfaces for TpChannelDispatchOperation have been
3902 set up. This is done automatically when necessary, but for correct
3903 overriding of library interfaces by local extensions, you should
3904 call this function before calling
3905 tp_proxy_or_subclass_hook_on_interface_add() with first argument
3906 %TP_TYPE_CHANNEL_DISPATCH_OPERATION.</doc>
3907         <return-value transfer-ownership="none">
3908           <type name="none" c:type="void"/>
3909         </return-value>
3910       </function>
3911       <function name="get_feature_quark_core" c:identifier="tp_channel_dispatch_operation_get_feature_quark_core">
3912         <return-value transfer-ownership="full">
3913           <type name="GLib.Quark" c:type="GQuark"/>
3914         </return-value>
3915       </function>
3916       <method name="borrow_connection" c:identifier="tp_channel_dispatch_operation_borrow_connection" version="0.11.5" introspectable="0">
3917         <doc xml:whitespace="preserve">Returns the #TpConnection of this ChannelDispatchOperation.
3918 The returned pointer is only valid while @self is valid - reference
3919 it with g_object_ref() if needed.</doc>
3920         <return-value transfer-ownership="none">
3921           <doc xml:whitespace="preserve">connection</doc>
3922           <type name="Connection" c:type="TpConnection*"/>
3923         </return-value>
3924       </method>
3925       <method name="borrow_account" c:identifier="tp_channel_dispatch_operation_borrow_account" version="0.11.5" introspectable="0">
3926         <doc xml:whitespace="preserve">Returns the #TpAccount of this ChannelDispatchOperation.
3927 The returned pointer is only valid while @self is valid - reference
3928 it with g_object_ref() if needed.</doc>
3929         <return-value transfer-ownership="none">
3930           <doc xml:whitespace="preserve">account</doc>
3931           <type name="Account" c:type="TpAccount*"/>
3932         </return-value>
3933       </method>
3934       <method name="borrow_channels" c:identifier="tp_channel_dispatch_operation_borrow_channels" version="0.11.5" introspectable="0">
3935         <doc xml:whitespace="preserve">Returns a #GPtrArray containing the #TpChannel of this
3936 ChannelDispatchOperation.
3937 The returned array and its #TpChannel are only valid while @self is
3938 valid - copy array and reference channels with g_object_ref() if needed.</doc>
3939         <return-value transfer-ownership="none">
3940           <doc xml:whitespace="preserve">channels</doc>
3941           <array name="GLib.PtrArray" c:type="GPtrArray*">
3942             <type name="any" c:type="gpointer"/>
3943           </array>
3944         </return-value>
3945       </method>
3946       <method name="borrow_possible_handlers" c:identifier="tp_channel_dispatch_operation_borrow_possible_handlers" version="0.11.5" introspectable="0">
3947         <doc xml:whitespace="preserve">Returns a #GStrv containing the possible handlers of this
3948 ChannelDispatchOperation.
3949 The returned array and its strings are only valid while @self is
3950 valid - copy it with g_strdupv if needed.
3951 #TpChannelDispatchOperation:possible-handlers</doc>
3952         <return-value transfer-ownership="none">
3953           <doc xml:whitespace="preserve">the value of</doc>
3954           <array c:type="GStrv">
3955             <type name="utf8"/>
3956           </array>
3957         </return-value>
3958       </method>
3959       <method name="borrow_immutable_properties" c:identifier="tp_channel_dispatch_operation_borrow_immutable_properties" version="0.11.5" introspectable="0">
3960         <doc xml:whitespace="preserve">Returns the immutable D-Bus properties of this channel.
3961 The returned hash table is only valid while @self is valid - reference
3962 it with g_hash_table_ref() if needed.
3963 #TpChannelDispatchOperation:cdo-properties</doc>
3964         <return-value transfer-ownership="none">
3965           <doc xml:whitespace="preserve">the value of</doc>
3966           <type name="GLib.HashTable" c:type="GHashTable*">
3967             <type name="utf8"/>
3968             <type name="GObject.Value"/>
3969           </type>
3970         </return-value>
3971       </method>
3972       <method name="handle_with_async" c:identifier="tp_channel_dispatch_operation_handle_with_async" version="0.11.5">
3973         <doc xml:whitespace="preserve">Called by an approver to accept a channel bundle and request that the
3974 given handler be used to handle it.
3975 If successful, this method will cause the #TpProxy::invalidated signal
3976 to be emitted with the TP_DBUS_ERROR_OBJECT_REMOVED error code.
3977 However, this method may fail because the dispatch has already been
3978 completed and the object has already gone. If this occurs, it indicates
3979 that another approver has asked for the bundle to be handled by a
3980 particular handler. The approver MUST NOT attempt to interact with
3981 the channels further in this case, unless it is separately
3982 invoked as the handler.
3983 Approvers which are also channel handlers SHOULD use
3984 tp_channel_dispatch_operation_claim_async() instead
3985 of tp_channel_dispatch_operation_handle_with_async() to request
3986 that they can handle a channel bundle themselves.</doc>
3987         <return-value transfer-ownership="none">
3988           <type name="none" c:type="void"/>
3989         </return-value>
3990         <parameters>
3991           <parameter name="handler" transfer-ownership="none" allow-none="1">
3992             <doc xml:whitespace="preserve">The well-known bus name (starting with #TP_CLIENT_BUS_NAME_BASE) of the channel handler that should handle the channel, or %NULL if the client has no preferred channel handler</doc>
3993             <type name="utf8" c:type="gchar*"/>
3994           </parameter>
3995           <parameter name="callback" transfer-ownership="none" scope="async" closure="3">
3996             <doc xml:whitespace="preserve">a callback to call when the call returns</doc>
3997             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
3998           </parameter>
3999           <parameter name="user_data" transfer-ownership="none">
4000             <doc xml:whitespace="preserve">data to pass to @callback</doc>
4001             <type name="any" c:type="gpointer"/>
4002           </parameter>
4003         </parameters>
4004       </method>
4005       <method name="handle_with_finish" c:identifier="tp_channel_dispatch_operation_handle_with_finish" version="0.11.5" throws="1">
4006         <doc xml:whitespace="preserve">Finishes an async call to HandleWith().</doc>
4007         <return-value transfer-ownership="none">
4008           <doc xml:whitespace="preserve">%TRUE if the HandleWith() call was successful, otherwise %FALSE</doc>
4009           <type name="boolean" c:type="gboolean"/>
4010         </return-value>
4011         <parameters>
4012           <parameter name="result" transfer-ownership="none">
4013             <doc xml:whitespace="preserve">a #GAsyncResult</doc>
4014             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
4015           </parameter>
4016         </parameters>
4017       </method>
4018       <method name="claim_async" c:identifier="tp_channel_dispatch_operation_claim_async" version="0.11.5">
4019         <doc xml:whitespace="preserve">Called by an approver to claim channels for handling internally.
4020 If this method is called successfully, the process calling this
4021 method becomes the handler for the channel.
4022 If successful, this method will cause the #TpProxy::invalidated signal
4023 to be emitted, in the same wayas for
4024 tp_channel_dispatch_operation_handle_with_async().
4025 This method may fail because the dispatch operation has already
4026 been completed. Again, see tp_channel_dispatch_operation_claim_async()
4027 for more details. The approver MUST NOT attempt to interact with
4028 the channels further in this case.</doc>
4029         <return-value transfer-ownership="none">
4030           <type name="none" c:type="void"/>
4031         </return-value>
4032         <parameters>
4033           <parameter name="callback" transfer-ownership="none" scope="async" closure="2">
4034             <doc xml:whitespace="preserve">a callback to call when the call returns</doc>
4035             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
4036           </parameter>
4037           <parameter name="user_data" transfer-ownership="none">
4038             <doc xml:whitespace="preserve">data to pass to @callback</doc>
4039             <type name="any" c:type="gpointer"/>
4040           </parameter>
4041         </parameters>
4042       </method>
4043       <method name="claim_finish" c:identifier="tp_channel_dispatch_operation_claim_finish" version="0.11.5" throws="1">
4044         <doc xml:whitespace="preserve">Finishes an async call to Claim().</doc>
4045         <return-value transfer-ownership="none">
4046           <doc xml:whitespace="preserve">%TRUE if the Claim() call was successful, otherwise %FALSE</doc>
4047           <type name="boolean" c:type="gboolean"/>
4048         </return-value>
4049         <parameters>
4050           <parameter name="result" transfer-ownership="none">
4051             <doc xml:whitespace="preserve">a #GAsyncResult</doc>
4052             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
4053           </parameter>
4054         </parameters>
4055       </method>
4056       <method name="handle_with_time_async" c:identifier="tp_channel_dispatch_operation_handle_with_time_async" version="0.11.7">
4057         <doc xml:whitespace="preserve">A variant of tp_channel_dispatch_operation_handle_with_async()
4058 allowing the approver to pass an user action time.
4059 This timestamp will be passed to the Handler when HandleChannels is called.
4060 If an X server timestamp for the user action causing this method call is
4061 available, @user_action_time should be this timestamp (for instance, the
4062 result of gdk_event_get_time() if it is not %GDK_CURRENT_TIME). Otherwise, it
4063 may be %TP_USER_ACTION_TIME_NOT_USER_ACTION to behave as if there was no
4064 user action or it happened a long time ago, or
4065 %TP_USER_ACTION_TIME_CURRENT_TIME to have the Handler behave as though the
4066 user action had just happened (resembling, but not numerically equal to,
4067 %GDK_CURRENT_TIME).
4068 This method has been introduced in telepathy-mission-control 5.5.0.</doc>
4069         <return-value transfer-ownership="none">
4070           <type name="none" c:type="void"/>
4071         </return-value>
4072         <parameters>
4073           <parameter name="handler" transfer-ownership="none" allow-none="1">
4074             <doc xml:whitespace="preserve">The well-known bus name (starting with #TP_CLIENT_BUS_NAME_BASE) of the channel handler that should handle the channel, or %NULL if the client has no preferred channel handler</doc>
4075             <type name="utf8" c:type="gchar*"/>
4076           </parameter>
4077           <parameter name="user_action_time" transfer-ownership="none">
4078             <doc xml:whitespace="preserve">the time at which user action occurred, or one of the special values %TP_USER_ACTION_TIME_NOT_USER_ACTION or %TP_USER_ACTION_TIME_CURRENT_TIME</doc>
4079             <type name="int64" c:type="gint64"/>
4080           </parameter>
4081           <parameter name="callback" transfer-ownership="none" scope="async" closure="4">
4082             <doc xml:whitespace="preserve">a callback to call when the call returns</doc>
4083             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
4084           </parameter>
4085           <parameter name="user_data" transfer-ownership="none">
4086             <doc xml:whitespace="preserve">data to pass to @callback</doc>
4087             <type name="any" c:type="gpointer"/>
4088           </parameter>
4089         </parameters>
4090       </method>
4091       <method name="handle_with_time_finish" c:identifier="tp_channel_dispatch_operation_handle_with_time_finish" version="0.11.7" throws="1">
4092         <doc xml:whitespace="preserve">Finishes an async call to HandleWithTime().</doc>
4093         <return-value transfer-ownership="none">
4094           <doc xml:whitespace="preserve">%TRUE if the HandleWithTime() call was successful, otherwise %FALSE</doc>
4095           <type name="boolean" c:type="gboolean"/>
4096         </return-value>
4097         <parameters>
4098           <parameter name="result" transfer-ownership="none">
4099             <doc xml:whitespace="preserve">a #GAsyncResult</doc>
4100             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
4101           </parameter>
4102         </parameters>
4103       </method>
4104       <property name="account" version="0.11.5" writable="1" construct-only="1" transfer-ownership="none">
4105         <doc xml:whitespace="preserve">The #TpAccount with which the connection and channels are associated.
4106 Read-only except during construction.
4107 This is not guaranteed to be set until tp_proxy_prepare_async() has
4108 finished preparing %TP_CHANNEL_DISPATCH_OPERATION_FEATURE_CORE.</doc>
4109         <type name="Account" c:type="TpAccount"/>
4110       </property>
4111       <property name="channels" version="0.11.5" writable="1" construct-only="1" transfer-ownership="none">
4112         <doc xml:whitespace="preserve">A #GPtrArray containing the #TpChannel to be dispatched.
4113 Read-only.
4114 This is not guaranteed to be set until tp_proxy_prepare_async() has
4115 finished preparing %TP_CHANNEL_DISPATCH_OPERATION_FEATURE_CORE.</doc>
4116         <type name="GLib.PtrArray" c:type="GPtrArray"/>
4117       </property>
4118       <property name="connection" version="0.11.5" writable="1" construct-only="1" transfer-ownership="none">
4119         <doc xml:whitespace="preserve">The #TpConnection with which the channels are associated.
4120 Read-only except during construction.
4121 This is not guaranteed to be set until tp_proxy_prepare_async() has
4122 finished preparing %TP_CHANNEL_DISPATCH_OPERATION_FEATURE_CORE.</doc>
4123         <type name="Connection" c:type="TpConnection"/>
4124       </property>
4125       <property name="possible-handlers" version="0.11.5" transfer-ownership="none">
4126         <doc xml:whitespace="preserve">A #GStrv containing the well known bus names (starting
4127 with TP_CLIENT_BUS_NAME_BASE) of the possible Handlers for
4128 the channels
4129 Read-only except during construction.
4130 This is not guaranteed to be set until tp_proxy_prepare_async() has
4131 finished preparing %TP_CHANNEL_DISPATCH_OPERATION_FEATURE_CORE.</doc>
4132         <type name="GObject.Strv" c:type="GStrv"/>
4133       </property>
4134       <field name="parent">
4135         <type name="Proxy" c:type="TpProxy"/>
4136       </field>
4137       <field name="priv">
4138         <type name="ChannelDispatchOperationPrivate" c:type="TpChannelDispatchOperationPrivate*"/>
4139       </field>
4140       <glib:signal name="channel-lost" version="0.11.5">
4141         <doc xml:whitespace="preserve">Emitted when a channel has closed before it could be claimed or handled.</doc>
4142         <return-value transfer-ownership="full">
4143           <type name="none" c:type="void"/>
4144         </return-value>
4145         <parameters>
4146           <parameter name="channel" transfer-ownership="none">
4147             <doc xml:whitespace="preserve">the #TpChannel that closed</doc>
4148             <type name="Channel" c:type="TpChannel"/>
4149           </parameter>
4150           <parameter name="domain" transfer-ownership="none">
4151             <doc xml:whitespace="preserve">domain of a #GError indicating why the channel has been closed</doc>
4152             <type name="uint" c:type="guint"/>
4153           </parameter>
4154           <parameter name="code" transfer-ownership="none">
4155             <doc xml:whitespace="preserve">error code of a #GError indicating why the channel has been closed</doc>
4156             <type name="int" c:type="gint"/>
4157           </parameter>
4158           <parameter name="message" transfer-ownership="none">
4159             <doc xml:whitespace="preserve">a message associated with the error</doc>
4160             <type name="utf8" c:type="gchararray"/>
4161           </parameter>
4162         </parameters>
4163       </glib:signal>
4164     </class>
4165     <record name="ChannelDispatchOperationClass" c:type="TpChannelDispatchOperationClass" glib:is-gtype-struct-for="ChannelDispatchOperation">
4166       <doc xml:whitespace="preserve">The class of a #TpChannelDispatchOperation.</doc>
4167       <field name="parent_class">
4168         <type name="ProxyClass" c:type="TpProxyClass"/>
4169       </field>
4170       <field name="_padding">
4171         <array zero-terminated="0" c:type="GCallback" fixed-size="7">
4172           <type name="GObject.Callback"/>
4173         </array>
4174       </field>
4175       <field name="priv">
4176         <type name="ChannelDispatchOperationClassPrivate" c:type="TpChannelDispatchOperationClassPrivate*"/>
4177       </field>
4178     </record>
4179     <record name="ChannelDispatchOperationClassPrivate" c:type="TpChannelDispatchOperationClassPrivate">
4180     </record>
4181     <record name="ChannelDispatchOperationPrivate" c:type="TpChannelDispatchOperationPrivate">
4182     </record>
4183     <enumeration name="ChannelGroupChangeReason" c:type="TpChannelGroupChangeReason">
4184       <member name="none" value="0" c:identifier="TP_CHANNEL_GROUP_CHANGE_REASON_NONE"/>
4185       <member name="offline" value="1" c:identifier="TP_CHANNEL_GROUP_CHANGE_REASON_OFFLINE"/>
4186       <member name="kicked" value="2" c:identifier="TP_CHANNEL_GROUP_CHANGE_REASON_KICKED"/>
4187       <member name="busy" value="3" c:identifier="TP_CHANNEL_GROUP_CHANGE_REASON_BUSY"/>
4188       <member name="invited" value="4" c:identifier="TP_CHANNEL_GROUP_CHANGE_REASON_INVITED"/>
4189       <member name="banned" value="5" c:identifier="TP_CHANNEL_GROUP_CHANGE_REASON_BANNED"/>
4190       <member name="error" value="6" c:identifier="TP_CHANNEL_GROUP_CHANGE_REASON_ERROR"/>
4191       <member name="invalid_contact" value="7" c:identifier="TP_CHANNEL_GROUP_CHANGE_REASON_INVALID_CONTACT"/>
4192       <member name="no_answer" value="8" c:identifier="TP_CHANNEL_GROUP_CHANGE_REASON_NO_ANSWER"/>
4193       <member name="renamed" value="9" c:identifier="TP_CHANNEL_GROUP_CHANGE_REASON_RENAMED"/>
4194       <member name="permission_denied" value="10" c:identifier="TP_CHANNEL_GROUP_CHANGE_REASON_PERMISSION_DENIED"/>
4195       <member name="separated" value="11" c:identifier="TP_CHANNEL_GROUP_CHANGE_REASON_SEPARATED"/>
4196     </enumeration>
4197     <enumeration name="ChannelGroupFlags" c:type="TpChannelGroupFlags">
4198       <member name="can_add" value="1" c:identifier="TP_CHANNEL_GROUP_FLAG_CAN_ADD"/>
4199       <member name="can_remove" value="2" c:identifier="TP_CHANNEL_GROUP_FLAG_CAN_REMOVE"/>
4200       <member name="can_rescind" value="4" c:identifier="TP_CHANNEL_GROUP_FLAG_CAN_RESCIND"/>
4201       <member name="message_add" value="8" c:identifier="TP_CHANNEL_GROUP_FLAG_MESSAGE_ADD"/>
4202       <member name="message_remove" value="16" c:identifier="TP_CHANNEL_GROUP_FLAG_MESSAGE_REMOVE"/>
4203       <member name="message_accept" value="32" c:identifier="TP_CHANNEL_GROUP_FLAG_MESSAGE_ACCEPT"/>
4204       <member name="message_reject" value="64" c:identifier="TP_CHANNEL_GROUP_FLAG_MESSAGE_REJECT"/>
4205       <member name="message_rescind" value="128" c:identifier="TP_CHANNEL_GROUP_FLAG_MESSAGE_RESCIND"/>
4206       <member name="channel_specific_handles" value="256" c:identifier="TP_CHANNEL_GROUP_FLAG_CHANNEL_SPECIFIC_HANDLES"/>
4207       <member name="only_one_group" value="512" c:identifier="TP_CHANNEL_GROUP_FLAG_ONLY_ONE_GROUP"/>
4208       <member name="handle_owners_not_available" value="1024" c:identifier="TP_CHANNEL_GROUP_FLAG_HANDLE_OWNERS_NOT_AVAILABLE"/>
4209       <member name="properties" value="2048" c:identifier="TP_CHANNEL_GROUP_FLAG_PROPERTIES"/>
4210       <member name="members_changed_detailed" value="4096" c:identifier="TP_CHANNEL_GROUP_FLAG_MEMBERS_CHANGED_DETAILED"/>
4211       <member name="message_depart" value="8192" c:identifier="TP_CHANNEL_GROUP_FLAG_MESSAGE_DEPART"/>
4212     </enumeration>
4213     <record name="ChannelManagerIter" c:type="TpChannelManagerIter" version="0.7.15" introspectable="0">
4214       <doc xml:whitespace="preserve">An iterator over the #TpChannelManager objects known to a #TpBaseConnection.
4215 It has no public fields.
4216 Use tp_base_connection_channel_manager_iter_init() to start iteration and
4217 tp_base_connection_channel_manager_iter_next() to continue.</doc>
4218       <field name="self" writable="1">
4219         <type name="BaseConnection" c:type="TpBaseConnection*"/>
4220       </field>
4221       <field name="index" writable="1">
4222         <type name="uint" c:type="guint"/>
4223       </field>
4224       <field name="_future" writable="1">
4225         <array zero-terminated="0" c:type="gpointer" fixed-size="2">
4226           <type name="any"/>
4227         </array>
4228       </field>
4229     </record>
4230     <enumeration name="ChannelMediaCapabilities" c:type="TpChannelMediaCapabilities">
4231       <member name="audio" value="1" c:identifier="TP_CHANNEL_MEDIA_CAPABILITY_AUDIO"/>
4232       <member name="video" value="2" c:identifier="TP_CHANNEL_MEDIA_CAPABILITY_VIDEO"/>
4233       <member name="nat_traversal_stun" value="4" c:identifier="TP_CHANNEL_MEDIA_CAPABILITY_NAT_TRAVERSAL_STUN"/>
4234       <member name="nat_traversal_gtalk_p2p" value="8" c:identifier="TP_CHANNEL_MEDIA_CAPABILITY_NAT_TRAVERSAL_GTALK_P2P"/>
4235       <member name="nat_traversal_ice_udp" value="16" c:identifier="TP_CHANNEL_MEDIA_CAPABILITY_NAT_TRAVERSAL_ICE_UDP"/>
4236       <member name="immutable_streams" value="32" c:identifier="TP_CHANNEL_MEDIA_CAPABILITY_IMMUTABLE_STREAMS"/>
4237     </enumeration>
4238     <enumeration name="ChannelPasswordFlags" c:type="TpChannelPasswordFlags">
4239       <member name="channel_password_flag_provide" value="8" c:identifier="TP_CHANNEL_PASSWORD_FLAG_PROVIDE"/>
4240     </enumeration>
4241     <record name="ChannelPrivate" c:type="TpChannelPrivate">
4242     </record>
4243     <class name="ChannelRequest" c:type="TpChannelRequest" version="0.7.32" parent="Proxy" glib:type-name="TpChannelRequest" glib:get-type="tp_channel_request_get_type" glib:type-struct="ChannelRequestClass">
4244       <doc xml:whitespace="preserve">Requesting a channel from the channel dispatcher can take some time, so an
4245 object is created in the channel dispatcher to represent each request. This
4246 proxy represents one of those objects.
4247 Any client can call tp_cli_channel_request_call_cancel() at any time to
4248 attempt to cancel the request.
4249 On success, the #TpChannelRequest::succeeded signal will be emitted.
4250 Immediately after that, the #TpProxy::invalidated signal will be emitted,
4251 with the domain %TP_DBUS_ERRORS and the error code
4252 %TP_DBUS_ERROR_OBJECT_REMOVED (this is not an error condition, it merely
4253 indicates that the channel request no longer exists).
4254 On failure, the #TpProxy::invalidated signal will be emitted with some
4255 other suitable error, usually from the %TP_ERRORS domain.
4256 If the channel dispatcher crashes or exits, the #TpProxy::invalidated
4257 signal will be emitted with the domain %TP_DBUS_ERRORS and the error code
4258 %TP_DBUS_ERROR_NAME_OWNER_LOST.
4259 UserActionTime, PreferredHandler, Requests and Interfaces properties will
4260 be added in a later version of telepathy-glib, along with a mechanism
4261 similar to tp_connection_call_when_ready().
4262 Until suitable convenience methods are implemented, the generic
4263 tp_cli_dbus_properties_call_get_all() method can be used to get those
4264 properties.</doc>
4265       <constructor name="new" c:identifier="tp_channel_request_new" throws="1">
4266         <doc xml:whitespace="preserve">Convenience function to create a new channel request proxy.
4267 If the channel request was newly created, the client making the request
4268 is responsible for calling tp_cli_channel_request_call_proceed() when it
4269 is ready for the channel request to proceed.
4270 The @immutable_properties argument is not yet used.
4271 not running</doc>
4272         <return-value transfer-ownership="full">
4273           <doc xml:whitespace="preserve">a new reference to an channel request proxy, or %NULL if</doc>
4274           <type name="ChannelRequest" c:type="TpChannelRequest*"/>
4275         </return-value>
4276         <parameters>
4277           <parameter name="bus_daemon" transfer-ownership="none">
4278             <doc xml:whitespace="preserve">Proxy for the D-Bus daemon</doc>
4279             <type name="DBusDaemon" c:type="TpDBusDaemon*"/>
4280           </parameter>
4281           <parameter name="object_path" transfer-ownership="none">
4282             <doc xml:whitespace="preserve">The non-NULL object path of this channel request</doc>
4283             <type name="utf8" c:type="gchar*"/>
4284           </parameter>
4285           <parameter name="immutable_properties" transfer-ownership="none">
4286             <doc xml:whitespace="preserve">As many as are known of the immutable D-Bus properties of this channel request, or %NULL if none are known</doc>
4287             <type name="GLib.HashTable" c:type="GHashTable*"/>
4288           </parameter>
4289         </parameters>
4290       </constructor>
4291       <function name="init_known_interfaces" c:identifier="tp_channel_request_init_known_interfaces" version="0.7.32">
4292         <doc xml:whitespace="preserve">Ensure that the known interfaces for TpChannelRequest have been set up.
4293 This is done automatically when necessary, but for correct
4294 overriding of library interfaces by local extensions, you should
4295 call this function before calling
4296 tp_proxy_or_subclass_hook_on_interface_add() with first argument
4297 %TP_TYPE_CHANNEL_REQUEST.</doc>
4298         <return-value transfer-ownership="none">
4299           <type name="none" c:type="void"/>
4300         </return-value>
4301       </function>
4302       <field name="parent">
4303         <type name="Proxy" c:type="TpProxy"/>
4304       </field>
4305       <field name="priv">
4306         <type name="ChannelRequestPrivate" c:type="TpChannelRequestPrivate*"/>
4307       </field>
4308       <glib:signal name="succeeded">
4309         <doc xml:whitespace="preserve">Emitted when the channel request succeeds.</doc>
4310         <return-value transfer-ownership="full">
4311           <type name="none" c:type="void"/>
4312         </return-value>
4313       </glib:signal>
4314     </class>
4315     <record name="ChannelRequestClass" c:type="TpChannelRequestClass" glib:is-gtype-struct-for="ChannelRequest">
4316       <doc xml:whitespace="preserve">The class of a #TpChannelRequest.</doc>
4317       <field name="parent_class">
4318         <type name="ProxyClass" c:type="TpProxyClass"/>
4319       </field>
4320       <field name="_padding">
4321         <array zero-terminated="0" c:type="GCallback" fixed-size="7">
4322           <type name="GObject.Callback"/>
4323         </array>
4324       </field>
4325       <field name="priv">
4326         <type name="ChannelRequestClassPrivate" c:type="TpChannelRequestClassPrivate*"/>
4327       </field>
4328     </record>
4329     <record name="ChannelRequestClassPrivate" c:type="TpChannelRequestClassPrivate">
4330     </record>
4331     <record name="ChannelRequestPrivate" c:type="TpChannelRequestPrivate">
4332     </record>
4333     <enumeration name="ChannelTextMessageFlags" c:type="TpChannelTextMessageFlags">
4334       <member name="truncated" value="1" c:identifier="TP_CHANNEL_TEXT_MESSAGE_FLAG_TRUNCATED"/>
4335       <member name="non_text_content" value="2" c:identifier="TP_CHANNEL_TEXT_MESSAGE_FLAG_NON_TEXT_CONTENT"/>
4336       <member name="scrollback" value="4" c:identifier="TP_CHANNEL_TEXT_MESSAGE_FLAG_SCROLLBACK"/>
4337       <member name="rescued" value="8" c:identifier="TP_CHANNEL_TEXT_MESSAGE_FLAG_RESCUED"/>
4338     </enumeration>
4339     <enumeration name="ChannelTextMessageType" c:type="TpChannelTextMessageType">
4340       <member name="normal" value="0" c:identifier="TP_CHANNEL_TEXT_MESSAGE_TYPE_NORMAL"/>
4341       <member name="action" value="1" c:identifier="TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION"/>
4342       <member name="notice" value="2" c:identifier="TP_CHANNEL_TEXT_MESSAGE_TYPE_NOTICE"/>
4343       <member name="auto_reply" value="3" c:identifier="TP_CHANNEL_TEXT_MESSAGE_TYPE_AUTO_REPLY"/>
4344       <member name="delivery_report" value="4" c:identifier="TP_CHANNEL_TEXT_MESSAGE_TYPE_DELIVERY_REPORT"/>
4345     </enumeration>
4346     <enumeration name="ChannelTextSendError" c:type="TpChannelTextSendError">
4347       <member name="unknown" value="0" c:identifier="TP_CHANNEL_TEXT_SEND_ERROR_UNKNOWN"/>
4348       <member name="offline" value="1" c:identifier="TP_CHANNEL_TEXT_SEND_ERROR_OFFLINE"/>
4349       <member name="invalid_contact" value="2" c:identifier="TP_CHANNEL_TEXT_SEND_ERROR_INVALID_CONTACT"/>
4350       <member name="permission_denied" value="3" c:identifier="TP_CHANNEL_TEXT_SEND_ERROR_PERMISSION_DENIED"/>
4351       <member name="too_long" value="4" c:identifier="TP_CHANNEL_TEXT_SEND_ERROR_TOO_LONG"/>
4352       <member name="not_implemented" value="5" c:identifier="TP_CHANNEL_TEXT_SEND_ERROR_NOT_IMPLEMENTED"/>
4353     </enumeration>
4354     <callback name="ChannelWhenReadyCb" c:type="TpChannelWhenReadyCb">
4355       <doc xml:whitespace="preserve">Signature of a callback passed to tp_channel_call_when_ready(), which
4356 will be called exactly once, when the channel becomes ready or
4357 invalid (whichever happens first)</doc>
4358       <return-value transfer-ownership="none">
4359         <type name="none" c:type="void"/>
4360       </return-value>
4361       <parameters>
4362         <parameter name="channel" transfer-ownership="none">
4363           <doc xml:whitespace="preserve">the channel (which may be in the middle of being disposed, if error is non-%NULL, error-&gt;domain is TP_DBUS_ERRORS and error-&gt;code is TP_DBUS_ERROR_PROXY_UNREFERENCED)</doc>
4364           <type name="Channel" c:type="TpChannel*"/>
4365         </parameter>
4366         <parameter name="error" transfer-ownership="none">
4367           <doc xml:whitespace="preserve">%NULL if the channel is ready for use, or the error with which it was invalidated if it is now invalid</doc>
4368           <type name="GLib.Error" c:type="GError*"/>
4369         </parameter>
4370         <parameter name="user_data" transfer-ownership="none" closure="2">
4371           <doc xml:whitespace="preserve">whatever was passed to tp_channel_call_when_ready()</doc>
4372           <type name="any" c:type="gpointer"/>
4373         </parameter>
4374       </parameters>
4375     </callback>
4376     <enumeration name="ConnMgrParamFlags" c:type="TpConnMgrParamFlags">
4377       <member name="required" value="1" c:identifier="TP_CONN_MGR_PARAM_FLAG_REQUIRED"/>
4378       <member name="register" value="2" c:identifier="TP_CONN_MGR_PARAM_FLAG_REGISTER"/>
4379       <member name="has_default" value="4" c:identifier="TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT"/>
4380       <member name="secret" value="8" c:identifier="TP_CONN_MGR_PARAM_FLAG_SECRET"/>
4381       <member name="dbus_property" value="16" c:identifier="TP_CONN_MGR_PARAM_FLAG_DBUS_PROPERTY"/>
4382     </enumeration>
4383     <class name="Connection" c:type="TpConnection" version="0.7.1" parent="Proxy" glib:type-name="TpConnection" glib:get-type="tp_connection_get_type" glib:type-struct="ConnectionClass">
4384       <doc xml:whitespace="preserve">A proxy object for a Telepathy connection. There are no interesting
4385 public struct fields.
4386 (Changed in 0.7.12: the layout of the structure is visible, allowing
4387 subclassing.)</doc>
4388       <constructor name="new" c:identifier="tp_connection_new" version="0.7.1" throws="1">
4389         <doc xml:whitespace="preserve">&lt;!-- --&gt;
4390 fails or on invalid arguments</doc>
4391         <return-value transfer-ownership="full">
4392           <doc xml:whitespace="preserve">a new connection proxy, or %NULL if unique-name resolution</doc>
4393           <type name="Connection" c:type="TpConnection*"/>
4394         </return-value>
4395         <parameters>
4396           <parameter name="dbus" transfer-ownership="none">
4397             <doc xml:whitespace="preserve">a D-Bus daemon; may not be %NULL</doc>
4398             <type name="DBusDaemon" c:type="TpDBusDaemon*"/>
4399           </parameter>
4400           <parameter name="bus_name" transfer-ownership="none" allow-none="1">
4401             <doc xml:whitespace="preserve">the well-known or unique name of the connection process; if well-known, this function will make a blocking call to the bus daemon to resolve the unique name. May be %NULL if @object_path is not, in which case a well-known name will be derived from @object_path.</doc>
4402             <type name="utf8" c:type="gchar*"/>
4403           </parameter>
4404           <parameter name="object_path" transfer-ownership="none" allow-none="1">
4405             <doc xml:whitespace="preserve">the object path of the connection process. May be %NULL if @bus_name is a well-known name, in which case the object path will be derived from @bus_name.</doc>
4406             <type name="utf8" c:type="gchar*"/>
4407           </parameter>
4408         </parameters>
4409       </constructor>
4410       <function name="init_known_interfaces" c:identifier="tp_connection_init_known_interfaces" version="0.7.6">
4411         <doc xml:whitespace="preserve">Ensure that the known interfaces for TpConnection have been set up.
4412 This is done automatically when necessary, but for correct
4413 overriding of library interfaces by local extensions, you should
4414 call this function before calling
4415 tp_proxy_or_subclass_hook_on_interface_add() with first argument
4416 %TP_TYPE_CONNECTION.</doc>
4417         <return-value transfer-ownership="none">
4418           <type name="none" c:type="void"/>
4419         </return-value>
4420       </function>
4421       <function name="presence_type_cmp_availability" c:identifier="tp_connection_presence_type_cmp_availability" version="0.7.16">
4422         <doc xml:whitespace="preserve">Compares @p1 and @p2 like strcmp(). @p1 &gt; @p2 means @p1 is more available
4423 than @p2.
4424 unknown &gt; unset</doc>
4425         <return-value transfer-ownership="none">
4426           <doc xml:whitespace="preserve">-1, 0 or 1, if @p1 is &lt;, == or &gt; than @p2.</doc>
4427           <type name="int" c:type="gint"/>
4428         </return-value>
4429         <parameters>
4430           <parameter name="p1" transfer-ownership="none">
4431             <doc xml:whitespace="preserve">a #TpConnectionPresenceType</doc>
4432             <type name="ConnectionPresenceType" c:type="TpConnectionPresenceType"/>
4433           </parameter>
4434           <parameter name="p2" transfer-ownership="none">
4435             <doc xml:whitespace="preserve">a #TpConnectionPresenceType</doc>
4436             <type name="ConnectionPresenceType" c:type="TpConnectionPresenceType"/>
4437           </parameter>
4438         </parameters>
4439       </function>
4440       <function name="get_feature_quark_core" c:identifier="tp_connection_get_feature_quark_core">
4441         <return-value transfer-ownership="full">
4442           <type name="GLib.Quark" c:type="GQuark"/>
4443         </return-value>
4444       </function>
4445       <function name="get_feature_quark_connected" c:identifier="tp_connection_get_feature_quark_connected">
4446         <return-value transfer-ownership="full">
4447           <type name="GLib.Quark" c:type="GQuark"/>
4448         </return-value>
4449       </function>
4450       <function name="get_feature_quark_capabilities" c:identifier="tp_connection_get_feature_quark_capabilities">
4451         <return-value transfer-ownership="full">
4452           <type name="GLib.Quark" c:type="GQuark"/>
4453         </return-value>
4454       </function>
4455       <function name="get_feature_quark_contact_info" c:identifier="tp_connection_get_feature_quark_contact_info">
4456         <return-value transfer-ownership="full">
4457           <type name="GLib.Quark" c:type="GQuark"/>
4458         </return-value>
4459       </function>
4460       <function name="get_feature_quark_avatar_requirements" c:identifier="tp_connection_get_feature_quark_avatar_requirements">
4461         <return-value transfer-ownership="full">
4462           <type name="GLib.Quark" c:type="GQuark"/>
4463         </return-value>
4464       </function>
4465       <method name="get_status" c:identifier="tp_connection_get_status" version="0.7.14">
4466         <doc xml:whitespace="preserve">If @reason is not %NULL it is set to the reason why "status" changed to its
4467 current value, or %TP_CONNECTION_STATUS_REASON_NONE_SPECIFIED if unknown.
4468 don't know yet.</doc>
4469         <return-value transfer-ownership="full">
4470           <doc xml:whitespace="preserve">This connection's status, or %TP_UNKNOWN_CONNECTION_STATUS if we</doc>
4471           <type name="ConnectionStatus" c:type="TpConnectionStatus"/>
4472         </return-value>
4473         <parameters>
4474           <parameter name="reason" direction="out" caller-allocates="1" transfer-ownership="none">
4475             <doc xml:whitespace="preserve">a TpConnectionStatusReason, or %NULL</doc>
4476             <type name="ConnectionStatusReason" c:type="TpConnectionStatusReason*"/>
4477           </parameter>
4478         </parameters>
4479       </method>
4480       <method name="get_self_handle" c:identifier="tp_connection_get_self_handle" version="0.7.26">
4481         <doc xml:whitespace="preserve">Return the %TP_HANDLE_TYPE_CONTACT handle of the local user on this
4482 connection, or 0 if the self-handle is not known yet or the connection
4483 has become invalid (the TpProxy::invalidated signal).
4484 The returned handle is not necessarily valid forever (the
4485 notify::self-handle signal will be emitted if it changes, which can happen
4486 on protocols such as IRC). Construct a #TpContact object if you want to
4487 track the local user's identifier in the protocol, or other information
4488 like their presence status, over time.</doc>
4489         <return-value transfer-ownership="full">
4490           <doc xml:whitespace="preserve">the value of the TpConnection:self-handle property</doc>
4491           <type name="Handle" c:type="TpHandle"/>
4492         </return-value>
4493       </method>
4494       <method name="get_capabilities" c:identifier="tp_connection_get_capabilities" version="0.11.3">
4495         <doc xml:whitespace="preserve">&lt;!-- --&gt;
4496 #TpConnection:capabilities property</doc>
4497         <return-value transfer-ownership="none">
4498           <doc xml:whitespace="preserve">the same #TpCapabilities as the</doc>
4499           <type name="Capabilities" c:type="TpCapabilities*"/>
4500         </return-value>
4501       </method>
4502       <method name="get_contact_info_flags" c:identifier="tp_connection_get_contact_info_flags">
4503         <return-value transfer-ownership="full">
4504           <type name="ContactInfoFlags" c:type="TpContactInfoFlags"/>
4505         </return-value>
4506       </method>
4507       <method name="get_contact_info_supported_fields" c:identifier="tp_connection_get_contact_info_supported_fields" introspectable="0">
4508         <return-value transfer-ownership="full">
4509           <type name="GLib.List" c:type="GList*">
4510             <type name="any" c:type="gpointer"/>
4511           </type>
4512         </return-value>
4513       </method>
4514       <method name="set_contact_info_async" c:identifier="tp_connection_set_contact_info_async" introspectable="0">
4515         <return-value transfer-ownership="none">
4516           <type name="none" c:type="void"/>
4517         </return-value>
4518         <parameters>
4519           <parameter name="info" transfer-ownership="none">
4520             <type name="GLib.List" c:type="GList*">
4521               <type name="any" c:type="gpointer"/>
4522             </type>
4523           </parameter>
4524           <parameter name="callback" transfer-ownership="none" scope="async" closure="3">
4525             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
4526           </parameter>
4527           <parameter name="user_data" transfer-ownership="none">
4528             <type name="any" c:type="gpointer"/>
4529           </parameter>
4530         </parameters>
4531       </method>
4532       <method name="set_contact_info_finish" c:identifier="tp_connection_set_contact_info_finish" throws="1">
4533         <return-value transfer-ownership="none">
4534           <type name="boolean" c:type="gboolean"/>
4535         </return-value>
4536         <parameters>
4537           <parameter name="result" transfer-ownership="none">
4538             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
4539           </parameter>
4540         </parameters>
4541       </method>
4542       <method name="is_ready" c:identifier="tp_connection_is_ready" version="0.7.17" introspectable="0">
4543         <doc xml:whitespace="preserve">Returns the same thing as the #TpConnection:connection-ready property.</doc>
4544         <return-value transfer-ownership="none">
4545           <doc xml:whitespace="preserve">%TRUE if introspection has completed</doc>
4546           <type name="boolean" c:type="gboolean"/>
4547         </return-value>
4548       </method>
4549       <method name="run_until_ready" c:identifier="tp_connection_run_until_ready" version="0.7.1" introspectable="0" deprecated="Use tp_connection_call_when_ready," deprecated-version="0.11.0">
4550         <doc xml:whitespace="preserve">If @self is connected and ready for use, return immediately. Otherwise,
4551 call Connect() (unless @connect is %FALSE) and re-enter the main loop
4552 until the connection becomes invalid, the connection connects successfully
4553 and is introspected, or the main loop stored via @loop is cancelled.
4554 %FALSE if the connection has become invalid.
4555 or restructure your program in such a way as to avoid re-entering the
4556 main loop.</doc>
4557         <return-value transfer-ownership="none">
4558           <doc xml:whitespace="preserve">%TRUE if the connection is now connected and ready for use,</doc>
4559           <type name="boolean" c:type="gboolean"/>
4560         </return-value>
4561         <parameters>
4562           <parameter name="connect" transfer-ownership="none">
4563             <doc xml:whitespace="preserve">if %TRUE, call Connect() if it appears to be necessary; if %FALSE, rely on Connect() to be called by another client</doc>
4564             <type name="boolean" c:type="gboolean"/>
4565           </parameter>
4566           <parameter name="error" transfer-ownership="none">
4567             <doc xml:whitespace="preserve">if not %NULL and %FALSE is returned, used to raise an error</doc>
4568             <type name="GLib.Error" c:type="GError**"/>
4569           </parameter>
4570           <parameter name="loop" transfer-ownership="none">
4571             <doc xml:whitespace="preserve">if not %NULL, a #GMainLoop is placed here while it is being run (so calling code can call g_main_loop_quit() to abort), and %NULL is placed here after the loop has been run</doc>
4572             <type name="GLib.MainLoop" c:type="GMainLoop**"/>
4573           </parameter>
4574         </parameters>
4575       </method>
4576       <method name="call_when_ready" c:identifier="tp_connection_call_when_ready" version="0.7.7" introspectable="0">
4577         <doc xml:whitespace="preserve">If @self is ready for use or has been invalidated, call @callback
4578 immediately, then return. Otherwise, arrange
4579 for @callback to be called when @self either becomes ready for use
4580 or becomes invalid.
4581 Note that if the connection is not in state CONNECTED, the callback will
4582 not be called until the connection either goes to state CONNECTED
4583 or is invalidated (e.g. by going to state DISCONNECTED or by becoming
4584 unreferenced). In particular, this method does not call Connect().
4585 Call tp_cli_connection_call_connect() too, if you want to do that.</doc>
4586         <return-value transfer-ownership="none">
4587           <type name="none" c:type="void"/>
4588         </return-value>
4589         <parameters>
4590           <parameter name="callback" transfer-ownership="none" scope="call" closure="2">
4591             <doc xml:whitespace="preserve">called when the connection becomes ready or invalidated, whichever happens first</doc>
4592             <type name="ConnectionWhenReadyCb" c:type="TpConnectionWhenReadyCb"/>
4593           </parameter>
4594           <parameter name="user_data" transfer-ownership="none">
4595             <doc xml:whitespace="preserve">arbitrary user-supplied data passed to the callback</doc>
4596             <type name="any" c:type="gpointer"/>
4597           </parameter>
4598         </parameters>
4599       </method>
4600       <method name="parse_object_path" c:identifier="tp_connection_parse_object_path" version="0.7.27">
4601         <doc xml:whitespace="preserve">If the object path of @connection is in the correct form, set
4602 return FALSE.</doc>
4603         <return-value transfer-ownership="none">
4604           <doc xml:whitespace="preserve">TRUE if the object path was correctly parsed, FALSE otherwise.</doc>
4605           <type name="boolean" c:type="gboolean"/>
4606         </return-value>
4607         <parameters>
4608           <parameter name="protocol" direction="out" caller-allocates="0" transfer-ownership="full">
4609             <doc xml:whitespace="preserve">If not NULL, used to return the protocol of the connection</doc>
4610             <type name="utf8" c:type="gchar**"/>
4611           </parameter>
4612           <parameter name="cm_name" direction="out" caller-allocates="0" transfer-ownership="full">
4613             <doc xml:whitespace="preserve">If not NULL, used to return the connection manager name of the connection</doc>
4614             <type name="utf8" c:type="gchar**"/>
4615           </parameter>
4616         </parameters>
4617       </method>
4618       <method name="get_detailed_error" c:identifier="tp_connection_get_detailed_error" version="0.11.4">
4619         <doc xml:whitespace="preserve">If the connection has disconnected, return the D-Bus error name with which
4620 it disconnected (in particular, this is %TP_ERROR_STR_CANCELLED if it was
4621 disconnected by a user request).
4622 Otherwise, return %NULL, without altering @details.</doc>
4623         <return-value transfer-ownership="none">
4624           <doc xml:whitespace="preserve">a D-Bus error name, or %NULL.</doc>
4625           <type name="utf8" c:type="gchar*"/>
4626         </return-value>
4627         <parameters>
4628           <parameter name="details" direction="out" caller-allocates="0" transfer-ownership="none" allow-none="1">
4629             <doc xml:whitespace="preserve">optionally used to return a map from string to #GValue, which must not be modified or destroyed by the caller</doc>
4630             <type name="GLib.HashTable" c:type="GHashTable**">
4631               <type name="utf8"/>
4632               <type name="GObject.Value"/>
4633             </type>
4634           </parameter>
4635         </parameters>
4636       </method>
4637       <method name="hold_handles" c:identifier="tp_connection_hold_handles">
4638         <doc xml:whitespace="preserve">Hold (ensure a reference to) the given handles, if they are valid.
4639 If they are valid, the callback will later be called with the given
4640 handles; if not all of them are valid, the callback will be called with
4641 an error.
4642 This function, along with tp_connection_unref_handles(),
4643 tp_connection_get_contact_attributes() and #TpContact, keeps a client-side
4644 reference count of handles; you should not use the RequestHandles,
4645 HoldHandles and GetContactAttributes D-Bus methods directly as well as these
4646 functions.</doc>
4647         <return-value transfer-ownership="none">
4648           <type name="none" c:type="void"/>
4649         </return-value>
4650         <parameters>
4651           <parameter name="timeout_ms" transfer-ownership="none">
4652             <doc xml:whitespace="preserve">the timeout in milliseconds, or -1 to use the default</doc>
4653             <type name="int" c:type="gint"/>
4654           </parameter>
4655           <parameter name="handle_type" transfer-ownership="none">
4656             <doc xml:whitespace="preserve">the handle type</doc>
4657             <type name="HandleType" c:type="TpHandleType"/>
4658           </parameter>
4659           <parameter name="n_handles" transfer-ownership="none">
4660             <doc xml:whitespace="preserve">the number of handles in @handles (must be at least 1)</doc>
4661             <type name="uint" c:type="guint"/>
4662           </parameter>
4663           <parameter name="handles" transfer-ownership="none">
4664             <doc xml:whitespace="preserve">an array of handles</doc>
4665             <array length="3" c:type="TpHandle*">
4666               <type name="Handle"/>
4667             </array>
4668           </parameter>
4669           <parameter name="callback" transfer-ownership="none" scope="notified" closure="6" destroy="7">
4670             <doc xml:whitespace="preserve">called on success or failure (unless @weak_object has become unreferenced)</doc>
4671             <type name="ConnectionHoldHandlesCb" c:type="TpConnectionHoldHandlesCb"/>
4672           </parameter>
4673           <parameter name="user_data" transfer-ownership="none">
4674             <doc xml:whitespace="preserve">arbitrary user-supplied data</doc>
4675             <type name="any" c:type="gpointer"/>
4676           </parameter>
4677           <parameter name="destroy" transfer-ownership="none" scope="call">
4678             <doc xml:whitespace="preserve">called to destroy @user_data after calling @callback, or when</doc>
4679             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
4680           </parameter>
4681           <parameter name="weak_object" transfer-ownership="none">
4682             <doc xml:whitespace="preserve">if not %NULL, an object to be weakly referenced: if it is destroyed, @callback will not be called</doc>
4683             <type name="GObject.Object" c:type="GObject*"/>
4684           </parameter>
4685         </parameters>
4686       </method>
4687       <method name="request_handles" c:identifier="tp_connection_request_handles">
4688         <doc xml:whitespace="preserve">Request the handles corresponding to the given identifiers, and if they
4689 are valid, hold (ensure a reference to) the corresponding handles.
4690 If they are valid, the callback will later be called with the given
4691 handles; if not all of them are valid, the callback will be called with
4692 an error.</doc>
4693         <return-value transfer-ownership="none">
4694           <type name="none" c:type="void"/>
4695         </return-value>
4696         <parameters>
4697           <parameter name="timeout_ms" transfer-ownership="none">
4698             <doc xml:whitespace="preserve">the timeout in milliseconds, or -1 to use the default</doc>
4699             <type name="int" c:type="gint"/>
4700           </parameter>
4701           <parameter name="handle_type" transfer-ownership="none">
4702             <doc xml:whitespace="preserve">the handle type</doc>
4703             <type name="HandleType" c:type="TpHandleType"/>
4704           </parameter>
4705           <parameter name="ids" transfer-ownership="none">
4706             <doc xml:whitespace="preserve">an array of string identifiers for which handles are required, terminated by %NULL (must not be %NULL or empty)</doc>
4707             <array c:type="gchar**">
4708               <type name="utf8"/>
4709             </array>
4710           </parameter>
4711           <parameter name="callback" transfer-ownership="none" scope="notified" closure="5" destroy="6">
4712             <doc xml:whitespace="preserve">called on success or failure (unless @weak_object has become unreferenced)</doc>
4713             <type name="ConnectionRequestHandlesCb" c:type="TpConnectionRequestHandlesCb"/>
4714           </parameter>
4715           <parameter name="user_data" transfer-ownership="none">
4716             <doc xml:whitespace="preserve">arbitrary user-supplied data</doc>
4717             <type name="any" c:type="gpointer"/>
4718           </parameter>
4719           <parameter name="destroy" transfer-ownership="none" scope="call">
4720             <doc xml:whitespace="preserve">called to destroy @user_data after calling @callback, or when</doc>
4721             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
4722           </parameter>
4723           <parameter name="weak_object" transfer-ownership="none">
4724             <doc xml:whitespace="preserve">if not %NULL, an object to be weakly referenced: if it is destroyed, @callback will not be called</doc>
4725             <type name="GObject.Object" c:type="GObject*"/>
4726           </parameter>
4727         </parameters>
4728       </method>
4729       <method name="unref_handles" c:identifier="tp_connection_unref_handles">
4730         <doc xml:whitespace="preserve">Release the reference to the handles in @handles that was obtained by
4731 calling tp_connection_hold_handles() or tp_connection_request_handles().
4732 This function might release any references held by calling
4733 tp_cli_connection_call_request_handles(),
4734 tp_cli_connection_run_request_handles(),
4735 tp_cli_connection_call_hold_handles(),
4736 tp_cli_connection_run_hold_handles(),
4737 tp_cli_connection_interface_contacts_call_get_contact_attributes() or
4738 tp_cli_connection_interface_contacts_run_get_contact_attributes() directly.
4739 Those functions should be avoided in favour of using #TpContact,
4740 tp_connection_hold_handles(), tp_connection_request_handles() and
4741 tp_connection_get_contact_attributes(), which along with this function
4742 perform client-side reference counting of handles.
4743 If @self has already become invalid, this function does nothing.</doc>
4744         <return-value transfer-ownership="none">
4745           <type name="none" c:type="void"/>
4746         </return-value>
4747         <parameters>
4748           <parameter name="handle_type" transfer-ownership="none">
4749             <doc xml:whitespace="preserve">a handle type</doc>
4750             <type name="HandleType" c:type="TpHandleType"/>
4751           </parameter>
4752           <parameter name="n_handles" transfer-ownership="none">
4753             <doc xml:whitespace="preserve">the number of handles in @handles</doc>
4754             <type name="uint" c:type="guint"/>
4755           </parameter>
4756           <parameter name="handles" transfer-ownership="none">
4757             <doc xml:whitespace="preserve">an array of @n_handles handles</doc>
4758             <array length="2" c:type="TpHandle*">
4759               <type name="Handle"/>
4760             </array>
4761           </parameter>
4762         </parameters>
4763       </method>
4764       <method name="get_avatar_requirements" c:identifier="tp_connection_get_avatar_requirements">
4765         <return-value transfer-ownership="full">
4766           <type name="AvatarRequirements" c:type="TpAvatarRequirements*"/>
4767         </return-value>
4768       </method>
4769       <method name="get_contact_attributes" c:identifier="tp_connection_get_contact_attributes">
4770         <doc xml:whitespace="preserve">Return (via a callback) any number of attributes of the given handles, and
4771 if they are valid and @hold is TRUE, hold a reference to them.
4772 This is a thin wrapper around the GetContactAttributes D-Bus method, and
4773 should be used in preference to
4774 tp_cli_connection_interface_contacts_call_get_contact_attributes(); mixing this
4775 function, tp_connection_hold_handles(), tp_connection_unref_handles(), and
4776 #TpContact with direct use of the RequestHandles, HoldHandles and
4777 GetContactAttributes D-Bus methods is unwise, as #TpConnection and
4778 #TpContact perform client-side reference counting of handles.
4779 The #TpContact API provides a higher-level abstraction which should
4780 usually be used instead.
4781 handles that were valid. Invalid handles are simply omitted from the
4782 parameter to the callback.
4783 If @hold is %TRUE, the @callback is given one reference to each handle
4784 that appears as a key in the callback's @attributes parameter.</doc>
4785         <return-value transfer-ownership="none">
4786           <type name="none" c:type="void"/>
4787         </return-value>
4788         <parameters>
4789           <parameter name="timeout_ms" transfer-ownership="none">
4790             <doc xml:whitespace="preserve">the timeout in milliseconds, or -1 to use the default</doc>
4791             <type name="int" c:type="gint"/>
4792           </parameter>
4793           <parameter name="n_handles" transfer-ownership="none">
4794             <doc xml:whitespace="preserve">the number of handles in @handles (must be at least 1)</doc>
4795             <type name="uint" c:type="guint"/>
4796           </parameter>
4797           <parameter name="handles" transfer-ownership="none">
4798             <doc xml:whitespace="preserve">an array of handles</doc>
4799             <array length="2" c:type="TpHandle*">
4800               <type name="Handle"/>
4801             </array>
4802           </parameter>
4803           <parameter name="interfaces" transfer-ownership="none">
4804             <doc xml:whitespace="preserve">a #GStrv of interfaces</doc>
4805             <array c:type="gchar**">
4806               <type name="utf8"/>
4807             </array>
4808           </parameter>
4809           <parameter name="hold" transfer-ownership="none">
4810             <doc xml:whitespace="preserve">if %TRUE, the callback will hold one reference to each valid handle</doc>
4811             <type name="boolean" c:type="gboolean"/>
4812           </parameter>
4813           <parameter name="callback" transfer-ownership="none">
4814             <doc xml:whitespace="preserve">called on success or failure (unless @weak_object has become unreferenced)</doc>
4815             <type name="GObject.Callback" c:type="tp_cli_connection_interface_contacts_callback_for_get_contact_attributes"/>
4816           </parameter>
4817           <parameter name="user_data" transfer-ownership="none">
4818             <doc xml:whitespace="preserve">arbitrary user-supplied data</doc>
4819             <type name="any" c:type="gpointer"/>
4820           </parameter>
4821           <parameter name="destroy" transfer-ownership="none" scope="call">
4822             <doc xml:whitespace="preserve">called to destroy @user_data after calling @callback, or when</doc>
4823             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
4824           </parameter>
4825           <parameter name="weak_object" transfer-ownership="none">
4826             <doc xml:whitespace="preserve">if not %NULL, an object to be weakly referenced: if it is destroyed, @callback will not be called</doc>
4827             <type name="GObject.Object" c:type="GObject*"/>
4828           </parameter>
4829         </parameters>
4830       </method>
4831       <method name="refresh_contact_info" c:identifier="tp_connection_refresh_contact_info" version="0.11.7">
4832         <doc xml:whitespace="preserve">Requests to refresh the #TpContact:contact-info property on each contact from
4833 cached locally. "notify::contact-info" will be emitted when the contact's
4834 information are updated.
4835 If %TP_CONTACT_FEATURE_CONTACT_INFO is not yet set on a contact, it will be
4836 set before its property gets updated.</doc>
4837         <return-value transfer-ownership="none">
4838           <type name="none" c:type="void"/>
4839         </return-value>
4840         <parameters>
4841           <parameter name="n_contacts" transfer-ownership="none">
4842             <doc xml:whitespace="preserve">The number of contacts in @contacts (must be at least 1)</doc>
4843             <type name="uint" c:type="guint"/>
4844           </parameter>
4845           <parameter name="contacts" transfer-ownership="none">
4846             <doc xml:whitespace="preserve">An array of #TpContact objects associated with @self</doc>
4847             <array length="1" c:type="TpContact**">
4848               <type name="Contact"/>
4849             </array>
4850           </parameter>
4851         </parameters>
4852       </method>
4853       <method name="get_contacts_by_handle" c:identifier="tp_connection_get_contacts_by_handle" version="0.7.18">
4854         <doc xml:whitespace="preserve">Create a number of #TpContact objects and make asynchronous method calls
4855 to hold their handles and ensure that all the features specified in
4856 It is not an error to put features in @features even if the connection
4857 manager doesn't support them - users of this method should have a static
4858 list of features they would like to use if possible, and use it for all
4859 connection managers.</doc>
4860         <return-value transfer-ownership="none">
4861           <type name="none" c:type="void"/>
4862         </return-value>
4863         <parameters>
4864           <parameter name="n_handles" transfer-ownership="none">
4865             <doc xml:whitespace="preserve">The number of handles in @handles (must be at least 1)</doc>
4866             <type name="uint" c:type="guint"/>
4867           </parameter>
4868           <parameter name="handles" transfer-ownership="none">
4869             <doc xml:whitespace="preserve">An array of handles of type %TP_HANDLE_TYPE_CONTACT representing the desired contacts</doc>
4870             <array length="1" c:type="TpHandle*">
4871               <type name="uint"/>
4872             </array>
4873           </parameter>
4874           <parameter name="n_features" transfer-ownership="none">
4875             <doc xml:whitespace="preserve">The number of features in @features (may be 0)</doc>
4876             <type name="uint" c:type="guint"/>
4877           </parameter>
4878           <parameter name="features" transfer-ownership="none" allow-none="1">
4879             <doc xml:whitespace="preserve">An array of features that must be ready for use (if supported) before the callback is called (may be %NULL if @n_features is 0)</doc>
4880             <array length="3" c:type="TpContactFeature*">
4881               <type name="uint"/>
4882             </array>
4883           </parameter>
4884           <parameter name="callback" transfer-ownership="none" scope="notified" closure="6" destroy="7">
4885             <doc xml:whitespace="preserve">A user callback to call when the contacts are ready</doc>
4886             <type name="ConnectionContactsByHandleCb" c:type="TpConnectionContactsByHandleCb"/>
4887           </parameter>
4888           <parameter name="user_data" transfer-ownership="none">
4889             <doc xml:whitespace="preserve">Data to pass to the callback</doc>
4890             <type name="any" c:type="gpointer"/>
4891           </parameter>
4892           <parameter name="destroy" transfer-ownership="none" scope="call">
4893             <doc xml:whitespace="preserve">Called to destroy @user_data either after @callback has been called, or if the operation is cancelled</doc>
4894             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
4895           </parameter>
4896           <parameter name="weak_object" transfer-ownership="none" allow-none="1">
4897             <doc xml:whitespace="preserve">An object to pass to the callback, which will be weakly referenced; if this object is destroyed, the operation will be cancelled</doc>
4898             <type name="GObject.Object" c:type="GObject*"/>
4899           </parameter>
4900         </parameters>
4901       </method>
4902       <method name="upgrade_contacts" c:identifier="tp_connection_upgrade_contacts" version="0.7.18">
4903         <doc xml:whitespace="preserve">Given several #TpContact objects, make asynchronous method calls
4904 ensure that all the features specified in @features are ready for use
4905 (if they are supported at all).
4906 It is not an error to put features in @features even if the connection
4907 manager doesn't support them - users of this method should have a static
4908 list of features they would like to use if possible, and use it for all
4909 connection managers.</doc>
4910         <return-value transfer-ownership="none">
4911           <type name="none" c:type="void"/>
4912         </return-value>
4913         <parameters>
4914           <parameter name="n_contacts" transfer-ownership="none">
4915             <doc xml:whitespace="preserve">The number of contacts in @contacts (must be at least 1)</doc>
4916             <type name="uint" c:type="guint"/>
4917           </parameter>
4918           <parameter name="contacts" transfer-ownership="none">
4919             <doc xml:whitespace="preserve">An array of #TpContact objects associated with @self</doc>
4920             <array length="1" c:type="TpContact**">
4921               <type name="Contact"/>
4922             </array>
4923           </parameter>
4924           <parameter name="n_features" transfer-ownership="none">
4925             <doc xml:whitespace="preserve">The number of features in @features (must be at least 1)</doc>
4926             <type name="uint" c:type="guint"/>
4927           </parameter>
4928           <parameter name="features" transfer-ownership="none">
4929             <doc xml:whitespace="preserve">An array of features that must be ready for use (if supported) before the callback is called</doc>
4930             <array length="3" c:type="TpContactFeature*">
4931               <type name="ContactFeature"/>
4932             </array>
4933           </parameter>
4934           <parameter name="callback" transfer-ownership="none" scope="notified" closure="6" destroy="7">
4935             <doc xml:whitespace="preserve">A user callback to call when the contacts are ready</doc>
4936             <type name="ConnectionUpgradeContactsCb" c:type="TpConnectionUpgradeContactsCb"/>
4937           </parameter>
4938           <parameter name="user_data" transfer-ownership="none">
4939             <doc xml:whitespace="preserve">Data to pass to the callback</doc>
4940             <type name="any" c:type="gpointer"/>
4941           </parameter>
4942           <parameter name="destroy" transfer-ownership="none" scope="call">
4943             <doc xml:whitespace="preserve">Called to destroy @user_data either after @callback has been called, or if the operation is cancelled</doc>
4944             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
4945           </parameter>
4946           <parameter name="weak_object" transfer-ownership="none" allow-none="1">
4947             <doc xml:whitespace="preserve">An object to pass to the callback, which will be weakly referenced; if this object is destroyed, the operation will be cancelled</doc>
4948             <type name="GObject.Object" c:type="GObject*"/>
4949           </parameter>
4950         </parameters>
4951       </method>
4952       <method name="get_contacts_by_id" c:identifier="tp_connection_get_contacts_by_id" version="0.7.18">
4953         <doc xml:whitespace="preserve">Create a number of #TpContact objects and make asynchronous method calls
4954 to obtain their handles and ensure that all the features specified in
4955 It is not an error to put features in @features even if the connection
4956 manager doesn't support them - users of this method should have a static
4957 list of features they would like to use if possible, and use it for all
4958 connection managers.</doc>
4959         <return-value transfer-ownership="none">
4960           <type name="none" c:type="void"/>
4961         </return-value>
4962         <parameters>
4963           <parameter name="n_ids" transfer-ownership="none">
4964             <doc xml:whitespace="preserve">The number of IDs in @ids (must be at least 1)</doc>
4965             <type name="uint" c:type="guint"/>
4966           </parameter>
4967           <parameter name="ids" transfer-ownership="none">
4968             <doc xml:whitespace="preserve">An array of strings representing the desired contacts by their identifiers in the IM protocol (XMPP JIDs, SIP URIs, MSN Passports, AOL screen-names etc.)</doc>
4969             <array length="1" c:type="gchar**">
4970               <type name="int8"/>
4971             </array>
4972           </parameter>
4973           <parameter name="n_features" transfer-ownership="none">
4974             <doc xml:whitespace="preserve">The number of features in @features (may be 0)</doc>
4975             <type name="uint" c:type="guint"/>
4976           </parameter>
4977           <parameter name="features" transfer-ownership="none" allow-none="1">
4978             <doc xml:whitespace="preserve">An array of features that must be ready for use (if supported) before the callback is called (may be %NULL if @n_features is 0)</doc>
4979             <array length="3" c:type="TpContactFeature*">
4980               <type name="ContactFeature"/>
4981             </array>
4982           </parameter>
4983           <parameter name="callback" transfer-ownership="none" scope="notified" closure="6" destroy="7">
4984             <doc xml:whitespace="preserve">A user callback to call when the contacts are ready</doc>
4985             <type name="ConnectionContactsByIdCb" c:type="TpConnectionContactsByIdCb"/>
4986           </parameter>
4987           <parameter name="user_data" transfer-ownership="none">
4988             <doc xml:whitespace="preserve">Data to pass to the callback</doc>
4989             <type name="any" c:type="gpointer"/>
4990           </parameter>
4991           <parameter name="destroy" transfer-ownership="none" scope="call">
4992             <doc xml:whitespace="preserve">Called to destroy @user_data either after @callback has been called, or if the operation is cancelled</doc>
4993             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
4994           </parameter>
4995           <parameter name="weak_object" transfer-ownership="none" allow-none="1">
4996             <doc xml:whitespace="preserve">An object to pass to the callback, which will be weakly referenced; if this object is destroyed, the operation will be cancelled</doc>
4997             <type name="GObject.Object" c:type="GObject*"/>
4998           </parameter>
4999         </parameters>
5000       </method>
5001       <property name="capabilities" transfer-ownership="none">
5002         <doc xml:whitespace="preserve">The %TpCapabilities object representing the capabilities of this
5003 connection, or NULL if we don't know yet.
5004 To wait for valid capability information, call tp_proxy_prepare_async()
5005 with the feature %TP_CONNECTION_FEATURE_CAPABILITIES.</doc>
5006         <type name="Capabilities" c:type="TpCapabilities"/>
5007       </property>
5008       <property name="connection-ready" transfer-ownership="none">
5009         <doc xml:whitespace="preserve">Initially %FALSE; changes to %TRUE when the connection has gone to
5010 CONNECTED status, introspection has finished and it's ready for use.
5011 By the time this property becomes %TRUE, any extra interfaces will
5012 have been set up and the #TpProxy:interfaces property will have been
5013 populated.
5014 This is similar to %TP_CONNECTION_FEATURE_CONNECTED, except that once
5015 it has changed to %TRUE, it remains %TRUE even if the connection has
5016 been invalidated.</doc>
5017         <type name="boolean" c:type="gboolean"/>
5018       </property>
5019       <property name="self-handle" transfer-ownership="none">
5020         <doc xml:whitespace="preserve">The %TP_HANDLE_TYPE_CONTACT handle of the local user on this connection,
5021 or 0 if we don't know yet or if the connection has become invalid.
5022 To wait for a valid self-handle (and other properties), call
5023 tp_proxy_prepare_async() with the feature
5024 %TP_CONNECTION_FEATURE_CONNECTED.</doc>
5025         <type name="uint" c:type="guint"/>
5026       </property>
5027       <property name="status" transfer-ownership="none">
5028         <doc xml:whitespace="preserve">This connection's status, or %TP_UNKNOWN_CONNECTION_STATUS if we don't
5029 know yet.
5030 To wait for a valid status (and other properties), call
5031 tp_proxy_prepare_async() with the feature %TP_CONNECTION_FEATURE_CORE.
5032 Since version 0.11.3, the change to status
5033 %TP_CONNECTION_STATUS_CONNECTED is delayed slightly, until introspection
5034 of the connection has finished.</doc>
5035         <type name="uint" c:type="guint"/>
5036       </property>
5037       <property name="status-reason" transfer-ownership="none">
5038         <doc xml:whitespace="preserve">To wait for a valid status (and other properties), call
5039 tp_proxy_prepare_async() with the feature %TP_CONNECTION_FEATURE_CORE.
5040 The reason why #TpConnection:status changed to its current value,
5041 or TP_CONNECTION_STATUS_REASON_NONE_SPECIFIED if unknown.
5042 know yet.</doc>
5043         <type name="uint" c:type="guint"/>
5044       </property>
5045       <field name="parent">
5046         <type name="Proxy" c:type="TpProxy"/>
5047       </field>
5048       <field name="priv">
5049         <type name="ConnectionPrivate" c:type="TpConnectionPrivate*"/>
5050       </field>
5051     </class>
5052     <enumeration name="ConnectionAliasFlags" c:type="TpConnectionAliasFlags">
5053       <member name="connection_alias_flag_user_set" value="1" c:identifier="TP_CONNECTION_ALIAS_FLAG_USER_SET"/>
5054     </enumeration>
5055     <enumeration name="ConnectionCapabilityFlags" c:type="TpConnectionCapabilityFlags">
5056       <member name="create" value="1" c:identifier="TP_CONNECTION_CAPABILITY_FLAG_CREATE"/>
5057       <member name="invite" value="2" c:identifier="TP_CONNECTION_CAPABILITY_FLAG_INVITE"/>
5058     </enumeration>
5059     <record name="ConnectionClass" c:type="TpConnectionClass" glib:is-gtype-struct-for="Connection" version="0.7.1">
5060       <doc xml:whitespace="preserve">The class of a #TpConnection. In addition to @parent_class there are four
5061 pointers reserved for possible future use.
5062 (Changed in 0.7.12: the layout of the structure is visible, allowing
5063 subclassing.)</doc>
5064       <field name="parent_class">
5065         <type name="ProxyClass" c:type="TpProxyClass"/>
5066       </field>
5067       <field name="_1">
5068         <type name="GObject.Callback" c:type="GCallback"/>
5069       </field>
5070       <field name="_2">
5071         <type name="GObject.Callback" c:type="GCallback"/>
5072       </field>
5073       <field name="_3">
5074         <type name="GObject.Callback" c:type="GCallback"/>
5075       </field>
5076       <field name="_4">
5077         <type name="GObject.Callback" c:type="GCallback"/>
5078       </field>
5079     </record>
5080     <callback name="ConnectionContactsByHandleCb" c:type="TpConnectionContactsByHandleCb" version="0.7.18">
5081       <doc xml:whitespace="preserve">Signature of a callback used to receive the result of
5082 tp_connection_get_contacts_by_handle().
5083 If an unrecoverable error occurs (for instance, if @connection
5084 becomes disconnected) the whole operation fails, and no contacts or
5085 invalid handles are returned.
5086 If some or even all of the @handles passed to
5087 tp_connection_get_contacts_by_handle() were not valid, this is not
5088 considered to be a failure. @error will be %NULL in this situation,
5089 valid (possibly none of them), and @invalid will contain the handles
5090 that were not valid.</doc>
5091       <return-value transfer-ownership="none">
5092         <type name="none" c:type="void"/>
5093       </return-value>
5094       <parameters>
5095         <parameter name="connection" transfer-ownership="none">
5096           <doc xml:whitespace="preserve">The connection</doc>
5097           <type name="Connection" c:type="TpConnection*"/>
5098         </parameter>
5099         <parameter name="n_contacts" transfer-ownership="none">
5100           <doc xml:whitespace="preserve">The number of TpContact objects successfully created (one per valid handle), or 0 on unrecoverable errors</doc>
5101           <type name="uint" c:type="guint"/>
5102         </parameter>
5103         <parameter name="contacts" transfer-ownership="none">
5104           <doc xml:whitespace="preserve">An array of @n_contacts TpContact objects (this callback is not given a reference to any of these objects, and must call g_object_ref() on any that it will keep), or %NULL on unrecoverable errors</doc>
5105           <array length="1" c:type="TpContact**">
5106             <type name="Contact"/>
5107           </array>
5108         </parameter>
5109         <parameter name="n_failed" transfer-ownership="none">
5110           <doc xml:whitespace="preserve">The number of invalid handles that were passed to tp_connection_get_contacts_by_handle() (or on unrecoverable errors, the total number of handles that were given)</doc>
5111           <type name="uint" c:type="guint"/>
5112         </parameter>
5113         <parameter name="failed" transfer-ownership="none">
5114           <doc xml:whitespace="preserve">An array of @n_failed handles that were passed to tp_connection_get_contacts_by_handle() but turned out to be invalid (or on unrecoverable errors, all the handles that were given)</doc>
5115           <array length="3" c:type="TpHandle*">
5116             <type name="Handle"/>
5117           </array>
5118         </parameter>
5119         <parameter name="error" transfer-ownership="none">
5120           <doc xml:whitespace="preserve">%NULL on success, or an unrecoverable error that caused everything to fail</doc>
5121           <type name="GLib.Error" c:type="GError*"/>
5122         </parameter>
5123         <parameter name="user_data" transfer-ownership="none" closure="6">
5124           <doc xml:whitespace="preserve">the @user_data that was passed to tp_connection_get_contacts_by_handle()</doc>
5125           <type name="any" c:type="gpointer"/>
5126         </parameter>
5127         <parameter name="weak_object" transfer-ownership="none">
5128           <doc xml:whitespace="preserve">the @weak_object that was passed to tp_connection_get_contacts_by_handle()</doc>
5129           <type name="GObject.Object" c:type="GObject*"/>
5130         </parameter>
5131       </parameters>
5132     </callback>
5133     <callback name="ConnectionContactsByIdCb" c:type="TpConnectionContactsByIdCb" version="0.7.18">
5134       <doc xml:whitespace="preserve">Signature of a callback used to receive the result of
5135 tp_connection_get_contacts_by_id().
5136 The normalized form of requested_ids[i] is
5137 tp_contact_get_identifier (contacts[i]).
5138 If some or even all of the @ids passed to
5139 tp_connection_get_contacts_by_id() were not valid, this is not
5140 considered to be a fatal error. @error will be %NULL in this situation,
5141 valid (it may be empty), and @failed_id_errors will map the IDs
5142 that were not valid to a corresponding #GError (if the connection manager
5143 complies with the Telepathy spec, it will have domain %TP_ERRORS and code
5144 %TP_ERROR_INVALID_HANDLE).
5145 If an unrecoverable error occurs (for instance, if @connection
5146 becomes disconnected) the whole operation fails, and no contacts
5147 or requested IDs are returned. @failed_id_errors will contain all the IDs
5148 that were requested, mapped to a corresponding #GError (either one
5149 indicating that the ID was invalid, if that was determined before the
5150 fatal error occurred, or a copy of @error).</doc>
5151       <return-value transfer-ownership="none">
5152         <type name="none" c:type="void"/>
5153       </return-value>
5154       <parameters>
5155         <parameter name="connection" transfer-ownership="none">
5156           <doc xml:whitespace="preserve">The connection</doc>
5157           <type name="Connection" c:type="TpConnection*"/>
5158         </parameter>
5159         <parameter name="n_contacts" transfer-ownership="none">
5160           <doc xml:whitespace="preserve">The number of TpContact objects successfully created (one per valid ID), or 0 on unrecoverable errors</doc>
5161           <type name="uint" c:type="guint"/>
5162         </parameter>
5163         <parameter name="contacts" transfer-ownership="none">
5164           <doc xml:whitespace="preserve">An array of @n_contacts TpContact objects (this callback is not given a reference to any of these objects, and must call g_object_ref() on any that it will keep), or %NULL on unrecoverable errors</doc>
5165           <array length="1" c:type="TpContact**">
5166             <type name="Contact"/>
5167           </array>
5168         </parameter>
5169         <parameter name="requested_ids" transfer-ownership="none">
5170           <doc xml:whitespace="preserve">An array of @n_contacts valid IDs (JIDs, SIP URIs etc.) that were passed to tp_connection_get_contacts_by_id(), in an order corresponding to @contacts, or %NULL on unrecoverable errors</doc>
5171           <array length="1" c:type="gchar**">
5172             <type name="int8"/>
5173           </array>
5174         </parameter>
5175         <parameter name="failed_id_errors" transfer-ownership="none">
5176           <doc xml:whitespace="preserve">A hash table in which the keys are IDs and the values are errors (#GError)</doc>
5177           <type name="GLib.HashTable" c:type="GHashTable*">
5178             <type name="utf8"/>
5179             <type name="GLib.Error"/>
5180           </type>
5181         </parameter>
5182         <parameter name="error" transfer-ownership="none">
5183           <doc xml:whitespace="preserve">%NULL on success, or an unrecoverable error that caused everything to fail</doc>
5184           <type name="GLib.Error" c:type="GError*"/>
5185         </parameter>
5186         <parameter name="user_data" transfer-ownership="none" closure="6">
5187           <doc xml:whitespace="preserve">the @user_data that was passed to tp_connection_get_contacts_by_id()</doc>
5188           <type name="any" c:type="gpointer"/>
5189         </parameter>
5190         <parameter name="weak_object" transfer-ownership="none">
5191           <doc xml:whitespace="preserve">the @weak_object that was passed to tp_connection_get_contacts_by_id()</doc>
5192           <type name="GObject.Object" c:type="GObject*"/>
5193         </parameter>
5194       </parameters>
5195     </callback>
5196     <callback name="ConnectionHoldHandlesCb" c:type="TpConnectionHoldHandlesCb">
5197       <doc xml:whitespace="preserve">Signature of the callback called when tp_connection_hold_handles() succeeds
5198 or fails.
5199 On success, the caller has one reference to each handle in @handles, which
5200 may be released later with tp_connection_unref_handles(). If not
5201 released, the handles will remain valid until @connection becomes invalid
5202 (signalled by #TpProxy::invalidated).
5203 For convenience, the handle type and handles requested by the caller are
5204 passed through to this callback on success, so the caller does not have to
5205 include them in @user_data.</doc>
5206       <return-value transfer-ownership="none">
5207         <type name="none" c:type="void"/>
5208       </return-value>
5209       <parameters>
5210         <parameter name="connection" transfer-ownership="none">
5211           <doc xml:whitespace="preserve">the connection</doc>
5212           <type name="Connection" c:type="TpConnection*"/>
5213         </parameter>
5214         <parameter name="handle_type" transfer-ownership="none">
5215           <doc xml:whitespace="preserve">the handle type that was passed to tp_connection_hold_handles()</doc>
5216           <type name="HandleType" c:type="TpHandleType"/>
5217         </parameter>
5218         <parameter name="n_handles" transfer-ownership="none">
5219           <doc xml:whitespace="preserve">the number of handles that were passed to tp_connection_hold_handles() on success, or 0 on failure</doc>
5220           <type name="uint" c:type="guint"/>
5221         </parameter>
5222         <parameter name="handles" transfer-ownership="none">
5223           <doc xml:whitespace="preserve">a copy of the array of @n_handles handles that was passed to tp_connection_hold_handles() on success, or %NULL on failure</doc>
5224           <type name="Handle" c:type="TpHandle*"/>
5225         </parameter>
5226         <parameter name="error" transfer-ownership="none">
5227           <doc xml:whitespace="preserve">%NULL on success, or an error on failure</doc>
5228           <type name="GLib.Error" c:type="GError*"/>
5229         </parameter>
5230         <parameter name="user_data" transfer-ownership="none" closure="5">
5231           <doc xml:whitespace="preserve">the same arbitrary pointer that was passed to tp_connection_hold_handles()</doc>
5232           <type name="any" c:type="gpointer"/>
5233         </parameter>
5234         <parameter name="weak_object" transfer-ownership="none">
5235           <doc xml:whitespace="preserve">the same object that was passed to tp_connection_hold_handles()</doc>
5236           <type name="GObject.Object" c:type="GObject*"/>
5237         </parameter>
5238       </parameters>
5239     </callback>
5240     <class name="ConnectionManager" c:type="TpConnectionManager" version="0.7.1" parent="Proxy" glib:type-name="TpConnectionManager" glib:get-type="tp_connection_manager_get_type" glib:type-struct="ConnectionManagerClass">
5241       <doc xml:whitespace="preserve">A proxy object for a Telepathy connection manager.
5242 This might represent a connection manager which is currently running
5243 (in which case it can be introspected) or not (in which case its
5244 capabilities can be read from .manager files in the filesystem).
5245 Accordingly, this object never emits #TpProxy::invalidated unless all
5246 references to it are discarded.
5247 Various fields and methods on this object do not work until
5248 %TP_CONNECTION_MANAGER_FEATURE_CORE is prepared. Use
5249 tp_proxy_prepare_async() to wait for this to happen.
5250 Note that the @protocols may be freed and reallocated (based on new
5251 information) whenever the main loop is entered. Since 0.11.3, each protocol
5252 struct can be copied with tp_connection_manager_protocol_copy() if a
5253 private copy is needed.</doc>
5254       <constructor name="new" c:identifier="tp_connection_manager_new" throws="1">
5255         <doc xml:whitespace="preserve">Convenience function to create a new connection manager proxy. If
5256 its protocol and parameter information are required, you should call
5257 tp_connection_manager_call_when_ready() on the result.
5258 is set.</doc>
5259         <return-value transfer-ownership="full">
5260           <doc xml:whitespace="preserve">a new reference to a connection manager proxy, or %NULL if @error</doc>
5261           <type name="ConnectionManager" c:type="TpConnectionManager*"/>
5262         </return-value>
5263         <parameters>
5264           <parameter name="dbus" transfer-ownership="none">
5265             <doc xml:whitespace="preserve">Proxy for the D-Bus daemon</doc>
5266             <type name="DBusDaemon" c:type="TpDBusDaemon*"/>
5267           </parameter>
5268           <parameter name="name" transfer-ownership="none">
5269             <doc xml:whitespace="preserve">The connection manager name (such as "gabble")</doc>
5270             <type name="utf8" c:type="gchar*"/>
5271           </parameter>
5272           <parameter name="manager_filename" transfer-ownership="none" allow-none="1">
5273             <doc xml:whitespace="preserve">manager-file property, which may (and generally should) be %NULL.</doc>
5274             <type name="utf8" c:type="gchar*"/>
5275           </parameter>
5276         </parameters>
5277       </constructor>
5278       <function name="check_valid_name" c:identifier="tp_connection_manager_check_valid_name" version="0.7.1" throws="1">
5279         <doc xml:whitespace="preserve">Check that the given string is a valid connection manager name, i.e. that
5280 it consists entirely of ASCII letters, digits and underscores, and starts
5281 with a letter.</doc>
5282         <return-value transfer-ownership="none">
5283           <doc xml:whitespace="preserve">%TRUE if @name is valid</doc>
5284           <type name="boolean" c:type="gboolean"/>
5285         </return-value>
5286         <parameters>
5287           <parameter name="name" transfer-ownership="none">
5288             <doc xml:whitespace="preserve">a possible connection manager name</doc>
5289             <type name="utf8" c:type="gchar*"/>
5290           </parameter>
5291         </parameters>
5292       </function>
5293       <function name="check_valid_protocol_name" c:identifier="tp_connection_manager_check_valid_protocol_name" version="0.7.1" throws="1">
5294         <doc xml:whitespace="preserve">Check that the given string is a valid protocol name, i.e. that
5295 it consists entirely of ASCII letters, digits and hyphen/minus, and starts
5296 with a letter.</doc>
5297         <return-value transfer-ownership="none">
5298           <doc xml:whitespace="preserve">%TRUE if @name is valid</doc>
5299           <type name="boolean" c:type="gboolean"/>
5300         </return-value>
5301         <parameters>
5302           <parameter name="name" transfer-ownership="none">
5303             <doc xml:whitespace="preserve">a possible protocol name</doc>
5304             <type name="utf8" c:type="gchar*"/>
5305           </parameter>
5306         </parameters>
5307       </function>
5308       <function name="init_known_interfaces" c:identifier="tp_connection_manager_init_known_interfaces" version="0.7.32">
5309         <doc xml:whitespace="preserve">Ensure that the known interfaces for TpConnectionManager have been set up.
5310 This is done automatically when necessary, but for correct
5311 overriding of library interfaces by local extensions, you should
5312 call this function before calling
5313 tp_proxy_or_subclass_hook_on_interface_add() with first argument
5314 %TP_TYPE_CONNECTION_MANAGER.</doc>
5315         <return-value transfer-ownership="none">
5316           <type name="none" c:type="void"/>
5317         </return-value>
5318       </function>
5319       <function name="get_feature_quark_core" c:identifier="tp_connection_manager_get_feature_quark_core">
5320         <return-value transfer-ownership="full">
5321           <type name="GLib.Quark" c:type="GQuark"/>
5322         </return-value>
5323       </function>
5324       <method name="activate" c:identifier="tp_connection_manager_activate" version="0.7.1" introspectable="0">
5325         <doc xml:whitespace="preserve">Attempt to run and introspect the connection manager, asynchronously.
5326 Since 0.7.26 this function is not generally very useful, since
5327 the connection manager will now be activated automatically if necessary.
5328 If the CM was already running, do nothing and return %FALSE.
5329 On success, emit #TpConnectionManager::activated when the CM appears
5330 on the bus, and #TpConnectionManager::got-info when its capabilities
5331 have been (re-)discovered.
5332 On failure, emit #TpConnectionManager::exited without first emitting
5333 activated.
5334 if the connection manager was already running and no additional signals
5335 will be emitted.</doc>
5336         <return-value transfer-ownership="none">
5337           <doc xml:whitespace="preserve">%TRUE if activation was needed and is now in progress, %FALSE</doc>
5338           <type name="boolean" c:type="gboolean"/>
5339         </return-value>
5340       </method>
5341       <method name="call_when_ready" c:identifier="tp_connection_manager_call_when_ready" version="0.7.26" introspectable="0">
5342         <doc xml:whitespace="preserve">Call the @callback from the main loop when information about @cm's
5343 supported protocols and parameters has been retrieved.</doc>
5344         <return-value transfer-ownership="none">
5345           <type name="none" c:type="void"/>
5346         </return-value>
5347         <parameters>
5348           <parameter name="callback" transfer-ownership="none" scope="notified" closure="2" destroy="3">
5349             <doc xml:whitespace="preserve">callback to call when information has been retrieved or on error</doc>
5350             <type name="ConnectionManagerWhenReadyCb" c:type="TpConnectionManagerWhenReadyCb"/>
5351           </parameter>
5352           <parameter name="user_data" transfer-ownership="none">
5353             <doc xml:whitespace="preserve">arbitrary data to pass to the callback</doc>
5354             <type name="any" c:type="gpointer"/>
5355           </parameter>
5356           <parameter name="destroy" transfer-ownership="none" scope="call">
5357             <doc xml:whitespace="preserve">called to destroy @user_data</doc>
5358             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
5359           </parameter>
5360           <parameter name="weak_object" transfer-ownership="none">
5361             <doc xml:whitespace="preserve">object to reference weakly; if it is destroyed, @callback will not be called, but @destroy will still be called</doc>
5362             <type name="GObject.Object" c:type="GObject*"/>
5363           </parameter>
5364         </parameters>
5365       </method>
5366       <method name="get_name" c:identifier="tp_connection_manager_get_name" version="0.7.26">
5367         <doc xml:whitespace="preserve">Return the internal name of this connection manager in the Telepathy
5368 D-Bus API, e.g. "gabble" or "haze". This is often the name of the binary
5369 without the "telepathy-" prefix.
5370 The returned string is valid as long as @self is. Copy it with g_strdup()
5371 if a longer lifetime is required.</doc>
5372         <return-value transfer-ownership="none">
5373           <doc xml:whitespace="preserve">the #TpConnectionManager:connection-manager property</doc>
5374           <type name="utf8" c:type="gchar*"/>
5375         </return-value>
5376       </method>
5377       <method name="is_ready" c:identifier="tp_connection_manager_is_ready" version="0.7.26" introspectable="0">
5378         <doc xml:whitespace="preserve">If protocol and parameter information has been obtained from the connection
5379 manager or the cache in the .manager file, return %TRUE. Otherwise,
5380 return %FALSE.
5381 This may change from %FALSE to %TRUE at any time that the main loop is
5382 running; the #GObject::notify signal is emitted for the
5383 #TpConnectionManager:info-source property.
5384 %TP_CM_INFO_SOURCE_NONE</doc>
5385         <return-value transfer-ownership="none">
5386           <doc xml:whitespace="preserve">%TRUE, unless the #TpConnectionManager:info-source property is</doc>
5387           <type name="boolean" c:type="gboolean"/>
5388         </return-value>
5389       </method>
5390       <method name="is_running" c:identifier="tp_connection_manager_is_running" version="0.7.26">
5391         <doc xml:whitespace="preserve">Return %TRUE if this connection manager currently appears to be running.
5392 This may change at any time that the main loop is running; the
5393 #TpConnectionManager::activated and #TpConnectionManager::exited signals
5394 are emitted.</doc>
5395         <return-value transfer-ownership="none">
5396           <doc xml:whitespace="preserve">whether the connection manager is currently running</doc>
5397           <type name="boolean" c:type="gboolean"/>
5398         </return-value>
5399       </method>
5400       <method name="get_info_source" c:identifier="tp_connection_manager_get_info_source" version="0.7.26">
5401         <doc xml:whitespace="preserve">If protocol and parameter information has been obtained from the connection
5402 manager, return %TP_CM_INFO_SOURCE_LIVE; if it has been obtained from the
5403 cache in the .manager file, return %TP_CM_INFO_SOURCE_FILE. If this
5404 information has not yet been obtained, or obtaining it failed, return
5405 %TP_CM_INFO_SOURCE_NONE.
5406 This may increase at any time that the main loop is running; the
5407 #GObject::notify signal is emitted.</doc>
5408         <return-value transfer-ownership="full">
5409           <doc xml:whitespace="preserve">the value of the #TpConnectionManager:info-source property</doc>
5410           <type name="CMInfoSource" c:type="TpCMInfoSource"/>
5411         </return-value>
5412       </method>
5413       <method name="dup_protocol_names" c:identifier="tp_connection_manager_dup_protocol_names" version="0.7.26">
5414         <doc xml:whitespace="preserve">Returns a list of protocol names supported by this connection manager.
5415 These are the internal protocol names used by the Telepathy specification
5416 (e.g. "jabber" and "msn"), rather than user-visible names in any particular
5417 locale.
5418 If this function is called before the connection manager information has
5419 been obtained, the result is always %NULL. Use
5420 tp_connection_manager_call_when_ready() to wait for this.
5421 The result is copied and must be freed by the caller, but it is not
5422 necessarily still true after the main loop is re-entered.</doc>
5423         <return-value transfer-ownership="full">
5424           <doc xml:whitespace="preserve">a #GStrv of protocol names</doc>
5425           <array c:type="gchar**">
5426             <type name="utf8"/>
5427           </array>
5428         </return-value>
5429       </method>
5430       <method name="has_protocol" c:identifier="tp_connection_manager_has_protocol" version="0.7.26">
5431         <doc xml:whitespace="preserve">Return whether @protocol is supported by this connection manager.
5432 If this function is called before the connection manager information has
5433 been obtained, the result is always %FALSE. Use
5434 tp_connection_manager_call_when_ready() to wait for this.</doc>
5435         <return-value transfer-ownership="none">
5436           <doc xml:whitespace="preserve">%TRUE if this connection manager supports @protocol</doc>
5437           <type name="boolean" c:type="gboolean"/>
5438         </return-value>
5439         <parameters>
5440           <parameter name="protocol" transfer-ownership="none">
5441             <doc xml:whitespace="preserve">the name of a protocol as defined in the Telepathy D-Bus API, e.g. "jabber" or "msn"</doc>
5442             <type name="utf8" c:type="gchar*"/>
5443           </parameter>
5444         </parameters>
5445       </method>
5446       <method name="get_protocol" c:identifier="tp_connection_manager_get_protocol" version="0.7.26">
5447         <doc xml:whitespace="preserve">Returns a structure representing a protocol, or %NULL if this connection
5448 manager does not support the specified protocol.
5449 Since 0.11.11, you can get a #GObject version with more
5450 functionality by calling tp_connection_manager_get_protocol_object().
5451 If this function is called before the connection manager information has
5452 been obtained, the result is always %NULL. Use
5453 tp_connection_manager_call_when_ready() to wait for this.
5454 The result is not necessarily valid after the main loop is re-entered.
5455 Since 0.11.3, it can be copied with tp_connection_manager_protocol_copy()
5456 if a permanently-valid copy is needed.</doc>
5457         <return-value transfer-ownership="none">
5458           <doc xml:whitespace="preserve">a structure representing the protocol</doc>
5459           <type name="ConnectionManagerProtocol" c:type="TpConnectionManagerProtocol*"/>
5460         </return-value>
5461         <parameters>
5462           <parameter name="protocol" transfer-ownership="none">
5463             <doc xml:whitespace="preserve">the name of a protocol as defined in the Telepathy D-Bus API, e.g. "jabber" or "msn"</doc>
5464             <type name="utf8" c:type="gchar*"/>
5465           </parameter>
5466         </parameters>
5467       </method>
5468       <method name="get_protocol_object" c:identifier="tp_connection_manager_get_protocol_object" version="0.11.11">
5469         <doc xml:whitespace="preserve">Returns an object representing a protocol, or %NULL if this connection
5470 manager does not support the specified protocol.
5471 If this function is called before the connection manager information has
5472 been obtained, the result is always %NULL. Use tp_proxy_prepare_async()
5473 to wait for this.
5474 The result should be referenced with g_object_ref() if it will be kept.</doc>
5475         <return-value transfer-ownership="none">
5476           <doc xml:whitespace="preserve">an object representing the protocol, or %NULL</doc>
5477           <type name="Protocol" c:type="TpProtocol*"/>
5478         </return-value>
5479         <parameters>
5480           <parameter name="protocol" transfer-ownership="none">
5481             <doc xml:whitespace="preserve">the name of a protocol as defined in the Telepathy D-Bus API, e.g. "jabber" or "msn"</doc>
5482             <type name="utf8" c:type="gchar*"/>
5483           </parameter>
5484         </parameters>
5485       </method>
5486       <property name="always-introspect" writable="1" transfer-ownership="none">
5487         <doc xml:whitespace="preserve">If %TRUE, always introspect the connection manager as it comes online,
5488 even if we already have its info from a .manager file. Default %FALSE.</doc>
5489         <type name="boolean" c:type="gboolean"/>
5490       </property>
5491       <property name="connection-manager" transfer-ownership="none">
5492         <doc xml:whitespace="preserve">The name of the connection manager, e.g. "gabble" (read-only).</doc>
5493         <type name="utf8" c:type="gchararray"/>
5494       </property>
5495       <property name="info-source" transfer-ownership="none">
5496         <doc xml:whitespace="preserve">Where we got the current information on supported protocols
5497 (a #TpCMInfoSource).
5498 Since 0.7.26, the #GObject::notify signal is emitted for this
5499 property.
5500 (Note that this is of type %G_TYPE_UINT, not %TP_TYPE_CM_INFO_SOURCE,
5501 for historical reasons.)</doc>
5502         <type name="uint" c:type="guint"/>
5503       </property>
5504       <property name="manager-file" writable="1" construct="1" transfer-ownership="none">
5505         <doc xml:whitespace="preserve">The absolute path of the .manager file. If set to %NULL (the default),
5506 the XDG data directories will be searched for a .manager file of the
5507 correct name.
5508 If set to the empty string, no .manager file will be read.</doc>
5509         <type name="utf8" c:type="gchararray"/>
5510       </property>
5511       <field name="parent">
5512         <type name="Proxy" c:type="TpProxy"/>
5513       </field>
5514       <field name="name">
5515         <type name="utf8" c:type="gchar*"/>
5516       </field>
5517       <field name="protocols">
5518         <type name="ConnectionManagerProtocol" c:type="TpConnectionManagerProtocol**"/>
5519       </field>
5520       <field name="running" bits="1">
5521         <type name="uint" c:type="unsigned"/>
5522       </field>
5523       <field name="always_introspect" bits="1">
5524         <type name="uint" c:type="unsigned"/>
5525       </field>
5526       <field name="info_source" bits="2">
5527         <type name="uint" c:type="unsigned"/>
5528       </field>
5529       <field name="reserved_flags" bits="28">
5530         <type name="uint" c:type="guint"/>
5531       </field>
5532       <field name="priv">
5533         <type name="ConnectionManagerPrivate" c:type="TpConnectionManagerPrivate*"/>
5534       </field>
5535       <glib:signal name="activated">
5536         <doc xml:whitespace="preserve">Emitted when the connection manager's well-known name appears on the bus.</doc>
5537         <return-value transfer-ownership="full">
5538           <type name="none" c:type="void"/>
5539         </return-value>
5540       </glib:signal>
5541       <glib:signal name="exited">
5542         <doc xml:whitespace="preserve">Emitted when the connection manager's well-known name disappears from
5543 the bus or when activation fails.</doc>
5544         <return-value transfer-ownership="full">
5545           <type name="none" c:type="void"/>
5546         </return-value>
5547       </glib:signal>
5548       <glib:signal name="got-info">
5549         <doc xml:whitespace="preserve">Emitted when the connection manager's capabilities have been discovered.
5550 This signal is not very helpful. Since 0.7.26, using
5551 tp_connection_manager_call_when_ready() instead is recommended.</doc>
5552         <return-value transfer-ownership="full">
5553           <type name="none" c:type="void"/>
5554         </return-value>
5555         <parameters>
5556           <parameter name="source" transfer-ownership="none">
5557             <doc xml:whitespace="preserve">a #TpCMInfoSource</doc>
5558             <type name="uint" c:type="guint"/>
5559           </parameter>
5560         </parameters>
5561       </glib:signal>
5562     </class>
5563     <record name="ConnectionManagerClass" c:type="TpConnectionManagerClass" glib:is-gtype-struct-for="ConnectionManager" version="0.7.1">
5564       <doc xml:whitespace="preserve">The class of a #TpConnectionManager.</doc>
5565       <field name="parent_class">
5566         <type name="ProxyClass" c:type="TpProxyClass"/>
5567       </field>
5568       <field name="priv">
5569         <type name="any" c:type="gpointer*"/>
5570       </field>
5571     </record>
5572     <callback name="ConnectionManagerListCb" c:type="TpConnectionManagerListCb" version="0.7.1">
5573       <doc xml:whitespace="preserve">Signature of the callback supplied to tp_list_connection_managers().
5574 Since 0.11.3, tp_list_connection_managers() will
5575 wait for %TP_CONNECTION_MANAGER_FEATURE_CORE to be prepared on each
5576 connection manager passed to @callback, unless an error occurred while
5577 launching that connection manager.</doc>
5578       <return-value transfer-ownership="none">
5579         <type name="none" c:type="void"/>
5580       </return-value>
5581       <parameters>
5582         <parameter name="cms" transfer-ownership="none">
5583           <doc xml:whitespace="preserve">%NULL-terminated array of #TpConnectionManager (the objects will be unreferenced and the array will be freed after the callback returns, so the callback must reference any CMs it stores a pointer to), or %NULL on error</doc>
5584           <array c:type="TpConnectionManager**">
5585             <type name="ConnectionManager"/>
5586           </array>
5587         </parameter>
5588         <parameter name="n_cms" transfer-ownership="none">
5589           <doc xml:whitespace="preserve">number of connection managers in @cms (not including the final %NULL)</doc>
5590           <type name="gsize" c:type="gsize"/>
5591         </parameter>
5592         <parameter name="error" transfer-ownership="none">
5593           <doc xml:whitespace="preserve">%NULL on success, or an error that occurred</doc>
5594           <type name="GLib.Error" c:type="GError*"/>
5595         </parameter>
5596         <parameter name="user_data" transfer-ownership="none" closure="3">
5597           <doc xml:whitespace="preserve">user-supplied data</doc>
5598           <type name="any" c:type="gpointer"/>
5599         </parameter>
5600         <parameter name="weak_object" transfer-ownership="none">
5601           <doc xml:whitespace="preserve">user-supplied weakly referenced object</doc>
5602           <type name="GObject.Object" c:type="GObject*"/>
5603         </parameter>
5604       </parameters>
5605     </callback>
5606     <record name="ConnectionManagerParam" c:type="TpConnectionManagerParam" version="0.7.1" glib:type-name="TpConnectionManagerParam" glib:get-type="tp_connection_manager_param_get_type">
5607       <doc xml:whitespace="preserve">Structure representing a connection manager parameter.</doc>
5608       <field name="name" writable="1">
5609         <type name="utf8" c:type="gchar*"/>
5610       </field>
5611       <field name="dbus_signature" writable="1">
5612         <type name="utf8" c:type="gchar*"/>
5613       </field>
5614       <field name="default_value" writable="1">
5615         <type name="GObject.Value" c:type="GValue"/>
5616       </field>
5617       <field name="flags" writable="1">
5618         <type name="uint" c:type="guint"/>
5619       </field>
5620       <field name="priv" writable="1">
5621         <type name="any" c:type="gpointer"/>
5622       </field>
5623       <method name="get_name" c:identifier="tp_connection_manager_param_get_name" version="0.7.26">
5624         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
5625         <return-value transfer-ownership="none">
5626           <doc xml:whitespace="preserve">the name of the parameter</doc>
5627           <type name="utf8" c:type="gchar*"/>
5628         </return-value>
5629       </method>
5630       <method name="get_dbus_signature" c:identifier="tp_connection_manager_param_get_dbus_signature" version="0.7.26">
5631         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
5632         <return-value transfer-ownership="none">
5633           <doc xml:whitespace="preserve">the D-Bus signature of the parameter</doc>
5634           <type name="utf8" c:type="gchar*"/>
5635         </return-value>
5636       </method>
5637       <method name="is_required" c:identifier="tp_connection_manager_param_is_required" version="0.7.26">
5638         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
5639         <return-value transfer-ownership="none">
5640           <doc xml:whitespace="preserve">%TRUE if the parameter is normally required</doc>
5641           <type name="boolean" c:type="gboolean"/>
5642         </return-value>
5643       </method>
5644       <method name="is_required_for_registration" c:identifier="tp_connection_manager_param_is_required_for_registration" version="0.7.26">
5645         <doc xml:whitespace="preserve">&lt;!-- --&gt;
5646 (by setting the special "register" parameter to %TRUE)</doc>
5647         <return-value transfer-ownership="none">
5648           <doc xml:whitespace="preserve">%TRUE if the parameter is required when registering a new account</doc>
5649           <type name="boolean" c:type="gboolean"/>
5650         </return-value>
5651       </method>
5652       <method name="is_secret" c:identifier="tp_connection_manager_param_is_secret" version="0.7.26">
5653         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
5654         <return-value transfer-ownership="none">
5655           <doc xml:whitespace="preserve">%TRUE if the parameter's value is a password or other secret</doc>
5656           <type name="boolean" c:type="gboolean"/>
5657         </return-value>
5658       </method>
5659       <method name="is_dbus_property" c:identifier="tp_connection_manager_param_is_dbus_property" version="0.7.26">
5660         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
5661         <return-value transfer-ownership="none">
5662           <doc xml:whitespace="preserve">%TRUE if the parameter represents a D-Bus property of the same name</doc>
5663           <type name="boolean" c:type="gboolean"/>
5664         </return-value>
5665       </method>
5666       <method name="get_default" c:identifier="tp_connection_manager_param_get_default" version="0.7.26">
5667         <doc xml:whitespace="preserve">Get the default value for this parameter, if there is one. If %FALSE is
5668 returned, @value is left uninitialized.</doc>
5669         <return-value transfer-ownership="none">
5670           <doc xml:whitespace="preserve">%TRUE if there is a default value</doc>
5671           <type name="boolean" c:type="gboolean"/>
5672         </return-value>
5673         <parameters>
5674           <parameter name="value" transfer-ownership="none">
5675             <doc xml:whitespace="preserve">pointer to an unset (all zeroes) #GValue into which the default's type and value are written</doc>
5676             <type name="GObject.Value" c:type="GValue*"/>
5677           </parameter>
5678         </parameters>
5679       </method>
5680       <method name="copy" c:identifier="tp_connection_manager_param_copy" version="0.11.3">
5681         <doc xml:whitespace="preserve">&lt;!-- Returns: says it all --&gt;
5682 tp_connection_manager_param_free()</doc>
5683         <return-value transfer-ownership="full">
5684           <doc xml:whitespace="preserve">a newly (slice) allocated #TpConnectionManagerParam, free with</doc>
5685           <type name="ConnectionManagerParam" c:type="TpConnectionManagerParam*"/>
5686         </return-value>
5687       </method>
5688       <method name="free" c:identifier="tp_connection_manager_param_free" version="0.11.3">
5689         <doc xml:whitespace="preserve">Frees @param, which was copied with tp_connection_manager_param_copy().</doc>
5690         <return-value transfer-ownership="none">
5691           <type name="none" c:type="void"/>
5692         </return-value>
5693       </method>
5694     </record>
5695     <record name="ConnectionManagerPrivate" c:type="TpConnectionManagerPrivate">
5696     </record>
5697     <record name="ConnectionManagerProtocol" c:type="TpConnectionManagerProtocol" version="0.7.1" glib:type-name="TpConnectionManagerProtocol" glib:get-type="tp_connection_manager_protocol_get_type">
5698       <doc xml:whitespace="preserve">Structure representing a protocol supported by a connection manager.
5699 Note that the size of this structure may change, so its size must not be
5700 relied on.</doc>
5701       <field name="name" writable="1">
5702         <type name="utf8" c:type="gchar*"/>
5703       </field>
5704       <field name="params" writable="1">
5705         <type name="ConnectionManagerParam" c:type="TpConnectionManagerParam*"/>
5706       </field>
5707       <field name="priv" writable="1">
5708         <type name="any" c:type="gpointer"/>
5709       </field>
5710       <method name="dup_param_names" c:identifier="tp_connection_manager_protocol_dup_param_names" version="0.7.26">
5711         <doc xml:whitespace="preserve">Returns a list of parameter names supported by this connection manager
5712 for this protocol.
5713 The result is copied and must be freed by the caller with g_strfreev().</doc>
5714         <return-value transfer-ownership="full">
5715           <doc xml:whitespace="preserve">a #GStrv of protocol names</doc>
5716           <array c:type="gchar**">
5717             <type name="utf8"/>
5718           </array>
5719         </return-value>
5720       </method>
5721       <method name="has_param" c:identifier="tp_connection_manager_protocol_has_param" version="0.7.26">
5722         <doc xml:whitespace="preserve">&lt;!-- no more to say --&gt;</doc>
5723         <return-value transfer-ownership="none">
5724           <doc xml:whitespace="preserve">%TRUE if @protocol supports the parameter @param.</doc>
5725           <type name="boolean" c:type="gboolean"/>
5726         </return-value>
5727         <parameters>
5728           <parameter name="param" transfer-ownership="none">
5729             <doc xml:whitespace="preserve">a parameter name</doc>
5730             <type name="utf8" c:type="gchar*"/>
5731           </parameter>
5732         </parameters>
5733       </method>
5734       <method name="get_param" c:identifier="tp_connection_manager_protocol_get_param" version="0.7.26">
5735         <doc xml:whitespace="preserve">&lt;!-- no more to say --&gt;
5736 supported</doc>
5737         <return-value transfer-ownership="none">
5738           <doc xml:whitespace="preserve">a structure representing the parameter @param, or %NULL if not</doc>
5739           <type name="ConnectionManagerParam" c:type="TpConnectionManagerParam*"/>
5740         </return-value>
5741         <parameters>
5742           <parameter name="param" transfer-ownership="none">
5743             <doc xml:whitespace="preserve">a parameter name</doc>
5744             <type name="utf8" c:type="gchar*"/>
5745           </parameter>
5746         </parameters>
5747       </method>
5748       <method name="can_register" c:identifier="tp_connection_manager_protocol_can_register" version="0.7.26">
5749         <doc xml:whitespace="preserve">Return whether a new account can be registered on this protocol, by setting
5750 the special "register" parameter to %TRUE.</doc>
5751         <return-value transfer-ownership="none">
5752           <doc xml:whitespace="preserve">%TRUE if @protocol supports the parameter "register"</doc>
5753           <type name="boolean" c:type="gboolean"/>
5754         </return-value>
5755       </method>
5756       <method name="copy" c:identifier="tp_connection_manager_protocol_copy" version="0.11.3">
5757         <doc xml:whitespace="preserve">&lt;!-- Returns: says it all --&gt;
5758 tp_connection_manager_protocol_free()</doc>
5759         <return-value transfer-ownership="full">
5760           <doc xml:whitespace="preserve">a newly (slice) allocated #TpConnectionManagerProtocol, free with</doc>
5761           <type name="ConnectionManagerProtocol" c:type="TpConnectionManagerProtocol*"/>
5762         </return-value>
5763       </method>
5764       <method name="free" c:identifier="tp_connection_manager_protocol_free" version="0.11.3">
5765         <doc xml:whitespace="preserve">Frees @proto, which was copied with tp_connection_manager_protocol_copy().</doc>
5766         <return-value transfer-ownership="none">
5767           <type name="none" c:type="void"/>
5768         </return-value>
5769       </method>
5770     </record>
5771     <callback name="ConnectionManagerWhenReadyCb" c:type="TpConnectionManagerWhenReadyCb">
5772       <doc xml:whitespace="preserve">Called as the result of tp_connection_manager_call_when_ready(). If the
5773 connection manager's protocol and parameter information could be retrieved,
5774 non-%NULL and @cm is not ready.</doc>
5775       <return-value transfer-ownership="none">
5776         <type name="none" c:type="void"/>
5777       </return-value>
5778       <parameters>
5779         <parameter name="cm" transfer-ownership="none">
5780           <doc xml:whitespace="preserve">a connection manager</doc>
5781           <type name="ConnectionManager" c:type="TpConnectionManager*"/>
5782         </parameter>
5783         <parameter name="error" transfer-ownership="none">
5784           <doc xml:whitespace="preserve">%NULL on success, or the reason why tp_connection_manager_is_ready() would return %FALSE</doc>
5785           <type name="GLib.Error" c:type="GError*"/>
5786         </parameter>
5787         <parameter name="user_data" transfer-ownership="none" closure="2">
5788           <doc xml:whitespace="preserve">the @user_data passed to tp_connection_manager_call_when_ready()</doc>
5789           <type name="any" c:type="gpointer"/>
5790         </parameter>
5791         <parameter name="weak_object" transfer-ownership="none">
5792           <doc xml:whitespace="preserve">the @weak_object passed to tp_connection_manager_call_when_ready()</doc>
5793           <type name="GObject.Object" c:type="GObject*"/>
5794         </parameter>
5795       </parameters>
5796     </callback>
5797     <callback name="ConnectionNameListCb" c:type="TpConnectionNameListCb" version="0.7.1">
5798       <doc xml:whitespace="preserve">Signature of the callback supplied to tp_list_connection_names().</doc>
5799       <return-value transfer-ownership="none">
5800         <type name="none" c:type="void"/>
5801       </return-value>
5802       <parameters>
5803         <parameter name="names" transfer-ownership="none">
5804           <doc xml:whitespace="preserve">%NULL-terminated array of @n connection bus names, or %NULL on error</doc>
5805           <array c:type="gchar**">
5806             <type name="utf8"/>
5807           </array>
5808         </parameter>
5809         <parameter name="n" transfer-ownership="none">
5810           <doc xml:whitespace="preserve">number of names (not including the final %NULL), or 0 on error</doc>
5811           <type name="gsize" c:type="gsize"/>
5812         </parameter>
5813         <parameter name="cms" transfer-ownership="none">
5814           <doc xml:whitespace="preserve">%NULL-terminated array of @n connection manager names (e.g. "gabble") in the same order as @names, or %NULL on error</doc>
5815           <array c:type="gchar**">
5816             <type name="utf8"/>
5817           </array>
5818         </parameter>
5819         <parameter name="protocols" transfer-ownership="none">
5820           <doc xml:whitespace="preserve">%NULL-terminated array of same order as @names, or %NULL on error</doc>
5821           <array c:type="gchar**">
5822             <type name="utf8"/>
5823           </array>
5824         </parameter>
5825         <parameter name="error" transfer-ownership="none">
5826           <doc xml:whitespace="preserve">%NULL on success, or an error that occurred</doc>
5827           <type name="GLib.Error" c:type="GError*"/>
5828         </parameter>
5829         <parameter name="user_data" transfer-ownership="none" closure="5">
5830           <doc xml:whitespace="preserve">user-supplied data</doc>
5831           <type name="any" c:type="gpointer"/>
5832         </parameter>
5833         <parameter name="weak_object" transfer-ownership="none">
5834           <doc xml:whitespace="preserve">user-supplied weakly referenced object</doc>
5835           <type name="GObject.Object" c:type="GObject*"/>
5836         </parameter>
5837       </parameters>
5838     </callback>
5839     <enumeration name="ConnectionPresenceType" c:type="TpConnectionPresenceType">
5840       <member name="unset" value="0" c:identifier="TP_CONNECTION_PRESENCE_TYPE_UNSET"/>
5841       <member name="offline" value="1" c:identifier="TP_CONNECTION_PRESENCE_TYPE_OFFLINE"/>
5842       <member name="available" value="2" c:identifier="TP_CONNECTION_PRESENCE_TYPE_AVAILABLE"/>
5843       <member name="away" value="3" c:identifier="TP_CONNECTION_PRESENCE_TYPE_AWAY"/>
5844       <member name="extended_away" value="4" c:identifier="TP_CONNECTION_PRESENCE_TYPE_EXTENDED_AWAY"/>
5845       <member name="hidden" value="5" c:identifier="TP_CONNECTION_PRESENCE_TYPE_HIDDEN"/>
5846       <member name="busy" value="6" c:identifier="TP_CONNECTION_PRESENCE_TYPE_BUSY"/>
5847       <member name="unknown" value="7" c:identifier="TP_CONNECTION_PRESENCE_TYPE_UNKNOWN"/>
5848       <member name="error" value="8" c:identifier="TP_CONNECTION_PRESENCE_TYPE_ERROR"/>
5849     </enumeration>
5850     <record name="ConnectionPrivate" c:type="TpConnectionPrivate">
5851     </record>
5852     <callback name="ConnectionRequestHandlesCb" c:type="TpConnectionRequestHandlesCb">
5853       <doc xml:whitespace="preserve">Signature of the callback called when tp_connection_request_handles()
5854 succeeds or fails.
5855 On success, the caller has one reference to each handle in @handles, which
5856 may be released later with tp_connection_unref_handles(). If not
5857 released, the handles will remain valid until @connection becomes invalid
5858 (signalled by TpProxy::invalidated).
5859 For convenience, the handle type and IDs requested by the caller are
5860 passed through to this callback, so the caller does not have to include
5861 them in @user_data.</doc>
5862       <return-value transfer-ownership="none">
5863         <type name="none" c:type="void"/>
5864       </return-value>
5865       <parameters>
5866         <parameter name="connection" transfer-ownership="none">
5867           <doc xml:whitespace="preserve">the connection</doc>
5868           <type name="Connection" c:type="TpConnection*"/>
5869         </parameter>
5870         <parameter name="handle_type" transfer-ownership="none">
5871           <doc xml:whitespace="preserve">the handle type that was passed to tp_connection_request_handles()</doc>
5872           <type name="HandleType" c:type="TpHandleType"/>
5873         </parameter>
5874         <parameter name="n_handles" transfer-ownership="none">
5875           <doc xml:whitespace="preserve">the number of IDs that were passed to tp_connection_request_handles() on success, or 0 on failure</doc>
5876           <type name="uint" c:type="guint"/>
5877         </parameter>
5878         <parameter name="handles" transfer-ownership="none">
5879           <doc xml:whitespace="preserve">the @n_handles handles corresponding to @ids, in the same order, or %NULL on failure</doc>
5880           <array length="2" c:type="TpHandle*">
5881             <type name="uint"/>
5882           </array>
5883         </parameter>
5884         <parameter name="ids" transfer-ownership="none">
5885           <doc xml:whitespace="preserve">a copy of the array of @n_handles IDs that was passed to tp_connection_request_handles() on success, or %NULL on failure</doc>
5886           <array c:type="gchar**">
5887             <type name="utf8"/>
5888           </array>
5889         </parameter>
5890         <parameter name="error" transfer-ownership="none">
5891           <doc xml:whitespace="preserve">%NULL on success, or an error on failure</doc>
5892           <type name="GLib.Error" c:type="GError*"/>
5893         </parameter>
5894         <parameter name="user_data" transfer-ownership="none" closure="6">
5895           <doc xml:whitespace="preserve">the same arbitrary pointer that was passed to tp_connection_request_handles()</doc>
5896           <type name="any" c:type="gpointer"/>
5897         </parameter>
5898         <parameter name="weak_object" transfer-ownership="none">
5899           <doc xml:whitespace="preserve">the same object that was passed to tp_connection_request_handles()</doc>
5900           <type name="GObject.Object" c:type="GObject*"/>
5901         </parameter>
5902       </parameters>
5903     </callback>
5904     <enumeration name="ConnectionStatus" c:type="TpConnectionStatus">
5905       <member name="connected" value="0" c:identifier="TP_CONNECTION_STATUS_CONNECTED"/>
5906       <member name="connecting" value="1" c:identifier="TP_CONNECTION_STATUS_CONNECTING"/>
5907       <member name="disconnected" value="2" c:identifier="TP_CONNECTION_STATUS_DISCONNECTED"/>
5908     </enumeration>
5909     <enumeration name="ConnectionStatusReason" c:type="TpConnectionStatusReason">
5910       <member name="none_specified" value="0" c:identifier="TP_CONNECTION_STATUS_REASON_NONE_SPECIFIED"/>
5911       <member name="requested" value="1" c:identifier="TP_CONNECTION_STATUS_REASON_REQUESTED"/>
5912       <member name="network_error" value="2" c:identifier="TP_CONNECTION_STATUS_REASON_NETWORK_ERROR"/>
5913       <member name="authentication_failed" value="3" c:identifier="TP_CONNECTION_STATUS_REASON_AUTHENTICATION_FAILED"/>
5914       <member name="encryption_error" value="4" c:identifier="TP_CONNECTION_STATUS_REASON_ENCRYPTION_ERROR"/>
5915       <member name="name_in_use" value="5" c:identifier="TP_CONNECTION_STATUS_REASON_NAME_IN_USE"/>
5916       <member name="cert_not_provided" value="6" c:identifier="TP_CONNECTION_STATUS_REASON_CERT_NOT_PROVIDED"/>
5917       <member name="cert_untrusted" value="7" c:identifier="TP_CONNECTION_STATUS_REASON_CERT_UNTRUSTED"/>
5918       <member name="cert_expired" value="8" c:identifier="TP_CONNECTION_STATUS_REASON_CERT_EXPIRED"/>
5919       <member name="cert_not_activated" value="9" c:identifier="TP_CONNECTION_STATUS_REASON_CERT_NOT_ACTIVATED"/>
5920       <member name="cert_hostname_mismatch" value="10" c:identifier="TP_CONNECTION_STATUS_REASON_CERT_HOSTNAME_MISMATCH"/>
5921       <member name="cert_fingerprint_mismatch" value="11" c:identifier="TP_CONNECTION_STATUS_REASON_CERT_FINGERPRINT_MISMATCH"/>
5922       <member name="cert_self_signed" value="12" c:identifier="TP_CONNECTION_STATUS_REASON_CERT_SELF_SIGNED"/>
5923       <member name="cert_other_error" value="13" c:identifier="TP_CONNECTION_STATUS_REASON_CERT_OTHER_ERROR"/>
5924       <member name="cert_revoked" value="14" c:identifier="TP_CONNECTION_STATUS_REASON_CERT_REVOKED"/>
5925       <member name="cert_insecure" value="15" c:identifier="TP_CONNECTION_STATUS_REASON_CERT_INSECURE"/>
5926       <member name="cert_limit_exceeded" value="16" c:identifier="TP_CONNECTION_STATUS_REASON_CERT_LIMIT_EXCEEDED"/>
5927     </enumeration>
5928     <callback name="ConnectionUpgradeContactsCb" c:type="TpConnectionUpgradeContactsCb" version="0.7.18">
5929       <doc xml:whitespace="preserve">Signature of a callback used to receive the result of
5930 tp_connection_upgrade_contacts().
5931 If an unrecoverable error occurs (for instance, if @connection becomes
5932 disconnected) it is indicated by @error, but the contacts in @contacts
5933 are still provided.</doc>
5934       <return-value transfer-ownership="none">
5935         <type name="none" c:type="void"/>
5936       </return-value>
5937       <parameters>
5938         <parameter name="connection" transfer-ownership="none">
5939           <doc xml:whitespace="preserve">The connection</doc>
5940           <type name="Connection" c:type="TpConnection*"/>
5941         </parameter>
5942         <parameter name="n_contacts" transfer-ownership="none">
5943           <doc xml:whitespace="preserve">The number of TpContact objects for which an upgrade was requested</doc>
5944           <type name="uint" c:type="guint"/>
5945         </parameter>
5946         <parameter name="contacts" transfer-ownership="none">
5947           <doc xml:whitespace="preserve">An array of @n_contacts TpContact objects (this callback is not given an extra reference to any of these objects, and must call g_object_ref() on any that it will keep)</doc>
5948           <type name="Contact" c:type="TpContact**"/>
5949         </parameter>
5950         <parameter name="error" transfer-ownership="none">
5951           <doc xml:whitespace="preserve">An unrecoverable error, or %NULL if the connection remains valid</doc>
5952           <type name="GLib.Error" c:type="GError*"/>
5953         </parameter>
5954         <parameter name="user_data" transfer-ownership="none" closure="4">
5955           <doc xml:whitespace="preserve">the @user_data that was passed to tp_connection_upgrade_contacts()</doc>
5956           <type name="any" c:type="gpointer"/>
5957         </parameter>
5958         <parameter name="weak_object" transfer-ownership="none">
5959           <doc xml:whitespace="preserve">the @weak_object that was passed to tp_connection_upgrade_contacts()</doc>
5960           <type name="GObject.Object" c:type="GObject*"/>
5961         </parameter>
5962       </parameters>
5963     </callback>
5964     <callback name="ConnectionWhenReadyCb" c:type="TpConnectionWhenReadyCb">
5965       <doc xml:whitespace="preserve">Signature of a callback passed to tp_connection_call_when_ready(), which
5966 will be called exactly once, when the connection becomes ready or
5967 invalid (whichever happens first)</doc>
5968       <return-value transfer-ownership="none">
5969         <type name="none" c:type="void"/>
5970       </return-value>
5971       <parameters>
5972         <parameter name="connection" transfer-ownership="none">
5973           <doc xml:whitespace="preserve">the connection (which may be in the middle of being disposed, if error is non-%NULL, error-&gt;domain is TP_DBUS_ERRORS and error-&gt;code is TP_DBUS_ERROR_PROXY_UNREFERENCED)</doc>
5974           <type name="Connection" c:type="TpConnection*"/>
5975         </parameter>
5976         <parameter name="error" transfer-ownership="none">
5977           <doc xml:whitespace="preserve">%NULL if the connection is ready for use, or the error with which it was invalidated if it is now invalid</doc>
5978           <type name="GLib.Error" c:type="GError*"/>
5979         </parameter>
5980         <parameter name="user_data" transfer-ownership="none" closure="2">
5981           <doc xml:whitespace="preserve">whatever was passed to tp_connection_call_when_ready()</doc>
5982           <type name="any" c:type="gpointer"/>
5983         </parameter>
5984       </parameters>
5985     </callback>
5986     <class name="Contact" c:type="TpContact" version="0.7.18" parent="GObject.Object" glib:type-name="TpContact" glib:get-type="tp_contact_get_type" glib:type-struct="ContactClass">
5987       <doc xml:whitespace="preserve">An object representing a contact on a #TpConnection.
5988 Contact objects support tracking a number of attributes of contacts, as
5989 described by the #TpContactFeature flags. Features can be specified when
5990 instantiating contact objects (with tp_connection_get_contacts_by_id() or
5991 tp_connection_get_contacts_by_handle()), or added to an existing contact
5992 object with tp_connection_upgrade_contacts(). For example, a client wishing
5993 to keep track of a contact's alias would set #TP_CONTACT_FEATURE_ALIAS, and
5994 then listen for the "notify::alias" signal, emitted whenever the
5995 #TpContact:alias property changes.
5996 Note that releasing a #TpContact object might release handle references
5997 held by calling tp_cli_connection_call_request_handles(),
5998 tp_cli_connection_run_request_handles(),
5999 tp_cli_connection_call_hold_handles(),
6000 tp_cli_connection_run_hold_handles(),
6001 tp_cli_connection_interface_contacts_call_get_contact_attributes() or
6002 tp_cli_connection_interface_contacts_run_get_contact_attributes() directly.
6003 Those functions should be avoided in favour of using #TpContact,
6004 tp_connection_hold_handles(), tp_connection_request_handles() and
6005 tp_connection_get_contact_attributes().</doc>
6006       <function name="info_spec_list_copy" c:identifier="tp_contact_info_spec_list_copy" introspectable="0">
6007         <return-value transfer-ownership="full">
6008           <type name="GLib.List" c:type="GList*">
6009             <type name="any" c:type="gpointer"/>
6010           </type>
6011         </return-value>
6012         <parameters>
6013           <parameter name="list" transfer-ownership="none">
6014             <type name="GLib.List" c:type="GList*">
6015               <type name="any" c:type="gpointer"/>
6016             </type>
6017           </parameter>
6018         </parameters>
6019       </function>
6020       <function name="info_spec_list_free" c:identifier="tp_contact_info_spec_list_free" introspectable="0">
6021         <return-value transfer-ownership="none">
6022           <type name="none" c:type="void"/>
6023         </return-value>
6024         <parameters>
6025           <parameter name="list" transfer-ownership="none">
6026             <type name="GLib.List" c:type="GList*">
6027               <type name="any" c:type="gpointer"/>
6028             </type>
6029           </parameter>
6030         </parameters>
6031       </function>
6032       <function name="info_list_copy" c:identifier="tp_contact_info_list_copy" introspectable="0">
6033         <return-value transfer-ownership="full">
6034           <type name="GLib.List" c:type="GList*">
6035             <type name="any" c:type="gpointer"/>
6036           </type>
6037         </return-value>
6038         <parameters>
6039           <parameter name="list" transfer-ownership="none">
6040             <type name="GLib.List" c:type="GList*">
6041               <type name="any" c:type="gpointer"/>
6042             </type>
6043           </parameter>
6044         </parameters>
6045       </function>
6046       <function name="info_list_free" c:identifier="tp_contact_info_list_free" introspectable="0">
6047         <return-value transfer-ownership="none">
6048           <type name="none" c:type="void"/>
6049         </return-value>
6050         <parameters>
6051           <parameter name="list" transfer-ownership="none">
6052             <type name="GLib.List" c:type="GList*">
6053               <type name="any" c:type="gpointer"/>
6054             </type>
6055           </parameter>
6056         </parameters>
6057       </function>
6058       <method name="get_connection" c:identifier="tp_contact_get_connection" version="0.7.18">
6059         <doc xml:whitespace="preserve">&lt;!-- nothing more to say --&gt;
6060 (it must be referenced with g_object_ref if it must remain valid
6061 longer than the contact)</doc>
6062         <return-value transfer-ownership="none">
6063           <doc xml:whitespace="preserve">connection</doc>
6064           <type name="Connection" c:type="TpConnection*"/>
6065         </return-value>
6066       </method>
6067       <method name="get_handle" c:identifier="tp_contact_get_handle" version="0.7.18">
6068         <doc xml:whitespace="preserve">Return the contact's handle, which is of type %TP_HANDLE_TYPE_CONTACT,
6069 or 0 if the #TpContact:connection has become invalid.
6070 This handle is referenced using the Telepathy D-Bus API and remains
6071 referenced for as long as @self exists and the
6072 #TpContact:connection remains valid.
6073 However, the caller of this function does not gain an additional reference
6074 to the handle.</doc>
6075         <return-value transfer-ownership="full">
6076           <doc xml:whitespace="preserve">the same handle as the #TpContact:handle property</doc>
6077           <type name="Handle" c:type="TpHandle"/>
6078         </return-value>
6079       </method>
6080       <method name="get_identifier" c:identifier="tp_contact_get_identifier" version="0.7.18">
6081         <doc xml:whitespace="preserve">Return the contact's identifier. This remains valid for as long as @self
6082 exists; if the caller requires a string that will persist for longer than
6083 that, it must be copied with g_strdup().</doc>
6084         <return-value transfer-ownership="none">
6085           <doc xml:whitespace="preserve">the same non-%NULL identifier as the #TpContact:identifier property</doc>
6086           <type name="utf8" c:type="gchar*"/>
6087         </return-value>
6088       </method>
6089       <method name="has_feature" c:identifier="tp_contact_has_feature" version="0.7.18">
6090         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
6091         <return-value transfer-ownership="none">
6092           <doc xml:whitespace="preserve">%TRUE if @self has been set up to track the feature @feature</doc>
6093           <type name="boolean" c:type="gboolean"/>
6094         </return-value>
6095         <parameters>
6096           <parameter name="feature" transfer-ownership="none">
6097             <doc xml:whitespace="preserve">a desired feature</doc>
6098             <type name="ContactFeature" c:type="TpContactFeature"/>
6099           </parameter>
6100         </parameters>
6101       </method>
6102       <method name="get_alias" c:identifier="tp_contact_get_alias" version="0.7.18">
6103         <doc xml:whitespace="preserve">Return the contact's alias. This remains valid until the main loop
6104 is re-entered; if the caller requires a string that will persist for
6105 longer than that, it must be copied with g_strdup().</doc>
6106         <return-value transfer-ownership="none">
6107           <doc xml:whitespace="preserve">the same non-%NULL alias as the #TpContact:alias</doc>
6108           <type name="utf8" c:type="gchar*"/>
6109         </return-value>
6110       </method>
6111       <method name="get_avatar_token" c:identifier="tp_contact_get_avatar_token" version="0.7.18">
6112         <doc xml:whitespace="preserve">Return the contact's avatar token. This remains valid until the main loop
6113 is re-entered; if the caller requires a string that will persist for
6114 longer than that, it must be copied with g_strdup().
6115 (possibly %NULL)</doc>
6116         <return-value transfer-ownership="none">
6117           <doc xml:whitespace="preserve">the same token as the #TpContact:avatar-token property</doc>
6118           <type name="utf8" c:type="gchar*"/>
6119         </return-value>
6120       </method>
6121       <method name="get_presence_type" c:identifier="tp_contact_get_presence_type" version="0.7.18">
6122         <doc xml:whitespace="preserve">If this object has been set up to track %TP_CONTACT_FEATURE_PRESENCE
6123 and the underlying connection supports either the Presence or
6124 SimplePresence interfaces, return the type of the contact's presence.
6125 Otherwise, return %TP_CONNECTION_PRESENCE_TYPE_UNSET.</doc>
6126         <return-value transfer-ownership="full">
6127           <doc xml:whitespace="preserve">the same presence type as the #TpContact:presence-type property</doc>
6128           <type name="ConnectionPresenceType" c:type="TpConnectionPresenceType"/>
6129         </return-value>
6130       </method>
6131       <method name="get_presence_status" c:identifier="tp_contact_get_presence_status" version="0.7.18">
6132         <doc xml:whitespace="preserve">Return the name of the contact's presence status, or an empty string.
6133 This remains valid until the main loop is re-entered; if the caller
6134 requires a string that will persist for longer than that, it must be
6135 copied with g_strdup().
6136 property</doc>
6137         <return-value transfer-ownership="none">
6138           <doc xml:whitespace="preserve">the same non-%NULL status name as the #TpContact:presence-status</doc>
6139           <type name="utf8" c:type="gchar*"/>
6140         </return-value>
6141       </method>
6142       <method name="get_presence_message" c:identifier="tp_contact_get_presence_message" version="0.7.18">
6143         <doc xml:whitespace="preserve">Return the contact's user-defined status message, or an empty string.
6144 This remains valid until the main loop is re-entered; if the caller
6145 requires a string that will persist for longer than that, it must be
6146 copied with g_strdup().
6147 property</doc>
6148         <return-value transfer-ownership="none">
6149           <doc xml:whitespace="preserve">the same non-%NULL message as the #TpContact:presence-message</doc>
6150           <type name="utf8" c:type="gchar*"/>
6151         </return-value>
6152       </method>
6153       <method name="get_location" c:identifier="tp_contact_get_location" version="0.11.1">
6154         <doc xml:whitespace="preserve">Return the contact's user-defined location or %NULL if the location is
6155 unspecified.
6156 This remains valid until the main loop is re-entered; if the caller
6157 requires a hash table that will persist for longer than that, it must be
6158 reffed with g_hash_table_ref().
6159 #GHashTable (or %NULL) as the #TpContact:location property</doc>
6160         <return-value transfer-ownership="none">
6161           <doc xml:whitespace="preserve">the same</doc>
6162           <type name="GLib.HashTable" c:type="GHashTable*">
6163             <type name="utf8"/>
6164             <type name="GObject.Value"/>
6165           </type>
6166         </return-value>
6167       </method>
6168       <method name="get_capabilities" c:identifier="tp_contact_get_capabilities" version="0.11.3">
6169         <doc xml:whitespace="preserve">&lt;!-- --&gt;
6170 #TpContact:capabilities property</doc>
6171         <return-value transfer-ownership="none">
6172           <doc xml:whitespace="preserve">the same #TpCapabilities (or %NULL) as the</doc>
6173           <type name="Capabilities" c:type="TpCapabilities*"/>
6174         </return-value>
6175       </method>
6176       <method name="get_avatar_file" c:identifier="tp_contact_get_avatar_file" version="0.11.6">
6177         <doc xml:whitespace="preserve">Return the contact's avatar file. This remains valid until the main loop
6178 is re-entered; if the caller requires a #GFile that will persist for
6179 longer than that, it must be reffed with g_object_ref().
6180 (possibly %NULL)</doc>
6181         <return-value transfer-ownership="none">
6182           <doc xml:whitespace="preserve">avatar-file property</doc>
6183           <type name="Gio.File" c:type="GFile*"/>
6184         </return-value>
6185       </method>
6186       <method name="get_avatar_mime_type" c:identifier="tp_contact_get_avatar_mime_type" version="0.11.6">
6187         <doc xml:whitespace="preserve">Return the contact's avatar MIME type. This remains valid until the main loop
6188 is re-entered; if the caller requires a string that will persist for
6189 longer than that, it must be copied with g_strdup().
6190 (possibly %NULL)</doc>
6191         <return-value transfer-ownership="none">
6192           <doc xml:whitespace="preserve">the same MIME type as the #TpContact:avatar-mime-type property</doc>
6193           <type name="utf8" c:type="gchar*"/>
6194         </return-value>
6195       </method>
6196       <method name="get_contact_info" c:identifier="tp_contact_get_contact_info" version="0.11.7">
6197         <doc xml:whitespace="preserve">Returns a newly allocated #GList of contact's vCard fields. The list must be
6198 freed with g_list_free() after used.
6199 Note that the #TpContactInfoField&lt;!-- --&gt;s in the returned #GList are not
6200 dupped before returning from this function. One could copy every item in the
6201 list using tp_contact_info_field_copy().
6202 Same as the #TpContact:contact-info property.
6203 a #GList of #TpContactInfoField, or %NULL if the feature is not yet
6204 prepared.</doc>
6205         <return-value transfer-ownership="container">
6206           <type name="GLib.List" c:type="GList*">
6207             <type name="TelepathyGLib.ContactInfoField"/>
6208           </type>
6209         </return-value>
6210       </method>
6211       <method name="request_contact_info_async" c:identifier="tp_contact_request_contact_info_async" version="0.11.7">
6212         <doc xml:whitespace="preserve">Requests an asynchronous request of the contact info of @self. When
6213 the operation is finished, @callback will be called. You can then call
6214 tp_contact_request_contact_info_finish() to get the result of the operation.
6215 If the operation is successful, the #TpContact:contact-info property will be
6216 updated (emitting "notify::contact-info" signal) before @callback is called.
6217 That means you can call tp_contact_get_contact_info() to get the new vCard
6218 inside @callback.
6219 Note that requesting the vCard from the network can take significant time, so
6220 a bigger timeout is set on the underlying D-Bus call. @cancellable can be
6221 cancelled to free resources used in the D-Bus call if the caller is no longer
6222 interested in the vCard.
6223 If %TP_CONTACT_FEATURE_CONTACT_INFO is not yet set on @self, it will be
6224 set before its property gets updated and @callback is called.</doc>
6225         <return-value transfer-ownership="none">
6226           <type name="none" c:type="void"/>
6227         </return-value>
6228         <parameters>
6229           <parameter name="cancellable" transfer-ownership="none" allow-none="1">
6230             <doc xml:whitespace="preserve">optional #GCancellable object, %NULL to ignore.</doc>
6231             <type name="Gio.Cancellable" c:type="GCancellable*"/>
6232           </parameter>
6233           <parameter name="callback" transfer-ownership="none" scope="async" closure="3">
6234             <doc xml:whitespace="preserve">a callback to call when the request is satisfied</doc>
6235             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
6236           </parameter>
6237           <parameter name="user_data" transfer-ownership="none">
6238             <doc xml:whitespace="preserve">data to pass to @callback</doc>
6239             <type name="any" c:type="gpointer"/>
6240           </parameter>
6241         </parameters>
6242       </method>
6243       <method name="request_contact_info_finish" c:identifier="tp_contact_request_contact_info_finish" version="0.11.7" throws="1">
6244         <doc xml:whitespace="preserve">Finishes an async request of @self info. If the operation was successful,
6245 the contact's vCard can be accessed using tp_contact_get_contact_info().</doc>
6246         <return-value transfer-ownership="none">
6247           <doc xml:whitespace="preserve">%TRUE if the request call was successful, otherwise %FALSE</doc>
6248           <type name="boolean" c:type="gboolean"/>
6249         </return-value>
6250         <parameters>
6251           <parameter name="result" transfer-ownership="none">
6252             <doc xml:whitespace="preserve">a #GAsyncResult</doc>
6253             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
6254           </parameter>
6255         </parameters>
6256       </method>
6257       <property name="alias" transfer-ownership="none">
6258         <doc xml:whitespace="preserve">The contact's alias if available, falling back to their
6259 #TpContact:identifier if no alias is available or if the #TpContact has
6260 not been set up to track %TP_CONTACT_FEATURE_ALIAS.
6261 This alias may have been supplied by the contact themselves, or by the
6262 local user, so it does not necessarily unambiguously identify the contact.
6263 However, it is suitable for use as a main "display name" for the contact.
6264 This is never %NULL for contact objects that are visible to library-user
6265 code.</doc>
6266         <type name="utf8" c:type="gchararray"/>
6267       </property>
6268       <property name="avatar-file" version="0.11.6" transfer-ownership="none">
6269         <doc xml:whitespace="preserve">#GFile to the latest cached avatar image, or %NULL if this contact has
6270 no avatar, or if the avatar data is not yet retrieved.
6271 When #TpContact:avatar-token changes, this property is not updated
6272 immediately, but will be updated when the new avatar data is retrieved and
6273 stored in cache. Until then, the file will keep its old value of the latest
6274 cached avatar image.
6275 This is set to %NULL if %TP_CONTACT_FEATURE_AVATAR_DATA is not set on this
6276 contact. Note that setting %TP_CONTACT_FEATURE_AVATAR_DATA will also
6277 implicitly set %TP_CONTACT_FEATURE_AVATAR_TOKEN.</doc>
6278         <type name="Gio.File" c:type="GFile"/>
6279       </property>
6280       <property name="avatar-mime-type" version="0.11.6" transfer-ownership="none">
6281         <doc xml:whitespace="preserve">MIME type of the latest cached avatar image, or %NULL if this contact has
6282 no avatar, or if the avatar data is not yet retrieved.
6283 This is always the MIME type of the image given by #TpContact:avatar-file.</doc>
6284         <type name="utf8" c:type="gchararray"/>
6285       </property>
6286       <property name="avatar-token" transfer-ownership="none">
6287         <doc xml:whitespace="preserve">An opaque string representing state of the contact's avatar (depending on
6288 the protocol, this might be a hash, a timestamp or something else), or
6289 an empty string if there is no avatar.
6290 This may be %NULL if it is not known whether this contact has an avatar
6291 or not (either for network protocol reasons, or because this #TpContact
6292 has not been set up to track %TP_CONTACT_FEATURE_AVATAR_TOKEN).</doc>
6293         <type name="utf8" c:type="gchararray"/>
6294       </property>
6295       <property name="capabilities" version="0.11.3" transfer-ownership="none">
6296         <doc xml:whitespace="preserve">The capabilities supported by this contact. If the underlying Connection
6297 doesn't support the ContactCapabilities interface, this property will
6298 contain the capabilities supported by the connection.
6299 Use tp_capabilities_is_specific_to_contact() to check if the capabilities
6300 are specific to this #TpContact or not.
6301 This may be %NULL if this #TpContact object has not been set up to track
6302 %TP_CONTACT_FEATURE_CAPABILITIES.</doc>
6303         <type name="Capabilities" c:type="TpCapabilities"/>
6304       </property>
6305       <property name="connection" transfer-ownership="none">
6306         <doc xml:whitespace="preserve">The #TpConnection to which this contact belongs.</doc>
6307         <type name="Connection" c:type="TpConnection"/>
6308       </property>
6309       <property name="contact-info" version="0.11.7" transfer-ownership="none">
6310         <doc xml:whitespace="preserve">A #GList of #TpContactInfoField representing the vCard of this contact.
6311 This is set to %NULL if %TP_CONTACT_FEATURE_CONTACT_INFO is not set on this
6312 contact.</doc>
6313         <type name="ContactInfoList" c:type="TpContactInfoList"/>
6314       </property>
6315       <property name="handle" transfer-ownership="none">
6316         <doc xml:whitespace="preserve">The contact's handle in the Telepathy D-Bus API, a handle of type
6317 %TP_HANDLE_TYPE_CONTACT representing the string
6318 given by #TpContact:identifier.
6319 This handle is referenced using the Telepathy D-Bus API and remains
6320 referenced for as long as the #TpContact exists and the
6321 #TpContact:connection remains valid.
6322 However, getting this property does not cause an additional reference
6323 to the handle to be held.
6324 If the #TpContact:connection becomes invalid, this property is no longer
6325 meaningful and will be set to 0.</doc>
6326         <type name="uint" c:type="guint"/>
6327       </property>
6328       <property name="identifier" transfer-ownership="none">
6329         <doc xml:whitespace="preserve">The contact's identifier in the instant messaging protocol (e.g.
6330 XMPP JID, SIP URI, AOL screenname or IRC nick - whatever the underlying
6331 protocol uses to identify a user).
6332 This is never %NULL for contact objects that are visible to library-user
6333 code.</doc>
6334         <type name="utf8" c:type="gchararray"/>
6335       </property>
6336       <property name="presence-message" transfer-ownership="none">
6337         <doc xml:whitespace="preserve">If this contact has set a user-defined status message, that message;
6338 if not, an empty string (which user interfaces may replace with a
6339 localized form of the #TpContact:presence-status or
6340 #TpContact:presence-type).
6341 This may be an empty string even if the contact has set a message,
6342 if this #TpContact object has not been set up to track
6343 %TP_CONTACT_FEATURE_PRESENCE. It is never %NULL.</doc>
6344         <type name="utf8" c:type="gchararray"/>
6345       </property>
6346       <property name="presence-status" transfer-ownership="none">
6347         <doc xml:whitespace="preserve">A string representing the presence status of this contact. This may be
6348 a well-known string from the Telepathy specification, like "available",
6349 or a connection-manager-specific string, like "out-to-lunch".
6350 This may be an empty string if this #TpContact object has not been set up
6351 to track %TP_CONTACT_FEATURE_PRESENCE. It is never %NULL.</doc>
6352         <type name="utf8" c:type="gchararray"/>
6353       </property>
6354       <property name="presence-type" transfer-ownership="none">
6355         <doc xml:whitespace="preserve">The #TpConnectionPresenceType representing the type of presence status
6356 for this contact.
6357 This is provided so even unknown values for #TpContact:presence-status
6358 can be classified into their fundamental types.
6359 This may be %TP_CONNECTION_PRESENCE_TYPE_UNSET if this #TpContact
6360 has not been set up to track %TP_CONTACT_FEATURE_PRESENCE.</doc>
6361         <type name="uint" c:type="guint"/>
6362       </property>
6363       <glib:signal name="presence-changed" version="0.11.7">
6364         <doc xml:whitespace="preserve">Emitted when this contact's presence changes.</doc>
6365         <return-value transfer-ownership="full">
6366           <type name="none" c:type="void"/>
6367         </return-value>
6368         <parameters>
6369           <parameter name="type" transfer-ownership="none">
6370             <doc xml:whitespace="preserve">The new value of #TpContact:presence-type</doc>
6371             <type name="uint" c:type="guint"/>
6372           </parameter>
6373           <parameter name="status" transfer-ownership="none">
6374             <doc xml:whitespace="preserve">The new value of #TpContact:presence-status</doc>
6375             <type name="utf8" c:type="gchararray"/>
6376           </parameter>
6377           <parameter name="message" transfer-ownership="none">
6378             <doc xml:whitespace="preserve">The new value of #TpContact:presence-message</doc>
6379             <type name="utf8" c:type="gchararray"/>
6380           </parameter>
6381         </parameters>
6382       </glib:signal>
6383     </class>
6384     <record name="ContactClass" c:type="TpContactClass" glib:is-gtype-struct-for="Contact">
6385     </record>
6386     <enumeration name="ContactFeature" version="0.7.18" c:type="TpContactFeature">
6387       <doc xml:whitespace="preserve">Enumeration representing the features a #TpContact can optionally support.
6388 When requesting a #TpContact, library users specify the desired features;
6389 the #TpContact code will only initialize state for those features, to
6390 avoid unwanted D-Bus round-trips and signal connections.
6391 Since 0.11.5, there is a corresponding #GEnumClass type,
6392 %TP_TYPE_CONTACT_FEATURE.</doc>
6393       <member name="alias" value="0" c:identifier="TP_CONTACT_FEATURE_ALIAS"/>
6394       <member name="avatar_token" value="1" c:identifier="TP_CONTACT_FEATURE_AVATAR_TOKEN"/>
6395       <member name="presence" value="2" c:identifier="TP_CONTACT_FEATURE_PRESENCE"/>
6396       <member name="location" value="3" c:identifier="TP_CONTACT_FEATURE_LOCATION"/>
6397       <member name="capabilities" value="4" c:identifier="TP_CONTACT_FEATURE_CAPABILITIES"/>
6398       <member name="avatar_data" value="5" c:identifier="TP_CONTACT_FEATURE_AVATAR_DATA"/>
6399       <member name="contact_info" value="6" c:identifier="TP_CONTACT_FEATURE_CONTACT_INFO"/>
6400     </enumeration>
6401     <record name="ContactInfoField" c:type="TpContactInfoField" glib:type-name="TpContactInfoField" glib:get-type="tp_contact_info_field_get_type">
6402       <field name="field_name" writable="1">
6403         <type name="utf8" c:type="gchar*"/>
6404       </field>
6405       <field name="parameters" writable="1">
6406         <array c:type="GStrv">
6407           <type name="utf8"/>
6408         </array>
6409       </field>
6410       <field name="field_value" writable="1">
6411         <array c:type="GStrv">
6412           <type name="utf8"/>
6413         </array>
6414       </field>
6415       <field name="priv" writable="1">
6416         <type name="any" c:type="gpointer"/>
6417       </field>
6418       <constructor name="new" c:identifier="tp_contact_info_field_new">
6419         <return-value transfer-ownership="full">
6420           <type name="ContactInfoField" c:type="TpContactInfoField*"/>
6421         </return-value>
6422         <parameters>
6423           <parameter name="field_name" transfer-ownership="none">
6424             <type name="utf8" c:type="gchar*"/>
6425           </parameter>
6426           <parameter name="parameters" transfer-ownership="none">
6427             <array c:type="GStrv">
6428               <type name="utf8"/>
6429             </array>
6430           </parameter>
6431           <parameter name="field_value" transfer-ownership="none">
6432             <array c:type="GStrv">
6433               <type name="utf8"/>
6434             </array>
6435           </parameter>
6436         </parameters>
6437       </constructor>
6438       <method name="copy" c:identifier="tp_contact_info_field_copy">
6439         <return-value transfer-ownership="full">
6440           <type name="ContactInfoField" c:type="TpContactInfoField*"/>
6441         </return-value>
6442       </method>
6443       <method name="free" c:identifier="tp_contact_info_field_free">
6444         <return-value transfer-ownership="none">
6445           <type name="none" c:type="void"/>
6446         </return-value>
6447       </method>
6448     </record>
6449     <enumeration name="ContactInfoFieldFlags" c:type="TpContactInfoFieldFlags">
6450       <member name="contact_info_field_flag_parameters_exact" value="1" c:identifier="TP_CONTACT_INFO_FIELD_FLAG_PARAMETERS_EXACT"/>
6451     </enumeration>
6452     <record name="ContactInfoFieldSpec" c:type="TpContactInfoFieldSpec" glib:type-name="TpContactInfoFieldSpec" glib:get-type="tp_contact_info_field_spec_get_type">
6453       <field name="name" writable="1">
6454         <type name="utf8" c:type="gchar*"/>
6455       </field>
6456       <field name="parameters" writable="1">
6457         <array c:type="GStrv">
6458           <type name="utf8"/>
6459         </array>
6460       </field>
6461       <field name="flags" writable="1">
6462         <type name="ContactInfoFieldFlags" c:type="TpContactInfoFieldFlags"/>
6463       </field>
6464       <field name="max" writable="1">
6465         <type name="uint" c:type="guint"/>
6466       </field>
6467       <field name="priv" writable="1">
6468         <type name="any" c:type="gpointer"/>
6469       </field>
6470       <method name="copy" c:identifier="tp_contact_info_field_spec_copy">
6471         <return-value transfer-ownership="full">
6472           <type name="ContactInfoFieldSpec" c:type="TpContactInfoFieldSpec*"/>
6473         </return-value>
6474       </method>
6475       <method name="free" c:identifier="tp_contact_info_field_spec_free">
6476         <return-value transfer-ownership="none">
6477           <type name="none" c:type="void"/>
6478         </return-value>
6479       </method>
6480     </record>
6481     <enumeration name="ContactInfoFlags" c:type="TpContactInfoFlags">
6482       <member name="can_set" value="1" c:identifier="TP_CONTACT_INFO_FLAG_CAN_SET"/>
6483       <member name="push" value="2" c:identifier="TP_CONTACT_INFO_FLAG_PUSH"/>
6484     </enumeration>
6485     <glib:boxed c:type="TpContactInfoList" glib:name="ContactInfoList" glib:type-name="TpContactInfoList" glib:get-type="tp_contact_info_list_get_type">
6486     </glib:boxed>
6487     <glib:boxed c:type="TpContactInfoSpecList" glib:name="ContactInfoSpecList" glib:type-name="TpContactInfoSpecList" glib:get-type="tp_contact_info_spec_list_get_type">
6488     </glib:boxed>
6489     <record name="ContactPrivate" c:type="TpContactPrivate">
6490     </record>
6491     <record name="ContactsMixin" c:type="TpContactsMixin">
6492       <doc xml:whitespace="preserve">Structure to be included in the instance structure of objects that
6493 use this mixin. Initialize it with tp_contacts_mixin_init().
6494 There are no public fields.</doc>
6495       <field name="priv" writable="1">
6496         <type name="ContactsMixinPrivate" c:type="TpContactsMixinPrivate*"/>
6497       </field>
6498     </record>
6499     <record name="ContactsMixinClass" c:type="TpContactsMixinClass">
6500       <doc xml:whitespace="preserve">Structure to be included in the class structure of objects that
6501 use this mixin. Initialize it with tp_contacts_mixin_class_init().
6502 There are no public fields.</doc>
6503       <field name="priv" writable="1">
6504         <type name="ContactsMixinClassPrivate" c:type="TpContactsMixinClassPrivate*"/>
6505       </field>
6506     </record>
6507     <record name="ContactsMixinClassPrivate" c:type="TpContactsMixinClassPrivate">
6508     </record>
6509     <callback name="ContactsMixinFillContactAttributesFunc" c:type="TpContactsMixinFillContactAttributesFunc">
6510       <doc xml:whitespace="preserve">This function is called to supply contact attributes pertaining to
6511 a particular interface, for a list of contacts.
6512 All the handles in @contacts are guaranteed to be valid and
6513 referenced.</doc>
6514       <return-value transfer-ownership="none">
6515         <type name="none" c:type="void"/>
6516       </return-value>
6517       <parameters>
6518         <parameter name="obj" transfer-ownership="none">
6519           <doc xml:whitespace="preserve">An object implementing the Contacts interface with this mixin</doc>
6520           <type name="GObject.Object" c:type="GObject*"/>
6521         </parameter>
6522         <parameter name="contacts" transfer-ownership="none">
6523           <doc xml:whitespace="preserve">The contact handles for which attributes are requested</doc>
6524           <array name="GLib.Array" c:type="GArray*">
6525             <type name="any" c:type="gpointer"/>
6526           </array>
6527         </parameter>
6528         <parameter name="attributes_hash" transfer-ownership="none">
6529           <doc xml:whitespace="preserve">hash of handle =&gt; hash of attributes, containing all the contacts in the contacts array</doc>
6530           <type name="GLib.HashTable" c:type="GHashTable*"/>
6531         </parameter>
6532       </parameters>
6533     </callback>
6534     <record name="ContactsMixinPrivate" c:type="TpContactsMixinPrivate">
6535     </record>
6536     <class name="DBusDaemon" c:type="TpDBusDaemon" version="0.7.1" parent="Proxy" glib:type-name="TpDBusDaemon" glib:get-type="tp_dbus_daemon_get_type" glib:type-struct="DBusDaemonClass">
6537       <doc xml:whitespace="preserve">A subclass of #TpProxy that represents the D-Bus daemon. It mainly provides
6538 functionality to manage well-known names on the bus.</doc>
6539       <constructor name="new" c:identifier="tp_dbus_daemon_new" version="0.7.1" introspectable="0">
6540         <doc xml:whitespace="preserve">Returns a proxy for signals and method calls on a particular bus
6541 connection.
6542 Use tp_dbus_daemon_dup() instead if you just want a connection to the
6543 starter or session bus (which is almost always the right thing for
6544 Telepathy).
6545 to which @connection is connected</doc>
6546         <return-value transfer-ownership="full">
6547           <doc xml:whitespace="preserve">a new proxy for signals and method calls on the bus daemon</doc>
6548           <type name="DBusDaemon" c:type="TpDBusDaemon*"/>
6549         </return-value>
6550         <parameters>
6551           <parameter name="connection" transfer-ownership="none">
6552             <doc xml:whitespace="preserve">a connection to D-Bus</doc>
6553             <type name="DBusGConnection" c:type="DBusGConnection*"/>
6554           </parameter>
6555         </parameters>
6556       </constructor>
6557       <function name="dup" c:identifier="tp_dbus_daemon_dup" version="0.7.26" throws="1">
6558         <doc xml:whitespace="preserve">Returns a proxy for signals and method calls on the D-Bus daemon on which
6559 this process was activated (if it was launched by D-Bus service
6560 activation), or the session bus (otherwise).
6561 If it is not possible to connect to the appropriate bus, raise an error
6562 and return %NULL.
6563 The returned #TpDBusDaemon is cached; the same #TpDBusDaemon object will
6564 be returned by this function repeatedly, as long as at least one reference
6565 exists.
6566 daemon, or %NULL</doc>
6567         <return-value transfer-ownership="full">
6568           <doc xml:whitespace="preserve">a reference to a proxy for signals and method calls on the bus</doc>
6569           <type name="DBusDaemon" c:type="TpDBusDaemon*"/>
6570         </return-value>
6571       </function>
6572       <function name="init_known_interfaces" c:identifier="tp_dbus_daemon_init_known_interfaces" version="0.7.32">
6573         <doc xml:whitespace="preserve">Ensure that the known interfaces for TpDBusDaemon have been set up.
6574 This is done automatically when necessary, but for correct
6575 overriding of library interfaces by local extensions, you should
6576 call this function before calling
6577 tp_proxy_or_subclass_hook_on_interface_add() with first argument
6578 %TP_TYPE_DBUS_DAEMON.</doc>
6579         <return-value transfer-ownership="none">
6580           <type name="none" c:type="void"/>
6581         </return-value>
6582       </function>
6583       <method name="watch_name_owner" c:identifier="tp_dbus_daemon_watch_name_owner" version="0.7.1">
6584         <doc xml:whitespace="preserve">Arrange for @callback to be called with the owner of @name as soon as
6585 possible (which might even be before this function returns!), then
6586 again every time the ownership of @name changes.
6587 If multiple watches are registered for the same @name, they will be called
6588 in the order they were registered.</doc>
6589         <return-value transfer-ownership="none">
6590           <type name="none" c:type="void"/>
6591         </return-value>
6592         <parameters>
6593           <parameter name="name" transfer-ownership="none">
6594             <doc xml:whitespace="preserve">The name whose ownership is to be watched</doc>
6595             <type name="utf8" c:type="gchar*"/>
6596           </parameter>
6597           <parameter name="callback" transfer-ownership="none" scope="notified" closure="3" destroy="4">
6598             <doc xml:whitespace="preserve">Callback to call when the ownership is discovered or changes</doc>
6599             <type name="DBusDaemonNameOwnerChangedCb" c:type="TpDBusDaemonNameOwnerChangedCb"/>
6600           </parameter>
6601           <parameter name="user_data" transfer-ownership="none">
6602             <doc xml:whitespace="preserve">Arbitrary data to pass to @callback</doc>
6603             <type name="any" c:type="gpointer"/>
6604           </parameter>
6605           <parameter name="destroy" transfer-ownership="none" scope="call">
6606             <doc xml:whitespace="preserve">Called to destroy @user_data when the name owner watch is cancelled due to tp_dbus_daemon_cancel_name_owner_watch()</doc>
6607             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
6608           </parameter>
6609         </parameters>
6610       </method>
6611       <method name="cancel_name_owner_watch" c:identifier="tp_dbus_daemon_cancel_name_owner_watch" version="0.7.1">
6612         <doc xml:whitespace="preserve">If there was a previous call to tp_dbus_daemon_watch_name_owner()
6613 with exactly the given @name, @callback and @user_data, remove it.
6614 If more than one watch matching the details provided was active, remove
6615 only the most recently added one.</doc>
6616         <return-value transfer-ownership="none">
6617           <doc xml:whitespace="preserve">%TRUE if there was such a watch, %FALSE otherwise</doc>
6618           <type name="boolean" c:type="gboolean"/>
6619         </return-value>
6620         <parameters>
6621           <parameter name="name" transfer-ownership="none">
6622             <doc xml:whitespace="preserve">the name that was being watched</doc>
6623             <type name="utf8" c:type="gchar*"/>
6624           </parameter>
6625           <parameter name="callback" transfer-ownership="none" scope="call" closure="3">
6626             <doc xml:whitespace="preserve">the callback that was called</doc>
6627             <type name="DBusDaemonNameOwnerChangedCb" c:type="TpDBusDaemonNameOwnerChangedCb"/>
6628           </parameter>
6629           <parameter name="user_data" transfer-ownership="none">
6630             <doc xml:whitespace="preserve">the user data that was provided</doc>
6631             <type name="any" c:type="gconstpointer"/>
6632           </parameter>
6633         </parameters>
6634       </method>
6635       <method name="request_name" c:identifier="tp_dbus_daemon_request_name" version="0.7.30" throws="1">
6636         <doc xml:whitespace="preserve">Claim the given well-known name without queueing, allowing replacement
6637 or replacing an existing name-owner. This makes a synchronous call to the
6638 bus daemon.
6639 an error occurred.</doc>
6640         <return-value transfer-ownership="none">
6641           <doc xml:whitespace="preserve">%TRUE if @well_known_name was claimed, or %FALSE and sets @error if</doc>
6642           <type name="boolean" c:type="gboolean"/>
6643         </return-value>
6644         <parameters>
6645           <parameter name="well_known_name" transfer-ownership="none">
6646             <doc xml:whitespace="preserve">a well-known name to acquire</doc>
6647             <type name="utf8" c:type="gchar*"/>
6648           </parameter>
6649           <parameter name="idempotent" transfer-ownership="none">
6650             <doc xml:whitespace="preserve">whether to consider it to be a success if this process already owns the name</doc>
6651             <type name="boolean" c:type="gboolean"/>
6652           </parameter>
6653         </parameters>
6654       </method>
6655       <method name="release_name" c:identifier="tp_dbus_daemon_release_name" version="0.7.30" throws="1">
6656         <doc xml:whitespace="preserve">Release the given well-known name. This makes a synchronous call to the bus
6657 daemon.
6658 if an error occurred.</doc>
6659         <return-value transfer-ownership="none">
6660           <doc xml:whitespace="preserve">%TRUE if @well_known_name was released, or %FALSE and sets @error</doc>
6661           <type name="boolean" c:type="gboolean"/>
6662         </return-value>
6663         <parameters>
6664           <parameter name="well_known_name" transfer-ownership="none">
6665             <doc xml:whitespace="preserve">a well-known name owned by this process to release</doc>
6666             <type name="utf8" c:type="gchar*"/>
6667           </parameter>
6668         </parameters>
6669       </method>
6670       <method name="get_unique_name" c:identifier="tp_dbus_daemon_get_unique_name" version="0.7.35">
6671         <doc xml:whitespace="preserve">&lt;!-- Returns: is enough --&gt;
6672 as long as this #TpDBusDaemon is</doc>
6673         <return-value transfer-ownership="none">
6674           <doc xml:whitespace="preserve">the unique name of this connection to the bus, which is valid for</doc>
6675           <type name="utf8" c:type="gchar*"/>
6676         </return-value>
6677       </method>
6678       <method name="list_names" c:identifier="tp_dbus_daemon_list_names" version="0.7.35">
6679         <doc xml:whitespace="preserve">Call the ListNames method on the bus daemon, asynchronously. The @callback
6680 will be called from the main loop with a list of all the names (either
6681 unique or well-known) that exist on the bus.
6682 In versions of telepathy-glib that have it, this should be preferred
6683 instead of calling tp_cli_dbus_daemon_call_list_names(), since that
6684 function will result in wakeups for every NameOwnerChanged signal.</doc>
6685         <return-value transfer-ownership="none">
6686           <type name="none" c:type="void"/>
6687         </return-value>
6688         <parameters>
6689           <parameter name="timeout_ms" transfer-ownership="none">
6690             <doc xml:whitespace="preserve">timeout for the call</doc>
6691             <type name="int" c:type="gint"/>
6692           </parameter>
6693           <parameter name="callback" transfer-ownership="none" scope="notified" closure="3" destroy="4">
6694             <doc xml:whitespace="preserve">callback to be called on success or failure; must not be %NULL</doc>
6695             <type name="DBusDaemonListNamesCb" c:type="TpDBusDaemonListNamesCb"/>
6696           </parameter>
6697           <parameter name="user_data" transfer-ownership="none">
6698             <doc xml:whitespace="preserve">opaque user-supplied data to pass to the callback</doc>
6699             <type name="any" c:type="gpointer"/>
6700           </parameter>
6701           <parameter name="destroy" transfer-ownership="none" scope="call">
6702             <doc xml:whitespace="preserve">if not %NULL, called with @user_data as argument after the call has succeeded or failed, or after @weak_object has been destroyed</doc>
6703             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
6704           </parameter>
6705           <parameter name="weak_object" transfer-ownership="none">
6706             <doc xml:whitespace="preserve">if not %NULL, a GObject which will be weakly referenced; if it is destroyed, @callback will not be called at all</doc>
6707             <type name="GObject.Object" c:type="GObject*"/>
6708           </parameter>
6709         </parameters>
6710       </method>
6711       <method name="list_activatable_names" c:identifier="tp_dbus_daemon_list_activatable_names" version="0.7.35">
6712         <doc xml:whitespace="preserve">Call the ListActivatableNames method on the bus daemon, asynchronously.
6713 The @callback will be called from the main loop with a list of all the
6714 well-known names that are available for service-activation on the bus.
6715 In versions of telepathy-glib that have it, this should be preferred
6716 instead of calling tp_cli_dbus_daemon_call_list_activatable_names(), since
6717 that function will result in wakeups for every NameOwnerChanged signal.</doc>
6718         <return-value transfer-ownership="none">
6719           <type name="none" c:type="void"/>
6720         </return-value>
6721         <parameters>
6722           <parameter name="timeout_ms" transfer-ownership="none">
6723             <doc xml:whitespace="preserve">timeout for the call</doc>
6724             <type name="int" c:type="gint"/>
6725           </parameter>
6726           <parameter name="callback" transfer-ownership="none" scope="notified" closure="3" destroy="4">
6727             <doc xml:whitespace="preserve">callback to be called on success or failure; must not be %NULL</doc>
6728             <type name="DBusDaemonListNamesCb" c:type="TpDBusDaemonListNamesCb"/>
6729           </parameter>
6730           <parameter name="user_data" transfer-ownership="none">
6731             <doc xml:whitespace="preserve">opaque user-supplied data to pass to the callback</doc>
6732             <type name="any" c:type="gpointer"/>
6733           </parameter>
6734           <parameter name="destroy" transfer-ownership="none" scope="call">
6735             <doc xml:whitespace="preserve">if not %NULL, called with @user_data as argument after the call has succeeded or failed, or after @weak_object has been destroyed</doc>
6736             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
6737           </parameter>
6738           <parameter name="weak_object" transfer-ownership="none">
6739             <doc xml:whitespace="preserve">if not %NULL, a GObject which will be weakly referenced; if it is destroyed, @callback will not be called at all</doc>
6740             <type name="GObject.Object" c:type="GObject*"/>
6741           </parameter>
6742         </parameters>
6743       </method>
6744       <method name="register_object" c:identifier="tp_dbus_daemon_register_object" version="0.11.3">
6745         <doc xml:whitespace="preserve">Export @object at @object_path. This is a convenience wrapper around
6746 dbus_g_connection_register_g_object(), and behaves similarly.</doc>
6747         <return-value transfer-ownership="none">
6748           <type name="none" c:type="void"/>
6749         </return-value>
6750         <parameters>
6751           <parameter name="object_path" transfer-ownership="none">
6752             <doc xml:whitespace="preserve">an object path</doc>
6753             <type name="utf8" c:type="gchar*"/>
6754           </parameter>
6755           <parameter name="object" transfer-ownership="none">
6756             <doc xml:whitespace="preserve">an object to export</doc>
6757             <type name="GObject.Object" c:type="gpointer"/>
6758           </parameter>
6759         </parameters>
6760       </method>
6761       <method name="unregister_object" c:identifier="tp_dbus_daemon_unregister_object" version="0.11.3">
6762         <doc xml:whitespace="preserve">Stop exporting @object on D-Bus. This is a convenience wrapper around
6763 dbus_g_connection_unregister_g_object(), and behaves similarly.</doc>
6764         <return-value transfer-ownership="none">
6765           <type name="none" c:type="void"/>
6766         </return-value>
6767         <parameters>
6768           <parameter name="object" transfer-ownership="none">
6769             <doc xml:whitespace="preserve">an object previously exported with tp_dbus_daemon_register_object()</doc>
6770             <type name="GObject.Object" c:type="gpointer"/>
6771           </parameter>
6772         </parameters>
6773       </method>
6774     </class>
6775     <record name="DBusDaemonClass" c:type="TpDBusDaemonClass" glib:is-gtype-struct-for="DBusDaemon" version="0.7.1">
6776       <doc xml:whitespace="preserve">The class of #TpDBusDaemon.</doc>
6777     </record>
6778     <callback name="DBusDaemonListNamesCb" c:type="TpDBusDaemonListNamesCb" version="0.7.35">
6779       <doc xml:whitespace="preserve">Signature of a callback for functions that list bus names.</doc>
6780       <return-value transfer-ownership="none">
6781         <type name="none" c:type="void"/>
6782       </return-value>
6783       <parameters>
6784         <parameter name="bus_daemon" transfer-ownership="none">
6785           <doc xml:whitespace="preserve">object representing a connection to a bus</doc>
6786           <type name="DBusDaemon" c:type="TpDBusDaemon*"/>
6787         </parameter>
6788         <parameter name="names" transfer-ownership="none">
6789           <doc xml:whitespace="preserve">constant %NULL-terminated array of constant strings representing bus names, or %NULL on error</doc>
6790           <array c:type="gchar**">
6791             <type name="utf8"/>
6792           </array>
6793         </parameter>
6794         <parameter name="error" transfer-ownership="none">
6795           <doc xml:whitespace="preserve">the error that occurred, or %NULL on success</doc>
6796           <type name="GLib.Error" c:type="GError*"/>
6797         </parameter>
6798         <parameter name="user_data" transfer-ownership="none" closure="3">
6799           <doc xml:whitespace="preserve">the same user data that was passed to tp_dbus_daemon_list_names or tp_dbus_daemon_list_activatable_names</doc>
6800           <type name="any" c:type="gpointer"/>
6801         </parameter>
6802         <parameter name="weak_object" transfer-ownership="none">
6803           <doc xml:whitespace="preserve">the same object that was passed to tp_dbus_daemon_list_names or tp_dbus_daemon_list_activatable_names</doc>
6804           <type name="GObject.Object" c:type="GObject*"/>
6805         </parameter>
6806       </parameters>
6807     </callback>
6808     <callback name="DBusDaemonNameOwnerChangedCb" c:type="TpDBusDaemonNameOwnerChangedCb" version="0.7.1">
6809       <doc xml:whitespace="preserve">The signature of the callback called by tp_dbus_daemon_watch_name_owner().</doc>
6810       <return-value transfer-ownership="none">
6811         <type name="none" c:type="void"/>
6812       </return-value>
6813       <parameters>
6814         <parameter name="bus_daemon" transfer-ownership="none">
6815           <doc xml:whitespace="preserve">The D-Bus daemon</doc>
6816           <type name="DBusDaemon" c:type="TpDBusDaemon*"/>
6817         </parameter>
6818         <parameter name="name" transfer-ownership="none">
6819           <doc xml:whitespace="preserve">The name whose ownership has changed or been discovered</doc>
6820           <type name="utf8" c:type="gchar*"/>
6821         </parameter>
6822         <parameter name="new_owner" transfer-ownership="none">
6823           <doc xml:whitespace="preserve">The unique name that now owns @name</doc>
6824           <type name="utf8" c:type="gchar*"/>
6825         </parameter>
6826         <parameter name="user_data" transfer-ownership="none" closure="3">
6827           <doc xml:whitespace="preserve">Arbitrary user-supplied data as passed to tp_dbus_daemon_watch_name_owner()</doc>
6828           <type name="any" c:type="gpointer"/>
6829         </parameter>
6830       </parameters>
6831     </callback>
6832     <record name="DBusDaemonPrivate" c:type="TpDBusDaemonPrivate">
6833     </record>
6834     <enumeration name="DBusError" version="0.7.1" c:type="TpDBusError">
6835       <doc xml:whitespace="preserve">#GError codes for use with the %TP_DBUS_ERRORS domain.
6836 Since 0.11.5, there is a corresponding #GEnumClass type,
6837 %TP_TYPE_DBUS_ERROR.</doc>
6838       <member name="unknown_remote_error" value="0" c:identifier="TP_DBUS_ERROR_UNKNOWN_REMOTE_ERROR"/>
6839       <member name="proxy_unreferenced" value="1" c:identifier="TP_DBUS_ERROR_PROXY_UNREFERENCED"/>
6840       <member name="no_interface" value="2" c:identifier="TP_DBUS_ERROR_NO_INTERFACE"/>
6841       <member name="name_owner_lost" value="3" c:identifier="TP_DBUS_ERROR_NAME_OWNER_LOST"/>
6842       <member name="invalid_bus_name" value="4" c:identifier="TP_DBUS_ERROR_INVALID_BUS_NAME"/>
6843       <member name="invalid_interface_name" value="5" c:identifier="TP_DBUS_ERROR_INVALID_INTERFACE_NAME"/>
6844       <member name="invalid_object_path" value="6" c:identifier="TP_DBUS_ERROR_INVALID_OBJECT_PATH"/>
6845       <member name="invalid_member_name" value="7" c:identifier="TP_DBUS_ERROR_INVALID_MEMBER_NAME"/>
6846       <member name="object_removed" value="8" c:identifier="TP_DBUS_ERROR_OBJECT_REMOVED"/>
6847       <member name="cancelled" value="9" c:identifier="TP_DBUS_ERROR_CANCELLED"/>
6848       <member name="inconsistent" value="10" c:identifier="TP_DBUS_ERROR_INCONSISTENT"/>
6849     </enumeration>
6850     <enumeration name="DBusNameType" version="0.7.1" c:type="TpDBusNameType">
6851       <doc xml:whitespace="preserve">A set of flags indicating which D-Bus bus names are acceptable.
6852 They can be combined with the bitwise-or operator to accept multiple
6853 types. %TP_DBUS_NAME_TYPE_NOT_BUS_DAEMON and %TP_DBUS_NAME_TYPE_ANY are
6854 the bitwise-or of other appropriate types, for convenience.
6855 Since 0.11.5, there is a corresponding #GFlagsClass type,
6856 %TP_TYPE_DBUS_NAME_TYPE.</doc>
6857       <member name="unique" value="1" c:identifier="TP_DBUS_NAME_TYPE_UNIQUE"/>
6858       <member name="well_known" value="2" c:identifier="TP_DBUS_NAME_TYPE_WELL_KNOWN"/>
6859       <member name="bus_daemon" value="4" c:identifier="TP_DBUS_NAME_TYPE_BUS_DAEMON"/>
6860       <member name="not_bus_daemon" value="3" c:identifier="TP_DBUS_NAME_TYPE_NOT_BUS_DAEMON"/>
6861       <member name="any" value="7" c:identifier="TP_DBUS_NAME_TYPE_ANY"/>
6862     </enumeration>
6863     <record name="DBusPropertiesMixinClass" c:type="_TpDBusPropertiesMixinClass">
6864     </record>
6865     <enumeration name="DBusPropertiesMixinFlags" version="0.7.3" c:type="TpDBusPropertiesMixinFlags">
6866       <doc xml:whitespace="preserve">Bitfield representing allowed access to a property.
6867 Since 0.11.5, there is a corresponding #GFlagsClass type,
6868 %TP_TYPE_DBUS_PROPERTIES_MIXIN_FLAGS.</doc>
6869       <member name="read" value="1" c:identifier="TP_DBUS_PROPERTIES_MIXIN_FLAG_READ"/>
6870       <member name="write" value="2" c:identifier="TP_DBUS_PROPERTIES_MIXIN_FLAG_WRITE"/>
6871     </enumeration>
6872     <callback name="DBusPropertiesMixinGetter" c:type="TpDBusPropertiesMixinGetter">
6873       <doc xml:whitespace="preserve">Signature of a callback used to get the value of a property.
6874 For simplicity, in this mixin we don't allow getting a property to fail;
6875 implementations must always be prepared to return *something*.</doc>
6876       <return-value transfer-ownership="none">
6877         <type name="none" c:type="void"/>
6878       </return-value>
6879       <parameters>
6880         <parameter name="object" transfer-ownership="none">
6881           <doc xml:whitespace="preserve">The exported object with the properties</doc>
6882           <type name="GObject.Object" c:type="GObject*"/>
6883         </parameter>
6884         <parameter name="iface" transfer-ownership="none">
6885           <doc xml:whitespace="preserve">A quark representing the D-Bus interface name</doc>
6886           <type name="GLib.Quark" c:type="GQuark"/>
6887         </parameter>
6888         <parameter name="name" transfer-ownership="none">
6889           <doc xml:whitespace="preserve">A quark representing the D-Bus property name</doc>
6890           <type name="GLib.Quark" c:type="GQuark"/>
6891         </parameter>
6892         <parameter name="value" transfer-ownership="none">
6893           <doc xml:whitespace="preserve">A GValue pre-initialized to the right type, into which to put the value</doc>
6894           <type name="GObject.Value" c:type="GValue*"/>
6895         </parameter>
6896         <parameter name="getter_data" transfer-ownership="none">
6897           <doc xml:whitespace="preserve">The getter_data from the #TpDBusPropertiesMixinPropImpl</doc>
6898           <type name="any" c:type="gpointer"/>
6899         </parameter>
6900       </parameters>
6901     </callback>
6902     <record name="DBusPropertiesMixinIfaceImpl" c:type="TpDBusPropertiesMixinIfaceImpl" version="0.7.3">
6903       <doc xml:whitespace="preserve">Structure representing an implementation of an interface's properties.
6904 In addition to the documented fields, there are four pointers which must
6905 be initialized to %NULL.
6906 This structure must either be statically allocated, or duplicated and never
6907 freed, so it always remains valid.</doc>
6908       <field name="name" writable="1">
6909         <type name="utf8" c:type="gchar*"/>
6910       </field>
6911       <field name="getter" writable="1">
6912         <type name="DBusPropertiesMixinGetter" c:type="TpDBusPropertiesMixinGetter"/>
6913       </field>
6914       <field name="setter" writable="1">
6915         <type name="DBusPropertiesMixinSetter" c:type="TpDBusPropertiesMixinSetter"/>
6916       </field>
6917       <field name="props" writable="1">
6918         <type name="DBusPropertiesMixinPropImpl" c:type="TpDBusPropertiesMixinPropImpl*"/>
6919       </field>
6920       <field name="_1" writable="1">
6921         <type name="GObject.Callback" c:type="GCallback"/>
6922       </field>
6923       <field name="_2" writable="1">
6924         <type name="GObject.Callback" c:type="GCallback"/>
6925       </field>
6926       <field name="mixin_next" writable="1">
6927         <type name="any" c:type="gpointer"/>
6928       </field>
6929       <field name="mixin_priv" writable="1">
6930         <type name="any" c:type="gpointer"/>
6931       </field>
6932     </record>
6933     <record name="DBusPropertiesMixinIfaceInfo" c:type="TpDBusPropertiesMixinIfaceInfo" version="0.7.3">
6934       <doc xml:whitespace="preserve">Semi-abstract description of an interface. Each service GInterface that
6935 has properties must have one of these attached to it via
6936 tp_svc_interface_set_dbus_properties_info() in its base_init function;
6937 service GInterfaces that do not have properties may have one of these
6938 with no properties.
6939 This structure must either be statically allocated, or duplicated and never
6940 freed, so it always remains valid.
6941 In addition to the documented members, there are two private pointers
6942 for future expansion, which must always be initialized to %NULL.</doc>
6943       <field name="dbus_interface" writable="1">
6944         <type name="GLib.Quark" c:type="GQuark"/>
6945       </field>
6946       <field name="props" writable="1">
6947         <type name="DBusPropertiesMixinPropInfo" c:type="TpDBusPropertiesMixinPropInfo*"/>
6948       </field>
6949       <field name="_1" writable="1">
6950         <type name="GObject.Callback" c:type="GCallback"/>
6951       </field>
6952       <field name="_2" writable="1">
6953         <type name="GObject.Callback" c:type="GCallback"/>
6954       </field>
6955     </record>
6956     <record name="DBusPropertiesMixinPropImpl" c:type="TpDBusPropertiesMixinPropImpl" version="0.7.3">
6957       <doc xml:whitespace="preserve">Structure representing an implementation of a property.
6958 In addition to the documented fields, there are three pointers which must
6959 be initialized to %NULL.
6960 This structure must either be statically allocated, or duplicated and never
6961 freed, so it always remains valid.</doc>
6962       <field name="name" writable="1">
6963         <type name="utf8" c:type="gchar*"/>
6964       </field>
6965       <field name="getter_data" writable="1">
6966         <type name="any" c:type="gpointer"/>
6967       </field>
6968       <field name="setter_data" writable="1">
6969         <type name="any" c:type="gpointer"/>
6970       </field>
6971       <field name="_1" writable="1">
6972         <type name="GObject.Callback" c:type="GCallback"/>
6973       </field>
6974       <field name="_2" writable="1">
6975         <type name="GObject.Callback" c:type="GCallback"/>
6976       </field>
6977       <field name="mixin_priv" writable="1">
6978         <type name="any" c:type="gpointer"/>
6979       </field>
6980     </record>
6981     <record name="DBusPropertiesMixinPropInfo" c:type="TpDBusPropertiesMixinPropInfo" version="0.7.3">
6982       <doc xml:whitespace="preserve">Semi-abstract description of a property, as attached to a service
6983 GInterface. This structure must either be statically allocated, or
6984 duplicated and never freed, so it always remains valid.
6985 In addition to the documented members, there are two private pointers
6986 for future expansion, which must always be initialized to %NULL.</doc>
6987       <field name="name" writable="1">
6988         <type name="GLib.Quark" c:type="GQuark"/>
6989       </field>
6990       <field name="flags" writable="1">
6991         <type name="DBusPropertiesMixinFlags" c:type="TpDBusPropertiesMixinFlags"/>
6992       </field>
6993       <field name="dbus_signature" writable="1">
6994         <type name="utf8" c:type="gchar*"/>
6995       </field>
6996       <field name="type" writable="1">
6997         <type name="GType" c:type="GType"/>
6998       </field>
6999       <field name="_1" writable="1">
7000         <type name="GObject.Callback" c:type="GCallback"/>
7001       </field>
7002       <field name="_2" writable="1">
7003         <type name="GObject.Callback" c:type="GCallback"/>
7004       </field>
7005     </record>
7006     <callback name="DBusPropertiesMixinSetter" c:type="TpDBusPropertiesMixinSetter" throws="1">
7007       <doc xml:whitespace="preserve">Signature of a callback used to get the value of a property.</doc>
7008       <return-value transfer-ownership="none">
7009         <doc xml:whitespace="preserve">%TRUE on success, %FALSE (setting @error) on failure</doc>
7010         <type name="boolean" c:type="gboolean"/>
7011       </return-value>
7012       <parameters>
7013         <parameter name="object" transfer-ownership="none">
7014           <doc xml:whitespace="preserve">The exported object with the properties</doc>
7015           <type name="GObject.Object" c:type="GObject*"/>
7016         </parameter>
7017         <parameter name="iface" transfer-ownership="none">
7018           <doc xml:whitespace="preserve">A quark representing the D-Bus interface name</doc>
7019           <type name="GLib.Quark" c:type="GQuark"/>
7020         </parameter>
7021         <parameter name="name" transfer-ownership="none">
7022           <doc xml:whitespace="preserve">A quark representing the D-Bus property name</doc>
7023           <type name="GLib.Quark" c:type="GQuark"/>
7024         </parameter>
7025         <parameter name="value" transfer-ownership="none">
7026           <doc xml:whitespace="preserve">The new value for the property</doc>
7027           <type name="GObject.Value" c:type="GValue*"/>
7028         </parameter>
7029         <parameter name="setter_data" transfer-ownership="none">
7030           <doc xml:whitespace="preserve">The setter_data from the #TpDBusPropertiesMixinPropImpl</doc>
7031           <type name="any" c:type="gpointer"/>
7032         </parameter>
7033       </parameters>
7034     </callback>
7035     <enumeration name="DTMFEvent" c:type="TpDTMFEvent">
7036       <member name="digit_0" value="0" c:identifier="TP_DTMF_EVENT_DIGIT_0"/>
7037       <member name="digit_1" value="1" c:identifier="TP_DTMF_EVENT_DIGIT_1"/>
7038       <member name="digit_2" value="2" c:identifier="TP_DTMF_EVENT_DIGIT_2"/>
7039       <member name="digit_3" value="3" c:identifier="TP_DTMF_EVENT_DIGIT_3"/>
7040       <member name="digit_4" value="4" c:identifier="TP_DTMF_EVENT_DIGIT_4"/>
7041       <member name="digit_5" value="5" c:identifier="TP_DTMF_EVENT_DIGIT_5"/>
7042       <member name="digit_6" value="6" c:identifier="TP_DTMF_EVENT_DIGIT_6"/>
7043       <member name="digit_7" value="7" c:identifier="TP_DTMF_EVENT_DIGIT_7"/>
7044       <member name="digit_8" value="8" c:identifier="TP_DTMF_EVENT_DIGIT_8"/>
7045       <member name="digit_9" value="9" c:identifier="TP_DTMF_EVENT_DIGIT_9"/>
7046       <member name="asterisk" value="10" c:identifier="TP_DTMF_EVENT_ASTERISK"/>
7047       <member name="hash" value="11" c:identifier="TP_DTMF_EVENT_HASH"/>
7048       <member name="letter_a" value="12" c:identifier="TP_DTMF_EVENT_LETTER_A"/>
7049       <member name="letter_b" value="13" c:identifier="TP_DTMF_EVENT_LETTER_B"/>
7050       <member name="letter_c" value="14" c:identifier="TP_DTMF_EVENT_LETTER_C"/>
7051       <member name="letter_d" value="15" c:identifier="TP_DTMF_EVENT_LETTER_D"/>
7052     </enumeration>
7053     <enumeration name="DebugLevel" c:type="TpDebugLevel">
7054       <member name="error" value="0" c:identifier="TP_DEBUG_LEVEL_ERROR"/>
7055       <member name="critical" value="1" c:identifier="TP_DEBUG_LEVEL_CRITICAL"/>
7056       <member name="warning" value="2" c:identifier="TP_DEBUG_LEVEL_WARNING"/>
7057       <member name="message" value="3" c:identifier="TP_DEBUG_LEVEL_MESSAGE"/>
7058       <member name="info" value="4" c:identifier="TP_DEBUG_LEVEL_INFO"/>
7059       <member name="debug" value="5" c:identifier="TP_DEBUG_LEVEL_DEBUG"/>
7060     </enumeration>
7061     <enumeration name="DeliveryReportingSupportFlags" c:type="TpDeliveryReportingSupportFlags">
7062       <member name="failures" value="1" c:identifier="TP_DELIVERY_REPORTING_SUPPORT_FLAG_RECEIVE_FAILURES"/>
7063       <member name="successes" value="2" c:identifier="TP_DELIVERY_REPORTING_SUPPORT_FLAG_RECEIVE_SUCCESSES"/>
7064       <member name="read" value="4" c:identifier="TP_DELIVERY_REPORTING_SUPPORT_FLAG_RECEIVE_READ"/>
7065       <member name="deleted" value="8" c:identifier="TP_DELIVERY_REPORTING_SUPPORT_FLAG_RECEIVE_DELETED"/>
7066     </enumeration>
7067     <enumeration name="DeliveryStatus" c:type="TpDeliveryStatus">
7068       <member name="unknown" value="0" c:identifier="TP_DELIVERY_STATUS_UNKNOWN"/>
7069       <member name="delivered" value="1" c:identifier="TP_DELIVERY_STATUS_DELIVERED"/>
7070       <member name="temporarily_failed" value="2" c:identifier="TP_DELIVERY_STATUS_TEMPORARILY_FAILED"/>
7071       <member name="permanently_failed" value="3" c:identifier="TP_DELIVERY_STATUS_PERMANENTLY_FAILED"/>
7072       <member name="accepted" value="4" c:identifier="TP_DELIVERY_STATUS_ACCEPTED"/>
7073       <member name="read" value="5" c:identifier="TP_DELIVERY_STATUS_READ"/>
7074       <member name="deleted" value="6" c:identifier="TP_DELIVERY_STATUS_DELETED"/>
7075     </enumeration>
7076     <constant name="ERROR_PREFIX" value="org.freedesktop.Telepathy.Error">
7077       <type name="utf8"/>
7078     </constant>
7079     <enumeration name="Error" c:type="TpError" glib:error-quark="tp_error_quark">
7080       <doc xml:whitespace="preserve">Enumerated type representing the Telepathy D-Bus errors.</doc>
7081       <member name="network_error" value="0" c:identifier="TP_ERROR_NETWORK_ERROR"/>
7082       <member name="not_implemented" value="1" c:identifier="TP_ERROR_NOT_IMPLEMENTED"/>
7083       <member name="invalid_argument" value="2" c:identifier="TP_ERROR_INVALID_ARGUMENT"/>
7084       <member name="not_available" value="3" c:identifier="TP_ERROR_NOT_AVAILABLE"/>
7085       <member name="permission_denied" value="4" c:identifier="TP_ERROR_PERMISSION_DENIED"/>
7086       <member name="disconnected" value="5" c:identifier="TP_ERROR_DISCONNECTED"/>
7087       <member name="invalid_handle" value="6" c:identifier="TP_ERROR_INVALID_HANDLE"/>
7088       <member name="channel_banned" value="7" c:identifier="TP_ERROR_CHANNEL_BANNED"/>
7089       <member name="channel_full" value="8" c:identifier="TP_ERROR_CHANNEL_FULL"/>
7090       <member name="channel_invite_only" value="9" c:identifier="TP_ERROR_CHANNEL_INVITE_ONLY"/>
7091       <member name="not_yours" value="10" c:identifier="TP_ERROR_NOT_YOURS"/>
7092       <member name="cancelled" value="11" c:identifier="TP_ERROR_CANCELLED"/>
7093       <member name="authentication_failed" value="12" c:identifier="TP_ERROR_AUTHENTICATION_FAILED"/>
7094       <member name="encryption_not_available" value="13" c:identifier="TP_ERROR_ENCRYPTION_NOT_AVAILABLE"/>
7095       <member name="encryption_error" value="14" c:identifier="TP_ERROR_ENCRYPTION_ERROR"/>
7096       <member name="cert_not_provided" value="15" c:identifier="TP_ERROR_CERT_NOT_PROVIDED"/>
7097       <member name="cert_untrusted" value="16" c:identifier="TP_ERROR_CERT_UNTRUSTED"/>
7098       <member name="cert_expired" value="17" c:identifier="TP_ERROR_CERT_EXPIRED"/>
7099       <member name="cert_not_activated" value="18" c:identifier="TP_ERROR_CERT_NOT_ACTIVATED"/>
7100       <member name="cert_fingerprint_mismatch" value="19" c:identifier="TP_ERROR_CERT_FINGERPRINT_MISMATCH"/>
7101       <member name="cert_hostname_mismatch" value="20" c:identifier="TP_ERROR_CERT_HOSTNAME_MISMATCH"/>
7102       <member name="cert_self_signed" value="21" c:identifier="TP_ERROR_CERT_SELF_SIGNED"/>
7103       <member name="cert_invalid" value="22" c:identifier="TP_ERROR_CERT_INVALID"/>
7104       <member name="not_capable" value="23" c:identifier="TP_ERROR_NOT_CAPABLE"/>
7105       <member name="offline" value="24" c:identifier="TP_ERROR_OFFLINE"/>
7106       <member name="channel_kicked" value="25" c:identifier="TP_ERROR_CHANNEL_KICKED"/>
7107       <member name="busy" value="26" c:identifier="TP_ERROR_BUSY"/>
7108       <member name="no_answer" value="27" c:identifier="TP_ERROR_NO_ANSWER"/>
7109       <member name="does_not_exist" value="28" c:identifier="TP_ERROR_DOES_NOT_EXIST"/>
7110       <member name="terminated" value="29" c:identifier="TP_ERROR_TERMINATED"/>
7111       <member name="connection_refused" value="30" c:identifier="TP_ERROR_CONNECTION_REFUSED"/>
7112       <member name="connection_failed" value="31" c:identifier="TP_ERROR_CONNECTION_FAILED"/>
7113       <member name="connection_lost" value="32" c:identifier="TP_ERROR_CONNECTION_LOST"/>
7114       <member name="already_connected" value="33" c:identifier="TP_ERROR_ALREADY_CONNECTED"/>
7115       <member name="connection_replaced" value="34" c:identifier="TP_ERROR_CONNECTION_REPLACED"/>
7116       <member name="registration_exists" value="35" c:identifier="TP_ERROR_REGISTRATION_EXISTS"/>
7117       <member name="service_busy" value="36" c:identifier="TP_ERROR_SERVICE_BUSY"/>
7118       <member name="resource_unavailable" value="37" c:identifier="TP_ERROR_RESOURCE_UNAVAILABLE"/>
7119       <member name="would_break_anonymity" value="38" c:identifier="TP_ERROR_WOULD_BREAK_ANONYMITY"/>
7120       <member name="cert_revoked" value="39" c:identifier="TP_ERROR_CERT_REVOKED"/>
7121       <member name="cert_insecure" value="40" c:identifier="TP_ERROR_CERT_INSECURE"/>
7122       <member name="cert_limit_exceeded" value="41" c:identifier="TP_ERROR_CERT_LIMIT_EXCEEDED"/>
7123     </enumeration>
7124     <enumeration name="FileHashType" c:type="TpFileHashType">
7125       <member name="none" value="0" c:identifier="TP_FILE_HASH_TYPE_NONE"/>
7126       <member name="md5" value="1" c:identifier="TP_FILE_HASH_TYPE_MD5"/>
7127       <member name="sha1" value="2" c:identifier="TP_FILE_HASH_TYPE_SHA1"/>
7128       <member name="sha256" value="3" c:identifier="TP_FILE_HASH_TYPE_SHA256"/>
7129     </enumeration>
7130     <enumeration name="FileTransferState" c:type="TpFileTransferState">
7131       <member name="none" value="0" c:identifier="TP_FILE_TRANSFER_STATE_NONE"/>
7132       <member name="pending" value="1" c:identifier="TP_FILE_TRANSFER_STATE_PENDING"/>
7133       <member name="accepted" value="2" c:identifier="TP_FILE_TRANSFER_STATE_ACCEPTED"/>
7134       <member name="open" value="3" c:identifier="TP_FILE_TRANSFER_STATE_OPEN"/>
7135       <member name="completed" value="4" c:identifier="TP_FILE_TRANSFER_STATE_COMPLETED"/>
7136       <member name="cancelled" value="5" c:identifier="TP_FILE_TRANSFER_STATE_CANCELLED"/>
7137     </enumeration>
7138     <enumeration name="FileTransferStateChangeReason" c:type="TpFileTransferStateChangeReason">
7139       <member name="none" value="0" c:identifier="TP_FILE_TRANSFER_STATE_CHANGE_REASON_NONE"/>
7140       <member name="requested" value="1" c:identifier="TP_FILE_TRANSFER_STATE_CHANGE_REASON_REQUESTED"/>
7141       <member name="local_stopped" value="2" c:identifier="TP_FILE_TRANSFER_STATE_CHANGE_REASON_LOCAL_STOPPED"/>
7142       <member name="remote_stopped" value="3" c:identifier="TP_FILE_TRANSFER_STATE_CHANGE_REASON_REMOTE_STOPPED"/>
7143       <member name="local_error" value="4" c:identifier="TP_FILE_TRANSFER_STATE_CHANGE_REASON_LOCAL_ERROR"/>
7144       <member name="remote_error" value="5" c:identifier="TP_FILE_TRANSFER_STATE_CHANGE_REASON_REMOTE_ERROR"/>
7145     </enumeration>
7146     <record name="GroupMixin" c:type="TpGroupMixin">
7147       <doc xml:whitespace="preserve">Structure representing the group mixin as used in a particular class.
7148 To be placed in the implementation's instance structure.
7149 All fields should be considered read-only.</doc>
7150       <field name="handle_repo" writable="1">
7151         <type name="HandleRepoIface" c:type="TpHandleRepoIface*"/>
7152       </field>
7153       <field name="self_handle" writable="1">
7154         <type name="Handle" c:type="TpHandle"/>
7155       </field>
7156       <field name="group_flags" writable="1">
7157         <type name="ChannelGroupFlags" c:type="TpChannelGroupFlags"/>
7158       </field>
7159       <field name="members" writable="1">
7160         <type name="HandleSet" c:type="TpHandleSet*"/>
7161       </field>
7162       <field name="local_pending" writable="1">
7163         <type name="HandleSet" c:type="TpHandleSet*"/>
7164       </field>
7165       <field name="remote_pending" writable="1">
7166         <type name="HandleSet" c:type="TpHandleSet*"/>
7167       </field>
7168       <field name="priv" writable="1">
7169         <type name="GroupMixinPrivate" c:type="TpGroupMixinPrivate*"/>
7170       </field>
7171     </record>
7172     <callback name="GroupMixinAddMemberFunc" c:type="TpGroupMixinAddMemberFunc" throws="1">
7173       <doc xml:whitespace="preserve">Signature of the callback used to add a member to the group.
7174 This should perform the necessary operations in the underlying IM protocol
7175 to cause the member to be added.</doc>
7176       <return-value transfer-ownership="none">
7177         <doc xml:whitespace="preserve">%TRUE on success, %FALSE with @error set on error</doc>
7178         <type name="boolean" c:type="gboolean"/>
7179       </return-value>
7180       <parameters>
7181         <parameter name="obj" transfer-ownership="none">
7182           <doc xml:whitespace="preserve">An object implementing the group interface with this mixin</doc>
7183           <type name="GObject.Object" c:type="GObject*"/>
7184         </parameter>
7185         <parameter name="handle" transfer-ownership="none">
7186           <doc xml:whitespace="preserve">The handle of the contact to be added</doc>
7187           <type name="Handle" c:type="TpHandle"/>
7188         </parameter>
7189         <parameter name="message" transfer-ownership="none">
7190           <doc xml:whitespace="preserve">A message to be sent if the protocol supports it</doc>
7191           <type name="utf8" c:type="gchar*"/>
7192         </parameter>
7193       </parameters>
7194     </callback>
7195     <record name="GroupMixinClass" c:type="TpGroupMixinClass">
7196       <doc xml:whitespace="preserve">Structure representing the group mixin as used in a particular class.
7197 To be placed in the implementation's class structure.
7198 Initialize this with tp_group_mixin_class_init().
7199 All fields should be considered read-only.</doc>
7200       <field name="add_member" writable="1">
7201         <type name="GroupMixinAddMemberFunc" c:type="TpGroupMixinAddMemberFunc"/>
7202       </field>
7203       <field name="remove_member" writable="1">
7204         <type name="GroupMixinRemMemberFunc" c:type="TpGroupMixinRemMemberFunc"/>
7205       </field>
7206       <field name="priv" writable="1">
7207         <type name="GroupMixinClassPrivate" c:type="TpGroupMixinClassPrivate*"/>
7208       </field>
7209     </record>
7210     <record name="GroupMixinClassPrivate" c:type="TpGroupMixinClassPrivate">
7211     </record>
7212     <record name="GroupMixinPrivate" c:type="TpGroupMixinPrivate">
7213     </record>
7214     <callback name="GroupMixinRemMemberFunc" c:type="TpGroupMixinRemMemberFunc" throws="1">
7215       <doc xml:whitespace="preserve">Signature of the callback used to remove a member from the group.
7216 This should perform the necessary operations in the underlying IM protocol
7217 to cause the member to be removed.</doc>
7218       <return-value transfer-ownership="none">
7219         <doc xml:whitespace="preserve">%TRUE on success, %FALSE with @error set on error</doc>
7220         <type name="boolean" c:type="gboolean"/>
7221       </return-value>
7222       <parameters>
7223         <parameter name="obj" transfer-ownership="none">
7224           <doc xml:whitespace="preserve">An object implementing the group interface with this mixin</doc>
7225           <type name="GObject.Object" c:type="GObject*"/>
7226         </parameter>
7227         <parameter name="handle" transfer-ownership="none">
7228           <doc xml:whitespace="preserve">The handle of the contact to be removed</doc>
7229           <type name="Handle" c:type="TpHandle"/>
7230         </parameter>
7231         <parameter name="message" transfer-ownership="none">
7232           <doc xml:whitespace="preserve">A message to be sent if the protocol supports it</doc>
7233           <type name="utf8" c:type="gchar*"/>
7234         </parameter>
7235       </parameters>
7236     </callback>
7237     <callback name="GroupMixinRemMemberWithReasonFunc" c:type="TpGroupMixinRemMemberWithReasonFunc" throws="1">
7238       <doc xml:whitespace="preserve">Signature of the callback used to remove a member from the group.
7239 This should perform the necessary operations in the underlying IM protocol
7240 to cause the member to be removed.
7241 Set this with tp_group_mixin_class_set_remove_with_reason_func(), .</doc>
7242       <return-value transfer-ownership="none">
7243         <doc xml:whitespace="preserve">%TRUE on success, %FALSE with @error set on error</doc>
7244         <type name="boolean" c:type="gboolean"/>
7245       </return-value>
7246       <parameters>
7247         <parameter name="obj" transfer-ownership="none">
7248           <doc xml:whitespace="preserve">An object implementing the group interface with this mixin</doc>
7249           <type name="GObject.Object" c:type="GObject*"/>
7250         </parameter>
7251         <parameter name="handle" transfer-ownership="none">
7252           <doc xml:whitespace="preserve">The handle of the contact to be removed</doc>
7253           <type name="Handle" c:type="TpHandle"/>
7254         </parameter>
7255         <parameter name="message" transfer-ownership="none">
7256           <doc xml:whitespace="preserve">A message to be sent if the protocol supports it</doc>
7257           <type name="utf8" c:type="gchar*"/>
7258         </parameter>
7259         <parameter name="reason" transfer-ownership="none">
7260           <doc xml:whitespace="preserve">A #TpChannelGroupChangeReason indicating the reason</doc>
7261           <type name="uint" c:type="guint"/>
7262         </parameter>
7263       </parameters>
7264     </callback>
7265     <class name="HandleChannelsContext" c:type="TpHandleChannelsContext" version="0.11.6" parent="GObject.Object" glib:type-name="TpHandleChannelsContext" glib:get-type="tp_handle_channels_context_get_type" glib:type-struct="HandleChannelsContextClass">
7266       <doc xml:whitespace="preserve">Data structure representing the context of a Handler.HandleChannels()
7267 call.</doc>
7268       <method name="accept" c:identifier="tp_handle_channels_context_accept" version="0.11.6">
7269         <doc xml:whitespace="preserve">Called by #TpBaseClientClassAddDispatchOperationImpl when it's done so
7270 the D-Bus method can return.</doc>
7271         <return-value transfer-ownership="none">
7272           <type name="none" c:type="void"/>
7273         </return-value>
7274       </method>
7275       <method name="fail" c:identifier="tp_handle_channels_context_fail" version="0.11.6">
7276         <doc xml:whitespace="preserve">Called by #TpBaseClientClassAddDispatchOperationImpl to raise a D-Bus error.</doc>
7277         <return-value transfer-ownership="none">
7278           <type name="none" c:type="void"/>
7279         </return-value>
7280         <parameters>
7281           <parameter name="error" transfer-ownership="none">
7282             <doc xml:whitespace="preserve">the error to return from the method</doc>
7283             <type name="GLib.Error" c:type="GError*"/>
7284           </parameter>
7285         </parameters>
7286       </method>
7287       <method name="delay" c:identifier="tp_handle_channels_context_delay" version="0.11.6">
7288         <doc xml:whitespace="preserve">Called by #TpBaseClientClassAddDispatchOperationImpl to indicate that it
7289 implements the method in an async way. The caller must take a reference
7290 to the #TpHandleChannelsContext before calling this function, and
7291 is responsible for calling either
7292 tp_handle_channels_context_accept() or
7293 tp_handle_channels_context_fail() later.</doc>
7294         <return-value transfer-ownership="none">
7295           <type name="none" c:type="void"/>
7296         </return-value>
7297       </method>
7298       <method name="get_handler_info" c:identifier="tp_handle_channels_context_get_handler_info" version="0.11.14">
7299         <doc xml:whitespace="preserve">Return any extra information that accompanied this request to handle
7300 channels (the Handler_Info argument from the HandleChannels D-Bus method).
7301 Well-known keys for this map will be defined by the Telepathy D-Bus
7302 Interface Specification; at the time of writing, none have been defined.
7303 The returned hash table is only valid for as long as @self is.
7304 extra handler information, in a form suitable for use with
7305 tp_asv_get_string() etc.</doc>
7306         <return-value transfer-ownership="none">
7307           <doc xml:whitespace="preserve">extensible</doc>
7308           <type name="GLib.HashTable" c:type="GHashTable*">
7309             <type name="utf8"/>
7310             <type name="GObject.Value"/>
7311           </type>
7312         </return-value>
7313       </method>
7314       <property name="account" version="0.11.6" writable="1" construct-only="1" transfer-ownership="none">
7315         <doc xml:whitespace="preserve">A #TpAccount object representing the Account of the DispatchOperation
7316 that has been passed to HandleChannels.
7317 Read-only except during construction.
7318 This property can't be %NULL.</doc>
7319         <type name="Account" c:type="TpAccount"/>
7320       </property>
7321       <property name="channels" version="0.11.6" writable="1" construct-only="1" transfer-ownership="none">
7322         <doc xml:whitespace="preserve">A #GPtrArray containing #TpChannel objects representing the channels
7323 that have been passed to HandleChannels.
7324 Read-only except during construction.
7325 This property can't be %NULL.</doc>
7326         <type name="GLib.PtrArray" c:type="GPtrArray"/>
7327       </property>
7328       <property name="connection" version="0.11.6" writable="1" construct-only="1" transfer-ownership="none">
7329         <doc xml:whitespace="preserve">A #TpConnection object representing the Connection of the DispatchOperation
7330 that has been passed to HandleChannels.
7331 Read-only except during construction.
7332 This property can't be %NULL.</doc>
7333         <type name="Connection" c:type="TpConnection"/>
7334       </property>
7335       <property name="dbus-context" version="0.11.6" introspectable="0" readable="0" writable="1" construct-only="1" transfer-ownership="none">
7336         <doc xml:whitespace="preserve">The #DBusGMethodInvocation representing the D-Bus context of the
7337 HandleChannels call.
7338 Can only be written during construction.</doc>
7339         <type name="any" c:type="gpointer"/>
7340       </property>
7341       <property name="requests-satisfied" version="0.11.6" writable="1" construct-only="1" transfer-ownership="none">
7342         <doc xml:whitespace="preserve">A #GPtrArray containing #TpChannelRequest objects representing the
7343 requests that have been passed to HandleChannels.
7344 Read-only except during construction.
7345 This property can't be %NULL.</doc>
7346         <type name="GLib.PtrArray" c:type="GPtrArray"/>
7347       </property>
7348       <property name="user-action-time" version="0.11.6" writable="1" construct-only="1" transfer-ownership="none">
7349         <doc xml:whitespace="preserve">The time at which user action occurred, or one of the
7350 special values %TP_USER_ACTION_TIME_NOT_USER_ACTION or
7351 %TP_USER_ACTION_TIME_CURRENT_TIME
7352 (see #TpAccountChannelRequest:user-action-time for details)
7353 Read-only except during construction.</doc>
7354         <type name="int64" c:type="gint64"/>
7355       </property>
7356       <glib:signal name="done" version="0.11.6">
7357         <doc xml:whitespace="preserve">Emitted when tp_handle_channels_context_accept has been called on @self.</doc>
7358         <return-value transfer-ownership="full">
7359           <type name="none" c:type="void"/>
7360         </return-value>
7361       </glib:signal>
7362     </class>
7363     <record name="HandleChannelsContextClass" c:type="TpHandleChannelsContextClass" glib:is-gtype-struct-for="HandleChannelsContext" version="0.11.6">
7364       <doc xml:whitespace="preserve">The class of a #TpHandleChannelsContext.</doc>
7365     </record>
7366     <record name="HandleChannelsContextPrivate" c:type="TpHandleChannelsContextPrivate">
7367     </record>
7368     <interface name="HandleRepoIface" c:type="TpHandleRepoIface" glib:type-name="TpHandleRepoIface" glib:get-type="tp_handle_repo_iface_get_type" glib:type-struct="HandleRepoIfaceClass">
7369       <doc xml:whitespace="preserve">Dummy typedef representing any implementation of this interface.</doc>
7370       <property name="handle-type" writable="1" construct-only="1" transfer-ownership="none">
7371         <type name="uint" c:type="guint"/>
7372       </property>
7373     </interface>
7374     <record name="HandleRepoIfaceClass" c:type="TpHandleRepoIfaceClass" glib:is-gtype-struct-for="HandleRepoIface">
7375       <doc xml:whitespace="preserve">The class of a handle repository interface. The structure layout is
7376 only available within telepathy-glib, for the handle repository
7377 implementations' benefit.</doc>
7378     </record>
7379     <record name="HandleSet" c:type="TpHandleSet" glib:type-name="TpHandleSet" glib:get-type="tp_handle_set_get_type">
7380       <doc xml:whitespace="preserve">A set of handles. This is similar to a #TpIntSet (and implemented using
7381 one), but adding a handle to the set also references it.</doc>
7382       <constructor name="new" c:identifier="tp_handle_set_new" introspectable="0">
7383         <doc xml:whitespace="preserve">Creates a new #TpHandleSet</doc>
7384         <return-value transfer-ownership="full">
7385           <doc xml:whitespace="preserve">A new #TpHandleSet</doc>
7386           <type name="HandleSet" c:type="TpHandleSet*"/>
7387         </return-value>
7388         <parameters>
7389           <parameter name="repo" transfer-ownership="none">
7390             <doc xml:whitespace="preserve">#TpHandleRepoIface that holds the handles to be reffed by this set</doc>
7391             <type name="HandleRepoIface" c:type="TpHandleRepoIface*"/>
7392           </parameter>
7393         </parameters>
7394       </constructor>
7395       <constructor name="new_from_array" c:identifier="tp_handle_set_new_from_array" version="0.11.7" introspectable="0">
7396         <doc xml:whitespace="preserve">Creates a new #TpHandleSet</doc>
7397         <return-value transfer-ownership="full">
7398           <doc xml:whitespace="preserve">A new #TpHandleSet</doc>
7399           <type name="HandleSet" c:type="TpHandleSet*"/>
7400         </return-value>
7401         <parameters>
7402           <parameter name="repo" transfer-ownership="none">
7403             <doc xml:whitespace="preserve">#TpHandleRepoIface that holds the handles to be reffed by this set</doc>
7404             <type name="HandleRepoIface" c:type="TpHandleRepoIface*"/>
7405           </parameter>
7406           <parameter name="array" transfer-ownership="none">
7407             <doc xml:whitespace="preserve">array of handles to be referenced by this set</doc>
7408             <array name="GLib.Array" c:type="GArray*">
7409               <type name="uint"/>
7410             </array>
7411           </parameter>
7412         </parameters>
7413       </constructor>
7414       <method name="copy" c:identifier="tp_handle_set_copy" version="0.11.6" introspectable="0">
7415         <doc xml:whitespace="preserve">Creates a new #TpHandleSet with the same contents as @other.</doc>
7416         <return-value transfer-ownership="full">
7417           <doc xml:whitespace="preserve">a new set</doc>
7418           <type name="HandleSet" c:type="TpHandleSet*"/>
7419         </return-value>
7420       </method>
7421       <method name="clear" c:identifier="tp_handle_set_clear" version="0.11.6" introspectable="0">
7422         <doc xml:whitespace="preserve">Remove every handle from @set, releasing the references it holds.</doc>
7423         <return-value transfer-ownership="none">
7424           <type name="none" c:type="void"/>
7425         </return-value>
7426       </method>
7427       <method name="destroy" c:identifier="tp_handle_set_destroy" introspectable="0">
7428         <doc xml:whitespace="preserve">Delete a #TpHandleSet and unreference any handles that it holds</doc>
7429         <return-value transfer-ownership="none">
7430           <type name="none" c:type="void"/>
7431         </return-value>
7432       </method>
7433       <method name="peek" c:identifier="tp_handle_set_peek" introspectable="0">
7434         <doc xml:whitespace="preserve">&lt;!--Returns: says it all, this comment is just to keep gtkdoc happy--&gt;</doc>
7435         <return-value transfer-ownership="none">
7436           <doc xml:whitespace="preserve">the underlying #TpIntSet used by this #TpHandleSet</doc>
7437           <type name="IntSet" c:type="TpIntSet*"/>
7438         </return-value>
7439       </method>
7440       <method name="add" c:identifier="tp_handle_set_add" introspectable="0">
7441         <doc xml:whitespace="preserve">Add a handle to a #TpHandleSet, and reference it in the attached
7442 #TpHandleRepoIface</doc>
7443         <return-value transfer-ownership="none">
7444           <type name="none" c:type="void"/>
7445         </return-value>
7446         <parameters>
7447           <parameter name="handle" transfer-ownership="none">
7448             <doc xml:whitespace="preserve">handle to add</doc>
7449             <type name="Handle" c:type="TpHandle"/>
7450           </parameter>
7451         </parameters>
7452       </method>
7453       <method name="remove" c:identifier="tp_handle_set_remove" introspectable="0">
7454         <doc xml:whitespace="preserve">Remove a handle from a #TpHandleSet, and unreference it in the attached
7455 #TpHandleRepoIface</doc>
7456         <return-value transfer-ownership="none">
7457           <doc xml:whitespace="preserve">FALSE if the handle was invalid, or was not in this set</doc>
7458           <type name="boolean" c:type="gboolean"/>
7459         </return-value>
7460         <parameters>
7461           <parameter name="handle" transfer-ownership="none">
7462             <doc xml:whitespace="preserve">handle to remove</doc>
7463             <type name="Handle" c:type="TpHandle"/>
7464           </parameter>
7465         </parameters>
7466       </method>
7467       <method name="is_member" c:identifier="tp_handle_set_is_member" introspectable="0">
7468         <doc xml:whitespace="preserve">Check if the handle is in this set</doc>
7469         <return-value transfer-ownership="none">
7470           <doc xml:whitespace="preserve">TRUE if the handle is in this set</doc>
7471           <type name="boolean" c:type="gboolean"/>
7472         </return-value>
7473         <parameters>
7474           <parameter name="handle" transfer-ownership="none">
7475             <doc xml:whitespace="preserve">handle to check</doc>
7476             <type name="Handle" c:type="TpHandle"/>
7477           </parameter>
7478         </parameters>
7479       </method>
7480       <method name="foreach" c:identifier="tp_handle_set_foreach" introspectable="0">
7481         <doc xml:whitespace="preserve">Call @func(@set, @handle, @userdata) for each handle in @set.</doc>
7482         <return-value transfer-ownership="none">
7483           <type name="none" c:type="void"/>
7484         </return-value>
7485         <parameters>
7486           <parameter name="func" transfer-ownership="none" scope="call" closure="2">
7487             <doc xml:whitespace="preserve">A callback</doc>
7488             <type name="HandleSetMemberFunc" c:type="TpHandleSetMemberFunc"/>
7489           </parameter>
7490           <parameter name="userdata" transfer-ownership="none">
7491             <doc xml:whitespace="preserve">Arbitrary data to pass to @func</doc>
7492             <type name="any" c:type="gpointer"/>
7493           </parameter>
7494         </parameters>
7495       </method>
7496       <method name="is_empty" c:identifier="tp_handle_set_is_empty" version="0.11.6" introspectable="0">
7497         <doc xml:whitespace="preserve">Return the same thing as &lt;code&gt;(tp_handle_set_size (set) == 0)&lt;/code&gt;,
7498 but calculated more efficiently.</doc>
7499         <return-value transfer-ownership="none">
7500           <doc xml:whitespace="preserve">%TRUE if the set has no members</doc>
7501           <type name="boolean" c:type="gboolean"/>
7502         </return-value>
7503       </method>
7504       <method name="size" c:identifier="tp_handle_set_size" introspectable="0">
7505         <doc xml:whitespace="preserve">&lt;!--no further documentation needed--&gt;</doc>
7506         <return-value transfer-ownership="none">
7507           <doc xml:whitespace="preserve">the number of handles in this set</doc>
7508           <type name="int" c:type="int"/>
7509         </return-value>
7510       </method>
7511       <method name="to_array" c:identifier="tp_handle_set_to_array" introspectable="0">
7512         <doc xml:whitespace="preserve">&lt;!--Returns: says it all, this comment is just to keep gtkdoc happy--&gt;
7513 the handles in the set</doc>
7514         <return-value transfer-ownership="full">
7515           <doc xml:whitespace="preserve">a newly-allocated GArray of guint representing</doc>
7516           <array name="GLib.Array" c:type="GArray*">
7517             <type name="uint"/>
7518           </array>
7519         </return-value>
7520       </method>
7521       <method name="update" c:identifier="tp_handle_set_update" introspectable="0">
7522         <doc xml:whitespace="preserve">Add a set of handles to a handle set, referencing those which are not
7523 already members. The TpIntSet returned must be freed with tp_intset_destroy.</doc>
7524         <return-value transfer-ownership="full">
7525           <doc xml:whitespace="preserve">the handles which were added (some subset of @add)</doc>
7526           <type name="IntSet" c:type="TpIntSet*"/>
7527         </return-value>
7528         <parameters>
7529           <parameter name="add" transfer-ownership="none">
7530             <doc xml:whitespace="preserve">a #TpIntSet of handles to add</doc>
7531             <type name="IntSet" c:type="TpIntSet*"/>
7532           </parameter>
7533         </parameters>
7534       </method>
7535       <method name="difference_update" c:identifier="tp_handle_set_difference_update" introspectable="0">
7536         <doc xml:whitespace="preserve">Remove a set of handles from a handle set, dereferencing those which are
7537 members. The TpIntSet returned must be freed with tp_intset_destroy.
7538 If you want to be able to inspect the handles in the set returned,
7539 you must ensure that this function does not cause their refcount to drop
7540 to zero, for instance by temporarily taking a reference to all the
7541 handles in @remove, calling this function, doing something with the
7542 result and discarding the temporary references.
7543 of @remove).</doc>
7544         <return-value transfer-ownership="full">
7545           <doc xml:whitespace="preserve">the handles which were dereferenced and removed (some subset</doc>
7546           <type name="IntSet" c:type="TpIntSet*"/>
7547         </return-value>
7548         <parameters>
7549           <parameter name="remove" transfer-ownership="none">
7550             <doc xml:whitespace="preserve">a #TpIntSet of handles to remove</doc>
7551             <type name="IntSet" c:type="TpIntSet*"/>
7552           </parameter>
7553         </parameters>
7554       </method>
7555     </record>
7556     <callback name="HandleSetMemberFunc" c:type="TpHandleSetMemberFunc" introspectable="0">
7557       <doc xml:whitespace="preserve">Signature of the callback used to iterate over the handle set in
7558 tp_handle_set_foreach().</doc>
7559       <return-value transfer-ownership="none">
7560         <type name="none" c:type="void"/>
7561       </return-value>
7562       <parameters>
7563         <parameter name="set" transfer-ownership="none">
7564           <doc xml:whitespace="preserve">The set of handles on which tp_handle_set_foreach() was called</doc>
7565           <type name="HandleSet" c:type="TpHandleSet*"/>
7566         </parameter>
7567         <parameter name="handle" transfer-ownership="none">
7568           <doc xml:whitespace="preserve">A handle in the set</doc>
7569           <type name="Handle" c:type="TpHandle"/>
7570         </parameter>
7571         <parameter name="userdata" transfer-ownership="none">
7572           <doc xml:whitespace="preserve">Arbitrary user data as supplied to tp_handle_set_foreach()</doc>
7573           <type name="any" c:type="gpointer"/>
7574         </parameter>
7575       </parameters>
7576     </callback>
7577     <enumeration name="HandleType" c:type="TpHandleType">
7578       <member name="none" value="0" c:identifier="TP_HANDLE_TYPE_NONE"/>
7579       <member name="contact" value="1" c:identifier="TP_HANDLE_TYPE_CONTACT"/>
7580       <member name="room" value="2" c:identifier="TP_HANDLE_TYPE_ROOM"/>
7581       <member name="list" value="3" c:identifier="TP_HANDLE_TYPE_LIST"/>
7582       <member name="group" value="4" c:identifier="TP_HANDLE_TYPE_GROUP"/>
7583     </enumeration>
7584     <constant name="IFACE_ACCOUNT" value="org.freedesktop.Telepathy.Account">
7585       <type name="utf8"/>
7586     </constant>
7587     <constant name="IFACE_ACCOUNT_INTERFACE_AVATAR" value="org.freedesktop.Telepathy.Account.Interface.Avatar">
7588       <type name="utf8"/>
7589     </constant>
7590     <constant name="IFACE_ACCOUNT_INTERFACE_STORAGE" value="org.freedesktop.Telepathy.Account.Interface.Storage">
7591       <type name="utf8"/>
7592     </constant>
7593     <constant name="IFACE_ACCOUNT_MANAGER" value="org.freedesktop.Telepathy.AccountManager">
7594       <type name="utf8"/>
7595     </constant>
7596     <constant name="IFACE_CHANNEL" value="org.freedesktop.Telepathy.Channel">
7597       <type name="utf8"/>
7598     </constant>
7599     <constant name="IFACE_CHANNEL_DISPATCHER" value="org.freedesktop.Telepathy.ChannelDispatcher">
7600       <type name="utf8"/>
7601     </constant>
7602     <constant name="IFACE_CHANNEL_DISPATCHER_INTERFACE_OPERATION_LIST" value="org.freedesktop.Telepathy.ChannelDispatcher.Interface.OperationList">
7603       <type name="utf8"/>
7604     </constant>
7605     <constant name="IFACE_CHANNEL_DISPATCH_OPERATION" value="org.freedesktop.Telepathy.ChannelDispatchOperation">
7606       <type name="utf8"/>
7607     </constant>
7608     <constant name="IFACE_CHANNEL_INTERFACE_ANONYMITY" value="org.freedesktop.Telepathy.Channel.Interface.Anonymity">
7609       <type name="utf8"/>
7610     </constant>
7611     <constant name="IFACE_CHANNEL_INTERFACE_CALL_STATE" value="org.freedesktop.Telepathy.Channel.Interface.CallState">
7612       <type name="utf8"/>
7613     </constant>
7614     <constant name="IFACE_CHANNEL_INTERFACE_CHAT_STATE" value="org.freedesktop.Telepathy.Channel.Interface.ChatState">
7615       <type name="utf8"/>
7616     </constant>
7617     <constant name="IFACE_CHANNEL_INTERFACE_DESTROYABLE" value="org.freedesktop.Telepathy.Channel.Interface.Destroyable">
7618       <type name="utf8"/>
7619     </constant>
7620     <constant name="IFACE_CHANNEL_INTERFACE_DTMF" value="org.freedesktop.Telepathy.Channel.Interface.DTMF">
7621       <type name="utf8"/>
7622     </constant>
7623     <constant name="IFACE_CHANNEL_INTERFACE_GROUP" value="org.freedesktop.Telepathy.Channel.Interface.Group">
7624       <type name="utf8"/>
7625     </constant>
7626     <constant name="IFACE_CHANNEL_INTERFACE_HOLD" value="org.freedesktop.Telepathy.Channel.Interface.Hold">
7627       <type name="utf8"/>
7628     </constant>
7629     <constant name="IFACE_CHANNEL_INTERFACE_MEDIA_SIGNALLING" value="org.freedesktop.Telepathy.Channel.Interface.MediaSignalling">
7630       <type name="utf8"/>
7631     </constant>
7632     <constant name="IFACE_CHANNEL_INTERFACE_MESSAGES" value="org.freedesktop.Telepathy.Channel.Interface.Messages">
7633       <type name="utf8"/>
7634     </constant>
7635     <constant name="IFACE_CHANNEL_INTERFACE_PASSWORD" value="org.freedesktop.Telepathy.Channel.Interface.Password">
7636       <type name="utf8"/>
7637     </constant>
7638     <constant name="IFACE_CHANNEL_INTERFACE_SERVICE_POINT" value="org.freedesktop.Telepathy.Channel.Interface.ServicePoint">
7639       <type name="utf8"/>
7640     </constant>
7641     <constant name="IFACE_CHANNEL_INTERFACE_TUBE" value="org.freedesktop.Telepathy.Channel.Interface.Tube">
7642       <type name="utf8"/>
7643     </constant>
7644     <constant name="IFACE_CHANNEL_REQUEST" value="org.freedesktop.Telepathy.ChannelRequest">
7645       <type name="utf8"/>
7646     </constant>
7647     <constant name="IFACE_CHANNEL_TYPE_CONTACT_LIST" value="org.freedesktop.Telepathy.Channel.Type.ContactList">
7648       <type name="utf8"/>
7649     </constant>
7650     <constant name="IFACE_CHANNEL_TYPE_CONTACT_SEARCH" value="org.freedesktop.Telepathy.Channel.Type.ContactSearch">
7651       <type name="utf8"/>
7652     </constant>
7653     <constant name="IFACE_CHANNEL_TYPE_DBUS_TUBE" value="org.freedesktop.Telepathy.Channel.Type.DBusTube">
7654       <type name="utf8"/>
7655     </constant>
7656     <constant name="IFACE_CHANNEL_TYPE_FILE_TRANSFER" value="org.freedesktop.Telepathy.Channel.Type.FileTransfer">
7657       <type name="utf8"/>
7658     </constant>
7659     <constant name="IFACE_CHANNEL_TYPE_ROOM_LIST" value="org.freedesktop.Telepathy.Channel.Type.RoomList">
7660       <type name="utf8"/>
7661     </constant>
7662     <constant name="IFACE_CHANNEL_TYPE_STREAMED_MEDIA" value="org.freedesktop.Telepathy.Channel.Type.StreamedMedia">
7663       <type name="utf8"/>
7664     </constant>
7665     <constant name="IFACE_CHANNEL_TYPE_STREAM_TUBE" value="org.freedesktop.Telepathy.Channel.Type.StreamTube">
7666       <type name="utf8"/>
7667     </constant>
7668     <constant name="IFACE_CHANNEL_TYPE_TEXT" value="org.freedesktop.Telepathy.Channel.Type.Text">
7669       <type name="utf8"/>
7670     </constant>
7671     <constant name="IFACE_CHANNEL_TYPE_TUBES" value="org.freedesktop.Telepathy.Channel.Type.Tubes">
7672       <type name="utf8"/>
7673     </constant>
7674     <constant name="IFACE_CLIENT" value="org.freedesktop.Telepathy.Client">
7675       <type name="utf8"/>
7676     </constant>
7677     <constant name="IFACE_CLIENT_APPROVER" value="org.freedesktop.Telepathy.Client.Approver">
7678       <type name="utf8"/>
7679     </constant>
7680     <constant name="IFACE_CLIENT_HANDLER" value="org.freedesktop.Telepathy.Client.Handler">
7681       <type name="utf8"/>
7682     </constant>
7683     <constant name="IFACE_CLIENT_INTERFACE_REQUESTS" value="org.freedesktop.Telepathy.Client.Interface.Requests">
7684       <type name="utf8"/>
7685     </constant>
7686     <constant name="IFACE_CLIENT_OBSERVER" value="org.freedesktop.Telepathy.Client.Observer">
7687       <type name="utf8"/>
7688     </constant>
7689     <constant name="IFACE_CONNECTION" value="org.freedesktop.Telepathy.Connection">
7690       <type name="utf8"/>
7691     </constant>
7692     <constant name="IFACE_CONNECTION_INTERFACE_ALIASING" value="org.freedesktop.Telepathy.Connection.Interface.Aliasing">
7693       <type name="utf8"/>
7694     </constant>
7695     <constant name="IFACE_CONNECTION_INTERFACE_ANONYMITY" value="org.freedesktop.Telepathy.Connection.Interface.Anonymity">
7696       <type name="utf8"/>
7697     </constant>
7698     <constant name="IFACE_CONNECTION_INTERFACE_AVATARS" value="org.freedesktop.Telepathy.Connection.Interface.Avatars">
7699       <type name="utf8"/>
7700     </constant>
7701     <constant name="IFACE_CONNECTION_INTERFACE_BALANCE" value="org.freedesktop.Telepathy.Connection.Interface.Balance">
7702       <type name="utf8"/>
7703     </constant>
7704     <constant name="IFACE_CONNECTION_INTERFACE_CAPABILITIES" value="org.freedesktop.Telepathy.Connection.Interface.Capabilities">
7705       <type name="utf8"/>
7706     </constant>
7707     <constant name="IFACE_CONNECTION_INTERFACE_CELLULAR" value="org.freedesktop.Telepathy.Connection.Interface.Cellular">
7708       <type name="utf8"/>
7709     </constant>
7710     <constant name="IFACE_CONNECTION_INTERFACE_CONTACTS" value="org.freedesktop.Telepathy.Connection.Interface.Contacts">
7711       <type name="utf8"/>
7712     </constant>
7713     <constant name="IFACE_CONNECTION_INTERFACE_CONTACT_CAPABILITIES" value="org.freedesktop.Telepathy.Connection.Interface.ContactCapabilities">
7714       <type name="utf8"/>
7715     </constant>
7716     <constant name="IFACE_CONNECTION_INTERFACE_CONTACT_INFO" value="org.freedesktop.Telepathy.Connection.Interface.ContactInfo">
7717       <type name="utf8"/>
7718     </constant>
7719     <constant name="IFACE_CONNECTION_INTERFACE_LOCATION" value="org.freedesktop.Telepathy.Connection.Interface.Location">
7720       <type name="utf8"/>
7721     </constant>
7722     <constant name="IFACE_CONNECTION_INTERFACE_PRESENCE" value="org.freedesktop.Telepathy.Connection.Interface.Presence">
7723       <type name="utf8"/>
7724     </constant>
7725     <constant name="IFACE_CONNECTION_INTERFACE_REQUESTS" value="org.freedesktop.Telepathy.Connection.Interface.Requests">
7726       <type name="utf8"/>
7727     </constant>
7728     <constant name="IFACE_CONNECTION_INTERFACE_SERVICE_POINT" value="org.freedesktop.Telepathy.Connection.Interface.ServicePoint">
7729       <type name="utf8"/>
7730     </constant>
7731     <constant name="IFACE_CONNECTION_INTERFACE_SIMPLE_PRESENCE" value="org.freedesktop.Telepathy.Connection.Interface.SimplePresence">
7732       <type name="utf8"/>
7733     </constant>
7734     <constant name="IFACE_CONNECTION_MANAGER" value="org.freedesktop.Telepathy.ConnectionManager">
7735       <type name="utf8"/>
7736     </constant>
7737     <constant name="IFACE_DBUS_DAEMON" value="org.freedesktop.DBus">
7738       <type name="utf8"/>
7739     </constant>
7740     <constant name="IFACE_DBUS_INTROSPECTABLE" value="org.freedesktop.DBus.Introspectable">
7741       <type name="utf8"/>
7742     </constant>
7743     <constant name="IFACE_DBUS_PEER" value="org.freedesktop.DBus.Peer">
7744       <type name="utf8"/>
7745     </constant>
7746     <constant name="IFACE_DBUS_PROPERTIES" value="org.freedesktop.DBus.Properties">
7747       <type name="utf8"/>
7748     </constant>
7749     <constant name="IFACE_DEBUG" value="org.freedesktop.Telepathy.Debug">
7750       <type name="utf8"/>
7751     </constant>
7752     <constant name="IFACE_MEDIA_SESSION_HANDLER" value="org.freedesktop.Telepathy.Media.SessionHandler">
7753       <type name="utf8"/>
7754     </constant>
7755     <constant name="IFACE_MEDIA_STREAM_HANDLER" value="org.freedesktop.Telepathy.Media.StreamHandler">
7756       <type name="utf8"/>
7757     </constant>
7758     <constant name="IFACE_PROPERTIES_INTERFACE" value="org.freedesktop.Telepathy.Properties">
7759       <type name="utf8"/>
7760     </constant>
7761     <constant name="IFACE_PROTOCOL" value="org.freedesktop.Telepathy.Protocol">
7762       <type name="utf8"/>
7763     </constant>
7764     <callback name="IntFunc" c:type="TpIntFunc">
7765       <doc xml:whitespace="preserve">A callback function acting on unsigned integers.</doc>
7766       <return-value transfer-ownership="none">
7767         <type name="none" c:type="void"/>
7768       </return-value>
7769       <parameters>
7770         <parameter name="i" transfer-ownership="none">
7771           <doc xml:whitespace="preserve">The relevant integer</doc>
7772           <type name="uint" c:type="guint"/>
7773         </parameter>
7774         <parameter name="userdata" transfer-ownership="none">
7775           <doc xml:whitespace="preserve">Opaque user data</doc>
7776           <type name="any" c:type="gpointer"/>
7777         </parameter>
7778       </parameters>
7779     </callback>
7780     <record name="IntSet" c:type="TpIntSet" glib:type-name="TpIntSet" glib:get-type="tp_intset_get_type">
7781       <doc xml:whitespace="preserve">Opaque type representing a set of unsigned integers.</doc>
7782       <constructor name="new" c:identifier="tp_intset_new">
7783         <doc xml:whitespace="preserve">Allocate a new integer set.</doc>
7784         <return-value transfer-ownership="full">
7785           <doc xml:whitespace="preserve">a new, empty integer set to be destroyed with tp_intset_destroy()</doc>
7786           <type name="IntSet" c:type="TpIntSet*"/>
7787         </return-value>
7788       </constructor>
7789       <constructor name="new_containing" c:identifier="tp_intset_new_containing">
7790         <doc xml:whitespace="preserve">Allocate a new integer set containing the given integer.
7791 tp_intset_destroy()</doc>
7792         <return-value transfer-ownership="full">
7793           <doc xml:whitespace="preserve">a new integer set containing @element, to be destroyed with</doc>
7794           <type name="IntSet" c:type="TpIntSet*"/>
7795         </return-value>
7796         <parameters>
7797           <parameter name="element" transfer-ownership="none">
7798             <doc xml:whitespace="preserve">integer to add to a new set</doc>
7799             <type name="uint" c:type="guint"/>
7800           </parameter>
7801         </parameters>
7802       </constructor>
7803       <method name="destroy" c:identifier="tp_intset_destroy">
7804         <doc xml:whitespace="preserve">Free all memory used by the set.</doc>
7805         <return-value transfer-ownership="none">
7806           <type name="none" c:type="void"/>
7807         </return-value>
7808       </method>
7809       <method name="clear" c:identifier="tp_intset_clear">
7810         <doc xml:whitespace="preserve">Unset every integer in the set.</doc>
7811         <return-value transfer-ownership="none">
7812           <type name="none" c:type="void"/>
7813         </return-value>
7814       </method>
7815       <method name="add" c:identifier="tp_intset_add">
7816         <doc xml:whitespace="preserve">Add an integer into a TpIntSet.</doc>
7817         <return-value transfer-ownership="none">
7818           <type name="none" c:type="void"/>
7819         </return-value>
7820         <parameters>
7821           <parameter name="element" transfer-ownership="none">
7822             <doc xml:whitespace="preserve">integer to add</doc>
7823             <type name="uint" c:type="guint"/>
7824           </parameter>
7825         </parameters>
7826       </method>
7827       <method name="remove" c:identifier="tp_intset_remove">
7828         <doc xml:whitespace="preserve">Remove an integer from a TpIntSet</doc>
7829         <return-value transfer-ownership="none">
7830           <doc xml:whitespace="preserve">%TRUE if @element was previously in @set</doc>
7831           <type name="boolean" c:type="gboolean"/>
7832         </return-value>
7833         <parameters>
7834           <parameter name="element" transfer-ownership="none">
7835             <doc xml:whitespace="preserve">integer to add</doc>
7836             <type name="uint" c:type="guint"/>
7837           </parameter>
7838         </parameters>
7839       </method>
7840       <method name="is_member" c:identifier="tp_intset_is_member">
7841         <doc xml:whitespace="preserve">Tests if @element is a member of @set</doc>
7842         <return-value transfer-ownership="none">
7843           <doc xml:whitespace="preserve">%TRUE if @element is in @set</doc>
7844           <type name="boolean" c:type="gboolean"/>
7845         </return-value>
7846         <parameters>
7847           <parameter name="element" transfer-ownership="none">
7848             <doc xml:whitespace="preserve">integer to test</doc>
7849             <type name="uint" c:type="guint"/>
7850           </parameter>
7851         </parameters>
7852       </method>
7853       <method name="foreach" c:identifier="tp_intset_foreach">
7854         <doc xml:whitespace="preserve">Call @func(element, @userdata) for each element of @set, in order.</doc>
7855         <return-value transfer-ownership="none">
7856           <type name="none" c:type="void"/>
7857         </return-value>
7858         <parameters>
7859           <parameter name="func" transfer-ownership="none" scope="call" closure="2">
7860             <doc xml:whitespace="preserve">@TpIntFunc to use to iterate the set</doc>
7861             <type name="IntFunc" c:type="TpIntFunc"/>
7862           </parameter>
7863           <parameter name="userdata" transfer-ownership="none">
7864             <doc xml:whitespace="preserve">user data to pass to each call of @func</doc>
7865             <type name="any" c:type="gpointer"/>
7866           </parameter>
7867         </parameters>
7868       </method>
7869       <method name="to_array" c:identifier="tp_intset_to_array">
7870         <doc xml:whitespace="preserve">&lt;!--Returns: says it all--&gt;
7871 the same integers as @set.</doc>
7872         <return-value transfer-ownership="full">
7873           <doc xml:whitespace="preserve">a GArray of guint (which must be freed by the caller) containing</doc>
7874           <array name="GLib.Array" c:type="GArray*">
7875             <type name="uint"/>
7876           </array>
7877         </return-value>
7878       </method>
7879       <method name="is_empty" c:identifier="tp_intset_is_empty" version="0.11.6">
7880         <doc xml:whitespace="preserve">Return the same thing as &lt;code&gt;(tp_intset_size (set) == 0)&lt;/code&gt;,
7881 but calculated more efficiently.</doc>
7882         <return-value transfer-ownership="none">
7883           <doc xml:whitespace="preserve">%TRUE if @set is empty</doc>
7884           <type name="boolean" c:type="gboolean"/>
7885         </return-value>
7886       </method>
7887       <method name="size" c:identifier="tp_intset_size">
7888         <doc xml:whitespace="preserve">&lt;!--Returns: says it all--&gt;</doc>
7889         <return-value transfer-ownership="none">
7890           <doc xml:whitespace="preserve">The number of integers in @set</doc>
7891           <type name="uint" c:type="guint"/>
7892         </return-value>
7893       </method>
7894       <method name="is_equal" c:identifier="tp_intset_is_equal">
7895         <doc xml:whitespace="preserve">&lt;!--Returns: says it all--&gt;</doc>
7896         <return-value transfer-ownership="none">
7897           <doc xml:whitespace="preserve">%TRUE if @left and @right contain the same bits</doc>
7898           <type name="boolean" c:type="gboolean"/>
7899         </return-value>
7900         <parameters>
7901           <parameter name="right" transfer-ownership="none">
7902             <doc xml:whitespace="preserve">A set of integers</doc>
7903             <type name="IntSet" c:type="TpIntSet*"/>
7904           </parameter>
7905         </parameters>
7906       </method>
7907       <method name="copy" c:identifier="tp_intset_copy">
7908         <doc xml:whitespace="preserve">&lt;!--Returns: says it all--&gt;
7909 tp_intset_destroy() by the caller</doc>
7910         <return-value transfer-ownership="full">
7911           <doc xml:whitespace="preserve">A set containing the same integers as @orig, to be freed with</doc>
7912           <type name="IntSet" c:type="TpIntSet*"/>
7913         </return-value>
7914       </method>
7915       <method name="intersection" c:identifier="tp_intset_intersection">
7916         <doc xml:whitespace="preserve">&lt;!--Returns: says it all--&gt;
7917 (analogous to the bitwise operation left &amp; right), to be freed with
7918 tp_intset_destroy() by the caller</doc>
7919         <return-value transfer-ownership="full">
7920           <doc xml:whitespace="preserve">The set of those integers which are in both @left and @right</doc>
7921           <type name="IntSet" c:type="TpIntSet*"/>
7922         </return-value>
7923         <parameters>
7924           <parameter name="right" transfer-ownership="none">
7925             <doc xml:whitespace="preserve">The right operand</doc>
7926             <type name="IntSet" c:type="TpIntSet*"/>
7927           </parameter>
7928         </parameters>
7929       </method>
7930       <method name="union" c:identifier="tp_intset_union">
7931         <doc xml:whitespace="preserve">&lt;!--Returns: says it all--&gt;
7932 (analogous to the bitwise operation left | right), to be freed with
7933 tp_intset_destroy() by the caller</doc>
7934         <return-value transfer-ownership="full">
7935           <doc xml:whitespace="preserve">The set of those integers which are in either @left or @right</doc>
7936           <type name="IntSet" c:type="TpIntSet*"/>
7937         </return-value>
7938         <parameters>
7939           <parameter name="right" transfer-ownership="none">
7940             <doc xml:whitespace="preserve">The right operand</doc>
7941             <type name="IntSet" c:type="TpIntSet*"/>
7942           </parameter>
7943         </parameters>
7944       </method>
7945       <method name="difference" c:identifier="tp_intset_difference">
7946         <doc xml:whitespace="preserve">&lt;!--Returns: says it all--&gt;
7947 (analogous to the bitwise operation left &amp; (~right)), to be freed with
7948 tp_intset_destroy() by the caller</doc>
7949         <return-value transfer-ownership="full">
7950           <doc xml:whitespace="preserve">The set of those integers which are in @left and not in @right</doc>
7951           <type name="IntSet" c:type="TpIntSet*"/>
7952         </return-value>
7953         <parameters>
7954           <parameter name="right" transfer-ownership="none">
7955             <doc xml:whitespace="preserve">The right operand</doc>
7956             <type name="IntSet" c:type="TpIntSet*"/>
7957           </parameter>
7958         </parameters>
7959       </method>
7960       <method name="symmetric_difference" c:identifier="tp_intset_symmetric_difference">
7961         <doc xml:whitespace="preserve">&lt;!--Returns: says it all--&gt;
7962 but not both (analogous to the bitwise operation left ^ right), to be freed
7963 with tp_intset_destroy() by the caller</doc>
7964         <return-value transfer-ownership="full">
7965           <doc xml:whitespace="preserve">The set of those integers which are in either @left or @right</doc>
7966           <type name="IntSet" c:type="TpIntSet*"/>
7967         </return-value>
7968         <parameters>
7969           <parameter name="right" transfer-ownership="none">
7970             <doc xml:whitespace="preserve">The right operand</doc>
7971             <type name="IntSet" c:type="TpIntSet*"/>
7972           </parameter>
7973         </parameters>
7974       </method>
7975       <method name="dump" c:identifier="tp_intset_dump">
7976         <doc xml:whitespace="preserve">&lt;!--Returns: says it all--&gt;
7977 numbers in @set in a human-readable format</doc>
7978         <return-value transfer-ownership="full">
7979           <doc xml:whitespace="preserve">a string which the caller must free with g_free, listing the</doc>
7980           <type name="utf8" c:type="gchar*"/>
7981         </return-value>
7982       </method>
7983     </record>
7984     <record name="IntSetFastIter" c:type="TpIntSetFastIter" version="0.11.6">
7985       <doc xml:whitespace="preserve">An opaque structure representing iteration in undefined order over a set of
7986 integers. Must be initialized with tp_intset_fast_iter_init().
7987 Usage is similar to #GHashTableIter:
7988 &lt;informalexample&gt;&lt;programlisting&gt;
7989 TpIntSetFastIter iter;
7990 guint element;
7991 tp_intset_fast_iter_init (&amp;amp;iter, intset);
7992 while (tp_intset_fast_iter_next (&amp;amp;iter, &amp;amp;element))
7993 {
7994 printf ("%u is in the intset\n", element);
7995 }
7996 &lt;/programlisting&gt;&lt;/informalexample&gt;</doc>
7997       <field name="_dummy" writable="1">
7998         <array zero-terminated="0" c:type="gpointer" fixed-size="16">
7999           <type name="any"/>
8000         </array>
8001       </field>
8002     </record>
8003     <record name="IntSetIter" c:type="TpIntSetIter">
8004       <doc xml:whitespace="preserve">A structure representing iteration over a set of integers. Must be
8005 initialized with either TP_INTSET_ITER_INIT() or tp_intset_iter_init().
8006 Since 0.11.6, consider using #TpIntSetFastIter if iteration in
8007 numerical order is not required.</doc>
8008       <field name="set" writable="1">
8009         <type name="IntSet" c:type="TpIntSet*"/>
8010       </field>
8011       <field name="element" writable="1">
8012         <type name="uint" c:type="guint"/>
8013       </field>
8014     </record>
8015     <enumeration name="LocalHoldState" c:type="TpLocalHoldState">
8016       <member name="unheld" value="0" c:identifier="TP_LOCAL_HOLD_STATE_UNHELD"/>
8017       <member name="held" value="1" c:identifier="TP_LOCAL_HOLD_STATE_HELD"/>
8018       <member name="pending_hold" value="2" c:identifier="TP_LOCAL_HOLD_STATE_PENDING_HOLD"/>
8019       <member name="pending_unhold" value="3" c:identifier="TP_LOCAL_HOLD_STATE_PENDING_UNHOLD"/>
8020     </enumeration>
8021     <enumeration name="LocalHoldStateReason" c:type="TpLocalHoldStateReason">
8022       <member name="none" value="0" c:identifier="TP_LOCAL_HOLD_STATE_REASON_NONE"/>
8023       <member name="requested" value="1" c:identifier="TP_LOCAL_HOLD_STATE_REASON_REQUESTED"/>
8024       <member name="resource_not_available" value="2" c:identifier="TP_LOCAL_HOLD_STATE_REASON_RESOURCE_NOT_AVAILABLE"/>
8025     </enumeration>
8026     <enumeration name="LocationFeatures" c:type="TpLocationFeatures">
8027       <member name="location_feature_can_set" value="1" c:identifier="TP_LOCATION_FEATURE_CAN_SET"/>
8028     </enumeration>
8029     <constant name="MC5_BUS_NAME" value="org.freedesktop.Telepathy.MissionControl5">
8030       <type name="utf8"/>
8031     </constant>
8032     <enumeration name="MediaStreamBaseProto" c:type="TpMediaStreamBaseProto">
8033       <member name="udp" value="0" c:identifier="TP_MEDIA_STREAM_BASE_PROTO_UDP"/>
8034       <member name="tcp" value="1" c:identifier="TP_MEDIA_STREAM_BASE_PROTO_TCP"/>
8035     </enumeration>
8036     <enumeration name="MediaStreamDirection" c:type="TpMediaStreamDirection">
8037       <member name="none" value="0" c:identifier="TP_MEDIA_STREAM_DIRECTION_NONE"/>
8038       <member name="send" value="1" c:identifier="TP_MEDIA_STREAM_DIRECTION_SEND"/>
8039       <member name="receive" value="2" c:identifier="TP_MEDIA_STREAM_DIRECTION_RECEIVE"/>
8040       <member name="bidirectional" value="3" c:identifier="TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL"/>
8041     </enumeration>
8042     <enumeration name="MediaStreamError" c:type="TpMediaStreamError">
8043       <member name="unknown" value="0" c:identifier="TP_MEDIA_STREAM_ERROR_UNKNOWN"/>
8044       <member name="eos" value="1" c:identifier="TP_MEDIA_STREAM_ERROR_EOS"/>
8045       <member name="codec_negotiation_failed" value="2" c:identifier="TP_MEDIA_STREAM_ERROR_CODEC_NEGOTIATION_FAILED"/>
8046       <member name="connection_failed" value="3" c:identifier="TP_MEDIA_STREAM_ERROR_CONNECTION_FAILED"/>
8047       <member name="network_error" value="4" c:identifier="TP_MEDIA_STREAM_ERROR_NETWORK_ERROR"/>
8048       <member name="no_codecs" value="5" c:identifier="TP_MEDIA_STREAM_ERROR_NO_CODECS"/>
8049       <member name="invalid_cm_behavior" value="6" c:identifier="TP_MEDIA_STREAM_ERROR_INVALID_CM_BEHAVIOR"/>
8050       <member name="media_error" value="7" c:identifier="TP_MEDIA_STREAM_ERROR_MEDIA_ERROR"/>
8051     </enumeration>
8052     <enumeration name="MediaStreamPendingSend" c:type="TpMediaStreamPendingSend">
8053       <member name="local_send" value="1" c:identifier="TP_MEDIA_STREAM_PENDING_LOCAL_SEND"/>
8054       <member name="remote_send" value="2" c:identifier="TP_MEDIA_STREAM_PENDING_REMOTE_SEND"/>
8055     </enumeration>
8056     <enumeration name="MediaStreamState" c:type="TpMediaStreamState">
8057       <member name="disconnected" value="0" c:identifier="TP_MEDIA_STREAM_STATE_DISCONNECTED"/>
8058       <member name="connecting" value="1" c:identifier="TP_MEDIA_STREAM_STATE_CONNECTING"/>
8059       <member name="connected" value="2" c:identifier="TP_MEDIA_STREAM_STATE_CONNECTED"/>
8060     </enumeration>
8061     <enumeration name="MediaStreamTransportType" c:type="TpMediaStreamTransportType">
8062       <member name="local" value="0" c:identifier="TP_MEDIA_STREAM_TRANSPORT_TYPE_LOCAL"/>
8063       <member name="derived" value="1" c:identifier="TP_MEDIA_STREAM_TRANSPORT_TYPE_DERIVED"/>
8064       <member name="relay" value="2" c:identifier="TP_MEDIA_STREAM_TRANSPORT_TYPE_RELAY"/>
8065     </enumeration>
8066     <enumeration name="MediaStreamType" c:type="TpMediaStreamType">
8067       <member name="audio" value="0" c:identifier="TP_MEDIA_STREAM_TYPE_AUDIO"/>
8068       <member name="video" value="1" c:identifier="TP_MEDIA_STREAM_TYPE_VIDEO"/>
8069     </enumeration>
8070     <enumeration name="MessagePartSupportFlags" c:type="TpMessagePartSupportFlags">
8071       <member name="one_attachment" value="1" c:identifier="TP_MESSAGE_PART_SUPPORT_FLAG_ONE_ATTACHMENT"/>
8072       <member name="multiple_attachments" value="2" c:identifier="TP_MESSAGE_PART_SUPPORT_FLAG_MULTIPLE_ATTACHMENTS"/>
8073     </enumeration>
8074     <enumeration name="MessageSendingFlags" c:type="TpMessageSendingFlags">
8075       <member name="delivery" value="1" c:identifier="TP_MESSAGE_SENDING_FLAG_REPORT_DELIVERY"/>
8076       <member name="read" value="2" c:identifier="TP_MESSAGE_SENDING_FLAG_REPORT_READ"/>
8077       <member name="deleted" value="4" c:identifier="TP_MESSAGE_SENDING_FLAG_REPORT_DELETED"/>
8078     </enumeration>
8079     <constant name="NUM_TP_CHANNEL_CHAT_STATES" value="5">
8080       <type name="int"/>
8081     </constant>
8082     <constant name="NUM_TP_CHANNEL_CONTACT_SEARCH_STATES" value="5">
8083       <type name="int"/>
8084     </constant>
8085     <constant name="NUM_TP_CHANNEL_GROUP_CHANGE_REASONS" value="12">
8086       <type name="int"/>
8087     </constant>
8088     <constant name="NUM_TP_CHANNEL_TEXT_MESSAGE_TYPES" value="5">
8089       <type name="int"/>
8090     </constant>
8091     <constant name="NUM_TP_CHANNEL_TEXT_SEND_ERRORS" value="6">
8092       <type name="int"/>
8093     </constant>
8094     <constant name="NUM_TP_CONNECTION_PRESENCE_TYPES" value="9">
8095       <type name="int"/>
8096     </constant>
8097     <constant name="NUM_TP_CONNECTION_STATUSES" value="3">
8098       <type name="int"/>
8099     </constant>
8100     <constant name="NUM_TP_CONNECTION_STATUS_REASONS" value="17">
8101       <type name="int"/>
8102     </constant>
8103     <constant name="NUM_TP_CONTACT_FEATURES" value="1">
8104       <type name="int"/>
8105     </constant>
8106     <constant name="NUM_TP_DBUS_ERRORS" value="1">
8107       <type name="int"/>
8108     </constant>
8109     <constant name="NUM_TP_DEBUG_LEVELS" value="6">
8110       <type name="int"/>
8111     </constant>
8112     <constant name="NUM_TP_DELIVERY_STATUSES" value="7">
8113       <type name="int"/>
8114     </constant>
8115     <constant name="NUM_TP_DTMF_EVENTS" value="16">
8116       <type name="int"/>
8117     </constant>
8118     <constant name="NUM_TP_FILE_HASH_TYPES" value="4">
8119       <type name="int"/>
8120     </constant>
8121     <constant name="NUM_TP_FILE_TRANSFER_STATES" value="6">
8122       <type name="int"/>
8123     </constant>
8124     <constant name="NUM_TP_FILE_TRANSFER_STATE_CHANGE_REASONS" value="6">
8125       <type name="int"/>
8126     </constant>
8127     <constant name="NUM_TP_HANDLE_TYPES" value="5">
8128       <type name="int"/>
8129     </constant>
8130     <constant name="NUM_TP_LOCAL_HOLD_STATES" value="4">
8131       <type name="int"/>
8132     </constant>
8133     <constant name="NUM_TP_LOCAL_HOLD_STATE_REASONS" value="3">
8134       <type name="int"/>
8135     </constant>
8136     <constant name="NUM_TP_MEDIA_STREAM_BASE_PROTOS" value="2">
8137       <type name="int"/>
8138     </constant>
8139     <constant name="NUM_TP_MEDIA_STREAM_DIRECTIONS" value="4">
8140       <type name="int"/>
8141     </constant>
8142     <constant name="NUM_TP_MEDIA_STREAM_ERRORS" value="8">
8143       <type name="int"/>
8144     </constant>
8145     <constant name="NUM_TP_MEDIA_STREAM_STATES" value="3">
8146       <type name="int"/>
8147     </constant>
8148     <constant name="NUM_TP_MEDIA_STREAM_TRANSPORT_TYPES" value="3">
8149       <type name="int"/>
8150     </constant>
8151     <constant name="NUM_TP_MEDIA_STREAM_TYPES" value="2">
8152       <type name="int"/>
8153     </constant>
8154     <constant name="NUM_TP_RICH_PRESENCE_ACCESS_CONTROL_TYPES" value="4">
8155       <type name="int"/>
8156     </constant>
8157     <constant name="NUM_TP_SERVICE_POINT_TYPES" value="3">
8158       <type name="int"/>
8159     </constant>
8160     <constant name="NUM_TP_SOCKET_ACCESS_CONTROLS" value="4">
8161       <type name="int"/>
8162     </constant>
8163     <constant name="NUM_TP_SOCKET_ADDRESS_TYPES" value="4">
8164       <type name="int"/>
8165     </constant>
8166     <constant name="NUM_TP_TUBE_CHANNEL_STATES" value="4">
8167       <type name="int"/>
8168     </constant>
8169     <constant name="NUM_TP_TUBE_STATES" value="3">
8170       <type name="int"/>
8171     </constant>
8172     <constant name="NUM_TP_TUBE_TYPES" value="2">
8173       <type name="int"/>
8174     </constant>
8175     <class name="ObserveChannelsContext" c:type="TpObserveChannelsContext" version="0.11.5" parent="GObject.Object" glib:type-name="TpObserveChannelsContext" glib:get-type="tp_observe_channels_context_get_type" glib:type-struct="ObserveChannelsContextClass">
8176       <doc xml:whitespace="preserve">Data structure representing the context of a Observer.ObserveChannels()
8177 call.</doc>
8178       <method name="accept" c:identifier="tp_observe_channels_context_accept" version="0.11.5">
8179         <doc xml:whitespace="preserve">Called by #TpBaseClientClassObserveChannelsImpl when it's done so the D-Bus
8180 method can return.</doc>
8181         <return-value transfer-ownership="none">
8182           <type name="none" c:type="void"/>
8183         </return-value>
8184       </method>
8185       <method name="fail" c:identifier="tp_observe_channels_context_fail" version="0.11.5">
8186         <doc xml:whitespace="preserve">Called by #TpBaseClientClassObserveChannelsImpl to raise a D-Bus error.</doc>
8187         <return-value transfer-ownership="none">
8188           <type name="none" c:type="void"/>
8189         </return-value>
8190         <parameters>
8191           <parameter name="error" transfer-ownership="none">
8192             <doc xml:whitespace="preserve">the error to return from the method</doc>
8193             <type name="GLib.Error" c:type="GError*"/>
8194           </parameter>
8195         </parameters>
8196       </method>
8197       <method name="delay" c:identifier="tp_observe_channels_context_delay" version="0.11.5">
8198         <doc xml:whitespace="preserve">Called by #TpBaseClientClassObserveChannelsImpl to indicate that it
8199 implements the method in an async way. The caller must take a reference
8200 to the #TpObserveChannelsContext before calling this function, and
8201 is responsible for calling either tp_observe_channels_context_accept() or
8202 tp_observe_channels_context_fail() later.</doc>
8203         <return-value transfer-ownership="none">
8204           <type name="none" c:type="void"/>
8205         </return-value>
8206       </method>
8207       <method name="is_recovering" c:identifier="tp_observe_channels_context_is_recovering" version="0.11.5">
8208         <doc xml:whitespace="preserve">If this call to ObserveChannels is for channels that already
8209 existed before this observer started (because the observer used
8210 tp_base_client_set_observer_recover()), return %TRUE.
8211 In most cases, the result is %FALSE.</doc>
8212         <return-value transfer-ownership="none">
8213           <doc xml:whitespace="preserve">%TRUE for pre-existing channels, %FALSE for new channels</doc>
8214           <type name="boolean" c:type="gboolean"/>
8215         </return-value>
8216       </method>
8217       <property name="account" version="0.11.5" writable="1" construct-only="1" transfer-ownership="none">
8218         <doc xml:whitespace="preserve">A #TpAccount object representing the Account that has been passed to
8219 ObserveChannels.
8220 Read-only except during construction.
8221 This property can't be %NULL.</doc>
8222         <type name="Account" c:type="TpAccount"/>
8223       </property>
8224       <property name="channels" version="0.11.5" writable="1" construct-only="1" transfer-ownership="none">
8225         <doc xml:whitespace="preserve">A #GPtrArray containing #TpChannel objects representing the channels
8226 that have been passed to ObserveChannels.
8227 Read-only except during construction.
8228 This property can't be %NULL.</doc>
8229         <type name="GLib.PtrArray" c:type="GPtrArray"/>
8230       </property>
8231       <property name="connection" version="0.11.5" writable="1" construct-only="1" transfer-ownership="none">
8232         <doc xml:whitespace="preserve">A #TpConnection object representing the Connection that has been passed
8233 to ObserveChannels.
8234 Read-only except during construction.
8235 This property can't be %NULL.</doc>
8236         <type name="Connection" c:type="TpConnection"/>
8237       </property>
8238       <property name="dbus-context" version="0.11.5" introspectable="0" readable="0" writable="1" construct-only="1" transfer-ownership="none">
8239         <doc xml:whitespace="preserve">The #DBusGMethodInvocation representing the D-Bus context of the
8240 ObserveChannels call.
8241 Can only be written during construction.</doc>
8242         <type name="any" c:type="gpointer"/>
8243       </property>
8244       <property name="dispatch-operation" version="0.11.5" writable="1" construct-only="1" transfer-ownership="none">
8245         <doc xml:whitespace="preserve">A #TpChannelDispatchOperation object representing the
8246 ChannelDispatchOperation that has been passed to ObserveChannels,
8247 or %NULL if none has been passed.
8248 Read-only except during construction.</doc>
8249         <type name="ChannelDispatchOperation" c:type="TpChannelDispatchOperation"/>
8250       </property>
8251       <property name="requests" version="0.11.5" writable="1" construct-only="1" transfer-ownership="none">
8252         <doc xml:whitespace="preserve">A #GPtrArray containing #TpChannelRequest objects representing the
8253 requests that have been passed to ObserveChannels.
8254 Read-only except during construction.
8255 This property can't be %NULL.</doc>
8256         <type name="GLib.PtrArray" c:type="GPtrArray"/>
8257       </property>
8258     </class>
8259     <record name="ObserveChannelsContextClass" c:type="TpObserveChannelsContextClass" glib:is-gtype-struct-for="ObserveChannelsContext" version="0.11.5">
8260       <doc xml:whitespace="preserve">The class of a #TpObserveChannelsContext.</doc>
8261     </record>
8262     <record name="ObserveChannelsContextPrivate" c:type="TpObserveChannelsContextPrivate">
8263     </record>
8264     <constant name="PROP_ACCOUNT_AUTOMATIC_PRESENCE" value="org.freedesktop.Telepathy.Account.AutomaticPresence">
8265       <type name="utf8"/>
8266     </constant>
8267     <constant name="PROP_ACCOUNT_CHANGING_PRESENCE" value="org.freedesktop.Telepathy.Account.ChangingPresence">
8268       <type name="utf8"/>
8269     </constant>
8270     <constant name="PROP_ACCOUNT_CONNECTION" value="org.freedesktop.Telepathy.Account.Connection">
8271       <type name="utf8"/>
8272     </constant>
8273     <constant name="PROP_ACCOUNT_CONNECTION_ERROR" value="org.freedesktop.Telepathy.Account.ConnectionError">
8274       <type name="utf8"/>
8275     </constant>
8276     <constant name="PROP_ACCOUNT_CONNECTION_ERROR_DETAILS" value="org.freedesktop.Telepathy.Account.ConnectionErrorDetails">
8277       <type name="utf8"/>
8278     </constant>
8279     <constant name="PROP_ACCOUNT_CONNECTION_STATUS" value="org.freedesktop.Telepathy.Account.ConnectionStatus">
8280       <type name="utf8"/>
8281     </constant>
8282     <constant name="PROP_ACCOUNT_CONNECTION_STATUS_REASON" value="org.freedesktop.Telepathy.Account.ConnectionStatusReason">
8283       <type name="utf8"/>
8284     </constant>
8285     <constant name="PROP_ACCOUNT_CONNECT_AUTOMATICALLY" value="org.freedesktop.Telepathy.Account.ConnectAutomatically">
8286       <type name="utf8"/>
8287     </constant>
8288     <constant name="PROP_ACCOUNT_CURRENT_PRESENCE" value="org.freedesktop.Telepathy.Account.CurrentPresence">
8289       <type name="utf8"/>
8290     </constant>
8291     <constant name="PROP_ACCOUNT_DISPLAY_NAME" value="org.freedesktop.Telepathy.Account.DisplayName">
8292       <type name="utf8"/>
8293     </constant>
8294     <constant name="PROP_ACCOUNT_ENABLED" value="org.freedesktop.Telepathy.Account.Enabled">
8295       <type name="utf8"/>
8296     </constant>
8297     <constant name="PROP_ACCOUNT_HAS_BEEN_ONLINE" value="org.freedesktop.Telepathy.Account.HasBeenOnline">
8298       <type name="utf8"/>
8299     </constant>
8300     <constant name="PROP_ACCOUNT_ICON" value="org.freedesktop.Telepathy.Account.Icon">
8301       <type name="utf8"/>
8302     </constant>
8303     <constant name="PROP_ACCOUNT_INTERFACES" value="org.freedesktop.Telepathy.Account.Interfaces">
8304       <type name="utf8"/>
8305     </constant>
8306     <constant name="PROP_ACCOUNT_INTERFACE_AVATAR_AVATAR" value="org.freedesktop.Telepathy.Account.Interface.Avatar.Avatar">
8307       <type name="utf8"/>
8308     </constant>
8309     <constant name="PROP_ACCOUNT_INTERFACE_STORAGE_STORAGE_IDENTIFIER" value="org.freedesktop.Telepathy.Account.Interface.Storage.StorageIdentifier">
8310       <type name="utf8"/>
8311     </constant>
8312     <constant name="PROP_ACCOUNT_INTERFACE_STORAGE_STORAGE_PROVIDER" value="org.freedesktop.Telepathy.Account.Interface.Storage.StorageProvider">
8313       <type name="utf8"/>
8314     </constant>
8315     <constant name="PROP_ACCOUNT_INTERFACE_STORAGE_STORAGE_RESTRICTIONS" value="org.freedesktop.Telepathy.Account.Interface.Storage.StorageRestrictions">
8316       <type name="utf8"/>
8317     </constant>
8318     <constant name="PROP_ACCOUNT_INTERFACE_STORAGE_STORAGE_SPECIFIC_INFORMATION" value="org.freedesktop.Telepathy.Account.Interface.Storage.StorageSpecificInformation">
8319       <type name="utf8"/>
8320     </constant>
8321     <constant name="PROP_ACCOUNT_MANAGER_INTERFACES" value="org.freedesktop.Telepathy.AccountManager.Interfaces">
8322       <type name="utf8"/>
8323     </constant>
8324     <constant name="PROP_ACCOUNT_MANAGER_INVALID_ACCOUNTS" value="org.freedesktop.Telepathy.AccountManager.InvalidAccounts">
8325       <type name="utf8"/>
8326     </constant>
8327     <constant name="PROP_ACCOUNT_MANAGER_SUPPORTED_ACCOUNT_PROPERTIES" value="org.freedesktop.Telepathy.AccountManager.SupportedAccountProperties">
8328       <type name="utf8"/>
8329     </constant>
8330     <constant name="PROP_ACCOUNT_MANAGER_VALID_ACCOUNTS" value="org.freedesktop.Telepathy.AccountManager.ValidAccounts">
8331       <type name="utf8"/>
8332     </constant>
8333     <constant name="PROP_ACCOUNT_NICKNAME" value="org.freedesktop.Telepathy.Account.Nickname">
8334       <type name="utf8"/>
8335     </constant>
8336     <constant name="PROP_ACCOUNT_NORMALIZED_NAME" value="org.freedesktop.Telepathy.Account.NormalizedName">
8337       <type name="utf8"/>
8338     </constant>
8339     <constant name="PROP_ACCOUNT_PARAMETERS" value="org.freedesktop.Telepathy.Account.Parameters">
8340       <type name="utf8"/>
8341     </constant>
8342     <constant name="PROP_ACCOUNT_REQUESTED_PRESENCE" value="org.freedesktop.Telepathy.Account.RequestedPresence">
8343       <type name="utf8"/>
8344     </constant>
8345     <constant name="PROP_ACCOUNT_SERVICE" value="org.freedesktop.Telepathy.Account.Service">
8346       <type name="utf8"/>
8347     </constant>
8348     <constant name="PROP_ACCOUNT_VALID" value="org.freedesktop.Telepathy.Account.Valid">
8349       <type name="utf8"/>
8350     </constant>
8351     <constant name="PROP_CHANNEL_CHANNEL_TYPE" value="org.freedesktop.Telepathy.Channel.ChannelType">
8352       <type name="utf8"/>
8353     </constant>
8354     <constant name="PROP_CHANNEL_DISPATCHER_INTERFACES" value="org.freedesktop.Telepathy.ChannelDispatcher.Interfaces">
8355       <type name="utf8"/>
8356     </constant>
8357     <constant name="PROP_CHANNEL_DISPATCHER_INTERFACE_OPERATION_LIST_DISPATCH_OPERATIONS" value="org.freedesktop.Telepathy.ChannelDispatcher.Interface.OperationList.DispatchOperations">
8358       <type name="utf8"/>
8359     </constant>
8360     <constant name="PROP_CHANNEL_DISPATCH_OPERATION_ACCOUNT" value="org.freedesktop.Telepathy.ChannelDispatchOperation.Account">
8361       <type name="utf8"/>
8362     </constant>
8363     <constant name="PROP_CHANNEL_DISPATCH_OPERATION_CHANNELS" value="org.freedesktop.Telepathy.ChannelDispatchOperation.Channels">
8364       <type name="utf8"/>
8365     </constant>
8366     <constant name="PROP_CHANNEL_DISPATCH_OPERATION_CONNECTION" value="org.freedesktop.Telepathy.ChannelDispatchOperation.Connection">
8367       <type name="utf8"/>
8368     </constant>
8369     <constant name="PROP_CHANNEL_DISPATCH_OPERATION_INTERFACES" value="org.freedesktop.Telepathy.ChannelDispatchOperation.Interfaces">
8370       <type name="utf8"/>
8371     </constant>
8372     <constant name="PROP_CHANNEL_DISPATCH_OPERATION_POSSIBLE_HANDLERS" value="org.freedesktop.Telepathy.ChannelDispatchOperation.PossibleHandlers">
8373       <type name="utf8"/>
8374     </constant>
8375     <constant name="PROP_CHANNEL_INITIATOR_HANDLE" value="org.freedesktop.Telepathy.Channel.InitiatorHandle">
8376       <type name="utf8"/>
8377     </constant>
8378     <constant name="PROP_CHANNEL_INITIATOR_ID" value="org.freedesktop.Telepathy.Channel.InitiatorID">
8379       <type name="utf8"/>
8380     </constant>
8381     <constant name="PROP_CHANNEL_INTERFACES" value="org.freedesktop.Telepathy.Channel.Interfaces">
8382       <type name="utf8"/>
8383     </constant>
8384     <constant name="PROP_CHANNEL_INTERFACE_ANONYMITY_ANONYMITY_MANDATORY" value="org.freedesktop.Telepathy.Channel.Interface.Anonymity.AnonymityMandatory">
8385       <type name="utf8"/>
8386     </constant>
8387     <constant name="PROP_CHANNEL_INTERFACE_ANONYMITY_ANONYMITY_MODES" value="org.freedesktop.Telepathy.Channel.Interface.Anonymity.AnonymityModes">
8388       <type name="utf8"/>
8389     </constant>
8390     <constant name="PROP_CHANNEL_INTERFACE_ANONYMITY_ANONYMOUS_ID" value="org.freedesktop.Telepathy.Channel.Interface.Anonymity.AnonymousID">
8391       <type name="utf8"/>
8392     </constant>
8393     <constant name="PROP_CHANNEL_INTERFACE_CHAT_STATE_CHAT_STATES" value="org.freedesktop.Telepathy.Channel.Interface.ChatState.ChatStates">
8394       <type name="utf8"/>
8395     </constant>
8396     <constant name="PROP_CHANNEL_INTERFACE_DTMF_CURRENTLY_SENDING_TONES" value="org.freedesktop.Telepathy.Channel.Interface.DTMF.CurrentlySendingTones">
8397       <type name="utf8"/>
8398     </constant>
8399     <constant name="PROP_CHANNEL_INTERFACE_DTMF_INITIAL_TONES" value="org.freedesktop.Telepathy.Channel.Interface.DTMF.InitialTones">
8400       <type name="utf8"/>
8401     </constant>
8402     <constant name="PROP_CHANNEL_INTERFACE_GROUP_GROUP_FLAGS" value="org.freedesktop.Telepathy.Channel.Interface.Group.GroupFlags">
8403       <type name="utf8"/>
8404     </constant>
8405     <constant name="PROP_CHANNEL_INTERFACE_GROUP_HANDLE_OWNERS" value="org.freedesktop.Telepathy.Channel.Interface.Group.HandleOwners">
8406       <type name="utf8"/>
8407     </constant>
8408     <constant name="PROP_CHANNEL_INTERFACE_GROUP_LOCAL_PENDING_MEMBERS" value="org.freedesktop.Telepathy.Channel.Interface.Group.LocalPendingMembers">
8409       <type name="utf8"/>
8410     </constant>
8411     <constant name="PROP_CHANNEL_INTERFACE_GROUP_MEMBERS" value="org.freedesktop.Telepathy.Channel.Interface.Group.Members">
8412       <type name="utf8"/>
8413     </constant>
8414     <constant name="PROP_CHANNEL_INTERFACE_GROUP_REMOTE_PENDING_MEMBERS" value="org.freedesktop.Telepathy.Channel.Interface.Group.RemotePendingMembers">
8415       <type name="utf8"/>
8416     </constant>
8417     <constant name="PROP_CHANNEL_INTERFACE_GROUP_SELF_HANDLE" value="org.freedesktop.Telepathy.Channel.Interface.Group.SelfHandle">
8418       <type name="utf8"/>
8419     </constant>
8420     <constant name="PROP_CHANNEL_INTERFACE_MESSAGES_DELIVERY_REPORTING_SUPPORT" value="org.freedesktop.Telepathy.Channel.Interface.Messages.DeliveryReportingSupport">
8421       <type name="utf8"/>
8422     </constant>
8423     <constant name="PROP_CHANNEL_INTERFACE_MESSAGES_MESSAGE_PART_SUPPORT_FLAGS" value="org.freedesktop.Telepathy.Channel.Interface.Messages.MessagePartSupportFlags">
8424       <type name="utf8"/>
8425     </constant>
8426     <constant name="PROP_CHANNEL_INTERFACE_MESSAGES_PENDING_MESSAGES" value="org.freedesktop.Telepathy.Channel.Interface.Messages.PendingMessages">
8427       <type name="utf8"/>
8428     </constant>
8429     <constant name="PROP_CHANNEL_INTERFACE_MESSAGES_SUPPORTED_CONTENT_TYPES" value="org.freedesktop.Telepathy.Channel.Interface.Messages.SupportedContentTypes">
8430       <type name="utf8"/>
8431     </constant>
8432     <constant name="PROP_CHANNEL_INTERFACE_SERVICE_POINT_CURRENT_SERVICE_POINT" value="org.freedesktop.Telepathy.Channel.Interface.ServicePoint.CurrentServicePoint">
8433       <type name="utf8"/>
8434     </constant>
8435     <constant name="PROP_CHANNEL_INTERFACE_SERVICE_POINT_INITIAL_SERVICE_POINT" value="org.freedesktop.Telepathy.Channel.Interface.ServicePoint.InitialServicePoint">
8436       <type name="utf8"/>
8437     </constant>
8438     <constant name="PROP_CHANNEL_INTERFACE_TUBE_PARAMETERS" value="org.freedesktop.Telepathy.Channel.Interface.Tube.Parameters">
8439       <type name="utf8"/>
8440     </constant>
8441     <constant name="PROP_CHANNEL_INTERFACE_TUBE_STATE" value="org.freedesktop.Telepathy.Channel.Interface.Tube.State">
8442       <type name="utf8"/>
8443     </constant>
8444     <constant name="PROP_CHANNEL_REQUESTED" value="org.freedesktop.Telepathy.Channel.Requested">
8445       <type name="utf8"/>
8446     </constant>
8447     <constant name="PROP_CHANNEL_REQUEST_ACCOUNT" value="org.freedesktop.Telepathy.ChannelRequest.Account">
8448       <type name="utf8"/>
8449     </constant>
8450     <constant name="PROP_CHANNEL_REQUEST_INTERFACES" value="org.freedesktop.Telepathy.ChannelRequest.Interfaces">
8451       <type name="utf8"/>
8452     </constant>
8453     <constant name="PROP_CHANNEL_REQUEST_PREFERRED_HANDLER" value="org.freedesktop.Telepathy.ChannelRequest.PreferredHandler">
8454       <type name="utf8"/>
8455     </constant>
8456     <constant name="PROP_CHANNEL_REQUEST_REQUESTS" value="org.freedesktop.Telepathy.ChannelRequest.Requests">
8457       <type name="utf8"/>
8458     </constant>
8459     <constant name="PROP_CHANNEL_REQUEST_USER_ACTION_TIME" value="org.freedesktop.Telepathy.ChannelRequest.UserActionTime">
8460       <type name="utf8"/>
8461     </constant>
8462     <constant name="PROP_CHANNEL_TARGET_HANDLE" value="org.freedesktop.Telepathy.Channel.TargetHandle">
8463       <type name="utf8"/>
8464     </constant>
8465     <constant name="PROP_CHANNEL_TARGET_HANDLE_TYPE" value="org.freedesktop.Telepathy.Channel.TargetHandleType">
8466       <type name="utf8"/>
8467     </constant>
8468     <constant name="PROP_CHANNEL_TARGET_ID" value="org.freedesktop.Telepathy.Channel.TargetID">
8469       <type name="utf8"/>
8470     </constant>
8471     <constant name="PROP_CHANNEL_TYPE_CONTACT_SEARCH_AVAILABLE_SEARCH_KEYS" value="org.freedesktop.Telepathy.Channel.Type.ContactSearch.AvailableSearchKeys">
8472       <type name="utf8"/>
8473     </constant>
8474     <constant name="PROP_CHANNEL_TYPE_CONTACT_SEARCH_LIMIT" value="org.freedesktop.Telepathy.Channel.Type.ContactSearch.Limit">
8475       <type name="utf8"/>
8476     </constant>
8477     <constant name="PROP_CHANNEL_TYPE_CONTACT_SEARCH_SEARCH_STATE" value="org.freedesktop.Telepathy.Channel.Type.ContactSearch.SearchState">
8478       <type name="utf8"/>
8479     </constant>
8480     <constant name="PROP_CHANNEL_TYPE_CONTACT_SEARCH_SERVER" value="org.freedesktop.Telepathy.Channel.Type.ContactSearch.Server">
8481       <type name="utf8"/>
8482     </constant>
8483     <constant name="PROP_CHANNEL_TYPE_DBUS_TUBE_DBUS_NAMES" value="org.freedesktop.Telepathy.Channel.Type.DBusTube.DBusNames">
8484       <type name="utf8"/>
8485     </constant>
8486     <constant name="PROP_CHANNEL_TYPE_DBUS_TUBE_SERVICE_NAME" value="org.freedesktop.Telepathy.Channel.Type.DBusTube.ServiceName">
8487       <type name="utf8"/>
8488     </constant>
8489     <constant name="PROP_CHANNEL_TYPE_DBUS_TUBE_SUPPORTED_ACCESS_CONTROLS" value="org.freedesktop.Telepathy.Channel.Type.DBusTube.SupportedAccessControls">
8490       <type name="utf8"/>
8491     </constant>
8492     <constant name="PROP_CHANNEL_TYPE_FILE_TRANSFER_AVAILABLE_SOCKET_TYPES" value="org.freedesktop.Telepathy.Channel.Type.FileTransfer.AvailableSocketTypes">
8493       <type name="utf8"/>
8494     </constant>
8495     <constant name="PROP_CHANNEL_TYPE_FILE_TRANSFER_CONTENT_HASH" value="org.freedesktop.Telepathy.Channel.Type.FileTransfer.ContentHash">
8496       <type name="utf8"/>
8497     </constant>
8498     <constant name="PROP_CHANNEL_TYPE_FILE_TRANSFER_CONTENT_HASH_TYPE" value="org.freedesktop.Telepathy.Channel.Type.FileTransfer.ContentHashType">
8499       <type name="utf8"/>
8500     </constant>
8501     <constant name="PROP_CHANNEL_TYPE_FILE_TRANSFER_CONTENT_TYPE" value="org.freedesktop.Telepathy.Channel.Type.FileTransfer.ContentType">
8502       <type name="utf8"/>
8503     </constant>
8504     <constant name="PROP_CHANNEL_TYPE_FILE_TRANSFER_DATE" value="org.freedesktop.Telepathy.Channel.Type.FileTransfer.Date">
8505       <type name="utf8"/>
8506     </constant>
8507     <constant name="PROP_CHANNEL_TYPE_FILE_TRANSFER_DESCRIPTION" value="org.freedesktop.Telepathy.Channel.Type.FileTransfer.Description">
8508       <type name="utf8"/>
8509     </constant>
8510     <constant name="PROP_CHANNEL_TYPE_FILE_TRANSFER_FILENAME" value="org.freedesktop.Telepathy.Channel.Type.FileTransfer.Filename">
8511       <type name="utf8"/>
8512     </constant>
8513     <constant name="PROP_CHANNEL_TYPE_FILE_TRANSFER_INITIAL_OFFSET" value="org.freedesktop.Telepathy.Channel.Type.FileTransfer.InitialOffset">
8514       <type name="utf8"/>
8515     </constant>
8516     <constant name="PROP_CHANNEL_TYPE_FILE_TRANSFER_SIZE" value="org.freedesktop.Telepathy.Channel.Type.FileTransfer.Size">
8517       <type name="utf8"/>
8518     </constant>
8519     <constant name="PROP_CHANNEL_TYPE_FILE_TRANSFER_STATE" value="org.freedesktop.Telepathy.Channel.Type.FileTransfer.State">
8520       <type name="utf8"/>
8521     </constant>
8522     <constant name="PROP_CHANNEL_TYPE_FILE_TRANSFER_TRANSFERRED_BYTES" value="org.freedesktop.Telepathy.Channel.Type.FileTransfer.TransferredBytes">
8523       <type name="utf8"/>
8524     </constant>
8525     <constant name="PROP_CHANNEL_TYPE_ROOM_LIST_SERVER" value="org.freedesktop.Telepathy.Channel.Type.RoomList.Server">
8526       <type name="utf8"/>
8527     </constant>
8528     <constant name="PROP_CHANNEL_TYPE_STREAMED_MEDIA_IMMUTABLE_STREAMS" value="org.freedesktop.Telepathy.Channel.Type.StreamedMedia.ImmutableStreams">
8529       <type name="utf8"/>
8530     </constant>
8531     <constant name="PROP_CHANNEL_TYPE_STREAMED_MEDIA_INITIAL_AUDIO" value="org.freedesktop.Telepathy.Channel.Type.StreamedMedia.InitialAudio">
8532       <type name="utf8"/>
8533     </constant>
8534     <constant name="PROP_CHANNEL_TYPE_STREAMED_MEDIA_INITIAL_VIDEO" value="org.freedesktop.Telepathy.Channel.Type.StreamedMedia.InitialVideo">
8535       <type name="utf8"/>
8536     </constant>
8537     <constant name="PROP_CHANNEL_TYPE_STREAM_TUBE_SERVICE" value="org.freedesktop.Telepathy.Channel.Type.StreamTube.Service">
8538       <type name="utf8"/>
8539     </constant>
8540     <constant name="PROP_CHANNEL_TYPE_STREAM_TUBE_SUPPORTED_SOCKET_TYPES" value="org.freedesktop.Telepathy.Channel.Type.StreamTube.SupportedSocketTypes">
8541       <type name="utf8"/>
8542     </constant>
8543     <constant name="PROP_CLIENT_APPROVER_APPROVER_CHANNEL_FILTER" value="org.freedesktop.Telepathy.Client.Approver.ApproverChannelFilter">
8544       <type name="utf8"/>
8545     </constant>
8546     <constant name="PROP_CLIENT_HANDLER_BYPASS_APPROVAL" value="org.freedesktop.Telepathy.Client.Handler.BypassApproval">
8547       <type name="utf8"/>
8548     </constant>
8549     <constant name="PROP_CLIENT_HANDLER_CAPABILITIES" value="org.freedesktop.Telepathy.Client.Handler.Capabilities">
8550       <type name="utf8"/>
8551     </constant>
8552     <constant name="PROP_CLIENT_HANDLER_HANDLED_CHANNELS" value="org.freedesktop.Telepathy.Client.Handler.HandledChannels">
8553       <type name="utf8"/>
8554     </constant>
8555     <constant name="PROP_CLIENT_HANDLER_HANDLER_CHANNEL_FILTER" value="org.freedesktop.Telepathy.Client.Handler.HandlerChannelFilter">
8556       <type name="utf8"/>
8557     </constant>
8558     <constant name="PROP_CLIENT_INTERFACES" value="org.freedesktop.Telepathy.Client.Interfaces">
8559       <type name="utf8"/>
8560     </constant>
8561     <constant name="PROP_CLIENT_OBSERVER_OBSERVER_CHANNEL_FILTER" value="org.freedesktop.Telepathy.Client.Observer.ObserverChannelFilter">
8562       <type name="utf8"/>
8563     </constant>
8564     <constant name="PROP_CLIENT_OBSERVER_RECOVER" value="org.freedesktop.Telepathy.Client.Observer.Recover">
8565       <type name="utf8"/>
8566     </constant>
8567     <constant name="PROP_CONNECTION_INTERFACES" value="org.freedesktop.Telepathy.Connection.Interfaces">
8568       <type name="utf8"/>
8569     </constant>
8570     <constant name="PROP_CONNECTION_INTERFACE_ANONYMITY_ANONYMITY_MANDATORY" value="org.freedesktop.Telepathy.Connection.Interface.Anonymity.AnonymityMandatory">
8571       <type name="utf8"/>
8572     </constant>
8573     <constant name="PROP_CONNECTION_INTERFACE_ANONYMITY_ANONYMITY_MODES" value="org.freedesktop.Telepathy.Connection.Interface.Anonymity.AnonymityModes">
8574       <type name="utf8"/>
8575     </constant>
8576     <constant name="PROP_CONNECTION_INTERFACE_ANONYMITY_SUPPORTED_ANONYMITY_MODES" value="org.freedesktop.Telepathy.Connection.Interface.Anonymity.SupportedAnonymityModes">
8577       <type name="utf8"/>
8578     </constant>
8579     <constant name="PROP_CONNECTION_INTERFACE_AVATARS_MAXIMUM_AVATAR_BYTES" value="org.freedesktop.Telepathy.Connection.Interface.Avatars.MaximumAvatarBytes">
8580       <type name="utf8"/>
8581     </constant>
8582     <constant name="PROP_CONNECTION_INTERFACE_AVATARS_MAXIMUM_AVATAR_HEIGHT" value="org.freedesktop.Telepathy.Connection.Interface.Avatars.MaximumAvatarHeight">
8583       <type name="utf8"/>
8584     </constant>
8585     <constant name="PROP_CONNECTION_INTERFACE_AVATARS_MAXIMUM_AVATAR_WIDTH" value="org.freedesktop.Telepathy.Connection.Interface.Avatars.MaximumAvatarWidth">
8586       <type name="utf8"/>
8587     </constant>
8588     <constant name="PROP_CONNECTION_INTERFACE_AVATARS_MINIMUM_AVATAR_HEIGHT" value="org.freedesktop.Telepathy.Connection.Interface.Avatars.MinimumAvatarHeight">
8589       <type name="utf8"/>
8590     </constant>
8591     <constant name="PROP_CONNECTION_INTERFACE_AVATARS_MINIMUM_AVATAR_WIDTH" value="org.freedesktop.Telepathy.Connection.Interface.Avatars.MinimumAvatarWidth">
8592       <type name="utf8"/>
8593     </constant>
8594     <constant name="PROP_CONNECTION_INTERFACE_AVATARS_RECOMMENDED_AVATAR_HEIGHT" value="org.freedesktop.Telepathy.Connection.Interface.Avatars.RecommendedAvatarHeight">
8595       <type name="utf8"/>
8596     </constant>
8597     <constant name="PROP_CONNECTION_INTERFACE_AVATARS_RECOMMENDED_AVATAR_WIDTH" value="org.freedesktop.Telepathy.Connection.Interface.Avatars.RecommendedAvatarWidth">
8598       <type name="utf8"/>
8599     </constant>
8600     <constant name="PROP_CONNECTION_INTERFACE_AVATARS_SUPPORTED_AVATAR_MIME_TYPES" value="org.freedesktop.Telepathy.Connection.Interface.Avatars.SupportedAvatarMIMETypes">
8601       <type name="utf8"/>
8602     </constant>
8603     <constant name="PROP_CONNECTION_INTERFACE_BALANCE_ACCOUNT_BALANCE" value="org.freedesktop.Telepathy.Connection.Interface.Balance.AccountBalance">
8604       <type name="utf8"/>
8605     </constant>
8606     <constant name="PROP_CONNECTION_INTERFACE_CELLULAR_IMSI" value="org.freedesktop.Telepathy.Connection.Interface.Cellular.IMSI">
8607       <type name="utf8"/>
8608     </constant>
8609     <constant name="PROP_CONNECTION_INTERFACE_CELLULAR_MESSAGE_REDUCED_CHARACTER_SET" value="org.freedesktop.Telepathy.Connection.Interface.Cellular.MessageReducedCharacterSet">
8610       <type name="utf8"/>
8611     </constant>
8612     <constant name="PROP_CONNECTION_INTERFACE_CELLULAR_MESSAGE_SERVICE_CENTRE" value="org.freedesktop.Telepathy.Connection.Interface.Cellular.MessageServiceCentre">
8613       <type name="utf8"/>
8614     </constant>
8615     <constant name="PROP_CONNECTION_INTERFACE_CELLULAR_MESSAGE_VALIDITY_PERIOD" value="org.freedesktop.Telepathy.Connection.Interface.Cellular.MessageValidityPeriod">
8616       <type name="utf8"/>
8617     </constant>
8618     <constant name="PROP_CONNECTION_INTERFACE_CONTACTS_CONTACT_ATTRIBUTE_INTERFACES" value="org.freedesktop.Telepathy.Connection.Interface.Contacts.ContactAttributeInterfaces">
8619       <type name="utf8"/>
8620     </constant>
8621     <constant name="PROP_CONNECTION_INTERFACE_CONTACT_INFO_CONTACT_INFO_FLAGS" value="org.freedesktop.Telepathy.Connection.Interface.ContactInfo.ContactInfoFlags">
8622       <type name="utf8"/>
8623     </constant>
8624     <constant name="PROP_CONNECTION_INTERFACE_CONTACT_INFO_SUPPORTED_FIELDS" value="org.freedesktop.Telepathy.Connection.Interface.ContactInfo.SupportedFields">
8625       <type name="utf8"/>
8626     </constant>
8627     <constant name="PROP_CONNECTION_INTERFACE_LOCATION_LOCATION_ACCESS_CONTROL" value="org.freedesktop.Telepathy.Connection.Interface.Location.LocationAccessControl">
8628       <type name="utf8"/>
8629     </constant>
8630     <constant name="PROP_CONNECTION_INTERFACE_LOCATION_LOCATION_ACCESS_CONTROL_TYPES" value="org.freedesktop.Telepathy.Connection.Interface.Location.LocationAccessControlTypes">
8631       <type name="utf8"/>
8632     </constant>
8633     <constant name="PROP_CONNECTION_INTERFACE_LOCATION_SUPPORTED_LOCATION_FEATURES" value="org.freedesktop.Telepathy.Connection.Interface.Location.SupportedLocationFeatures">
8634       <type name="utf8"/>
8635     </constant>
8636     <constant name="PROP_CONNECTION_INTERFACE_REQUESTS_CHANNELS" value="org.freedesktop.Telepathy.Connection.Interface.Requests.Channels">
8637       <type name="utf8"/>
8638     </constant>
8639     <constant name="PROP_CONNECTION_INTERFACE_REQUESTS_REQUESTABLE_CHANNEL_CLASSES" value="org.freedesktop.Telepathy.Connection.Interface.Requests.RequestableChannelClasses">
8640       <type name="utf8"/>
8641     </constant>
8642     <constant name="PROP_CONNECTION_INTERFACE_SERVICE_POINT_KNOWN_SERVICE_POINTS" value="org.freedesktop.Telepathy.Connection.Interface.ServicePoint.KnownServicePoints">
8643       <type name="utf8"/>
8644     </constant>
8645     <constant name="PROP_CONNECTION_INTERFACE_SIMPLE_PRESENCE_STATUSES" value="org.freedesktop.Telepathy.Connection.Interface.SimplePresence.Statuses">
8646       <type name="utf8"/>
8647     </constant>
8648     <constant name="PROP_CONNECTION_MANAGER_INTERFACES" value="org.freedesktop.Telepathy.ConnectionManager.Interfaces">
8649       <type name="utf8"/>
8650     </constant>
8651     <constant name="PROP_CONNECTION_MANAGER_PROTOCOLS" value="org.freedesktop.Telepathy.ConnectionManager.Protocols">
8652       <type name="utf8"/>
8653     </constant>
8654     <constant name="PROP_CONNECTION_SELF_HANDLE" value="org.freedesktop.Telepathy.Connection.SelfHandle">
8655       <type name="utf8"/>
8656     </constant>
8657     <constant name="PROP_CONNECTION_STATUS" value="org.freedesktop.Telepathy.Connection.Status">
8658       <type name="utf8"/>
8659     </constant>
8660     <constant name="PROP_DEBUG_ENABLED" value="org.freedesktop.Telepathy.Debug.Enabled">
8661       <type name="utf8"/>
8662     </constant>
8663     <constant name="PROP_MEDIA_STREAM_HANDLER_CREATED_LOCALLY" value="org.freedesktop.Telepathy.Media.StreamHandler.CreatedLocally">
8664       <type name="utf8"/>
8665     </constant>
8666     <constant name="PROP_MEDIA_STREAM_HANDLER_NAT_TRAVERSAL" value="org.freedesktop.Telepathy.Media.StreamHandler.NATTraversal">
8667       <type name="utf8"/>
8668     </constant>
8669     <constant name="PROP_MEDIA_STREAM_HANDLER_RELAY_INFO" value="org.freedesktop.Telepathy.Media.StreamHandler.RelayInfo">
8670       <type name="utf8"/>
8671     </constant>
8672     <constant name="PROP_MEDIA_STREAM_HANDLER_STUN_SERVERS" value="org.freedesktop.Telepathy.Media.StreamHandler.STUNServers">
8673       <type name="utf8"/>
8674     </constant>
8675     <constant name="PROP_PROTOCOL_CONNECTION_INTERFACES" value="org.freedesktop.Telepathy.Protocol.ConnectionInterfaces">
8676       <type name="utf8"/>
8677     </constant>
8678     <constant name="PROP_PROTOCOL_ENGLISH_NAME" value="org.freedesktop.Telepathy.Protocol.EnglishName">
8679       <type name="utf8"/>
8680     </constant>
8681     <constant name="PROP_PROTOCOL_ICON" value="org.freedesktop.Telepathy.Protocol.Icon">
8682       <type name="utf8"/>
8683     </constant>
8684     <constant name="PROP_PROTOCOL_INTERFACES" value="org.freedesktop.Telepathy.Protocol.Interfaces">
8685       <type name="utf8"/>
8686     </constant>
8687     <constant name="PROP_PROTOCOL_PARAMETERS" value="org.freedesktop.Telepathy.Protocol.Parameters">
8688       <type name="utf8"/>
8689     </constant>
8690     <constant name="PROP_PROTOCOL_REQUESTABLE_CHANNEL_CLASSES" value="org.freedesktop.Telepathy.Protocol.RequestableChannelClasses">
8691       <type name="utf8"/>
8692     </constant>
8693     <constant name="PROP_PROTOCOL_VCARD_FIELD" value="org.freedesktop.Telepathy.Protocol.VCardField">
8694       <type name="utf8"/>
8695     </constant>
8696     <constant name="PROTOCOL_PREFIX_LEN" value="9">
8697       <type name="int"/>
8698     </constant>
8699     <record name="PresenceMixin" c:type="TpPresenceMixin">
8700       <doc xml:whitespace="preserve">Structure to be included in the instance structure of objects that
8701 use this mixin. Initialize it with tp_presence_mixin_init().
8702 There are no public fields.</doc>
8703       <field name="priv" writable="1">
8704         <type name="PresenceMixinPrivate" c:type="TpPresenceMixinPrivate*"/>
8705       </field>
8706     </record>
8707     <record name="PresenceMixinClass" c:type="TpPresenceMixinClass">
8708       <doc xml:whitespace="preserve">Structure to be included in the class structure of objects that
8709 use this mixin. Initialize it with tp_presence_mixin_class_init().
8710 All fields should be considered read-only.</doc>
8711       <field name="status_available" writable="1">
8712         <type name="PresenceMixinStatusAvailableFunc" c:type="TpPresenceMixinStatusAvailableFunc"/>
8713       </field>
8714       <field name="get_contact_statuses" writable="1">
8715         <type name="PresenceMixinGetContactStatusesFunc" c:type="TpPresenceMixinGetContactStatusesFunc"/>
8716       </field>
8717       <field name="set_own_status" writable="1">
8718         <type name="PresenceMixinSetOwnStatusFunc" c:type="TpPresenceMixinSetOwnStatusFunc"/>
8719       </field>
8720       <field name="statuses" writable="1">
8721         <type name="PresenceStatusSpec" c:type="TpPresenceStatusSpec*"/>
8722       </field>
8723       <field name="priv" writable="1">
8724         <type name="PresenceMixinClassPrivate" c:type="TpPresenceMixinClassPrivate*"/>
8725       </field>
8726       <field name="_future1" writable="1">
8727         <type name="any" c:type="gpointer"/>
8728       </field>
8729       <field name="_future2" writable="1">
8730         <type name="any" c:type="gpointer"/>
8731       </field>
8732       <field name="_future3" writable="1">
8733         <type name="any" c:type="gpointer"/>
8734       </field>
8735       <field name="_future4" writable="1">
8736         <type name="any" c:type="gpointer"/>
8737       </field>
8738     </record>
8739     <record name="PresenceMixinClassPrivate" c:type="TpPresenceMixinClassPrivate">
8740     </record>
8741     <callback name="PresenceMixinGetContactStatusesFunc" c:type="TpPresenceMixinGetContactStatusesFunc" throws="1">
8742       <doc xml:whitespace="preserve">Signature of the callback used to get the stored presence status of
8743 contacts. The returned hash table should have contact handles mapped to
8744 their respective presence statuses in #TpPresenceStatus structs.
8745 The returned hash table will be freed with g_hash_table_destroy. The
8746 callback is responsible for ensuring that this does any cleanup that
8747 may be necessary.</doc>
8748       <return-value transfer-ownership="full">
8749         <doc xml:whitespace="preserve">The contact presence on success, %NULL with error set on error</doc>
8750         <type name="GLib.HashTable" c:type="GHashTable*"/>
8751       </return-value>
8752       <parameters>
8753         <parameter name="obj" transfer-ownership="none">
8754           <doc xml:whitespace="preserve">An object with this mixin.</doc>
8755           <type name="GObject.Object" c:type="GObject*"/>
8756         </parameter>
8757         <parameter name="contacts" transfer-ownership="none">
8758           <doc xml:whitespace="preserve">An array of #TpHandle for the contacts to get presence status for</doc>
8759           <array name="GLib.Array" c:type="GArray*">
8760             <type name="any" c:type="gpointer"/>
8761           </array>
8762         </parameter>
8763       </parameters>
8764     </callback>
8765     <record name="PresenceMixinPrivate" c:type="TpPresenceMixinPrivate">
8766     </record>
8767     <callback name="PresenceMixinSetOwnStatusFunc" c:type="TpPresenceMixinSetOwnStatusFunc" throws="1">
8768       <doc xml:whitespace="preserve">Signature of the callback used to commit changes to the user's own presence
8769 status in SetStatuses. It is also used in ClearStatus and RemoveStatus to
8770 reset the user's own status back to the "default" one with a %NULL status
8771 argument.
8772 The optional_arguments hash table in @status, if not NULL, will have been
8773 filtered so it only contains recognised parameters, so the callback
8774 need not (and cannot) check for unrecognised parameters. However, the
8775 types of the parameters are not currently checked, so the callback is
8776 responsible for doing so.
8777 The callback is responsible for emitting PresenceUpdate, if appropriate,
8778 by calling tp_presence_mixin_emit_presence_update().</doc>
8779       <return-value transfer-ownership="none">
8780         <doc xml:whitespace="preserve">%TRUE if the operation was successful, %FALSE if not.</doc>
8781         <type name="boolean" c:type="gboolean"/>
8782       </return-value>
8783       <parameters>
8784         <parameter name="obj" transfer-ownership="none">
8785           <doc xml:whitespace="preserve">An object with this mixin.</doc>
8786           <type name="GObject.Object" c:type="GObject*"/>
8787         </parameter>
8788         <parameter name="status" transfer-ownership="none">
8789           <doc xml:whitespace="preserve">The status to set, or NULL for whatever the protocol defines as a "default" status</doc>
8790           <type name="PresenceStatus" c:type="TpPresenceStatus*"/>
8791         </parameter>
8792       </parameters>
8793     </callback>
8794     <callback name="PresenceMixinStatusAvailableFunc" c:type="TpPresenceMixinStatusAvailableFunc">
8795       <doc xml:whitespace="preserve">Signature of the callback used to determine if a given status is currently
8796 available to be set on the connection.
8797 When implementing the
8798 org.freedesktop.Telepathy.Connection.Interface.SimplePresence interface
8799 this can be called while DISCONNECTED to determine which statuses can be set
8800 in that state.</doc>
8801       <return-value transfer-ownership="none">
8802         <doc xml:whitespace="preserve">%TRUE if the status is available, %FALSE if not.</doc>
8803         <type name="boolean" c:type="gboolean"/>
8804       </return-value>
8805       <parameters>
8806         <parameter name="obj" transfer-ownership="none">
8807           <doc xml:whitespace="preserve">An object implementing the presence interface with this mixin</doc>
8808           <type name="GObject.Object" c:type="GObject*"/>
8809         </parameter>
8810         <parameter name="which" transfer-ownership="none">
8811           <doc xml:whitespace="preserve">The index of the presence status in the provided supported presence statuses array</doc>
8812           <type name="uint" c:type="guint"/>
8813         </parameter>
8814       </parameters>
8815     </callback>
8816     <record name="PresenceStatus" c:type="TpPresenceStatus">
8817       <doc xml:whitespace="preserve">Structure representing a presence status.
8818 In addition to the fields documented here, there are two gpointer fields
8819 which must currently be %NULL. A meaning may be defined for these in a
8820 future version of telepathy-glib.</doc>
8821       <field name="index" writable="1">
8822         <type name="uint" c:type="guint"/>
8823       </field>
8824       <field name="optional_arguments" writable="1">
8825         <type name="GLib.HashTable" c:type="GHashTable*"/>
8826       </field>
8827       <field name="_future1" writable="1">
8828         <type name="any" c:type="gpointer"/>
8829       </field>
8830       <field name="_future2" writable="1">
8831         <type name="any" c:type="gpointer"/>
8832       </field>
8833       <constructor name="new" c:identifier="tp_presence_status_new" introspectable="0">
8834         <doc xml:whitespace="preserve">Construct a presence status structure. You should free the returned
8835 structure with #tp_presence_status_free.</doc>
8836         <return-value transfer-ownership="full">
8837           <doc xml:whitespace="preserve">A pointer to the newly allocated presence status structure.</doc>
8838           <type name="PresenceStatus" c:type="TpPresenceStatus*"/>
8839         </return-value>
8840         <parameters>
8841           <parameter name="which" transfer-ownership="none">
8842             <doc xml:whitespace="preserve">Index of the presence status in the provided supported presence statuses array</doc>
8843             <type name="uint" c:type="guint"/>
8844           </parameter>
8845           <parameter name="optional_arguments" transfer-ownership="none">
8846             <doc xml:whitespace="preserve">Optional arguments for the presence statuses. Can be NULL if there are no optional arguments. The presence status object makes a copy of the hashtable, so you should free the original.</doc>
8847             <type name="GLib.HashTable" c:type="GHashTable*"/>
8848           </parameter>
8849         </parameters>
8850       </constructor>
8851       <method name="free" c:identifier="tp_presence_status_free" introspectable="0">
8852         <doc xml:whitespace="preserve">Deallocate all resources associated with a presence status structure.</doc>
8853         <return-value transfer-ownership="none">
8854           <type name="none" c:type="void"/>
8855         </return-value>
8856       </method>
8857     </record>
8858     <record name="PresenceStatusOptionalArgumentSpec" c:type="TpPresenceStatusOptionalArgumentSpec">
8859       <field name="name" writable="1">
8860         <type name="utf8" c:type="gchar*"/>
8861       </field>
8862       <field name="dtype" writable="1">
8863         <type name="utf8" c:type="gchar*"/>
8864       </field>
8865       <field name="_future1" writable="1">
8866         <type name="any" c:type="gpointer"/>
8867       </field>
8868       <field name="_future2" writable="1">
8869         <type name="any" c:type="gpointer"/>
8870       </field>
8871     </record>
8872     <record name="PresenceStatusSpec" c:type="TpPresenceStatusSpec">
8873       <field name="name" writable="1">
8874         <type name="utf8" c:type="gchar*"/>
8875       </field>
8876       <field name="presence_type" writable="1">
8877         <type name="ConnectionPresenceType" c:type="TpConnectionPresenceType"/>
8878       </field>
8879       <field name="self" writable="1">
8880         <type name="boolean" c:type="gboolean"/>
8881       </field>
8882       <field name="optional_arguments" writable="1">
8883         <type name="PresenceStatusOptionalArgumentSpec" c:type="TpPresenceStatusOptionalArgumentSpec*"/>
8884       </field>
8885       <field name="_future1" writable="1">
8886         <type name="any" c:type="gpointer"/>
8887       </field>
8888       <field name="_future2" writable="1">
8889         <type name="any" c:type="gpointer"/>
8890       </field>
8891     </record>
8892     <enumeration name="PropertyFlags" c:type="TpPropertyFlags">
8893       <member name="read" value="1" c:identifier="TP_PROPERTY_FLAG_READ"/>
8894       <member name="write" value="2" c:identifier="TP_PROPERTY_FLAG_WRITE"/>
8895     </enumeration>
8896     <class name="Protocol" c:type="TpProtocol" version="0.11.11" parent="Proxy" glib:type-name="TpProtocol" glib:get-type="tp_protocol_get_type" glib:type-struct="ProtocolClass">
8897       <doc xml:whitespace="preserve">A base class for connection managers' protocols.</doc>
8898       <constructor name="new" c:identifier="tp_protocol_new" version="0.11.11" throws="1">
8899         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
8900         <return-value transfer-ownership="full">
8901           <doc xml:whitespace="preserve">a new protocol proxy, or %NULL on invalid arguments</doc>
8902           <type name="Protocol" c:type="TpProtocol*"/>
8903         </return-value>
8904         <parameters>
8905           <parameter name="dbus" transfer-ownership="none">
8906             <doc xml:whitespace="preserve">proxy for the D-Bus daemon; may not be %NULL</doc>
8907             <type name="DBusDaemon" c:type="TpDBusDaemon*"/>
8908           </parameter>
8909           <parameter name="cm_name" transfer-ownership="none">
8910             <doc xml:whitespace="preserve">the connection manager name (such as "gabble")</doc>
8911             <type name="utf8" c:type="gchar*"/>
8912           </parameter>
8913           <parameter name="protocol_name" transfer-ownership="none">
8914             <doc xml:whitespace="preserve">the protocol name (such as "jabber")</doc>
8915             <type name="utf8" c:type="gchar*"/>
8916           </parameter>
8917           <parameter name="immutable_properties" transfer-ownership="none">
8918             <doc xml:whitespace="preserve">the immutable D-Bus properties for this protocol</doc>
8919             <type name="GLib.HashTable" c:type="GHashTable*"/>
8920           </parameter>
8921         </parameters>
8922       </constructor>
8923       <function name="init_known_interfaces" c:identifier="tp_protocol_init_known_interfaces" version="0.11.11">
8924         <doc xml:whitespace="preserve">Ensure that the known interfaces for TpProtocol have been set up.
8925 This is done automatically when necessary, but for correct
8926 overriding of library interfaces by local extensions, you should
8927 call this function before calling
8928 tp_proxy_or_subclass_hook_on_interface_add() with first argument
8929 %TP_TYPE_PROTOCOL.</doc>
8930         <return-value transfer-ownership="none">
8931           <type name="none" c:type="void"/>
8932         </return-value>
8933       </function>
8934       <function name="get_feature_quark_parameters" c:identifier="tp_protocol_get_feature_quark_parameters">
8935         <return-value transfer-ownership="full">
8936           <type name="GLib.Quark" c:type="GQuark"/>
8937         </return-value>
8938       </function>
8939       <function name="get_feature_quark_core" c:identifier="tp_protocol_get_feature_quark_core">
8940         <return-value transfer-ownership="full">
8941           <type name="GLib.Quark" c:type="GQuark"/>
8942         </return-value>
8943       </function>
8944       <method name="get_name" c:identifier="tp_protocol_get_name" version="0.11.11">
8945         <doc xml:whitespace="preserve">Return the same thing as the protocol-name property, for convenient use
8946 in C code. The returned string is valid for as long as @self exists.</doc>
8947         <return-value transfer-ownership="none">
8948           <doc xml:whitespace="preserve">the value of the #TpProtocol:protocol-name property</doc>
8949           <type name="utf8" c:type="gchar*"/>
8950         </return-value>
8951       </method>
8952       <method name="get_param" c:identifier="tp_protocol_get_param" version="0.11.11">
8953         <doc xml:whitespace="preserve">&lt;!-- no more to say --&gt;
8954 supported</doc>
8955         <return-value transfer-ownership="none">
8956           <doc xml:whitespace="preserve">a structure representing the parameter @param, or %NULL if not</doc>
8957           <type name="ConnectionManagerParam" c:type="TpConnectionManagerParam*"/>
8958         </return-value>
8959         <parameters>
8960           <parameter name="param" transfer-ownership="none">
8961             <doc xml:whitespace="preserve">a parameter name</doc>
8962             <type name="utf8" c:type="gchar*"/>
8963           </parameter>
8964         </parameters>
8965       </method>
8966       <method name="has_param" c:identifier="tp_protocol_has_param" version="0.11.11">
8967         <doc xml:whitespace="preserve">&lt;!-- no more to say --&gt;</doc>
8968         <return-value transfer-ownership="none">
8969           <doc xml:whitespace="preserve">%TRUE if @self supports the parameter @param.</doc>
8970           <type name="boolean" c:type="gboolean"/>
8971         </return-value>
8972         <parameters>
8973           <parameter name="param" transfer-ownership="none">
8974             <doc xml:whitespace="preserve">a parameter name</doc>
8975             <type name="utf8" c:type="gchar*"/>
8976           </parameter>
8977         </parameters>
8978       </method>
8979       <method name="can_register" c:identifier="tp_protocol_can_register" version="0.11.11">
8980         <doc xml:whitespace="preserve">Return whether a new account can be registered on this protocol, by setting
8981 the special "register" parameter to %TRUE.</doc>
8982         <return-value transfer-ownership="none">
8983           <doc xml:whitespace="preserve">%TRUE if @protocol supports the parameter "register"</doc>
8984           <type name="boolean" c:type="gboolean"/>
8985         </return-value>
8986       </method>
8987       <method name="dup_param_names" c:identifier="tp_protocol_dup_param_names" version="0.11.11">
8988         <doc xml:whitespace="preserve">Returns a list of parameter names supported by this connection manager
8989 for this protocol.
8990 The result is copied and must be freed by the caller with g_strfreev().
8991 #TpProtocol:param-names</doc>
8992         <return-value transfer-ownership="full">
8993           <doc xml:whitespace="preserve">a copy of</doc>
8994           <array c:type="GStrv">
8995             <type name="utf8"/>
8996           </array>
8997         </return-value>
8998       </method>
8999       <method name="get_vcard_field" c:identifier="tp_protocol_get_vcard_field" version="0.11.11">
9000         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
9001         <return-value transfer-ownership="none">
9002           <doc xml:whitespace="preserve">the value of #TpProtocol:vcard-field</doc>
9003           <type name="utf8" c:type="gchar*"/>
9004         </return-value>
9005       </method>
9006       <method name="get_english_name" c:identifier="tp_protocol_get_english_name" version="0.11.11">
9007         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
9008         <return-value transfer-ownership="none">
9009           <doc xml:whitespace="preserve">the non-%NULL, non-empty value of #TpProtocol:english-name</doc>
9010           <type name="utf8" c:type="gchar*"/>
9011         </return-value>
9012       </method>
9013       <method name="get_icon_name" c:identifier="tp_protocol_get_icon_name" version="0.11.11">
9014         <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
9015         <return-value transfer-ownership="none">
9016           <doc xml:whitespace="preserve">the non-%NULL, non-empty value of #TpProtocol:icon-name</doc>
9017           <type name="utf8" c:type="gchar*"/>
9018         </return-value>
9019       </method>
9020       <method name="get_capabilities" c:identifier="tp_protocol_get_capabilities" version="0.11.11">
9021         <doc xml:whitespace="preserve">&lt;!-- --&gt;
9022 (if non-%NULL) if it will be kept</doc>
9023         <return-value transfer-ownership="none">
9024           <doc xml:whitespace="preserve">capabilities, which must be referenced</doc>
9025           <type name="Capabilities" c:type="TpCapabilities*"/>
9026         </return-value>
9027       </method>
9028       <property name="capabilities" version="0.11.11" transfer-ownership="none">
9029         <doc xml:whitespace="preserve">The classes of channel that can be requested from connections to this
9030 protocol, or %NULL if this is unknown or the %TP_PROTOCOL_FEATURE_CORE
9031 feature has not been prepared.</doc>
9032         <type name="Capabilities" c:type="TpCapabilities"/>
9033       </property>
9034       <property name="english-name" version="0.11.11" transfer-ownership="none">
9035         <doc xml:whitespace="preserve">The name of the protocol in a form suitable for display to users,
9036 such as "AIM" or "Yahoo!", or a string based on #TpProtocol:protocol-name
9037 (currently constructed by putting the first character in title case,
9038 but this is not guaranteed) if no better name is available or the
9039 %TP_PROTOCOL_FEATURE_CORE feature has not been prepared.
9040 This is effectively in the C locale (international English); user
9041 interfaces requiring a localized protocol name should look one up in their
9042 own message catalog based on either #TpProtocol:protocol-name or
9043 #TpProtocol:english-name, but should use this English version as a
9044 fallback if no translated version can be found.</doc>
9045         <type name="utf8" c:type="gchararray"/>
9046       </property>
9047       <property name="icon-name" version="0.11.11" transfer-ownership="none">
9048         <doc xml:whitespace="preserve">The name of an icon in the system's icon theme. If none was supplied
9049 by the Protocol, or the %TP_PROTOCOL_FEATURE_CORE feature has not been
9050 prepared, a default is used; currently, this is "im-" plus
9051 #TpProtocol:name.</doc>
9052         <type name="utf8" c:type="gchararray"/>
9053       </property>
9054       <property name="param-names" version="0.11.11" transfer-ownership="none">
9055         <doc xml:whitespace="preserve">A list of parameter names supported by this connection manager
9056 for this protocol, or %NULL if %TP_PROTOCOL_FEATURE_PARAMETERS has not
9057 been prepared.</doc>
9058         <type name="GObject.Strv" c:type="GStrv"/>
9059       </property>
9060       <property name="protocol-name" version="0.11.11" writable="1" construct-only="1" transfer-ownership="none">
9061         <doc xml:whitespace="preserve">The machine-readable name of the protocol, taken from the Telepathy
9062 D-Bus Interface Specification, such as "jabber" or "local-xmpp".</doc>
9063         <type name="utf8" c:type="gchararray"/>
9064       </property>
9065       <property name="vcard-field" version="0.11.11" transfer-ownership="none">
9066         <doc xml:whitespace="preserve">The most common vCard field used for this protocol's contact
9067 identifiers, normalized to lower case, or %NULL if there is no such field
9068 or the %TP_PROTOCOL_FEATURE_CORE feature has not been prepared.</doc>
9069         <type name="utf8" c:type="gchararray"/>
9070       </property>
9071       <field name="parent">
9072         <type name="Proxy" c:type="TpProxy"/>
9073       </field>
9074       <field name="priv">
9075         <type name="ProtocolPrivate" c:type="TpProtocolPrivate*"/>
9076       </field>
9077     </class>
9078     <record name="ProtocolClass" c:type="TpProtocolClass" glib:is-gtype-struct-for="Protocol" version="0.11.11">
9079       <doc xml:whitespace="preserve">The class of a #TpProtocol.</doc>
9080     </record>
9081     <record name="ProtocolClassPrivate" c:type="TpProtocolClassPrivate">
9082     </record>
9083     <record name="ProtocolPrivate" c:type="TpProtocolPrivate">
9084     </record>
9085     <class name="Proxy" c:type="TpProxy" version="0.7.1" parent="GObject.Object" glib:type-name="TpProxy" glib:get-type="tp_proxy_get_type" glib:type-struct="ProxyClass">
9086       <doc xml:whitespace="preserve">Structure representing a Telepathy client-side proxy.</doc>
9087       <method name="has_interface_by_id" c:identifier="tp_proxy_has_interface_by_id" version="0.7.1">
9088         <doc xml:whitespace="preserve">Return whether this proxy is known to have a particular interface, by its
9089 quark ID. This is equivalent to using g_quark_to_string() followed by
9090 tp_proxy_has_interface(), but more efficient.</doc>
9091         <return-value transfer-ownership="none">
9092           <doc xml:whitespace="preserve">%TRUE if this proxy implements the given interface.</doc>
9093           <type name="boolean" c:type="gboolean"/>
9094         </return-value>
9095         <parameters>
9096           <parameter name="iface" transfer-ownership="none">
9097             <doc xml:whitespace="preserve">quark representing the D-Bus interface required</doc>
9098             <type name="GLib.Quark" c:type="GQuark"/>
9099           </parameter>
9100         </parameters>
9101       </method>
9102       <method name="has_interface" c:identifier="tp_proxy_has_interface" version="0.7.1">
9103         <doc xml:whitespace="preserve">Return whether this proxy is known to have a particular interface. In
9104 versions older than 0.11.11, this was a macro wrapper around
9105 tp_proxy_has_interface_by_id().
9106 For objects that discover their interfaces at runtime, this method will
9107 indicate that interfaces are missing until they are known to be present.
9108 In subclasses that define features for use with tp_proxy_prepare_async(),
9109 successfully preparing the "core" feature for that subclass (such as
9110 %TP_CHANNEL_FEATURE_CORE or %TP_CONNECTION_FEATURE_CORE) implies that the
9111 interfaces are known.</doc>
9112         <return-value transfer-ownership="none">
9113           <doc xml:whitespace="preserve">%TRUE if this proxy implements the given interface.</doc>
9114           <type name="boolean" c:type="gboolean"/>
9115         </return-value>
9116         <parameters>
9117           <parameter name="iface" transfer-ownership="none">
9118             <doc xml:whitespace="preserve">the D-Bus interface required, as a string</doc>
9119             <type name="utf8" c:type="gchar*"/>
9120           </parameter>
9121         </parameters>
9122       </method>
9123       <method name="get_dbus_daemon" c:identifier="tp_proxy_get_dbus_daemon" version="0.7.17">
9124         <doc xml:whitespace="preserve">&lt;!-- --&gt;
9125 this object, if any; always %NULL if this object is itself a
9126 #TpDBusDaemon. The caller must reference the returned object with
9127 g_object_ref() if it will be kept.</doc>
9128         <return-value transfer-ownership="none">
9129           <doc xml:whitespace="preserve">a borrowed reference to the #TpDBusDaemon for</doc>
9130           <type name="DBusDaemon" c:type="TpDBusDaemon*"/>
9131         </return-value>
9132       </method>
9133       <method name="get_dbus_connection" c:identifier="tp_proxy_get_dbus_connection" version="0.7.17" introspectable="0">
9134         <doc xml:whitespace="preserve">&lt;!-- --&gt;
9135 The caller must reference the returned pointer with
9136 dbus_g_connection_ref() if it will be kept.</doc>
9137         <return-value transfer-ownership="full">
9138           <doc xml:whitespace="preserve">a borrowed reference to the D-Bus connection used by this object.</doc>
9139           <type name="DBusGConnection" c:type="DBusGConnection*"/>
9140         </return-value>
9141       </method>
9142       <method name="get_bus_name" c:identifier="tp_proxy_get_bus_name" version="0.7.17">
9143         <doc xml:whitespace="preserve">&lt;!-- --&gt;
9144 must copy the string with g_strdup() if it will be kept.</doc>
9145         <return-value transfer-ownership="none">
9146           <doc xml:whitespace="preserve">the bus name of the application exporting the object. The caller</doc>
9147           <type name="utf8" c:type="gchar*"/>
9148         </return-value>
9149       </method>
9150       <method name="get_object_path" c:identifier="tp_proxy_get_object_path" version="0.7.17">
9151         <doc xml:whitespace="preserve">&lt;!-- --&gt;
9152 string with g_strdup() if it will be kept.</doc>
9153         <return-value transfer-ownership="none">
9154           <doc xml:whitespace="preserve">the object path of the remote object. The caller must copy the</doc>
9155           <type name="utf8" c:type="gchar*"/>
9156         </return-value>
9157       </method>
9158       <method name="get_invalidated" c:identifier="tp_proxy_get_invalidated" version="0.7.17">
9159         <doc xml:whitespace="preserve">&lt;!-- --&gt;
9160 invalidated. The caller must copy the error, for instance with
9161 g_error_copy(), if it will be kept.</doc>
9162         <return-value transfer-ownership="none">
9163           <doc xml:whitespace="preserve">the reason this proxy was invalidated, or %NULL if has not been</doc>
9164           <type name="GLib.Error" c:type="GError*"/>
9165         </return-value>
9166       </method>
9167       <method name="dbus_error_to_gerror" c:identifier="tp_proxy_dbus_error_to_gerror" version="0.7.24" throws="1">
9168         <doc xml:whitespace="preserve">Convert a D-Bus error name into a GError as if it was returned by a method
9169 on this proxy. This method is useful when D-Bus error names are emitted in
9170 signals, such as Connection.ConnectionError and
9171 Group.MembersChangedDetailed.</doc>
9172         <return-value transfer-ownership="none">
9173           <type name="none" c:type="void"/>
9174         </return-value>
9175         <parameters>
9176           <parameter name="dbus_error" transfer-ownership="none">
9177             <doc xml:whitespace="preserve">a D-Bus error name, for instance from the callback for tp_cli_connection_connect_to_connection_error()</doc>
9178             <type name="utf8" c:type="char*"/>
9179           </parameter>
9180           <parameter name="debug_message" transfer-ownership="none">
9181             <doc xml:whitespace="preserve">a debug message that accompanied the error name, or %NULL</doc>
9182             <type name="utf8" c:type="char*"/>
9183           </parameter>
9184         </parameters>
9185       </method>
9186       <method name="is_prepared" c:identifier="tp_proxy_is_prepared" version="0.11.3">
9187         <doc xml:whitespace="preserve">Return %TRUE if @feature has been prepared successfully, or %FALSE if
9188 available on this object at all.
9189 (For instance, if @feature is %TP_CHANNEL_FEATURE_CHAT_STATES and @self
9190 is a #TpChannel in a protocol that doesn't actually implement chat states,
9191 or is not a #TpChannel at all, then this method will return %FALSE.)
9192 To prepare features, call tp_proxy_prepare_async().</doc>
9193         <return-value transfer-ownership="none">
9194           <doc xml:whitespace="preserve">%TRUE if @feature has been prepared successfully</doc>
9195           <type name="boolean" c:type="gboolean"/>
9196         </return-value>
9197         <parameters>
9198           <parameter name="feature" transfer-ownership="none">
9199             <doc xml:whitespace="preserve">a feature that is supported by @self's class</doc>
9200             <type name="GLib.Quark" c:type="GQuark"/>
9201           </parameter>
9202         </parameters>
9203       </method>
9204       <method name="prepare_async" c:identifier="tp_proxy_prepare_async" version="0.11.3">
9205         <doc xml:whitespace="preserve">#TpProxy itself does not support any features, but subclasses like
9206 #TpChannel can support features, which can either be core functionality like
9207 %TP_CHANNEL_FEATURE_CORE, or extended functionality like
9208 %TP_CHANNEL_FEATURE_CHAT_STATES.
9209 Proxy instances start with no features prepared. When features are
9210 requested via tp_proxy_prepare_async(), the proxy starts to do the
9211 necessary setup to use those features.
9212 tp_proxy_prepare_async() always waits for core functionality of the proxy's
9213 instance, because %TP_CHANNEL_FEATURE_CORE is core functionality of a
9214 #TpChannel,
9215 |[
9216 TpChannel *channel = ...;
9217 tp_proxy_prepare_async (channel, NULL, NULL, callback, user_data);
9218 ]|
9219 is equivalent to
9220 |[
9221 TpChannel *channel = ...;
9222 GQuark features[] = { TP_CHANNEL_FEATURE_CORE, 0 };
9223 tp_proxy_prepare_async (channel, features, callback, user_data);
9224 ]|
9225 If a feature represents core functionality (like %TP_CHANNEL_FEATURE_CORE),
9226 failure to prepare it will result in tp_proxy_prepare_async() finishing
9227 is no longer useful, it will also emit #TpProxy::invalidated.
9228 If a feature represents non-essential functionality
9229 (like %TP_CHANNEL_FEATURE_CHAT_STATES), or is not supported by the object
9230 at all, then failure to prepare it is not fatal:
9231 tp_proxy_prepare_async() will complete successfully, but
9232 tp_proxy_is_prepared() will still return %FALSE for the feature, and
9233 accessor methods for the feature will typically return a dummy value.
9234 Some #TpProxy subclasses automatically start to prepare their core
9235 features when instantiated, and features will sometimes become prepared as
9236 a side-effect of other actions, but to ensure that a feature is present you
9237 must generally call tp_proxy_prepare_async() and wait for the result.</doc>
9238         <return-value transfer-ownership="none">
9239           <type name="none" c:type="void"/>
9240         </return-value>
9241         <parameters>
9242           <parameter name="features" transfer-ownership="none" allow-none="1">
9243             <doc xml:whitespace="preserve">an array of desired features, ending with 0; %NULL is equivalent to an array containing only 0</doc>
9244             <array c:type="GQuark*">
9245               <type name="GLib.Quark"/>
9246             </array>
9247           </parameter>
9248           <parameter name="callback" transfer-ownership="none" scope="async" closure="3">
9249             <doc xml:whitespace="preserve">if not %NULL, called exactly once, when the features have all been prepared or failed to prepare, or after the proxy is invalidated</doc>
9250             <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
9251           </parameter>
9252           <parameter name="user_data" transfer-ownership="none">
9253             <doc xml:whitespace="preserve">user data for @callback</doc>
9254             <type name="any" c:type="gpointer"/>
9255           </parameter>
9256         </parameters>
9257       </method>
9258       <method name="prepare_finish" c:identifier="tp_proxy_prepare_finish" version="0.11.3" throws="1">
9259         <doc xml:whitespace="preserve">Check for error in a call to tp_proxy_prepare_async(). An error here
9260 generally indicates that either the asynchronous call was cancelled,
9261 or @self has emitted #TpProxy::invalidated.
9262 or was cancelled</doc>
9263         <return-value transfer-ownership="none">
9264           <doc xml:whitespace="preserve">%FALSE (setting @error) if tp_proxy_prepare_async() failed</doc>
9265           <type name="boolean" c:type="gboolean"/>
9266         </return-value>
9267         <parameters>
9268           <parameter name="result" transfer-ownership="none">
9269             <doc xml:whitespace="preserve">the result passed to the callback of tp_proxy_prepare_async()</doc>
9270             <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
9271           </parameter>
9272         </parameters>
9273       </method>
9274       <property name="bus-name" writable="1" construct-only="1" transfer-ownership="none">
9275         <doc xml:whitespace="preserve">The D-Bus bus name for this object. Read-only except during construction.</doc>
9276         <type name="utf8" c:type="gchararray"/>
9277       </property>
9278       <property name="dbus-daemon" writable="1" construct-only="1" transfer-ownership="none">
9279         <doc xml:whitespace="preserve">The D-Bus daemon for this object (this object itself, if it is a
9280 TpDBusDaemon). Read-only except during construction.</doc>
9281         <type name="DBusDaemon" c:type="TpDBusDaemon"/>
9282       </property>
9283       <property name="interfaces" transfer-ownership="none">
9284         <doc xml:whitespace="preserve">Known D-Bus interface names for this object.</doc>
9285         <type name="GObject.Strv" c:type="GStrv"/>
9286       </property>
9287       <property name="object-path" writable="1" construct-only="1" transfer-ownership="none">
9288         <doc xml:whitespace="preserve">The D-Bus object path for this object. Read-only except during
9289 construction.</doc>
9290         <type name="utf8" c:type="gchararray"/>
9291       </property>
9292       <field name="parent">
9293         <type name="GObject.Object" c:type="GObject"/>
9294       </field>
9295       <field name="dbus_daemon">
9296         <type name="DBusDaemon" c:type="TpDBusDaemon*"/>
9297       </field>
9298       
9299       <field name="bus_name">
9300         <type name="utf8" c:type="gchar*"/>
9301       </field>
9302       <field name="object_path">
9303         <type name="utf8" c:type="gchar*"/>
9304       </field>
9305       <field name="invalidated">
9306         <type name="GLib.Error" c:type="GError*"/>
9307       </field>
9308       <field name="priv">
9309         <type name="ProxyPrivate" c:type="TpProxyPrivate*"/>
9310       </field>
9311       <glib:signal name="interface-added" introspectable="0">
9312         <doc xml:whitespace="preserve">Emitted when this proxy has gained an interface. It is not guaranteed
9313 to be emitted immediately, but will be emitted before the interface is
9314 tp_proxy_borrow_interface_by_id(), any signal is connected, or any
9315 method is called).
9316 The intended use is to call dbus_g_proxy_add_signals(). This signal
9317 should only be used by TpProy implementations</doc>
9318         <return-value transfer-ownership="full">
9319           <type name="none" c:type="void"/>
9320         </return-value>
9321         <parameters>
9322           <parameter name="id" transfer-ownership="none">
9323             <doc xml:whitespace="preserve">the GQuark representing the interface</doc>
9324             <type name="uint" c:type="guint"/>
9325           </parameter>
9326           <parameter name="proxy" transfer-ownership="none">
9327             <doc xml:whitespace="preserve">the dbus-glib proxy representing the interface</doc>
9328             <type name="DBusGProxy" c:type="DBusGProxy"/>
9329           </parameter>
9330         </parameters>
9331       </glib:signal>
9332       <glib:signal name="invalidated">
9333         <doc xml:whitespace="preserve">Emitted when this proxy has been become invalid for
9334 whatever reason. Any more specific signal should be emitted first.</doc>
9335         <return-value transfer-ownership="full">
9336           <type name="none" c:type="void"/>
9337         </return-value>
9338         <parameters>
9339           <parameter name="domain" transfer-ownership="none">
9340             <doc xml:whitespace="preserve">domain of a GError indicating why this proxy was invalidated</doc>
9341             <type name="uint" c:type="guint"/>
9342           </parameter>
9343           <parameter name="code" transfer-ownership="none">
9344             <doc xml:whitespace="preserve">error code of a GError indicating why this proxy was invalidated</doc>
9345             <type name="int" c:type="gint"/>
9346           </parameter>
9347           <parameter name="message" transfer-ownership="none">
9348             <doc xml:whitespace="preserve">a message associated with the error</doc>
9349             <type name="utf8" c:type="gchararray"/>
9350           </parameter>
9351         </parameters>
9352       </glib:signal>
9353     </class>
9354     <record name="ProxyClass" c:type="TpProxyClass" glib:is-gtype-struct-for="Proxy" version="0.7.1">
9355       <doc xml:whitespace="preserve">The class of a #TpProxy. The struct fields not documented here are reserved.</doc>
9356       <field name="parent_class">
9357         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
9358       </field>
9359       <field name="interface">
9360         <type name="GLib.Quark" c:type="GQuark"/>
9361       </field>
9362       <field name="must_have_unique_name" bits="1">
9363         <type name="uint" c:type="unsigned"/>
9364       </field>
9365       <field name="_reserved_flags" bits="31">
9366         <type name="uint" c:type="guint"/>
9367       </field>
9368       <field name="_internal_list_features">
9369         <type name="GObject.Callback" c:type="GCallback"/>
9370       </field>
9371       <field name="_reserved">
9372         <array zero-terminated="0" c:type="GCallback" fixed-size="3">
9373           <type name="GObject.Callback"/>
9374         </array>
9375       </field>
9376       <field name="priv">
9377         <type name="any" c:type="gpointer"/>
9378       </field>
9379     </record>
9380     <record name="ProxyFeature" c:type="TpProxyFeature" version="0.11.3">
9381       <doc xml:whitespace="preserve">Structure representing a feature. This is currently opaque to code outside
9382 telepathy-glib itself.</doc>
9383     </record>
9384     <record name="ProxyPendingCall" c:type="TpProxyPendingCall">
9385       <method name="cancel" c:identifier="tp_proxy_pending_call_cancel">
9386         <return-value transfer-ownership="none">
9387           <type name="none" c:type="void"/>
9388         </return-value>
9389       </method>
9390     </record>
9391     <record name="ProxyPrivate" c:type="TpProxyPrivate">
9392     </record>
9393     <record name="ProxySignalConnection" c:type="TpProxySignalConnection">
9394       <method name="disconnect" c:identifier="tp_proxy_signal_connection_disconnect">
9395         <return-value transfer-ownership="none">
9396           <type name="none" c:type="void"/>
9397         </return-value>
9398       </method>
9399     </record>
9400     <enumeration name="RichPresenceAccessControlType" c:type="TpRichPresenceAccessControlType">
9401       <member name="whitelist" value="0" c:identifier="TP_RICH_PRESENCE_ACCESS_CONTROL_TYPE_WHITELIST"/>
9402       <member name="publish_list" value="1" c:identifier="TP_RICH_PRESENCE_ACCESS_CONTROL_TYPE_PUBLISH_LIST"/>
9403       <member name="group" value="2" c:identifier="TP_RICH_PRESENCE_ACCESS_CONTROL_TYPE_GROUP"/>
9404       <member name="open" value="3" c:identifier="TP_RICH_PRESENCE_ACCESS_CONTROL_TYPE_OPEN"/>
9405     </enumeration>
9406     <enumeration name="ServicePointType" c:type="TpServicePointType">
9407       <member name="none" value="0" c:identifier="TP_SERVICE_POINT_TYPE_NONE"/>
9408       <member name="emergency" value="1" c:identifier="TP_SERVICE_POINT_TYPE_EMERGENCY"/>
9409       <member name="counseling" value="2" c:identifier="TP_SERVICE_POINT_TYPE_COUNSELING"/>
9410     </enumeration>
9411     <class name="SimpleApprover" c:type="TpSimpleApprover" version="0.11.5" parent="BaseClient" glib:type-name="TpSimpleApprover" glib:get-type="tp_simple_approver_get_type" glib:type-struct="SimpleApproverClass">
9412       <doc xml:whitespace="preserve">Data structure representing a simple Approver implementation.</doc>
9413       <constructor name="new" c:identifier="tp_simple_approver_new" version="0.11.5">
9414         <doc xml:whitespace="preserve">Convenient function to create a new #TpSimpleApprover instance.
9415 If @dbus is not the result of tp_dbus_daemon_dup(), you should call
9416 tp_simple_approver_new_with_am() instead, so that #TpAccount,
9417 #TpConnection and #TpContact instances can be shared between modules.</doc>
9418         <return-value transfer-ownership="full">
9419           <doc xml:whitespace="preserve">a new #TpSimpleApprover</doc>
9420           <type name="TelepathyGLib.SimpleApprover" c:type="TpBaseClient*"/>
9421         </return-value>
9422         <parameters>
9423           <parameter name="dbus" transfer-ownership="none">
9424             <doc xml:whitespace="preserve">a #TpDBusDaemon object, may not be %NULL</doc>
9425             <type name="DBusDaemon" c:type="TpDBusDaemon*"/>
9426           </parameter>
9427           <parameter name="name" transfer-ownership="none">
9428             <doc xml:whitespace="preserve">the name of the Approver (see #TpBaseClient:name: for details)</doc>
9429             <type name="utf8" c:type="gchar*"/>
9430           </parameter>
9431           <parameter name="unique" transfer-ownership="none">
9432             <doc xml:whitespace="preserve">the value of the TpBaseClient:uniquify-name: property</doc>
9433             <type name="boolean" c:type="gboolean"/>
9434           </parameter>
9435           <parameter name="callback" transfer-ownership="none" scope="notified" closure="4" destroy="5">
9436             <doc xml:whitespace="preserve">the function called when ApproverChannels is called</doc>
9437             <type name="SimpleApproverAddDispatchOperationImpl" c:type="TpSimpleApproverAddDispatchOperationImpl"/>
9438           </parameter>
9439           <parameter name="user_data" transfer-ownership="none">
9440             <doc xml:whitespace="preserve">arbitrary user-supplied data passed to @callback</doc>
9441             <type name="any" c:type="gpointer"/>
9442           </parameter>
9443           <parameter name="destroy" transfer-ownership="none" scope="call">
9444             <doc xml:whitespace="preserve">called with the user_data as argument, when the #TpSimpleApprover is destroyed</doc>
9445             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
9446           </parameter>
9447         </parameters>
9448       </constructor>
9449       <constructor name="new_with_am" c:identifier="tp_simple_approver_new_with_am" version="0.11.14">
9450         <doc xml:whitespace="preserve">Convenient function to create a new #TpSimpleApprover instance with a
9451 specified #TpAccountManager.
9452 It is not necessary to prepare any features on @account_manager before
9453 calling this function.</doc>
9454         <return-value transfer-ownership="full">
9455           <doc xml:whitespace="preserve">a new #TpSimpleApprover</doc>
9456           <type name="TelepathyGLib.SimpleApprover" c:type="TpBaseClient*"/>
9457         </return-value>
9458         <parameters>
9459           <parameter name="account_manager" transfer-ownership="none">
9460             <doc xml:whitespace="preserve">an account manager, which may not be %NULL</doc>
9461             <type name="AccountManager" c:type="TpAccountManager*"/>
9462           </parameter>
9463           <parameter name="name" transfer-ownership="none">
9464             <doc xml:whitespace="preserve">the name of the Approver (see #TpBaseClient:name: for details)</doc>
9465             <type name="utf8" c:type="gchar*"/>
9466           </parameter>
9467           <parameter name="unique" transfer-ownership="none">
9468             <doc xml:whitespace="preserve">the value of the TpBaseClient:uniquify-name: property</doc>
9469             <type name="boolean" c:type="gboolean"/>
9470           </parameter>
9471           <parameter name="callback" transfer-ownership="none" scope="notified" closure="4" destroy="5">
9472             <doc xml:whitespace="preserve">the function called when ApproverChannels is called</doc>
9473             <type name="SimpleApproverAddDispatchOperationImpl" c:type="TpSimpleApproverAddDispatchOperationImpl"/>
9474           </parameter>
9475           <parameter name="user_data" transfer-ownership="none">
9476             <doc xml:whitespace="preserve">arbitrary user-supplied data passed to @callback</doc>
9477             <type name="any" c:type="gpointer"/>
9478           </parameter>
9479           <parameter name="destroy" transfer-ownership="none" scope="call">
9480             <doc xml:whitespace="preserve">called with the user_data as argument, when the #TpSimpleApprover is destroyed</doc>
9481             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
9482           </parameter>
9483         </parameters>
9484       </constructor>
9485       <property name="callback" version="0.11.5" readable="0" writable="1" construct-only="1" transfer-ownership="none">
9486         <doc xml:whitespace="preserve">The TpSimpleApproverAddDispatchOperationImpl callback implementing the
9487 ApproverChannels D-Bus method.
9488 This property can't be %NULL.</doc>
9489         <type name="any" c:type="gpointer"/>
9490       </property>
9491       <property name="destroy" version="0.11.5" readable="0" writable="1" construct-only="1" transfer-ownership="none">
9492         <doc xml:whitespace="preserve">The #GDestroyNotify function called to free the user-data pointer when
9493 the #TpSimpleApprover is destroyed.</doc>
9494         <type name="any" c:type="gpointer"/>
9495       </property>
9496       <property name="user-data" version="0.11.5" readable="0" writable="1" construct-only="1" transfer-ownership="none">
9497         <doc xml:whitespace="preserve">The user-data pointer passed to the callback implementing the
9498 ApproverChannels D-Bus method.</doc>
9499         <type name="any" c:type="gpointer"/>
9500       </property>
9501       <field name="parent">
9502         <type name="BaseClient" c:type="TpBaseClient"/>
9503       </field>
9504       <field name="priv">
9505         <type name="SimpleApproverPrivate" c:type="TpSimpleApproverPrivate*"/>
9506       </field>
9507     </class>
9508     <callback name="SimpleApproverAddDispatchOperationImpl" c:type="TpSimpleApproverAddDispatchOperationImpl" version="0.11.5">
9509       <doc xml:whitespace="preserve">Signature of the implementation of the AddDispatchOperation method.
9510 This function must call either tp_add_dispatch_operation_context_accept(),
9511 tp_add_dispatch_operation_context_delay() or
9512 tp_add_dispatch_operation_context_fail() on @context before it returns.</doc>
9513       <return-value transfer-ownership="none">
9514         <type name="none" c:type="void"/>
9515       </return-value>
9516       <parameters>
9517         <parameter name="self" transfer-ownership="none">
9518           <doc xml:whitespace="preserve">a #TpSimpleApprover instance</doc>
9519           <type name="SimpleApprover" c:type="TpSimpleApprover*"/>
9520         </parameter>
9521         <parameter name="account" transfer-ownership="none">
9522           <doc xml:whitespace="preserve">a #TpAccount having %TP_ACCOUNT_FEATURE_CORE prepared if possible</doc>
9523           <type name="Account" c:type="TpAccount*"/>
9524         </parameter>
9525         <parameter name="connection" transfer-ownership="none">
9526           <doc xml:whitespace="preserve">a #TpConnection having %TP_CONNECTION_FEATURE_CORE prepared if possible</doc>
9527           <type name="Connection" c:type="TpConnection*"/>
9528         </parameter>
9529         <parameter name="channels" transfer-ownership="none">
9530           <doc xml:whitespace="preserve">a #GList of #TpChannel, all having %TP_CHANNEL_FEATURE_CORE prepared</doc>
9531           <type name="GLib.List" c:type="GList*">
9532             <type name="TelepathyGLib.Channel"/>
9533           </type>
9534         </parameter>
9535         <parameter name="dispatch_operation" transfer-ownership="none" allow-none="1">
9536           <doc xml:whitespace="preserve">a #TpChannelDispatchOperation or %NULL; the dispatch_operation is not guaranteed to be prepared</doc>
9537           <type name="ChannelDispatchOperation" c:type="TpChannelDispatchOperation*"/>
9538         </parameter>
9539         <parameter name="context" transfer-ownership="none">
9540           <doc xml:whitespace="preserve">a #TpAddDispatchOperationContext representing the context of this D-Bus call</doc>
9541           <type name="AddDispatchOperationContext" c:type="TpAddDispatchOperationContext*"/>
9542         </parameter>
9543         <parameter name="user_data" transfer-ownership="none" closure="6">
9544           <doc xml:whitespace="preserve">arbitrary user-supplied data passed to tp_simple_approver_new()</doc>
9545           <type name="any" c:type="gpointer"/>
9546         </parameter>
9547       </parameters>
9548     </callback>
9549     <record name="SimpleApproverClass" c:type="TpSimpleApproverClass" glib:is-gtype-struct-for="SimpleApprover" version="0.11.5">
9550       <doc xml:whitespace="preserve">The class of a #TpSimpleApprover.</doc>
9551       <field name="parent_class">
9552         <type name="BaseClientClass" c:type="TpBaseClientClass"/>
9553       </field>
9554       <field name="_padding">
9555         <array zero-terminated="0" c:type="GCallback" fixed-size="7">
9556           <type name="GObject.Callback"/>
9557         </array>
9558       </field>
9559     </record>
9560     <record name="SimpleApproverPrivate" c:type="TpSimpleApproverPrivate">
9561     </record>
9562     <class name="SimpleHandler" c:type="TpSimpleHandler" version="0.11.6" parent="BaseClient" glib:type-name="TpSimpleHandler" glib:get-type="tp_simple_handler_get_type" glib:type-struct="SimpleHandlerClass">
9563       <doc xml:whitespace="preserve">Data structure representing a simple Handler implementation.</doc>
9564       <constructor name="new" c:identifier="tp_simple_handler_new" version="0.11.6">
9565         <doc xml:whitespace="preserve">Convenient function to create a new #TpSimpleHandler instance.
9566 If @dbus is not the result of tp_dbus_daemon_dup(), you should call
9567 tp_simple_handler_new_with_am() instead, so that #TpAccount,
9568 #TpConnection and #TpContact instances can be shared between modules.</doc>
9569         <return-value transfer-ownership="full">
9570           <doc xml:whitespace="preserve">a new #TpSimpleHandler</doc>
9571           <type name="TelepathyGLib.SimpleHandler" c:type="TpBaseClient*"/>
9572         </return-value>
9573         <parameters>
9574           <parameter name="dbus" transfer-ownership="none">
9575             <doc xml:whitespace="preserve">a #TpDBusDaemon object, may not be %NULL</doc>
9576             <type name="DBusDaemon" c:type="TpDBusDaemon*"/>
9577           </parameter>
9578           <parameter name="bypass_approval" transfer-ownership="none">
9579             <doc xml:whitespace="preserve">the value of the Handler.BypassApproval D-Bus property (see tp_base_client_set_handler_bypass_approval() for details)</doc>
9580             <type name="boolean" c:type="gboolean"/>
9581           </parameter>
9582           <parameter name="requests" transfer-ownership="none">
9583             <doc xml:whitespace="preserve">if this handler implement Requests (see tp_base_client_set_handler_request_notification() for details)</doc>
9584             <type name="boolean" c:type="gboolean"/>
9585           </parameter>
9586           <parameter name="name" transfer-ownership="none">
9587             <doc xml:whitespace="preserve">the name of the Handler (see #TpBaseClient:name: for details)</doc>
9588             <type name="utf8" c:type="gchar*"/>
9589           </parameter>
9590           <parameter name="unique" transfer-ownership="none">
9591             <doc xml:whitespace="preserve">the value of the TpBaseClient:uniquify-name: property</doc>
9592             <type name="boolean" c:type="gboolean"/>
9593           </parameter>
9594           <parameter name="callback" transfer-ownership="none" scope="notified" closure="6" destroy="7">
9595             <doc xml:whitespace="preserve">the function called when HandleChannels is called</doc>
9596             <type name="SimpleHandlerHandleChannelsImpl" c:type="TpSimpleHandlerHandleChannelsImpl"/>
9597           </parameter>
9598           <parameter name="user_data" transfer-ownership="none">
9599             <doc xml:whitespace="preserve">arbitrary user-supplied data passed to @callback</doc>
9600             <type name="any" c:type="gpointer"/>
9601           </parameter>
9602           <parameter name="destroy" transfer-ownership="none" scope="call">
9603             <doc xml:whitespace="preserve">called with the user_data as argument, when the #TpSimpleHandler is destroyed</doc>
9604             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
9605           </parameter>
9606         </parameters>
9607       </constructor>
9608       <constructor name="new_with_am" c:identifier="tp_simple_handler_new_with_am" version="0.11.14">
9609         <doc xml:whitespace="preserve">Convenient function to create a new #TpSimpleHandler instance with a
9610 specified #TpAccountManager.
9611 It is not necessary to prepare any features on @account_manager before
9612 calling this function.</doc>
9613         <return-value transfer-ownership="full">
9614           <doc xml:whitespace="preserve">a new #TpSimpleHandler</doc>
9615           <type name="TelepathyGLib.SimpleHandler" c:type="TpBaseClient*"/>
9616         </return-value>
9617         <parameters>
9618           <parameter name="account_manager" transfer-ownership="none">
9619             <doc xml:whitespace="preserve">an account manager, which may not be %NULL</doc>
9620             <type name="AccountManager" c:type="TpAccountManager*"/>
9621           </parameter>
9622           <parameter name="bypass_approval" transfer-ownership="none">
9623             <doc xml:whitespace="preserve">the value of the Handler.BypassApproval D-Bus property (see tp_base_client_set_handler_bypass_approval() for details)</doc>
9624             <type name="boolean" c:type="gboolean"/>
9625           </parameter>
9626           <parameter name="requests" transfer-ownership="none">
9627             <doc xml:whitespace="preserve">if this handler implement Requests (see tp_base_client_set_handler_request_notification() for details)</doc>
9628             <type name="boolean" c:type="gboolean"/>
9629           </parameter>
9630           <parameter name="name" transfer-ownership="none">
9631             <doc xml:whitespace="preserve">the name of the Handler (see #TpBaseClient:name: for details)</doc>
9632             <type name="utf8" c:type="gchar*"/>
9633           </parameter>
9634           <parameter name="unique" transfer-ownership="none">
9635             <doc xml:whitespace="preserve">the value of the TpBaseClient:uniquify-name: property</doc>
9636             <type name="boolean" c:type="gboolean"/>
9637           </parameter>
9638           <parameter name="callback" transfer-ownership="none" scope="notified" closure="6" destroy="7">
9639             <doc xml:whitespace="preserve">the function called when HandleChannels is called</doc>
9640             <type name="SimpleHandlerHandleChannelsImpl" c:type="TpSimpleHandlerHandleChannelsImpl"/>
9641           </parameter>
9642           <parameter name="user_data" transfer-ownership="none">
9643             <doc xml:whitespace="preserve">arbitrary user-supplied data passed to @callback</doc>
9644             <type name="any" c:type="gpointer"/>
9645           </parameter>
9646           <parameter name="destroy" transfer-ownership="none" scope="call">
9647             <doc xml:whitespace="preserve">called with the user_data as argument, when the #TpSimpleHandler is destroyed</doc>
9648             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
9649           </parameter>
9650         </parameters>
9651       </constructor>
9652       <property name="bypass-approval" version="0.11.6" readable="0" writable="1" construct-only="1" transfer-ownership="none">
9653         <doc xml:whitespace="preserve">The value of the Handler.BypassApproval D-Bus property.</doc>
9654         <type name="boolean" c:type="gboolean"/>
9655       </property>
9656       <property name="callback" version="0.11.6" readable="0" writable="1" construct-only="1" transfer-ownership="none">
9657         <doc xml:whitespace="preserve">The TpSimpleHandlerHandleChannelsImpl callback implementing the
9658 HandleChannels D-Bus method.
9659 This property can't be %NULL.</doc>
9660         <type name="any" c:type="gpointer"/>
9661       </property>
9662       <property name="destroy" version="0.11.6" readable="0" writable="1" construct-only="1" transfer-ownership="none">
9663         <doc xml:whitespace="preserve">The #GDestroyNotify function called to free the user-data pointer when
9664 the #TpSimpleHandler is destroyed.</doc>
9665         <type name="any" c:type="gpointer"/>
9666       </property>
9667       <property name="requests" version="0.11.6" readable="0" writable="1" construct-only="1" transfer-ownership="none">
9668         <doc xml:whitespace="preserve">If %TRUE, the Handler will implement the Requests interface</doc>
9669         <type name="boolean" c:type="gboolean"/>
9670       </property>
9671       <property name="user-data" version="0.11.6" readable="0" writable="1" construct-only="1" transfer-ownership="none">
9672         <doc xml:whitespace="preserve">The user-data pointer passed to the callback implementing the
9673 HandleChannels D-Bus method.</doc>
9674         <type name="any" c:type="gpointer"/>
9675       </property>
9676       <field name="parent">
9677         <type name="BaseClient" c:type="TpBaseClient"/>
9678       </field>
9679       <field name="priv">
9680         <type name="SimpleHandlerPrivate" c:type="TpSimpleHandlerPrivate*"/>
9681       </field>
9682     </class>
9683     <record name="SimpleHandlerClass" c:type="TpSimpleHandlerClass" glib:is-gtype-struct-for="SimpleHandler" version="0.11.6">
9684       <doc xml:whitespace="preserve">The class of a #TpSimpleHandler.</doc>
9685       <field name="parent_class">
9686         <type name="BaseClientClass" c:type="TpBaseClientClass"/>
9687       </field>
9688       <field name="_padding">
9689         <array zero-terminated="0" c:type="GCallback" fixed-size="7">
9690           <type name="GObject.Callback"/>
9691         </array>
9692       </field>
9693     </record>
9694     <callback name="SimpleHandlerHandleChannelsImpl" c:type="TpSimpleHandlerHandleChannelsImpl" version="0.11.6">
9695       <doc xml:whitespace="preserve">Signature of the implementation of the HandleChannels method.
9696 This function must call either tp_handle_channels_context_accept(),
9697 tp_handle_channels_context_delay() or tp_handle_channels_context_fail()
9698 on @context before it returns.</doc>
9699       <return-value transfer-ownership="none">
9700         <type name="none" c:type="void"/>
9701       </return-value>
9702       <parameters>
9703         <parameter name="self" transfer-ownership="none">
9704           <doc xml:whitespace="preserve">a #TpSimpleHandler instance</doc>
9705           <type name="SimpleHandler" c:type="TpSimpleHandler*"/>
9706         </parameter>
9707         <parameter name="account" transfer-ownership="none">
9708           <doc xml:whitespace="preserve">a #TpAccount having %TP_ACCOUNT_FEATURE_CORE prepared if possible</doc>
9709           <type name="Account" c:type="TpAccount*"/>
9710         </parameter>
9711         <parameter name="connection" transfer-ownership="none">
9712           <doc xml:whitespace="preserve">a #TpConnection having %TP_CONNECTION_FEATURE_CORE prepared if possible</doc>
9713           <type name="Connection" c:type="TpConnection*"/>
9714         </parameter>
9715         <parameter name="channels" transfer-ownership="none">
9716           <doc xml:whitespace="preserve">a #GList of #TpChannel, all having %TP_CHANNEL_FEATURE_CORE prepared if possible</doc>
9717           <type name="GLib.List" c:type="GList*">
9718             <type name="TelepathyGLib.Channel"/>
9719           </type>
9720         </parameter>
9721         <parameter name="requests_satisfied" transfer-ownership="none">
9722           <doc xml:whitespace="preserve">a #GList of #TpChannelRequest having their object-path defined but are not guaranteed to be prepared.</doc>
9723           <type name="GLib.List" c:type="GList*">
9724             <type name="TelepathyGLib.ChannelRequest"/>
9725           </type>
9726         </parameter>
9727         <parameter name="user_action_time" transfer-ownership="none">
9728           <doc xml:whitespace="preserve">the time at which user action occurred, or one of the special values %TP_USER_ACTION_TIME_NOT_USER_ACTION or %TP_USER_ACTION_TIME_CURRENT_TIME (see #TpAccountChannelRequest:user-action-time for details)</doc>
9729           <type name="int64" c:type="gint64"/>
9730         </parameter>
9731         <parameter name="context" transfer-ownership="none">
9732           <doc xml:whitespace="preserve">a #TpHandleChannelsContext representing the context of this D-Bus call</doc>
9733           <type name="HandleChannelsContext" c:type="TpHandleChannelsContext*"/>
9734         </parameter>
9735         <parameter name="user_data" transfer-ownership="none" closure="7">
9736           <doc xml:whitespace="preserve">arbitrary user-supplied data passed to tp_simple_handler_new()</doc>
9737           <type name="any" c:type="gpointer"/>
9738         </parameter>
9739       </parameters>
9740     </callback>
9741     <record name="SimpleHandlerPrivate" c:type="TpSimpleHandlerPrivate">
9742     </record>
9743     <class name="SimpleObserver" c:type="TpSimpleObserver" version="0.11.5" parent="BaseClient" glib:type-name="TpSimpleObserver" glib:get-type="tp_simple_observer_get_type" glib:type-struct="SimpleObserverClass">
9744       <doc xml:whitespace="preserve">Data structure representing a simple Observer implementation.</doc>
9745       <constructor name="new" c:identifier="tp_simple_observer_new" version="0.11.5">
9746         <doc xml:whitespace="preserve">Convenient function to create a new #TpSimpleObserver instance.
9747 If @dbus is not the result of tp_dbus_daemon_dup(), you should call
9748 tp_simple_observer_new_with_am() instead, so that #TpAccount,
9749 #TpConnection and #TpContact instances can be shared between modules.</doc>
9750         <return-value transfer-ownership="full">
9751           <doc xml:whitespace="preserve">a new #TpSimpleObserver</doc>
9752           <type name="TelepathyGLib.SimpleObserver" c:type="TpBaseClient*"/>
9753         </return-value>
9754         <parameters>
9755           <parameter name="dbus" transfer-ownership="none">
9756             <doc xml:whitespace="preserve">a #TpDBusDaemon object, may not be %NULL</doc>
9757             <type name="DBusDaemon" c:type="TpDBusDaemon*"/>
9758           </parameter>
9759           <parameter name="recover" transfer-ownership="none">
9760             <doc xml:whitespace="preserve">the value of the Observer.Recover D-Bus property</doc>
9761             <type name="boolean" c:type="gboolean"/>
9762           </parameter>
9763           <parameter name="name" transfer-ownership="none">
9764             <doc xml:whitespace="preserve">the name of the Observer (see #TpBaseClient:name: for details)</doc>
9765             <type name="utf8" c:type="gchar*"/>
9766           </parameter>
9767           <parameter name="unique" transfer-ownership="none">
9768             <doc xml:whitespace="preserve">the value of the TpBaseClient:uniquify-name: property</doc>
9769             <type name="boolean" c:type="gboolean"/>
9770           </parameter>
9771           <parameter name="callback" transfer-ownership="none" scope="notified" closure="5" destroy="6">
9772             <doc xml:whitespace="preserve">the function called when ObserverChannels is called</doc>
9773             <type name="SimpleObserverObserveChannelsImpl" c:type="TpSimpleObserverObserveChannelsImpl"/>
9774           </parameter>
9775           <parameter name="user_data" transfer-ownership="none">
9776             <doc xml:whitespace="preserve">arbitrary user-supplied data passed to @callback</doc>
9777             <type name="any" c:type="gpointer"/>
9778           </parameter>
9779           <parameter name="destroy" transfer-ownership="none" scope="call">
9780             <doc xml:whitespace="preserve">called with the user_data as argument, when the #TpSimpleObserver is destroyed</doc>
9781             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
9782           </parameter>
9783         </parameters>
9784       </constructor>
9785       <constructor name="new_with_am" c:identifier="tp_simple_observer_new_with_am" version="0.11.14">
9786         <doc xml:whitespace="preserve">Convenient function to create a new #TpSimpleObserver instance with a
9787 specified #TpAccountManager.
9788 It is not necessary to prepare any features on @account_manager before
9789 calling this function.</doc>
9790         <return-value transfer-ownership="full">
9791           <doc xml:whitespace="preserve">a new #TpSimpleObserver</doc>
9792           <type name="TelepathyGLib.SimpleObserver" c:type="TpBaseClient*"/>
9793         </return-value>
9794         <parameters>
9795           <parameter name="account_manager" transfer-ownership="none">
9796             <doc xml:whitespace="preserve">an account manager, which may not be %NULL</doc>
9797             <type name="AccountManager" c:type="TpAccountManager*"/>
9798           </parameter>
9799           <parameter name="recover" transfer-ownership="none">
9800             <doc xml:whitespace="preserve">the value of the Observer.Recover D-Bus property</doc>
9801             <type name="boolean" c:type="gboolean"/>
9802           </parameter>
9803           <parameter name="name" transfer-ownership="none">
9804             <doc xml:whitespace="preserve">the name of the Observer (see #TpBaseClient:name: for details)</doc>
9805             <type name="utf8" c:type="gchar*"/>
9806           </parameter>
9807           <parameter name="unique" transfer-ownership="none">
9808             <doc xml:whitespace="preserve">the value of the TpBaseClient:uniquify-name: property</doc>
9809             <type name="boolean" c:type="gboolean"/>
9810           </parameter>
9811           <parameter name="callback" transfer-ownership="none" scope="notified" closure="5" destroy="6">
9812             <doc xml:whitespace="preserve">the function called when ObserverChannels is called</doc>
9813             <type name="SimpleObserverObserveChannelsImpl" c:type="TpSimpleObserverObserveChannelsImpl"/>
9814           </parameter>
9815           <parameter name="user_data" transfer-ownership="none">
9816             <doc xml:whitespace="preserve">arbitrary user-supplied data passed to @callback</doc>
9817             <type name="any" c:type="gpointer"/>
9818           </parameter>
9819           <parameter name="destroy" transfer-ownership="none" scope="call">
9820             <doc xml:whitespace="preserve">called with the user_data as argument, when the #TpSimpleObserver is destroyed</doc>
9821             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
9822           </parameter>
9823         </parameters>
9824       </constructor>
9825       <property name="callback" version="0.11.5" readable="0" writable="1" construct-only="1" transfer-ownership="none">
9826         <doc xml:whitespace="preserve">The TpSimpleObserverObserveChannelsImpl callback implementing the
9827 ObserverChannels D-Bus method.
9828 This property can't be %NULL.</doc>
9829         <type name="any" c:type="gpointer"/>
9830       </property>
9831       <property name="destroy" version="0.11.5" readable="0" writable="1" construct-only="1" transfer-ownership="none">
9832         <doc xml:whitespace="preserve">The #GDestroyNotify function called to free the user-data pointer when
9833 the #TpSimpleObserver is destroyed.</doc>
9834         <type name="any" c:type="gpointer"/>
9835       </property>
9836       <property name="recover" version="0.11.5" readable="0" writable="1" construct-only="1" transfer-ownership="none">
9837         <doc xml:whitespace="preserve">The value of the Observer.Recover D-Bus property.</doc>
9838         <type name="boolean" c:type="gboolean"/>
9839       </property>
9840       <property name="user-data" version="0.11.5" readable="0" writable="1" construct-only="1" transfer-ownership="none">
9841         <doc xml:whitespace="preserve">The user-data pointer passed to the callback implementing the
9842 ObserverChannels D-Bus method.</doc>
9843         <type name="any" c:type="gpointer"/>
9844       </property>
9845       <field name="parent">
9846         <type name="BaseClient" c:type="TpBaseClient"/>
9847       </field>
9848       <field name="priv">
9849         <type name="SimpleObserverPrivate" c:type="TpSimpleObserverPrivate*"/>
9850       </field>
9851     </class>
9852     <record name="SimpleObserverClass" c:type="TpSimpleObserverClass" glib:is-gtype-struct-for="SimpleObserver" version="0.11.5">
9853       <doc xml:whitespace="preserve">The class of a #TpSimpleObserver.</doc>
9854       <field name="parent_class">
9855         <type name="BaseClientClass" c:type="TpBaseClientClass"/>
9856       </field>
9857       <field name="_padding">
9858         <array zero-terminated="0" c:type="GCallback" fixed-size="7">
9859           <type name="GObject.Callback"/>
9860         </array>
9861       </field>
9862     </record>
9863     <callback name="SimpleObserverObserveChannelsImpl" c:type="TpSimpleObserverObserveChannelsImpl" version="0.11.5">
9864       <doc xml:whitespace="preserve">Signature of the implementation of the ObserveChannels method.
9865 This function must call either tp_observe_channels_context_accept(),
9866 tp_observe_channels_context_delay() or tp_observe_channels_context_fail()
9867 on @context before it returns.</doc>
9868       <return-value transfer-ownership="none">
9869         <type name="none" c:type="void"/>
9870       </return-value>
9871       <parameters>
9872         <parameter name="self" transfer-ownership="none">
9873           <doc xml:whitespace="preserve">a #TpSimpleObserver instance</doc>
9874           <type name="SimpleObserver" c:type="TpSimpleObserver*"/>
9875         </parameter>
9876         <parameter name="account" transfer-ownership="none">
9877           <doc xml:whitespace="preserve">a #TpAccount having %TP_ACCOUNT_FEATURE_CORE prepared if possible</doc>
9878           <type name="Account" c:type="TpAccount*"/>
9879         </parameter>
9880         <parameter name="connection" transfer-ownership="none">
9881           <doc xml:whitespace="preserve">a #TpConnection having %TP_CONNECTION_FEATURE_CORE prepared if possible</doc>
9882           <type name="Connection" c:type="TpConnection*"/>
9883         </parameter>
9884         <parameter name="channels" transfer-ownership="none">
9885           <doc xml:whitespace="preserve">a #GList of #TpChannel, all having %TP_CHANNEL_FEATURE_CORE prepared if possible</doc>
9886           <type name="GLib.List" c:type="GList*">
9887             <type name="TelepathyGLib.Channel"/>
9888           </type>
9889         </parameter>
9890         <parameter name="dispatch_operation" transfer-ownership="none" allow-none="1">
9891           <doc xml:whitespace="preserve">a #TpChannelDispatchOperation or %NULL; the dispatch_operation is not guaranteed to be prepared</doc>
9892           <type name="ChannelDispatchOperation" c:type="TpChannelDispatchOperation*"/>
9893         </parameter>
9894         <parameter name="requests" transfer-ownership="none">
9895           <doc xml:whitespace="preserve">a #GList of #TpChannelRequest, all having their object-path defined but are not guaranteed to be prepared.</doc>
9896           <type name="GLib.List" c:type="GList*">
9897             <type name="TelepathyGLib.ChannelRequest"/>
9898           </type>
9899         </parameter>
9900         <parameter name="context" transfer-ownership="none">
9901           <doc xml:whitespace="preserve">a #TpObserveChannelsContext representing the context of this D-Bus call</doc>
9902           <type name="ObserveChannelsContext" c:type="TpObserveChannelsContext*"/>
9903         </parameter>
9904         <parameter name="user_data" transfer-ownership="none" closure="7">
9905           <doc xml:whitespace="preserve">arbitrary user-supplied data passed to tp_simple_observer_new()</doc>
9906           <type name="any" c:type="gpointer"/>
9907         </parameter>
9908       </parameters>
9909     </callback>
9910     <record name="SimpleObserverPrivate" c:type="TpSimpleObserverPrivate">
9911     </record>
9912     <enumeration name="SocketAccessControl" c:type="TpSocketAccessControl">
9913       <member name="localhost" value="0" c:identifier="TP_SOCKET_ACCESS_CONTROL_LOCALHOST"/>
9914       <member name="port" value="1" c:identifier="TP_SOCKET_ACCESS_CONTROL_PORT"/>
9915       <member name="netmask" value="2" c:identifier="TP_SOCKET_ACCESS_CONTROL_NETMASK"/>
9916       <member name="credentials" value="3" c:identifier="TP_SOCKET_ACCESS_CONTROL_CREDENTIALS"/>
9917     </enumeration>
9918     <enumeration name="SocketAddressType" c:type="TpSocketAddressType">
9919       <member name="unix" value="0" c:identifier="TP_SOCKET_ADDRESS_TYPE_UNIX"/>
9920       <member name="abstract_unix" value="1" c:identifier="TP_SOCKET_ADDRESS_TYPE_ABSTRACT_UNIX"/>
9921       <member name="ipv4" value="2" c:identifier="TP_SOCKET_ADDRESS_TYPE_IPV4"/>
9922       <member name="ipv6" value="3" c:identifier="TP_SOCKET_ADDRESS_TYPE_IPV6"/>
9923     </enumeration>
9924     <enumeration name="StorageRestrictionFlags" c:type="TpStorageRestrictionFlags">
9925       <member name="parameters" value="1" c:identifier="TP_STORAGE_RESTRICTION_FLAG_CANNOT_SET_PARAMETERS"/>
9926       <member name="enabled" value="2" c:identifier="TP_STORAGE_RESTRICTION_FLAG_CANNOT_SET_ENABLED"/>
9927       <member name="presence" value="4" c:identifier="TP_STORAGE_RESTRICTION_FLAG_CANNOT_SET_PRESENCE"/>
9928       <member name="service" value="8" c:identifier="TP_STORAGE_RESTRICTION_FLAG_CANNOT_SET_SERVICE"/>
9929     </enumeration>
9930     <constant name="TOKEN_CHANNEL_INTERFACE_MEDIA_SIGNALLING_GTALK_P2P" value="org.freedesktop.Telepathy.Channel.Interface.MediaSignalling/gtalk-p2p">
9931       <type name="utf8"/>
9932     </constant>
9933     <constant name="TOKEN_CHANNEL_INTERFACE_MEDIA_SIGNALLING_ICE_UDP" value="org.freedesktop.Telepathy.Channel.Interface.MediaSignalling/ice-udp">
9934       <type name="utf8"/>
9935     </constant>
9936     <constant name="TOKEN_CHANNEL_INTERFACE_MEDIA_SIGNALLING_WLM_2009" value="org.freedesktop.Telepathy.Channel.Interface.MediaSignalling/wlm-2009">
9937       <type name="utf8"/>
9938     </constant>
9939     <constant name="TOKEN_CHANNEL_INTERFACE_MEDIA_SIGNALLING_WLM_8_5" value="org.freedesktop.Telepathy.Channel.Interface.MediaSignalling/wlm-8.5">
9940       <type name="utf8"/>
9941     </constant>
9942     <constant name="TOKEN_CONNECTION_CONTACT_ID" value="org.freedesktop.Telepathy.Connection/contact-id">
9943       <type name="utf8"/>
9944     </constant>
9945     <constant name="TOKEN_CONNECTION_INTERFACE_ALIASING_ALIAS" value="org.freedesktop.Telepathy.Connection.Interface.Aliasing/alias">
9946       <type name="utf8"/>
9947     </constant>
9948     <constant name="TOKEN_CONNECTION_INTERFACE_AVATARS_TOKEN" value="org.freedesktop.Telepathy.Connection.Interface.Avatars/token">
9949       <type name="utf8"/>
9950     </constant>
9951     <constant name="TOKEN_CONNECTION_INTERFACE_CAPABILITIES_CAPS" value="org.freedesktop.Telepathy.Connection.Interface.Capabilities/caps">
9952       <type name="utf8"/>
9953     </constant>
9954     <constant name="TOKEN_CONNECTION_INTERFACE_CONTACT_CAPABILITIES_CAPABILITIES" value="org.freedesktop.Telepathy.Connection.Interface.ContactCapabilities/capabilities">
9955       <type name="utf8"/>
9956     </constant>
9957     <constant name="TOKEN_CONNECTION_INTERFACE_CONTACT_INFO_INFO" value="org.freedesktop.Telepathy.Connection.Interface.ContactInfo/info">
9958       <type name="utf8"/>
9959     </constant>
9960     <constant name="TOKEN_CONNECTION_INTERFACE_LOCATION_LOCATION" value="org.freedesktop.Telepathy.Connection.Interface.Location/location">
9961       <type name="utf8"/>
9962     </constant>
9963     <constant name="TOKEN_CONNECTION_INTERFACE_SIMPLE_PRESENCE_PRESENCE" value="org.freedesktop.Telepathy.Connection.Interface.SimplePresence/presence">
9964       <type name="utf8"/>
9965     </constant>
9966     <enumeration name="TubeChannelState" c:type="TpTubeChannelState">
9967       <member name="local_pending" value="0" c:identifier="TP_TUBE_CHANNEL_STATE_LOCAL_PENDING"/>
9968       <member name="remote_pending" value="1" c:identifier="TP_TUBE_CHANNEL_STATE_REMOTE_PENDING"/>
9969       <member name="open" value="2" c:identifier="TP_TUBE_CHANNEL_STATE_OPEN"/>
9970       <member name="not_offered" value="3" c:identifier="TP_TUBE_CHANNEL_STATE_NOT_OFFERED"/>
9971     </enumeration>
9972     <enumeration name="TubeState" c:type="TpTubeState">
9973       <member name="local_pending" value="0" c:identifier="TP_TUBE_STATE_LOCAL_PENDING"/>
9974       <member name="remote_pending" value="1" c:identifier="TP_TUBE_STATE_REMOTE_PENDING"/>
9975       <member name="open" value="2" c:identifier="TP_TUBE_STATE_OPEN"/>
9976     </enumeration>
9977     <enumeration name="TubeType" c:type="TpTubeType">
9978       <member name="dbus" value="0" c:identifier="TP_TUBE_TYPE_DBUS"/>
9979       <member name="stream" value="1" c:identifier="TP_TUBE_TYPE_STREAM"/>
9980     </enumeration>
9981     <constant name="UNKNOWN_CONNECTION_STATUS" value="-1">
9982       <type name="int"/>
9983     </constant>
9984     <function name="asv_dump" c:identifier="tp_asv_dump" introspectable="0">
9985       <doc xml:whitespace="preserve">Dumps the a{sv} map to the debugging console.
9986 The purpose of this function is give the programmer the ability to easily
9987 inspect the contents of an a{sv} map for debugging purposes.</doc>
9988       <return-value transfer-ownership="none">
9989         <type name="none" c:type="void"/>
9990       </return-value>
9991       <parameters>
9992         <parameter name="asv" transfer-ownership="none">
9993           <doc xml:whitespace="preserve">a #GHashTable created with tp_asv_new()</doc>
9994           <type name="GLib.HashTable" c:type="GHashTable*"/>
9995         </parameter>
9996       </parameters>
9997     </function>
9998     <function name="asv_get_boolean" c:identifier="tp_asv_get_boolean" version="0.7.9">
9999       <doc xml:whitespace="preserve">If a value for @key in @asv is present and boolean, return it,
10000 and set *@valid to %TRUE if @valid is not %NULL.
10001 Otherwise return %FALSE, and set *@valid to %FALSE if @valid is not %NULL.</doc>
10002       <return-value transfer-ownership="none">
10003         <doc xml:whitespace="preserve">a boolean value for @key</doc>
10004         <type name="boolean" c:type="gboolean"/>
10005       </return-value>
10006       <parameters>
10007         <parameter name="asv" transfer-ownership="none">
10008           <doc xml:whitespace="preserve">A GHashTable where the keys are strings and the values are GValues</doc>
10009           <type name="GLib.HashTable" c:type="GHashTable*">
10010             <type name="utf8"/>
10011             <type name="GObject.Value"/>
10012           </type>
10013         </parameter>
10014         <parameter name="key" transfer-ownership="none">
10015           <doc xml:whitespace="preserve">The key to look up</doc>
10016           <type name="utf8" c:type="gchar*"/>
10017         </parameter>
10018         <parameter name="valid" direction="out" caller-allocates="0" transfer-ownership="full">
10019           <doc xml:whitespace="preserve">Either %NULL, or a location to store %TRUE if the key actually exists and has a boolean value</doc>
10020           <type name="boolean" c:type="gboolean*"/>
10021         </parameter>
10022       </parameters>
10023     </function>
10024     <function name="asv_get_boxed" c:identifier="tp_asv_get_boxed" version="0.7.9">
10025       <doc xml:whitespace="preserve">If a value for @key in @asv is present and is of the desired type,
10026 return it.
10027 Otherwise return %NULL.
10028 The returned value is not copied, and is only valid as long as the value
10029 for @key in @asv is not removed or altered. Copy it, for instance with
10030 g_boxed_copy(), if you need to keep it for longer.</doc>
10031       <return-value transfer-ownership="none">
10032         <doc xml:whitespace="preserve">the value of @key, or %NULL</doc>
10033         <type name="any" c:type="gpointer"/>
10034       </return-value>
10035       <parameters>
10036         <parameter name="asv" transfer-ownership="none">
10037           <doc xml:whitespace="preserve">A GHashTable where the keys are strings and the values are GValues</doc>
10038           <type name="GLib.HashTable" c:type="GHashTable*">
10039             <type name="utf8"/>
10040             <type name="GObject.Value"/>
10041           </type>
10042         </parameter>
10043         <parameter name="key" transfer-ownership="none">
10044           <doc xml:whitespace="preserve">The key to look up</doc>
10045           <type name="utf8" c:type="gchar*"/>
10046         </parameter>
10047         <parameter name="type" transfer-ownership="none">
10048           <doc xml:whitespace="preserve">The type that the key's value should have, which must be derived from %G_TYPE_BOXED</doc>
10049           <type name="GType" c:type="GType"/>
10050         </parameter>
10051       </parameters>
10052     </function>
10053     <function name="asv_get_bytes" c:identifier="tp_asv_get_bytes" version="0.7.9">
10054       <doc xml:whitespace="preserve">If a value for @key in @asv is present and is an array of bytes
10055 (its GType is %DBUS_TYPE_G_UCHAR_ARRAY), return it.
10056 Otherwise return %NULL.
10057 The returned value is not copied, and is only valid as long as the value
10058 for @key in @asv is not removed or altered. Copy it with
10059 g_boxed_copy (DBUS_TYPE_G_UCHAR_ARRAY, ...) if you need to keep
10060 it for longer.</doc>
10061       <return-value transfer-ownership="none">
10062         <doc xml:whitespace="preserve">the string value of @key, or %NULL</doc>
10063         <array name="GLib.Array" c:type="GArray*">
10064           <type name="any" c:type="gpointer"/>
10065         </array>
10066       </return-value>
10067       <parameters>
10068         <parameter name="asv" transfer-ownership="none">
10069           <doc xml:whitespace="preserve">A GHashTable where the keys are strings and the values are GValues</doc>
10070           <type name="GLib.HashTable" c:type="GHashTable*">
10071             <type name="utf8"/>
10072             <type name="GObject.Value"/>
10073           </type>
10074         </parameter>
10075         <parameter name="key" transfer-ownership="none">
10076           <doc xml:whitespace="preserve">The key to look up</doc>
10077           <type name="utf8" c:type="gchar*"/>
10078         </parameter>
10079       </parameters>
10080     </function>
10081     <function name="asv_get_double" c:identifier="tp_asv_get_double" version="0.7.9">
10082       <doc xml:whitespace="preserve">If a value for @key in @asv is present and has any numeric type used by
10083 dbus-glib (guchar, gint, guint, gint64, guint64 or gdouble),
10084 return it as a double, and if @valid is not %NULL, set *@valid to %TRUE.
10085 Otherwise, return 0.0, and if @valid is not %NULL, set *@valid to %FALSE.</doc>
10086       <return-value transfer-ownership="none">
10087         <doc xml:whitespace="preserve">the double precision floating-point value of @key, or 0.0</doc>
10088         <type name="double" c:type="gdouble"/>
10089       </return-value>
10090       <parameters>
10091         <parameter name="asv" transfer-ownership="none">
10092           <doc xml:whitespace="preserve">A GHashTable where the keys are strings and the values are GValues</doc>
10093           <type name="GLib.HashTable" c:type="GHashTable*">
10094             <type name="utf8"/>
10095             <type name="GObject.Value"/>
10096           </type>
10097         </parameter>
10098         <parameter name="key" transfer-ownership="none">
10099           <doc xml:whitespace="preserve">The key to look up</doc>
10100           <type name="utf8" c:type="gchar*"/>
10101         </parameter>
10102         <parameter name="valid" direction="out" caller-allocates="0" transfer-ownership="full">
10103           <doc xml:whitespace="preserve">Either %NULL, or a location in which to store %TRUE on success or %FALSE on failure</doc>
10104           <type name="boolean" c:type="gboolean*"/>
10105         </parameter>
10106       </parameters>
10107     </function>
10108     <function name="asv_get_int32" c:identifier="tp_asv_get_int32" version="0.7.9">
10109       <doc xml:whitespace="preserve">If a value for @key in @asv is present, has an integer type used by
10110 dbus-glib (guchar, gint, guint, gint64 or guint64) and fits in the
10111 range of a gint32, return it, and if @valid is not %NULL, set *@valid to
10112 %TRUE.
10113 Otherwise, return 0, and if @valid is not %NULL, set *@valid to %FALSE.</doc>
10114       <return-value transfer-ownership="none">
10115         <doc xml:whitespace="preserve">the 32-bit signed integer value of @key, or 0</doc>
10116         <type name="int32" c:type="gint32"/>
10117       </return-value>
10118       <parameters>
10119         <parameter name="asv" transfer-ownership="none">
10120           <doc xml:whitespace="preserve">A GHashTable where the keys are strings and the values are GValues</doc>
10121           <type name="GLib.HashTable" c:type="GHashTable*">
10122             <type name="utf8"/>
10123             <type name="GObject.Value"/>
10124           </type>
10125         </parameter>
10126         <parameter name="key" transfer-ownership="none">
10127           <doc xml:whitespace="preserve">The key to look up</doc>
10128           <type name="utf8" c:type="gchar*"/>
10129         </parameter>
10130         <parameter name="valid" direction="out" caller-allocates="0" transfer-ownership="full">
10131           <doc xml:whitespace="preserve">Either %NULL, or a location in which to store %TRUE on success or %FALSE on failure</doc>
10132           <type name="boolean" c:type="gboolean*"/>
10133         </parameter>
10134       </parameters>
10135     </function>
10136     <function name="asv_get_int64" c:identifier="tp_asv_get_int64" version="0.7.9">
10137       <doc xml:whitespace="preserve">If a value for @key in @asv is present, has an integer type used by
10138 dbus-glib (guchar, gint, guint, gint64 or guint64) and fits in the
10139 range of a gint64, return it, and if @valid is not %NULL, set *@valid to
10140 %TRUE.
10141 Otherwise, return 0, and if @valid is not %NULL, set *@valid to %FALSE.</doc>
10142       <return-value transfer-ownership="none">
10143         <doc xml:whitespace="preserve">the 64-bit signed integer value of @key, or 0</doc>
10144         <type name="int64" c:type="gint64"/>
10145       </return-value>
10146       <parameters>
10147         <parameter name="asv" transfer-ownership="none">
10148           <doc xml:whitespace="preserve">A GHashTable where the keys are strings and the values are GValues</doc>
10149           <type name="GLib.HashTable" c:type="GHashTable*">
10150             <type name="utf8"/>
10151             <type name="GObject.Value"/>
10152           </type>
10153         </parameter>
10154         <parameter name="key" transfer-ownership="none">
10155           <doc xml:whitespace="preserve">The key to look up</doc>
10156           <type name="utf8" c:type="gchar*"/>
10157         </parameter>
10158         <parameter name="valid" direction="out" caller-allocates="0" transfer-ownership="full">
10159           <doc xml:whitespace="preserve">Either %NULL, or a location in which to store %TRUE on success or %FALSE on failure</doc>
10160           <type name="boolean" c:type="gboolean*"/>
10161         </parameter>
10162       </parameters>
10163     </function>
10164     <function name="asv_get_object_path" c:identifier="tp_asv_get_object_path" version="0.7.9">
10165       <doc xml:whitespace="preserve">If a value for @key in @asv is present and is an object path, return it.
10166 Otherwise return %NULL.
10167 The returned value is not copied, and is only valid as long as the value
10168 for @key in @asv is not removed or altered. Copy it with g_strdup() if you
10169 need to keep it for longer.
10170 %NULL</doc>
10171       <return-value transfer-ownership="none">
10172         <doc xml:whitespace="preserve">the object-path value of @key, or</doc>
10173         <type name="utf8" c:type="gchar*"/>
10174       </return-value>
10175       <parameters>
10176         <parameter name="asv" transfer-ownership="none">
10177           <doc xml:whitespace="preserve">A GHashTable where the keys are strings and the values are GValues</doc>
10178           <type name="GLib.HashTable" c:type="GHashTable*">
10179             <type name="utf8"/>
10180             <type name="GObject.Value"/>
10181           </type>
10182         </parameter>
10183         <parameter name="key" transfer-ownership="none">
10184           <doc xml:whitespace="preserve">The key to look up</doc>
10185           <type name="utf8" c:type="gchar*"/>
10186         </parameter>
10187       </parameters>
10188     </function>
10189     <function name="asv_get_string" c:identifier="tp_asv_get_string" version="0.7.9">
10190       <doc xml:whitespace="preserve">If a value for @key in @asv is present and is a string, return it.
10191 Otherwise return %NULL.
10192 The returned value is not copied, and is only valid as long as the value
10193 for @key in @asv is not removed or altered. Copy it with g_strdup() if you
10194 need to keep it for longer.</doc>
10195       <return-value transfer-ownership="none">
10196         <doc xml:whitespace="preserve">the string value of @key, or %NULL</doc>
10197         <type name="utf8" c:type="gchar*"/>
10198       </return-value>
10199       <parameters>
10200         <parameter name="asv" transfer-ownership="none">
10201           <doc xml:whitespace="preserve">A GHashTable where the keys are strings and the values are GValues</doc>
10202           <type name="GLib.HashTable" c:type="GHashTable*">
10203             <type name="utf8"/>
10204             <type name="GObject.Value"/>
10205           </type>
10206         </parameter>
10207         <parameter name="key" transfer-ownership="none">
10208           <doc xml:whitespace="preserve">The key to look up</doc>
10209           <type name="utf8" c:type="gchar*"/>
10210         </parameter>
10211       </parameters>
10212     </function>
10213     <function name="asv_get_strv" c:identifier="tp_asv_get_strv" version="0.7.9">
10214       <doc xml:whitespace="preserve">If a value for @key in @asv is present and is an array of strings (strv),
10215 return it.
10216 Otherwise return %NULL.
10217 The returned value is not copied, and is only valid as long as the value
10218 for @key in @asv is not removed or altered. Copy it with g_strdupv() if you
10219 need to keep it for longer.
10220 value of @key, or %NULL</doc>
10221       <return-value transfer-ownership="none">
10222         <doc xml:whitespace="preserve">the %NULL-terminated string-array</doc>
10223         <array c:type="gchar**">
10224           <type name="utf8"/>
10225         </array>
10226       </return-value>
10227       <parameters>
10228         <parameter name="asv" transfer-ownership="none">
10229           <doc xml:whitespace="preserve">A GHashTable where the keys are strings and the values are GValues</doc>
10230           <type name="GLib.HashTable" c:type="GHashTable*">
10231             <type name="utf8"/>
10232             <type name="GObject.Value"/>
10233           </type>
10234         </parameter>
10235         <parameter name="key" transfer-ownership="none">
10236           <doc xml:whitespace="preserve">The key to look up</doc>
10237           <type name="utf8" c:type="gchar*"/>
10238         </parameter>
10239       </parameters>
10240     </function>
10241     <function name="asv_get_uint32" c:identifier="tp_asv_get_uint32" version="0.7.9">
10242       <doc xml:whitespace="preserve">If a value for @key in @asv is present, has an integer type used by
10243 dbus-glib (guchar, gint, guint, gint64 or guint64) and fits in the
10244 range of a guint32, return it, and if @valid is not %NULL, set *@valid to
10245 %TRUE.
10246 Otherwise, return 0, and if @valid is not %NULL, set *@valid to %FALSE.</doc>
10247       <return-value transfer-ownership="none">
10248         <doc xml:whitespace="preserve">the 32-bit unsigned integer value of @key, or 0</doc>
10249         <type name="uint32" c:type="guint32"/>
10250       </return-value>
10251       <parameters>
10252         <parameter name="asv" transfer-ownership="none">
10253           <doc xml:whitespace="preserve">A GHashTable where the keys are strings and the values are GValues</doc>
10254           <type name="GLib.HashTable" c:type="GHashTable*">
10255             <type name="utf8"/>
10256             <type name="GObject.Value"/>
10257           </type>
10258         </parameter>
10259         <parameter name="key" transfer-ownership="none">
10260           <doc xml:whitespace="preserve">The key to look up</doc>
10261           <type name="utf8" c:type="gchar*"/>
10262         </parameter>
10263         <parameter name="valid" direction="out" caller-allocates="0" transfer-ownership="full">
10264           <doc xml:whitespace="preserve">Either %NULL, or a location in which to store %TRUE on success or %FALSE on failure</doc>
10265           <type name="boolean" c:type="gboolean*"/>
10266         </parameter>
10267       </parameters>
10268     </function>
10269     <function name="asv_get_uint64" c:identifier="tp_asv_get_uint64" version="0.7.9">
10270       <doc xml:whitespace="preserve">If a value for @key in @asv is present, has an integer type used by
10271 dbus-glib (guchar, gint, guint, gint64 or guint64) and is non-negative,
10272 return it, and if @valid is not %NULL, set *@valid to %TRUE.
10273 Otherwise, return 0, and if @valid is not %NULL, set *@valid to %FALSE.</doc>
10274       <return-value transfer-ownership="none">
10275         <doc xml:whitespace="preserve">the 64-bit unsigned integer value of @key, or 0</doc>
10276         <type name="uint64" c:type="guint64"/>
10277       </return-value>
10278       <parameters>
10279         <parameter name="asv" transfer-ownership="none">
10280           <doc xml:whitespace="preserve">A GHashTable where the keys are strings and the values are GValues</doc>
10281           <type name="GLib.HashTable" c:type="GHashTable*">
10282             <type name="utf8"/>
10283             <type name="GObject.Value"/>
10284           </type>
10285         </parameter>
10286         <parameter name="key" transfer-ownership="none">
10287           <doc xml:whitespace="preserve">The key to look up</doc>
10288           <type name="utf8" c:type="gchar*"/>
10289         </parameter>
10290         <parameter name="valid" direction="out" caller-allocates="0" transfer-ownership="full">
10291           <doc xml:whitespace="preserve">Either %NULL, or a location in which to store %TRUE on success or %FALSE on failure</doc>
10292           <type name="boolean" c:type="gboolean*"/>
10293         </parameter>
10294       </parameters>
10295     </function>
10296     <function name="asv_lookup" c:identifier="tp_asv_lookup" version="0.7.9" introspectable="0">
10297       <doc xml:whitespace="preserve">If a value for @key in @asv is present, return it. Otherwise return %NULL.
10298 The returned value is not copied, and is only valid as long as the value
10299 for @key in @asv is not removed or altered. Copy it with (for instance)
10300 g_value_copy() if you need to keep it for longer.</doc>
10301       <return-value transfer-ownership="none">
10302         <doc xml:whitespace="preserve">the value of @key, or %NULL</doc>
10303         <type name="GObject.Value" c:type="GValue*"/>
10304       </return-value>
10305       <parameters>
10306         <parameter name="asv" transfer-ownership="none">
10307           <doc xml:whitespace="preserve">A GHashTable where the keys are strings and the values are GValues</doc>
10308           <type name="GLib.HashTable" c:type="GHashTable*"/>
10309         </parameter>
10310         <parameter name="key" transfer-ownership="none">
10311           <doc xml:whitespace="preserve">The key to look up</doc>
10312           <type name="utf8" c:type="gchar*"/>
10313         </parameter>
10314       </parameters>
10315     </function>
10316     <function name="asv_new" c:identifier="tp_asv_new" version="0.7.29" introspectable="0">
10317       <doc xml:whitespace="preserve">Creates a new #GHashTable for use with a{sv} maps, containing the values
10318 passed in as parameters.
10319 The #GHashTable is synonymous with:
10320 &lt;informalexample&gt;&lt;programlisting&gt;
10321 GHashTable *asv = g_hash_table_new_full (g_str_hash, g_str_equal,
10322 NULL, (GDestroyNotify) tp_g_value_slice_free);
10323 &lt;/programlisting&gt;&lt;/informalexample&gt;
10324 Followed by manual insertion of each of the parameters.
10325 Parameters are stored in slice-allocated GValues and should be set using
10326 tp_asv_set_*() and retrieved using tp_asv_get_*().
10327 tp_g_value_slice_new() and tp_g_value_slice_dup() may also be used to insert
10328 into the map if required.
10329 &lt;informalexample&gt;&lt;programlisting&gt;
10330 g_hash_table_insert (parameters, "account",
10331 tp_g_value_slice_new_string ("bob@mcbadgers.com"));
10332 &lt;/programlisting&gt;&lt;/informalexample&gt;
10333 &lt;example&gt;
10334 &lt;title&gt;Using tp_asv_new()&lt;/title&gt;
10335 &lt;programlisting&gt;
10336 GHashTable *parameters = tp_asv_new (
10337 "answer", G_TYPE_INT, 42,
10338 "question", G_TYPE_STRING, "We just don't know",
10339 NULL);&lt;/programlisting&gt;
10340 &lt;/example&gt;
10341 Allocated values will be automatically free'd when overwritten, removed or
10342 the hash table destroyed with g_hash_table_destroy().
10343 g_hash_table_destroy().</doc>
10344       <return-value transfer-ownership="full">
10345         <doc xml:whitespace="preserve">a newly created #GHashTable for storing a{sv} maps, free with</doc>
10346         <type name="GLib.HashTable" c:type="GHashTable*"/>
10347       </return-value>
10348       <parameters>
10349         <parameter name="first_key" transfer-ownership="none">
10350           <doc xml:whitespace="preserve">the name of the first key (or NULL)</doc>
10351           <type name="utf8" c:type="gchar*"/>
10352         </parameter>
10353         <parameter transfer-ownership="none">
10354           <varargs>
10355           </varargs>
10356         </parameter>
10357       </parameters>
10358     </function>
10359     <function name="asv_set_boolean" c:identifier="tp_asv_set_boolean" version="0.7.29" introspectable="0">
10360       <doc xml:whitespace="preserve">Stores the value in the map.
10361 The value is stored as a slice-allocated GValue.</doc>
10362       <return-value transfer-ownership="none">
10363         <type name="none" c:type="void"/>
10364       </return-value>
10365       <parameters>
10366         <parameter name="asv" transfer-ownership="none">
10367           <doc xml:whitespace="preserve">a #GHashTable created with tp_asv_new()</doc>
10368           <type name="GLib.HashTable" c:type="GHashTable*"/>
10369         </parameter>
10370         <parameter name="key" transfer-ownership="none">
10371           <doc xml:whitespace="preserve">string key</doc>
10372           <type name="utf8" c:type="gchar*"/>
10373         </parameter>
10374         <parameter name="value" transfer-ownership="none">
10375           <doc xml:whitespace="preserve">value</doc>
10376           <type name="boolean" c:type="gboolean"/>
10377         </parameter>
10378       </parameters>
10379     </function>
10380     <function name="asv_set_boxed" c:identifier="tp_asv_set_boxed" version="0.7.29" introspectable="0">
10381       <doc xml:whitespace="preserve">Stores the value in the map.
10382 The value is stored as a slice-allocated GValue.</doc>
10383       <return-value transfer-ownership="none">
10384         <type name="none" c:type="void"/>
10385       </return-value>
10386       <parameters>
10387         <parameter name="asv" transfer-ownership="none">
10388           <doc xml:whitespace="preserve">a #GHashTable created with tp_asv_new()</doc>
10389           <type name="GLib.HashTable" c:type="GHashTable*"/>
10390         </parameter>
10391         <parameter name="key" transfer-ownership="none">
10392           <doc xml:whitespace="preserve">string key</doc>
10393           <type name="utf8" c:type="gchar*"/>
10394         </parameter>
10395         <parameter name="type" transfer-ownership="none">
10396           <doc xml:whitespace="preserve">the type of the key's value, which must be derived from %G_TYPE_BOXED</doc>
10397           <type name="GType" c:type="GType"/>
10398         </parameter>
10399         <parameter name="value" transfer-ownership="none">
10400           <doc xml:whitespace="preserve">value</doc>
10401           <type name="any" c:type="gconstpointer"/>
10402         </parameter>
10403       </parameters>
10404     </function>
10405     <function name="asv_set_bytes" c:identifier="tp_asv_set_bytes" version="0.7.29" introspectable="0">
10406       <doc xml:whitespace="preserve">Stores the value in the map.
10407 The value is stored as a slice-allocated GValue.</doc>
10408       <return-value transfer-ownership="none">
10409         <type name="none" c:type="void"/>
10410       </return-value>
10411       <parameters>
10412         <parameter name="asv" transfer-ownership="none">
10413           <doc xml:whitespace="preserve">a #GHashTable created with tp_asv_new()</doc>
10414           <type name="GLib.HashTable" c:type="GHashTable*"/>
10415         </parameter>
10416         <parameter name="key" transfer-ownership="none">
10417           <doc xml:whitespace="preserve">string key</doc>
10418           <type name="utf8" c:type="gchar*"/>
10419         </parameter>
10420         <parameter name="length" transfer-ownership="none">
10421           <doc xml:whitespace="preserve">the number of bytes to copy</doc>
10422           <type name="uint" c:type="guint"/>
10423         </parameter>
10424         <parameter name="bytes" transfer-ownership="none">
10425           <doc xml:whitespace="preserve">location of an array of bytes to be copied (this may be %NULL if and only if length is 0)</doc>
10426           <type name="any" c:type="gconstpointer"/>
10427         </parameter>
10428       </parameters>
10429     </function>
10430     <function name="asv_set_double" c:identifier="tp_asv_set_double" version="0.7.29" introspectable="0">
10431       <doc xml:whitespace="preserve">Stores the value in the map.
10432 The value is stored as a slice-allocated GValue.</doc>
10433       <return-value transfer-ownership="none">
10434         <type name="none" c:type="void"/>
10435       </return-value>
10436       <parameters>
10437         <parameter name="asv" transfer-ownership="none">
10438           <doc xml:whitespace="preserve">a #GHashTable created with tp_asv_new()</doc>
10439           <type name="GLib.HashTable" c:type="GHashTable*"/>
10440         </parameter>
10441         <parameter name="key" transfer-ownership="none">
10442           <doc xml:whitespace="preserve">string key</doc>
10443           <type name="utf8" c:type="gchar*"/>
10444         </parameter>
10445         <parameter name="value" transfer-ownership="none">
10446           <doc xml:whitespace="preserve">value</doc>
10447           <type name="double" c:type="gdouble"/>
10448         </parameter>
10449       </parameters>
10450     </function>
10451     <function name="asv_set_int32" c:identifier="tp_asv_set_int32" version="0.7.29" introspectable="0">
10452       <doc xml:whitespace="preserve">Stores the value in the map.
10453 The value is stored as a slice-allocated GValue.</doc>
10454       <return-value transfer-ownership="none">
10455         <type name="none" c:type="void"/>
10456       </return-value>
10457       <parameters>
10458         <parameter name="asv" transfer-ownership="none">
10459           <doc xml:whitespace="preserve">a #GHashTable created with tp_asv_new()</doc>
10460           <type name="GLib.HashTable" c:type="GHashTable*"/>
10461         </parameter>
10462         <parameter name="key" transfer-ownership="none">
10463           <doc xml:whitespace="preserve">string key</doc>
10464           <type name="utf8" c:type="gchar*"/>
10465         </parameter>
10466         <parameter name="value" transfer-ownership="none">
10467           <doc xml:whitespace="preserve">value</doc>
10468           <type name="int32" c:type="gint32"/>
10469         </parameter>
10470       </parameters>
10471     </function>
10472     <function name="asv_set_int64" c:identifier="tp_asv_set_int64" version="0.7.29" introspectable="0">
10473       <doc xml:whitespace="preserve">Stores the value in the map.
10474 The value is stored as a slice-allocated GValue.</doc>
10475       <return-value transfer-ownership="none">
10476         <type name="none" c:type="void"/>
10477       </return-value>
10478       <parameters>
10479         <parameter name="asv" transfer-ownership="none">
10480           <doc xml:whitespace="preserve">a #GHashTable created with tp_asv_new()</doc>
10481           <type name="GLib.HashTable" c:type="GHashTable*"/>
10482         </parameter>
10483         <parameter name="key" transfer-ownership="none">
10484           <doc xml:whitespace="preserve">string key</doc>
10485           <type name="utf8" c:type="gchar*"/>
10486         </parameter>
10487         <parameter name="value" transfer-ownership="none">
10488           <doc xml:whitespace="preserve">value</doc>
10489           <type name="int64" c:type="gint64"/>
10490         </parameter>
10491       </parameters>
10492     </function>
10493     <function name="asv_set_object_path" c:identifier="tp_asv_set_object_path" version="0.7.29" introspectable="0">
10494       <doc xml:whitespace="preserve">Stores the value in the map.
10495 The value is stored as a slice-allocated GValue.
10496 tp_g_value_slice_new_object_path()</doc>
10497       <return-value transfer-ownership="none">
10498         <type name="none" c:type="void"/>
10499       </return-value>
10500       <parameters>
10501         <parameter name="asv" transfer-ownership="none">
10502           <doc xml:whitespace="preserve">a #GHashTable created with tp_asv_new()</doc>
10503           <type name="GLib.HashTable" c:type="GHashTable*"/>
10504         </parameter>
10505         <parameter name="key" transfer-ownership="none">
10506           <doc xml:whitespace="preserve">string key</doc>
10507           <type name="utf8" c:type="gchar*"/>
10508         </parameter>
10509         <parameter name="value" transfer-ownership="none">
10510           <doc xml:whitespace="preserve">value</doc>
10511           <type name="utf8" c:type="gchar*"/>
10512         </parameter>
10513       </parameters>
10514     </function>
10515     <function name="asv_set_static_boxed" c:identifier="tp_asv_set_static_boxed" version="0.7.29" introspectable="0">
10516       <doc xml:whitespace="preserve">Stores the value in the map.
10517 The value is stored as a slice-allocated GValue.
10518 tp_g_value_slice_new_static_boxed()</doc>
10519       <return-value transfer-ownership="none">
10520         <type name="none" c:type="void"/>
10521       </return-value>
10522       <parameters>
10523         <parameter name="asv" transfer-ownership="none">
10524           <doc xml:whitespace="preserve">a #GHashTable created with tp_asv_new()</doc>
10525           <type name="GLib.HashTable" c:type="GHashTable*"/>
10526         </parameter>
10527         <parameter name="key" transfer-ownership="none">
10528           <doc xml:whitespace="preserve">string key</doc>
10529           <type name="utf8" c:type="gchar*"/>
10530         </parameter>
10531         <parameter name="type" transfer-ownership="none">
10532           <doc xml:whitespace="preserve">the type of the key's value, which must be derived from %G_TYPE_BOXED</doc>
10533           <type name="GType" c:type="GType"/>
10534         </parameter>
10535         <parameter name="value" transfer-ownership="none">
10536           <doc xml:whitespace="preserve">value</doc>
10537           <type name="any" c:type="gconstpointer"/>
10538         </parameter>
10539       </parameters>
10540     </function>
10541     <function name="asv_set_static_object_path" c:identifier="tp_asv_set_static_object_path" version="0.7.29" introspectable="0">
10542       <doc xml:whitespace="preserve">Stores the value in the map.
10543 The value is stored as a slice-allocated GValue.
10544 tp_g_value_slice_new_static_object_path()</doc>
10545       <return-value transfer-ownership="none">
10546         <type name="none" c:type="void"/>
10547       </return-value>
10548       <parameters>
10549         <parameter name="asv" transfer-ownership="none">
10550           <doc xml:whitespace="preserve">a #GHashTable created with tp_asv_new()</doc>
10551           <type name="GLib.HashTable" c:type="GHashTable*"/>
10552         </parameter>
10553         <parameter name="key" transfer-ownership="none">
10554           <doc xml:whitespace="preserve">string key</doc>
10555           <type name="utf8" c:type="gchar*"/>
10556         </parameter>
10557         <parameter name="value" transfer-ownership="none">
10558           <doc xml:whitespace="preserve">value</doc>
10559           <type name="utf8" c:type="gchar*"/>
10560         </parameter>
10561       </parameters>
10562     </function>
10563     <function name="asv_set_static_string" c:identifier="tp_asv_set_static_string" version="0.7.29" introspectable="0">
10564       <doc xml:whitespace="preserve">Stores the value in the map.
10565 The value is stored as a slice-allocated GValue.
10566 tp_g_value_slice_new_static_string()</doc>
10567       <return-value transfer-ownership="none">
10568         <type name="none" c:type="void"/>
10569       </return-value>
10570       <parameters>
10571         <parameter name="asv" transfer-ownership="none">
10572           <doc xml:whitespace="preserve">a #GHashTable created with tp_asv_new()</doc>
10573           <type name="GLib.HashTable" c:type="GHashTable*"/>
10574         </parameter>
10575         <parameter name="key" transfer-ownership="none">
10576           <doc xml:whitespace="preserve">string key</doc>
10577           <type name="utf8" c:type="gchar*"/>
10578         </parameter>
10579         <parameter name="value" transfer-ownership="none">
10580           <doc xml:whitespace="preserve">value</doc>
10581           <type name="utf8" c:type="gchar*"/>
10582         </parameter>
10583       </parameters>
10584     </function>
10585     <function name="asv_set_string" c:identifier="tp_asv_set_string" version="0.7.29" introspectable="0">
10586       <doc xml:whitespace="preserve">Stores the value in the map.
10587 The value is stored as a slice-allocated GValue.</doc>
10588       <return-value transfer-ownership="none">
10589         <type name="none" c:type="void"/>
10590       </return-value>
10591       <parameters>
10592         <parameter name="asv" transfer-ownership="none">
10593           <doc xml:whitespace="preserve">a #GHashTable created with tp_asv_new()</doc>
10594           <type name="GLib.HashTable" c:type="GHashTable*"/>
10595         </parameter>
10596         <parameter name="key" transfer-ownership="none">
10597           <doc xml:whitespace="preserve">string key</doc>
10598           <type name="utf8" c:type="gchar*"/>
10599         </parameter>
10600         <parameter name="value" transfer-ownership="none">
10601           <doc xml:whitespace="preserve">value</doc>
10602           <type name="utf8" c:type="gchar*"/>
10603         </parameter>
10604       </parameters>
10605     </function>
10606     <function name="asv_set_strv" c:identifier="tp_asv_set_strv" version="0.7.29" introspectable="0">
10607       <doc xml:whitespace="preserve">Stores the value in the map.
10608 The value is stored as a slice-allocated GValue.</doc>
10609       <return-value transfer-ownership="none">
10610         <type name="none" c:type="void"/>
10611       </return-value>
10612       <parameters>
10613         <parameter name="asv" transfer-ownership="none">
10614           <doc xml:whitespace="preserve">a #GHashTable created with tp_asv_new()</doc>
10615           <type name="GLib.HashTable" c:type="GHashTable*"/>
10616         </parameter>
10617         <parameter name="key" transfer-ownership="none">
10618           <doc xml:whitespace="preserve">string key</doc>
10619           <type name="utf8" c:type="gchar*"/>
10620         </parameter>
10621         <parameter name="value" transfer-ownership="none">
10622           <doc xml:whitespace="preserve">a %NULL-terminated string array</doc>
10623           <array c:type="gchar**">
10624             <type name="utf8"/>
10625           </array>
10626         </parameter>
10627       </parameters>
10628     </function>
10629     <function name="asv_set_uint32" c:identifier="tp_asv_set_uint32" version="0.7.29" introspectable="0">
10630       <doc xml:whitespace="preserve">Stores the value in the map.
10631 The value is stored as a slice-allocated GValue.</doc>
10632       <return-value transfer-ownership="none">
10633         <type name="none" c:type="void"/>
10634       </return-value>
10635       <parameters>
10636         <parameter name="asv" transfer-ownership="none">
10637           <doc xml:whitespace="preserve">a #GHashTable created with tp_asv_new()</doc>
10638           <type name="GLib.HashTable" c:type="GHashTable*"/>
10639         </parameter>
10640         <parameter name="key" transfer-ownership="none">
10641           <doc xml:whitespace="preserve">string key</doc>
10642           <type name="utf8" c:type="gchar*"/>
10643         </parameter>
10644         <parameter name="value" transfer-ownership="none">
10645           <doc xml:whitespace="preserve">value</doc>
10646           <type name="uint32" c:type="guint32"/>
10647         </parameter>
10648       </parameters>
10649     </function>
10650     <function name="asv_set_uint64" c:identifier="tp_asv_set_uint64" version="0.7.29" introspectable="0">
10651       <doc xml:whitespace="preserve">Stores the value in the map.
10652 The value is stored as a slice-allocated GValue.</doc>
10653       <return-value transfer-ownership="none">
10654         <type name="none" c:type="void"/>
10655       </return-value>
10656       <parameters>
10657         <parameter name="asv" transfer-ownership="none">
10658           <doc xml:whitespace="preserve">a #GHashTable created with tp_asv_new()</doc>
10659           <type name="GLib.HashTable" c:type="GHashTable*"/>
10660         </parameter>
10661         <parameter name="key" transfer-ownership="none">
10662           <doc xml:whitespace="preserve">string key</doc>
10663           <type name="utf8" c:type="gchar*"/>
10664         </parameter>
10665         <parameter name="value" transfer-ownership="none">
10666           <doc xml:whitespace="preserve">value</doc>
10667           <type name="uint64" c:type="guint64"/>
10668         </parameter>
10669       </parameters>
10670     </function>
10671     <function name="asv_take_boxed" c:identifier="tp_asv_take_boxed" version="0.7.29" introspectable="0">
10672       <doc xml:whitespace="preserve">Stores the value in the map.
10673 The value is stored as a slice-allocated GValue.</doc>
10674       <return-value transfer-ownership="none">
10675         <type name="none" c:type="void"/>
10676       </return-value>
10677       <parameters>
10678         <parameter name="asv" transfer-ownership="none">
10679           <doc xml:whitespace="preserve">a #GHashTable created with tp_asv_new()</doc>
10680           <type name="GLib.HashTable" c:type="GHashTable*"/>
10681         </parameter>
10682         <parameter name="key" transfer-ownership="none">
10683           <doc xml:whitespace="preserve">string key</doc>
10684           <type name="utf8" c:type="gchar*"/>
10685         </parameter>
10686         <parameter name="type" transfer-ownership="none">
10687           <doc xml:whitespace="preserve">the type of the key's value, which must be derived from %G_TYPE_BOXED</doc>
10688           <type name="GType" c:type="GType"/>
10689         </parameter>
10690         <parameter name="value" transfer-ownership="none">
10691           <doc xml:whitespace="preserve">value</doc>
10692           <type name="any" c:type="gpointer"/>
10693         </parameter>
10694       </parameters>
10695     </function>
10696     <function name="asv_take_bytes" c:identifier="tp_asv_take_bytes" version="0.7.29" introspectable="0">
10697       <doc xml:whitespace="preserve">Stores the value in the map.
10698 The value is stored as a slice-allocated GValue.</doc>
10699       <return-value transfer-ownership="none">
10700         <type name="none" c:type="void"/>
10701       </return-value>
10702       <parameters>
10703         <parameter name="asv" transfer-ownership="none">
10704           <doc xml:whitespace="preserve">a #GHashTable created with tp_asv_new()</doc>
10705           <type name="GLib.HashTable" c:type="GHashTable*"/>
10706         </parameter>
10707         <parameter name="key" transfer-ownership="none">
10708           <doc xml:whitespace="preserve">string key</doc>
10709           <type name="utf8" c:type="gchar*"/>
10710         </parameter>
10711         <parameter name="value" transfer-ownership="none">
10712           <doc xml:whitespace="preserve">a non-NULL #GArray of %guchar, ownership of which will be taken by the #GValue</doc>
10713           <array name="GLib.Array" c:type="GArray*">
10714             <type name="any" c:type="gpointer"/>
10715           </array>
10716         </parameter>
10717       </parameters>
10718     </function>
10719     <function name="asv_take_object_path" c:identifier="tp_asv_take_object_path" version="0.7.29" introspectable="0">
10720       <doc xml:whitespace="preserve">Stores the value in the map.
10721 The value is stored as a slice-allocated GValue.
10722 tp_g_value_slice_new_take_object_path()</doc>
10723       <return-value transfer-ownership="none">
10724         <type name="none" c:type="void"/>
10725       </return-value>
10726       <parameters>
10727         <parameter name="asv" transfer-ownership="none">
10728           <doc xml:whitespace="preserve">a #GHashTable created with tp_asv_new()</doc>
10729           <type name="GLib.HashTable" c:type="GHashTable*"/>
10730         </parameter>
10731         <parameter name="key" transfer-ownership="none">
10732           <doc xml:whitespace="preserve">string key</doc>
10733           <type name="utf8" c:type="gchar*"/>
10734         </parameter>
10735         <parameter name="value" transfer-ownership="full">
10736           <doc xml:whitespace="preserve">value</doc>
10737           <type name="utf8" c:type="gchar*"/>
10738         </parameter>
10739       </parameters>
10740     </function>
10741     <function name="asv_take_string" c:identifier="tp_asv_take_string" version="0.7.29" introspectable="0">
10742       <doc xml:whitespace="preserve">Stores the value in the map.
10743 The value is stored as a slice-allocated GValue.
10744 tp_g_value_slice_new_take_string()</doc>
10745       <return-value transfer-ownership="none">
10746         <type name="none" c:type="void"/>
10747       </return-value>
10748       <parameters>
10749         <parameter name="asv" transfer-ownership="none">
10750           <doc xml:whitespace="preserve">a #GHashTable created with tp_asv_new()</doc>
10751           <type name="GLib.HashTable" c:type="GHashTable*"/>
10752         </parameter>
10753         <parameter name="key" transfer-ownership="none">
10754           <doc xml:whitespace="preserve">string key</doc>
10755           <type name="utf8" c:type="gchar*"/>
10756         </parameter>
10757         <parameter name="value" transfer-ownership="full">
10758           <doc xml:whitespace="preserve">value</doc>
10759           <type name="utf8" c:type="gchar*"/>
10760         </parameter>
10761       </parameters>
10762     </function>
10763     <function name="contacts_mixin_add_contact_attributes_iface" c:identifier="tp_contacts_mixin_add_contact_attributes_iface" version="0.7.14" introspectable="0">
10764       <doc xml:whitespace="preserve">Declare that the given interface has contact attributes which can be added
10765 to the attributes hash using the filler function. All the handles in the
10766 handle array passed to the filler function are guaranteed to be valid and
10767 referenced.</doc>
10768       <return-value transfer-ownership="none">
10769         <type name="none" c:type="void"/>
10770       </return-value>
10771       <parameters>
10772         <parameter name="obj" transfer-ownership="none">
10773           <doc xml:whitespace="preserve">An instance of the implementation that uses this mixin</doc>
10774           <type name="GObject.Object" c:type="GObject*"/>
10775         </parameter>
10776         <parameter name="interface" transfer-ownership="none">
10777           <doc xml:whitespace="preserve">Name of the interface that has ContactAttributes</doc>
10778           <type name="utf8" c:type="gchar*"/>
10779         </parameter>
10780         <parameter name="fill_contact_attributes" transfer-ownership="none" scope="call">
10781           <doc xml:whitespace="preserve">Contact attribute filler function</doc>
10782           <type name="ContactsMixinFillContactAttributesFunc" c:type="TpContactsMixinFillContactAttributesFunc"/>
10783         </parameter>
10784       </parameters>
10785     </function>
10786     <function name="contacts_mixin_class_get_offset_quark" c:identifier="tp_contacts_mixin_class_get_offset_quark" version="0.7.14" introspectable="0">
10787       <doc xml:whitespace="preserve">&lt;!--no documentation beyond Returns: needed--&gt;</doc>
10788       <return-value transfer-ownership="full">
10789         <doc xml:whitespace="preserve">the quark used for storing mixin offset on a GObjectClass</doc>
10790         <type name="GLib.Quark" c:type="GQuark"/>
10791       </return-value>
10792     </function>
10793     <function name="contacts_mixin_class_init" c:identifier="tp_contacts_mixin_class_init" version="0.7.14" introspectable="0">
10794       <doc xml:whitespace="preserve">Initialize the contacts mixin. Should be called from the implementation's
10795 class_init function like so:
10796 &lt;informalexample&gt;&lt;programlisting&gt;
10797 tp_contacts_mixin_class_init ((GObjectClass *) klass,
10798 G_STRUCT_OFFSET (SomeObjectClass, contacts_mixin));
10799 &lt;/programlisting&gt;&lt;/informalexample&gt;</doc>
10800       <return-value transfer-ownership="none">
10801         <type name="none" c:type="void"/>
10802       </return-value>
10803       <parameters>
10804         <parameter name="obj_cls" transfer-ownership="none">
10805           <doc xml:whitespace="preserve">The class of the implementation that uses this mixin</doc>
10806           <type name="GObject.ObjectClass" c:type="GObjectClass*"/>
10807         </parameter>
10808         <parameter name="offset" transfer-ownership="none">
10809           <doc xml:whitespace="preserve">The byte offset of the TpContactsMixinClass within the class structure</doc>
10810           <type name="long" c:type="glong"/>
10811         </parameter>
10812       </parameters>
10813     </function>
10814     <function name="contacts_mixin_finalize" c:identifier="tp_contacts_mixin_finalize" version="0.7.14" introspectable="0">
10815       <doc xml:whitespace="preserve">Free resources held by the contacts mixin.</doc>
10816       <return-value transfer-ownership="none">
10817         <type name="none" c:type="void"/>
10818       </return-value>
10819       <parameters>
10820         <parameter name="obj" transfer-ownership="none">
10821           <doc xml:whitespace="preserve">An object with this mixin.</doc>
10822           <type name="GObject.Object" c:type="GObject*"/>
10823         </parameter>
10824       </parameters>
10825     </function>
10826     <function name="contacts_mixin_get_offset_quark" c:identifier="tp_contacts_mixin_get_offset_quark" version="0.7.14" introspectable="0">
10827       <doc xml:whitespace="preserve">&lt;!--no documentation beyond Returns: needed--&gt;</doc>
10828       <return-value transfer-ownership="full">
10829         <doc xml:whitespace="preserve">the quark used for storing mixin offset on a GObject</doc>
10830         <type name="GLib.Quark" c:type="GQuark"/>
10831       </return-value>
10832     </function>
10833     <function name="contacts_mixin_iface_init" c:identifier="tp_contacts_mixin_iface_init" version="0.7.14" introspectable="0">
10834       <doc xml:whitespace="preserve">Fill in the vtable entries needed to implement the contacts interface
10835 using this mixin. This function should usually be called via
10836 G_IMPLEMENT_INTERFACE.</doc>
10837       <return-value transfer-ownership="none">
10838         <type name="none" c:type="void"/>
10839       </return-value>
10840       <parameters>
10841         <parameter name="g_iface" transfer-ownership="none">
10842           <doc xml:whitespace="preserve">A pointer to the #TpSvcConnectionInterfaceContacts in an object class</doc>
10843           <type name="any" c:type="gpointer"/>
10844         </parameter>
10845         <parameter name="iface_data" transfer-ownership="none">
10846           <doc xml:whitespace="preserve">Ignored</doc>
10847           <type name="any" c:type="gpointer"/>
10848         </parameter>
10849       </parameters>
10850     </function>
10851     <function name="contacts_mixin_init" c:identifier="tp_contacts_mixin_init" version="0.7.14" introspectable="0">
10852       <doc xml:whitespace="preserve">Initialize the contacts mixin. Should be called from the implementation's
10853 instance init function like so:
10854 &lt;informalexample&gt;&lt;programlisting&gt;
10855 tp_contacts_mixin_init ((GObject *) self,
10856 G_STRUCT_OFFSET (SomeObject, contacts_mixin));
10857 &lt;/programlisting&gt;&lt;/informalexample&gt;</doc>
10858       <return-value transfer-ownership="none">
10859         <type name="none" c:type="void"/>
10860       </return-value>
10861       <parameters>
10862         <parameter name="obj" transfer-ownership="none">
10863           <doc xml:whitespace="preserve">An instance of the implementation that uses this mixin</doc>
10864           <type name="GObject.Object" c:type="GObject*"/>
10865         </parameter>
10866         <parameter name="offset" transfer-ownership="none">
10867           <doc xml:whitespace="preserve">The byte offset of the TpContactsMixin within the object structure</doc>
10868           <type name="gsize" c:type="gsize"/>
10869         </parameter>
10870       </parameters>
10871     </function>
10872     <function name="contacts_mixin_set_contact_attribute" c:identifier="tp_contacts_mixin_set_contact_attribute" version="0.7.14" introspectable="0">
10873       <doc xml:whitespace="preserve">Utility function to set attribute for handle to value in the attributes hash
10874 as passed to a TpContactsMixinFillContactAttributesFunc.</doc>
10875       <return-value transfer-ownership="none">
10876         <type name="none" c:type="void"/>
10877       </return-value>
10878       <parameters>
10879         <parameter name="contact_attributes" transfer-ownership="none">
10880           <doc xml:whitespace="preserve">contacts attribute hash as passed to TpContactsMixinFillContactAttributesFunc</doc>
10881           <type name="GLib.HashTable" c:type="GHashTable*"/>
10882         </parameter>
10883         <parameter name="handle" transfer-ownership="none">
10884           <doc xml:whitespace="preserve">Handle to set the attribute on</doc>
10885           <type name="Handle" c:type="TpHandle"/>
10886         </parameter>
10887         <parameter name="attribute" transfer-ownership="none">
10888           <doc xml:whitespace="preserve">attribute name</doc>
10889           <type name="utf8" c:type="gchar*"/>
10890         </parameter>
10891         <parameter name="value" transfer-ownership="none">
10892           <doc xml:whitespace="preserve">slice allocated GValue containing the value of the attribute, for instance with tp_g_value_slice_new. Ownership of the GValue is taken over by the mixin</doc>
10893           <type name="GObject.Value" c:type="GValue*"/>
10894         </parameter>
10895       </parameters>
10896     </function>
10897     <function name="dbus_check_valid_bus_name" c:identifier="tp_dbus_check_valid_bus_name" version="0.7.1" throws="1">
10898       <doc xml:whitespace="preserve">Check that the given string is a valid D-Bus bus name of an appropriate
10899 type.</doc>
10900       <return-value transfer-ownership="none">
10901         <doc xml:whitespace="preserve">%TRUE if @name is valid</doc>
10902         <type name="boolean" c:type="gboolean"/>
10903       </return-value>
10904       <parameters>
10905         <parameter name="name" transfer-ownership="none">
10906           <doc xml:whitespace="preserve">a possible bus name</doc>
10907           <type name="utf8" c:type="gchar*"/>
10908         </parameter>
10909         <parameter name="allow_types" transfer-ownership="none">
10910           <doc xml:whitespace="preserve">some combination of %TP_DBUS_NAME_TYPE_UNIQUE, %TP_DBUS_NAME_TYPE_WELL_KNOWN or %TP_DBUS_NAME_TYPE_BUS_DAEMON (often this will be %TP_DBUS_NAME_TYPE_NOT_BUS_DAEMON or %TP_DBUS_NAME_TYPE_ANY)</doc>
10911           <type name="DBusNameType" c:type="TpDBusNameType"/>
10912         </parameter>
10913       </parameters>
10914     </function>
10915     <function name="dbus_check_valid_interface_name" c:identifier="tp_dbus_check_valid_interface_name" version="0.7.1" throws="1">
10916       <doc xml:whitespace="preserve">Check that the given string is a valid D-Bus interface name. This is
10917 also appropriate to use to check for valid error names.</doc>
10918       <return-value transfer-ownership="none">
10919         <doc xml:whitespace="preserve">%TRUE if @name is valid</doc>
10920         <type name="boolean" c:type="gboolean"/>
10921       </return-value>
10922       <parameters>
10923         <parameter name="name" transfer-ownership="none">
10924           <doc xml:whitespace="preserve">a possible interface name</doc>
10925           <type name="utf8" c:type="gchar*"/>
10926         </parameter>
10927       </parameters>
10928     </function>
10929     <function name="dbus_check_valid_member_name" c:identifier="tp_dbus_check_valid_member_name" version="0.7.1" throws="1">
10930       <doc xml:whitespace="preserve">Check that the given string is a valid D-Bus member (method or signal) name.</doc>
10931       <return-value transfer-ownership="none">
10932         <doc xml:whitespace="preserve">%TRUE if @name is valid</doc>
10933         <type name="boolean" c:type="gboolean"/>
10934       </return-value>
10935       <parameters>
10936         <parameter name="name" transfer-ownership="none">
10937           <doc xml:whitespace="preserve">a possible member name</doc>
10938           <type name="utf8" c:type="gchar*"/>
10939         </parameter>
10940       </parameters>
10941     </function>
10942     <function name="dbus_check_valid_object_path" c:identifier="tp_dbus_check_valid_object_path" version="0.7.1" throws="1">
10943       <doc xml:whitespace="preserve">Check that the given string is a valid D-Bus object path.</doc>
10944       <return-value transfer-ownership="none">
10945         <doc xml:whitespace="preserve">%TRUE if @path is valid</doc>
10946         <type name="boolean" c:type="gboolean"/>
10947       </return-value>
10948       <parameters>
10949         <parameter name="path" transfer-ownership="none">
10950           <doc xml:whitespace="preserve">a possible object path</doc>
10951           <type name="utf8" c:type="gchar*"/>
10952         </parameter>
10953       </parameters>
10954     </function>
10955     <function name="dbus_errors_quark" c:identifier="tp_dbus_errors_quark">
10956       <return-value transfer-ownership="full">
10957         <type name="GLib.Quark" c:type="GQuark"/>
10958       </return-value>
10959     </function>
10960     <function name="dbus_g_method_return_not_implemented" c:identifier="tp_dbus_g_method_return_not_implemented" introspectable="0">
10961       <doc xml:whitespace="preserve">Return the Telepathy error NotImplemented from the method invocation
10962 given by @context.</doc>
10963       <return-value transfer-ownership="none">
10964         <type name="none" c:type="void"/>
10965       </return-value>
10966       <parameters>
10967         <parameter name="context" transfer-ownership="none">
10968           <doc xml:whitespace="preserve">The D-Bus method invocation context</doc>
10969           <type name="DBusGMethodInvocation" c:type="DBusGMethodInvocation*"/>
10970         </parameter>
10971       </parameters>
10972     </function>
10973     <function name="dbus_properties_mixin_class_init" c:identifier="tp_dbus_properties_mixin_class_init" version="0.7.3">
10974       <doc xml:whitespace="preserve">Initialize the class @cls to use the D-Bus Properties mixin.
10975 The given struct member, of size sizeof(TpDBusPropertiesMixinClass),
10976 will be used to store property implementation information.
10977 Each property and each interface must have been declared as a member of
10978 a GInterface implemented by @cls, using
10979 tp_svc_interface_set_dbus_properties_info().
10980 Before calling this function, the array @interfaces must have been
10981 placed in the #TpDBusPropertiesMixinClass structure; if it would be empty,
10982 it may instead be %NULL.
10983 This function should be called from the class_init callback in such a way
10984 that it will only be called once, even if the class is subclassed.
10985 which means that only interfaces whose properties are set up using
10986 tp_dbus_properties_mixin_implement_interface() will be used.
10987 #TpDBusPropertiesMixinClass can be omitted from @cls.  It is treated as if
10988 it were present, but with all fields (including
10989 TpDBusPropertiesMixinClass::interfaces) being %NULL, so only interfaces
10990 whose properties are set using
10991 tp_dbus_properties_mixin_implement_interface() will be used.</doc>
10992       <return-value transfer-ownership="none">
10993         <type name="none" c:type="void"/>
10994       </return-value>
10995       <parameters>
10996         <parameter name="cls" transfer-ownership="none">
10997           <doc xml:whitespace="preserve">a subclass of #GObjectClass</doc>
10998           <type name="GObject.ObjectClass" c:type="GObjectClass*"/>
10999         </parameter>
11000         <parameter name="offset" transfer-ownership="none">
11001           <doc xml:whitespace="preserve">the offset within @cls of a TpDBusPropertiesMixinClass structure</doc>
11002           <type name="gsize" c:type="gsize"/>
11003         </parameter>
11004       </parameters>
11005     </function>
11006     <function name="dbus_properties_mixin_fill_properties_hash" c:identifier="tp_dbus_properties_mixin_fill_properties_hash" version="0.11.11" introspectable="0">
11007       <doc xml:whitespace="preserve">Retrieves the values of several D-Bus properties from an object, and adds
11008 them to a hash mapping the fully-qualified name of the property to its
11009 value. This is equivalent to calling tp_dbus_properties_mixin_get() for
11010 each property and adding it to the table yourself, with the proviso that
11011 this function will g_assert() if retrieving a property fails (for instance,
11012 because it does not exist).
11013 Note that in particular, @table does not have the same memory-allocation
11014 model as the hash tables required by tp_asv_set_string() and similar
11015 functions.</doc>
11016       <return-value transfer-ownership="none">
11017         <type name="none" c:type="void"/>
11018       </return-value>
11019       <parameters>
11020         <parameter name="object" transfer-ownership="none">
11021           <doc xml:whitespace="preserve">an object which uses the D-Bus properties mixin</doc>
11022           <type name="GObject.Object" c:type="GObject*"/>
11023         </parameter>
11024         <parameter name="table" transfer-ownership="none">
11025           <doc xml:whitespace="preserve">a hash table where the keys are strings copied with g_strdup() and the values are slice-allocated #GValue&lt;!-- --&gt;s</doc>
11026           <type name="GLib.HashTable" c:type="GHashTable*">
11027             <type name="utf8"/>
11028             <type name="GObject.Value"/>
11029           </type>
11030         </parameter>
11031         <parameter name="first_interface" transfer-ownership="none">
11032           <doc xml:whitespace="preserve">the interface of the first property to be retrieved</doc>
11033           <type name="utf8" c:type="gchar*"/>
11034         </parameter>
11035         <parameter name="first_property" transfer-ownership="none">
11036           <doc xml:whitespace="preserve">the name of the first property to be retrieved</doc>
11037           <type name="utf8" c:type="gchar*"/>
11038         </parameter>
11039         <parameter transfer-ownership="none">
11040           <varargs>
11041           </varargs>
11042         </parameter>
11043       </parameters>
11044     </function>
11045     <function name="dbus_properties_mixin_get" c:identifier="tp_dbus_properties_mixin_get" version="0.7.13" throws="1">
11046       <doc xml:whitespace="preserve">Initialize @value with the type of the property @property_name on
11047 by calling the D-Bus method org.freedesktop.DBus.Properties.Get.
11048 If Get would return a D-Bus error, @value remains unset and @error
11049 is filled in instead.
11050 on failure</doc>
11051       <return-value transfer-ownership="none">
11052         <doc xml:whitespace="preserve">%TRUE (filling @value) on success, %FALSE (setting @error)</doc>
11053         <type name="boolean" c:type="gboolean"/>
11054       </return-value>
11055       <parameters>
11056         <parameter name="self" transfer-ownership="none">
11057           <doc xml:whitespace="preserve">an object with this mixin</doc>
11058           <type name="GObject.Object" c:type="GObject*"/>
11059         </parameter>
11060         <parameter name="interface_name" transfer-ownership="none">
11061           <doc xml:whitespace="preserve">a D-Bus interface name</doc>
11062           <type name="utf8" c:type="gchar*"/>
11063         </parameter>
11064         <parameter name="property_name" transfer-ownership="none">
11065           <doc xml:whitespace="preserve">a D-Bus property name</doc>
11066           <type name="utf8" c:type="gchar*"/>
11067         </parameter>
11068         <parameter name="value" transfer-ownership="none">
11069           <doc xml:whitespace="preserve">an unset GValue (initialized to all zeroes)</doc>
11070           <type name="GObject.Value" c:type="GValue*"/>
11071         </parameter>
11072       </parameters>
11073     </function>
11074     <function name="dbus_properties_mixin_getter_gobject_properties" c:identifier="tp_dbus_properties_mixin_getter_gobject_properties">
11075       <doc xml:whitespace="preserve">An implementation of #TpDBusPropertiesMixinGetter which assumes that
11076 the @getter_data is the name of a readable #GObject property of an
11077 appropriate type, and uses it for the value of the D-Bus property.</doc>
11078       <return-value transfer-ownership="none">
11079         <type name="none" c:type="void"/>
11080       </return-value>
11081       <parameters>
11082         <parameter name="object" transfer-ownership="none">
11083           <doc xml:whitespace="preserve">The exported object with the properties</doc>
11084           <type name="GObject.Object" c:type="GObject*"/>
11085         </parameter>
11086         <parameter name="iface" transfer-ownership="none">
11087           <doc xml:whitespace="preserve">A quark representing the D-Bus interface name</doc>
11088           <type name="GLib.Quark" c:type="GQuark"/>
11089         </parameter>
11090         <parameter name="name" transfer-ownership="none">
11091           <doc xml:whitespace="preserve">A quark representing the D-Bus property name</doc>
11092           <type name="GLib.Quark" c:type="GQuark"/>
11093         </parameter>
11094         <parameter name="value" transfer-ownership="none">
11095           <doc xml:whitespace="preserve">A GValue pre-initialized to the right type, into which to put the value</doc>
11096           <type name="GObject.Value" c:type="GValue*"/>
11097         </parameter>
11098         <parameter name="getter_data" transfer-ownership="none">
11099           <doc xml:whitespace="preserve">The getter_data from the #TpDBusPropertiesMixinPropImpl, which must be a string containing the GObject property's name</doc>
11100           <type name="any" c:type="gpointer"/>
11101         </parameter>
11102       </parameters>
11103     </function>
11104     <function name="dbus_properties_mixin_iface_init" c:identifier="tp_dbus_properties_mixin_iface_init">
11105       <doc xml:whitespace="preserve">Declare that the DBus.Properties interface represented by @g_iface
11106 is implemented using this mixin.</doc>
11107       <return-value transfer-ownership="none">
11108         <type name="none" c:type="void"/>
11109       </return-value>
11110       <parameters>
11111         <parameter name="g_iface" transfer-ownership="none">
11112           <doc xml:whitespace="preserve">a pointer to a #TpSvcDBusPropertiesClass structure</doc>
11113           <type name="any" c:type="gpointer"/>
11114         </parameter>
11115         <parameter name="iface_data" transfer-ownership="none">
11116           <doc xml:whitespace="preserve">ignored</doc>
11117           <type name="any" c:type="gpointer"/>
11118         </parameter>
11119       </parameters>
11120     </function>
11121     <function name="dbus_properties_mixin_implement_interface" c:identifier="tp_dbus_properties_mixin_implement_interface">
11122       <doc xml:whitespace="preserve">Declare that, in addition to any interfaces set in
11123 tp_dbus_properties_mixin_class_init(), the given class (and its subclasses)
11124 will implement the properties of the interface @iface using the callbacks
11125 This function should be called from the class_init callback in such a way
11126 that it will only be called once, even if the class is subclassed.
11127 Typically, the static array @interfaces in the #TpDBusPropertiesMixinClass
11128 should be used for interfaces whose properties are implemented directly by
11129 the class @cls, and this function should be used for interfaces whose
11130 properties are implemented by mixins.
11131 It is an error for the same interface to appear in the array @interfaces
11132 in the #TpDBusPropertiesMixinClass, and also be set up by this function.
11133 If a class C and a subclass S both implement the properties of the same
11134 interface, only the implementations from the subclass S will be used,
11135 regardless of whether the implementations in C and/or S were set up by
11136 this function or via the array @interfaces in the
11137 #TpDBusPropertiesMixinClass.</doc>
11138       <return-value transfer-ownership="none">
11139         <type name="none" c:type="void"/>
11140       </return-value>
11141       <parameters>
11142         <parameter name="cls" transfer-ownership="none">
11143           <doc xml:whitespace="preserve">a subclass of #GObjectClass</doc>
11144           <type name="GObject.ObjectClass" c:type="GObjectClass*"/>
11145         </parameter>
11146         <parameter name="iface" transfer-ownership="none">
11147           <doc xml:whitespace="preserve">a quark representing the the name of the interface to implement</doc>
11148           <type name="GLib.Quark" c:type="GQuark"/>
11149         </parameter>
11150         <parameter name="getter" transfer-ownership="none" scope="call">
11151           <doc xml:whitespace="preserve">a callback to get properties on this interface, or %NULL if they are all write-only</doc>
11152           <type name="DBusPropertiesMixinGetter" c:type="TpDBusPropertiesMixinGetter"/>
11153         </parameter>
11154         <parameter name="setter" transfer-ownership="none" scope="call">
11155           <doc xml:whitespace="preserve">a callback to set properties on this interface, or %NULL if they are all read-only</doc>
11156           <type name="DBusPropertiesMixinSetter" c:type="TpDBusPropertiesMixinSetter"/>
11157         </parameter>
11158         <parameter name="props" transfer-ownership="none">
11159           <doc xml:whitespace="preserve">an array of #TpDBusPropertiesMixinPropImpl representing individual properties, terminated by one with @name == %NULL</doc>
11160           <type name="DBusPropertiesMixinPropImpl" c:type="TpDBusPropertiesMixinPropImpl*"/>
11161         </parameter>
11162       </parameters>
11163     </function>
11164     <function name="dbus_properties_mixin_make_properties_hash" c:identifier="tp_dbus_properties_mixin_make_properties_hash" introspectable="0">
11165       <doc xml:whitespace="preserve">Retrieves the values of several D-Bus properties from an object, and builds
11166 a hash mapping the fully-qualified name of the property to its value.  This
11167 is equivalent to calling tp_dbus_properties_mixin_get() for each property
11168 and building the table yourself, with the proviso that this function will
11169 g_assert() if retrieving a property fails (for instance, because it does not
11170 exist).
11171 Additional keys and values can be inserted into the returned hash table;
11172 if this is done, the inserted keys and values will be freed when the
11173 hash table is destroyed. The keys must be allocated with g_strdup() or
11174 equivalent, and the values must be slice-allocated (for instance with
11175 tp_g_value_slice_new_string() or a similar function).
11176 Note that in particular, tp_asv_set_string() and similar functions should
11177 not be used with this hash table.
11178 GValues, which must be freed by the caller (at which point its
11179 contents will also be freed).</doc>
11180       <return-value transfer-ownership="full">
11181         <doc xml:whitespace="preserve">a hash table mapping (gchar *) fully-qualified property names to</doc>
11182         <type name="GLib.HashTable" c:type="GHashTable*"/>
11183       </return-value>
11184       <parameters>
11185         <parameter name="object" transfer-ownership="none">
11186           <doc xml:whitespace="preserve">an object which uses the D-Bus properties mixin</doc>
11187           <type name="GObject.Object" c:type="GObject*"/>
11188         </parameter>
11189         <parameter name="first_interface" transfer-ownership="none">
11190           <doc xml:whitespace="preserve">the interface of the first property to be retrieved</doc>
11191           <type name="utf8" c:type="gchar*"/>
11192         </parameter>
11193         <parameter name="first_property" transfer-ownership="none">
11194           <doc xml:whitespace="preserve">the name of the first property to be retrieved</doc>
11195           <type name="utf8" c:type="gchar*"/>
11196         </parameter>
11197         <parameter transfer-ownership="none">
11198           <varargs>
11199           </varargs>
11200         </parameter>
11201       </parameters>
11202     </function>
11203     <function name="dbus_properties_mixin_setter_gobject_properties" c:identifier="tp_dbus_properties_mixin_setter_gobject_properties" throws="1">
11204       <doc xml:whitespace="preserve">An implementation of #TpDBusPropertiesMixinSetter which assumes that the
11205 type, and sets that property to the given value.</doc>
11206       <return-value transfer-ownership="none">
11207         <doc xml:whitespace="preserve">%TRUE</doc>
11208         <type name="boolean" c:type="gboolean"/>
11209       </return-value>
11210       <parameters>
11211         <parameter name="object" transfer-ownership="none">
11212           <doc xml:whitespace="preserve">The exported object with the properties</doc>
11213           <type name="GObject.Object" c:type="GObject*"/>
11214         </parameter>
11215         <parameter name="iface" transfer-ownership="none">
11216           <doc xml:whitespace="preserve">A quark representing the D-Bus interface name</doc>
11217           <type name="GLib.Quark" c:type="GQuark"/>
11218         </parameter>
11219         <parameter name="name" transfer-ownership="none">
11220           <doc xml:whitespace="preserve">A quark representing the D-Bus property name</doc>
11221           <type name="GLib.Quark" c:type="GQuark"/>
11222         </parameter>
11223         <parameter name="value" transfer-ownership="none">
11224           <doc xml:whitespace="preserve">The new value for the property</doc>
11225           <type name="GObject.Value" c:type="GValue*"/>
11226         </parameter>
11227         <parameter name="setter_data" transfer-ownership="none">
11228           <doc xml:whitespace="preserve">The setter_data from the #TpDBusPropertiesMixinPropImpl, which must be a string containing the GObject property's name</doc>
11229           <type name="any" c:type="gpointer"/>
11230         </parameter>
11231       </parameters>
11232     </function>
11233     <function name="debug_divert_messages" c:identifier="tp_debug_divert_messages" version="0.7.1">
11234       <doc xml:whitespace="preserve">Open the given file for writing and duplicate its file descriptor to
11235 be used for stdout and stderr. This has the effect of closing the previous
11236 stdout and stderr, and sending all messages that would have gone there
11237 to the given file instead.
11238 By default the file is truncated and hence overwritten each time the
11239 process is executed.
11240 Since version 0.7.14, if the filename is prefixed with '+' then the
11241 file is not truncated and output is added at the end of the file.
11242 Passing %NULL to this function is guaranteed to have no effect. This is
11243 so you can call it with the recommended usage
11244 &lt;literal&gt;tp_debug_divert_messages (g_getenv ("MYAPP_LOGFILE"))&lt;/literal&gt;
11245 and it won't do anything if the environment variable is not set.
11246 This function still works if telepathy-glib was compiled without debug
11247 support.</doc>
11248       <return-value transfer-ownership="none">
11249         <type name="none" c:type="void"/>
11250       </return-value>
11251       <parameters>
11252         <parameter name="filename" transfer-ownership="none">
11253           <doc xml:whitespace="preserve">A file to which to divert stdout and stderr, or %NULL to do nothing</doc>
11254           <type name="utf8" c:type="gchar*"/>
11255         </parameter>
11256       </parameters>
11257     </function>
11258     <function name="debug_set_all_flags" c:identifier="tp_debug_set_all_flags" introspectable="0">
11259       <doc xml:whitespace="preserve">Activate all possible debug modes. This also activates persistent mode,
11260 which should have been orthogonal.
11261 tp_debug_set_persistent() instead.</doc>
11262       <return-value transfer-ownership="none">
11263         <type name="none" c:type="void"/>
11264       </return-value>
11265     </function>
11266     <function name="debug_set_flags" c:identifier="tp_debug_set_flags">
11267       <doc xml:whitespace="preserve">Set the debug flags indicated by @flags_string, in addition to any already
11268 set.
11269 The parsing matches that of g_parse_debug_string().
11270 If telepathy-glib was compiled with --disable-debug (not recommended),
11271 this function has no practical effect, since the debug messages it would
11272 enable were removed at compile time.</doc>
11273       <return-value transfer-ownership="none">
11274         <type name="none" c:type="void"/>
11275       </return-value>
11276       <parameters>
11277         <parameter name="flags_string" transfer-ownership="none">
11278           <doc xml:whitespace="preserve">The flags to set, comma-separated. If %NULL or empty, no additional flags are set.</doc>
11279           <type name="utf8" c:type="gchar*"/>
11280         </parameter>
11281       </parameters>
11282     </function>
11283     <function name="debug_set_flags_from_env" c:identifier="tp_debug_set_flags_from_env" introspectable="0">
11284       <doc xml:whitespace="preserve">Equivalent to
11285 &lt;literal&gt;tp_debug_set_flags_from_string (g_getenv (var))&lt;/literal&gt;,
11286 and has the same problem with persistence being included in "all".
11287 tp_debug_set_persistent() instead</doc>
11288       <return-value transfer-ownership="none">
11289         <type name="none" c:type="void"/>
11290       </return-value>
11291       <parameters>
11292         <parameter name="var" transfer-ownership="none">
11293           <doc xml:whitespace="preserve">The name of the environment variable to parse</doc>
11294           <type name="utf8" c:type="gchar*"/>
11295         </parameter>
11296       </parameters>
11297     </function>
11298     <function name="debug_set_flags_from_string" c:identifier="tp_debug_set_flags_from_string" introspectable="0">
11299       <doc xml:whitespace="preserve">Set the debug flags indicated by @flags_string, in addition to any already
11300 set. Unlike tp_debug_set_flags(), this enables persistence like
11301 tp_debug_set_persistent() if the "persist" flag is present or the string
11302 is "all" - this turns out to be unhelpful, as persistence should be
11303 orthogonal.
11304 The parsing matches that of g_parse_debug_string().
11305 tp_debug_set_persistent() instead</doc>
11306       <return-value transfer-ownership="none">
11307         <type name="none" c:type="void"/>
11308       </return-value>
11309       <parameters>
11310         <parameter name="flags_string" transfer-ownership="none">
11311           <doc xml:whitespace="preserve">The flags to set, comma-separated. If %NULL or empty, no additional flags are set.</doc>
11312           <type name="utf8" c:type="gchar*"/>
11313         </parameter>
11314       </parameters>
11315     </function>
11316     <function name="debug_set_persistent" c:identifier="tp_debug_set_persistent">
11317       <doc xml:whitespace="preserve">Used to enable persistent operation of the connection manager process for
11318 debugging purposes.</doc>
11319       <return-value transfer-ownership="none">
11320         <type name="none" c:type="void"/>
11321       </return-value>
11322       <parameters>
11323         <parameter name="persistent" transfer-ownership="none">
11324           <doc xml:whitespace="preserve">TRUE prevents the connection manager mainloop from exiting, FALSE enables exiting if there are no connections (the default behavior).</doc>
11325           <type name="boolean" c:type="gboolean"/>
11326         </parameter>
11327       </parameters>
11328     </function>
11329     <function name="debug_timestamped_log_handler" c:identifier="tp_debug_timestamped_log_handler" version="0.7.1">
11330       <doc xml:whitespace="preserve">A #GLogFunc that prepends the UTC time (currently in ISO 8601 format,
11331 with microsecond resolution) to the message, then calls
11332 g_log_default_handler.
11333 Intended usage is:
11334 &lt;informalexample&gt;&lt;programlisting&gt;if (g_getenv ("MYPROG_TIMING") != NULL)
11335 g_log_set_default_handler (tp_debug_timestamped_log_handler, NULL);
11336 &lt;/programlisting&gt;&lt;/informalexample&gt;
11337 If telepathy-glib was compiled with --disable-debug (not recommended),
11338 this function is equivalent to g_log_default_handler().
11339 RFC-3339 format. Previously, they were printed in local time, in a
11340 format similar to RFC-3339.</doc>
11341       <return-value transfer-ownership="none">
11342         <type name="none" c:type="void"/>
11343       </return-value>
11344       <parameters>
11345         <parameter name="log_domain" transfer-ownership="none">
11346           <doc xml:whitespace="preserve">the message's log domain</doc>
11347           <type name="utf8" c:type="gchar*"/>
11348         </parameter>
11349         <parameter name="log_level" transfer-ownership="none">
11350           <doc xml:whitespace="preserve">the log level of the message</doc>
11351           <type name="GLib.LogLevelFlags" c:type="GLogLevelFlags"/>
11352         </parameter>
11353         <parameter name="message" transfer-ownership="none">
11354           <doc xml:whitespace="preserve">the message to process</doc>
11355           <type name="utf8" c:type="gchar*"/>
11356         </parameter>
11357         <parameter name="ignored" transfer-ownership="none">
11358           <doc xml:whitespace="preserve">not used</doc>
11359           <type name="any" c:type="gpointer"/>
11360         </parameter>
11361       </parameters>
11362     </function>
11363     <function name="error_get_dbus_name" c:identifier="tp_error_get_dbus_name" version="0.7.31">
11364       <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
11365       <return-value transfer-ownership="none">
11366         <doc xml:whitespace="preserve">the D-Bus error name corresponding to @error.</doc>
11367         <type name="utf8" c:type="gchar*"/>
11368       </return-value>
11369       <parameters>
11370         <parameter name="error" transfer-ownership="none">
11371           <doc xml:whitespace="preserve">a member of the #TpError enum.</doc>
11372           <type name="Error" c:type="TpError"/>
11373         </parameter>
11374       </parameters>
11375     </function>
11376     <function name="errors_disconnected_quark" c:identifier="tp_errors_disconnected_quark">
11377       <return-value transfer-ownership="full">
11378         <type name="GLib.Quark" c:type="GQuark"/>
11379       </return-value>
11380     </function>
11381     <function name="errors_quark" c:identifier="tp_errors_quark" introspectable="0" deprecated="Use tp_error_quark() instead.">
11382       <doc xml:whitespace="preserve">&lt;!-- --&gt;</doc>
11383       <return-value transfer-ownership="full">
11384         <type name="GLib.Quark" c:type="GQuark"/>
11385       </return-value>
11386     </function>
11387     <function name="errors_removed_from_group_quark" c:identifier="tp_errors_removed_from_group_quark">
11388       <return-value transfer-ownership="full">
11389         <type name="GLib.Quark" c:type="GQuark"/>
11390       </return-value>
11391     </function>
11392     <function name="external_group_mixin_finalize" c:identifier="tp_external_group_mixin_finalize" version="0.5.13" introspectable="0">
11393       <doc xml:whitespace="preserve">Remove the external group mixin. This function should usually be called
11394 in the dispose or finalize function.</doc>
11395       <return-value transfer-ownership="none">
11396         <type name="none" c:type="void"/>
11397       </return-value>
11398       <parameters>
11399         <parameter name="obj" transfer-ownership="none">
11400           <doc xml:whitespace="preserve">An object implementing the groups interface using an external group mixin</doc>
11401           <type name="GObject.Object" c:type="GObject*"/>
11402         </parameter>
11403       </parameters>
11404     </function>
11405     <function name="external_group_mixin_get_dbus_property" c:identifier="tp_external_group_mixin_get_dbus_property" version="0.7.10" introspectable="0">
11406       <doc xml:whitespace="preserve">An implementation of #TpDBusPropertiesMixinGetter which assumes that the
11407 interface.</doc>
11408       <return-value transfer-ownership="none">
11409         <type name="none" c:type="void"/>
11410       </return-value>
11411       <parameters>
11412         <parameter name="object" transfer-ownership="none">
11413           <doc xml:whitespace="preserve">An object with this mixin</doc>
11414           <type name="GObject.Object" c:type="GObject*"/>
11415         </parameter>
11416         <parameter name="interface" transfer-ownership="none">
11417           <doc xml:whitespace="preserve">Must be %TP_IFACE_QUARK_CHANNEL_INTERFACE_GROUP</doc>
11418           <type name="GLib.Quark" c:type="GQuark"/>
11419         </parameter>
11420         <parameter name="name" transfer-ownership="none">
11421           <doc xml:whitespace="preserve">A quark representing the D-Bus property name, either "GroupFlags", "HandleOwners", "LocalPendingMembers", "Members", "RemotePendingMembers" or "SelfHandle"</doc>
11422           <type name="GLib.Quark" c:type="GQuark"/>
11423         </parameter>
11424         <parameter name="value" transfer-ownership="none">
11425           <doc xml:whitespace="preserve">A GValue pre-initialized to the right type, into which to put the value</doc>
11426           <type name="GObject.Value" c:type="GValue*"/>
11427         </parameter>
11428         <parameter name="unused" transfer-ownership="none">
11429           <doc xml:whitespace="preserve">Ignored</doc>
11430           <type name="any" c:type="gpointer"/>
11431         </parameter>
11432       </parameters>
11433     </function>
11434     <function name="external_group_mixin_iface_init" c:identifier="tp_external_group_mixin_iface_init" version="0.5.13" introspectable="0">
11435       <doc xml:whitespace="preserve">Fill in the vtable entries needed to implement the group interface using
11436 the group mixin of another object. This function should usually be called
11437 via G_IMPLEMENT_INTERFACE.</doc>
11438       <return-value transfer-ownership="none">
11439         <type name="none" c:type="void"/>
11440       </return-value>
11441       <parameters>
11442         <parameter name="g_iface" transfer-ownership="none">
11443           <doc xml:whitespace="preserve">A #TpSvcChannelInterfaceGroupClass</doc>
11444           <type name="any" c:type="gpointer"/>
11445         </parameter>
11446         <parameter name="iface_data" transfer-ownership="none">
11447           <doc xml:whitespace="preserve">Unused</doc>
11448           <type name="any" c:type="gpointer"/>
11449         </parameter>
11450       </parameters>
11451     </function>
11452     <function name="external_group_mixin_init" c:identifier="tp_external_group_mixin_init" version="0.5.13" introspectable="0">
11453       <doc xml:whitespace="preserve">Fill in the qdata needed to implement the group interface using
11454 the group mixin of another object. This function should usually be called
11455 in the instance constructor.</doc>
11456       <return-value transfer-ownership="none">
11457         <type name="none" c:type="void"/>
11458       </return-value>
11459       <parameters>
11460         <parameter name="obj" transfer-ownership="none">
11461           <doc xml:whitespace="preserve">An object implementing the groups interface using an external group mixin</doc>
11462           <type name="GObject.Object" c:type="GObject*"/>
11463         </parameter>
11464         <parameter name="obj_with_mixin" transfer-ownership="none">
11465           <doc xml:whitespace="preserve">A GObject with the group mixin</doc>
11466           <type name="GObject.Object" c:type="GObject*"/>
11467         </parameter>
11468       </parameters>
11469     </function>
11470     <function name="external_group_mixin_init_dbus_properties" c:identifier="tp_external_group_mixin_init_dbus_properties" version="0.7.10" introspectable="0">
11471       <doc xml:whitespace="preserve">Set up #TpDBusPropertiesMixinClass to use this mixin's implementation of
11472 the Group interface's properties.
11473 This uses tp_group_mixin_get_dbus_property() as the property getter and
11474 sets up a list of the supported properties for it.  Having called this, you
11475 should add #TP_CHANNEL_GROUP_FLAG_PROPERTIES to channels containing the
11476 mixin used by this class with tp_group_mixin_change_flags() to indicate that
11477 the DBus properties are available.</doc>
11478       <return-value transfer-ownership="none">
11479         <type name="none" c:type="void"/>
11480       </return-value>
11481       <parameters>
11482         <parameter name="cls" transfer-ownership="none">
11483           <doc xml:whitespace="preserve">The class of an object with this mixin</doc>
11484           <type name="GObject.ObjectClass" c:type="GObjectClass*"/>
11485         </parameter>
11486       </parameters>
11487     </function>
11488     <function name="g_set_error_invalid_handle_type" c:identifier="tp_g_set_error_invalid_handle_type" introspectable="0" throws="1">
11489       <doc xml:whitespace="preserve">Set the error NotImplemented for an invalid handle type,
11490 with an appropriate message.
11491 InvalidArgument.</doc>
11492       <return-value transfer-ownership="none">
11493         <type name="none" c:type="void"/>
11494       </return-value>
11495       <parameters>
11496         <parameter name="type" transfer-ownership="none">
11497           <doc xml:whitespace="preserve">An invalid handle type</doc>
11498           <type name="uint" c:type="guint"/>
11499         </parameter>
11500       </parameters>
11501     </function>
11502     <function name="g_set_error_unsupported_handle_type" c:identifier="tp_g_set_error_unsupported_handle_type" introspectable="0" throws="1">
11503       <doc xml:whitespace="preserve">Set the error NotImplemented for a handle type which is valid but is not
11504 supported by this connection manager, with an appropriate message.
11505 InvalidArgument.</doc>
11506       <return-value transfer-ownership="none">
11507         <type name="none" c:type="void"/>
11508       </return-value>
11509       <parameters>
11510         <parameter name="type" transfer-ownership="none">
11511           <doc xml:whitespace="preserve">An unsupported handle type</doc>
11512           <type name="uint" c:type="guint"/>
11513         </parameter>
11514       </parameters>
11515     </function>
11516     <function name="g_value_slice_new_bytes" c:identifier="tp_g_value_slice_new_bytes" version="0.7.27" introspectable="0">
11517       <doc xml:whitespace="preserve">Slice-allocate a #GValue containing a byte-array, using
11518 tp_g_value_slice_new_boxed(). This function is convenient to use when
11519 constructing hash tables from string to #GValue, for example.
11520 of @length bytes from @bytes, to be freed with tp_g_value_slice_free() or
11521 g_slice_free()</doc>
11522       <return-value transfer-ownership="full">
11523         <doc xml:whitespace="preserve">a #GValue of type %DBUS_TYPE_G_UCHAR_ARRAY whose value is a copy</doc>
11524         <type name="GObject.Value" c:type="GValue*"/>
11525       </return-value>
11526       <parameters>
11527         <parameter name="length" transfer-ownership="none">
11528           <doc xml:whitespace="preserve">number of bytes to copy</doc>
11529           <type name="uint" c:type="guint"/>
11530         </parameter>
11531         <parameter name="bytes" transfer-ownership="none">
11532           <doc xml:whitespace="preserve">location of an array of bytes to be copied (this may be %NULL if and only if length is 0)</doc>
11533           <type name="any" c:type="gconstpointer"/>
11534         </parameter>
11535       </parameters>
11536     </function>
11537     <function name="g_value_slice_new_object_path" c:identifier="tp_g_value_slice_new_object_path" version="0.7.27" introspectable="0">
11538       <doc xml:whitespace="preserve">Slice-allocate a #GValue containing an object path, using
11539 tp_g_value_slice_new_boxed(). This function is convenient to use when
11540 constructing hash tables from string to #GValue, for example.
11541 of @path, to be freed with tp_g_value_slice_free() or g_slice_free()</doc>
11542       <return-value transfer-ownership="full">
11543         <doc xml:whitespace="preserve">a #GValue of type %DBUS_TYPE_G_OBJECT_PATH whose value is a copy</doc>
11544         <type name="GObject.Value" c:type="GValue*"/>
11545       </return-value>
11546       <parameters>
11547         <parameter name="path" transfer-ownership="none">
11548           <doc xml:whitespace="preserve">a valid D-Bus object path which will be copied</doc>
11549           <type name="utf8" c:type="gchar*"/>
11550         </parameter>
11551       </parameters>
11552     </function>
11553     <function name="g_value_slice_new_static_object_path" c:identifier="tp_g_value_slice_new_static_object_path" version="0.7.27" introspectable="0">
11554       <doc xml:whitespace="preserve">Slice-allocate a #GValue containing an object path, using
11555 tp_g_value_slice_new_static_boxed(). This function is convenient to use when
11556 constructing hash tables from string to #GValue, for example.
11557 to be freed with tp_g_value_slice_free() or g_slice_free()</doc>
11558       <return-value transfer-ownership="full">
11559         <doc xml:whitespace="preserve">a #GValue of type %DBUS_TYPE_G_OBJECT_PATH whose value is @path,</doc>
11560         <type name="GObject.Value" c:type="GValue*"/>
11561       </return-value>
11562       <parameters>
11563         <parameter name="path" transfer-ownership="none">
11564           <doc xml:whitespace="preserve">a valid D-Bus object path which must remain valid forever</doc>
11565           <type name="utf8" c:type="gchar*"/>
11566         </parameter>
11567       </parameters>
11568     </function>
11569     <function name="g_value_slice_new_take_bytes" c:identifier="tp_g_value_slice_new_take_bytes" version="0.7.27" introspectable="0">
11570       <doc xml:whitespace="preserve">Slice-allocate a #GValue containing @bytes, using
11571 tp_g_value_slice_new_boxed(). This function is convenient to use when
11572 constructing hash tables from string to #GValue, for example.
11573 g_slice_free()</doc>
11574       <return-value transfer-ownership="full">
11575         <doc xml:whitespace="preserve">a #GValue of type %DBUS_TYPE_G_UCHAR_ARRAY whose value is</doc>
11576         <type name="GObject.Value" c:type="GValue*"/>
11577       </return-value>
11578       <parameters>
11579         <parameter name="bytes" transfer-ownership="none">
11580           <doc xml:whitespace="preserve">a non-NULL #GArray of guchar, ownership of which will be taken by the #GValue</doc>
11581           <array name="GLib.Array" c:type="GArray*">
11582             <type name="any" c:type="gpointer"/>
11583           </array>
11584         </parameter>
11585       </parameters>
11586     </function>
11587     <function name="g_value_slice_new_take_object_path" c:identifier="tp_g_value_slice_new_take_object_path" version="0.7.27" introspectable="0">
11588       <doc xml:whitespace="preserve">Slice-allocate a #GValue containing an object path, using
11589 tp_g_value_slice_new_take_boxed(). This function is convenient to use when
11590 constructing hash tables from string to #GValue, for example.
11591 to be freed with tp_g_value_slice_free() or g_slice_free()</doc>
11592       <return-value transfer-ownership="full">
11593         <doc xml:whitespace="preserve">a #GValue of type %DBUS_TYPE_G_OBJECT_PATH whose value is @path,</doc>
11594         <type name="GObject.Value" c:type="GValue*"/>
11595       </return-value>
11596       <parameters>
11597         <parameter name="path" transfer-ownership="full">
11598           <doc xml:whitespace="preserve">a valid D-Bus object path which will be freed with g_free() by the returned #GValue (the caller must own it before calling this function, but no longer owns it after this function returns)</doc>
11599           <type name="utf8" c:type="gchar*"/>
11600         </parameter>
11601       </parameters>
11602     </function>
11603     <function name="get_bus" c:identifier="tp_get_bus" introspectable="0">
11604       <doc xml:whitespace="preserve">Returns a connection to the D-Bus daemon on which this process was
11605 activated if it was launched by D-Bus service activation, or the session
11606 bus otherwise.
11607 If dbus_g_bus_get() fails, exit with error code 1.
11608 Note that this function is not suitable for use in applications which can
11609 be useful even in the absence of D-Bus - it is designed for use in
11610 connection managers, which are not at all useful without a D-Bus
11611 connection. See &amp;lt;https://bugs.freedesktop.org/show_bug.cgi?id=18832&amp;gt;.
11612 Most processes should use tp_dbus_daemon_dup() instead.</doc>
11613       <return-value transfer-ownership="full">
11614         <doc xml:whitespace="preserve">a connection to the starter or session D-Bus daemon.</doc>
11615         <type name="DBusGConnection" c:type="DBusGConnection*"/>
11616       </return-value>
11617     </function>
11618     <function name="get_bus_proxy" c:identifier="tp_get_bus_proxy" introspectable="0" deprecated="Use tp_dbus_daemon_dup() in new code." deprecated-version="0.7.26">
11619       <doc xml:whitespace="preserve">Return a #DBusGProxy for the bus daemon object. The same caveats as for
11620 tp_get_bus() apply.</doc>
11621       <return-value transfer-ownership="full">
11622         <doc xml:whitespace="preserve">a proxy for the bus daemon object on the starter or session bus.</doc>
11623         <type name="DBusGProxy" c:type="DBusGProxy*"/>
11624       </return-value>
11625     </function>
11626     <function name="group_mixin_add_handle_owner" c:identifier="tp_group_mixin_add_handle_owner" introspectable="0">
11627       <doc xml:whitespace="preserve">Note that the given local handle is an alias within this group
11628 for the given globally-valid handle. It will be returned from subsequent
11629 GetHandleOwner queries where appropriate.
11630 0.17.6, before adding any channel-specific handle to the members,
11631 local-pending members or remote-pending members, you must call either
11632 this function or tp_group_mixin_add_handle_owners().</doc>
11633       <return-value transfer-ownership="none">
11634         <type name="none" c:type="void"/>
11635       </return-value>
11636       <parameters>
11637         <parameter name="obj" transfer-ownership="none">
11638           <doc xml:whitespace="preserve">A GObject implementing the group interface with this mixin</doc>
11639           <type name="GObject.Object" c:type="GObject*"/>
11640         </parameter>
11641         <parameter name="local_handle" transfer-ownership="none">
11642           <doc xml:whitespace="preserve">A contact handle valid within this group (may not be 0)</doc>
11643           <type name="Handle" c:type="TpHandle"/>
11644         </parameter>
11645         <parameter name="owner_handle" transfer-ownership="none">
11646           <doc xml:whitespace="preserve">A contact handle valid globally, or 0 if the owner of the</doc>
11647           <type name="Handle" c:type="TpHandle"/>
11648         </parameter>
11649       </parameters>
11650     </function>
11651     <function name="group_mixin_add_handle_owners" c:identifier="tp_group_mixin_add_handle_owners" introspectable="0">
11652       <doc xml:whitespace="preserve">Note that the given local handles are aliases within this group
11653 for the given globally-valid handles.
11654 To comply with telepathy-spec 0.17.6, before adding any channel-specific
11655 handle to the members, local-pending members or remote-pending members, you
11656 must call either this function or tp_group_mixin_add_handle_owner().</doc>
11657       <return-value transfer-ownership="none">
11658         <type name="none" c:type="void"/>
11659       </return-value>
11660       <parameters>
11661         <parameter name="obj" transfer-ownership="none">
11662           <doc xml:whitespace="preserve">A GObject implementing the group interface with this mixin</doc>
11663           <type name="GObject.Object" c:type="GObject*"/>
11664         </parameter>
11665         <parameter name="local_to_owner_handle" transfer-ownership="none">
11666           <doc xml:whitespace="preserve">A map from contact handles valid within this group (which may not be 0) to either contact handles valid globally, or 0 if the owner of the corresponding key is unknown; all handles are stored using GUINT_TO_POINTER</doc>
11667           <type name="GLib.HashTable" c:type="GHashTable*"/>
11668         </parameter>
11669       </parameters>
11670     </function>
11671     <function name="group_mixin_add_members" c:identifier="tp_group_mixin_add_members" introspectable="0" throws="1">
11672       <doc xml:whitespace="preserve">Request that the given contacts be added to the group as if in response
11673 to user action. If the group's flags prohibit this, raise
11674 PermissionDenied. If any of the handles is invalid, raise InvalidHandle.
11675 Otherwise attempt to add the contacts by calling the callbacks provided
11676 by the channel implementation.</doc>
11677       <return-value transfer-ownership="none">
11678         <doc xml:whitespace="preserve">%TRUE on success</doc>
11679         <type name="boolean" c:type="gboolean"/>
11680       </return-value>
11681       <parameters>
11682         <parameter name="obj" transfer-ownership="none">
11683           <doc xml:whitespace="preserve">An object implementing the group interface using this mixin</doc>
11684           <type name="GObject.Object" c:type="GObject*"/>
11685         </parameter>
11686         <parameter name="contacts" transfer-ownership="none">
11687           <doc xml:whitespace="preserve">A GArray of guint representing contacts</doc>
11688           <array name="GLib.Array" c:type="GArray*">
11689             <type name="any" c:type="gpointer"/>
11690           </array>
11691         </parameter>
11692         <parameter name="message" transfer-ownership="none">
11693           <doc xml:whitespace="preserve">A message associated with the addition request, if supported</doc>
11694           <type name="utf8" c:type="gchar*"/>
11695         </parameter>
11696       </parameters>
11697     </function>
11698     <function name="group_mixin_change_flags" c:identifier="tp_group_mixin_change_flags" introspectable="0">
11699       <doc xml:whitespace="preserve">Request a change to be made to the flags. If any flags were actually
11700 set or cleared, emits the GroupFlagsChanged signal with the changes.
11701 It is an error to set any of the same bits in both @add and @del.
11702 removing @del had no effect on the existing group flags.</doc>
11703       <return-value transfer-ownership="none">
11704         <type name="none" c:type="void"/>
11705       </return-value>
11706       <parameters>
11707         <parameter name="obj" transfer-ownership="none">
11708           <doc xml:whitespace="preserve">An object implementing the groups interface using this mixin</doc>
11709           <type name="GObject.Object" c:type="GObject*"/>
11710         </parameter>
11711         <parameter name="add" transfer-ownership="none">
11712           <doc xml:whitespace="preserve">Flags to be added</doc>
11713           <type name="ChannelGroupFlags" c:type="TpChannelGroupFlags"/>
11714         </parameter>
11715         <parameter name="del" transfer-ownership="none">
11716           <doc xml:whitespace="preserve">Flags to be removed</doc>
11717           <type name="ChannelGroupFlags" c:type="TpChannelGroupFlags"/>
11718         </parameter>
11719       </parameters>
11720     </function>
11721     <function name="group_mixin_change_members" c:identifier="tp_group_mixin_change_members" introspectable="0">
11722       <doc xml:whitespace="preserve">Change the sets of members as given by the arguments, and emit the
11723 MembersChanged and MembersChangedDetailed signals if the changes were not a
11724 no-op.
11725 This function must be called in response to events on the underlying
11726 IM protocol, and must not be called in direct response to user input;
11727 it does not respect the permissions flags, but changes the group directly.
11728 If any two of add, del, add_local_pending and add_remote_pending have
11729 a non-empty intersection, the result is undefined. Don't do that.
11730 Each of the TpIntSet arguments may be %NULL, which is treated as
11731 equivalent to an empty set.
11732 signals were emitted; %FALSE if nothing actually changed and the signals
11733 were suppressed.</doc>
11734       <return-value transfer-ownership="none">
11735         <doc xml:whitespace="preserve">%TRUE if the group was changed and the MembersChanged(Detailed)</doc>
11736         <type name="boolean" c:type="gboolean"/>
11737       </return-value>
11738       <parameters>
11739         <parameter name="obj" transfer-ownership="none">
11740           <doc xml:whitespace="preserve">An object implementing the group interface using this mixin</doc>
11741           <type name="GObject.Object" c:type="GObject*"/>
11742         </parameter>
11743         <parameter name="message" transfer-ownership="none">
11744           <doc xml:whitespace="preserve">A message to be sent to the affected contacts if possible; %NULL is allowed, and is mapped to an empty string</doc>
11745           <type name="utf8" c:type="gchar*"/>
11746         </parameter>
11747         <parameter name="add" transfer-ownership="none">
11748           <doc xml:whitespace="preserve">A set of contact handles to be added to the members (if not already present) and removed from local pending and remote pending (if present)</doc>
11749           <type name="IntSet" c:type="TpIntSet*"/>
11750         </parameter>
11751         <parameter name="del" transfer-ownership="none">
11752           <doc xml:whitespace="preserve">A set of contact handles to be removed from members, local pending or remote pending, wherever they are present</doc>
11753           <type name="IntSet" c:type="TpIntSet*"/>
11754         </parameter>
11755         <parameter name="add_local_pending" transfer-ownership="none">
11756           <doc xml:whitespace="preserve">A set of contact handles to be added to local pending, and removed from members and remote pending</doc>
11757           <type name="IntSet" c:type="TpIntSet*"/>
11758         </parameter>
11759         <parameter name="add_remote_pending" transfer-ownership="none">
11760           <doc xml:whitespace="preserve">A set of contact handles to be added to remote pending, and removed from members and local pending</doc>
11761           <type name="IntSet" c:type="TpIntSet*"/>
11762         </parameter>
11763         <parameter name="actor" transfer-ownership="none">
11764           <doc xml:whitespace="preserve">The handle of the contact responsible for this change</doc>
11765           <type name="Handle" c:type="TpHandle"/>
11766         </parameter>
11767         <parameter name="reason" transfer-ownership="none">
11768           <doc xml:whitespace="preserve">The reason for this change</doc>
11769           <type name="ChannelGroupChangeReason" c:type="TpChannelGroupChangeReason"/>
11770         </parameter>
11771       </parameters>
11772     </function>
11773     <function name="group_mixin_change_members_detailed" c:identifier="tp_group_mixin_change_members_detailed" introspectable="0">
11774       <doc xml:whitespace="preserve">Change the sets of members as given by the arguments, and emit the
11775 MembersChanged and MembersChangedDetailed signals if the changes were not a
11776 no-op.
11777 This function must be called in response to events on the underlying
11778 IM protocol, and must not be called in direct response to user input;
11779 it does not respect the permissions flags, but changes the group directly.
11780 If any two of add, del, add_local_pending and add_remote_pending have
11781 a non-empty intersection, the result is undefined. Don't do that.
11782 Each of the TpIntSet arguments may be %NULL, which is treated as
11783 equivalent to an empty set.
11784 details may contain, among other entries, the well-known
11785 keys (and corresponding type, wrapped in a GValue) defined by the
11786 Group.MembersChangedDetailed signal's specification; these include "actor"
11787 (a handle as G_TYPE_UINT), "change-reason" (an element of
11788 #TpChannelGroupChangeReason as G_TYPE_UINT), "message" (G_TYPE_STRING),
11789 "error" (G_TYPE_STRING), "debug-message" (G_TYPE_STRING).
11790 If all of the information in details could be passed to
11791 tp_group_mixin_change_members() then calling this function instead provides
11792 no benefit. Calling this function without setting
11793 #TP_CHANNEL_GROUP_FLAG_MEMBERS_CHANGED_DETAILED with
11794 tp_group_mixin_change_members() first is not very useful, as clients will
11795 not know to listen for MembersChangedDetailed and thus will miss the
11796 details.
11797 signals were emitted; %FALSE if nothing actually changed and the signals
11798 were suppressed.</doc>
11799       <return-value transfer-ownership="none">
11800         <doc xml:whitespace="preserve">%TRUE if the group was changed and the MembersChanged(Detailed)</doc>
11801         <type name="boolean" c:type="gboolean"/>
11802       </return-value>
11803       <parameters>
11804         <parameter name="obj" transfer-ownership="none">
11805           <doc xml:whitespace="preserve">An object implementing the group interface using this mixin</doc>
11806           <type name="GObject.Object" c:type="GObject*"/>
11807         </parameter>
11808         <parameter name="add" transfer-ownership="none">
11809           <doc xml:whitespace="preserve">A set of contact handles to be added to the members (if not already present) and removed from local pending and remote pending (if present)</doc>
11810           <type name="IntSet" c:type="TpIntSet*"/>
11811         </parameter>
11812         <parameter name="del" transfer-ownership="none">
11813           <doc xml:whitespace="preserve">A set of contact handles to be removed from members, local pending or remote pending, wherever they are present</doc>
11814           <type name="IntSet" c:type="TpIntSet*"/>
11815         </parameter>
11816         <parameter name="add_local_pending" transfer-ownership="none">
11817           <doc xml:whitespace="preserve">A set of contact handles to be added to local pending, and removed from members and remote pending</doc>
11818           <type name="IntSet" c:type="TpIntSet*"/>
11819         </parameter>
11820         <parameter name="add_remote_pending" transfer-ownership="none">
11821           <doc xml:whitespace="preserve">A set of contact handles to be added to remote pending, and removed from members and local pending</doc>
11822           <type name="IntSet" c:type="TpIntSet*"/>
11823         </parameter>
11824         <parameter name="details" transfer-ownership="none">
11825           <doc xml:whitespace="preserve">a map from strings to GValues detailing the change</doc>
11826           <type name="GLib.HashTable" c:type="GHashTable*"/>
11827         </parameter>
11828       </parameters>
11829     </function>
11830     <function name="group_mixin_change_self_handle" c:identifier="tp_group_mixin_change_self_handle" introspectable="0">
11831       <doc xml:whitespace="preserve">Change the self-handle for this group to the given value.</doc>
11832       <return-value transfer-ownership="none">
11833         <type name="none" c:type="void"/>
11834       </return-value>
11835       <parameters>
11836         <parameter name="obj" transfer-ownership="none">
11837           <doc xml:whitespace="preserve">An object implementing the group interface using this mixin</doc>
11838           <type name="GObject.Object" c:type="GObject*"/>
11839         </parameter>
11840         <parameter name="new_self_handle" transfer-ownership="none">
11841           <doc xml:whitespace="preserve">The new self-handle for this group</doc>
11842           <type name="Handle" c:type="TpHandle"/>
11843         </parameter>
11844       </parameters>
11845     </function>
11846     <function name="group_mixin_class_allow_self_removal" c:identifier="tp_group_mixin_class_allow_self_removal" version="0.7.27" introspectable="0">
11847       <doc xml:whitespace="preserve">Configure the mixin to allow attempts to remove the SelfHandle from this
11848 Group, even if the group flags would otherwise disallow this. The
11849 channel's #TpGroupMixinRemMemberFunc or
11850 #TpGroupMixinRemMemberWithReasonFunc will be called as usual for such
11851 attempts, and may make them fail with %TP_ERROR_PERMISSION_DENIED if
11852 required.
11853 This function should be called from the GObject @class_init callback,
11854 after calling tp_group_mixin_class_init().
11855 (Recent telepathy-spec changes make it valid to try to remove the
11856 self-handle at all times, regardless of group flags. However, if this was
11857 implemented automatically in TpGroupMixin, this would risk crashing
11858 connection manager implementations that assume that TpGroupMixin will
11859 enforce the group flags strictly. As a result, connection managers should
11860 call this function to indicate to the TpGroupMixin that it may call their
11861 removal callback with the self-handle regardless of flag settings.)</doc>
11862       <return-value transfer-ownership="none">
11863         <type name="none" c:type="void"/>
11864       </return-value>
11865       <parameters>
11866         <parameter name="obj_cls" transfer-ownership="none">
11867           <doc xml:whitespace="preserve">The class of an object implementing the group interface using this mixin</doc>
11868           <type name="GObject.ObjectClass" c:type="GObjectClass*"/>
11869         </parameter>
11870       </parameters>
11871     </function>
11872     <function name="group_mixin_class_get_offset_quark" c:identifier="tp_group_mixin_class_get_offset_quark" introspectable="0">
11873       <doc xml:whitespace="preserve">&lt;!--Returns: says it all--&gt;</doc>
11874       <return-value transfer-ownership="full">
11875         <doc xml:whitespace="preserve">the quark used for storing mixin offset on a GObjectClass</doc>
11876         <type name="GLib.Quark" c:type="GQuark"/>
11877       </return-value>
11878     </function>
11879     <function name="group_mixin_class_init" c:identifier="tp_group_mixin_class_init" introspectable="0">
11880       <doc xml:whitespace="preserve">Configure the mixin for use with the given class.</doc>
11881       <return-value transfer-ownership="none">
11882         <type name="none" c:type="void"/>
11883       </return-value>
11884       <parameters>
11885         <parameter name="obj_cls" transfer-ownership="none">
11886           <doc xml:whitespace="preserve">The class of an object implementing the group interface using this mixin</doc>
11887           <type name="GObject.ObjectClass" c:type="GObjectClass*"/>
11888         </parameter>
11889         <parameter name="offset" transfer-ownership="none">
11890           <doc xml:whitespace="preserve">The offset of the TpGroupMixinClass structure within the class structure</doc>
11891           <type name="long" c:type="glong"/>
11892         </parameter>
11893         <parameter name="add_func" transfer-ownership="none" scope="call">
11894           <doc xml:whitespace="preserve">A callback to be used to add contacts to this group</doc>
11895           <type name="GroupMixinAddMemberFunc" c:type="TpGroupMixinAddMemberFunc"/>
11896         </parameter>
11897         <parameter name="rem_func" transfer-ownership="none" scope="call">
11898           <doc xml:whitespace="preserve">A callback to be used to remove contacts from this group. This must be %NULL if you will subsequently call tp_group_mixin_class_set_remove_with_reason_func().</doc>
11899           <type name="GroupMixinRemMemberFunc" c:type="TpGroupMixinRemMemberFunc"/>
11900         </parameter>
11901       </parameters>
11902     </function>
11903     <function name="group_mixin_class_set_remove_with_reason_func" c:identifier="tp_group_mixin_class_set_remove_with_reason_func" version="0.5.13" introspectable="0">
11904       <doc xml:whitespace="preserve">Set a callback to be used to implement RemoveMembers() and
11905 RemoveMembersWithReason(). If this function is called during class
11906 initialization, the given callback will be used instead of the remove
11907 callback passed to tp_group_mixin_class_init() (which must be %NULL
11908 in this case).</doc>
11909       <return-value transfer-ownership="none">
11910         <type name="none" c:type="void"/>
11911       </return-value>
11912       <parameters>
11913         <parameter name="cls" transfer-ownership="none">
11914           <doc xml:whitespace="preserve">The class of an object implementing the group interface using this mixin</doc>
11915           <type name="GObject.ObjectClass" c:type="GObjectClass*"/>
11916         </parameter>
11917         <parameter name="func" transfer-ownership="none" scope="call">
11918           <doc xml:whitespace="preserve">A callback to be used to remove contacts from this group with a specified reason.</doc>
11919           <type name="GroupMixinRemMemberWithReasonFunc" c:type="TpGroupMixinRemMemberWithReasonFunc"/>
11920         </parameter>
11921       </parameters>
11922     </function>
11923     <function name="group_mixin_finalize" c:identifier="tp_group_mixin_finalize" introspectable="0">
11924       <doc xml:whitespace="preserve">Unreference handles and free resources used by this mixin.</doc>
11925       <return-value transfer-ownership="none">
11926         <type name="none" c:type="void"/>
11927       </return-value>
11928       <parameters>
11929         <parameter name="obj" transfer-ownership="none">
11930           <doc xml:whitespace="preserve">An object implementing the group interface using this mixin</doc>
11931           <type name="GObject.Object" c:type="GObject*"/>
11932         </parameter>
11933       </parameters>
11934     </function>
11935     <function name="group_mixin_get_all_members" c:identifier="tp_group_mixin_get_all_members" introspectable="0" throws="1">
11936       <doc xml:whitespace="preserve">Get the group's current and pending members.</doc>
11937       <return-value transfer-ownership="none">
11938         <doc xml:whitespace="preserve">%TRUE</doc>
11939         <type name="boolean" c:type="gboolean"/>
11940       </return-value>
11941       <parameters>
11942         <parameter name="obj" transfer-ownership="none">
11943           <doc xml:whitespace="preserve">An object implementing the group interface using this mixin</doc>
11944           <type name="GObject.Object" c:type="GObject*"/>
11945         </parameter>
11946         <parameter name="members" transfer-ownership="none">
11947           <doc xml:whitespace="preserve">Used to return a newly-allocated GArray of guint representing the handles of the group's members</doc>
11948           <array name="GLib.Array" c:type="GArray**">
11949             <type name="any" c:type="gpointer"/>
11950           </array>
11951         </parameter>
11952         <parameter name="local_pending" transfer-ownership="none">
11953           <doc xml:whitespace="preserve">Used to return a newly-allocated GArray of guint representing the handles of the group's local pending members</doc>
11954           <array name="GLib.Array" c:type="GArray**">
11955             <type name="any" c:type="gpointer"/>
11956           </array>
11957         </parameter>
11958         <parameter name="remote_pending" transfer-ownership="none">
11959           <doc xml:whitespace="preserve">Used to return a newly-allocated GArray of guint representing the handles of the group's remote pending members</doc>
11960           <array name="GLib.Array" c:type="GArray**">
11961             <type name="any" c:type="gpointer"/>
11962           </array>
11963         </parameter>
11964       </parameters>
11965     </function>
11966     <function name="group_mixin_get_dbus_property" c:identifier="tp_group_mixin_get_dbus_property" version="0.7.10" introspectable="0">
11967       <doc xml:whitespace="preserve">An implementation of #TpDBusPropertiesMixinGetter which assumes that the</doc>
11968       <return-value transfer-ownership="none">
11969         <type name="none" c:type="void"/>
11970       </return-value>
11971       <parameters>
11972         <parameter name="object" transfer-ownership="none">
11973           <doc xml:whitespace="preserve">An object with this mixin</doc>
11974           <type name="GObject.Object" c:type="GObject*"/>
11975         </parameter>
11976         <parameter name="interface" transfer-ownership="none">
11977           <doc xml:whitespace="preserve">Must be %TP_IFACE_QUARK_CHANNEL_INTERFACE_GROUP</doc>
11978           <type name="GLib.Quark" c:type="GQuark"/>
11979         </parameter>
11980         <parameter name="name" transfer-ownership="none">
11981           <doc xml:whitespace="preserve">A quark representing the D-Bus property name, either "GroupFlags", "HandleOwners", "LocalPendingMembers", "Members", "RemotePendingMembers" or "SelfHandle"</doc>
11982           <type name="GLib.Quark" c:type="GQuark"/>
11983         </parameter>
11984         <parameter name="value" transfer-ownership="none">
11985           <doc xml:whitespace="preserve">A GValue pre-initialized to the right type, into which to put the value</doc>
11986           <type name="GObject.Value" c:type="GValue*"/>
11987         </parameter>
11988         <parameter name="unused" transfer-ownership="none">
11989           <doc xml:whitespace="preserve">Ignored</doc>
11990           <type name="any" c:type="gpointer"/>
11991         </parameter>
11992       </parameters>
11993     </function>
11994     <function name="group_mixin_get_group_flags" c:identifier="tp_group_mixin_get_group_flags" introspectable="0" throws="1">
11995       <doc xml:whitespace="preserve">Set the guint pointed to by ret to this group's flags, to be
11996 interpreted according to TpChannelGroupFlags.</doc>
11997       <return-value transfer-ownership="none">
11998         <doc xml:whitespace="preserve">%TRUE</doc>
11999         <type name="boolean" c:type="gboolean"/>
12000       </return-value>
12001       <parameters>
12002         <parameter name="obj" transfer-ownership="none">
12003           <doc xml:whitespace="preserve">An object implementing the group mixin using this interface</doc>
12004           <type name="GObject.Object" c:type="GObject*"/>
12005         </parameter>
12006         <parameter name="ret" direction="out" caller-allocates="0" transfer-ownership="full">
12007           <doc xml:whitespace="preserve">Used to return the flags</doc>
12008           <type name="uint" c:type="guint*"/>
12009         </parameter>
12010       </parameters>
12011     </function>
12012     <function name="group_mixin_get_handle_owners" c:identifier="tp_group_mixin_get_handle_owners" introspectable="0" throws="1">
12013       <doc xml:whitespace="preserve">If the mixin has the flag %TP_CHANNEL_GROUP_FLAG_CHANNEL_SPECIFIC_HANDLES,
12014 return the global owners of the given local handles, or 0 where
12015 unavailable.
12016 failure</doc>
12017       <return-value transfer-ownership="none">
12018         <doc xml:whitespace="preserve">%TRUE (setting @ret) on success, %FALSE (setting @error) on</doc>
12019         <type name="boolean" c:type="gboolean"/>
12020       </return-value>
12021       <parameters>
12022         <parameter name="obj" transfer-ownership="none">
12023           <doc xml:whitespace="preserve">An object implementing the group interface with this mixin</doc>
12024           <type name="GObject.Object" c:type="GObject*"/>
12025         </parameter>
12026         <parameter name="handles" transfer-ownership="none">
12027           <doc xml:whitespace="preserve">An array of guint representing locally valid handles</doc>
12028           <array name="GLib.Array" c:type="GArray*">
12029             <type name="any" c:type="gpointer"/>
12030           </array>
12031         </parameter>
12032         <parameter name="ret" transfer-ownership="none">
12033           <doc xml:whitespace="preserve">Used to return an array of guint representing globally valid handles, or 0 where unavailable, if %TRUE is returned</doc>
12034           <array name="GLib.Array" c:type="GArray**">
12035             <type name="any" c:type="gpointer"/>
12036           </array>
12037         </parameter>
12038       </parameters>
12039     </function>
12040     <function name="group_mixin_get_local_pending_members" c:identifier="tp_group_mixin_get_local_pending_members" introspectable="0" throws="1">
12041       <doc xml:whitespace="preserve">Get the group's local-pending members.</doc>
12042       <return-value transfer-ownership="none">
12043         <doc xml:whitespace="preserve">%TRUE</doc>
12044         <type name="boolean" c:type="gboolean"/>
12045       </return-value>
12046       <parameters>
12047         <parameter name="obj" transfer-ownership="none">
12048           <doc xml:whitespace="preserve">An object implementing the group interface using this mixin</doc>
12049           <type name="GObject.Object" c:type="GObject*"/>
12050         </parameter>
12051         <parameter name="ret" transfer-ownership="none">
12052           <doc xml:whitespace="preserve">Used to return a newly-allocated GArray of guint contact handles</doc>
12053           <array name="GLib.Array" c:type="GArray**">
12054             <type name="any" c:type="gpointer"/>
12055           </array>
12056         </parameter>
12057       </parameters>
12058     </function>
12059     <function name="group_mixin_get_local_pending_members_with_info" c:identifier="tp_group_mixin_get_local_pending_members_with_info" introspectable="0" throws="1">
12060       <doc xml:whitespace="preserve">Get the group's local-pending members and information about their
12061 requests to join the channel.</doc>
12062       <return-value transfer-ownership="none">
12063         <doc xml:whitespace="preserve">%TRUE</doc>
12064         <type name="boolean" c:type="gboolean"/>
12065       </return-value>
12066       <parameters>
12067         <parameter name="obj" transfer-ownership="none">
12068           <doc xml:whitespace="preserve">An object implementing the group interface using this mixin</doc>
12069           <type name="GObject.Object" c:type="GObject*"/>
12070         </parameter>
12071         <parameter name="ret" transfer-ownership="none">
12072           <doc xml:whitespace="preserve">Used to return a newly-allocated GPtrArray of D-Bus structures each containing the handle of a local-pending contact, the handle of a contact responsible for adding them to the group (or 0), the reason code and a related message (e.g. their request to join the group)</doc>
12073           <array name="GLib.PtrArray" c:type="GPtrArray**">
12074             <type name="any" c:type="gpointer"/>
12075           </array>
12076         </parameter>
12077       </parameters>
12078     </function>
12079     <function name="group_mixin_get_members" c:identifier="tp_group_mixin_get_members" introspectable="0" throws="1">
12080       <doc xml:whitespace="preserve">Get the group's current members</doc>
12081       <return-value transfer-ownership="none">
12082         <doc xml:whitespace="preserve">%TRUE</doc>
12083         <type name="boolean" c:type="gboolean"/>
12084       </return-value>
12085       <parameters>
12086         <parameter name="obj" transfer-ownership="none">
12087           <doc xml:whitespace="preserve">An object implementing the group interface using this mixin</doc>
12088           <type name="GObject.Object" c:type="GObject*"/>
12089         </parameter>
12090         <parameter name="ret" transfer-ownership="none">
12091           <doc xml:whitespace="preserve">Used to return a newly-allocated GArray of guint contact handles</doc>
12092           <array name="GLib.Array" c:type="GArray**">
12093             <type name="any" c:type="gpointer"/>
12094           </array>
12095         </parameter>
12096       </parameters>
12097     </function>
12098     <function name="group_mixin_get_offset_quark" c:identifier="tp_group_mixin_get_offset_quark" introspectable="0">
12099       <doc xml:whitespace="preserve">&lt;!--Returns: says it all--&gt;</doc>
12100       <return-value transfer-ownership="full">
12101         <doc xml:whitespace="preserve">the quark used for storing mixin offset on a GObject</doc>
12102         <type name="GLib.Quark" c:type="GQuark"/>
12103       </return-value>
12104     </function>
12105     <function name="group_mixin_get_remote_pending_members" c:identifier="tp_group_mixin_get_remote_pending_members" introspectable="0" throws="1">
12106       <doc xml:whitespace="preserve">Get the group's remote-pending members.</doc>
12107       <return-value transfer-ownership="none">
12108         <doc xml:whitespace="preserve">%TRUE</doc>
12109         <type name="boolean" c:type="gboolean"/>
12110       </return-value>
12111       <parameters>
12112         <parameter name="obj" transfer-ownership="none">
12113           <doc xml:whitespace="preserve">An object implementing the group interface using this mixin</doc>
12114           <type name="GObject.Object" c:type="GObject*"/>
12115         </parameter>
12116         <parameter name="ret" transfer-ownership="none">
12117           <doc xml:whitespace="preserve">Used to return a newly-allocated GArray of guint representing the handles of the group's remote pending members</doc>
12118           <array name="GLib.Array" c:type="GArray**">
12119             <type name="any" c:type="gpointer"/>
12120           </array>
12121         </parameter>
12122       </parameters>
12123     </function>
12124     <function name="group_mixin_get_self_handle" c:identifier="tp_group_mixin_get_self_handle" introspectable="0" throws="1">
12125       <doc xml:whitespace="preserve">Set the guint pointed to by ret to the local user's handle in this
12126 group, or to 0 if the local user is not present in this group.</doc>
12127       <return-value transfer-ownership="none">
12128         <doc xml:whitespace="preserve">%TRUE.</doc>
12129         <type name="boolean" c:type="gboolean"/>
12130       </return-value>
12131       <parameters>
12132         <parameter name="obj" transfer-ownership="none">
12133           <doc xml:whitespace="preserve">An object implementing the group mixin using this interface</doc>
12134           <type name="GObject.Object" c:type="GObject*"/>
12135         </parameter>
12136         <parameter name="ret" direction="out" caller-allocates="0" transfer-ownership="full">
12137           <doc xml:whitespace="preserve">Used to return the local user's handle in this group</doc>
12138           <type name="uint" c:type="guint*"/>
12139         </parameter>
12140       </parameters>
12141     </function>
12142     <function name="group_mixin_iface_init" c:identifier="tp_group_mixin_iface_init" introspectable="0">
12143       <doc xml:whitespace="preserve">Fill in the vtable entries needed to implement the group interface using
12144 this mixin. This function should usually be called via
12145 G_IMPLEMENT_INTERFACE.</doc>
12146       <return-value transfer-ownership="none">
12147         <type name="none" c:type="void"/>
12148       </return-value>
12149       <parameters>
12150         <parameter name="g_iface" transfer-ownership="none">
12151           <doc xml:whitespace="preserve">A #TpSvcChannelInterfaceGroupClass</doc>
12152           <type name="any" c:type="gpointer"/>
12153         </parameter>
12154         <parameter name="iface_data" transfer-ownership="none">
12155           <doc xml:whitespace="preserve">Unused</doc>
12156           <type name="any" c:type="gpointer"/>
12157         </parameter>
12158       </parameters>
12159     </function>
12160     <function name="group_mixin_init" c:identifier="tp_group_mixin_init" introspectable="0">
12161       <doc xml:whitespace="preserve">Initialize the mixin.</doc>
12162       <return-value transfer-ownership="none">
12163         <type name="none" c:type="void"/>
12164       </return-value>
12165       <parameters>
12166         <parameter name="obj" transfer-ownership="none">
12167           <doc xml:whitespace="preserve">An object implementing the group interface using this mixin</doc>
12168           <type name="GObject.Object" c:type="GObject*"/>
12169         </parameter>
12170         <parameter name="offset" transfer-ownership="none">
12171           <doc xml:whitespace="preserve">The offset of the TpGroupMixin structure within the instance structure</doc>
12172           <type name="long" c:type="glong"/>
12173         </parameter>
12174         <parameter name="handle_repo" transfer-ownership="none">
12175           <doc xml:whitespace="preserve">The connection's handle repository for contacts</doc>
12176           <type name="HandleRepoIface" c:type="TpHandleRepoIface*"/>
12177         </parameter>
12178         <parameter name="self_handle" transfer-ownership="none">
12179           <doc xml:whitespace="preserve">The handle of the local user in this group, if any</doc>
12180           <type name="Handle" c:type="TpHandle"/>
12181         </parameter>
12182       </parameters>
12183     </function>
12184     <function name="group_mixin_init_dbus_properties" c:identifier="tp_group_mixin_init_dbus_properties" version="0.7.10" introspectable="0">
12185       <doc xml:whitespace="preserve">Set up #TpDBusPropertiesMixinClass to use this mixin's implementation of
12186 the Group interface's properties.
12187 This uses tp_group_mixin_get_dbus_property() as the property getter and
12188 sets up a list of the supported properties for it.  Having called this, you
12189 should add #TP_CHANNEL_GROUP_FLAG_PROPERTIES to any channels of this class
12190 with tp_group_mixin_change_flags() to indicate that the DBus properties are
12191 available.</doc>
12192       <return-value transfer-ownership="none">
12193         <type name="none" c:type="void"/>
12194       </return-value>
12195       <parameters>
12196         <parameter name="cls" transfer-ownership="none">
12197           <doc xml:whitespace="preserve">The class of an object with this mixin</doc>
12198           <type name="GObject.ObjectClass" c:type="GObjectClass*"/>
12199         </parameter>
12200       </parameters>
12201     </function>
12202     <function name="group_mixin_remove_members" c:identifier="tp_group_mixin_remove_members" introspectable="0" throws="1">
12203       <doc xml:whitespace="preserve">Request that the given contacts be removed from the group as if in response
12204 to user action. If the group's flags prohibit this, raise
12205 PermissionDenied. If any of the handles is invalid, raise InvalidHandle.
12206 If any of the handles is absent from the group, raise NotAvailable.
12207 Otherwise attempt to remove the contacts by calling the callbacks provided
12208 by the channel implementation.</doc>
12209       <return-value transfer-ownership="none">
12210         <doc xml:whitespace="preserve">%TRUE on success</doc>
12211         <type name="boolean" c:type="gboolean"/>
12212       </return-value>
12213       <parameters>
12214         <parameter name="obj" transfer-ownership="none">
12215           <doc xml:whitespace="preserve">An object implementing the group interface using this mixin</doc>
12216           <type name="GObject.Object" c:type="GObject*"/>
12217         </parameter>
12218         <parameter name="contacts" transfer-ownership="none">
12219           <doc xml:whitespace="preserve">A GArray of guint representing contacts</doc>
12220           <array name="GLib.Array" c:type="GArray*">
12221             <type name="any" c:type="gpointer"/>
12222           </array>
12223         </parameter>
12224         <parameter name="message" transfer-ownership="none">
12225           <doc xml:whitespace="preserve">A message to be sent to those contacts, if supported</doc>
12226           <type name="utf8" c:type="gchar*"/>
12227         </parameter>
12228       </parameters>
12229     </function>
12230     <function name="group_mixin_remove_members_with_reason" c:identifier="tp_group_mixin_remove_members_with_reason" introspectable="0" throws="1">
12231       <doc xml:whitespace="preserve">Request that the given contacts be removed from the group as if in response
12232 to user action. If the group's flags prohibit this, raise
12233 PermissionDenied. If any of the handles is invalid, raise InvalidHandle.
12234 If any of the handles is absent from the group, raise NotAvailable.
12235 Otherwise attempt to remove the contacts by calling the callbacks provided
12236 by the channel implementation.</doc>
12237       <return-value transfer-ownership="none">
12238         <doc xml:whitespace="preserve">%TRUE on success</doc>
12239         <type name="boolean" c:type="gboolean"/>
12240       </return-value>
12241       <parameters>
12242         <parameter name="obj" transfer-ownership="none">
12243           <doc xml:whitespace="preserve">An object implementing the group interface using this mixin</doc>
12244           <type name="GObject.Object" c:type="GObject*"/>
12245         </parameter>
12246         <parameter name="contacts" transfer-ownership="none">
12247           <doc xml:whitespace="preserve">A GArray of guint representing contacts</doc>
12248           <array name="GLib.Array" c:type="GArray*">
12249             <type name="any" c:type="gpointer"/>
12250           </array>
12251         </parameter>
12252         <parameter name="message" transfer-ownership="none">
12253           <doc xml:whitespace="preserve">A message to be sent to those contacts, if supported</doc>
12254           <type name="utf8" c:type="gchar*"/>
12255         </parameter>
12256         <parameter name="reason" transfer-ownership="none">
12257           <doc xml:whitespace="preserve">A #TpChannelGroupChangeReason</doc>
12258           <type name="uint" c:type="guint"/>
12259         </parameter>
12260       </parameters>
12261     </function>
12262     <function name="handle_client_hold" c:identifier="tp_handle_client_hold" introspectable="0" throws="1">
12263       <doc xml:whitespace="preserve">Hold the given handle on behalf of the named client.
12264 If the client leaves the bus, the reference is automatically discarded.
12265 Handles held multiple times are the same as handles held
12266 if you call tp_handle_client_hold() multiple times, then call
12267 tp_handle_client_release() just once, the client no longer holds the handle.
12268 It is an error for @handle not to be present in the repository.</doc>
12269       <return-value transfer-ownership="none">
12270         <doc xml:whitespace="preserve">%TRUE if the client name is valid; else %FALSE with @error set.</doc>
12271         <type name="boolean" c:type="gboolean"/>
12272       </return-value>
12273       <parameters>
12274         <parameter name="self" transfer-ownership="none">
12275           <doc xml:whitespace="preserve">A handle repository implementation</doc>
12276           <type name="HandleRepoIface" c:type="TpHandleRepoIface*"/>
12277         </parameter>
12278         <parameter name="client" transfer-ownership="none">
12279           <doc xml:whitespace="preserve">The unique bus name of a D-Bus peer</doc>
12280           <type name="utf8" c:type="gchar*"/>
12281         </parameter>
12282         <parameter name="handle" transfer-ownership="none">
12283           <doc xml:whitespace="preserve">A handle of the type stored in the repository</doc>
12284           <type name="Handle" c:type="TpHandle"/>
12285         </parameter>
12286       </parameters>
12287     </function>
12288     <function name="handle_client_release" c:identifier="tp_handle_client_release" introspectable="0" throws="1">
12289       <doc xml:whitespace="preserve">If the named client holds the given handle, release it.
12290 If this causes the reference count to become zero, delete the handle.
12291 For repository implementations which never free handles (like
12292 #TpStaticHandleRepo) this has no effect.
12293 a reference to the handle, else %FALSE.</doc>
12294       <return-value transfer-ownership="none">
12295         <doc xml:whitespace="preserve">%TRUE if the client name is valid and the client previously held</doc>
12296         <type name="boolean" c:type="gboolean"/>
12297       </return-value>
12298       <parameters>
12299         <parameter name="self" transfer-ownership="none">
12300           <doc xml:whitespace="preserve">A handle repository implementation</doc>
12301           <type name="HandleRepoIface" c:type="TpHandleRepoIface*"/>
12302         </parameter>
12303         <parameter name="client" transfer-ownership="none">
12304           <doc xml:whitespace="preserve">The unique bus name of a D-Bus peer</doc>
12305           <type name="utf8" c:type="gchar*"/>
12306         </parameter>
12307         <parameter name="handle" transfer-ownership="none">
12308           <doc xml:whitespace="preserve">A handle of the type stored in the repository</doc>
12309           <type name="Handle" c:type="TpHandle"/>
12310         </parameter>
12311       </parameters>
12312     </function>
12313     <function name="handle_ensure" c:identifier="tp_handle_ensure" throws="1">
12314       <doc xml:whitespace="preserve">Return a new reference to the handle for the given string. The handle
12315 is normalized, if possible. If no such handle exists it will be created.
12316 is invalid.</doc>
12317       <return-value transfer-ownership="full">
12318         <doc xml:whitespace="preserve">the handle corresponding to the given string, or 0 if it</doc>
12319         <type name="Handle" c:type="TpHandle"/>
12320       </return-value>
12321       <parameters>
12322         <parameter name="self" transfer-ownership="none">
12323           <doc xml:whitespace="preserve">A handle repository implementation</doc>
12324           <type name="HandleRepoIface" c:type="TpHandleRepoIface*"/>
12325         </parameter>
12326         <parameter name="id" transfer-ownership="none">
12327           <doc xml:whitespace="preserve">A string whose handle is required</doc>
12328           <type name="utf8" c:type="gchar*"/>
12329         </parameter>
12330         <parameter name="context" transfer-ownership="none">
12331           <doc xml:whitespace="preserve">User data to be passed to the normalization callback</doc>
12332           <type name="any" c:type="gpointer"/>
12333         </parameter>
12334       </parameters>
12335     </function>
12336     <function name="handle_get_qdata" c:identifier="tp_handle_get_qdata" introspectable="0">
12337       <doc xml:whitespace="preserve">&lt;!--Returns: says it all--&gt;
12338 if there is no associated data.</doc>
12339       <return-value transfer-ownership="none">
12340         <doc xml:whitespace="preserve">the data associated with a given key on a given handle; %NULL</doc>
12341         <type name="any" c:type="gpointer"/>
12342       </return-value>
12343       <parameters>
12344         <parameter name="repo" transfer-ownership="none">
12345           <doc xml:whitespace="preserve">A handle repository implementation</doc>
12346           <type name="HandleRepoIface" c:type="TpHandleRepoIface*"/>
12347         </parameter>
12348         <parameter name="handle" transfer-ownership="none">
12349           <doc xml:whitespace="preserve">A handle to get data from</doc>
12350           <type name="Handle" c:type="TpHandle"/>
12351         </parameter>
12352         <parameter name="key_id" transfer-ownership="none">
12353           <doc xml:whitespace="preserve">Key id of data to fetch</doc>
12354           <type name="GLib.Quark" c:type="GQuark"/>
12355         </parameter>
12356       </parameters>
12357     </function>
12358     <function name="handle_inspect" c:identifier="tp_handle_inspect" introspectable="0">
12359       <doc xml:whitespace="preserve">&lt;!--Returns: says it all--&gt;
12360 handle is absent from the repository. The string is owned by the
12361 handle repository and will remain valid as long as a reference to
12362 the handle exists.</doc>
12363       <return-value transfer-ownership="none">
12364         <doc xml:whitespace="preserve">the string represented by the given handle, or NULL if the</doc>
12365         <type name="utf8" c:type="char*"/>
12366       </return-value>
12367       <parameters>
12368         <parameter name="self" transfer-ownership="none">
12369           <doc xml:whitespace="preserve">A handle repository implementation</doc>
12370           <type name="HandleRepoIface" c:type="TpHandleRepoIface*"/>
12371         </parameter>
12372         <parameter name="handle" transfer-ownership="none">
12373           <doc xml:whitespace="preserve">A handle of the type stored in the repository</doc>
12374           <type name="Handle" c:type="TpHandle"/>
12375         </parameter>
12376       </parameters>
12377     </function>
12378     <function name="handle_is_valid" c:identifier="tp_handle_is_valid" introspectable="0" throws="1">
12379       <doc xml:whitespace="preserve">&lt;!--Returns: says it all--&gt;
12380 else %FALSE</doc>
12381       <return-value transfer-ownership="none">
12382         <doc xml:whitespace="preserve">%TRUE if the handle is nonzero and is present in the repository,</doc>
12383         <type name="boolean" c:type="gboolean"/>
12384       </return-value>
12385       <parameters>
12386         <parameter name="self" transfer-ownership="none">
12387           <doc xml:whitespace="preserve">A handle repository implementation</doc>
12388           <type name="HandleRepoIface" c:type="TpHandleRepoIface*"/>
12389         </parameter>
12390         <parameter name="handle" transfer-ownership="none">
12391           <doc xml:whitespace="preserve">A handle of the type stored in the repository @self</doc>
12392           <type name="Handle" c:type="TpHandle"/>
12393         </parameter>
12394       </parameters>
12395     </function>
12396     <function name="handle_lookup" c:identifier="tp_handle_lookup" introspectable="0" throws="1">
12397       <doc xml:whitespace="preserve">Return the handle for the given string, without incrementing its
12398 reference count. The handle is normalized if possible.
12399 does not exist or is invalid</doc>
12400       <return-value transfer-ownership="full">
12401         <doc xml:whitespace="preserve">the handle corresponding to the given string, or 0 if it</doc>
12402         <type name="Handle" c:type="TpHandle"/>
12403       </return-value>
12404       <parameters>
12405         <parameter name="self" transfer-ownership="none">
12406           <doc xml:whitespace="preserve">A handle repository implementation</doc>
12407           <type name="HandleRepoIface" c:type="TpHandleRepoIface*"/>
12408         </parameter>
12409         <parameter name="id" transfer-ownership="none">
12410           <doc xml:whitespace="preserve">A string whose handle is required</doc>
12411           <type name="utf8" c:type="gchar*"/>
12412         </parameter>
12413         <parameter name="context" transfer-ownership="none">
12414           <doc xml:whitespace="preserve">User data to be passed to the normalization callback</doc>
12415           <type name="any" c:type="gpointer"/>
12416         </parameter>
12417       </parameters>
12418     </function>
12419     <function name="handle_ref" c:identifier="tp_handle_ref" introspectable="0">
12420       <doc xml:whitespace="preserve">Increase the reference count of the given handle, which must be present
12421 in the repository. For repository implementations which never free handles
12422 (like #TpStaticHandleRepo) this has no effect.</doc>
12423       <return-value transfer-ownership="none">
12424         <type name="none" c:type="void"/>
12425       </return-value>
12426       <parameters>
12427         <parameter name="self" transfer-ownership="none">
12428           <doc xml:whitespace="preserve">A handle repository implementation</doc>
12429           <type name="HandleRepoIface" c:type="TpHandleRepoIface*"/>
12430         </parameter>
12431         <parameter name="handle" transfer-ownership="none">
12432           <doc xml:whitespace="preserve">A handle of the type stored in the repository</doc>
12433           <type name="Handle" c:type="TpHandle"/>
12434         </parameter>
12435       </parameters>
12436     </function>
12437     <function name="handle_set_qdata" c:identifier="tp_handle_set_qdata" introspectable="0">
12438       <doc xml:whitespace="preserve">Associates a blob of data with a given handle and a given key
12439 If @destroy is set, then the data is freed when the handle is freed.</doc>
12440       <return-value transfer-ownership="none">
12441         <type name="none" c:type="void"/>
12442       </return-value>
12443       <parameters>
12444         <parameter name="repo" transfer-ownership="none">
12445           <doc xml:whitespace="preserve">A handle repository implementation</doc>
12446           <type name="HandleRepoIface" c:type="TpHandleRepoIface*"/>
12447         </parameter>
12448         <parameter name="handle" transfer-ownership="none">
12449           <doc xml:whitespace="preserve">A handle to set data on</doc>
12450           <type name="Handle" c:type="TpHandle"/>
12451         </parameter>
12452         <parameter name="key_id" transfer-ownership="none">
12453           <doc xml:whitespace="preserve">Key id to associate data with</doc>
12454           <type name="GLib.Quark" c:type="GQuark"/>
12455         </parameter>
12456         <parameter name="data" transfer-ownership="none">
12457           <doc xml:whitespace="preserve">data to associate with handle</doc>
12458           <type name="any" c:type="gpointer"/>
12459         </parameter>
12460         <parameter name="destroy" transfer-ownership="none" scope="call">
12461           <doc xml:whitespace="preserve">A #GDestroyNotify to call to destroy the data, or NULL if not needed.</doc>
12462           <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
12463         </parameter>
12464       </parameters>
12465     </function>
12466     <function name="handle_type_is_valid" c:identifier="tp_handle_type_is_valid" throws="1">
12467       <doc xml:whitespace="preserve">If the given handle type is valid, return %TRUE. If not, set @error
12468 and return %FALSE.</doc>
12469       <return-value transfer-ownership="none">
12470         <doc xml:whitespace="preserve">%TRUE if the handle type is valid.</doc>
12471         <type name="boolean" c:type="gboolean"/>
12472       </return-value>
12473       <parameters>
12474         <parameter name="type" transfer-ownership="none">
12475           <doc xml:whitespace="preserve">A handle type, valid or not, to be checked</doc>
12476           <type name="HandleType" c:type="TpHandleType"/>
12477         </parameter>
12478       </parameters>
12479     </function>
12480     <function name="handle_type_to_string" c:identifier="tp_handle_type_to_string">
12481       <doc xml:whitespace="preserve">&lt;!----&gt;
12482 For invalid handle types, returns "(no handle)" for 0 or
12483 "(invalid handle type)" for others.</doc>
12484       <return-value transfer-ownership="none">
12485         <doc xml:whitespace="preserve">a human-readable string describing the handle type, e.g. "contact".</doc>
12486         <type name="utf8" c:type="gchar*"/>
12487       </return-value>
12488       <parameters>
12489         <parameter name="type" transfer-ownership="none">
12490           <doc xml:whitespace="preserve">A handle type, which need not be valid</doc>
12491           <type name="HandleType" c:type="TpHandleType"/>
12492         </parameter>
12493       </parameters>
12494     </function>
12495     <function name="handle_unref" c:identifier="tp_handle_unref" introspectable="0">
12496       <doc xml:whitespace="preserve">Decrease the reference count of the given handle. If it reaches zero,
12497 delete the handle. It is an error to attempt to unref a handle
12498 which is not present in the repository.
12499 For repository implementations which never free handles (like
12500 #TpStaticHandleRepo) this has no effect.</doc>
12501       <return-value transfer-ownership="none">
12502         <type name="none" c:type="void"/>
12503       </return-value>
12504       <parameters>
12505         <parameter name="self" transfer-ownership="none">
12506           <doc xml:whitespace="preserve">A handle repository implementation</doc>
12507           <type name="HandleRepoIface" c:type="TpHandleRepoIface*"/>
12508         </parameter>
12509         <parameter name="handle" transfer-ownership="none">
12510           <doc xml:whitespace="preserve">A handle of the type stored in the repository</doc>
12511           <type name="Handle" c:type="TpHandle"/>
12512         </parameter>
12513       </parameters>
12514     </function>
12515     <function name="handles_are_valid" c:identifier="tp_handles_are_valid" introspectable="0" throws="1">
12516       <doc xml:whitespace="preserve">&lt;!--Returns: says it all--&gt;</doc>
12517       <return-value transfer-ownership="none">
12518         <doc xml:whitespace="preserve">%TRUE if the handle is present in the repository, else %FALSE</doc>
12519         <type name="boolean" c:type="gboolean"/>
12520       </return-value>
12521       <parameters>
12522         <parameter name="self" transfer-ownership="none">
12523           <doc xml:whitespace="preserve">A handle repository implementation</doc>
12524           <type name="HandleRepoIface" c:type="TpHandleRepoIface*"/>
12525         </parameter>
12526         <parameter name="handles" transfer-ownership="none">
12527           <doc xml:whitespace="preserve">Array of TpHandle representing handles of the type stored in the repository @self</doc>
12528           <array name="GLib.Array" c:type="GArray*">
12529             <type name="any" c:type="gpointer"/>
12530           </array>
12531         </parameter>
12532         <parameter name="allow_zero" transfer-ownership="none">
12533           <doc xml:whitespace="preserve">If %TRUE, zero is treated like a valid handle</doc>
12534           <type name="boolean" c:type="gboolean"/>
12535         </parameter>
12536       </parameters>
12537     </function>
12538     <function name="handles_client_hold" c:identifier="tp_handles_client_hold" introspectable="0" throws="1">
12539       <doc xml:whitespace="preserve">Hold the given handles on behalf of the named client.
12540 If the client leaves the bus, the reference is automatically discarded.
12541 If any of the handles are zero they will be ignored without error.
12542 It is an error for any other invalid handle to be in @handles:
12543 the caller is expected to have validated them first, e.g. using
12544 tp_handles_are_valid().
12545 Handles appearing multiple times are the same as handles appearing
12546 If %FALSE is returned, the reference counts of all handles are unaffected
12547 (the function either fails completely or succeeds completely).</doc>
12548       <return-value transfer-ownership="none">
12549         <doc xml:whitespace="preserve">%TRUE if the client name is valid; else %FALSE with @error set.</doc>
12550         <type name="boolean" c:type="gboolean"/>
12551       </return-value>
12552       <parameters>
12553         <parameter name="self" transfer-ownership="none">
12554           <doc xml:whitespace="preserve">A handle repository implementation</doc>
12555           <type name="HandleRepoIface" c:type="TpHandleRepoIface*"/>
12556         </parameter>
12557         <parameter name="client" transfer-ownership="none">
12558           <doc xml:whitespace="preserve">The D-Bus unique name of a client</doc>
12559           <type name="utf8" c:type="gchar*"/>
12560         </parameter>
12561         <parameter name="handles" transfer-ownership="none">
12562           <doc xml:whitespace="preserve">A GArray of TpHandle representing handles</doc>
12563           <array name="GLib.Array" c:type="GArray*">
12564             <type name="any" c:type="gpointer"/>
12565           </array>
12566         </parameter>
12567       </parameters>
12568     </function>
12569     <function name="handles_client_release" c:identifier="tp_handles_client_release" introspectable="0" throws="1">
12570       <doc xml:whitespace="preserve">Releases a reference to the given handles on behalf of the named client.
12571 If any of the handles are zero they will be ignored without error.
12572 It is an error for any other invalid handle to be in @handles:
12573 the caller is expected to have validated them first, e.g. using
12574 tp_handles_are_valid().
12575 If %FALSE is returned, the reference counts of all handles are unaffected
12576 (the function either fails completely or succeeds completely).
12577 a reference to all the handles, else %FALSE.</doc>
12578       <return-value transfer-ownership="none">
12579         <doc xml:whitespace="preserve">%TRUE if the client name is valid and the client previously held</doc>
12580         <type name="boolean" c:type="gboolean"/>
12581       </return-value>
12582       <parameters>
12583         <parameter name="self" transfer-ownership="none">
12584           <doc xml:whitespace="preserve">A handle repository implementation</doc>
12585           <type name="HandleRepoIface" c:type="TpHandleRepoIface*"/>
12586         </parameter>
12587         <parameter name="client" transfer-ownership="none">
12588           <doc xml:whitespace="preserve">The D-Bus unique name of a client</doc>
12589           <type name="utf8" c:type="gchar*"/>
12590         </parameter>
12591         <parameter name="handles" transfer-ownership="none">
12592           <doc xml:whitespace="preserve">A GArray of TpHandle representing handles</doc>
12593           <array name="GLib.Array" c:type="GArray*">
12594             <type name="any" c:type="gpointer"/>
12595           </array>
12596         </parameter>
12597       </parameters>
12598     </function>
12599     <function name="handles_ref" c:identifier="tp_handles_ref" introspectable="0">
12600       <doc xml:whitespace="preserve">Increase the reference count of the given handles. If a handle appears
12601 multiple times in @handles it will be referenced that many times. If
12602 any zero entries appear in @handles they will be ignored without error;
12603 it is an error for any other invalid handle to appear in @handles.</doc>
12604       <return-value transfer-ownership="none">
12605         <type name="none" c:type="void"/>
12606       </return-value>
12607       <parameters>
12608         <parameter name="self" transfer-ownership="none">
12609           <doc xml:whitespace="preserve">A handle repository implementation</doc>
12610           <type name="HandleRepoIface" c:type="TpHandleRepoIface*"/>
12611         </parameter>
12612         <parameter name="handles" transfer-ownership="none">
12613           <doc xml:whitespace="preserve">A GArray of TpHandle representing handles</doc>
12614           <array name="GLib.Array" c:type="GArray*">
12615             <type name="any" c:type="gpointer"/>
12616           </array>
12617         </parameter>
12618       </parameters>
12619     </function>
12620     <function name="handles_supported_and_valid" c:identifier="tp_handles_supported_and_valid" introspectable="0" throws="1">
12621       <doc xml:whitespace="preserve">Return %TRUE if the given handle type is supported (i.e. repos[handle_type]
12622 is not %NULL) and the given handles are all valid in that repository.
12623 If not, set @error and return %FALSE.
12624 valid.</doc>
12625       <return-value transfer-ownership="none">
12626         <doc xml:whitespace="preserve">%TRUE if the handle type is supported and the handles are all</doc>
12627         <type name="boolean" c:type="gboolean"/>
12628       </return-value>
12629       <parameters>
12630         <parameter name="repos" transfer-ownership="none">
12631           <doc xml:whitespace="preserve">An array of possibly null pointers to handle repositories, indexed by handle type, where a null pointer means an unsupported handle type</doc>
12632           <type name="HandleRepoIface" c:type="TpHandleRepoIface*"/>
12633         </parameter>
12634         <parameter name="handle_type" transfer-ownership="none">
12635           <doc xml:whitespace="preserve">The handle type</doc>
12636           <type name="HandleType" c:type="TpHandleType"/>
12637         </parameter>
12638         <parameter name="handles" transfer-ownership="none">
12639           <doc xml:whitespace="preserve">A GArray of guint representing handles of the given type</doc>
12640           <array name="GLib.Array" c:type="GArray*">
12641             <type name="any" c:type="gpointer"/>
12642           </array>
12643         </parameter>
12644         <parameter name="allow_zero" transfer-ownership="none">
12645           <doc xml:whitespace="preserve">If %TRUE, zero is treated like a valid handle</doc>
12646           <type name="boolean" c:type="gboolean"/>
12647         </parameter>
12648       </parameters>
12649     </function>
12650     <function name="handles_unref" c:identifier="tp_handles_unref" introspectable="0">
12651       <doc xml:whitespace="preserve">Decrease the reference count of the given handles. If a handle appears
12652 multiple times in @handles it will be dereferenced that many times. If
12653 any zero entries appear in @handles they will be ignored without error;
12654 it is an error for any other invalid handle to appear in @handles.</doc>
12655       <return-value transfer-ownership="none">
12656         <type name="none" c:type="void"/>
12657       </return-value>
12658       <parameters>
12659         <parameter name="self" transfer-ownership="none">
12660           <doc xml:whitespace="preserve">A handle repository implementation</doc>
12661           <type name="HandleRepoIface" c:type="TpHandleRepoIface*"/>
12662         </parameter>
12663         <parameter name="handles" transfer-ownership="none">
12664           <doc xml:whitespace="preserve">A GArray of TpHandle representing handles</doc>
12665           <array name="GLib.Array" c:type="GArray*">
12666             <type name="any" c:type="gpointer"/>
12667           </array>
12668         </parameter>
12669       </parameters>
12670     </function>
12671     <function name="iface_quark_account" c:identifier="tp_iface_quark_account">
12672       <return-value transfer-ownership="full">
12673         <type name="GLib.Quark" c:type="GQuark"/>
12674       </return-value>
12675     </function>
12676     <function name="iface_quark_account_interface_avatar" c:identifier="tp_iface_quark_account_interface_avatar">
12677       <return-value transfer-ownership="full">
12678         <type name="GLib.Quark" c:type="GQuark"/>
12679       </return-value>
12680     </function>
12681     <function name="iface_quark_account_interface_storage" c:identifier="tp_iface_quark_account_interface_storage">
12682       <return-value transfer-ownership="full">
12683         <type name="GLib.Quark" c:type="GQuark"/>
12684       </return-value>
12685     </function>
12686     <function name="iface_quark_account_manager" c:identifier="tp_iface_quark_account_manager">
12687       <return-value transfer-ownership="full">
12688         <type name="GLib.Quark" c:type="GQuark"/>
12689       </return-value>
12690     </function>
12691     <function name="iface_quark_channel" c:identifier="tp_iface_quark_channel">
12692       <return-value transfer-ownership="full">
12693         <type name="GLib.Quark" c:type="GQuark"/>
12694       </return-value>
12695     </function>
12696     <function name="iface_quark_channel_dispatch_operation" c:identifier="tp_iface_quark_channel_dispatch_operation">
12697       <return-value transfer-ownership="full">
12698         <type name="GLib.Quark" c:type="GQuark"/>
12699       </return-value>
12700     </function>
12701     <function name="iface_quark_channel_dispatcher" c:identifier="tp_iface_quark_channel_dispatcher">
12702       <return-value transfer-ownership="full">
12703         <type name="GLib.Quark" c:type="GQuark"/>
12704       </return-value>
12705     </function>
12706     <function name="iface_quark_channel_dispatcher_interface_operation_list" c:identifier="tp_iface_quark_channel_dispatcher_interface_operation_list">
12707       <return-value transfer-ownership="full">
12708         <type name="GLib.Quark" c:type="GQuark"/>
12709       </return-value>
12710     </function>
12711     <function name="iface_quark_channel_interface_anonymity" c:identifier="tp_iface_quark_channel_interface_anonymity">
12712       <return-value transfer-ownership="full">
12713         <type name="GLib.Quark" c:type="GQuark"/>
12714       </return-value>
12715     </function>
12716     <function name="iface_quark_channel_interface_call_state" c:identifier="tp_iface_quark_channel_interface_call_state">
12717       <return-value transfer-ownership="full">
12718         <type name="GLib.Quark" c:type="GQuark"/>
12719       </return-value>
12720     </function>
12721     <function name="iface_quark_channel_interface_chat_state" c:identifier="tp_iface_quark_channel_interface_chat_state">
12722       <return-value transfer-ownership="full">
12723         <type name="GLib.Quark" c:type="GQuark"/>
12724       </return-value>
12725     </function>
12726     <function name="iface_quark_channel_interface_destroyable" c:identifier="tp_iface_quark_channel_interface_destroyable">
12727       <return-value transfer-ownership="full">
12728         <type name="GLib.Quark" c:type="GQuark"/>
12729       </return-value>
12730     </function>
12731     <function name="iface_quark_channel_interface_dtmf" c:identifier="tp_iface_quark_channel_interface_dtmf">
12732       <return-value transfer-ownership="full">
12733         <type name="GLib.Quark" c:type="GQuark"/>
12734       </return-value>
12735     </function>
12736     <function name="iface_quark_channel_interface_group" c:identifier="tp_iface_quark_channel_interface_group">
12737       <return-value transfer-ownership="full">
12738         <type name="GLib.Quark" c:type="GQuark"/>
12739       </return-value>
12740     </function>
12741     <function name="iface_quark_channel_interface_hold" c:identifier="tp_iface_quark_channel_interface_hold">
12742       <return-value transfer-ownership="full">
12743         <type name="GLib.Quark" c:type="GQuark"/>
12744       </return-value>
12745     </function>
12746     <function name="iface_quark_channel_interface_media_signalling" c:identifier="tp_iface_quark_channel_interface_media_signalling">
12747       <return-value transfer-ownership="full">
12748         <type name="GLib.Quark" c:type="GQuark"/>
12749       </return-value>
12750     </function>
12751     <function name="iface_quark_channel_interface_messages" c:identifier="tp_iface_quark_channel_interface_messages">
12752       <return-value transfer-ownership="full">
12753         <type name="GLib.Quark" c:type="GQuark"/>
12754       </return-value>
12755     </function>
12756     <function name="iface_quark_channel_interface_password" c:identifier="tp_iface_quark_channel_interface_password">
12757       <return-value transfer-ownership="full">
12758         <type name="GLib.Quark" c:type="GQuark"/>
12759       </return-value>
12760     </function>
12761     <function name="iface_quark_channel_interface_service_point" c:identifier="tp_iface_quark_channel_interface_service_point">
12762       <return-value transfer-ownership="full">
12763         <type name="GLib.Quark" c:type="GQuark"/>
12764       </return-value>
12765     </function>
12766     <function name="iface_quark_channel_interface_tube" c:identifier="tp_iface_quark_channel_interface_tube">
12767       <return-value transfer-ownership="full">
12768         <type name="GLib.Quark" c:type="GQuark"/>
12769       </return-value>
12770     </function>
12771     <function name="iface_quark_channel_request" c:identifier="tp_iface_quark_channel_request">
12772       <return-value transfer-ownership="full">
12773         <type name="GLib.Quark" c:type="GQuark"/>
12774       </return-value>
12775     </function>
12776     <function name="iface_quark_channel_type_contact_list" c:identifier="tp_iface_quark_channel_type_contact_list">
12777       <return-value transfer-ownership="full">
12778         <type name="GLib.Quark" c:type="GQuark"/>
12779       </return-value>
12780     </function>
12781     <function name="iface_quark_channel_type_contact_search" c:identifier="tp_iface_quark_channel_type_contact_search">
12782       <return-value transfer-ownership="full">
12783         <type name="GLib.Quark" c:type="GQuark"/>
12784       </return-value>
12785     </function>
12786     <function name="iface_quark_channel_type_dbus_tube" c:identifier="tp_iface_quark_channel_type_dbus_tube">
12787       <return-value transfer-ownership="full">
12788         <type name="GLib.Quark" c:type="GQuark"/>
12789       </return-value>
12790     </function>
12791     <function name="iface_quark_channel_type_file_transfer" c:identifier="tp_iface_quark_channel_type_file_transfer">
12792       <return-value transfer-ownership="full">
12793         <type name="GLib.Quark" c:type="GQuark"/>
12794       </return-value>
12795     </function>
12796     <function name="iface_quark_channel_type_room_list" c:identifier="tp_iface_quark_channel_type_room_list">
12797       <return-value transfer-ownership="full">
12798         <type name="GLib.Quark" c:type="GQuark"/>
12799       </return-value>
12800     </function>
12801     <function name="iface_quark_channel_type_stream_tube" c:identifier="tp_iface_quark_channel_type_stream_tube">
12802       <return-value transfer-ownership="full">
12803         <type name="GLib.Quark" c:type="GQuark"/>
12804       </return-value>
12805     </function>
12806     <function name="iface_quark_channel_type_streamed_media" c:identifier="tp_iface_quark_channel_type_streamed_media">
12807       <return-value transfer-ownership="full">
12808         <type name="GLib.Quark" c:type="GQuark"/>
12809       </return-value>
12810     </function>
12811     <function name="iface_quark_channel_type_text" c:identifier="tp_iface_quark_channel_type_text">
12812       <return-value transfer-ownership="full">
12813         <type name="GLib.Quark" c:type="GQuark"/>
12814       </return-value>
12815     </function>
12816     <function name="iface_quark_channel_type_tubes" c:identifier="tp_iface_quark_channel_type_tubes">
12817       <return-value transfer-ownership="full">
12818         <type name="GLib.Quark" c:type="GQuark"/>
12819       </return-value>
12820     </function>
12821     <function name="iface_quark_client" c:identifier="tp_iface_quark_client">
12822       <return-value transfer-ownership="full">
12823         <type name="GLib.Quark" c:type="GQuark"/>
12824       </return-value>
12825     </function>
12826     <function name="iface_quark_client_approver" c:identifier="tp_iface_quark_client_approver">
12827       <return-value transfer-ownership="full">
12828         <type name="GLib.Quark" c:type="GQuark"/>
12829       </return-value>
12830     </function>
12831     <function name="iface_quark_client_handler" c:identifier="tp_iface_quark_client_handler">
12832       <return-value transfer-ownership="full">
12833         <type name="GLib.Quark" c:type="GQuark"/>
12834       </return-value>
12835     </function>
12836     <function name="iface_quark_client_interface_requests" c:identifier="tp_iface_quark_client_interface_requests">
12837       <return-value transfer-ownership="full">
12838         <type name="GLib.Quark" c:type="GQuark"/>
12839       </return-value>
12840     </function>
12841     <function name="iface_quark_client_observer" c:identifier="tp_iface_quark_client_observer">
12842       <return-value transfer-ownership="full">
12843         <type name="GLib.Quark" c:type="GQuark"/>
12844       </return-value>
12845     </function>
12846     <function name="iface_quark_connection" c:identifier="tp_iface_quark_connection">
12847       <return-value transfer-ownership="full">
12848         <type name="GLib.Quark" c:type="GQuark"/>
12849       </return-value>
12850     </function>
12851     <function name="iface_quark_connection_interface_aliasing" c:identifier="tp_iface_quark_connection_interface_aliasing">
12852       <return-value transfer-ownership="full">
12853         <type name="GLib.Quark" c:type="GQuark"/>
12854       </return-value>
12855     </function>
12856     <function name="iface_quark_connection_interface_anonymity" c:identifier="tp_iface_quark_connection_interface_anonymity">
12857       <return-value transfer-ownership="full">
12858         <type name="GLib.Quark" c:type="GQuark"/>
12859       </return-value>
12860     </function>
12861     <function name="iface_quark_connection_interface_avatars" c:identifier="tp_iface_quark_connection_interface_avatars">
12862       <return-value transfer-ownership="full">
12863         <type name="GLib.Quark" c:type="GQuark"/>
12864       </return-value>
12865     </function>
12866     <function name="iface_quark_connection_interface_balance" c:identifier="tp_iface_quark_connection_interface_balance">
12867       <return-value transfer-ownership="full">
12868         <type name="GLib.Quark" c:type="GQuark"/>
12869       </return-value>
12870     </function>
12871     <function name="iface_quark_connection_interface_capabilities" c:identifier="tp_iface_quark_connection_interface_capabilities">
12872       <return-value transfer-ownership="full">
12873         <type name="GLib.Quark" c:type="GQuark"/>
12874       </return-value>
12875     </function>
12876     <function name="iface_quark_connection_interface_cellular" c:identifier="tp_iface_quark_connection_interface_cellular">
12877       <return-value transfer-ownership="full">
12878         <type name="GLib.Quark" c:type="GQuark"/>
12879       </return-value>
12880     </function>
12881     <function name="iface_quark_connection_interface_contact_capabilities" c:identifier="tp_iface_quark_connection_interface_contact_capabilities">
12882       <return-value transfer-ownership="full">
12883         <type name="GLib.Quark" c:type="GQuark"/>
12884       </return-value>
12885     </function>
12886     <function name="iface_quark_connection_interface_contact_info" c:identifier="tp_iface_quark_connection_interface_contact_info">
12887       <return-value transfer-ownership="full">
12888         <type name="GLib.Quark" c:type="GQuark"/>
12889       </return-value>
12890     </function>
12891     <function name="iface_quark_connection_interface_contacts" c:identifier="tp_iface_quark_connection_interface_contacts">
12892       <return-value transfer-ownership="full">
12893         <type name="GLib.Quark" c:type="GQuark"/>
12894       </return-value>
12895     </function>
12896     <function name="iface_quark_connection_interface_location" c:identifier="tp_iface_quark_connection_interface_location">
12897       <return-value transfer-ownership="full">
12898         <type name="GLib.Quark" c:type="GQuark"/>
12899       </return-value>
12900     </function>
12901     <function name="iface_quark_connection_interface_presence" c:identifier="tp_iface_quark_connection_interface_presence">
12902       <return-value transfer-ownership="full">
12903         <type name="GLib.Quark" c:type="GQuark"/>
12904       </return-value>
12905     </function>
12906     <function name="iface_quark_connection_interface_requests" c:identifier="tp_iface_quark_connection_interface_requests">
12907       <return-value transfer-ownership="full">
12908         <type name="GLib.Quark" c:type="GQuark"/>
12909       </return-value>
12910     </function>
12911     <function name="iface_quark_connection_interface_service_point" c:identifier="tp_iface_quark_connection_interface_service_point">
12912       <return-value transfer-ownership="full">
12913         <type name="GLib.Quark" c:type="GQuark"/>
12914       </return-value>
12915     </function>
12916     <function name="iface_quark_connection_interface_simple_presence" c:identifier="tp_iface_quark_connection_interface_simple_presence">
12917       <return-value transfer-ownership="full">
12918         <type name="GLib.Quark" c:type="GQuark"/>
12919       </return-value>
12920     </function>
12921     <function name="iface_quark_connection_manager" c:identifier="tp_iface_quark_connection_manager">
12922       <return-value transfer-ownership="full">
12923         <type name="GLib.Quark" c:type="GQuark"/>
12924       </return-value>
12925     </function>
12926     <function name="iface_quark_dbus_daemon" c:identifier="tp_iface_quark_dbus_daemon">
12927       <return-value transfer-ownership="full">
12928         <type name="GLib.Quark" c:type="GQuark"/>
12929       </return-value>
12930     </function>
12931     <function name="iface_quark_dbus_introspectable" c:identifier="tp_iface_quark_dbus_introspectable">
12932       <return-value transfer-ownership="full">
12933         <type name="GLib.Quark" c:type="GQuark"/>
12934       </return-value>
12935     </function>
12936     <function name="iface_quark_dbus_peer" c:identifier="tp_iface_quark_dbus_peer">
12937       <return-value transfer-ownership="full">
12938         <type name="GLib.Quark" c:type="GQuark"/>
12939       </return-value>
12940     </function>
12941     <function name="iface_quark_dbus_properties" c:identifier="tp_iface_quark_dbus_properties">
12942       <return-value transfer-ownership="full">
12943         <type name="GLib.Quark" c:type="GQuark"/>
12944       </return-value>
12945     </function>
12946     <function name="iface_quark_debug" c:identifier="tp_iface_quark_debug">
12947       <return-value transfer-ownership="full">
12948         <type name="GLib.Quark" c:type="GQuark"/>
12949       </return-value>
12950     </function>
12951     <function name="iface_quark_media_session_handler" c:identifier="tp_iface_quark_media_session_handler">
12952       <return-value transfer-ownership="full">
12953         <type name="GLib.Quark" c:type="GQuark"/>
12954       </return-value>
12955     </function>
12956     <function name="iface_quark_media_stream_handler" c:identifier="tp_iface_quark_media_stream_handler">
12957       <return-value transfer-ownership="full">
12958         <type name="GLib.Quark" c:type="GQuark"/>
12959       </return-value>
12960     </function>
12961     <function name="iface_quark_properties_interface" c:identifier="tp_iface_quark_properties_interface">
12962       <return-value transfer-ownership="full">
12963         <type name="GLib.Quark" c:type="GQuark"/>
12964       </return-value>
12965     </function>
12966     <function name="iface_quark_protocol" c:identifier="tp_iface_quark_protocol">
12967       <return-value transfer-ownership="full">
12968         <type name="GLib.Quark" c:type="GQuark"/>
12969       </return-value>
12970     </function>
12971     <function name="intset_fast_iter_init" c:identifier="tp_intset_fast_iter_init" version="0.11.6">
12972       <doc xml:whitespace="preserve">Initialize @iter to iterate over @set in arbitrary order. @iter will become
12973 invalid if @set is modified.</doc>
12974       <return-value transfer-ownership="none">
12975         <type name="none" c:type="void"/>
12976       </return-value>
12977       <parameters>
12978         <parameter name="iter" transfer-ownership="none">
12979           <doc xml:whitespace="preserve">an iterator</doc>
12980           <type name="IntSetFastIter" c:type="TpIntSetFastIter*"/>
12981         </parameter>
12982         <parameter name="set" transfer-ownership="none">
12983           <doc xml:whitespace="preserve">a set</doc>
12984           <type name="IntSet" c:type="TpIntSet*"/>
12985         </parameter>
12986       </parameters>
12987     </function>
12988     <function name="intset_fast_iter_next" c:identifier="tp_intset_fast_iter_next" version="0.11.6">
12989       <doc xml:whitespace="preserve">Advances @iter and retrieves the integer it now points to. Iteration
12990 is not necessarily in numerical order.</doc>
12991       <return-value transfer-ownership="none">
12992         <doc xml:whitespace="preserve">%FALSE if the end of the set has been reached</doc>
12993         <type name="boolean" c:type="gboolean"/>
12994       </return-value>
12995       <parameters>
12996         <parameter name="iter" transfer-ownership="none">
12997           <doc xml:whitespace="preserve">an iterator</doc>
12998           <type name="IntSetFastIter" c:type="TpIntSetFastIter*"/>
12999         </parameter>
13000         <parameter name="output" direction="out" caller-allocates="0" transfer-ownership="full">
13001           <doc xml:whitespace="preserve">a location to store a new integer, in arbitrary order</doc>
13002           <type name="uint" c:type="guint*"/>
13003         </parameter>
13004       </parameters>
13005     </function>
13006     <function name="intset_from_array" c:identifier="tp_intset_from_array">
13007       <doc xml:whitespace="preserve">&lt;!--Returns: says it all--&gt;</doc>
13008       <return-value transfer-ownership="full">
13009         <doc xml:whitespace="preserve">A set containing the same integers as @array.</doc>
13010         <type name="IntSet" c:type="TpIntSet*"/>
13011       </return-value>
13012       <parameters>
13013         <parameter name="array" transfer-ownership="none">
13014           <doc xml:whitespace="preserve">An array of guint</doc>
13015           <array name="GLib.Array" c:type="GArray*">
13016             <type name="uint"/>
13017           </array>
13018         </parameter>
13019       </parameters>
13020     </function>
13021     <function name="intset_iter_next" c:identifier="tp_intset_iter_next">
13022       <doc xml:whitespace="preserve">If there are integers in (@iter-&gt;set) higher than (@iter-&gt;element), set
13023 (iter-&gt;element) to the next one and return %TRUE. Otherwise return %FALSE.
13024 Usage:
13025 &lt;informalexample&gt;&lt;programlisting&gt;
13026 TpIntSetIter iter = TP_INTSET_INIT (intset);
13027 while (tp_intset_iter_next (&amp;amp;iter))
13028 {
13029 printf ("%u is in the intset\n", iter.element);
13030 }
13031 &lt;/programlisting&gt;&lt;/informalexample&gt;
13032 Since 0.11.6, consider using #TpIntSetFastIter if iteration in
13033 numerical order is not required.</doc>
13034       <return-value transfer-ownership="none">
13035         <doc xml:whitespace="preserve">%TRUE if (@iter-&gt;element) has been advanced</doc>
13036         <type name="boolean" c:type="gboolean"/>
13037       </return-value>
13038       <parameters>
13039         <parameter name="iter" transfer-ownership="none">
13040           <doc xml:whitespace="preserve">An iterator originally initialized with TP_INTSET_INIT(set)</doc>
13041           <type name="IntSetIter" c:type="TpIntSetIter*"/>
13042         </parameter>
13043       </parameters>
13044     </function>
13045     <function name="intset_sized_new" c:identifier="tp_intset_sized_new">
13046       <doc xml:whitespace="preserve">Allocate a new integer set.</doc>
13047       <return-value transfer-ownership="full">
13048         <doc xml:whitespace="preserve">a new, empty integer set to be destroyed with tp_intset_destroy()</doc>
13049         <type name="IntSet" c:type="TpIntSet*"/>
13050       </return-value>
13051       <parameters>
13052         <parameter name="size" transfer-ownership="none">
13053           <doc xml:whitespace="preserve">ignored (it was previously 1 more than the largest integer you expect to store)</doc>
13054           <type name="uint" c:type="guint"/>
13055         </parameter>
13056       </parameters>
13057     </function>
13058     <function name="list_connection_managers" c:identifier="tp_list_connection_managers" version="0.7.1">
13059       <doc xml:whitespace="preserve">List the available (running or installed) connection managers. Call the
13060 callback when done.
13061 Since 0.7.26, this function will wait for each #TpConnectionManager
13062 to be ready, so all connection managers passed to @callback will be ready
13063 (tp_connection_manager_is_ready() will return %TRUE) unless an error
13064 occurred while launching that connection manager.</doc>
13065       <return-value transfer-ownership="none">
13066         <type name="none" c:type="void"/>
13067       </return-value>
13068       <parameters>
13069         <parameter name="bus_daemon" transfer-ownership="none">
13070           <doc xml:whitespace="preserve">proxy for the D-Bus daemon</doc>
13071           <type name="DBusDaemon" c:type="TpDBusDaemon*"/>
13072         </parameter>
13073         <parameter name="callback" transfer-ownership="none" scope="notified" closure="2" destroy="3">
13074           <doc xml:whitespace="preserve">callback to be called when listing the CMs succeeds or fails; not called if the @weak_object goes away</doc>
13075           <type name="ConnectionManagerListCb" c:type="TpConnectionManagerListCb"/>
13076         </parameter>
13077         <parameter name="user_data" transfer-ownership="none">
13078           <doc xml:whitespace="preserve">user-supplied data for the callback</doc>
13079           <type name="any" c:type="gpointer"/>
13080         </parameter>
13081         <parameter name="destroy" transfer-ownership="none" scope="call">
13082           <doc xml:whitespace="preserve">callback to destroy the user-supplied data, called after</doc>
13083           <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
13084         </parameter>
13085         <parameter name="weak_object" transfer-ownership="none" allow-none="1">
13086           <doc xml:whitespace="preserve">if not %NULL, will be weakly referenced; the callback will not be called, and the call will be cancelled, if the object has vanished</doc>
13087           <type name="GObject.Object" c:type="GObject*"/>
13088         </parameter>
13089       </parameters>
13090     </function>
13091     <function name="list_connection_names" c:identifier="tp_list_connection_names" version="0.7.1">
13092       <doc xml:whitespace="preserve">List the bus names of all the connections that currently exist, together
13093 with the connection manager name and the protocol name for each connection.
13094 Call the callback when done.
13095 The bus names passed to the callback can be used to construct #TpConnection
13096 objects for any connections that are of interest.</doc>
13097       <return-value transfer-ownership="none">
13098         <type name="none" c:type="void"/>
13099       </return-value>
13100       <parameters>
13101         <parameter name="bus_daemon" transfer-ownership="none">
13102           <doc xml:whitespace="preserve">proxy for the D-Bus daemon</doc>
13103           <type name="DBusDaemon" c:type="TpDBusDaemon*"/>
13104         </parameter>
13105         <parameter name="callback" transfer-ownership="none" scope="notified" closure="2" destroy="3">
13106           <doc xml:whitespace="preserve">callback to be called when listing the connections succeeds or fails; not called if the D-Bus connection fails completely or if the</doc>
13107           <type name="ConnectionNameListCb" c:type="TpConnectionNameListCb"/>
13108         </parameter>
13109         <parameter name="user_data" transfer-ownership="none">
13110           <doc xml:whitespace="preserve">user-supplied data for the callback</doc>
13111           <type name="any" c:type="gpointer"/>
13112         </parameter>
13113         <parameter name="destroy" transfer-ownership="none" scope="call">
13114           <doc xml:whitespace="preserve">callback to destroy the user-supplied data, called after goes away</doc>
13115           <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
13116         </parameter>
13117         <parameter name="weak_object" transfer-ownership="none" allow-none="1">
13118           <doc xml:whitespace="preserve">if not %NULL, will be weakly referenced; the callback will not be called if the object has vanished</doc>
13119           <type name="GObject.Object" c:type="GObject*"/>
13120         </parameter>
13121       </parameters>
13122     </function>
13123     <function name="presence_mixin_class_get_offset_quark" c:identifier="tp_presence_mixin_class_get_offset_quark" introspectable="0">
13124       <doc xml:whitespace="preserve">&lt;!--no documentation beyond Returns: needed--&gt;</doc>
13125       <return-value transfer-ownership="full">
13126         <doc xml:whitespace="preserve">the quark used for storing mixin offset on a GObjectClass</doc>
13127         <type name="GLib.Quark" c:type="GQuark"/>
13128       </return-value>
13129     </function>
13130     <function name="presence_mixin_class_init" c:identifier="tp_presence_mixin_class_init" introspectable="0">
13131       <doc xml:whitespace="preserve">Initialize the presence mixin. Should be called from the implementation's
13132 class_init function like so:
13133 &lt;informalexample&gt;&lt;programlisting&gt;
13134 tp_presence_mixin_class_init ((GObjectClass *) klass,
13135 G_STRUCT_OFFSET (SomeObjectClass,
13136 presence_mixin));
13137 &lt;/programlisting&gt;&lt;/informalexample&gt;</doc>
13138       <return-value transfer-ownership="none">
13139         <type name="none" c:type="void"/>
13140       </return-value>
13141       <parameters>
13142         <parameter name="obj_cls" transfer-ownership="none">
13143           <doc xml:whitespace="preserve">The class of the implementation that uses this mixin</doc>
13144           <type name="GObject.ObjectClass" c:type="GObjectClass*"/>
13145         </parameter>
13146         <parameter name="offset" transfer-ownership="none">
13147           <doc xml:whitespace="preserve">The byte offset of the TpPresenceMixinClass within the class structure</doc>
13148           <type name="long" c:type="glong"/>
13149         </parameter>
13150         <parameter name="status_available" transfer-ownership="none" scope="call">
13151           <doc xml:whitespace="preserve">A callback to be used to determine if a given presence status is available to be set on the connection. If NULL, all statuses are always considered available. If SimplePresence is implemented, this callback may be called before the connection is connected.</doc>
13152           <type name="PresenceMixinStatusAvailableFunc" c:type="TpPresenceMixinStatusAvailableFunc"/>
13153         </parameter>
13154         <parameter name="get_contact_statuses" transfer-ownership="none" scope="call">
13155           <doc xml:whitespace="preserve">A callback to be used get the current presence status for contacts. This is used in implementations of various D-Bus methods and hence must be provided.</doc>
13156           <type name="PresenceMixinGetContactStatusesFunc" c:type="TpPresenceMixinGetContactStatusesFunc"/>
13157         </parameter>
13158         <parameter name="set_own_status" transfer-ownership="none" scope="call">
13159           <doc xml:whitespace="preserve">A callback to be used to commit changes to the user's own presence status to the server. This is used in implementations of various D-Bus methods and hence must be provided.</doc>
13160           <type name="PresenceMixinSetOwnStatusFunc" c:type="TpPresenceMixinSetOwnStatusFunc"/>
13161         </parameter>
13162         <parameter name="statuses" transfer-ownership="none">
13163           <doc xml:whitespace="preserve">An array of #TpPresenceStatusSpec structures representing all presence statuses supported by the protocol, terminated by a NULL name.</doc>
13164           <type name="PresenceStatusSpec" c:type="TpPresenceStatusSpec*"/>
13165         </parameter>
13166       </parameters>
13167     </function>
13168     <function name="presence_mixin_emit_one_presence_update" c:identifier="tp_presence_mixin_emit_one_presence_update" introspectable="0">
13169       <doc xml:whitespace="preserve">Emit the PresenceUpdate signal for a single contact. This method is just a
13170 convenience wrapper around #tp_presence_mixin_emit_presence_update.</doc>
13171       <return-value transfer-ownership="none">
13172         <type name="none" c:type="void"/>
13173       </return-value>
13174       <parameters>
13175         <parameter name="obj" transfer-ownership="none">
13176           <doc xml:whitespace="preserve">A connection object with this mixin</doc>
13177           <type name="GObject.Object" c:type="GObject*"/>
13178         </parameter>
13179         <parameter name="handle" transfer-ownership="none">
13180           <doc xml:whitespace="preserve">The handle of the contact to emit the signal for</doc>
13181           <type name="Handle" c:type="TpHandle"/>
13182         </parameter>
13183         <parameter name="status" transfer-ownership="none">
13184           <doc xml:whitespace="preserve">The new status to emit</doc>
13185           <type name="PresenceStatus" c:type="TpPresenceStatus*"/>
13186         </parameter>
13187       </parameters>
13188     </function>
13189     <function name="presence_mixin_emit_presence_update" c:identifier="tp_presence_mixin_emit_presence_update" introspectable="0">
13190       <doc xml:whitespace="preserve">Emit the PresenceUpdate signal for multiple contacts. For emitting
13191 PresenceUpdate for a single contact, there is a convenience wrapper called
13192 #tp_presence_mixin_emit_one_presence_update.</doc>
13193       <return-value transfer-ownership="none">
13194         <type name="none" c:type="void"/>
13195       </return-value>
13196       <parameters>
13197         <parameter name="obj" transfer-ownership="none">
13198           <doc xml:whitespace="preserve">A connection object with this mixin</doc>
13199           <type name="GObject.Object" c:type="GObject*"/>
13200         </parameter>
13201         <parameter name="contact_presences" transfer-ownership="none">
13202           <doc xml:whitespace="preserve">A mapping of contact handles to #TpPresenceStatus structures with the presence data to emit</doc>
13203           <type name="GLib.HashTable" c:type="GHashTable*"/>
13204         </parameter>
13205       </parameters>
13206     </function>
13207     <function name="presence_mixin_finalize" c:identifier="tp_presence_mixin_finalize" introspectable="0">
13208       <doc xml:whitespace="preserve">Free resources held by the presence mixin.</doc>
13209       <return-value transfer-ownership="none">
13210         <type name="none" c:type="void"/>
13211       </return-value>
13212       <parameters>
13213         <parameter name="obj" transfer-ownership="none">
13214           <doc xml:whitespace="preserve">An object with this mixin.</doc>
13215           <type name="GObject.Object" c:type="GObject*"/>
13216         </parameter>
13217       </parameters>
13218     </function>
13219     <function name="presence_mixin_get_offset_quark" c:identifier="tp_presence_mixin_get_offset_quark" introspectable="0">
13220       <doc xml:whitespace="preserve">&lt;!--no documentation beyond Returns: needed--&gt;</doc>
13221       <return-value transfer-ownership="full">
13222         <doc xml:whitespace="preserve">the quark used for storing mixin offset on a GObject</doc>
13223         <type name="GLib.Quark" c:type="GQuark"/>
13224       </return-value>
13225     </function>
13226     <function name="presence_mixin_iface_init" c:identifier="tp_presence_mixin_iface_init" introspectable="0">
13227       <doc xml:whitespace="preserve">Fill in the vtable entries needed to implement the presence interface using
13228 this mixin. This function should usually be called via G_IMPLEMENT_INTERFACE.</doc>
13229       <return-value transfer-ownership="none">
13230         <type name="none" c:type="void"/>
13231       </return-value>
13232       <parameters>
13233         <parameter name="g_iface" transfer-ownership="none">
13234           <doc xml:whitespace="preserve">A pointer to the #TpSvcConnectionInterfacePresenceClass in an object class</doc>
13235           <type name="any" c:type="gpointer"/>
13236         </parameter>
13237         <parameter name="iface_data" transfer-ownership="none">
13238           <doc xml:whitespace="preserve">Ignored</doc>
13239           <type name="any" c:type="gpointer"/>
13240         </parameter>
13241       </parameters>
13242     </function>
13243     <function name="presence_mixin_init" c:identifier="tp_presence_mixin_init" introspectable="0">
13244       <doc xml:whitespace="preserve">Initialize the presence mixin. Should be called from the implementation's
13245 instance init function like so:
13246 &lt;informalexample&gt;&lt;programlisting&gt;
13247 tp_presence_mixin_init ((GObject *) self,
13248 G_STRUCT_OFFSET (SomeObject, presence_mixin));
13249 &lt;/programlisting&gt;&lt;/informalexample&gt;</doc>
13250       <return-value transfer-ownership="none">
13251         <type name="none" c:type="void"/>
13252       </return-value>
13253       <parameters>
13254         <parameter name="obj" transfer-ownership="none">
13255           <doc xml:whitespace="preserve">An instance of the implementation that uses this mixin</doc>
13256           <type name="GObject.Object" c:type="GObject*"/>
13257         </parameter>
13258         <parameter name="offset" transfer-ownership="none">
13259           <doc xml:whitespace="preserve">The byte offset of the TpPresenceMixin within the object structure</doc>
13260           <type name="long" c:type="glong"/>
13261         </parameter>
13262       </parameters>
13263     </function>
13264     <function name="presence_mixin_simple_presence_iface_init" c:identifier="tp_presence_mixin_simple_presence_iface_init" version="0.7.13" introspectable="0">
13265       <doc xml:whitespace="preserve">Fill in the vtable entries needed to implement the simple presence interface
13266 using this mixin. This function should usually be called via
13267 G_IMPLEMENT_INTERFACE.</doc>
13268       <return-value transfer-ownership="none">
13269         <type name="none" c:type="void"/>
13270       </return-value>
13271       <parameters>
13272         <parameter name="g_iface" transfer-ownership="none">
13273           <doc xml:whitespace="preserve">A pointer to the #TpSvcConnectionInterfaceSimplePresenceClass in an object class</doc>
13274           <type name="any" c:type="gpointer"/>
13275         </parameter>
13276         <parameter name="iface_data" transfer-ownership="none">
13277           <doc xml:whitespace="preserve">Ignored</doc>
13278           <type name="any" c:type="gpointer"/>
13279         </parameter>
13280       </parameters>
13281     </function>
13282     <function name="presence_mixin_simple_presence_init_dbus_properties" c:identifier="tp_presence_mixin_simple_presence_init_dbus_properties" version="0.7.13" introspectable="0">
13283       <doc xml:whitespace="preserve">Set up #TpDBusPropertiesMixinClass to use this mixin's implementation of
13284 the SimplePresence interface's properties.
13285 This automatically sets up a list of the supported properties for the
13286 SimplePresence interface.</doc>
13287       <return-value transfer-ownership="none">
13288         <type name="none" c:type="void"/>
13289       </return-value>
13290       <parameters>
13291         <parameter name="cls" transfer-ownership="none">
13292           <doc xml:whitespace="preserve">The class of an object with this mixin</doc>
13293           <type name="GObject.ObjectClass" c:type="GObjectClass*"/>
13294         </parameter>
13295       </parameters>
13296     </function>
13297     <function name="presence_mixin_simple_presence_register_with_contacts_mixin" c:identifier="tp_presence_mixin_simple_presence_register_with_contacts_mixin" introspectable="0">
13298       <doc xml:whitespace="preserve">Register the SimplePresence interface with the Contacts interface to make it
13299 inspectable. The Contacts mixin should be initialized before this function
13300 is called</doc>
13301       <return-value transfer-ownership="none">
13302         <type name="none" c:type="void"/>
13303       </return-value>
13304       <parameters>
13305         <parameter name="obj" transfer-ownership="none">
13306           <doc xml:whitespace="preserve">An instance that of the implementation that uses both the Contacts mixin and this mixin</doc>
13307           <type name="GObject.Object" c:type="GObject*"/>
13308         </parameter>
13309       </parameters>
13310     </function>
13311     <function name="svc_interface_set_dbus_properties_info" c:identifier="tp_svc_interface_set_dbus_properties_info" version="0.7.3">
13312       <doc xml:whitespace="preserve">Declare that @g_interface implements the given D-Bus interface, with the
13313 given properties. This may only be called once per GInterface, usually from
13314 a section of its base_init function that only runs once.</doc>
13315       <return-value transfer-ownership="none">
13316         <type name="none" c:type="void"/>
13317       </return-value>
13318       <parameters>
13319         <parameter name="g_interface" transfer-ownership="none">
13320           <doc xml:whitespace="preserve">The #GType of a service interface</doc>
13321           <type name="GType" c:type="GType"/>
13322         </parameter>
13323         <parameter name="info" transfer-ownership="none">
13324           <doc xml:whitespace="preserve">an interface description</doc>
13325           <type name="DBusPropertiesMixinIfaceInfo" c:type="TpDBusPropertiesMixinIfaceInfo*"/>
13326         </parameter>
13327       </parameters>
13328     </function>
13329   </namespace>
13330 </repository>