Codebase list telepathy-glib / a0837bd
Imported Upstream version 0.15.9 Simon McVittie 12 years ago
309 changed file(s) with 15632 addition(s) and 7313 deletion(s). Raw diff Collapse all Expand all
0 commit 27d4ea43ae5f157724786217345b09d1740925d7
1 Author: Will Thompson <will.thompson@collabora.co.uk>
2 Date: 2011-10-12 10:32:27 +0100
3
4 Version 0.15.9
5
6 commit fd25b9eced97e819322c9eba8505646cb2258f65
7 Merge: c484008 8104691
8 Author: Will Thompson <will.thompson@collabora.co.uk>
9 Date: 2011-10-12 10:24:57 +0100
10
11 Merge remote-tracking branch 'origin/master'
12
13 commit c4840088b5d8a0586a3753f87e60c1a1cbd08bab
14 Author: Will Thompson <will.thompson@collabora.co.uk>
15 Date: 2011-10-12 10:21:48 +0100
16
17 bump nano version to 0.15.8.1
18
19 commit 8104691233d634225a8351e0feb8e42c6386c446
20 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
21 Date: 2011-10-11 17:38:11 -0400
22
23 _tp_contacts_from_values: skip NULL contacts
24
25 dup_owners_table() can insert NULL contacts into the hash (if the owner is
26 unknown) so we should just ignore those.
27
28 https://bugs.freedesktop.org/show_bug.cgi?id=41697
29
30 commit a4806385597c950cdb83f0c7729f210a760b4933
31 Author: Will Thompson <will.thompson@collabora.co.uk>
32 Date: 2011-10-11 19:31:16 +0100
33
34 Version 0.15.8
35
36 commit a850ddf3be9186ae738d4b75c8e5e67cb7f95f0d
37 Author: Will Thompson <will.thompson@collabora.co.uk>
38 Date: 2011-10-11 19:30:42 +0100
39
40 NEWS for 0.15.8
41
42 commit bdacfa26393e9c336638502e34aa8a19ec636fd3
43 Merge: 3caf6ba 36dc712
44 Author: Will Thompson <will.thompson@collabora.co.uk>
45 Date: 2011-10-11 19:04:46 +0100
46
47 Merge branch 'bye-bye-properties'
48
49 See <https://bugs.freedesktop.org/show_bug.cgi?id=32611>.
50
51 Reviewed-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
52
53 commit 36dc712062abb5e0cd932ceb17a419693f8e76f6
54 Author: Will Thompson <will.thompson@collabora.co.uk>
55 Date: 2011-09-15 18:32:03 +0100
56
57 BaseRoomConfig: document why we copy properties dict
58
59 commit 82d88fd54759609dff47ee9ec0f16a6a7e7204fa
60 Author: Will Thompson <will.thompson@collabora.co.uk>
61 Date: 2011-09-15 18:25:10 +0100
62
63 BaseRoomConfig: move the macros up a bit
64
65 commit bfe1679a98e5072d1119fe4ffbb3b447c857f1f1
66 Author: Will Thompson <will.thompson@collabora.co.uk>
67 Date: 2011-09-06 14:34:22 +0100
68
69 BaseRoomConfig: pass self to update_async
70
71 Previously, the update_async vfunc in TpBaseRoomConfigClass took a
72 pointer to a TpBaseChannel as its first argument. This is an artifact of
73 how this was initially hooked up in Gabble, and is pretty
74 unconventional, to say the least.
75
76 commit ad7b669829d3d74cd508e3ec017b5fa11ef9c088
77 Author: Will Thompson <will.thompson@collabora.co.uk>
78 Date: 2011-09-06 14:27:51 +0100
79
80 BaseRoomConfig: improve find_myself error checking
81
82 TpBaseRoomConfig stores a pointer to itself as qdata on its parent
83 channel. It did not previously NULL that pointer out when it was
84 disposed: it now does.
85
86 Correspondingly, I added an explicit check for NULL to find_myself().
87 While this is technically redundant with the TP_IS_BASE_ROOM_CONFIG()
88 check, I think it makes the error message clearer to distinguish between
89 the two.
90
91 commit 8f683e81f687b8f6dc4f943e57297ddfb8efc951
92 Author: Will Thompson <will.thompson@collabora.co.uk>
93 Date: 2011-09-06 14:22:51 +0100
94
95 Add tp_base_room_config_dup_channel()
96
97 This is handier than using the GObject property, and it transpires that
98 subclasses would like to use it.
99
100 It returns a ref rather than not because TpBaseRoomConfig only holds a
101 weak ref to the channel, so it would otherwise be quite easy for CM code
102 to accidentally try to use a dead pointer. (I fell into this trap while
103 working on Gabble.)
104
105 commit e480f13e2729539a8f99576a066b42a0c7adc46b
106 Author: Will Thompson <will.thompson@collabora.co.uk>
107 Date: 2011-09-06 09:11:27 +0100
108
109 Add TpBaseRoomConfig
110
111 This is a mixin-esque class (akin to TpBaseContactList) implementing the
112 RoomConfig interface on MUC channels.
113
114 This class was developed inside Gabble, and moved here when essentially
115 complete. Changes since the last time it appears in Gabble:
116
117 • Uses of wocky_enum_{to,from}_nick were replaced by
118 _tp_enum_{to,from}_nick;
119 • The description section of the documentation was written;
120 • Obviously, it was renamed.
121
122 commit 679f0afeb605c106dff18f49967ff15ff66a41ef
123 Author: Will Thompson <will.thompson@collabora.co.uk>
124 Date: 2011-09-06 09:10:49 +0100
125
126 Steal wocky_enum_{to,from}_nick
127
128 The RoomConfig mixin needs these.
129
130 commit 3caf6bafbb2e4efe3154ebe1e833096d11e8ffce
131 Merge: eaa0477 d805cc7
132 Author: Will Thompson <will.thompson@collabora.co.uk>
133 Date: 2011-10-11 18:14:23 +0100
134
135 Merge branch 'dbus-properties-mixin-stuff'
136
137 Reviewed-by: Xavier Claessens <xclaesse@gmail.com>
138
139 commit d805cc7eb60597df6e819bdc7d251b5ad24ffb1a
140 Author: Will Thompson <will.thompson@collabora.co.uk>
141 Date: 2011-08-30 18:10:59 +0100
142
143 Expose tp_dbus_properties_mixin_set()
144
145 This allows the application to set a property as if in response to a
146 D-Bus call. This turned out to not actually be needed for this branch,
147 but it is needed if we want MC to use TpDBusPropertiesMixin. (See also,
148 fd.o#32416.)
149
150 commit eaa0477a43617b2f9c4585a81c2b6bbbf7eefcc4
151 Merge: 468c19f 87e6f63
152 Author: Will Thompson <will.thompson@collabora.co.uk>
153 Date: 2011-10-11 17:45:12 +0100
154
155 Merge branch 'spec-0.24'
156
157 Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=41658
158 Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
159
160 commit c176abf6162264ced42c630491f48ca8f4a337f4
161 Author: Will Thompson <will.thompson@collabora.co.uk>
162 Date: 2011-08-30 15:46:57 +0100
163
164 Expose tp_svc_interface_get_dbus_properties_info
165
166 I find myself wanting this while writing RoomConfig support. Admittedly
167 once that code is in tp-glib it won't strictly need to be exported, but
168 I think it's harmless enough.
169
170 commit 4f70e8891881d1ee8c612df34a73bd34829d725d
171 Author: Will Thompson <will.thompson@collabora.co.uk>
172 Date: 2011-08-30 15:28:58 +0100
173
174 DBusProperties: document set_dbus_prop_info as niche
175
176 Almost no-one ever needs to call this.
177
178 commit 87e6f6379f8007f8f9acbc2795f3cf8f0aa1d8c4
179 Author: Will Thompson <will.thompson@collabora.co.uk>
180 Date: 2011-10-10 17:58:11 +0100
181
182 Generate code for Room, RoomConfig and Subject
183
184 commit e0a7a0722c688aa30b120499d84b3feec1e78479
185 Author: Will Thompson <will.thompson@collabora.co.uk>
186 Date: 2011-10-10 17:26:27 +0100
187
188 codegen: add a whitelist of tp_cli_*_run_* methods
189
190 We have to generate a bunch of (deprecated) tp_cli_*_run_* methods, for
191 backwards-compatibility. But there's no reason to add any *more* every
192 time we define a new channel interface.
193
194 So here, we generate a list of methods we need to generate for backwards
195 compatibility (based on their being listed in the documentation), and
196 modify the code generator to refuse to generate any _run_ method not
197 named in that file.
198
199 commit 43a87ab723d8c21880c18bfd084a5c03e90ad89f
200 Author: Will Thompson <will.thompson@collabora.co.uk>
201 Date: 2011-10-10 15:10:59 +0100
202
203 Update to telepathy-spec 0.24.0
204
205 This also includes the updates to the Call-based example code omitted
206 from fa81060.
207
208 commit 468c19fb3ee29da725d9ed9acd07325ad2b329f4
209 Author: Will Thompson <will.thompson@collabora.co.uk>
210 Date: 2011-10-10 13:25:52 +0100
211
212 channel-contacts: guard against no-op updates
213
214 process_contacts_queue() can already cope with ContactsQueueItems in the
215 queue which do not actually have any contacts to prepare. As a comment
216 in the function describes, we still go through the motions of enqueuing
217 a preparation/upgrade operation to avoid reordering events.
218
219 However, previously the function assumed that if any of the three arrays
220 (of contact objects, ids, or handles) were non-NULL, then they would be
221 non-empty. This assumption is false, as
222 <https://bugs.freedesktop.org/show_bug.cgi?id=41470> illustrates.
223 The concrete example in that bug is an emission of MembersChanged, with
224 all arrays except Removed empty, and Actor set to 0. We don't bother
225 preparing contacts which are removed; so
226 _tp_channel_contacts_queue_prepare_async() is called with an empty array
227 of contacts. There are a few other signals which can lead to this
228 situation.
229
230 So this patch makes process_contacts_queue() do the right thing if the
231 arrays are present but empty. (Previously all three paths would assert
232 in this situation.)
233
234 Fixes: <https://bugs.freedesktop.org/show_bug.cgi?id=41470>
235 Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
236
237 commit d1d4ec502285832f113e297337b96a265a6ea610
238 Author: Will Thompson <will.thompson@collabora.co.uk>
239 Date: 2011-10-10 11:42:14 +0100
240
241 Bump nano version to 0.15.7.1
242
243 commit b0c14c2613232de12ce8800230471db93517d7d4
244 Author: Xavier Claessens <xclaesse@gmail.com>
245 Date: 2011-10-03 14:38:03 +0200
246
247 Version 0.15.7
248
249 commit f1b611ea1a5e06cd801d059db05dd00de6ad5e1c
250 Merge: be94076 41be1c9
251 Author: Will Thompson <will.thompson@collabora.co.uk>
252 Date: 2011-10-04 15:41:18 +0100
253
254 Merge branch 'telepathy-glib-0.14'
255
256 Conflicts:
257 NEWS
258 configure.ac
259 telepathy-glib/message-mixin.c
260
261 commit 41be1c9d7467a643efc6c12cf3b96816d98fbd30
262 Author: Will Thompson <will.thompson@collabora.co.uk>
263 Date: 2011-10-04 15:31:12 +0100
264
265 Nano-version bump to 0.14.10.1
266
267 commit 041f910c3c94caa7eed412acd645bec68408fc22
268 Author: Will Thompson <will.thompson@collabora.co.uk>
269 Date: 2011-10-04 15:22:21 +0100
270
271 Version 0.14.10
272
273 commit cb7875e4bf52b8553d4cab670ac6e0484afa5f6d
274 Author: Will Thompson <will.thompson@collabora.co.uk>
275 Date: 2011-10-04 15:21:25 +0100
276
277 More NEWS for 0.14.10
278
279 commit 1c1c688e8c6ceda679c1473c7454ee6db2710007
280 Merge: a899ab8 dff3ce5
281 Author: Will Thompson <will.thompson@collabora.co.uk>
282 Date: 2011-10-04 15:05:11 +0100
283
284 Merge branch '40523-crash-on-ack' into telepathy-glib-0.14
285
286 Reviewed-by: Xavier Claessens <xclaesse@gmail.com>
287
288 commit dff3ce56fe82a9b16068d0cdcbc508d2d3c390ba
289 Author: Will Thompson <will.thompson@collabora.co.uk>
290 Date: 2011-10-04 14:16:07 +0100
291
292 MessageMixin: DEBUG if AckPM gets an id more than once
293
294 commit be940765ac3e355ee7efb52a49bf68431e52b0c0
295 Author: Xavier Claessens <xclaesse@gmail.com>
296 Date: 2011-10-03 15:05:05 +0200
297
298 test_upgrade_noop: verify with all features
299
300 commit 535ac16a74b535c3256e7acd9757a61e23bfc493
301 Author: Xavier Claessens <xclaesse@gmail.com>
302 Date: 2011-10-03 14:18:20 +0200
303
304 Add regression test case to verify no-op upgrade
305
306 commit b693c190495599b90ca07f9441cf6ecc41bd5169
307 Author: Xavier Claessens <xclaesse@gmail.com>
308 Date: 2011-10-03 12:41:10 +0200
309
310 Make sure tp_connection_upgrade_contacts() is no-op if all features are already prepared
311
312 commit dedd4a32647c96dd3854120c5c20b319ed00fbae
313 Author: Xavier Claessens <xclaesse@gmail.com>
314 Date: 2011-10-04 10:48:05 +0200
315
316 Add unit test for sent message without message-sender
317
318 commit bd5f36739a0e9b16c9351b1ac71a5ba26e24cf87
319 Author: Xavier Claessens <xclaesse@gmail.com>
320 Date: 2011-10-04 08:05:56 +0200
321
322 TpTextChannel: Fallback to self contact if sent message does not have a sender
323
324 This was a regression, butterfly does not set message-sender on sent messages.
325
326 Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=41435
327
328 commit e6886e1af905cbd11b91dcd82104ee5a394863fa
329 Author: Will Thompson <will.thompson@collabora.co.uk>
330 Date: 2011-10-03 14:20:01 +0100
331
332 MessageMixin: don't repeatedly scan pending message list
333
334 g_queue_remove() has to traverse the list, comparing data pointers,
335 until it finds the link we want to remove. It's stupid to use it here,
336 because we already *have* a pointer to each link we want to remove.
337
338 commit 4d41eec6c0b51c8bedd2a15fafc64529e45c4340
339 Author: Will Thompson <will.thompson@collabora.co.uk>
340 Date: 2011-10-03 13:54:57 +0100
341
342 MessageMixin: don't crash if an id appears twice
343
344 Fixes: <https://bugs.freedesktop.org/show_bug.cgi?id=40523>
345
346 commit c3f9dd779c1d780eab6d0de8be510c2ea45fc796
347 Author: Will Thompson <will.thompson@collabora.co.uk>
348 Date: 2011-10-03 12:57:41 +0100
349
350 MessageMixin: track messages to be acked in a GPtrArray
351
352 Since 'ids' may contain duplicates (which a future patch will filter
353 out), using an array of GList *s is a bit cumbersome: we'd have to be
354 sure not to index elements of it which haven't been initialized. Using a
355 GPtrArray is clearer.
356
357 commit 89b27c10020723769d4c7732c56f9ff809801c01
358 Author: Xavier Claessens <xclaesse@gmail.com>
359 Date: 2011-10-03 10:19:17 +0200
360
361 Add warning comment to warn that ordering matters for gi-scanner
362
363 commit c1b9b9f899589e3fc3a340ef5f0a22b962a32ee1
364 Author: Xavier Claessens <xclaesse@gmail.com>
365 Date: 2011-10-03 10:17:17 +0200
366
367 Revert "Sort alphabetically introspected files"
368
369 This reverts commit 48998822d5e9575af822c1936b35be514dc2401b.
370
371 It seems gi-scanner depends on the order the files are given.
372 See https://bugzilla.gnome.org/show_bug.cgi?id=660629
373
374 commit 48e8194462ade5440f9a76121796383676148f6e
375 Author: Xavier Claessens <xclaesse@gmail.com>
376 Date: 2011-10-03 12:23:44 +0200
377
378 Nano-version bump
379
380 commit 43b597d8bb9d67d4256961981b5a578b6a2e44b5
381 Author: Xavier Claessens <xclaesse@gmail.com>
382 Date: 2011-09-30 14:30:23 +0200
383
384 Version 0.15.6
385
386 commit 3f0f9abe1470d48e5ae09df8487b2759c614a85c
387 Author: Xavier Claessens <xclaesse@gmail.com>
388 Date: 2011-09-30 14:18:03 +0200
389
390 NEWS for 0.15.6
391
392 commit 904c8d1ab8cd2044f4e458c41ab97aae52524de7
393 Author: Xavier Claessens <xclaesse@gmail.com>
394 Date: 2011-09-30 12:50:06 +0200
395
396 Add unit test to make sure sender gets prepared
397
398 commit 0ce9da3c49acba674df79e95316e4ae2c77fb020
399 Author: Xavier Claessens <xclaesse@gmail.com>
400 Date: 2011-09-16 16:48:51 +0200
401
402 TpTextChannel: Guarantee that senders are always prepared with factory features
403
404 This makes all events go into the channel's contacts_queue to
405 preserve reordering.
406
407 Note that it even fixes previous possible reordering on CMs not
408 having immortal-handlers.
409
410 commit 72eca4029b4c5e0d8094d55b21dc0253af7adfd6
411 Author: Xavier Claessens <xclaesse@gmail.com>
412 Date: 2011-09-29 13:35:53 +0200
413
414 TpStreamTubeChannel: Prepare factory contact features on connections
415
416 commit 5fd927b3b560973ff6ff8d884410873cfb5fc1dc
417 Author: Xavier Claessens <xclaesse@gmail.com>
418 Date: 2011-09-13 18:35:39 +0200
419
420 Add unit test for TP_CHANNEL_FEATURE_CONTACTS
421
422 commit c434a51062415ed37b9225117ccfde4d21a346f9
423 Author: Xavier Claessens <xclaesse@gmail.com>
424 Date: 2011-09-13 18:35:21 +0200
425
426 Add TP_CHANNEL_FEATURE_CONTACTS feature
427
428 It ensures that all TpContact objects related to a channel are prepared
429 with factory features. It fail to prepare on old CMs.
430
431 commit 0aae81e14a7b40bb035fbaa4d5595665069d9b53
432 Author: Xavier Claessens <xclaesse@gmail.com>
433 Date: 2011-06-29 22:16:08 +0200
434
435 Implement new Channel.Group spec in TpGroupMixin
436
437 commit 48998822d5e9575af822c1936b35be514dc2401b
438 Author: Xavier Claessens <xclaesse@gmail.com>
439 Date: 2011-09-30 10:18:19 +0200
440
441 Sort alphabetically introspected files
442
443 commit fa810607e474b44755612baded586efcb2c2c739
444 Author: Xavier Claessens <xclaesse@gmail.com>
445 Date: 2011-09-29 21:17:42 +0200
446
447 Update to spec 0.23.4
448
449 Except for Call stuff because the example using extensions needs
450 update to new spec.
451
452 commit 051ae67740f49bbdb328eadad837a8b72ea32838
453 Author: Will Thompson <will.thompson@collabora.co.uk>
454 Date: 2011-09-21 14:27:31 +0100
455
456 tp_debug_sender_add_message_vprintf: fix doc comment
457
458 I'm sure gtk-doc used to accept @Varargs, but @... is used elsewhere in
459 tp-glib too.
460
461 commit 2ee8b2305c0312a71d2dd43c0a16cf16b809389a
462 Author: Will Thompson <will.thompson@collabora.co.uk>
463 Date: 2011-09-07 14:23:33 +0100
464
465 gtk-doc: use no-tmpl flavour
466
467 This stops gtk-doc even generating the legacy .tmpl files, for a
468 marginally faster (and less crufty) documentation build process.
469
470 For some reason, this makes it start failing to parse the final argument
471 of functions annotated with _TP_GNUC_DEPRECATED_FOR(). Not overly
472 surprising that it can't parse them; the surprise is that no-tmpl
473 affects this. But since we already pass _TP_GNUC_DEPRECATED to
474 --ignore-decorators, it seems reasonable to also filter out
475 _TP_GNUC_DEPRECATED_FOR there.
476
477 commit 4b47d3a5375ff270214b1d427b0eb4d720c21404
478 Author: Xavier Claessens <xclaesse@gmail.com>
479 Date: 2011-09-21 14:30:15 +0200
480
481 remove typo in client.xml
482
483 commit 7dca869db9cfe8105757e4ba3c4120f84c5e4c3d
484 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
485 Date: 2011-09-19 13:11:10 +0200
486
487 deprecate tp_account_prepare_{async,finish}
488
489 commit c949b7a725970d155e6b14e44bfa15fd5511af50
490 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
491 Date: 2011-09-19 13:11:10 +0200
492
493 deprecate tp_account_manager_prepare_{async,finish}
494
495 commit ebac428b37557756ee7392680ee5f6c44d451b91
496 Author: Marco Barisione <marco@barisione.org>
497 Date: 2011-09-16 11:44:29 +0100
498
499 BaseContactList: group the MembersChanged signals for the initial roster
500
501 We were emitting one MembersChanged and one MembersChangedDetailed
502 signals per contact in the subscribe list when initially connecting.
503 Now we group all of the initial contacts together, setting actor=0. If
504 contacts appear later in the subscribe list we keep emitting a signal
505 per contact (with themselves as actors).
506
507 Fixes: <https://bugs.freedesktop.org/show_bug.cgi?id=40933>
508 Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
509 Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
510
511 commit e48b851363ef3e083eb5a05809ad3032707284d0
512 Author: Xavier Claessens <xclaesse@gmail.com>
513 Date: 2011-09-14 18:07:51 +0200
514
515 Remove tp_dbus_tube_channel_new()
516
517 We don't need a constructor, channels should always come from a factory.
518
519 commit 9c42b1568602672b7640cb1eb6c86009f7fee9b4
520 Author: Xavier Claessens <xclaesse@gmail.com>
521 Date: 2011-09-13 11:56:03 +0200
522
523 Introspect TpDBusTubeChannel
524
525 commit f6d49828ecebb2dcf5710d875a509f489a9935a1
526 Author: Xavier Claessens <xclaesse@gmail.com>
527 Date: 2011-09-13 11:42:30 +0200
528
529 TpAutomaticClientFactory: Create TpDBusTubeChannel objects
530
531 commit bd1ae7c77fdf8e5cc00746614f08f62881b29046
532 Author: Xavier Claessens <xclaesse@gmail.com>
533 Date: 2011-09-13 11:12:02 +0200
534
535 Coding style: one arg per line
536
537 commit f507acbfd8dbd9cf8217988398d7b83e79dd98bf
538 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
539 Date: 2011-06-09 16:21:49 +0200
540
541 Add TpDBusTubeChannel (#29271)
542
543 Not much so far, just the base of the object and its basic properties.
544
545 commit 65d2227e3b949c25d57325ab262a83f9a7f1c97f
546 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
547 Date: 2011-06-09 16:09:28 +0200
548
549 add tests/lib/dbus-tube-chan for tests
550
551 commit d08ba89ff856573f3eae62c506854d6728925a81
552 Author: Will Thompson <will.thompson@collabora.co.uk>
553 Date: 2011-09-13 12:40:53 +0100
554
555 Connection: provide debug-message when CM crashes
556
557 Previously, when a TpConnection was invalidated due to a crash,
558 tp_connection_get_detailed_error() would return DBUS_ERROR_NO_REPLY
559 (which is plausible) but would not include any details in the dict o'
560 details. This is a shame, because the invalidation GError in this case
561 contains a message like “Name owner lost (service crashed?)”.
562
563 So, let's pass the message on.
564
565 Related-to: <https://bugs.freedesktop.org/show_bug.cgi?id=40129>
566 Reviewed-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
567
568 commit 1de349019cd39b643bb7e04acbbe51780ffb3b57
569 Author: Xavier Claessens <xclaesse@gmail.com>
570 Date: 2011-09-07 22:51:56 +0200
571
572 Test: verify TpConnection's self contact get factory features prepared
573
574 commit c78a544a8d533f1fab4308ffbce84840a23accf9
575 Author: Xavier Claessens <xclaesse@gmail.com>
576 Date: 2011-09-07 18:49:18 +0200
577
578 tp_simple_client_factory_dup_contact() does not exists
579
580 commit 2abee14dd2675fd136bebe700ffd49198aabc751
581 Author: Xavier Claessens <xclaesse@gmail.com>
582 Date: 2011-09-07 10:51:30 +0200
583
584 TpConnection: prepare factory features on self contact
585
586 commit 9ad43307fd7757feec5abfb4d12fcdecfade896a
587 Author: Jonny Lamb <jonny.lamb@collabora.co.uk>
588 Date: 2011-09-09 16:10:34 +0100
589
590 simple-client-factory: point out NULL is allowed for an account's properties
591
592 Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
593
594 commit a899ab819ccb3f60b083822eedb0f7989bee3707
595 Author: Vivek Dasmohapatra <vivek@collabora.co.uk>
596 Date: 2011-09-07 17:01:59 +0100
597
598 Update NEWS
599
600 commit 55979632725dcce40bf5b6b29cfe4a5e1ed4b7f7
601 Merge: 2f8725a 0cb8c83
602 Author: Vivek Dasmohapatra <vivek@collabora.co.uk>
603 Date: 2011-09-07 16:54:15 +0100
604
605 Merge branch 'telepathy-glib-0.14'
606
607 Conflicts:
608 telepathy-glib/connection.c
609
610 commit 0cb8c83e33f8addebd35c4890c0355fa9ccd0b2c
611 Author: Vivek Dasmohapatra <vivek@collabora.co.uk>
612 Date: 2011-09-07 16:39:27 +0100
613
614 Debug messages leaked if the debug message cache is disabled, ironically
615
616 commit 2f8725a6131a3b273edcada8f1d688d4d44cd37e
617 Merge: 93a4228 e10e59f
618 Author: Vivek Dasmohapatra <vivek@collabora.co.uk>
619 Date: 2011-09-07 16:18:37 +0100
620
621 Merge HEAD, branch 'master' of git+ssh://git.freedesktop.org/git/telepathy/telepathy-glib
622
623 commit e10e59f8ad45a7f89cceac185906edade97f774e
624 Merge: 83c90be a1dead1
625 Author: Will Thompson <will.thompson@collabora.co.uk>
626 Date: 2011-09-07 11:58:48 +0100
627
628 Merge branch 'emit-properties-changed'
629
630 Fixes: <https://bugs.freedesktop.org/show_bug.cgi?id=40380>
631 Reviewed-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
632
633 commit a1dead10c61ac34eb8a5357a575027574991648e
634 Author: Will Thompson <will.thompson@collabora.co.uk>
635 Date: 2011-08-26 13:41:20 +0100
636
637 Add tp_dbus_properties_mixin_emit_properties_changed_varargs()
638
639 commit 6e6172c8d1bd6a89495ff27d87d9198b3493a28e
640 Author: Will Thompson <will.thompson@collabora.co.uk>
641 Date: 2011-08-26 13:31:07 +0100
642
643 _emit_properties_changed(): use annotations
644
645 Given that we have necessary information in introspection XML to choose
646 between including the property in Changed and in Invalidated, we may as
647 well use it.
648
649 commit 0630ff688eb5eacce5a635068e0f4e9ca2b6427e
650 Author: Will Thompson <will.thompson@collabora.co.uk>
651 Date: 2011-08-26 12:08:45 +0100
652
653 ginterface-gen: set PropertiesChanged annotation flags
654
655 This will be tested shortly.
656
657 commit 423b08acd005876d0c8eb1e4905939d806980d12
658 Author: Will Thompson <will.thompson@collabora.co.uk>
659 Date: 2011-08-26 12:08:10 +0100
660
661 DBusPropertiesMixin: add flags for Changed annotation
662
663 commit 5b3c8fac3558c7d1f782678adee1ccedd08d7277
664 Author: Will Thompson <will.thompson@collabora.co.uk>
665 Date: 2011-08-02 16:45:40 +0100
666
667 Add tp_dbus_properties_mixin_emit_properties_changed
668
669 It's a bit annoying to use because you have to define the two arrays
670 ahead of time, but hey.
671
672 commit 3d6e28b390309b704cb44466d6d8eda9b3883483
673 Author: Will Thompson <will.thompson@collabora.co.uk>
674 Date: 2011-08-02 15:41:13 +0100
675
676 Extract guts of tp_dbus_properties_mixin_get
677
678 This will be useful in implementing _emit_properties_changed without it
679 having to repeatedly find the IfaceInfo structure.
680
681 commit ff92e927810e2fe109f1ab9ae5c9165273b39dbf
682 Author: Will Thompson <will.thompson@collabora.co.uk>
683 Date: 2011-08-02 15:32:20 +0100
684
685 tp_dbus_properties_mixin_get: add parameter guards
686
687 These reflect conditions under which this function will currently crash.
688
689 commit a875eaa7e7d553400aa241e88bf4fdba491ea05f
690 Author: Will Thompson <will.thompson@collabora.co.uk>
691 Date: 2011-08-02 18:11:01 +0100
692
693 fill_properties_hash: make assertions more useful
694
695 Previously if you messed up the arguments to this function (say, you
696 passed a fully-qualified property name rather than a interface_name,
697 property_name pair), you'd get an unhelpful assertion about G_IS_VALUE()
698 failing.
699
700 Now you get a nice critical about the specific property which couldn't
701 be retrieved, listing the interface name and property name and giving
702 the error.
703
704 commit fe835fc5f94c0e5c1e675b2af0e39c9b36cffe5e
705 Author: Will Thompson <will.thompson@collabora.co.uk>
706 Date: 2011-08-02 16:39:27 +0100
707
708 test-properties: add a #define for the interface name
709
710 commit da0ebf66bd23b7fccbc2df739673a5b576198535
711 Author: Will Thompson <will.thompson@collabora.co.uk>
712 Date: 2011-08-02 16:16:40 +0100
713
714 test-properties: use GTest
715
716 commit fdd00e0676868874f5e5c4c86e14485cfc693f1e
717 Author: Will Thompson <will.thompson@collabora.co.uk>
718 Date: 2011-08-02 16:00:48 +0100
719
720 test-properties: stop using MYASSERT
721
722 commit 91265f78004e45d316f2727a85ffbee7dba8c268
723 Author: Will Thompson <will.thompson@collabora.co.uk>
724 Date: 2011-08-02 15:53:15 +0100
725
726 test-properties: use tp_asv_dump
727
728 commit 3c16024d94801a108f7f7823455712a3d3485968
729 Author: Will Thompson <will.thompson@collabora.co.uk>
730 Date: 2011-08-02 15:52:58 +0100
731
732 tp_asv_dump: swaddle output in {}
733
734 This makes it a little more obvious
735
736 commit 83c90bef429392a99e97c077a098b8890a833e51
737 Author: Xavier Claessens <xclaesse@gmail.com>
738 Date: 2011-09-02 10:11:55 +0200
739
740 Do not mix static and dynamic GObject bindings in python examples
741
742 commit 305d4a705e1cc7855886b91c9fe2a3a820da0d25
743 Author: Vivek Dasmohapatra <vivek@collabora.co.uk>
744 Date: 2011-08-31 16:39:09 +0100
745
746 Free the GStrv of keyfile keys when we are finished with it
747
748 commit e291b184f921c524cfaf3fb418eeea43a383ed5f
749 Author: Vivek Dasmohapatra <vivek@collabora.co.uk>
750 Date: 2011-08-30 15:19:10 +0100
751
752 Two string members not freed in tp connection destructor
753
754 commit 93a4228b3d73e71bae72a45a5e9daffbf5fe4d48
755 Merge: 8db501d 56729b4
756 Author: Vivek Dasmohapatra <vivek@collabora.co.uk>
757 Date: 2011-08-30 15:08:34 +0100
758
759 Merge HEAD, branch 'master' of git+ssh://git.freedesktop.org/git/telepathy/telepathy-glib
760
761 commit 56729b46480a21d43da33bc7dc9e854d9ed3093a
762 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
763 Date: 2011-04-11 14:41:08 +0200
764
765 TpProtocol: add API to get avatars requirements (fdo #36049)
766
767 https://bugs.freedesktop.org/show_bug.cgi?id=36049
768
769 commit 0b7e9eab27502bbafc3f097c5c4496de9a24c3ca
770 Author: Will Thompson <will.thompson@collabora.co.uk>
771 Date: 2011-08-17 11:33:33 +0100
772
773 tp_base_channel_close: check vfunc is not NULL
774
775 Reviewed-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
776
777 commit 124c30bd18e0bd5fd3d4547a4ddc357a27ea78ab
778 Author: Xavier Claessens <xclaesse@gmail.com>
779 Date: 2011-08-24 17:02:30 +0200
780
781 TpConnection: emit contact-list-changed when initial roster is fetched
782
783 commit 944af3fbdf71ca3333c7d20c32792f5ad524ce73
784 Author: Xavier Claessens <xclaesse@gmail.com>
785 Date: 2011-08-25 11:56:43 +0200
786
787 tp_contact_foo_async() callback must be the TpContact not its TpConnection
788
789 commit f3dd6328aefdbc14876cdd52e1f931589a54ed3e
790 Author: Xavier Claessens <xclaesse@gmail.com>
791 Date: 2011-08-24 22:31:17 +0200
792
793 Add contact list JS example
794
795 commit 27ccfd17bd8801c043ac1f0e99aabfe08571cebe
796 Author: Xavier Claessens <xclaesse@gmail.com>
797 Date: 2011-08-24 22:32:29 +0200
798
799 Include contact-list.py example in tarballs
800
801 commit 7f465e4a7d2d552f8ded3fd58e537f84b6b9f3a2
802 Author: Xavier Claessens <xclaesse@gmail.com>
803 Date: 2011-08-17 15:31:15 +0200
804
805 Hide tp_g_value_slice_new_foo() from g-i scanner
806
807 This is a workaround for GNOME bug #656743
808
809 commit 9afe6d9d087e4bfd928717a5646e7fa6fe939509
810 Author: Will Thompson <will.thompson@collabora.co.uk>
811 Date: 2011-08-23 11:08:10 +0100
812
813 Nano-version bump
814
0815 commit cf56f52d3202cb4227d6eb4d990da246d1160013
1816 Author: Will Thompson <will.thompson@collabora.co.uk>
2817 Date: 2011-08-17 16:02:19 +0100
3111126 Date: 2011-06-05 18:11:33 +0200
3121127
3131128 Add TP_CONNECTION_FEATURE_CONTACT_GROUPS to prepare the list of groups on the connection
1129
1130 commit 8db501d95f781c6b411f46fb8513d307d9dde7ca
1131 Author: Vivek Dasmohapatra <vivek@collabora.co.uk>
1132 Date: 2011-08-03 11:47:18 +0100
1133
1134 Merge HEAD, branch 'master' of git+ssh://git.freedesktop.org/git/telepathy/telepathy-glib
3141135
3151136 commit ef8fe8be1a8a631fa406a03fa2db3c54146b0bd5
3161137 Author: Xavier Claessens <xclaesse@gmail.com>
159159 GLIB_MKENUMS = @GLIB_MKENUMS@
160160 GREP = @GREP@
161161 GTKDOC_CHECK = @GTKDOC_CHECK@
162 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
163 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
162164 GTKDOC_MKPDF = @GTKDOC_MKPDF@
163165 GTKDOC_REBASE = @GTKDOC_REBASE@
164166 HAVE_VALA = @HAVE_VALA@
+103
-0
NEWS less more
0 telepathy-glib 0.15.9 (2011-10-12)
1 ==================================
2
3 The “important lessons of the past” release. This will teach me to make
4 releases without checking nothing more's been merged overnight.
5
6 Fixes:
7
8 . fd.o#41697: unknown handle owners in chat rooms no longer crashes
9 TpChannel. (Guillaume)
10
11 telepathy-glib 0.15.8 (2011-10-12)
12 ==================================
13
14 The “fretting about the now” release.
15
16 Enhancements:
17
18 • telepathy-glib now generates code for spec version 0.24.0, including
19 the Room, Subject and RoomConfig interfaces. It also includes a new
20 TpBaseRoomConfig object, which vaguely resembles the good bits of
21 TpPropertiesMixin. (The latter is not deprecated yet, but just you
22 wait…)
23
24 • It is now possible to set D-Bus properties as if in response to a call
25 to Set() on the bus, using tp_dbus_properties_mixin_set(). This
26 complements the existing tp_dbus_properties_mixin_get() method, and
27 makes it possible to fix fd.o#32416.
28
29 Fixes:
30
31 • fd.o#41470: crash in some situations when using
32 TP_CHANNEL_FEATURE_CONTACTS. This was specifically triggered by
33 test-cli-group as of the last release.
34
35 telepathy-glib 0.15.7 (2011-10-04)
36 ==================================
37
38 Fixes:
39
40 • fd.o#40555: Memory leaks in TpConnection and protocol.c (Vivek)
41
42 • Memory leak if the debug message cache is disabled (Vivek)
43
44 • fd.o#38060: Fix a crash in TpMessageMixin, triggered by delivery
45 reports. (Danni)
46
47 • fd.o#38997: Cope beter if UNIX sockets are not supported. (Guillaume)
48
49 • fd.o#40523: Connection Manager crash when a client acks the same
50 message twice. (Will)
51
52 • fd.o#41414: Make sure tp_connection_upgrade_contacts() is no-op if all
53 features are already prepared (Xavier).
54
55 • fd.o#41368: Fix introspection by reverting
56 48998822d5e9575af822c1936b35be514dc2401b. The order in which files are given
57 to gi-scanner matters (Xavier).
58
59 • fd.o#41435: Ensure sent messages have a sender even with butterfly, which does
60 not set "message-sender" (Xavier).
61
62 telepathy-glib 0.15.6 (2011-09-30)
63 ==================================
64
65 Enhancements:
66
67 • New JavaScript (gjs) code example to demonstrate GObject-Introspection
68 of the API.
69
70 • TpProtocol: new API to get avatars requirements.
71
72 • Factory features are now prepared on various contacts:
73 • TpConnection's self contact;
74 • TpChannel's target, initiator and self contacts;
75 • TpChannel's group memebers;
76 • TpTextChannel's message sender; and
77 • TpStreamTubeChannel's connection contact.
78
79 • New object TpDBusTubeChannel to represent a D-Bus tube channel.
80 Its API is still incomplete.
81
82 • Group the MembersChanged signals for the initial roster (fd.o#40933). This
83 improve login performance.
84
85 • Spec upgraded to 0.23.4 except for draft call interfaces. Mixins implement the
86 new additions.
87
88 • TpDBusPropertiesMixin now has a method for emitting the standard
89 PropertiesChanged signal; in conjunction with the code generator, it respects
90 the EmitsChangedSignal annotation. Note that the signal is not emitted
91 automatically.
92
93 Fixes:
94
95 • Python examples now works with latest pygobject (stop using static bindings).
96
97 Deprecations:
98
99 • tp_account_prepare_{async,finish} replaced by tp_proxy_prepare_{async,finish}
100 • tp_account_manager_prepare_{async,finish} replaced by
101 tp_proxy_prepare_{async,finish}
102
0103 telepathy-glib 0.15.5 (2011-12-17)
1104 ==================================
2105
00 #! /bin/sh
11 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.68 for Telepathy-GLib 0.15.5.
2 # Generated by GNU Autoconf 2.68 for Telepathy-GLib 0.15.9.
33 #
44 # Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=Telepathy&component=tp-glib>.
55 #
630630 # Identity of this package.
631631 PACKAGE_NAME='Telepathy-GLib'
632632 PACKAGE_TARNAME='telepathy-glib'
633 PACKAGE_VERSION='0.15.5'
634 PACKAGE_STRING='Telepathy-GLib 0.15.5'
633 PACKAGE_VERSION='0.15.9'
634 PACKAGE_STRING='Telepathy-GLib 0.15.9'
635635 PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=Telepathy&component=tp-glib'
636636 PACKAGE_URL=''
637637
744744 GTK_DOC_BUILD_HTML_TRUE
745745 ENABLE_GTK_DOC_FALSE
746746 ENABLE_GTK_DOC_TRUE
747 GTKDOC_DEPS_LIBS
748 GTKDOC_DEPS_CFLAGS
747749 HTML_DIR
748750 GTKDOC_MKPDF
749751 GTKDOC_REBASE
902904 PKG_CONFIG
903905 PKG_CONFIG_PATH
904906 PKG_CONFIG_LIBDIR
907 GTKDOC_DEPS_CFLAGS
908 GTKDOC_DEPS_LIBS
905909 GLIB_CFLAGS
906910 GLIB_LIBS
907911 GIO_UNIX_CFLAGS
14541458 # Omit some internal or obsolete options to make the list less imposing.
14551459 # This message is too long to be a string in the A/UX 3.1 sh.
14561460 cat <<_ACEOF
1457 \`configure' configures Telepathy-GLib 0.15.5 to adapt to many kinds of systems.
1461 \`configure' configures Telepathy-GLib 0.15.9 to adapt to many kinds of systems.
14581462
14591463 Usage: $0 [OPTION]... [VAR=VALUE]...
14601464
15241528
15251529 if test -n "$ac_init_help"; then
15261530 case $ac_init_help in
1527 short | recursive ) echo "Configuration of Telepathy-GLib 0.15.5:";;
1531 short | recursive ) echo "Configuration of Telepathy-GLib 0.15.9:";;
15281532 esac
15291533 cat <<\_ACEOF
15301534
15951599 directories to add to pkg-config's search path
15961600 PKG_CONFIG_LIBDIR
15971601 path overriding pkg-config's built-in search path
1602 GTKDOC_DEPS_CFLAGS
1603 C compiler flags for GTKDOC_DEPS, overriding pkg-config
1604 GTKDOC_DEPS_LIBS
1605 linker flags for GTKDOC_DEPS, overriding pkg-config
15981606 GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config
15991607 GLIB_LIBS linker flags for GLIB, overriding pkg-config
16001608 GIO_UNIX_CFLAGS
16731681 test -n "$ac_init_help" && exit $ac_status
16741682 if $ac_init_version; then
16751683 cat <<\_ACEOF
1676 Telepathy-GLib configure 0.15.5
1684 Telepathy-GLib configure 0.15.9
16771685 generated by GNU Autoconf 2.68
16781686
16791687 Copyright (C) 2010 Free Software Foundation, Inc.
21632171 This file contains any messages produced by compilers while
21642172 running configure, to aid debugging if configure makes a mistake.
21652173
2166 It was created by Telepathy-GLib $as_me 0.15.5, which was
2174 It was created by Telepathy-GLib $as_me 0.15.9, which was
21672175 generated by GNU Autoconf 2.68. Invocation command line was
21682176
21692177 $ $0 $@
29812989
29822990 # Define the identity of the package.
29832991 PACKAGE='telepathy-glib'
2984 VERSION='0.15.5'
2992 VERSION='0.15.9'
29852993
29862994
29872995 cat >>confdefs.h <<_ACEOF
1198611994
1198711995
1198811996
11997
1198911998 # Extract the first word of "gtkdoc-check", so it can be a program name with args.
1199011999 set dummy gtkdoc-check; ac_word=$2
1199112000 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
1214312152 else
1214412153 as_fn_error $? "You need to have gtk-doc >= 1.17 installed to build $PACKAGE_NAME" "$LINENO" 5
1214512154 fi
12155
12156 pkg_failed=no
12157 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTKDOC_DEPS" >&5
12158 $as_echo_n "checking for GTKDOC_DEPS... " >&6; }
12159
12160 if test -n "$GTKDOC_DEPS_CFLAGS"; then
12161 pkg_cv_GTKDOC_DEPS_CFLAGS="$GTKDOC_DEPS_CFLAGS"
12162 elif test -n "$PKG_CONFIG"; then
12163 if test -n "$PKG_CONFIG" && \
12164 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0\""; } >&5
12165 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0") 2>&5
12166 ac_status=$?
12167 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
12168 test $ac_status = 0; }; then
12169 pkg_cv_GTKDOC_DEPS_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>/dev/null`
12170 test "x$?" != "x0" && pkg_failed=yes
12171 else
12172 pkg_failed=yes
12173 fi
12174 else
12175 pkg_failed=untried
12176 fi
12177 if test -n "$GTKDOC_DEPS_LIBS"; then
12178 pkg_cv_GTKDOC_DEPS_LIBS="$GTKDOC_DEPS_LIBS"
12179 elif test -n "$PKG_CONFIG"; then
12180 if test -n "$PKG_CONFIG" && \
12181 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0\""; } >&5
12182 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0") 2>&5
12183 ac_status=$?
12184 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
12185 test $ac_status = 0; }; then
12186 pkg_cv_GTKDOC_DEPS_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>/dev/null`
12187 test "x$?" != "x0" && pkg_failed=yes
12188 else
12189 pkg_failed=yes
12190 fi
12191 else
12192 pkg_failed=untried
12193 fi
12194
12195
12196
12197 if test $pkg_failed = yes; then
12198 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12199 $as_echo "no" >&6; }
12200
12201 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
12202 _pkg_short_errors_supported=yes
12203 else
12204 _pkg_short_errors_supported=no
12205 fi
12206 if test $_pkg_short_errors_supported = yes; then
12207 GTKDOC_DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>&1`
12208 else
12209 GTKDOC_DEPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>&1`
12210 fi
12211 # Put the nasty error message in config.log where it belongs
12212 echo "$GTKDOC_DEPS_PKG_ERRORS" >&5
12213
12214 as_fn_error $? "Package requirements (glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0) were not met:
12215
12216 $GTKDOC_DEPS_PKG_ERRORS
12217
12218 Consider adjusting the PKG_CONFIG_PATH environment variable if you
12219 installed software in a non-standard prefix.
12220
12221 Alternatively, you may set the environment variables GTKDOC_DEPS_CFLAGS
12222 and GTKDOC_DEPS_LIBS to avoid the need to call pkg-config.
12223 See the pkg-config man page for more details." "$LINENO" 5
12224 elif test $pkg_failed = untried; then
12225 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12226 $as_echo "no" >&6; }
12227 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
12228 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
12229 as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
12230 is in your PATH or set the PKG_CONFIG environment variable to the full
12231 path to pkg-config.
12232
12233 Alternatively, you may set the environment variables GTKDOC_DEPS_CFLAGS
12234 and GTKDOC_DEPS_LIBS to avoid the need to call pkg-config.
12235 See the pkg-config man page for more details.
12236
12237 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
12238 See \`config.log' for more details" "$LINENO" 5; }
12239 else
12240 GTKDOC_DEPS_CFLAGS=$pkg_cv_GTKDOC_DEPS_CFLAGS
12241 GTKDOC_DEPS_LIBS=$pkg_cv_GTKDOC_DEPS_LIBS
12242 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
12243 $as_echo "yes" >&6; }
12244
12245 fi
1214612246 fi
1214712247
1214812248 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build gtk-doc documentation" >&5
1230012400
1230112401
1230212402
12303 LT_CURRENT=61
12304 LT_REVISION=0
12305 LT_AGE=61
12403 LT_CURRENT=63
12404 LT_REVISION=1
12405 LT_AGE=63
1230612406
1230712407
1230812408
1732417424 fi
1732517425
1732617426
17327 ac_config_files="$ac_config_files Makefile docs/Makefile docs/reference/Makefile docs/reference/version.xml examples/Makefile examples/client/Makefile examples/client/python/Makefile examples/client/stream-tubes/Makefile examples/cm/Makefile examples/cm/callable/Makefile examples/cm/channelspecific/Makefile examples/cm/contactlist/Makefile examples/cm/echo-message-parts/Makefile examples/cm/extended/Makefile examples/cm/no-protocols/Makefile examples/extensions/Makefile examples/future/Makefile examples/future/call-cm/Makefile extensions/Makefile spec/Makefile telepathy-glib/Makefile telepathy-glib/telepathy-glib.pc telepathy-glib/telepathy-glib-uninstalled.pc tests/Makefile tests/lib/Makefile tests/dbus/Makefile tests/tools/Makefile tools/Makefile m4/Makefile vala/Makefile"
17427 ac_config_files="$ac_config_files Makefile docs/Makefile docs/reference/Makefile docs/reference/version.xml examples/Makefile examples/client/Makefile examples/client/js/Makefile examples/client/python/Makefile examples/client/stream-tubes/Makefile examples/cm/Makefile examples/cm/callable/Makefile examples/cm/channelspecific/Makefile examples/cm/contactlist/Makefile examples/cm/echo-message-parts/Makefile examples/cm/extended/Makefile examples/cm/no-protocols/Makefile examples/extensions/Makefile examples/future/Makefile examples/future/call-cm/Makefile extensions/Makefile spec/Makefile telepathy-glib/Makefile telepathy-glib/telepathy-glib.pc telepathy-glib/telepathy-glib-uninstalled.pc tests/Makefile tests/lib/Makefile tests/dbus/Makefile tests/tools/Makefile tools/Makefile m4/Makefile vala/Makefile"
1732817428
1732917429 cat >confcache <<\_ACEOF
1733017430 # This file is a shell script that caches the results of configure
1791618016 # report actual input values of CONFIG_FILES etc. instead of their
1791718017 # values after options handling.
1791818018 ac_log="
17919 This file was extended by Telepathy-GLib $as_me 0.15.5, which was
18019 This file was extended by Telepathy-GLib $as_me 0.15.9, which was
1792018020 generated by GNU Autoconf 2.68. Invocation command line was
1792118021
1792218022 CONFIG_FILES = $CONFIG_FILES
1798218082 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
1798318083 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
1798418084 ac_cs_version="\\
17985 Telepathy-GLib config.status 0.15.5
18085 Telepathy-GLib config.status 0.15.9
1798618086 configured by $0, generated by GNU Autoconf 2.68,
1798718087 with options \\"\$ac_cs_config\\"
1798818088
1849718597 "docs/reference/version.xml") CONFIG_FILES="$CONFIG_FILES docs/reference/version.xml" ;;
1849818598 "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;;
1849918599 "examples/client/Makefile") CONFIG_FILES="$CONFIG_FILES examples/client/Makefile" ;;
18600 "examples/client/js/Makefile") CONFIG_FILES="$CONFIG_FILES examples/client/js/Makefile" ;;
1850018601 "examples/client/python/Makefile") CONFIG_FILES="$CONFIG_FILES examples/client/python/Makefile" ;;
1850118602 "examples/client/stream-tubes/Makefile") CONFIG_FILES="$CONFIG_FILES examples/client/stream-tubes/Makefile" ;;
1850218603 "examples/cm/Makefile") CONFIG_FILES="$CONFIG_FILES examples/cm/Makefile" ;;
1010
1111 m4_define([tp_glib_major_version], [0])
1212 m4_define([tp_glib_minor_version], [15])
13 m4_define([tp_glib_micro_version], [5])
13 m4_define([tp_glib_micro_version], [9])
1414 m4_define([tp_glib_nano_version], [0])
1515
1616 # If library source has changed since last release, increment revision
2525 # (we don't guarantee that we won't add ABI then remove it again, if it was
2626 # never seen in a release).
2727
28 m4_define([tp_glib_lt_current], [61])
29 m4_define([tp_glib_lt_revision], [0])
30 m4_define([tp_glib_lt_age], [61])
28 m4_define([tp_glib_lt_current], [63])
29 m4_define([tp_glib_lt_revision], [1])
30 m4_define([tp_glib_lt_age], [63])
3131
3232 # Some magic
3333 m4_define([tp_glib_base_version],
5656 # pkg-config 0.21 adds CFLAGS from Requires.private, which we need
5757 PKG_PROG_PKG_CONFIG([0.21])
5858
59 GTK_DOC_CHECK([1.17])
59 GTK_DOC_CHECK([1.17],[--flavour no-tmpl])
6060
6161 GOBJECT_INTROSPECTION_CHECK([0.9.6])
6262
297297 docs/reference/version.xml \
298298 examples/Makefile \
299299 examples/client/Makefile \
300 examples/client/js/Makefile \
300301 examples/client/python/Makefile \
301302 examples/client/stream-tubes/Makefile \
302303 examples/cm/Makefile \
141141 GLIB_MKENUMS = @GLIB_MKENUMS@
142142 GREP = @GREP@
143143 GTKDOC_CHECK = @GTKDOC_CHECK@
144 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
145 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
144146 GTKDOC_MKPDF = @GTKDOC_MKPDF@
145147 GTKDOC_REBASE = @GTKDOC_REBASE@
146148 HAVE_VALA = @HAVE_VALA@
3030 # e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
3131 SCAN_OPTIONS=\
3232 --deprecated-guards=TP_DISABLE_DEPRECATED \
33 --ignore-decorators=_TP_GNUC_DEPRECATED \
33 --ignore-decorators='_TP_GNUC_DEPRECATED|_TP_GNUC_DEPRECATED_FOR\s*\([^\)]+\)' \
3434 --rebuild-types
3535
3636 # Extra options to supply to gtkdoc-mkdb.
108108 GLIB_MKENUMS = @GLIB_MKENUMS@
109109 GREP = @GREP@
110110 GTKDOC_CHECK = @GTKDOC_CHECK@
111 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
112 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
111113 GTKDOC_MKPDF = @GTKDOC_MKPDF@
112114 GTKDOC_REBASE = @GTKDOC_REBASE@
113115 HAVE_VALA = @HAVE_VALA@
258260 # e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
259261 SCAN_OPTIONS = \
260262 --deprecated-guards=TP_DISABLE_DEPRECATED \
261 --ignore-decorators=_TP_GNUC_DEPRECATED \
263 --ignore-decorators='_TP_GNUC_DEPRECATED|_TP_GNUC_DEPRECATED_FOR\s*\([^\)]+\)' \
262264 --rebuild-types
263265
264266
339341 GTKDOC_LIBS = $(top_builddir)/telepathy-glib/libtelepathy-glib.la \
340342 @DBUS_LIBS@ @GLIB_LIBS@
341343
342 @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
343 @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
344 @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
345 @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
344 @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
345 @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
346 @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
347 @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
346348 @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN =
347349 @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute
348350
364366
365367 # Other files to distribute
366368 # e.g. EXTRA_DIST += version.xml.in
367 EXTRA_DIST = $(SETUP_FILES) version.xml.in
368 DOC_STAMPS = setup-build.stamp scan-build.stamp tmpl-build.stamp sgml-build.stamp \
369 EXTRA_DIST = $(HTML_IMAGES) $(SETUP_FILES) version.xml.in
370 DOC_STAMPS = setup-build.stamp scan-build.stamp sgml-build.stamp \
369371 html-build.stamp pdf-build.stamp \
370 setup.stamp tmpl.stamp sgml.stamp html.stamp pdf.stamp
372 sgml.stamp html.stamp pdf.stamp
371373
372374 SCANOBJ_FILES = \
373375 $(DOC_MODULE).args \
594596
595597 setup-build.stamp:
596598 -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
597 echo 'gtk-doc: Preparing build'; \
598 files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
599 if test "x$$files" != "x" ; then \
600 for file in $$files ; do \
601 test -f $(abs_srcdir)/$$file && \
602 cp -p $(abs_srcdir)/$$file $(abs_builddir)/; \
603 done \
604 fi; \
605 test -f $(abs_srcdir)/tmpl && \
606 cp -rp $(abs_srcdir)/tmpl $(abs_builddir)/; \
599 echo ' DOC Preparing build'; \
600 files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
601 if test "x$$files" != "x" ; then \
602 for file in $$files ; do \
603 test -f $(abs_srcdir)/$$file && \
604 cp -pu $(abs_srcdir)/$$file $(abs_builddir)/ || true; \
605 done; \
606 fi; \
607607 fi
608608 @touch setup-build.stamp
609609
610 setup.stamp: setup-build.stamp
611 @true
612
613610 #### scan ####
614611
615612 scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
616 @echo 'gtk-doc: Scanning header files'
613 @echo ' DOC Scanning header files'
617614 @_source_dir='' ; \
618615 for i in $(DOC_SOURCE_DIR) ; do \
619616 _source_dir="$${_source_dir} --source-dir=$$i" ; \
620617 done ; \
621618 gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
622619 @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
623 CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) ; \
620 echo " DOC Introspecting gobjects"; \
621 scanobj_options=""; \
622 gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \
623 if test "$(?)" = "0"; then \
624 if test "x$(V)" = "x1"; then \
625 scanobj_options="--verbose"; \
626 fi; \
627 fi; \
628 CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \
629 gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \
624630 else \
625631 for i in $(SCANOBJ_FILES) ; do \
626 test -f $$i || touch $$i ; \
632 test -f $$i || touch $$i ; \
627633 done \
628634 fi
629635 @touch scan-build.stamp
631637 $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
632638 @true
633639
634 #### templates ####
635
636 tmpl-build.stamp: setup.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
637 @echo 'gtk-doc: Rebuilding template files'
638 @gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
639 @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
640 if test -w $(abs_srcdir) ; then \
641 cp -rp $(abs_builddir)/tmpl $(abs_srcdir)/; \
642 fi \
643 fi
644 @touch tmpl-build.stamp
645
646 tmpl.stamp: tmpl-build.stamp
647 @true
648
649 $(srcdir)/tmpl/*.sgml:
650 @true
651
652640 #### xml ####
653641
654 sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
655 @echo 'gtk-doc: Building XML'
656 @-chmod -R u+w $(srcdir)
642 sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files)
643 @echo ' DOC Building XML'
657644 @_source_dir='' ; \
658645 for i in $(DOC_SOURCE_DIR) ; do \
659646 _source_dir="$${_source_dir} --source-dir=$$i" ; \
667654 #### html ####
668655
669656 html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
670 @echo 'gtk-doc: Building HTML'
657 @echo ' DOC Building HTML'
671658 @rm -rf html
672659 @mkdir html
673660 @mkhtml_options=""; \
661 gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \
662 if test "$(?)" = "0"; then \
663 if test "x$(V)" = "x1"; then \
664 mkhtml_options="$$mkhtml_options --verbose"; \
665 fi; \
666 fi; \
674667 gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \
675668 if test "$(?)" = "0"; then \
676 mkhtml_options=--path="$(abs_srcdir)"; \
669 mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \
677670 fi; \
678671 cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
679672 -@test "x$(HTML_IMAGES)" = "x" || \
685678 cp $(abs_builddir)/$$file $(abs_builddir)/html; \
686679 fi; \
687680 done;
688 @echo 'gtk-doc: Fixing cross-references'
681 @echo ' DOC Fixing cross-references'
689682 @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
690683 @touch html-build.stamp
691684
692685 #### pdf ####
693686
694687 pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
695 @echo 'gtk-doc: Building PDF'
696 @rm -rf $(DOC_MODULE).pdf
697 @mkpdf_imgdirs=""; \
688 @echo ' DOC Building PDF'
689 @rm -f $(DOC_MODULE).pdf
690 @mkpdf_options=""; \
691 gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \
692 if test "$(?)" = "0"; then \
693 if test "x$(V)" = "x1"; then \
694 mkpdf_options="$$mkpdf_options --verbose"; \
695 fi; \
696 fi; \
698697 if test "x$(HTML_IMAGES)" != "x"; then \
699698 for img in $(HTML_IMAGES); do \
700699 part=`dirname $$img`; \
701 echo $$mkpdf_imgdirs | grep >/dev/null "\-\-imgdir=$$part "; \
700 echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \
702701 if test $$? != 0; then \
703 mkpdf_imgdirs="$$mkpdf_imgdirs --imgdir=$$part"; \
702 mkpdf_options="$$mkpdf_options --imgdir=$$part"; \
704703 fi; \
705704 done; \
706705 fi; \
707 gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_imgdirs $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
706 gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
708707 @touch pdf-build.stamp
709708
710709 ##############
711710
712711 clean-local:
713 rm -f *~ *.bak
714 rm -rf .libs
712 @rm -f *~ *.bak
713 @rm -rf .libs
715714
716715 distclean-local:
717 rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
716 @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
718717 $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
719 if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
718 @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
720719 rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \
721 rm -rf tmpl; \
722720 fi
723721
724722 maintainer-clean-local: clean
725 rm -rf xml html
723 @rm -rf xml html
726724
727725 install-data-local:
728 @installfiles=`echo $(srcdir)/html/*`; \
729 if test "$$installfiles" = '$(srcdir)/html/*'; \
730 then echo '-- Nothing to install' ; \
726 @installfiles=`echo $(builddir)/html/*`; \
727 if test "$$installfiles" = '$(builddir)/html/*'; \
728 then echo 1>&2 'Nothing to install' ; \
731729 else \
732730 if test -n "$(DOC_MODULE_VERSION)"; then \
733731 installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
736734 fi; \
737735 $(mkinstalldirs) $${installdir} ; \
738736 for i in $$installfiles; do \
739 echo '-- Installing '$$i ; \
737 echo ' $(INSTALL_DATA) '$$i ; \
740738 $(INSTALL_DATA) $$i $${installdir}; \
741739 done; \
742740 if test -n "$(DOC_MODULE_VERSION)"; then \
743741 mv -f $${installdir}/$(DOC_MODULE).devhelp2 \
744742 $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \
745 mv -f $${installdir}/$(DOC_MODULE).devhelp \
746 $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp; \
747743 fi; \
748744 $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \
749745 fi
765761 @ENABLE_GTK_DOC_FALSE@ @false
766762
767763 dist-hook: dist-check-gtkdoc dist-hook-local
768 mkdir $(distdir)/tmpl
769 mkdir $(distdir)/html
770 -cp $(build)/tmpl/*.sgml $(distdir)/tmpl
771 cp $(builddir)/html/* $(distdir)/html
772 -cp $(builddir)/$(DOC_MODULE).pdf $(distdir)/
773 -cp $(build)/$(DOC_MODULE).types $(distdir)/
774 -cp $(build)/$(DOC_MODULE)-sections.txt $(distdir)/
775 cd $(distdir) && rm -f $(DISTCLEANFILES)
776 $(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html
764 @mkdir $(distdir)/html
765 @cp ./html/* $(distdir)/html
766 @-cp ./$(DOC_MODULE).pdf $(distdir)/
767 @-cp ./$(DOC_MODULE).types $(distdir)/
768 @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/
769 @cd $(distdir) && rm -f $(DISTCLEANFILES)
770 @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html
777771
778772 .PHONY : dist-hook-local docs
779773
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="TpExportableChannel.html" title="TpExportableChannel">
99 <link rel="next" href="telepathy-glib-TpPresenceMixin.html" title="TpPresenceMixin">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
223223 14
224224 15
225225 16</pre></td>
226 <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span>
227 <span class="function">my_search_channel_fill_properties</span> <span class="gtkdoc opt">(</span>
228 TpBaseChannel <span class="gtkdoc opt">*</span>chan<span class="gtkdoc opt">,</span>
229 GHashTable <span class="gtkdoc opt">*</span>properties<span class="gtkdoc opt">)</span>
230 <span class="gtkdoc opt">{</span>
231 TpBaseChannelClass <span class="gtkdoc opt">*</span>klass <span class="gtkdoc opt">=</span> <span class="function">TP_BASE_CHANNEL_CLASS</span> <span class="gtkdoc opt">(</span>my_search_channel_parent_class<span class="gtkdoc opt">);</span>
232
233 klass<span class="gtkdoc opt">-&gt;</span><span class="function">fill_immutable_properties</span> <span class="gtkdoc opt">(</span>chan<span class="gtkdoc opt">,</span> properties<span class="gtkdoc opt">);</span>
234
235 <span class="function"><a href="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-fill-properties-hash">tp_dbus_properties_mixin_fill_properties_hash</a></span> <span class="gtkdoc opt">(</span>
236 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#G-OBJECT:CAPS">G_OBJECT</a></span> <span class="gtkdoc opt">(</span>chan<span class="gtkdoc opt">),</span> properties<span class="gtkdoc opt">,</span>
237 TP_IFACE_CHANNEL_TYPE_CONTACT_SEARCH<span class="gtkdoc opt">,</span> <span class="string">&quot;Limit&quot;</span><span class="gtkdoc opt">,</span>
238 TP_IFACE_CHANNEL_TYPE_CONTACT_SEARCH<span class="gtkdoc opt">,</span> <span class="string">&quot;AvailableSearchKeys&quot;</span><span class="gtkdoc opt">,</span>
239 TP_IFACE_CHANNEL_TYPE_CONTACT_SEARCH<span class="gtkdoc opt">,</span> <span class="string">&quot;Server&quot;</span><span class="gtkdoc opt">,</span>
240 NULL<span class="gtkdoc opt">);</span>
241 <span class="gtkdoc opt">}</span></pre></td>
226 <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
227 <span class="function">my_search_channel_fill_properties</span><span class="normal"> </span><span class="symbol">(</span>
228 <span class="normal"> </span><span class="usertype">TpBaseChannel</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">chan</span><span class="symbol">,</span>
229 <span class="normal"> </span><span class="usertype">GHashTable</span><span class="normal"> </span><span class="symbol">*</span><span class="normal"><a href="/usr/share/gtk-doc/html/libbonobo/properties.html">properties</a></span><span class="symbol">)</span>
230 <span class="cbracket">{</span>
231 <span class="normal"> </span><span class="usertype">TpBaseChannelClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">klass </span><span class="symbol">=</span><span class="normal"> </span><span class="function">TP_BASE_CHANNEL_CLASS</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">my_search_channel_parent_class</span><span class="symbol">);</span>
232
233 <span class="normal"> klass</span><span class="symbol">-&gt;</span><span class="function">fill_immutable_properties</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">chan</span><span class="symbol">,</span><span class="normal"> <a href="/usr/share/gtk-doc/html/libbonobo/properties.html">properties</a></span><span class="symbol">);</span>
234
235 <span class="normal"> </span><span class="function"><a href="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-fill-properties-hash">tp_dbus_properties_mixin_fill_properties_hash</a></span><span class="normal"> </span><span class="symbol">(</span>
236 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#G-OBJECT:CAPS">G_OBJECT</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">chan</span><span class="symbol">),</span><span class="normal"> <a href="/usr/share/gtk-doc/html/libbonobo/properties.html">properties</a></span><span class="symbol">,</span>
237 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-CONTACT-SEARCH:CAPS">TP_IFACE_CHANNEL_TYPE_CONTACT_SEARCH</a></span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Limit"</span><span class="symbol">,</span>
238 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-CONTACT-SEARCH:CAPS">TP_IFACE_CHANNEL_TYPE_CONTACT_SEARCH</a></span><span class="symbol">,</span><span class="normal"> </span><span class="string">"AvailableSearchKeys"</span><span class="symbol">,</span>
239 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-CONTACT-SEARCH:CAPS">TP_IFACE_CHANNEL_TYPE_CONTACT_SEARCH</a></span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Server"</span><span class="symbol">,</span>
240 <span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
241 <span class="cbracket">}</span></pre></td>
242242 </tr>
243243 </tbody>
244244 </table>
323323 26
324324 27
325325 28</pre></td>
326 <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span>
327 <span class="function">my_channel_close</span> <span class="gtkdoc opt">(</span>TpBaseChannel <span class="gtkdoc opt">*</span>chan<span class="gtkdoc opt">)</span>
328 <span class="gtkdoc opt">{</span>
329 MyChannel <span class="gtkdoc opt">*</span>self <span class="gtkdoc opt">=</span> <span class="function">MY_CHANNEL</span> <span class="gtkdoc opt">(</span>chan<span class="gtkdoc opt">);</span>
330
331 <span class="keyword">if</span> <span class="gtkdoc opt">(</span>self<span class="gtkdoc opt">-&gt;</span>priv<span class="gtkdoc opt">-&gt;</span>closing<span class="gtkdoc opt">)</span>
332 <span class="keyword">return</span><span class="gtkdoc opt">;</span>
333
334 self<span class="gtkdoc opt">-&gt;</span>priv<span class="gtkdoc opt">-&gt;</span>closing <span class="gtkdoc opt">=</span> TRUE<span class="gtkdoc opt">;</span>
335
336 <span class="gtkdoc slc">// some hypothetical channel-specific clean-up function:</span>
337 <span class="function">clean_up</span> <span class="gtkdoc opt">(</span>self<span class="gtkdoc opt">,</span> cleaned_up_cb<span class="gtkdoc opt">);</span>
338 <span class="gtkdoc opt">}</span>
339
340 <span class="gtkdoc kwb">static void</span>
341 <span class="function">cleaned_up_cb</span> <span class="gtkdoc opt">(</span>MyChannel <span class="gtkdoc opt">*</span>self<span class="gtkdoc opt">)</span>
342 <span class="gtkdoc opt">{</span>
343 <span class="gtkdoc slc">// all done, we can finish closing now</span>
344 <span class="function"><a href="TpBaseChannel.html#tp-base-channel-destroyed">tp_base_channel_destroyed</a></span> <span class="gtkdoc opt">(</span><span class="function">TP_BASE_CHANNEL</span> <span class="gtkdoc opt">(</span>self<span class="gtkdoc opt">));</span>
345 <span class="gtkdoc opt">}</span>
346 <span class="gtkdoc kwb">static void</span>
347 <span class="function">my_channel_class_init</span> <span class="gtkdoc opt">(</span>MyChannelClass <span class="gtkdoc opt">*</span>klass<span class="gtkdoc opt">)</span>
348 <span class="gtkdoc opt">{</span>
349 TpBaseChannelClass <span class="gtkdoc opt">*</span>base_channel_class <span class="gtkdoc opt">=</span> <span class="function">TP_BASE_CHANNEL_CLASS</span> <span class="gtkdoc opt">(</span>klass<span class="gtkdoc opt">);</span>
350
351 klass<span class="gtkdoc opt">-&gt;</span>close <span class="gtkdoc opt">=</span> my_channel_close<span class="gtkdoc opt">;</span>
352 <span class="gtkdoc slc">// ...</span>
353 <span class="gtkdoc opt">}</span></pre></td>
326 <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
327 <span class="function">my_channel_close</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">TpBaseChannel</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">chan</span><span class="symbol">)</span>
328 <span class="cbracket">{</span>
329 <span class="normal"> </span><span class="usertype">MyChannel</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">self </span><span class="symbol">=</span><span class="normal"> </span><span class="function">MY_CHANNEL</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">chan</span><span class="symbol">);</span>
330
331 <span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">self</span><span class="symbol">-&gt;</span><span class="normal">priv</span><span class="symbol">-&gt;</span><span class="normal">closing</span><span class="symbol">)</span>
332 <span class="normal"> </span><span class="keyword">return</span><span class="symbol">;</span>
333
334 <span class="normal"> self</span><span class="symbol">-&gt;</span><span class="normal">priv</span><span class="symbol">-&gt;</span><span class="normal">closing </span><span class="symbol">=</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS">TRUE</a></span><span class="symbol">;</span>
335
336 <span class="normal"> </span><span class="comment">// some hypothetical channel-specific clean-up function:</span>
337 <span class="normal"> </span><span class="function">clean_up</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">self</span><span class="symbol">,</span><span class="normal"> cleaned_up_cb</span><span class="symbol">);</span>
338 <span class="cbracket">}</span>
339
340 <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
341 <span class="function">cleaned_up_cb</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">MyChannel</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">self</span><span class="symbol">)</span>
342 <span class="cbracket">{</span>
343 <span class="normal"> </span><span class="comment">// all done, we can finish closing now</span>
344 <span class="normal"> </span><span class="function"><a href="TpBaseChannel.html#tp-base-channel-destroyed">tp_base_channel_destroyed</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">TP_BASE_CHANNEL</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">self</span><span class="symbol">));</span>
345 <span class="cbracket">}</span>
346 <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
347 <span class="function">my_channel_class_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">MyChannelClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">klass</span><span class="symbol">)</span>
348 <span class="cbracket">{</span>
349 <span class="normal"> </span><span class="usertype">TpBaseChannelClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">base_channel_class </span><span class="symbol">=</span><span class="normal"> </span><span class="function">TP_BASE_CHANNEL_CLASS</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">klass</span><span class="symbol">);</span>
350
351 <span class="normal"> klass</span><span class="symbol">-&gt;</span><span class="normal">close </span><span class="symbol">=</span><span class="normal"> my_channel_close</span><span class="symbol">;</span>
352 <span class="normal"> </span><span class="comment">// ...</span>
353 <span class="cbracket">}</span></pre></td>
354354 </tr>
355355 </tbody>
356356 </table>
377377 6
378378 7
379379 8</pre></td>
380 <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span>
381 <span class="function">my_channel_class_init</span> <span class="gtkdoc opt">(</span>MyChannelClass <span class="gtkdoc opt">*</span>klass<span class="gtkdoc opt">)</span>
382 <span class="gtkdoc opt">{</span>
383 TpBaseChannelClass <span class="gtkdoc opt">*</span>base_channel_class <span class="gtkdoc opt">=</span> <span class="function">TP_BASE_CHANNEL_CLASS</span> <span class="gtkdoc opt">(</span>klass<span class="gtkdoc opt">);</span>
384
385 klass<span class="gtkdoc opt">-&gt;</span>close <span class="gtkdoc opt">=</span> tp_base_channel_destroyed<span class="gtkdoc opt">;</span>
386 <span class="gtkdoc slc">// ...</span>
387 <span class="gtkdoc opt">}</span></pre></td>
380 <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
381 <span class="function">my_channel_class_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">MyChannelClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">klass</span><span class="symbol">)</span>
382 <span class="cbracket">{</span>
383 <span class="normal"> </span><span class="usertype">TpBaseChannelClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">base_channel_class </span><span class="symbol">=</span><span class="normal"> </span><span class="function">TP_BASE_CHANNEL_CLASS</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">klass</span><span class="symbol">);</span>
384
385 <span class="normal"> klass</span><span class="symbol">-&gt;</span><span class="normal">close </span><span class="symbol">=</span><span class="normal"> <a href="TpBaseChannel.html#tp-base-channel-destroyed">tp_base_channel_destroyed</a></span><span class="symbol">;</span>
386 <span class="normal"> </span><span class="comment">// ...</span>
387 <span class="cbracket">}</span></pre></td>
388388 </tr>
389389 </tbody>
390390 </table>
737737 </div>
738738 <div class="footer">
739739 <hr>
740 Generated by GTK-Doc V1.17</div>
740 Generated by GTK-Doc V1.17.1</div>
741741 </body>
742742 </html>
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="telepathy-glib-base-protocol.html" title="TpBaseProtocol">
99 <link rel="next" href="TpChannelManager.html" title="TpChannelManager">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
10661066 6
10671067 7
10681068 8</pre></td>
1069 <td class="listing_code"><pre class="programlisting">TpChannelManagerIter iter<span class="gtkdoc opt">;</span>
1070 TpChannelManager <span class="gtkdoc opt">*</span>manager<span class="gtkdoc opt">;</span>
1071
1072 <span class="function"><a href="TpBaseConnection.html#tp-base-connection-channel-manager-iter-init">tp_base_connection_channel_manager_iter_init</a></span> <span class="gtkdoc opt">(&amp;</span>iter<span class="gtkdoc opt">,</span> base_conn<span class="gtkdoc opt">);</span>
1073 <span class="keyword">while</span> <span class="gtkdoc opt">(</span><span class="function"><a href="TpBaseConnection.html#tp-base-connection-channel-manager-iter-next">tp_base_connection_channel_manager_iter_next</a></span> <span class="gtkdoc opt">(&amp;</span>iter<span class="gtkdoc opt">, &amp;</span>manager<span class="gtkdoc opt">))</span>
1074 <span class="gtkdoc opt">{</span>
1075 <span class="gtkdoc opt">...</span><span class="keyword">do</span> something with manager<span class="gtkdoc opt">...</span>
1076 <span class="gtkdoc opt">}</span></pre></td>
1069 <td class="listing_code"><pre class="programlisting"><span class="usertype">TpChannelManagerIter</span><span class="normal"> iter</span><span class="symbol">;</span>
1070 <span class="usertype">TpChannelManager</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">manager</span><span class="symbol">;</span>
1071
1072 <span class="function"><a href="TpBaseConnection.html#tp-base-connection-channel-manager-iter-init">tp_base_connection_channel_manager_iter_init</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">iter</span><span class="symbol">,</span><span class="normal"> base_conn</span><span class="symbol">);</span>
1073 <span class="keyword">while</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="TpBaseConnection.html#tp-base-connection-channel-manager-iter-next">tp_base_connection_channel_manager_iter_next</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">iter</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">manager</span><span class="symbol">))</span>
1074 <span class="normal"> </span><span class="cbracket">{</span>
1075 <span class="normal"> </span><span class="symbol">...</span><span class="keyword">do</span><span class="normal"> something </span><span class="usertype">with</span><span class="normal"> manager</span><span class="symbol">...</span>
1076 <span class="normal"> </span><span class="cbracket">}</span></pre></td>
10771077 </tr>
10781078 </tbody>
10791079 </table>
13171317 </div>
13181318 <div class="footer">
13191319 <hr>
1320 Generated by GTK-Doc V1.17</div>
1320 Generated by GTK-Doc V1.17.1</div>
13211321 </body>
13221322 </html>
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="telepathy-glib-run.html" title="Connection manager life cycle">
99 <link rel="next" href="telepathy-glib-base-protocol.html" title="TpBaseProtocol">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
684684 </div>
685685 <div class="footer">
686686 <hr>
687 Generated by GTK-Doc V1.17</div>
687 Generated by GTK-Doc V1.17.1</div>
688688 </body>
689689 </html>
0 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4 <title>TpBaseRoomConfig</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
6 <link rel="home" href="index.html" title="telepathy-glib API Reference Manual">
7 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
8 <link rel="prev" href="telepathy-glib-TpPropertiesMixin.html" title="TpPropertiesMixin">
9 <link rel="next" href="telepathy-glib-TpGroupMixin.html" title="TpGroupMixin">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
11 <link rel="stylesheet" href="style.css" type="text/css">
12 </head>
13 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
14 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
15 <tr valign="middle">
16 <td><a accesskey="p" href="telepathy-glib-TpPropertiesMixin.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
17 <td><a accesskey="u" href="ch-service-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
18 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
19 <th width="100%" align="center">telepathy-glib API Reference Manual</th>
20 <td><a accesskey="n" href="telepathy-glib-TpGroupMixin.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
21 </tr>
22 <tr><td colspan="5" class="shortcuts">
23 <a href="#TpBaseRoomConfig.synopsis" class="shortcut">Top</a>
24  | 
25 <a href="#TpBaseRoomConfig.description" class="shortcut">Description</a>
26  | 
27 <a href="#TpBaseRoomConfig.object-hierarchy" class="shortcut">Object Hierarchy</a>
28  | 
29 <a href="#TpBaseRoomConfig.properties" class="shortcut">Properties</a>
30 </td></tr>
31 </table>
32 <div class="refentry">
33 <a name="TpBaseRoomConfig"></a><div class="titlepage"></div>
34 <div class="refnamediv"><table width="100%"><tr>
35 <td valign="top">
36 <h2><span class="refentrytitle"><a name="TpBaseRoomConfig.top_of_page"></a>TpBaseRoomConfig</span></h2>
37 <p>TpBaseRoomConfig — implements the RoomConfig interface for chat rooms.</p>
38 </td>
39 <td valign="top" align="right"></td>
40 </tr></table></div>
41 <div class="refsynopsisdiv">
42 <a name="TpBaseRoomConfig.synopsis"></a><h2>Synopsis</h2>
43 <a name="TpBaseRoomConfigProperty"></a><pre class="synopsis">
44 #include &lt;telepathy-glib/base-room-config.h&gt;
45
46 <a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig-struct" title="TpBaseRoomConfig">TpBaseRoomConfig</a>;
47 struct <a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfigClass" title="struct TpBaseRoomConfigClass">TpBaseRoomConfigClass</a>;
48 <span class="returnvalue">void</span> (<a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfigUpdateAsync" title="TpBaseRoomConfigUpdateAsync ()">*TpBaseRoomConfigUpdateAsync</a>) (<em class="parameter"><code><a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a> *self</code></em>,
49 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *validated_properties</code></em>,
50 <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
51 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
52 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> (<a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfigUpdateFinish" title="TpBaseRoomConfigUpdateFinish ()">*TpBaseRoomConfigUpdateFinish</a>) (<em class="parameter"><code><a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a> *self</code></em>,
53 <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *result</code></em>,
54 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
55 <span class="returnvalue">void</span> <a class="link" href="TpBaseRoomConfig.html#tp-base-room-config-register-class" title="tp_base_room_config_register_class ()">tp_base_room_config_register_class</a> (<em class="parameter"><code><a class="link" href="TpBaseChannel.html#TpBaseChannelClass" title="struct TpBaseChannelClass"><span class="type">TpBaseChannelClass</span></a> *base_channel_class</code></em>);
56 <span class="returnvalue">void</span> <a class="link" href="TpBaseRoomConfig.html#tp-base-room-config-iface-init" title="tp_base_room_config_iface_init ()">tp_base_room_config_iface_init</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_iface</code></em>,
57 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> iface_data</code></em>);
58
59 enum <a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfigProperty-enum" title="enum TpBaseRoomConfigProperty">TpBaseRoomConfigProperty</a>;
60 #define <a class="link" href="TpBaseRoomConfig.html#TP-TYPE-BASE-ROOM-CONFIG-PROPERTY:CAPS" title="TP_TYPE_BASE_ROOM_CONFIG_PROPERTY">TP_TYPE_BASE_ROOM_CONFIG_PROPERTY</a>
61
62 <a class="link" href="TpBaseChannel.html" title="TpBaseChannel"><span class="returnvalue">TpBaseChannel</span></a> * <a class="link" href="TpBaseRoomConfig.html#tp-base-room-config-dup-channel" title="tp_base_room_config_dup_channel ()">tp_base_room_config_dup_channel</a> (<em class="parameter"><code><a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a> *self</code></em>);
63 <span class="returnvalue">void</span> <a class="link" href="TpBaseRoomConfig.html#tp-base-room-config-set-can-update-configuration" title="tp_base_room_config_set_can_update_configuration ()">tp_base_room_config_set_can_update_configuration</a>
64 (<em class="parameter"><code><a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a> *self</code></em>,
65 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> can_update_configuration</code></em>);
66 <span class="returnvalue">void</span> <a class="link" href="TpBaseRoomConfig.html#tp-base-room-config-set-property-mutable" title="tp_base_room_config_set_property_mutable ()">tp_base_room_config_set_property_mutable</a>
67 (<em class="parameter"><code><a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a> *self</code></em>,
68 <em class="parameter"><code><a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfigProperty"><span class="type">TpBaseRoomConfigProperty</span></a> property_id</code></em>,
69 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> is_mutable</code></em>);
70 <span class="returnvalue">void</span> <a class="link" href="TpBaseRoomConfig.html#tp-base-room-config-emit-properties-changed" title="tp_base_room_config_emit_properties_changed ()">tp_base_room_config_emit_properties_changed</a>
71 (<em class="parameter"><code><a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a> *self</code></em>);
72 <span class="returnvalue">void</span> <a class="link" href="TpBaseRoomConfig.html#tp-base-room-config-set-retrieved" title="tp_base_room_config_set_retrieved ()">tp_base_room_config_set_retrieved</a> (<em class="parameter"><code><a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a> *self</code></em>);
73 </pre>
74 </div>
75 <div class="refsect1">
76 <a name="TpBaseRoomConfig.object-hierarchy"></a><h2>Object Hierarchy</h2>
77 <pre class="synopsis">
78 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
79 +----TpBaseRoomConfig
80 </pre>
81 <pre class="synopsis">
82 GEnum
83 +----TpBaseRoomConfigProperty
84 </pre>
85 </div>
86 <div class="refsect1">
87 <a name="TpBaseRoomConfig.properties"></a><h2>Properties</h2>
88 <pre class="synopsis">
89 "<a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--anonymous" title='The "anonymous" property'>anonymous</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
90 "<a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--can-update-configuration" title='The "can-update-configuration" property'>can-update-configuration</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
91 "<a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--channel" title='The "channel" property'>channel</a>" <a class="link" href="TpBaseChannel.html" title="TpBaseChannel"><span class="type">TpBaseChannel</span></a>* : Read / Write / Construct Only
92 "<a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--configuration-retrieved" title='The "configuration-retrieved" property'>configuration-retrieved</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read
93 "<a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--description" title='The "description" property'>description</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
94 "<a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--invite-only" title='The "invite-only" property'>invite-only</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
95 "<a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--limit" title='The "limit" property'>limit</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
96 "<a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--moderated" title='The "moderated" property'>moderated</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
97 "<a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--mutable-properties" title='The "mutable-properties" property'>mutable-properties</a>" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a> : Read
98 "<a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--password" title='The "password" property'>password</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
99 "<a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--password-protected" title='The "password-protected" property'>password-protected</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
100 "<a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--persistent" title='The "persistent" property'>persistent</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
101 "<a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--private" title='The "private" property'>private</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
102 "<a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--title" title='The "title" property'>title</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
103 </pre>
104 </div>
105 <div class="refsect1">
106 <a name="TpBaseRoomConfig.description"></a><h2>Description</h2>
107 <p>
108 This class implements the <a class="link" href="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceRoomConfig"><span class="type">TpSvcChannelInterfaceRoomConfig</span></a> interface on
109 multi-user chat room channels. CMs are expected to subclass this base class
110 to implement the protocol-specific details of changing room configuration.
111 Then, in the connection manager's subclass of <a class="link" href="TpBaseChannel.html" title="TpBaseChannel"><span class="type">TpBaseChannel</span></a> for multi-user
112 chats:
113 </p>
114 <p>
115 </p>
116 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
117 <li class="listitem">
118 <p>in <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-DEFINE-TYPE-WITH-CODE:CAPS"><span class="type">G_DEFINE_TYPE_WITH_CODE</span></a>, implement
119 <span class="type">TP_TYPE_SVC_CHANNEL_INTERFACE_ROOM_CONFIG</span> using
120 <a class="link" href="TpBaseRoomConfig.html#tp-base-room-config-iface-init" title="tp_base_room_config_iface_init ()"><code class="function">tp_base_room_config_iface_init()</code></a>:</p>
121 <div class="informalexample">
122 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
123 <tbody>
124 <tr>
125 <td class="listing_lines" align="right"><pre>1
126 2
127 3
128 4
129 5
130 6
131 7</pre></td>
132 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-DEFINE-TYPE-WITH-CODE:CAPS">G_DEFINE_TYPE_WITH_CODE</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">MyMucChannel</span><span class="symbol">,</span><span class="normal"> my_muc_channel</span><span class="symbol">,</span>
133 <span class="normal"> TP_TYPE_BASE_CHANNEL</span><span class="symbol">,</span>
134 <span class="normal"> </span><span class="comment">// ...</span>
135 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">TP_TYPE_SVC_CHANNEL_INTERFACE_ROOM_CONFIG</span><span class="symbol">,</span>
136 <span class="normal"> <a href="TpBaseRoomConfig.html#tp-base-room-config-iface-init">tp_base_room_config_iface_init</a></span><span class="symbol">);</span>
137 <span class="normal"> </span><span class="comment">// ...</span>
138 <span class="normal"> </span><span class="symbol">)</span></pre></td>
139 </tr>
140 </tbody>
141 </table>
142 </div>
143
144 </li>
145 <li class="listitem">
146 <p>in the <code class="function">class_init</code> method, call
147 <a class="link" href="TpBaseRoomConfig.html#tp-base-room-config-register-class" title="tp_base_room_config_register_class ()"><code class="function">tp_base_room_config_register_class()</code></a>:</p>
148 <div class="informalexample">
149 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
150 <tbody>
151 <tr>
152 <td class="listing_lines" align="right"><pre>1
153 2
154 3
155 4
156 5
157 6
158 7</pre></td>
159 <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
160 <span class="function">my_muc_channel_class_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">MyMucChannelClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">klass</span><span class="symbol">)</span>
161 <span class="cbracket">{</span>
162 <span class="normal"> </span><span class="comment">// ...</span>
163 <span class="normal"> </span><span class="function"><a href="TpBaseRoomConfig.html#tp-base-room-config-register-class">tp_base_room_config_register_class</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">TP_BASE_CHANNEL_CLASS</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">klass</span><span class="symbol">));</span>
164 <span class="normal"> </span><span class="comment">// ...</span>
165 <span class="cbracket">}</span></pre></td>
166 </tr>
167 </tbody>
168 </table>
169 </div>
170
171 </li>
172 <li class="listitem"><p>include <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-ROOM-CONFIG:CAPS" title="TP_IFACE_CHANNEL_INTERFACE_ROOM_CONFIG"><code class="literal">TP_IFACE_CHANNEL_INTERFACE_ROOM_CONFIG</code></a> in
173 <a class="link" href="TpBaseChannel.html#TpBaseChannelClass.interfaces"><span class="type">TpBaseChannelClass.interfaces</span></a>.</p></li>
174 </ul></div>
175 <p>
176 </p>
177 <p>
178 If this protocol supports modifying some aspects of the room's
179 configuration, the subclass should call
180 <a class="link" href="TpBaseRoomConfig.html#tp-base-room-config-set-property-mutable" title="tp_base_room_config_set_property_mutable ()"><code class="function">tp_base_room_config_set_property_mutable()</code></a> to mark appropriate properties as
181 potentially-modifiable, call
182 <a class="link" href="TpBaseRoomConfig.html#tp-base-room-config-set-can-update-configuration" title="tp_base_room_config_set_can_update_configuration ()"><code class="function">tp_base_room_config_set_can_update_configuration()</code></a> to indicate whether the
183 local user has permission to modify those properties at present, and
184 implement <a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfigClass.update-async"><span class="type">TpBaseRoomConfigClass.update_async</span></a>. When updates to properties
185 are received from the network, they should be updated on this object using
186 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set"><code class="function">g_object_set()</code></a>:
187 </p>
188 <p>
189 </p>
190 <div class="informalexample">
191 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
192 <tbody>
193 <tr>
194 <td class="listing_lines" align="right"><pre>1
195 2
196 3
197 4
198 5</pre></td>
199 <td class="listing_code"><pre class="programlisting"><span class="function">g_object_self</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">room_config</span><span class="symbol">,</span>
200 <span class="normal"> </span><span class="string">"description"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"A place to bury strangers"</span><span class="symbol">,</span>
201 <span class="normal"> </span><span class="string">"private"</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS">TRUE</a></span><span class="symbol">,</span>
202 <span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
203 <span class="function"><a href="TpBaseRoomConfig.html#tp-base-room-config-emit-properties-changed">tp_base_room_config_emit_properties_changed</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">room_config</span><span class="symbol">);</span></pre></td>
204 </tr>
205 </tbody>
206 </table>
207 </div>
208
209 <p>
210 </p>
211 <p>
212 On joining the room, once the entire room configuration has been retrieved
213 from the network, the CM should call <a class="link" href="TpBaseRoomConfig.html#tp-base-room-config-set-retrieved" title="tp_base_room_config_set_retrieved ()"><code class="function">tp_base_room_config_set_retrieved()</code></a>.
214 </p>
215 </div>
216 <div class="refsect1">
217 <a name="TpBaseRoomConfig.details"></a><h2>Details</h2>
218 <div class="refsect2">
219 <a name="TpBaseRoomConfig-struct"></a><h3>TpBaseRoomConfig</h3>
220 <pre class="programlisting">typedef struct _TpBaseRoomConfig TpBaseRoomConfig;</pre>
221 <p>
222 An object representing the configuration of a multi-user chat room.
223 </p>
224 <p>
225 There are no public fields.
226 </p>
227 </div>
228 <hr>
229 <div class="refsect2">
230 <a name="TpBaseRoomConfigClass"></a><h3>struct TpBaseRoomConfigClass</h3>
231 <pre class="programlisting">struct TpBaseRoomConfigClass {
232 TpBaseRoomConfigUpdateAsync update_async;
233 TpBaseRoomConfigUpdateFinish update_finish;
234 };
235 </pre>
236 <p>
237 Class structure for <a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a>. By default, <em class="parameter"><code>update_async</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>,
238 indicating that updating room configuration is not implemented; subclasses
239 should override it if they wish to support updating room configuration.
240 </p>
241 <div class="variablelist"><table border="0">
242 <col align="left" valign="top">
243 <tbody>
244 <tr>
245 <td><p><span class="term"><a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfigUpdateAsync" title="TpBaseRoomConfigUpdateAsync ()"><span class="type">TpBaseRoomConfigUpdateAsync</span></a> <em class="structfield"><code><a name="TpBaseRoomConfigClass.update-async"></a>update_async</code></em>;</span></p></td>
246 <td>begins a request to modify the room's configuration.</td>
247 </tr>
248 <tr>
249 <td><p><span class="term"><a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfigUpdateFinish" title="TpBaseRoomConfigUpdateFinish ()"><span class="type">TpBaseRoomConfigUpdateFinish</span></a> <em class="structfield"><code><a name="TpBaseRoomConfigClass.update-finish"></a>update_finish</code></em>;</span></p></td>
250 <td>completes a call to <em class="parameter"><code>update_async</code></em>; the default
251 implementation may be used if <em class="parameter"><code>update_async</code></em> uses <a href="http://library.gnome.org/devel/gio/unstable/GSimpleAsyncResult.html"><span class="type">GSimpleAsyncResult</span></a>
252 </td>
253 </tr>
254 </tbody>
255 </table></div>
256 </div>
257 <hr>
258 <div class="refsect2">
259 <a name="TpBaseRoomConfigUpdateAsync"></a><h3>TpBaseRoomConfigUpdateAsync ()</h3>
260 <pre class="programlisting"><span class="returnvalue">void</span> (*TpBaseRoomConfigUpdateAsync) (<em class="parameter"><code><a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a> *self</code></em>,
261 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *validated_properties</code></em>,
262 <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
263 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
264 <p>
265 Signature for a function to begin a network request to update the room
266 configuration. It is guaranteed that <em class="parameter"><code>validated_properties</code></em> will only contain
267 properties which were marked as mutable when the D-Bus method invocation
268 arrived.
269 </p>
270 <p>
271 Note that <a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a> will take care of applying the property updates
272 to itself if the operation succeeds.
273 </p>
274 <div class="variablelist"><table border="0">
275 <col align="left" valign="top">
276 <tbody>
277 <tr>
278 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
279 <td>a <a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a>
280 </td>
281 </tr>
282 <tr>
283 <td><p><span class="term"><em class="parameter"><code>validated_properties</code></em> :</span></p></td>
284 <td>a mapping from <a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfigProperty"><span class="type">TpBaseRoomConfigProperty</span></a> to <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>,
285 whose types have already been validated. The function should not modify
286 this hash table.</td>
287 </tr>
288 <tr>
289 <td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
290 <td>a callback to call on success, failure or disconnection</td>
291 </tr>
292 <tr>
293 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
294 <td>user data for the callback</td>
295 </tr>
296 </tbody>
297 </table></div>
298 </div>
299 <hr>
300 <div class="refsect2">
301 <a name="TpBaseRoomConfigUpdateFinish"></a><h3>TpBaseRoomConfigUpdateFinish ()</h3>
302 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> (*TpBaseRoomConfigUpdateFinish) (<em class="parameter"><code><a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a> *self</code></em>,
303 <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *result</code></em>,
304 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
305 <p>
306 Signature for a function to complete a call to a corresponding
307 implementation of <a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfigUpdateAsync" title="TpBaseRoomConfigUpdateAsync ()"><span class="type">TpBaseRoomConfigUpdateAsync</span></a>.
308 </p>
309 <div class="variablelist"><table border="0">
310 <col align="left" valign="top">
311 <tbody>
312 <tr>
313 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
314 <td>a <a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a>
315 </td>
316 </tr>
317 <tr>
318 <td><p><span class="term"><em class="parameter"><code>result</code></em> :</span></p></td>
319 <td>the result passed to the callback</td>
320 </tr>
321 <tr>
322 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
323 <td>used to return an error if <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> is returned.</td>
324 </tr>
325 <tr>
326 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
327 <td>
328 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the room configuration update was accepted by the server;
329 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, with <em class="parameter"><code>error</code></em> set, otherwise.</td>
330 </tr>
331 </tbody>
332 </table></div>
333 </div>
334 <hr>
335 <div class="refsect2">
336 <a name="tp-base-room-config-register-class"></a><h3>tp_base_room_config_register_class ()</h3>
337 <pre class="programlisting"><span class="returnvalue">void</span> tp_base_room_config_register_class (<em class="parameter"><code><a class="link" href="TpBaseChannel.html#TpBaseChannelClass" title="struct TpBaseChannelClass"><span class="type">TpBaseChannelClass</span></a> *base_channel_class</code></em>);</pre>
338 <p>
339 Registers that D-Bus properties for the RoomConfig1 interface should be
340 handled by a <a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a> object associated with instances of
341 <em class="parameter"><code>base_channel_class</code></em>.
342 </p>
343 <p>
344 <em class="parameter"><code>base_channel_class</code></em> must implement <span class="type">TP_SVC_CHANNEL_INTERFACE_ROOM_CONFIG</span>
345 using <a class="link" href="TpBaseRoomConfig.html#tp-base-room-config-iface-init" title="tp_base_room_config_iface_init ()"><code class="function">tp_base_room_config_iface_init()</code></a>, and instances of <em class="parameter"><code>base_channel_class</code></em>
346 must construct an instance of <a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a>, passing themself as
347 <a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--channel" title='The "channel" property'><span class="type">"channel"</span></a>.
348 </p>
349 <div class="variablelist"><table border="0">
350 <col align="left" valign="top">
351 <tbody><tr>
352 <td><p><span class="term"><em class="parameter"><code>base_channel_class</code></em> :</span></p></td>
353 <td>the class structure for a subclass of <a class="link" href="TpBaseChannel.html" title="TpBaseChannel"><span class="type">TpBaseChannel</span></a>
354 which uses this object to implement <span class="type">TP_SVC_CHANNEL_INTERFACE_ROOM_CONFIG</span>
355 </td>
356 </tr></tbody>
357 </table></div>
358 </div>
359 <hr>
360 <div class="refsect2">
361 <a name="tp-base-room-config-iface-init"></a><h3>tp_base_room_config_iface_init ()</h3>
362 <pre class="programlisting"><span class="returnvalue">void</span> tp_base_room_config_iface_init (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_iface</code></em>,
363 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> iface_data</code></em>);</pre>
364 <p>
365 Pass this as the second argument to <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS"><code class="function">G_IMPLEMENT_INTERFACE()</code></a> when defining a
366 <a class="link" href="TpBaseChannel.html" title="TpBaseChannel"><span class="type">TpBaseChannel</span></a> subclass to declare that TP_SVC_CHANNEL_INTERFACE_ROOM_CONFIG
367 is implemented using this class. The <a class="link" href="TpBaseChannel.html" title="TpBaseChannel"><span class="type">TpBaseChannel</span></a> subclass must also call
368 <a class="link" href="TpBaseRoomConfig.html#tp-base-room-config-register-class" title="tp_base_room_config_register_class ()"><code class="function">tp_base_room_config_register_class()</code></a> in its class_init function, and
369 construct a <a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a> object for each instance.
370 </p>
371 <div class="variablelist"><table border="0">
372 <col align="left" valign="top">
373 <tbody>
374 <tr>
375 <td><p><span class="term"><em class="parameter"><code>g_iface</code></em> :</span></p></td>
376 <td>a pointer to a <a class="link" href="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceRoomConfigClass" title="TpSvcChannelInterfaceRoomConfigClass"><span class="type">TpSvcChannelInterfaceRoomConfigClass</span></a> structure</td>
377 </tr>
378 <tr>
379 <td><p><span class="term"><em class="parameter"><code>iface_data</code></em> :</span></p></td>
380 <td>ignored</td>
381 </tr>
382 </tbody>
383 </table></div>
384 </div>
385 <hr>
386 <div class="refsect2">
387 <a name="TpBaseRoomConfigProperty-enum"></a><h3>enum TpBaseRoomConfigProperty</h3>
388 <pre class="programlisting">typedef enum {
389 TP_BASE_ROOM_CONFIG_ANONYMOUS = 0, /*&lt; nick=Anonymous &gt;*/
390 TP_BASE_ROOM_CONFIG_INVITE_ONLY, /*&lt; nick=InviteOnly &gt;*/
391 TP_BASE_ROOM_CONFIG_LIMIT, /*&lt; nick=Limit &gt;*/
392 TP_BASE_ROOM_CONFIG_MODERATED, /*&lt; nick=Moderated &gt;*/
393 TP_BASE_ROOM_CONFIG_TITLE, /*&lt; nick=Title &gt;*/
394 TP_BASE_ROOM_CONFIG_DESCRIPTION, /*&lt; nick=Description &gt;*/
395 TP_BASE_ROOM_CONFIG_PERSISTENT, /*&lt; nick=Persistent &gt;*/
396 TP_BASE_ROOM_CONFIG_PRIVATE, /*&lt; nick=Private &gt;*/
397 TP_BASE_ROOM_CONFIG_PASSWORD_PROTECTED, /*&lt; nick=PasswordProtected &gt;*/
398 TP_BASE_ROOM_CONFIG_PASSWORD, /*&lt; nick=Password &gt;*/
399
400 TP_NUM_BASE_ROOM_CONFIG_PROPERTIES /*&lt; skip &gt;*/
401 } TpBaseRoomConfigProperty;
402 </pre>
403 <p>
404 An enumeration of room configuration fields, corresponding to GObject
405 properties and, in turn, to D-Bus properties.
406 </p>
407 <div class="variablelist"><table border="0">
408 <col align="left" valign="top">
409 <tbody>
410 <tr>
411 <td><p><a name="TP-BASE-ROOM-CONFIG-ANONYMOUS:CAPS"></a><span class="term"><code class="literal">TP_BASE_ROOM_CONFIG_ANONYMOUS</code></span></p></td>
412 <td>corresponds to <a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--anonymous" title='The "anonymous" property'><span class="type">"anonymous"</span></a>
413 </td>
414 </tr>
415 <tr>
416 <td><p><a name="TP-BASE-ROOM-CONFIG-INVITE-ONLY:CAPS"></a><span class="term"><code class="literal">TP_BASE_ROOM_CONFIG_INVITE_ONLY</code></span></p></td>
417 <td>corresponds to <a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--invite-only" title='The "invite-only" property'><span class="type">"invite-only"</span></a>
418 </td>
419 </tr>
420 <tr>
421 <td><p><a name="TP-BASE-ROOM-CONFIG-LIMIT:CAPS"></a><span class="term"><code class="literal">TP_BASE_ROOM_CONFIG_LIMIT</code></span></p></td>
422 <td>corresponds to <a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--limit" title='The "limit" property'><span class="type">"limit"</span></a>
423 </td>
424 </tr>
425 <tr>
426 <td><p><a name="TP-BASE-ROOM-CONFIG-MODERATED:CAPS"></a><span class="term"><code class="literal">TP_BASE_ROOM_CONFIG_MODERATED</code></span></p></td>
427 <td>corresponds to <a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--moderated" title='The "moderated" property'><span class="type">"moderated"</span></a>
428 </td>
429 </tr>
430 <tr>
431 <td><p><a name="TP-BASE-ROOM-CONFIG-TITLE:CAPS"></a><span class="term"><code class="literal">TP_BASE_ROOM_CONFIG_TITLE</code></span></p></td>
432 <td>corresponds to <a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--title" title='The "title" property'><span class="type">"title"</span></a>
433 </td>
434 </tr>
435 <tr>
436 <td><p><a name="TP-BASE-ROOM-CONFIG-DESCRIPTION:CAPS"></a><span class="term"><code class="literal">TP_BASE_ROOM_CONFIG_DESCRIPTION</code></span></p></td>
437 <td>corresponds to <a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--description" title='The "description" property'><span class="type">"description"</span></a>
438 </td>
439 </tr>
440 <tr>
441 <td><p><a name="TP-BASE-ROOM-CONFIG-PERSISTENT:CAPS"></a><span class="term"><code class="literal">TP_BASE_ROOM_CONFIG_PERSISTENT</code></span></p></td>
442 <td>corresponds to <a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--persistent" title='The "persistent" property'><span class="type">"persistent"</span></a>
443 </td>
444 </tr>
445 <tr>
446 <td><p><a name="TP-BASE-ROOM-CONFIG-PRIVATE:CAPS"></a><span class="term"><code class="literal">TP_BASE_ROOM_CONFIG_PRIVATE</code></span></p></td>
447 <td>corresponds to <a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--private" title='The "private" property'><span class="type">"private"</span></a>
448 </td>
449 </tr>
450 <tr>
451 <td><p><a name="TP-BASE-ROOM-CONFIG-PASSWORD-PROTECTED:CAPS"></a><span class="term"><code class="literal">TP_BASE_ROOM_CONFIG_PASSWORD_PROTECTED</code></span></p></td>
452 <td>corresponds to <a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--password-protected" title='The "password-protected" property'><span class="type">"password-protected"</span></a>
453 </td>
454 </tr>
455 <tr>
456 <td><p><a name="TP-BASE-ROOM-CONFIG-PASSWORD:CAPS"></a><span class="term"><code class="literal">TP_BASE_ROOM_CONFIG_PASSWORD</code></span></p></td>
457 <td>corresponds to <a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--password" title='The "password" property'><span class="type">"password"</span></a>
458 </td>
459 </tr>
460 <tr>
461 <td><p><a name="TP-NUM-BASE-ROOM-CONFIG-PROPERTIES:CAPS"></a><span class="term"><code class="literal">TP_NUM_BASE_ROOM_CONFIG_PROPERTIES</code></span></p></td>
462 <td>the number of configuration properties
463 currently defined.
464 </td>
465 </tr>
466 </tbody>
467 </table></div>
468 </div>
469 <hr>
470 <div class="refsect2">
471 <a name="TP-TYPE-BASE-ROOM-CONFIG-PROPERTY:CAPS"></a><h3>TP_TYPE_BASE_ROOM_CONFIG_PROPERTY</h3>
472 <pre class="programlisting">#define TP_TYPE_BASE_ROOM_CONFIG_PROPERTY (tp_base_room_config_property_get_type ())
473 </pre>
474 <p>
475 The <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Enumeration-and-Flag-Types.html#GEnumClass"><span class="type">GEnumClass</span></a> type of <a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfigProperty"><span class="type">TpBaseRoomConfigProperty</span></a>. (The nicknames are chosen
476 to correspond to unqualified D-Bus property names.)
477 </p>
478 </div>
479 <hr>
480 <div class="refsect2">
481 <a name="tp-base-room-config-dup-channel"></a><h3>tp_base_room_config_dup_channel ()</h3>
482 <pre class="programlisting"><a class="link" href="TpBaseChannel.html" title="TpBaseChannel"><span class="returnvalue">TpBaseChannel</span></a> * tp_base_room_config_dup_channel (<em class="parameter"><code><a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a> *self</code></em>);</pre>
483 <p>
484 Returns the channel to which <em class="parameter"><code>self</code></em> is attached.
485 </p>
486 <div class="variablelist"><table border="0">
487 <col align="left" valign="top">
488 <tbody>
489 <tr>
490 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
491 <td>a <a class="link" href="TpBaseChannel.html" title="TpBaseChannel"><span class="type">TpBaseChannel</span></a>
492 </td>
493 </tr>
494 <tr>
495 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
496 <td>the <span class="type">"channel"</span> property. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
497 </td>
498 </tr>
499 </tbody>
500 </table></div>
501 </div>
502 <hr>
503 <div class="refsect2">
504 <a name="tp-base-room-config-set-can-update-configuration"></a><h3>tp_base_room_config_set_can_update_configuration ()</h3>
505 <pre class="programlisting"><span class="returnvalue">void</span> tp_base_room_config_set_can_update_configuration
506 (<em class="parameter"><code><a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a> *self</code></em>,
507 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> can_update_configuration</code></em>);</pre>
508 <p>
509 Specify whether or not the local user currently has permission to modify the
510 room configuration.
511 </p>
512 <p>
513 Changes made by calling this function are not signalled over D-Bus until
514 <a class="link" href="TpBaseRoomConfig.html#tp-base-room-config-emit-properties-changed" title="tp_base_room_config_emit_properties_changed ()"><code class="function">tp_base_room_config_emit_properties_changed()</code></a> is next called.
515 </p>
516 <div class="variablelist"><table border="0">
517 <col align="left" valign="top">
518 <tbody>
519 <tr>
520 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
521 <td>a <a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a> object.</td>
522 </tr>
523 <tr>
524 <td><p><span class="term"><em class="parameter"><code>can_update_configuration</code></em> :</span></p></td>
525 <td>
526 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the local user has permission to modify
527 properties marked as mutable.</td>
528 </tr>
529 </tbody>
530 </table></div>
531 </div>
532 <hr>
533 <div class="refsect2">
534 <a name="tp-base-room-config-set-property-mutable"></a><h3>tp_base_room_config_set_property_mutable ()</h3>
535 <pre class="programlisting"><span class="returnvalue">void</span> tp_base_room_config_set_property_mutable
536 (<em class="parameter"><code><a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a> *self</code></em>,
537 <em class="parameter"><code><a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfigProperty"><span class="type">TpBaseRoomConfigProperty</span></a> property_id</code></em>,
538 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> is_mutable</code></em>);</pre>
539 <p>
540 Specify whether it is possible for room members to modify the value of
541 <em class="parameter"><code>property_id</code></em> (possibly dependent on them having channel-operator powers), or
542 whether <em class="parameter"><code>property_id</code></em>'s value is an intrinsic fact about the protocol.
543 </p>
544 <p>
545 For example, on IRC it is impossible to configure a channel to hide the
546 identities of participants from others, so <a class="link" href="TpBaseRoomConfig.html#TP-BASE-ROOM-CONFIG-ANONYMOUS:CAPS"><code class="literal">TP_BASE_ROOM_CONFIG_ANONYMOUS</code></a>
547 should be marked as immutable on IRC; whereas channel operators can mark
548 rooms as invite-only, so <a class="link" href="TpBaseRoomConfig.html#TP-BASE-ROOM-CONFIG-INVITE-ONLY:CAPS"><code class="literal">TP_BASE_ROOM_CONFIG_INVITE_ONLY</code></a> should be marked as
549 mutable on IRC.
550 </p>
551 <p>
552 By default, all properties are considered immutable.
553 </p>
554 <p>
555 Call <a class="link" href="TpBaseRoomConfig.html#tp-base-room-config-set-can-update-configuration" title="tp_base_room_config_set_can_update_configuration ()"><code class="function">tp_base_room_config_set_can_update_configuration()</code></a> to specify whether or
556 not it is currently possible for the local user to alter properties marked
557 as mutable.
558 </p>
559 <p>
560 Changes made by calling this function are not signalled over D-Bus until
561 <a class="link" href="TpBaseRoomConfig.html#tp-base-room-config-emit-properties-changed" title="tp_base_room_config_emit_properties_changed ()"><code class="function">tp_base_room_config_emit_properties_changed()</code></a> is next called.
562 </p>
563 <div class="variablelist"><table border="0">
564 <col align="left" valign="top">
565 <tbody>
566 <tr>
567 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
568 <td>a <a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a> object.</td>
569 </tr>
570 <tr>
571 <td><p><span class="term"><em class="parameter"><code>property_id</code></em> :</span></p></td>
572 <td>a property identifier (not including
573 <a class="link" href="TpBaseRoomConfig.html#TP-NUM-BASE-ROOM-CONFIG-PROPERTIES:CAPS"><code class="literal">TP_NUM_BASE_ROOM_CONFIG_PROPERTIES</code></a>)</td>
574 </tr>
575 <tr>
576 <td><p><span class="term"><em class="parameter"><code>is_mutable</code></em> :</span></p></td>
577 <td>
578 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if it is possible for Telepathy clients to modify
579 <em class="parameter"><code>property_id</code></em> when <a class="link" href="TpBaseRoomConfig.html#TpBaseRoomConfig--can-update-configuration" title='The "can-update-configuration" property'><span class="type">"can-update-configuration"</span></a> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>.</td>
580 </tr>
581 </tbody>
582 </table></div>
583 </div>
584 <hr>
585 <div class="refsect2">
586 <a name="tp-base-room-config-emit-properties-changed"></a><h3>tp_base_room_config_emit_properties_changed ()</h3>
587 <pre class="programlisting"><span class="returnvalue">void</span> tp_base_room_config_emit_properties_changed
588 (<em class="parameter"><code><a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a> *self</code></em>);</pre>
589 <p>
590 Signal the new values of properties which have been modified since the last
591 call to this method, if any. This includes changes made by calling
592 <a class="link" href="TpBaseRoomConfig.html#tp-base-room-config-set-can-update-configuration" title="tp_base_room_config_set_can_update_configuration ()"><code class="function">tp_base_room_config_set_can_update_configuration()</code></a> and
593 <a class="link" href="TpBaseRoomConfig.html#tp-base-room-config-set-property-mutable" title="tp_base_room_config_set_property_mutable ()"><code class="function">tp_base_room_config_set_property_mutable()</code></a>, as well as changes to any of the
594 (writeable) GObject properties on this object.
595 </p>
596 <div class="variablelist"><table border="0">
597 <col align="left" valign="top">
598 <tbody><tr>
599 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
600 <td>a <a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a> object.</td>
601 </tr></tbody>
602 </table></div>
603 </div>
604 <hr>
605 <div class="refsect2">
606 <a name="tp-base-room-config-set-retrieved"></a><h3>tp_base_room_config_set_retrieved ()</h3>
607 <pre class="programlisting"><span class="returnvalue">void</span> tp_base_room_config_set_retrieved (<em class="parameter"><code><a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a> *self</code></em>);</pre>
608 <p>
609 Signal that the room's configuration has been retrieved, as well as
610 signalling any queued property changes. This function should be called once
611 all properties have been set to meaningful values.
612 </p>
613 <p>
614 It is safe to call this function more than once; second and subsequent calls
615 are equivalent to calling <a class="link" href="TpBaseRoomConfig.html#tp-base-room-config-emit-properties-changed" title="tp_base_room_config_emit_properties_changed ()"><code class="function">tp_base_room_config_emit_properties_changed()</code></a>.
616 </p>
617 <div class="variablelist"><table border="0">
618 <col align="left" valign="top">
619 <tbody><tr>
620 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
621 <td>a <a class="link" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig"><span class="type">TpBaseRoomConfig</span></a> object</td>
622 </tr></tbody>
623 </table></div>
624 </div>
625 </div>
626 <div class="refsect1">
627 <a name="TpBaseRoomConfig.property-details"></a><h2>Property Details</h2>
628 <div class="refsect2">
629 <a name="TpBaseRoomConfig--anonymous"></a><h3>The <code class="literal">"anonymous"</code> property</h3>
630 <pre class="programlisting"> "anonymous" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
631 <p>True if people may join the channel without other members being made aware of their identity.</p>
632 <p>Default value: FALSE</p>
633 </div>
634 <hr>
635 <div class="refsect2">
636 <a name="TpBaseRoomConfig--can-update-configuration"></a><h3>The <code class="literal">"can-update-configuration"</code> property</h3>
637 <pre class="programlisting"> "can-update-configuration" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
638 <p>If True, the user may call UpdateConfiguration to change the values of the properties listed in MutableProperties.</p>
639 <p>Default value: FALSE</p>
640 </div>
641 <hr>
642 <div class="refsect2">
643 <a name="TpBaseRoomConfig--channel"></a><h3>The <code class="literal">"channel"</code> property</h3>
644 <pre class="programlisting"> "channel" <a class="link" href="TpBaseChannel.html" title="TpBaseChannel"><span class="type">TpBaseChannel</span></a>* : Read / Write / Construct Only</pre>
645 <p>Parent TpBaseChannel.</p>
646 </div>
647 <hr>
648 <div class="refsect2">
649 <a name="TpBaseRoomConfig--configuration-retrieved"></a><h3>The <code class="literal">"configuration-retrieved"</code> property</h3>
650 <pre class="programlisting"> "configuration-retrieved" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read</pre>
651 <p>Becomes True once the room config has been fetched from the network.</p>
652 <p>Default value: FALSE</p>
653 </div>
654 <hr>
655 <div class="refsect2">
656 <a name="TpBaseRoomConfig--description"></a><h3>The <code class="literal">"description"</code> property</h3>
657 <pre class="programlisting"> "description" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
658 <p>A human-readable description of the channel's overall purpose; if any.</p>
659 <p>Default value: ""</p>
660 </div>
661 <hr>
662 <div class="refsect2">
663 <a name="TpBaseRoomConfig--invite-only"></a><h3>The <code class="literal">"invite-only"</code> property</h3>
664 <pre class="programlisting"> "invite-only" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
665 <p>True if people may not join the channel until they have been invited.</p>
666 <p>Default value: FALSE</p>
667 </div>
668 <hr>
669 <div class="refsect2">
670 <a name="TpBaseRoomConfig--limit"></a><h3>The <code class="literal">"limit"</code> property</h3>
671 <pre class="programlisting"> "limit" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
672 <p>The limit to the number of members; or 0 if there is no limit.</p>
673 <p>Default value: 0</p>
674 </div>
675 <hr>
676 <div class="refsect2">
677 <a name="TpBaseRoomConfig--moderated"></a><h3>The <code class="literal">"moderated"</code> property</h3>
678 <pre class="programlisting"> "moderated" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
679 <p>True if channel membership is not sufficient to allow participation.</p>
680 <p>Default value: FALSE</p>
681 </div>
682 <hr>
683 <div class="refsect2">
684 <a name="TpBaseRoomConfig--mutable-properties"></a><h3>The <code class="literal">"mutable-properties"</code> property</h3>
685 <pre class="programlisting"> "mutable-properties" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a> : Read</pre>
686 <p>A list of (unqualified) property names on this interface which may be modified using UpdateConfiguration (if CanUpdateConfiguration is True). Properties not listed here cannot be modified.</p>
687 </div>
688 <hr>
689 <div class="refsect2">
690 <a name="TpBaseRoomConfig--password"></a><h3>The <code class="literal">"password"</code> property</h3>
691 <pre class="programlisting"> "password" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
692 <p>If PasswordProtected is True, the password required to enter the channel, if known. If the password is unknown, or PasswordProtected is False, the empty string.</p>
693 <p>Default value: ""</p>
694 </div>
695 <hr>
696 <div class="refsect2">
697 <a name="TpBaseRoomConfig--password-protected"></a><h3>The <code class="literal">"password-protected"</code> property</h3>
698 <pre class="programlisting"> "password-protected" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
699 <p>True if contacts joining this channel must provide a password to be granted entry.</p>
700 <p>Default value: FALSE</p>
701 </div>
702 <hr>
703 <div class="refsect2">
704 <a name="TpBaseRoomConfig--persistent"></a><h3>The <code class="literal">"persistent"</code> property</h3>
705 <pre class="programlisting"> "persistent" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
706 <p>True if the channel will remain in existence on the server after all members have left it.</p>
707 <p>Default value: FALSE</p>
708 </div>
709 <hr>
710 <div class="refsect2">
711 <a name="TpBaseRoomConfig--private"></a><h3>The <code class="literal">"private"</code> property</h3>
712 <pre class="programlisting"> "private" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
713 <p>True if the channel is not visible to non-members.</p>
714 <p>Default value: FALSE</p>
715 </div>
716 <hr>
717 <div class="refsect2">
718 <a name="TpBaseRoomConfig--title"></a><h3>The <code class="literal">"title"</code> property</h3>
719 <pre class="programlisting"> "title" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
720 <p>A human-visible name for the channel, if it differs from Room.DRAFT.RoomName; the empty string, otherwise.</p>
721 <p>Default value: ""</p>
722 </div>
723 </div>
724 </div>
725 <div class="footer">
726 <hr>
727 Generated by GTK-Doc V1.17.1</div>
728 </body>
729 </html>
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="TpMessage.html" title="TpMessage">
99 <link rel="next" href="telepathy-glib-base-password-channel.html" title="TpBasePasswordChannel">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
287287 </div>
288288 <div class="footer">
289289 <hr>
290 Generated by GTK-Doc V1.17</div>
290 Generated by GTK-Doc V1.17.1</div>
291291 </body>
292292 </html>
77 <link rel="up" href="ch-obsolete.html" title="Obsolete modules">
88 <link rel="prev" href="ch-obsolete.html" title="Obsolete modules">
99 <link rel="next" href="telepathy-glib-debug-ansi.html" title="ANSI codes for debug messages">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
4747 <em class="parameter"><code><a class="link" href="TpChannelIface.html#TpChannelFunc" title="TpChannelFunc ()"><span class="type">TpChannelFunc</span></a> func</code></em>,
4848 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
4949 <span class="returnvalue">void</span> (<a class="link" href="TpChannelFactoryIface.html#TpChannelFactoryIfaceProc" title="TpChannelFactoryIfaceProc ()">*TpChannelFactoryIfaceProc</a>) (<em class="parameter"><code><a class="link" href="TpChannelFactoryIface.html" title="TpChannelFactoryIface"><span class="type">TpChannelFactoryIface</span></a> *self</code></em>);
50 <a class="link" href="TpChannelFactoryIface.html#TpChannelFactoryRequestStatus" title="enum TpChannelFactoryRequestStatus"><span class="returnvalue">TpChannelFactoryRequestStatus</span></a> (<a class="link" href="TpChannelFactoryIface.html#TpChannelFactoryIfaceRequestImpl" title="TpChannelFactoryIfaceRequestImpl ()">*TpChannelFactoryIfaceRequestImpl</a>)
50 <a class="link" href="TpChannelFactoryIface.html#TpChannelFactoryRequestStatus" title="enum TpChannelFactoryRequestStatus"><span class="returnvalue">TpChannelFactoryRequestStatus</span></a> (<a class="link" href="TpChannelFactoryIface.html#TpChannelFactoryIfaceRequestImpl" title="TpChannelFactoryIfaceRequestImpl ()">*TpChannelFactoryIfaceRequestImpl</a>)
5151 (<em class="parameter"><code><a class="link" href="TpChannelFactoryIface.html" title="TpChannelFactoryIface"><span class="type">TpChannelFactoryIface</span></a> *self</code></em>,
5252 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *chan_type</code></em>,
5353 <em class="parameter"><code><a class="link" href="telepathy-glib-enums.html#TpHandleType" title="enum TpHandleType"><span class="type">TpHandleType</span></a> handle_type</code></em>,
6666 <span class="returnvalue">void</span> <a class="link" href="TpChannelFactoryIface.html#tp-channel-factory-iface-foreach" title="tp_channel_factory_iface_foreach ()">tp_channel_factory_iface_foreach</a> (<em class="parameter"><code><a class="link" href="TpChannelFactoryIface.html" title="TpChannelFactoryIface"><span class="type">TpChannelFactoryIface</span></a> *self</code></em>,
6767 <em class="parameter"><code><a class="link" href="TpChannelIface.html#TpChannelFunc" title="TpChannelFunc ()"><span class="type">TpChannelFunc</span></a> func</code></em>,
6868 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
69 <a class="link" href="TpChannelFactoryIface.html#TpChannelFactoryRequestStatus" title="enum TpChannelFactoryRequestStatus"><span class="returnvalue">TpChannelFactoryRequestStatus</span></a> <a class="link" href="TpChannelFactoryIface.html#tp-channel-factory-iface-request" title="tp_channel_factory_iface_request ()">tp_channel_factory_iface_request</a>
69 <a class="link" href="TpChannelFactoryIface.html#TpChannelFactoryRequestStatus" title="enum TpChannelFactoryRequestStatus"><span class="returnvalue">TpChannelFactoryRequestStatus</span></a> <a class="link" href="TpChannelFactoryIface.html#tp-channel-factory-iface-request" title="tp_channel_factory_iface_request ()">tp_channel_factory_iface_request</a>
7070 (<em class="parameter"><code><a class="link" href="TpChannelFactoryIface.html" title="TpChannelFactoryIface"><span class="type">TpChannelFactoryIface</span></a> *self</code></em>,
7171 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *chan_type</code></em>,
7272 <em class="parameter"><code><a class="link" href="telepathy-glib-enums.html#TpHandleType" title="enum TpHandleType"><span class="type">TpHandleType</span></a> handle_type</code></em>,
175175 <hr>
176176 <div class="refsect2">
177177 <a name="TpChannelFactoryIfaceRequestImpl"></a><h3>TpChannelFactoryIfaceRequestImpl ()</h3>
178 <pre class="programlisting"><a class="link" href="TpChannelFactoryIface.html#TpChannelFactoryRequestStatus" title="enum TpChannelFactoryRequestStatus"><span class="returnvalue">TpChannelFactoryRequestStatus</span></a> (*TpChannelFactoryIfaceRequestImpl)
178 <pre class="programlisting"><a class="link" href="TpChannelFactoryIface.html#TpChannelFactoryRequestStatus" title="enum TpChannelFactoryRequestStatus"><span class="returnvalue">TpChannelFactoryRequestStatus</span></a> (*TpChannelFactoryIfaceRequestImpl)
179179 (<em class="parameter"><code><a class="link" href="TpChannelFactoryIface.html" title="TpChannelFactoryIface"><span class="type">TpChannelFactoryIface</span></a> *self</code></em>,
180180 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *chan_type</code></em>,
181181 <em class="parameter"><code><a class="link" href="telepathy-glib-enums.html#TpHandleType" title="enum TpHandleType"><span class="type">TpHandleType</span></a> handle_type</code></em>,
534534 <hr>
535535 <div class="refsect2">
536536 <a name="tp-channel-factory-iface-request"></a><h3>tp_channel_factory_iface_request ()</h3>
537 <pre class="programlisting"><a class="link" href="TpChannelFactoryIface.html#TpChannelFactoryRequestStatus" title="enum TpChannelFactoryRequestStatus"><span class="returnvalue">TpChannelFactoryRequestStatus</span></a> tp_channel_factory_iface_request
537 <pre class="programlisting"><a class="link" href="TpChannelFactoryIface.html#TpChannelFactoryRequestStatus" title="enum TpChannelFactoryRequestStatus"><span class="returnvalue">TpChannelFactoryRequestStatus</span></a> tp_channel_factory_iface_request
538538 (<em class="parameter"><code><a class="link" href="TpChannelFactoryIface.html" title="TpChannelFactoryIface"><span class="type">TpChannelFactoryIface</span></a> *self</code></em>,
539539 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *chan_type</code></em>,
540540 <em class="parameter"><code><a class="link" href="telepathy-glib-enums.html#TpHandleType" title="enum TpHandleType"><span class="type">TpHandleType</span></a> handle_type</code></em>,
801801 </div>
802802 <div class="footer">
803803 <hr>
804 Generated by GTK-Doc V1.17</div>
804 Generated by GTK-Doc V1.17.1</div>
805805 </body>
806806 </html>
77 <link rel="up" href="ch-protocol.html" title="The Telepathy protocol">
88 <link rel="prev" href="telepathy-glib-gtypes.html" title="GType factory functions">
99 <link rel="next" href="ch-client.html" title="Client-side proxies">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
6262 <a name="TpChannelIface.implementations"></a><h2>Known Implementations</h2>
6363 <p>
6464 TpChannelIface is implemented by
65 <a class="link" href="TpBaseChannel.html" title="TpBaseChannel">TpBaseChannel</a>, <a class="link" href="telepathy-glib-base-password-channel.html#TpBasePasswordChannel">TpBasePasswordChannel</a>, <a class="link" href="telepathy-glib-channel.html#TpChannel">TpChannel</a>, <a class="link" href="telepathy-glib-file-transfer-channel.html#TpFileTransferChannel">TpFileTransferChannel</a>, <a class="link" href="telepathy-glib-stream-tube-channel.html#TpStreamTubeChannel">TpStreamTubeChannel</a> and <a class="link" href="telepathy-glib-text-channel.html#TpTextChannel">TpTextChannel</a>.</p>
65 <a class="link" href="TpBaseChannel.html" title="TpBaseChannel">TpBaseChannel</a>, <a class="link" href="telepathy-glib-base-password-channel.html#TpBasePasswordChannel">TpBasePasswordChannel</a>, <a class="link" href="telepathy-glib-channel.html#TpChannel">TpChannel</a>, <a class="link" href="telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel">TpDBusTubeChannel</a>, <a class="link" href="telepathy-glib-file-transfer-channel.html#TpFileTransferChannel">TpFileTransferChannel</a>, <a class="link" href="telepathy-glib-stream-tube-channel.html#TpStreamTubeChannel">TpStreamTubeChannel</a> and <a class="link" href="telepathy-glib-text-channel.html#TpTextChannel">TpTextChannel</a>.</p>
6666 </div>
6767 <div class="refsect1">
6868 <a name="TpChannelIface.properties"></a><h2>Properties</h2>
216216 </div>
217217 <div class="footer">
218218 <hr>
219 Generated by GTK-Doc V1.17</div>
219 Generated by GTK-Doc V1.17.1</div>
220220 </body>
221221 </html>
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="TpBaseConnection.html" title="TpBaseConnection">
99 <link rel="next" href="telepathy-glib-base-contact-list.html" title="TpBaseContactList">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
11521152 </div>
11531153 <div class="footer">
11541154 <hr>
1155 Generated by GTK-Doc V1.17</div>
1155 Generated by GTK-Doc V1.17.1</div>
11561156 </body>
11571157 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-automatic-client-factory.html" title="TpAutomaticClientFactory">
99 <link rel="next" href="TpSignalledMessage.html" title="TpSignalledMessage">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
128128 </div>
129129 <div class="footer">
130130 <hr>
131 Generated by GTK-Doc V1.17</div>
131 Generated by GTK-Doc V1.17.1</div>
132132 </body>
133133 </html>
77 <link rel="up" href="ch-service-handles.html" title="Service-side handle repositories">
88 <link rel="prev" href="TpStaticHandleRepo.html" title="TpStaticHandleRepo">
99 <link rel="next" href="ch-utilities.html" title="Utilities">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
261261 </div>
262262 <div class="footer">
263263 <hr>
264 Generated by GTK-Doc V1.17</div>
264 Generated by GTK-Doc V1.17.1</div>
265265 </body>
266266 </html>
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="telepathy-glib-dbus-properties-mixin.html" title="TpDBusPropertiesMixin">
99 <link rel="next" href="TpBaseChannel.html" title="TpBaseChannel">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
205205 17
206206 18
207207 19</pre></td>
208 <td class="listing_code"><pre class="programlisting"><span class="keyword">case</span> PROP_CHANNEL_PROPERTIES<span class="gtkdoc opt">:</span>
209 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Standard-Parameter-and-Value-Types.html#g-value-take-boxed">g_value_take_boxed</a></span> <span class="gtkdoc opt">(</span>value<span class="gtkdoc opt">,</span>
210 <span class="function"><a href="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-make-properties-hash">tp_dbus_properties_mixin_make_properties_hash</a></span> <span class="gtkdoc opt">(</span>object<span class="gtkdoc opt">,</span>
211 <span class="gtkdoc slc">// The spec says these properties MUST be included:</span>
212 TP_IFACE_CHANNEL<span class="gtkdoc opt">,</span> <span class="string">&quot;TargetHandle&quot;</span><span class="gtkdoc opt">,</span>
213 TP_IFACE_CHANNEL<span class="gtkdoc opt">,</span> <span class="string">&quot;TargetHandleType&quot;</span><span class="gtkdoc opt">,</span>
214 TP_IFACE_CHANNEL<span class="gtkdoc opt">,</span> <span class="string">&quot;ChannelType&quot;</span><span class="gtkdoc opt">,</span>
215 TP_IFACE_CHANNEL<span class="gtkdoc opt">,</span> <span class="string">&quot;TargetID&quot;</span><span class="gtkdoc opt">,</span>
216 TP_IFACE_CHANNEL<span class="gtkdoc opt">,</span> <span class="string">&quot;Requested&quot;</span><span class="gtkdoc opt">,</span>
217 <span class="gtkdoc slc">// These aren't mandatory as of spec 0.17.17</span>
218 <span class="gtkdoc slc">// (but they should be):</span>
219 TP_IFACE_CHANNEL<span class="gtkdoc opt">,</span> <span class="string">&quot;InitiatorHandle&quot;</span><span class="gtkdoc opt">,</span>
220 TP_IFACE_CHANNEL<span class="gtkdoc opt">,</span> <span class="string">&quot;InitiatorID&quot;</span><span class="gtkdoc opt">,</span>
221 TP_IFACE_CHANNEL<span class="gtkdoc opt">,</span> <span class="string">&quot;Interfaces&quot;</span><span class="gtkdoc opt">,</span>
222 <span class="gtkdoc slc">// Perhaps your channel has some other immutable properties:</span>
223 TP_IFACE_CHANNEL_INTERFACE_MESSAGES<span class="gtkdoc opt">,</span> <span class="string">&quot;SupportedContentTypes&quot;</span><span class="gtkdoc opt">,</span>
224 <span class="gtkdoc slc">// etc.</span>
225 NULL<span class="gtkdoc opt">));</span>
226 <span class="keyword">break</span><span class="gtkdoc opt">;</span></pre></td>
208 <td class="listing_code"><pre class="programlisting"><span class="keyword">case</span><span class="normal"> PROP_CHANNEL_PROPERTIES</span><span class="symbol">:</span>
209 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Standard-Parameter-and-Value-Types.html#g-value-take-boxed">g_value_take_boxed</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">value</span><span class="symbol">,</span>
210 <span class="normal"> </span><span class="function"><a href="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-make-properties-hash">tp_dbus_properties_mixin_make_properties_hash</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">object</span><span class="symbol">,</span>
211 <span class="normal"> </span><span class="comment">// The spec says these properties MUST be included:</span>
212 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL:CAPS">TP_IFACE_CHANNEL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="string">"TargetHandle"</span><span class="symbol">,</span>
213 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL:CAPS">TP_IFACE_CHANNEL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="string">"TargetHandleType"</span><span class="symbol">,</span>
214 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL:CAPS">TP_IFACE_CHANNEL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="string">"ChannelType"</span><span class="symbol">,</span>
215 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL:CAPS">TP_IFACE_CHANNEL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="string">"TargetID"</span><span class="symbol">,</span>
216 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL:CAPS">TP_IFACE_CHANNEL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Requested"</span><span class="symbol">,</span>
217 <span class="normal"> </span><span class="comment">// These aren't mandatory as of spec 0.17.17</span>
218 <span class="normal"> </span><span class="comment">// (but they should be):</span>
219 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL:CAPS">TP_IFACE_CHANNEL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="string">"InitiatorHandle"</span><span class="symbol">,</span>
220 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL:CAPS">TP_IFACE_CHANNEL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="string">"InitiatorID"</span><span class="symbol">,</span>
221 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL:CAPS">TP_IFACE_CHANNEL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Interfaces"</span><span class="symbol">,</span>
222 <span class="normal"> </span><span class="comment">// Perhaps your channel has some other immutable properties:</span>
223 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-MESSAGES:CAPS">TP_IFACE_CHANNEL_INTERFACE_MESSAGES</a></span><span class="symbol">,</span><span class="normal"> </span><span class="string">"SupportedContentTypes"</span><span class="symbol">,</span>
224 <span class="normal"> </span><span class="comment">// etc.</span>
225 <span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">));</span>
226 <span class="normal"> </span><span class="keyword">break</span><span class="symbol">;</span></pre></td>
227227 </tr>
228228 </tbody>
229229 </table>
250250 </div>
251251 <div class="footer">
252252 <hr>
253 Generated by GTK-Doc V1.17</div>
253 Generated by GTK-Doc V1.17.1</div>
254254 </body>
255255 </html>
77 <link rel="up" href="ch-utilities.html" title="Utilities">
88 <link rel="prev" href="telepathy-glib-debug-sender.html" title="TpDebugSender">
99 <link rel="next" href="telepathy-glib-TpHeap.html" title="TpHeap">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
706706 7
707707 8
708708 9</pre></td>
709 <td class="listing_code"><pre class="programlisting">TpIntsetFastIter iter<span class="gtkdoc opt">;</span>
710 guint element<span class="gtkdoc opt">;</span>
711
712 <span class="function"><a href="TpIntset.html#tp-intset-fast-iter-init">tp_intset_fast_iter_init</a></span> <span class="gtkdoc opt">(&amp;</span>iter<span class="gtkdoc opt">,</span> intset<span class="gtkdoc opt">);</span>
713
714 <span class="keyword">while</span> <span class="gtkdoc opt">(</span><span class="function"><a href="TpIntset.html#tp-intset-fast-iter-next">tp_intset_fast_iter_next</a></span> <span class="gtkdoc opt">(&amp;</span>iter<span class="gtkdoc opt">, &amp;</span>element<span class="gtkdoc opt">))</span>
715 <span class="gtkdoc opt">{</span>
716 <span class="function">printf</span> <span class="gtkdoc opt">(</span><span class="string">&quot;%u is in the intset</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> element<span class="gtkdoc opt">);</span>
717 <span class="gtkdoc opt">}</span></pre></td>
709 <td class="listing_code"><pre class="programlisting"><span class="usertype">TpIntsetFastIter</span><span class="normal"> iter</span><span class="symbol">;</span>
710 <span class="usertype">guint</span><span class="normal"> element</span><span class="symbol">;</span>
711
712 <span class="function"><a href="TpIntset.html#tp-intset-fast-iter-init">tp_intset_fast_iter_init</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">iter</span><span class="symbol">,</span><span class="normal"> intset</span><span class="symbol">);</span>
713
714 <span class="keyword">while</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="TpIntset.html#tp-intset-fast-iter-next">tp_intset_fast_iter_next</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">iter</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">element</span><span class="symbol">))</span>
715 <span class="cbracket">{</span>
716 <span class="normal"> </span><span class="function">printf</span><span class="normal"> </span><span class="symbol">(</span><span class="string">"%u is in the intset</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> element</span><span class="symbol">);</span>
717 <span class="cbracket">}</span></pre></td>
718718 </tr>
719719 </tbody>
720720 </table>
797797 4
798798 5
799799 6</pre></td>
800 <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">void</span>
801 <span class="function">do_something</span> <span class="gtkdoc opt">(</span><span class="gtkdoc kwb">const</span> TpIntset <span class="gtkdoc opt">*</span>intset<span class="gtkdoc opt">)</span>
802 <span class="gtkdoc opt">{</span>
803 TpIntsetIter iter <span class="gtkdoc opt">=</span> <span class="function"><a href="TpIntset.html#TP-INTSET-ITER-INIT:CAPS">TP_INTSET_ITER_INIT</a></span> <span class="gtkdoc opt">(</span>intset<span class="gtkdoc opt">);</span>
804 <span class="comment">/* ... do something with iter ... */</span>
805 <span class="gtkdoc opt">}</span></pre></td>
800 <td class="listing_code"><pre class="programlisting"><span class="type">void</span>
801 <span class="function">do_something</span><span class="normal"> </span><span class="symbol">(</span><span class="keyword">const</span><span class="normal"> </span><span class="usertype">TpIntset</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">intset</span><span class="symbol">)</span>
802 <span class="cbracket">{</span>
803 <span class="normal"> </span><span class="usertype">TpIntsetIter</span><span class="normal"> iter </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="TpIntset.html#TP-INTSET-ITER-INIT:CAPS">TP_INTSET_ITER_INIT</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">intset</span><span class="symbol">);</span>
804 <span class="normal"> </span><span class="comment">/* ... do something with iter ... */</span>
805 <span class="cbracket">}</span></pre></td>
806806 </tr>
807807 </tbody>
808808 </table>
902902 3
903903 4
904904 5</pre></td>
905 <td class="listing_code"><pre class="programlisting">TpIntsetIter iter <span class="gtkdoc opt">=</span> <span class="function">TP_INTSET_INIT</span> <span class="gtkdoc opt">(</span>intset<span class="gtkdoc opt">);</span>
906 <span class="keyword">while</span> <span class="gtkdoc opt">(</span><span class="function"><a href="TpIntset.html#tp-intset-iter-next">tp_intset_iter_next</a></span> <span class="gtkdoc opt">(&amp;</span>iter<span class="gtkdoc opt">))</span>
907 <span class="gtkdoc opt">{</span>
908 <span class="function">printf</span> <span class="gtkdoc opt">(</span><span class="string">&quot;%u is in the intset</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> iter<span class="gtkdoc opt">.</span>element<span class="gtkdoc opt">);</span>
909 <span class="gtkdoc opt">}</span></pre></td>
905 <td class="listing_code"><pre class="programlisting"><span class="usertype">TpIntsetIter</span><span class="normal"> iter </span><span class="symbol">=</span><span class="normal"> </span><span class="function">TP_INTSET_INIT</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">intset</span><span class="symbol">);</span>
906 <span class="keyword">while</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="TpIntset.html#tp-intset-iter-next">tp_intset_iter_next</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">iter</span><span class="symbol">))</span>
907 <span class="cbracket">{</span>
908 <span class="normal"> </span><span class="function">printf</span><span class="normal"> </span><span class="symbol">(</span><span class="string">"%u is in the intset</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> iter</span><span class="symbol">.</span><span class="normal">element</span><span class="symbol">);</span>
909 <span class="cbracket">}</span></pre></td>
910910 </tr>
911911 </tbody>
912912 </table>
957957 </div>
958958 <div class="footer">
959959 <hr>
960 Generated by GTK-Doc V1.17</div>
960 Generated by GTK-Doc V1.17.1</div>
961961 </body>
962962 </html>
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="telepathy-glib-TpMessageMixin.html" title="TpMessageMixin">
99 <link rel="next" href="TpCMMessage.html" title="TpCMMessage">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
4747 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> part</code></em>);
4848 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="TpMessage.html#tp-message-to-text" title="tp_message_to_text ()">tp_message_to_text</a> (<em class="parameter"><code><a class="link" href="TpMessage.html" title="TpMessage"><span class="type">TpMessage</span></a> *message</code></em>,
4949 <em class="parameter"><code><a class="link" href="telepathy-glib-enums.html#TpChannelTextMessageFlags" title="enum TpChannelTextMessageFlags"><span class="type">TpChannelTextMessageFlags</span></a> *out_flags</code></em>);
50 <a class="link" href="telepathy-glib-enums.html#TpChannelTextMessageType" title="enum TpChannelTextMessageType"><span class="returnvalue">TpChannelTextMessageType</span></a> <a class="link" href="TpMessage.html#tp-message-get-message-type" title="tp_message_get_message_type ()">tp_message_get_message_type</a> (<em class="parameter"><code><a class="link" href="TpMessage.html" title="TpMessage"><span class="type">TpMessage</span></a> *self</code></em>);
50 <a class="link" href="telepathy-glib-enums.html#TpChannelTextMessageType" title="enum TpChannelTextMessageType"><span class="returnvalue">TpChannelTextMessageType</span></a> <a class="link" href="TpMessage.html#tp-message-get-message-type" title="tp_message_get_message_type ()">tp_message_get_message_type</a> (<em class="parameter"><code><a class="link" href="TpMessage.html" title="TpMessage"><span class="type">TpMessage</span></a> *self</code></em>);
5151 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a> <a class="link" href="TpMessage.html#tp-message-get-received-timestamp" title="tp_message_get_received_timestamp ()">tp_message_get_received_timestamp</a> (<em class="parameter"><code><a class="link" href="TpMessage.html" title="TpMessage"><span class="type">TpMessage</span></a> *self</code></em>);
5252 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a> <a class="link" href="TpMessage.html#tp-message-get-sent-timestamp" title="tp_message_get_sent_timestamp ()">tp_message_get_sent_timestamp</a> (<em class="parameter"><code><a class="link" href="TpMessage.html" title="TpMessage"><span class="type">TpMessage</span></a> *self</code></em>);
5353 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="TpMessage.html#tp-message-get-specific-to-interface" title="tp_message_get_specific_to_interface ()">tp_message_get_specific_to_interface</a>
259259 <hr>
260260 <div class="refsect2">
261261 <a name="tp-message-get-message-type"></a><h3>tp_message_get_message_type ()</h3>
262 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpChannelTextMessageType" title="enum TpChannelTextMessageType"><span class="returnvalue">TpChannelTextMessageType</span></a> tp_message_get_message_type (<em class="parameter"><code><a class="link" href="TpMessage.html" title="TpMessage"><span class="type">TpMessage</span></a> *self</code></em>);</pre>
262 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpChannelTextMessageType" title="enum TpChannelTextMessageType"><span class="returnvalue">TpChannelTextMessageType</span></a> tp_message_get_message_type (<em class="parameter"><code><a class="link" href="TpMessage.html" title="TpMessage"><span class="type">TpMessage</span></a> *self</code></em>);</pre>
263263 <p>
264264
265265 </p>
12251225 </div>
12261226 <div class="footer">
12271227 <hr>
1228 Generated by GTK-Doc V1.17</div>
1228 Generated by GTK-Doc V1.17.1</div>
12291229 </body>
12301230 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="TpClientMessage.html" title="TpClientMessage">
99 <link rel="next" href="telepathy-glib-text-channel.html" title="TpTextChannel">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
123123 </div>
124124 <div class="footer">
125125 <hr>
126 Generated by GTK-Doc V1.17</div>
126 Generated by GTK-Doc V1.17.1</div>
127127 </body>
128128 </html>
77 <link rel="up" href="ch-service-handles.html" title="Service-side handle repositories">
88 <link rel="prev" href="telepathy-glib-handle-repo.html" title="TpHandleRepoIface">
99 <link rel="next" href="TpDynamicHandleRepo.html" title="TpDynamicHandleRepo">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
171171 </div>
172172 <div class="footer">
173173 <hr>
174 Generated by GTK-Doc V1.17</div>
174 Generated by GTK-Doc V1.17.1</div>
175175 </body>
176176 </html>
66 <link rel="home" href="index.html" title="telepathy-glib API Reference Manual">
77 <link rel="up" href="index.html" title="telepathy-glib API Reference Manual">
88 <link rel="prev" href="telepathy-glib-TpTextMixin.html" title="TpTextMixin">
9 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
9 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1010 <link rel="stylesheet" href="style.css" type="text/css">
1111 </head>
1212 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
7777 </div>
7878 <div class="footer">
7979 <hr>
80 Generated by GTK-Doc V1.17</div>
80 Generated by GTK-Doc V1.17.1</div>
8181 </body>
8282 </html>
77 <link rel="up" href="index.html" title="telepathy-glib API Reference Manual">
88 <link rel="prev" href="TpChannelIface.html" title="TpChannelIface">
99 <link rel="next" href="telepathy-glib-connection-manager.html" title="TpConnectionManager">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
9696 <span class="refentrytitle"><a href="telepathy-glib-channel-group.html">Group and Conference interfaces on Channels</a></span><span class="refpurpose"> — client-side wrappers for Group and Conference</span>
9797 </dt>
9898 <dt>
99 <span class="refentrytitle"><a href="telepathy-glib-channel-room.html">Room-related interfaces on Channels</a></span><span class="refpurpose"> — client-side wrappers for Room, RoomConfig and Subject</span>
100 </dt>
101 <dt>
99102 <span class="refentrytitle"><a href="telepathy-glib-channel-text.html">Text channels</a></span><span class="refpurpose"> — client-side wrappers for the Text channel type, and
100103 the Chat State and Password interfaces</span>
101104 </dt>
160163 </dt>
161164 <dt>
162165 <span class="refentrytitle"><a href="telepathy-glib-stream-tube-connection.html">TpStreamTubeConnection</a></span><span class="refpurpose"> — a connection on a Stream Tube</span>
166 </dt>
167 <dt>
168 <span class="refentrytitle"><a href="telepathy-glib-dbus-tube-channel.html">TpDBusTubeChannel</a></span><span class="refpurpose"> — proxy object for a dbus tube channel</span>
163169 </dt>
164170 <dt>
165171 <span class="refentrytitle"><a href="telepathy-glib-client-channel-factory.html">TpClientChannelFactoryInterface</a></span><span class="refpurpose"> — an interface for client channel factories</span>
193199 </div>
194200 <div class="footer">
195201 <hr>
196 Generated by GTK-Doc V1.17</div>
202 Generated by GTK-Doc V1.17.1</div>
197203 </body>
198204 </html>
77 <link rel="up" href="index.html" title="telepathy-glib API Reference Manual">
88 <link rel="prev" href="index.html" title="telepathy-glib API Reference Manual">
99 <link rel="next" href="telepathy-glib-proxy.html" title="TpProxy">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
4747 </div>
4848 <div class="footer">
4949 <hr>
50 Generated by GTK-Doc V1.17</div>
50 Generated by GTK-Doc V1.17.1</div>
5151 </body>
5252 </html>
77 <link rel="up" href="index.html" title="telepathy-glib API Reference Manual">
88 <link rel="prev" href="telepathy-glib-TpHeap.html" title="TpHeap">
99 <link rel="next" href="TpChannelFactoryIface.html" title="TpChannelFactoryIface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
3535 </div>
3636 <div class="footer">
3737 <hr>
38 Generated by GTK-Doc V1.17</div>
38 Generated by GTK-Doc V1.17.1</div>
3939 </body>
4040 </html>
77 <link rel="up" href="index.html" title="telepathy-glib API Reference Manual">
88 <link rel="prev" href="telepathy-glib-proxy-subclass.html" title="TpProxy subclasses and mixins">
99 <link rel="next" href="telepathy-glib-defs.html" title="Miscellaneous definitions">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
5151 </div>
5252 <div class="footer">
5353 <hr>
54 Generated by GTK-Doc V1.17</div>
54 Generated by GTK-Doc V1.17.1</div>
5555 </body>
5656 </html>
77 <link rel="up" href="index.html" title="telepathy-glib API Reference Manual">
88 <link rel="prev" href="telepathy-glib-svc-tls.html" title="Service-side TLS interfaces">
99 <link rel="next" href="telepathy-glib-run.html" title="Connection manager life cycle">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
6363 interface</span>
6464 </dt>
6565 <dt>
66 <span class="refentrytitle"><a href="TpBaseRoomConfig.html">TpBaseRoomConfig</a></span><span class="refpurpose"> — implements the RoomConfig interface for chat rooms.</span>
67 </dt>
68 <dt>
6669 <span class="refentrytitle"><a href="telepathy-glib-TpGroupMixin.html">TpGroupMixin</a></span><span class="refpurpose"> — a mixin implementation of the groups interface</span>
6770 </dt>
6871 <dt>
112115 </div>
113116 <div class="footer">
114117 <hr>
115 Generated by GTK-Doc V1.17</div>
118 Generated by GTK-Doc V1.17.1</div>
116119 </body>
117120 </html>
77 <link rel="up" href="index.html" title="telepathy-glib API Reference Manual">
88 <link rel="prev" href="telepathy-glib-file-transfer-channel.html" title="TpFileTransferChannel">
99 <link rel="next" href="telepathy-glib-svc.html" title="The TpSvc* interfaces">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
3636 </dt>
3737 <dt>
3838 <span class="refentrytitle"><a href="telepathy-glib-svc-channel-group.html">Service-side Channel Group and Conference interfaces</a></span><span class="refpurpose"> — Groups of contacts</span>
39 </dt>
40 <dt>
41 <span class="refentrytitle"><a href="telepathy-glib-svc-channel-room.html">Service-side room interfaces</a></span><span class="refpurpose"> — room-related functionality for channels</span>
3942 </dt>
4043 <dt>
4144 <span class="refentrytitle"><a href="telepathy-glib-svc-channel-contactlist.html">Contact List channels</a></span><span class="refpurpose"> — service-side interface for the Contact List channel type</span>
117120 </div>
118121 <div class="footer">
119122 <hr>
120 Generated by GTK-Doc V1.17</div>
123 Generated by GTK-Doc V1.17.1</div>
121124 </body>
122125 </html>
77 <link rel="up" href="index.html" title="telepathy-glib API Reference Manual">
88 <link rel="prev" href="telepathy-glib-dtmf.html" title="DTMF dialstring interpreter">
99 <link rel="next" href="telepathy-glib-handle-repo.html" title="TpHandleRepoIface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
3737 </div>
3838 <div class="footer">
3939 <hr>
40 Generated by GTK-Doc V1.17</div>
40 Generated by GTK-Doc V1.17.1</div>
4141 </body>
4242 </html>
77 <link rel="up" href="index.html" title="telepathy-glib API Reference Manual">
88 <link rel="prev" href="TpDynamicHandleRepo.html" title="TpDynamicHandleRepo">
99 <link rel="next" href="telepathy-glib-util.html" title="Utilities">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
4444 </div>
4545 <div class="footer">
4646 <hr>
47 Generated by GTK-Doc V1.17</div>
47 Generated by GTK-Doc V1.17.1</div>
4848 </body>
4949 </html>
55 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
66 <link rel="home" href="index.html" title="telepathy-glib API Reference Manual">
77 <link rel="next" href="ch-dbus.html" title="General D-Bus support">
8 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
8 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
99 <link rel="stylesheet" href="style.css" type="text/css">
1010 </head>
1111 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
1414 <div>
1515 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">telepathy-glib API Reference Manual</p></th></tr></table></div>
1616 <div><p class="releaseinfo">
17 This manual documents telepathy-glib version 0.15.5
17 This manual documents telepathy-glib version 0.15.9
1818 .
1919 The latest development version of this documentation can be found here:
2020 <a class="ulink" href="http://telepathy.freedesktop.org/doc/telepathy-glib/" target="_top">online copy of the telepathy-glib API Reference Manual</a>.
151151 <span class="refentrytitle"><a href="telepathy-glib-channel-group.html">Group and Conference interfaces on Channels</a></span><span class="refpurpose"> — client-side wrappers for Group and Conference</span>
152152 </dt>
153153 <dt>
154 <span class="refentrytitle"><a href="telepathy-glib-channel-room.html">Room-related interfaces on Channels</a></span><span class="refpurpose"> — client-side wrappers for Room, RoomConfig and Subject</span>
155 </dt>
156 <dt>
154157 <span class="refentrytitle"><a href="telepathy-glib-channel-text.html">Text channels</a></span><span class="refpurpose"> — client-side wrappers for the Text channel type, and
155158 the Chat State and Password interfaces</span>
156159 </dt>
215218 </dt>
216219 <dt>
217220 <span class="refentrytitle"><a href="telepathy-glib-stream-tube-connection.html">TpStreamTubeConnection</a></span><span class="refpurpose"> — a connection on a Stream Tube</span>
221 </dt>
222 <dt>
223 <span class="refentrytitle"><a href="telepathy-glib-dbus-tube-channel.html">TpDBusTubeChannel</a></span><span class="refpurpose"> — proxy object for a dbus tube channel</span>
218224 </dt>
219225 <dt>
220226 <span class="refentrytitle"><a href="telepathy-glib-client-channel-factory.html">TpClientChannelFactoryInterface</a></span><span class="refpurpose"> — an interface for client channel factories</span>
263269 <span class="refentrytitle"><a href="telepathy-glib-svc-channel-group.html">Service-side Channel Group and Conference interfaces</a></span><span class="refpurpose"> — Groups of contacts</span>
264270 </dt>
265271 <dt>
272 <span class="refentrytitle"><a href="telepathy-glib-svc-channel-room.html">Service-side room interfaces</a></span><span class="refpurpose"> — room-related functionality for channels</span>
273 </dt>
274 <dt>
266275 <span class="refentrytitle"><a href="telepathy-glib-svc-channel-contactlist.html">Contact List channels</a></span><span class="refpurpose"> — service-side interface for the Contact List channel type</span>
267276 </dt>
268277 <dt>
380389 <dt>
381390 <span class="refentrytitle"><a href="telepathy-glib-TpPropertiesMixin.html">TpPropertiesMixin</a></span><span class="refpurpose"> — a mixin implementation of the Telepathy.Properties
382391 interface</span>
392 </dt>
393 <dt>
394 <span class="refentrytitle"><a href="TpBaseRoomConfig.html">TpBaseRoomConfig</a></span><span class="refpurpose"> — implements the RoomConfig interface for chat rooms.</span>
383395 </dt>
384396 <dt>
385397 <span class="refentrytitle"><a href="telepathy-glib-TpGroupMixin.html">TpGroupMixin</a></span><span class="refpurpose"> — a mixin implementation of the groups interface</span>
480492 </div>
481493 <div class="footer">
482494 <hr>
483 Generated by GTK-Doc V1.17</div>
495 Generated by GTK-Doc V1.17.1</div>
484496 </body>
485497 </html>
2929 <ANCHOR id="tp-proxy-get-invalidated" href="telepathy-glib/telepathy-glib-proxy.html#tp-proxy-get-invalidated">
3030 <ANCHOR id="tp-proxy-dbus-error-to-gerror" href="telepathy-glib/telepathy-glib-proxy.html#tp-proxy-dbus-error-to-gerror">
3131 <ANCHOR id="TP-DBUS-ERRORS:CAPS" href="telepathy-glib/telepathy-glib-proxy.html#TP-DBUS-ERRORS:CAPS">
32 <ANCHOR id="TpDBusError" href="telepathy-glib/telepathy-glib-proxy.html#TpDBusError">
32 <ANCHOR id="TpDBusError-enum" href="telepathy-glib/telepathy-glib-proxy.html#TpDBusError-enum">
3333 <ANCHOR id="TP-DBUS-ERROR-UNKNOWN-REMOTE-ERROR:CAPS" href="telepathy-glib/telepathy-glib-proxy.html#TP-DBUS-ERROR-UNKNOWN-REMOTE-ERROR:CAPS">
3434 <ANCHOR id="TP-DBUS-ERROR-PROXY-UNREFERENCED:CAPS" href="telepathy-glib/telepathy-glib-proxy.html#TP-DBUS-ERROR-PROXY-UNREFERENCED:CAPS">
3535 <ANCHOR id="TP-DBUS-ERROR-NO-INTERFACE:CAPS" href="telepathy-glib/telepathy-glib-proxy.html#TP-DBUS-ERROR-NO-INTERFACE:CAPS">
107107 <ANCHOR id="tp-dbus-g-method-return-not-implemented" href="telepathy-glib/telepathy-glib-dbus.html#tp-dbus-g-method-return-not-implemented">
108108 <ANCHOR id="tp-get-bus" href="telepathy-glib/telepathy-glib-dbus.html#tp-get-bus">
109109 <ANCHOR id="tp-get-bus-proxy" href="telepathy-glib/telepathy-glib-dbus.html#tp-get-bus-proxy">
110 <ANCHOR id="TpDBusNameType" href="telepathy-glib/telepathy-glib-dbus.html#TpDBusNameType">
110 <ANCHOR id="TpDBusNameType-enum" href="telepathy-glib/telepathy-glib-dbus.html#TpDBusNameType-enum">
111111 <ANCHOR id="TP-DBUS-NAME-TYPE-UNIQUE:CAPS" href="telepathy-glib/telepathy-glib-dbus.html#TP-DBUS-NAME-TYPE-UNIQUE:CAPS">
112112 <ANCHOR id="TP-DBUS-NAME-TYPE-WELL-KNOWN:CAPS" href="telepathy-glib/telepathy-glib-dbus.html#TP-DBUS-NAME-TYPE-WELL-KNOWN:CAPS">
113113 <ANCHOR id="TP-DBUS-NAME-TYPE-BUS-DAEMON:CAPS" href="telepathy-glib/telepathy-glib-dbus.html#TP-DBUS-NAME-TYPE-BUS-DAEMON:CAPS">
398398 <ANCHOR id="TP-IFACE-QUARK-CHANNEL-INTERFACE-HOLD:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-HOLD:CAPS">
399399 <ANCHOR id="TP-IFACE-CHANNEL-INTERFACE-PASSWORD:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-PASSWORD:CAPS">
400400 <ANCHOR id="TP-IFACE-QUARK-CHANNEL-INTERFACE-PASSWORD:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-PASSWORD:CAPS">
401 <ANCHOR id="TP-IFACE-CHANNEL-INTERFACE-ROOM:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-ROOM:CAPS">
402 <ANCHOR id="TP-IFACE-QUARK-CHANNEL-INTERFACE-ROOM:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-ROOM:CAPS">
403 <ANCHOR id="TP-IFACE-CHANNEL-INTERFACE-ROOM-CONFIG:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-ROOM-CONFIG:CAPS">
404 <ANCHOR id="TP-IFACE-QUARK-CHANNEL-INTERFACE-ROOM-CONFIG:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-ROOM-CONFIG:CAPS">
401405 <ANCHOR id="TP-IFACE-CHANNEL-INTERFACE-SASL-AUTHENTICATION:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-SASL-AUTHENTICATION:CAPS">
402406 <ANCHOR id="TP-IFACE-QUARK-CHANNEL-INTERFACE-SASL-AUTHENTICATION:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-SASL-AUTHENTICATION:CAPS">
403407 <ANCHOR id="TP-IFACE-CHANNEL-INTERFACE-SECURABLE:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-SECURABLE:CAPS">
404408 <ANCHOR id="TP-IFACE-QUARK-CHANNEL-INTERFACE-SECURABLE:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-SECURABLE:CAPS">
405409 <ANCHOR id="TP-IFACE-CHANNEL-INTERFACE-SMS:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-SMS:CAPS">
406410 <ANCHOR id="TP-IFACE-QUARK-CHANNEL-INTERFACE-SMS:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-SMS:CAPS">
411 <ANCHOR id="TP-IFACE-CHANNEL-INTERFACE-SUBJECT:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-SUBJECT:CAPS">
412 <ANCHOR id="TP-IFACE-QUARK-CHANNEL-INTERFACE-SUBJECT:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-SUBJECT:CAPS">
407413 <ANCHOR id="TP-IFACE-CHANNEL-INTERFACE-MEDIA-SIGNALLING:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-MEDIA-SIGNALLING:CAPS">
408414 <ANCHOR id="TP-IFACE-QUARK-CHANNEL-INTERFACE-MEDIA-SIGNALLING:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-MEDIA-SIGNALLING:CAPS">
409415 <ANCHOR id="TP-IFACE-CHANNEL-INTERFACE-MESSAGES:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-MESSAGES:CAPS">
497503 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-GROUP-HANDLE-OWNERS:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-GROUP-HANDLE-OWNERS:CAPS">
498504 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-GROUP-LOCAL-PENDING-MEMBERS:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-GROUP-LOCAL-PENDING-MEMBERS:CAPS">
499505 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-GROUP-MEMBERS:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-GROUP-MEMBERS:CAPS">
506 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-GROUP-MEMBER-IDENTIFIERS:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-GROUP-MEMBER-IDENTIFIERS:CAPS">
500507 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-GROUP-REMOTE-PENDING-MEMBERS:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-GROUP-REMOTE-PENDING-MEMBERS:CAPS">
501508 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-GROUP-SELF-HANDLE:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-GROUP-SELF-HANDLE:CAPS">
502509 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-MESSAGES-DELIVERY-REPORTING-SUPPORT:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-MESSAGES-DELIVERY-REPORTING-SUPPORT:CAPS">
504511 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-MESSAGES-MESSAGE-TYPES:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-MESSAGES-MESSAGE-TYPES:CAPS">
505512 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-MESSAGES-PENDING-MESSAGES:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-MESSAGES-PENDING-MESSAGES:CAPS">
506513 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-MESSAGES-SUPPORTED-CONTENT-TYPES:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-MESSAGES-SUPPORTED-CONTENT-TYPES:CAPS">
514 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-ANONYMOUS:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-ANONYMOUS:CAPS">
515 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-CAN-UPDATE-CONFIGURATION:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-CAN-UPDATE-CONFIGURATION:CAPS">
516 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-CONFIGURATION-RETRIEVED:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-CONFIGURATION-RETRIEVED:CAPS">
517 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-DESCRIPTION:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-DESCRIPTION:CAPS">
518 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-INVITEONLY:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-INVITEONLY:CAPS">
519 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-LIMIT:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-LIMIT:CAPS">
520 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-MODERATED:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-MODERATED:CAPS">
521 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-MUTABLE-PROPERTIES:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-MUTABLE-PROPERTIES:CAPS">
522 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-PASSWORD:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-PASSWORD:CAPS">
523 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-PASSWORD-PROTECTED:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-PASSWORD-PROTECTED:CAPS">
524 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-PERSISTENT:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-PERSISTENT:CAPS">
525 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-PRIVATE:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-PRIVATE:CAPS">
526 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-TITLE:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-TITLE:CAPS">
527 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-ROOM-ROOM-NAME:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-ROOM-NAME:CAPS">
528 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-ROOM-SERVER:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-SERVER:CAPS">
507529 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-SASL-AUTHENTICATION-AUTHORIZATION-IDENTITY:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SASL-AUTHENTICATION-AUTHORIZATION-IDENTITY:CAPS">
508530 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-SASL-AUTHENTICATION-AVAILABLE-MECHANISMS:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SASL-AUTHENTICATION-AVAILABLE-MECHANISMS:CAPS">
509531 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-SASL-AUTHENTICATION-CAN-TRY-AGAIN:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SASL-AUTHENTICATION-CAN-TRY-AGAIN:CAPS">
520542 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-SERVICE-POINT-INITIAL-SERVICE-POINT:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SERVICE-POINT-INITIAL-SERVICE-POINT:CAPS">
521543 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-SMS-FLASH:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SMS-FLASH:CAPS">
522544 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-SMS-SMS-CHANNEL:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SMS-SMS-CHANNEL:CAPS">
545 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-SUBJECT-ACTOR:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SUBJECT-ACTOR:CAPS">
546 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-SUBJECT-ACTOR-HANDLE:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SUBJECT-ACTOR-HANDLE:CAPS">
547 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-SUBJECT-CAN-SET:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SUBJECT-CAN-SET:CAPS">
548 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-SUBJECT-SUBJECT:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SUBJECT-SUBJECT:CAPS">
549 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-SUBJECT-TIMESTAMP:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SUBJECT-TIMESTAMP:CAPS">
523550 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-TUBE-PARAMETERS:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-TUBE-PARAMETERS:CAPS">
524551 <ANCHOR id="TP-PROP-CHANNEL-INTERFACE-TUBE-STATE:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-TUBE-STATE:CAPS">
525552 <ANCHOR id="TP-PROP-CHANNEL-TYPE-SERVER-AUTHENTICATION-AUTHENTICATION-METHOD:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-SERVER-AUTHENTICATION-AUTHENTICATION-METHOD:CAPS">
10441071 <ANCHOR id="TP-ERROR-PREFIX:CAPS" href="telepathy-glib/telepathy-glib-errors.html#TP-ERROR-PREFIX:CAPS">
10451072 <ANCHOR id="TP-ERROR:CAPS" href="telepathy-glib/telepathy-glib-errors.html#TP-ERROR:CAPS">
10461073 <ANCHOR id="TP-TYPE-ERROR:CAPS" href="telepathy-glib/telepathy-glib-errors.html#TP-TYPE-ERROR:CAPS">
1047 <ANCHOR id="TpError" href="telepathy-glib/telepathy-glib-errors.html#TpError">
1074 <ANCHOR id="TpError-enum" href="telepathy-glib/telepathy-glib-errors.html#TpError-enum">
10481075 <ANCHOR id="TP-ERROR-NETWORK-ERROR:CAPS" href="telepathy-glib/telepathy-glib-errors.html#TP-ERROR-NETWORK-ERROR:CAPS">
10491076 <ANCHOR id="TP-ERROR-NOT-IMPLEMENTED:CAPS" href="telepathy-glib/telepathy-glib-errors.html#TP-ERROR-NOT-IMPLEMENTED:CAPS">
10501077 <ANCHOR id="TP-ERROR-INVALID-ARGUMENT:CAPS" href="telepathy-glib/telepathy-glib-errors.html#TP-ERROR-INVALID-ARGUMENT:CAPS">
10951122 <ANCHOR id="TP-ERROR-EMERGENCY-CALLS-NOT-SUPPORTED:CAPS" href="telepathy-glib/telepathy-glib-errors.html#TP-ERROR-EMERGENCY-CALLS-NOT-SUPPORTED:CAPS">
10961123 <ANCHOR id="TP-ERROR-SOFTWARE-UPGRADE-REQUIRED:CAPS" href="telepathy-glib/telepathy-glib-errors.html#TP-ERROR-SOFTWARE-UPGRADE-REQUIRED:CAPS">
10971124 <ANCHOR id="TP-ERROR-INSUFFICIENT-BALANCE:CAPS" href="telepathy-glib/telepathy-glib-errors.html#TP-ERROR-INSUFFICIENT-BALANCE:CAPS">
1125 <ANCHOR id="TP-ERROR-MEDIA-CODECS-INCOMPATIBLE:CAPS" href="telepathy-glib/telepathy-glib-errors.html#TP-ERROR-MEDIA-CODECS-INCOMPATIBLE:CAPS">
1126 <ANCHOR id="TP-ERROR-MEDIA-UNSUPPORTED-TYPE:CAPS" href="telepathy-glib/telepathy-glib-errors.html#TP-ERROR-MEDIA-UNSUPPORTED-TYPE:CAPS">
1127 <ANCHOR id="TP-ERROR-MEDIA-STREAMING-ERROR:CAPS" href="telepathy-glib/telepathy-glib-errors.html#TP-ERROR-MEDIA-STREAMING-ERROR:CAPS">
10981128 <ANCHOR id="tp-g-set-error-invalid-handle-type" href="telepathy-glib/telepathy-glib-errors.html#tp-g-set-error-invalid-handle-type">
10991129 <ANCHOR id="tp-g-set-error-unsupported-handle-type" href="telepathy-glib/telepathy-glib-errors.html#tp-g-set-error-unsupported-handle-type">
11001130 <ANCHOR id="tp-error-get-dbus-name" href="telepathy-glib/telepathy-glib-errors.html#tp-error-get-dbus-name">
11481178 <ANCHOR id="TP-ERROR-STR-SOFTWARE-UPGRADE-REQUIRED:CAPS" href="telepathy-glib/telepathy-glib-errors.html#TP-ERROR-STR-SOFTWARE-UPGRADE-REQUIRED:CAPS">
11491179 <ANCHOR id="TP-ERROR-STR-EMERGENCY-CALLS-NOT-SUPPORTED:CAPS" href="telepathy-glib/telepathy-glib-errors.html#TP-ERROR-STR-EMERGENCY-CALLS-NOT-SUPPORTED:CAPS">
11501180 <ANCHOR id="TP-ERROR-STR-INSUFFICIENT-BALANCE:CAPS" href="telepathy-glib/telepathy-glib-errors.html#TP-ERROR-STR-INSUFFICIENT-BALANCE:CAPS">
1181 <ANCHOR id="TP-ERROR-STR-MEDIA-CODECS-INCOMPATIBLE:CAPS" href="telepathy-glib/telepathy-glib-errors.html#TP-ERROR-STR-MEDIA-CODECS-INCOMPATIBLE:CAPS">
1182 <ANCHOR id="TP-ERROR-STR-MEDIA-UNSUPPORTED-TYPE:CAPS" href="telepathy-glib/telepathy-glib-errors.html#TP-ERROR-STR-MEDIA-UNSUPPORTED-TYPE:CAPS">
1183 <ANCHOR id="TP-ERROR-STR-MEDIA-STREAMING-ERROR:CAPS" href="telepathy-glib/telepathy-glib-errors.html#TP-ERROR-STR-MEDIA-STREAMING-ERROR:CAPS">
11511184 <ANCHOR id="telepathy-glib-gtypes" href="telepathy-glib/telepathy-glib-gtypes.html">
11521185 <ANCHOR id="telepathy-glib-gtypes.synopsis" href="telepathy-glib/telepathy-glib-gtypes.html#telepathy-glib-gtypes.synopsis">
11531186 <ANCHOR id="telepathy-glib-gtypes.description" href="telepathy-glib/telepathy-glib-gtypes.html#telepathy-glib-gtypes.description">
13261359 <ANCHOR id="TpConnectionManagerWhenReadyCb" href="telepathy-glib/telepathy-glib-connection-manager.html#TpConnectionManagerWhenReadyCb">
13271360 <ANCHOR id="tp-connection-manager-call-when-ready" href="telepathy-glib/telepathy-glib-connection-manager.html#tp-connection-manager-call-when-ready">
13281361 <ANCHOR id="tp-connection-manager-is-ready" href="telepathy-glib/telepathy-glib-connection-manager.html#tp-connection-manager-is-ready">
1329 <ANCHOR id="TpCMInfoSource" href="telepathy-glib/telepathy-glib-connection-manager.html#TpCMInfoSource">
1362 <ANCHOR id="TpCMInfoSource-enum" href="telepathy-glib/telepathy-glib-connection-manager.html#TpCMInfoSource-enum">
13301363 <ANCHOR id="TP-CM-INFO-SOURCE-NONE:CAPS" href="telepathy-glib/telepathy-glib-connection-manager.html#TP-CM-INFO-SOURCE-NONE:CAPS">
13311364 <ANCHOR id="TP-CM-INFO-SOURCE-FILE:CAPS" href="telepathy-glib/telepathy-glib-connection-manager.html#TP-CM-INFO-SOURCE-FILE:CAPS">
13321365 <ANCHOR id="TP-CM-INFO-SOURCE-LIVE:CAPS" href="telepathy-glib/telepathy-glib-connection-manager.html#TP-CM-INFO-SOURCE-LIVE:CAPS">
14021435 <ANCHOR id="tp-protocol-get-icon-name" href="telepathy-glib/telepathy-glib-protocol.html#tp-protocol-get-icon-name">
14031436 <ANCHOR id="tp-protocol-get-vcard-field" href="telepathy-glib/telepathy-glib-protocol.html#tp-protocol-get-vcard-field">
14041437 <ANCHOR id="tp-protocol-get-authentication-types" href="telepathy-glib/telepathy-glib-protocol.html#tp-protocol-get-authentication-types">
1438 <ANCHOR id="tp-protocol-get-avatar-requirements" href="telepathy-glib/telepathy-glib-protocol.html#tp-protocol-get-avatar-requirements">
14051439 <ANCHOR id="tp-cli-protocol-call-identify-account" href="telepathy-glib/telepathy-glib-protocol.html#tp-cli-protocol-call-identify-account">
14061440 <ANCHOR id="tp-cli-protocol-call-normalize-contact" href="telepathy-glib/telepathy-glib-protocol.html#tp-cli-protocol-call-normalize-contact">
14071441 <ANCHOR id="tp-cli-protocol-callback-for-identify-account" href="telepathy-glib/telepathy-glib-protocol.html#tp-cli-protocol-callback-for-identify-account">
14081442 <ANCHOR id="tp-cli-protocol-callback-for-normalize-contact" href="telepathy-glib/telepathy-glib-protocol.html#tp-cli-protocol-callback-for-normalize-contact">
14091443 <ANCHOR id="telepathy-glib-protocol.property-details" href="telepathy-glib/telepathy-glib-protocol.html#telepathy-glib-protocol.property-details">
14101444 <ANCHOR id="TpProtocol--authentication-types" href="telepathy-glib/telepathy-glib-protocol.html#TpProtocol--authentication-types">
1445 <ANCHOR id="TpProtocol--avatar-requirements" href="telepathy-glib/telepathy-glib-protocol.html#TpProtocol--avatar-requirements">
14111446 <ANCHOR id="TpProtocol--capabilities" href="telepathy-glib/telepathy-glib-protocol.html#TpProtocol--capabilities">
14121447 <ANCHOR id="TpProtocol--english-name" href="telepathy-glib/telepathy-glib-protocol.html#TpProtocol--english-name">
14131448 <ANCHOR id="TpProtocol--icon-name" href="telepathy-glib/telepathy-glib-protocol.html#TpProtocol--icon-name">
16081643 <ANCHOR id="telepathy-glib-contact.description" href="telepathy-glib/telepathy-glib-contact.html#telepathy-glib-contact.description">
16091644 <ANCHOR id="telepathy-glib-contact.details" href="telepathy-glib/telepathy-glib-contact.html#telepathy-glib-contact.details">
16101645 <ANCHOR id="TpContact-struct" href="telepathy-glib/telepathy-glib-contact.html#TpContact-struct">
1611 <ANCHOR id="TpContactFeature" href="telepathy-glib/telepathy-glib-contact.html#TpContactFeature">
1646 <ANCHOR id="TpContactFeature-enum" href="telepathy-glib/telepathy-glib-contact.html#TpContactFeature-enum">
16121647 <ANCHOR id="TP-CONTACT-FEATURE-ALIAS:CAPS" href="telepathy-glib/telepathy-glib-contact.html#TP-CONTACT-FEATURE-ALIAS:CAPS">
16131648 <ANCHOR id="TP-CONTACT-FEATURE-AVATAR-TOKEN:CAPS" href="telepathy-glib/telepathy-glib-contact.html#TP-CONTACT-FEATURE-AVATAR-TOKEN:CAPS">
16141649 <ANCHOR id="TP-CONTACT-FEATURE-PRESENCE:CAPS" href="telepathy-glib/telepathy-glib-contact.html#TP-CONTACT-FEATURE-PRESENCE:CAPS">
20332068 <ANCHOR id="tp-channel-init-known-interfaces" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-init-known-interfaces">
20342069 <ANCHOR id="tp-channel-is-ready" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-is-ready">
20352070 <ANCHOR id="TP-CHANNEL-FEATURE-CORE:CAPS" href="telepathy-glib/telepathy-glib-channel.html#TP-CHANNEL-FEATURE-CORE:CAPS">
2071 <ANCHOR id="TP-CHANNEL-FEATURE-CONTACTS:CAPS" href="telepathy-glib/telepathy-glib-channel.html#TP-CHANNEL-FEATURE-CONTACTS:CAPS">
20362072 <ANCHOR id="tp-channel-borrow-connection" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-borrow-connection">
20372073 <ANCHOR id="tp-channel-borrow-immutable-properties" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-borrow-immutable-properties">
20382074 <ANCHOR id="tp-channel-get-channel-type" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-get-channel-type">
20392075 <ANCHOR id="tp-channel-get-channel-type-id" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-get-channel-type-id">
20402076 <ANCHOR id="tp-channel-get-handle" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-get-handle">
20412077 <ANCHOR id="tp-channel-get-identifier" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-get-identifier">
2078 <ANCHOR id="tp-channel-get-target-contact" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-get-target-contact">
20422079 <ANCHOR id="tp-channel-get-requested" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-get-requested">
20432080 <ANCHOR id="tp-channel-get-initiator-handle" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-get-initiator-handle">
20442081 <ANCHOR id="tp-channel-get-initiator-identifier" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-get-initiator-identifier">
2082 <ANCHOR id="tp-channel-get-initiator-contact" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-get-initiator-contact">
20452083 <ANCHOR id="tp-channel-join-async" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-join-async">
20462084 <ANCHOR id="tp-channel-join-finish" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-join-finish">
20472085 <ANCHOR id="tp-channel-leave-async" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-leave-async">
20552093 <ANCHOR id="TP-CHANNEL-FEATURE-GROUP:CAPS" href="telepathy-glib/telepathy-glib-channel.html#TP-CHANNEL-FEATURE-GROUP:CAPS">
20562094 <ANCHOR id="tp-channel-group-get-flags" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-group-get-flags">
20572095 <ANCHOR id="tp-channel-group-get-handle-owner" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-group-get-handle-owner">
2096 <ANCHOR id="tp-channel-group-get-contact-owner" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-group-get-contact-owner">
20582097 <ANCHOR id="tp-channel-group-get-self-handle" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-group-get-self-handle">
2098 <ANCHOR id="tp-channel-group-get-self-contact" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-group-get-self-contact">
2099 <ANCHOR id="tp-channel-group-get-members" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-group-get-members">
2100 <ANCHOR id="tp-channel-group-dup-members-contacts" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-group-dup-members-contacts">
20592101 <ANCHOR id="tp-channel-group-get-local-pending" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-group-get-local-pending">
2060 <ANCHOR id="tp-channel-group-get-members" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-group-get-members">
2102 <ANCHOR id="tp-channel-group-dup-local-pending-contacts" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-group-dup-local-pending-contacts">
20612103 <ANCHOR id="tp-channel-group-get-remote-pending" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-group-get-remote-pending">
2104 <ANCHOR id="tp-channel-group-dup-remote-pending-contacts" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-group-dup-remote-pending-contacts">
20622105 <ANCHOR id="tp-channel-group-get-local-pending-info" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-group-get-local-pending-info">
2106 <ANCHOR id="tp-channel-group-get-local-pending-contact-info" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-group-get-local-pending-contact-info">
20632107 <ANCHOR id="TP-ERRORS-REMOVED-FROM-GROUP:CAPS" href="telepathy-glib/telepathy-glib-channel.html#TP-ERRORS-REMOVED-FROM-GROUP:CAPS">
20642108 <ANCHOR id="TP-CHANNEL-FEATURE-PASSWORD:CAPS" href="telepathy-glib/telepathy-glib-channel.html#TP-CHANNEL-FEATURE-PASSWORD:CAPS">
20652109 <ANCHOR id="tp-channel-password-needed" href="telepathy-glib/telepathy-glib-channel.html#tp-channel-password-needed">
20872131 <ANCHOR id="TpChannel--channel-ready" href="telepathy-glib/telepathy-glib-channel.html#TpChannel--channel-ready">
20882132 <ANCHOR id="TpChannel--connection" href="telepathy-glib/telepathy-glib-channel.html#TpChannel--connection">
20892133 <ANCHOR id="TpChannel--group-flags" href="telepathy-glib/telepathy-glib-channel.html#TpChannel--group-flags">
2134 <ANCHOR id="TpChannel--group-self-contact" href="telepathy-glib/telepathy-glib-channel.html#TpChannel--group-self-contact">
20902135 <ANCHOR id="TpChannel--group-self-handle" href="telepathy-glib/telepathy-glib-channel.html#TpChannel--group-self-handle">
20912136 <ANCHOR id="TpChannel--identifier" href="telepathy-glib/telepathy-glib-channel.html#TpChannel--identifier">
2137 <ANCHOR id="TpChannel--initiator-contact" href="telepathy-glib/telepathy-glib-channel.html#TpChannel--initiator-contact">
20922138 <ANCHOR id="TpChannel--initiator-handle" href="telepathy-glib/telepathy-glib-channel.html#TpChannel--initiator-handle">
20932139 <ANCHOR id="TpChannel--initiator-identifier" href="telepathy-glib/telepathy-glib-channel.html#TpChannel--initiator-identifier">
20942140 <ANCHOR id="TpChannel--password-needed" href="telepathy-glib/telepathy-glib-channel.html#TpChannel--password-needed">
20952141 <ANCHOR id="TpChannel--requested" href="telepathy-glib/telepathy-glib-channel.html#TpChannel--requested">
2142 <ANCHOR id="TpChannel--target-contact" href="telepathy-glib/telepathy-glib-channel.html#TpChannel--target-contact">
20962143 <ANCHOR id="telepathy-glib-channel.signal-details" href="telepathy-glib/telepathy-glib-channel.html#telepathy-glib-channel.signal-details">
20972144 <ANCHOR id="TpChannel-chat-state-changed" href="telepathy-glib/telepathy-glib-channel.html#TpChannel-chat-state-changed">
2145 <ANCHOR id="TpChannel-group-contacts-changed" href="telepathy-glib/telepathy-glib-channel.html#TpChannel-group-contacts-changed">
20982146 <ANCHOR id="TpChannel-group-flags-changed" href="telepathy-glib/telepathy-glib-channel.html#TpChannel-group-flags-changed">
20992147 <ANCHOR id="TpChannel-group-members-changed" href="telepathy-glib/telepathy-glib-channel.html#TpChannel-group-members-changed">
21002148 <ANCHOR id="TpChannel-group-members-changed-detailed" href="telepathy-glib/telepathy-glib-channel.html#TpChannel-group-members-changed-detailed">
21462194 <ANCHOR id="tp-cli-channel-interface-group-connect-to-self-handle-changed" href="telepathy-glib/telepathy-glib-channel-group.html#tp-cli-channel-interface-group-connect-to-self-handle-changed">
21472195 <ANCHOR id="tp-cli-channel-interface-group-signal-callback-handle-owners-changed" href="telepathy-glib/telepathy-glib-channel-group.html#tp-cli-channel-interface-group-signal-callback-handle-owners-changed">
21482196 <ANCHOR id="tp-cli-channel-interface-group-signal-callback-self-handle-changed" href="telepathy-glib/telepathy-glib-channel-group.html#tp-cli-channel-interface-group-signal-callback-self-handle-changed">
2197 <ANCHOR id="tp-cli-channel-interface-group-connect-to-handle-owners-changed-detailed" href="telepathy-glib/telepathy-glib-channel-group.html#tp-cli-channel-interface-group-connect-to-handle-owners-changed-detailed">
2198 <ANCHOR id="tp-cli-channel-interface-group-connect-to-self-contact-changed" href="telepathy-glib/telepathy-glib-channel-group.html#tp-cli-channel-interface-group-connect-to-self-contact-changed">
2199 <ANCHOR id="tp-cli-channel-interface-group-signal-callback-handle-owners-changed-detailed" href="telepathy-glib/telepathy-glib-channel-group.html#tp-cli-channel-interface-group-signal-callback-handle-owners-changed-detailed">
2200 <ANCHOR id="tp-cli-channel-interface-group-signal-callback-self-contact-changed" href="telepathy-glib/telepathy-glib-channel-group.html#tp-cli-channel-interface-group-signal-callback-self-contact-changed">
2201 <ANCHOR id="tp-svc-channel-interface-group-emit-handle-owners-changed-detailed" href="telepathy-glib/telepathy-glib-channel-group.html#tp-svc-channel-interface-group-emit-handle-owners-changed-detailed">
2202 <ANCHOR id="tp-svc-channel-interface-group-emit-self-contact-changed" href="telepathy-glib/telepathy-glib-channel-group.html#tp-svc-channel-interface-group-emit-self-contact-changed">
21492203 <ANCHOR id="tp-cli-channel-interface-conference-connect-to-channel-merged" href="telepathy-glib/telepathy-glib-channel-group.html#tp-cli-channel-interface-conference-connect-to-channel-merged">
21502204 <ANCHOR id="tp-cli-channel-interface-conference-connect-to-channel-removed" href="telepathy-glib/telepathy-glib-channel-group.html#tp-cli-channel-interface-conference-connect-to-channel-removed">
21512205 <ANCHOR id="tp-cli-channel-interface-conference-signal-callback-channel-merged" href="telepathy-glib/telepathy-glib-channel-group.html#tp-cli-channel-interface-conference-signal-callback-channel-merged">
21522206 <ANCHOR id="tp-cli-channel-interface-conference-signal-callback-channel-removed" href="telepathy-glib/telepathy-glib-channel-group.html#tp-cli-channel-interface-conference-signal-callback-channel-removed">
21532207 <ANCHOR id="telepathy-glib-channel-group.see-also" href="telepathy-glib/telepathy-glib-channel-group.html#telepathy-glib-channel-group.see-also">
2208 <ANCHOR id="telepathy-glib-channel-room" href="telepathy-glib/telepathy-glib-channel-room.html">
2209 <ANCHOR id="telepathy-glib-channel-room.synopsis" href="telepathy-glib/telepathy-glib-channel-room.html#telepathy-glib-channel-room.synopsis">
2210 <ANCHOR id="telepathy-glib-channel-room.description" href="telepathy-glib/telepathy-glib-channel-room.html#telepathy-glib-channel-room.description">
2211 <ANCHOR id="telepathy-glib-channel-room.details" href="telepathy-glib/telepathy-glib-channel-room.html#telepathy-glib-channel-room.details">
2212 <ANCHOR id="tp-cli-channel-interface-room-config-call-update-configuration" href="telepathy-glib/telepathy-glib-channel-room.html#tp-cli-channel-interface-room-config-call-update-configuration">
2213 <ANCHOR id="tp-cli-channel-interface-room-config-callback-for-update-configuration" href="telepathy-glib/telepathy-glib-channel-room.html#tp-cli-channel-interface-room-config-callback-for-update-configuration">
2214 <ANCHOR id="tp-cli-channel-interface-subject-call-set-subject" href="telepathy-glib/telepathy-glib-channel-room.html#tp-cli-channel-interface-subject-call-set-subject">
2215 <ANCHOR id="tp-cli-channel-interface-subject-callback-for-set-subject" href="telepathy-glib/telepathy-glib-channel-room.html#tp-cli-channel-interface-subject-callback-for-set-subject">
21542216 <ANCHOR id="telepathy-glib-channel-text" href="telepathy-glib/telepathy-glib-channel-text.html">
21552217 <ANCHOR id="telepathy-glib-channel-text.synopsis" href="telepathy-glib/telepathy-glib-channel-text.html#telepathy-glib-channel-text.synopsis">
21562218 <ANCHOR id="telepathy-glib-channel-text.description" href="telepathy-glib/telepathy-glib-channel-text.html#telepathy-glib-channel-text.description">
29052967 <ANCHOR id="TpStreamTubeConnection--socket-connection" href="telepathy-glib/telepathy-glib-stream-tube-connection.html#TpStreamTubeConnection--socket-connection">
29062968 <ANCHOR id="telepathy-glib-stream-tube-connection.signal-details" href="telepathy-glib/telepathy-glib-stream-tube-connection.html#telepathy-glib-stream-tube-connection.signal-details">
29072969 <ANCHOR id="TpStreamTubeConnection-closed" href="telepathy-glib/telepathy-glib-stream-tube-connection.html#TpStreamTubeConnection-closed">
2970 <ANCHOR id="telepathy-glib-dbus-tube-channel" href="telepathy-glib/telepathy-glib-dbus-tube-channel.html">
2971 <ANCHOR id="telepathy-glib-dbus-tube-channel.synopsis" href="telepathy-glib/telepathy-glib-dbus-tube-channel.html#telepathy-glib-dbus-tube-channel.synopsis">
2972 <ANCHOR id="TpDBusTubeChannel" href="telepathy-glib/telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel">
2973 <ANCHOR id="telepathy-glib-dbus-tube-channel.object-hierarchy" href="telepathy-glib/telepathy-glib-dbus-tube-channel.html#telepathy-glib-dbus-tube-channel.object-hierarchy">
2974 <ANCHOR id="telepathy-glib-dbus-tube-channel.implemented-interfaces" href="telepathy-glib/telepathy-glib-dbus-tube-channel.html#telepathy-glib-dbus-tube-channel.implemented-interfaces">
2975 <ANCHOR id="telepathy-glib-dbus-tube-channel.properties" href="telepathy-glib/telepathy-glib-dbus-tube-channel.html#telepathy-glib-dbus-tube-channel.properties">
2976 <ANCHOR id="telepathy-glib-dbus-tube-channel.description" href="telepathy-glib/telepathy-glib-dbus-tube-channel.html#telepathy-glib-dbus-tube-channel.description">
2977 <ANCHOR id="telepathy-glib-dbus-tube-channel.details" href="telepathy-glib/telepathy-glib-dbus-tube-channel.html#telepathy-glib-dbus-tube-channel.details">
2978 <ANCHOR id="TpDBusTubeChannel-struct" href="telepathy-glib/telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel-struct">
2979 <ANCHOR id="TpDBusTubeChannelClass" href="telepathy-glib/telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannelClass">
2980 <ANCHOR id="tp-dbus-tube-channel-get-parameters" href="telepathy-glib/telepathy-glib-dbus-tube-channel.html#tp-dbus-tube-channel-get-parameters">
2981 <ANCHOR id="tp-dbus-tube-channel-get-service-name" href="telepathy-glib/telepathy-glib-dbus-tube-channel.html#tp-dbus-tube-channel-get-service-name">
2982 <ANCHOR id="telepathy-glib-dbus-tube-channel.property-details" href="telepathy-glib/telepathy-glib-dbus-tube-channel.html#telepathy-glib-dbus-tube-channel.property-details">
2983 <ANCHOR id="TpDBusTubeChannel--parameters" href="telepathy-glib/telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel--parameters">
2984 <ANCHOR id="TpDBusTubeChannel--service-name" href="telepathy-glib/telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel--service-name">
29082985 <ANCHOR id="telepathy-glib-client-channel-factory" href="telepathy-glib/telepathy-glib-client-channel-factory.html">
29092986 <ANCHOR id="telepathy-glib-client-channel-factory.synopsis" href="telepathy-glib/telepathy-glib-client-channel-factory.html#telepathy-glib-client-channel-factory.synopsis">
29102987 <ANCHOR id="TpClientChannelFactory" href="telepathy-glib/telepathy-glib-client-channel-factory.html#TpClientChannelFactory">
32033280 <ANCHOR id="telepathy-glib-svc-channel-group.signal-details" href="telepathy-glib/telepathy-glib-svc-channel-group.html#telepathy-glib-svc-channel-group.signal-details">
32043281 <ANCHOR id="TpSvcChannelInterfaceGroup-group-flags-changed" href="telepathy-glib/telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-group-flags-changed">
32053282 <ANCHOR id="TpSvcChannelInterfaceGroup-handle-owners-changed" href="telepathy-glib/telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-handle-owners-changed">
3283 <ANCHOR id="TpSvcChannelInterfaceGroup-handle-owners-changed-detailed" href="telepathy-glib/telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-handle-owners-changed-detailed">
32063284 <ANCHOR id="TpSvcChannelInterfaceGroup-members-changed" href="telepathy-glib/telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-members-changed">
32073285 <ANCHOR id="TpSvcChannelInterfaceGroup-members-changed-detailed" href="telepathy-glib/telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-members-changed-detailed">
3286 <ANCHOR id="TpSvcChannelInterfaceGroup-self-contact-changed" href="telepathy-glib/telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-self-contact-changed">
32083287 <ANCHOR id="TpSvcChannelInterfaceGroup-self-handle-changed" href="telepathy-glib/telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-self-handle-changed">
32093288 <ANCHOR id="TpSvcChannelInterfaceConference-channel-merged" href="telepathy-glib/telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceConference-channel-merged">
32103289 <ANCHOR id="TpSvcChannelInterfaceConference-channel-removed" href="telepathy-glib/telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceConference-channel-removed">
32113290 <ANCHOR id="telepathy-glib-svc-channel-group.see-also" href="telepathy-glib/telepathy-glib-svc-channel-group.html#telepathy-glib-svc-channel-group.see-also">
3291 <ANCHOR id="telepathy-glib-svc-channel-room" href="telepathy-glib/telepathy-glib-svc-channel-room.html">
3292 <ANCHOR id="telepathy-glib-svc-channel-room.synopsis" href="telepathy-glib/telepathy-glib-svc-channel-room.html#telepathy-glib-svc-channel-room.synopsis">
3293 <ANCHOR id="TpSvcChannelInterfaceRoom" href="telepathy-glib/telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceRoom">
3294 <ANCHOR id="TpSvcChannelInterfaceRoomConfig" href="telepathy-glib/telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceRoomConfig">
3295 <ANCHOR id="TpSvcChannelInterfaceSubject" href="telepathy-glib/telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceSubject">
3296 <ANCHOR id="telepathy-glib-svc-channel-room.object-hierarchy" href="telepathy-glib/telepathy-glib-svc-channel-room.html#telepathy-glib-svc-channel-room.object-hierarchy">
3297 <ANCHOR id="telepathy-glib-svc-channel-room.description" href="telepathy-glib/telepathy-glib-svc-channel-room.html#telepathy-glib-svc-channel-room.description">
3298 <ANCHOR id="telepathy-glib-svc-channel-room.details" href="telepathy-glib/telepathy-glib-svc-channel-room.html#telepathy-glib-svc-channel-room.details">
3299 <ANCHOR id="TpSvcChannelInterfaceRoom-struct" href="telepathy-glib/telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceRoom-struct">
3300 <ANCHOR id="TpSvcChannelInterfaceRoomClass" href="telepathy-glib/telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceRoomClass">
3301 <ANCHOR id="TpSvcChannelInterfaceRoomConfig-struct" href="telepathy-glib/telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceRoomConfig-struct">
3302 <ANCHOR id="TpSvcChannelInterfaceRoomConfigClass" href="telepathy-glib/telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceRoomConfigClass">
3303 <ANCHOR id="tp-svc-channel-interface-room-config-implement-update-configuration" href="telepathy-glib/telepathy-glib-svc-channel-room.html#tp-svc-channel-interface-room-config-implement-update-configuration">
3304 <ANCHOR id="tp-svc-channel-interface-room-config-return-from-update-configuration" href="telepathy-glib/telepathy-glib-svc-channel-room.html#tp-svc-channel-interface-room-config-return-from-update-configuration">
3305 <ANCHOR id="tp-svc-channel-interface-room-config-update-configuration-impl" href="telepathy-glib/telepathy-glib-svc-channel-room.html#tp-svc-channel-interface-room-config-update-configuration-impl">
3306 <ANCHOR id="TpSvcChannelInterfaceSubject-struct" href="telepathy-glib/telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceSubject-struct">
3307 <ANCHOR id="TpSvcChannelInterfaceSubjectClass" href="telepathy-glib/telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceSubjectClass">
3308 <ANCHOR id="tp-svc-channel-interface-subject-implement-set-subject" href="telepathy-glib/telepathy-glib-svc-channel-room.html#tp-svc-channel-interface-subject-implement-set-subject">
3309 <ANCHOR id="tp-svc-channel-interface-subject-return-from-set-subject" href="telepathy-glib/telepathy-glib-svc-channel-room.html#tp-svc-channel-interface-subject-return-from-set-subject">
3310 <ANCHOR id="tp-svc-channel-interface-subject-set-subject-impl" href="telepathy-glib/telepathy-glib-svc-channel-room.html#tp-svc-channel-interface-subject-set-subject-impl">
32123311 <ANCHOR id="telepathy-glib-svc-channel-contactlist" href="telepathy-glib/telepathy-glib-svc-channel-contactlist.html">
32133312 <ANCHOR id="telepathy-glib-svc-channel-contactlist.synopsis" href="telepathy-glib/telepathy-glib-svc-channel-contactlist.html#telepathy-glib-svc-channel-contactlist.synopsis">
32143313 <ANCHOR id="TpSvcChannelTypeContactList" href="telepathy-glib/telepathy-glib-svc-channel-contactlist.html#TpSvcChannelTypeContactList">
45444643 <ANCHOR id="telepathy-glib-dbus-properties-mixin.object-hierarchy" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#telepathy-glib-dbus-properties-mixin.object-hierarchy">
45454644 <ANCHOR id="telepathy-glib-dbus-properties-mixin.description" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#telepathy-glib-dbus-properties-mixin.description">
45464645 <ANCHOR id="telepathy-glib-dbus-properties-mixin.details" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#telepathy-glib-dbus-properties-mixin.details">
4547 <ANCHOR id="TpDBusPropertiesMixinFlags" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinFlags">
4646 <ANCHOR id="TpDBusPropertiesMixinFlags-enum" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinFlags-enum">
45484647 <ANCHOR id="TP-DBUS-PROPERTIES-MIXIN-FLAG-READ:CAPS" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#TP-DBUS-PROPERTIES-MIXIN-FLAG-READ:CAPS">
45494648 <ANCHOR id="TP-DBUS-PROPERTIES-MIXIN-FLAG-WRITE:CAPS" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#TP-DBUS-PROPERTIES-MIXIN-FLAG-WRITE:CAPS">
4649 <ANCHOR id="TP-DBUS-PROPERTIES-MIXIN-FLAG-EMITS-CHANGED:CAPS" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#TP-DBUS-PROPERTIES-MIXIN-FLAG-EMITS-CHANGED:CAPS">
4650 <ANCHOR id="TP-DBUS-PROPERTIES-MIXIN-FLAG-EMITS-INVALIDATED:CAPS" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#TP-DBUS-PROPERTIES-MIXIN-FLAG-EMITS-INVALIDATED:CAPS">
45504651 <ANCHOR id="TP-TYPE-DBUS-PROPERTIES-MIXIN-FLAGS:CAPS" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#TP-TYPE-DBUS-PROPERTIES-MIXIN-FLAGS:CAPS">
45514652 <ANCHOR id="TpDBusPropertiesMixinIfaceInfo" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinIfaceInfo">
45524653 <ANCHOR id="TpDBusPropertiesMixinPropInfo" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinPropInfo">
45534654 <ANCHOR id="tp-svc-interface-set-dbus-properties-info" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#tp-svc-interface-set-dbus-properties-info">
4655 <ANCHOR id="tp-svc-interface-get-dbus-properties-info" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#tp-svc-interface-get-dbus-properties-info">
45544656 <ANCHOR id="TpDBusPropertiesMixinClass" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinClass">
45554657 <ANCHOR id="TpDBusPropertiesMixinIfaceImpl" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinIfaceImpl">
45564658 <ANCHOR id="TpDBusPropertiesMixinPropImpl" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinPropImpl">
45624664 <ANCHOR id="tp-dbus-properties-mixin-implement-interface" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-implement-interface">
45634665 <ANCHOR id="tp-dbus-properties-mixin-iface-init" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-iface-init">
45644666 <ANCHOR id="tp-dbus-properties-mixin-get" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-get">
4667 <ANCHOR id="tp-dbus-properties-mixin-set" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-set">
45654668 <ANCHOR id="tp-dbus-properties-mixin-fill-properties-hash" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-fill-properties-hash">
45664669 <ANCHOR id="tp-dbus-properties-mixin-make-properties-hash" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-make-properties-hash">
4670 <ANCHOR id="tp-dbus-properties-mixin-emit-properties-changed" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-emit-properties-changed">
4671 <ANCHOR id="tp-dbus-properties-mixin-emit-properties-changed-varargs" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-emit-properties-changed-varargs">
45674672 <ANCHOR id="telepathy-glib-dbus-properties-mixin.see-also" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#telepathy-glib-dbus-properties-mixin.see-also">
45684673 <ANCHOR id="TpExportableChannel" href="telepathy-glib/TpExportableChannel.html">
45694674 <ANCHOR id="TpExportableChannel.synopsis" href="telepathy-glib/TpExportableChannel.html#TpExportableChannel.synopsis">
46754780 <ANCHOR id="TP-TYPE-PROPERTY-FLAGS-STRUCT:CAPS" href="telepathy-glib/telepathy-glib-TpPropertiesMixin.html#TP-TYPE-PROPERTY-FLAGS-STRUCT:CAPS">
46764781 <ANCHOR id="TP-TYPE-PROPERTY-FLAGS-LIST:CAPS" href="telepathy-glib/telepathy-glib-TpPropertiesMixin.html#TP-TYPE-PROPERTY-FLAGS-LIST:CAPS">
46774782 <ANCHOR id="telepathy-glib-TpPropertiesMixin.see-also" href="telepathy-glib/telepathy-glib-TpPropertiesMixin.html#telepathy-glib-TpPropertiesMixin.see-also">
4783 <ANCHOR id="TpBaseRoomConfig" href="telepathy-glib/TpBaseRoomConfig.html">
4784 <ANCHOR id="TpBaseRoomConfig.synopsis" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfig.synopsis">
4785 <ANCHOR id="TpBaseRoomConfigProperty" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfigProperty">
4786 <ANCHOR id="TpBaseRoomConfig.object-hierarchy" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfig.object-hierarchy">
4787 <ANCHOR id="TpBaseRoomConfig.properties" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfig.properties">
4788 <ANCHOR id="TpBaseRoomConfig.description" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfig.description">
4789 <ANCHOR id="TpBaseRoomConfig.details" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfig.details">
4790 <ANCHOR id="TpBaseRoomConfig-struct" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfig-struct">
4791 <ANCHOR id="TpBaseRoomConfigClass" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfigClass">
4792 <ANCHOR id="TpBaseRoomConfigUpdateAsync" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfigUpdateAsync">
4793 <ANCHOR id="TpBaseRoomConfigUpdateFinish" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfigUpdateFinish">
4794 <ANCHOR id="tp-base-room-config-register-class" href="telepathy-glib/TpBaseRoomConfig.html#tp-base-room-config-register-class">
4795 <ANCHOR id="tp-base-room-config-iface-init" href="telepathy-glib/TpBaseRoomConfig.html#tp-base-room-config-iface-init">
4796 <ANCHOR id="TpBaseRoomConfigProperty-enum" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfigProperty-enum">
4797 <ANCHOR id="TP-BASE-ROOM-CONFIG-ANONYMOUS:CAPS" href="telepathy-glib/TpBaseRoomConfig.html#TP-BASE-ROOM-CONFIG-ANONYMOUS:CAPS">
4798 <ANCHOR id="TP-BASE-ROOM-CONFIG-INVITE-ONLY:CAPS" href="telepathy-glib/TpBaseRoomConfig.html#TP-BASE-ROOM-CONFIG-INVITE-ONLY:CAPS">
4799 <ANCHOR id="TP-BASE-ROOM-CONFIG-LIMIT:CAPS" href="telepathy-glib/TpBaseRoomConfig.html#TP-BASE-ROOM-CONFIG-LIMIT:CAPS">
4800 <ANCHOR id="TP-BASE-ROOM-CONFIG-MODERATED:CAPS" href="telepathy-glib/TpBaseRoomConfig.html#TP-BASE-ROOM-CONFIG-MODERATED:CAPS">
4801 <ANCHOR id="TP-BASE-ROOM-CONFIG-TITLE:CAPS" href="telepathy-glib/TpBaseRoomConfig.html#TP-BASE-ROOM-CONFIG-TITLE:CAPS">
4802 <ANCHOR id="TP-BASE-ROOM-CONFIG-DESCRIPTION:CAPS" href="telepathy-glib/TpBaseRoomConfig.html#TP-BASE-ROOM-CONFIG-DESCRIPTION:CAPS">
4803 <ANCHOR id="TP-BASE-ROOM-CONFIG-PERSISTENT:CAPS" href="telepathy-glib/TpBaseRoomConfig.html#TP-BASE-ROOM-CONFIG-PERSISTENT:CAPS">
4804 <ANCHOR id="TP-BASE-ROOM-CONFIG-PRIVATE:CAPS" href="telepathy-glib/TpBaseRoomConfig.html#TP-BASE-ROOM-CONFIG-PRIVATE:CAPS">
4805 <ANCHOR id="TP-BASE-ROOM-CONFIG-PASSWORD-PROTECTED:CAPS" href="telepathy-glib/TpBaseRoomConfig.html#TP-BASE-ROOM-CONFIG-PASSWORD-PROTECTED:CAPS">
4806 <ANCHOR id="TP-BASE-ROOM-CONFIG-PASSWORD:CAPS" href="telepathy-glib/TpBaseRoomConfig.html#TP-BASE-ROOM-CONFIG-PASSWORD:CAPS">
4807 <ANCHOR id="TP-NUM-BASE-ROOM-CONFIG-PROPERTIES:CAPS" href="telepathy-glib/TpBaseRoomConfig.html#TP-NUM-BASE-ROOM-CONFIG-PROPERTIES:CAPS">
4808 <ANCHOR id="TP-TYPE-BASE-ROOM-CONFIG-PROPERTY:CAPS" href="telepathy-glib/TpBaseRoomConfig.html#TP-TYPE-BASE-ROOM-CONFIG-PROPERTY:CAPS">
4809 <ANCHOR id="tp-base-room-config-dup-channel" href="telepathy-glib/TpBaseRoomConfig.html#tp-base-room-config-dup-channel">
4810 <ANCHOR id="tp-base-room-config-set-can-update-configuration" href="telepathy-glib/TpBaseRoomConfig.html#tp-base-room-config-set-can-update-configuration">
4811 <ANCHOR id="tp-base-room-config-set-property-mutable" href="telepathy-glib/TpBaseRoomConfig.html#tp-base-room-config-set-property-mutable">
4812 <ANCHOR id="tp-base-room-config-emit-properties-changed" href="telepathy-glib/TpBaseRoomConfig.html#tp-base-room-config-emit-properties-changed">
4813 <ANCHOR id="tp-base-room-config-set-retrieved" href="telepathy-glib/TpBaseRoomConfig.html#tp-base-room-config-set-retrieved">
4814 <ANCHOR id="TpBaseRoomConfig.property-details" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfig.property-details">
4815 <ANCHOR id="TpBaseRoomConfig--anonymous" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfig--anonymous">
4816 <ANCHOR id="TpBaseRoomConfig--can-update-configuration" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfig--can-update-configuration">
4817 <ANCHOR id="TpBaseRoomConfig--channel" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfig--channel">
4818 <ANCHOR id="TpBaseRoomConfig--configuration-retrieved" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfig--configuration-retrieved">
4819 <ANCHOR id="TpBaseRoomConfig--description" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfig--description">
4820 <ANCHOR id="TpBaseRoomConfig--invite-only" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfig--invite-only">
4821 <ANCHOR id="TpBaseRoomConfig--limit" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfig--limit">
4822 <ANCHOR id="TpBaseRoomConfig--moderated" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfig--moderated">
4823 <ANCHOR id="TpBaseRoomConfig--mutable-properties" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfig--mutable-properties">
4824 <ANCHOR id="TpBaseRoomConfig--password" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfig--password">
4825 <ANCHOR id="TpBaseRoomConfig--password-protected" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfig--password-protected">
4826 <ANCHOR id="TpBaseRoomConfig--persistent" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfig--persistent">
4827 <ANCHOR id="TpBaseRoomConfig--private" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfig--private">
4828 <ANCHOR id="TpBaseRoomConfig--title" href="telepathy-glib/TpBaseRoomConfig.html#TpBaseRoomConfig--title">
46784829 <ANCHOR id="telepathy-glib-TpGroupMixin" href="telepathy-glib/telepathy-glib-TpGroupMixin.html">
46794830 <ANCHOR id="telepathy-glib-TpGroupMixin.synopsis" href="telepathy-glib/telepathy-glib-TpGroupMixin.html#telepathy-glib-TpGroupMixin.synopsis">
46804831 <ANCHOR id="telepathy-glib-TpGroupMixin.description" href="telepathy-glib/telepathy-glib-TpGroupMixin.html#telepathy-glib-TpGroupMixin.description">
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="telepathy-glib-base-contact-list.html" title="TpBaseContactList">
99 <link rel="next" href="telepathy-glib-dbus-properties-mixin.html" title="TpDBusPropertiesMixin">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
171171 <tr>
172172 <td class="listing_lines" align="right"><pre>1
173173 2</pre></td>
174 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-TpContactsMixin.html#tp-contacts-mixin-class-init">tp_contacts_mixin_class_init</a></span> <span class="gtkdoc opt">((</span>GObjectClass <span class="gtkdoc opt">*)</span> klass<span class="gtkdoc opt">,</span>
175 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#G-STRUCT-OFFSET:CAPS">G_STRUCT_OFFSET</a></span> <span class="gtkdoc opt">(</span>SomeObjectClass<span class="gtkdoc opt">,</span> contacts_mixin<span class="gtkdoc opt">));</span></pre></td>
174 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-TpContactsMixin.html#tp-contacts-mixin-class-init">tp_contacts_mixin_class_init</a></span><span class="normal"> </span><span class="symbol">((</span><span class="normal"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass">GObjectClass</a> </span><span class="symbol">*)</span><span class="normal"> klass</span><span class="symbol">,</span>
175 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#G-STRUCT-OFFSET:CAPS">G_STRUCT_OFFSET</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">SomeObjectClass</span><span class="symbol">,</span><span class="normal"> contacts_mixin</span><span class="symbol">));</span></pre></td>
176176 </tr>
177177 </tbody>
178178 </table>
255255 <tr>
256256 <td class="listing_lines" align="right"><pre>1
257257 2</pre></td>
258 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-TpContactsMixin.html#tp-contacts-mixin-init">tp_contacts_mixin_init</a></span> <span class="gtkdoc opt">((</span>GObject <span class="gtkdoc opt">*)</span> self<span class="gtkdoc opt">,</span>
259 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#G-STRUCT-OFFSET:CAPS">G_STRUCT_OFFSET</a></span> <span class="gtkdoc opt">(</span>SomeObject<span class="gtkdoc opt">,</span> contacts_mixin<span class="gtkdoc opt">));</span></pre></td>
258 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-TpContactsMixin.html#tp-contacts-mixin-init">tp_contacts_mixin_init</a></span><span class="normal"> </span><span class="symbol">((</span><span class="normal"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> </span><span class="symbol">*)</span><span class="normal"> self</span><span class="symbol">,</span>
259 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#G-STRUCT-OFFSET:CAPS">G_STRUCT_OFFSET</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">SomeObject</span><span class="symbol">,</span><span class="normal"> contacts_mixin</span><span class="symbol">));</span></pre></td>
260260 </tr>
261261 </tbody>
262262 </table>
408408 </div>
409409 <div class="footer">
410410 <hr>
411 Generated by GTK-Doc V1.17</div>
411 Generated by GTK-Doc V1.17.1</div>
412412 </body>
413413 </html>
55 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
66 <link rel="home" href="index.html" title="telepathy-glib API Reference Manual">
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
8 <link rel="prev" href="telepathy-glib-TpPropertiesMixin.html" title="TpPropertiesMixin">
8 <link rel="prev" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig">
99 <link rel="next" href="telepathy-glib-TpMessageMixin.html" title="TpMessageMixin">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
1414 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
1515 <tr valign="middle">
16 <td><a accesskey="p" href="telepathy-glib-TpPropertiesMixin.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
16 <td><a accesskey="p" href="TpBaseRoomConfig.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
1717 <td><a accesskey="u" href="ch-service-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
1818 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
1919 <th width="100%" align="center">telepathy-glib API Reference Manual</th>
15741574 </div>
15751575 <div class="footer">
15761576 <hr>
1577 Generated by GTK-Doc V1.17</div>
1577 Generated by GTK-Doc V1.17.1</div>
15781578 </body>
15791579 </html>
77 <link rel="up" href="ch-utilities.html" title="Utilities">
88 <link rel="prev" href="TpIntset.html" title="TpIntset">
99 <link rel="next" href="ch-obsolete.html" title="Obsolete modules">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
240240 </div>
241241 <div class="footer">
242242 <hr>
243 Generated by GTK-Doc V1.17</div>
243 Generated by GTK-Doc V1.17.1</div>
244244 </body>
245245 </html>
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="telepathy-glib-TpGroupMixin.html" title="TpGroupMixin">
99 <link rel="next" href="TpMessage.html" title="TpMessage">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
107107 2
108108 3
109109 4</pre></td>
110 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span> <span class="gtkdoc opt">(</span>TP_TYPE_SVC_CHANNEL_TYPE_TEXT<span class="gtkdoc opt">,</span>
111 tp_message_mixin_text_iface_init<span class="gtkdoc opt">);</span>
112 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span> <span class="gtkdoc opt">(</span>TP_TYPE_SVC_CHANNEL_INTERFACE_MESSAGES<span class="gtkdoc opt">,</span>
113 tp_message_mixin_messages_iface_init<span class="gtkdoc opt">);</span></pre></td>
110 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">TP_TYPE_SVC_CHANNEL_TYPE_TEXT</span><span class="symbol">,</span>
111 <span class="normal"> <a href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-text-iface-init">tp_message_mixin_text_iface_init</a></span><span class="symbol">);</span>
112 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">TP_TYPE_SVC_CHANNEL_INTERFACE_MESSAGES</span><span class="symbol">,</span>
113 <span class="normal"> <a href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-messages-iface-init">tp_message_mixin_messages_iface_init</a></span><span class="symbol">);</span></pre></td>
114114 </tr>
115115 </tbody>
116116 </table>
259259 <td class="listing_lines" align="right"><pre>1
260260 2
261261 3</pre></td>
262 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-init">tp_message_mixin_init</a></span> <span class="gtkdoc opt">((</span>GObject <span class="gtkdoc opt">*)</span> self<span class="gtkdoc opt">,</span>
263 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#G-STRUCT-OFFSET:CAPS">G_STRUCT_OFFSET</a></span> <span class="gtkdoc opt">(</span>SomeObject<span class="gtkdoc opt">,</span> message_mixin<span class="gtkdoc opt">),</span>
264 self<span class="gtkdoc opt">-&gt;</span>connection<span class="gtkdoc opt">);</span></pre></td>
262 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-TpMessageMixin.html#tp-message-mixin-init">tp_message_mixin_init</a></span><span class="normal"> </span><span class="symbol">((</span><span class="normal"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> </span><span class="symbol">*)</span><span class="normal"> self</span><span class="symbol">,</span>
263 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#G-STRUCT-OFFSET:CAPS">G_STRUCT_OFFSET</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">SomeObject</span><span class="symbol">,</span><span class="normal"> message_mixin</span><span class="symbol">),</span>
264 <span class="normal"> self</span><span class="symbol">-&gt;</span><span class="normal">connection</span><span class="symbol">);</span></pre></td>
265265 </tr>
266266 </tbody>
267267 </table>
555555 </div>
556556 <div class="footer">
557557 <hr>
558 Generated by GTK-Doc V1.17</div>
558 Generated by GTK-Doc V1.17.1</div>
559559 </body>
560560 </html>
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="TpBaseChannel.html" title="TpBaseChannel">
99 <link rel="next" href="telepathy-glib-TpPropertiesMixin.html" title="TpPropertiesMixin">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
107107 </p>
108108 <div class="section">
109109 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
110 <a name="idp89076800"></a>Implementing SimplePresence</h2></div></div></div>
110 <a name="idp90456688"></a>Implementing SimplePresence</h2></div></div></div>
111111 <p>
112112 Since 0.7.13 this mixin supports the entire SimplePresence interface.
113113 You can implement <a class="link" href="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceSimplePresence"><span class="type">TpSvcConnectionInterfaceSimplePresence</span></a> as follows:
130130 5
131131 6
132132 7</pre></td>
133 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-DEFINE-TYPE-WITH-CODE:CAPS">G_DEFINE_TYPE_WITH_CODE</a></span> <span class="gtkdoc opt">(</span>MyConnection<span class="gtkdoc opt">,</span> my_connection<span class="gtkdoc opt">,</span>
134 TP_TYPE_BASE_CONNECTION<span class="gtkdoc opt">,</span>
135 <span class="gtkdoc slc">// ...</span>
136 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span> <span class="gtkdoc opt">(</span>TP_TYPE_SVC_CONNECTION_INTERFACE_SIMPLE_PRESENCE<span class="gtkdoc opt">,</span>
137 tp_presence_mixin_simple_presence_iface_init<span class="gtkdoc opt">);</span>
138 <span class="gtkdoc slc">// ...</span>
139 <span class="gtkdoc opt">)</span></pre></td>
133 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-DEFINE-TYPE-WITH-CODE:CAPS">G_DEFINE_TYPE_WITH_CODE</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">MyConnection</span><span class="symbol">,</span><span class="normal"> my_connection</span><span class="symbol">,</span>
134 <span class="normal"> TP_TYPE_BASE_CONNECTION</span><span class="symbol">,</span>
135 <span class="normal"> </span><span class="comment">// ...</span>
136 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">TP_TYPE_SVC_CONNECTION_INTERFACE_SIMPLE_PRESENCE</span><span class="symbol">,</span>
137 <span class="normal"> <a href="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-simple-presence-iface-init">tp_presence_mixin_simple_presence_iface_init</a></span><span class="symbol">);</span>
138 <span class="normal"> </span><span class="comment">// ...</span>
139 <span class="normal"> </span><span class="symbol">)</span></pre></td>
140140 </tr>
141141 </tbody>
142142 </table>
159159 </p>
160160 <div class="section">
161161 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
162 <a name="idp89092464"></a>Implementing old-style Presence</h2></div></div></div>
162 <a name="idp90472112"></a>Implementing old-style Presence</h2></div></div></div>
163163 <p>
164164 This mixin also supports a large subset of the deprecated Presence
165165 interface. It does not support protocols where it is possible to set
184184 5
185185 6
186186 7</pre></td>
187 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-DEFINE-TYPE-WITH-CODE:CAPS">G_DEFINE_TYPE_WITH_CODE</a></span> <span class="gtkdoc opt">(</span>MyConnection<span class="gtkdoc opt">,</span> my_connection<span class="gtkdoc opt">,</span>
188 TP_TYPE_BASE_CONNECTION<span class="gtkdoc opt">,</span>
189 <span class="gtkdoc slc">// ...</span>
190 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span> <span class="gtkdoc opt">(</span>TP_TYPE_SVC_CONNECTION_INTERFACE_PRESENCE<span class="gtkdoc opt">,</span>
191 tp_presence_mixin_iface_init<span class="gtkdoc opt">);</span>
192 <span class="gtkdoc slc">// ...</span>
193 <span class="gtkdoc opt">)</span></pre></td>
187 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-DEFINE-TYPE-WITH-CODE:CAPS">G_DEFINE_TYPE_WITH_CODE</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">MyConnection</span><span class="symbol">,</span><span class="normal"> my_connection</span><span class="symbol">,</span>
188 <span class="normal"> TP_TYPE_BASE_CONNECTION</span><span class="symbol">,</span>
189 <span class="normal"> </span><span class="comment">// ...</span>
190 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">TP_TYPE_SVC_CONNECTION_INTERFACE_PRESENCE</span><span class="symbol">,</span>
191 <span class="normal"> <a href="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-iface-init">tp_presence_mixin_iface_init</a></span><span class="symbol">);</span>
192 <span class="normal"> </span><span class="comment">// ...</span>
193 <span class="normal"> </span><span class="symbol">)</span></pre></td>
194194 </tr>
195195 </tbody>
196196 </table>
567567 5
568568 6
569569 7</pre></td>
570 <td class="listing_code"><pre class="programlisting">TpPresenceMixinClass <span class="gtkdoc opt">*</span>mixin_class<span class="gtkdoc opt">;</span>
570 <td class="listing_code"><pre class="programlisting"><span class="usertype">TpPresenceMixinClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">mixin_class</span><span class="symbol">;</span>
571571
572 <span class="function"><a href="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-class-init">tp_presence_mixin_class_init</a></span> <span class="gtkdoc opt">((</span>GObjectClass <span class="gtkdoc opt">*)</span> klass<span class="gtkdoc opt">,</span>
573 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#G-STRUCT-OFFSET:CAPS">G_STRUCT_OFFSET</a></span> <span class="gtkdoc opt">(</span>SomeObjectClass<span class="gtkdoc opt">,</span> presence_mixin<span class="gtkdoc opt">));</span>
574 mixin_class <span class="gtkdoc opt">=</span> <span class="function">TP_PRESENCE_MIXIN_CLASS</span> <span class="gtkdoc opt">(</span>klass<span class="gtkdoc opt">);</span>
575 mixin_class<span class="gtkdoc opt">-&gt;</span>get_maximum_status_message_length <span class="gtkdoc opt">=</span>
576 some_object_get_maximum_status_message_length<span class="gtkdoc opt">;</span></pre></td>
572 <span class="function"><a href="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-class-init">tp_presence_mixin_class_init</a></span><span class="normal"> </span><span class="symbol">((</span><span class="normal"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass">GObjectClass</a> </span><span class="symbol">*)</span><span class="normal"> klass</span><span class="symbol">,</span>
573 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#G-STRUCT-OFFSET:CAPS">G_STRUCT_OFFSET</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">SomeObjectClass</span><span class="symbol">,</span><span class="normal"> presence_mixin</span><span class="symbol">));</span>
574 <span class="normal">mixin_class </span><span class="symbol">=</span><span class="normal"> </span><span class="function">TP_PRESENCE_MIXIN_CLASS</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">klass</span><span class="symbol">);</span>
575 <span class="normal">mixin_class</span><span class="symbol">-&gt;</span><span class="normal">get_maximum_status_message_length </span><span class="symbol">=</span>
576 <span class="normal"> some_object_get_maximum_status_message_length</span><span class="symbol">;</span></pre></td>
577577 </tr>
578578 </tbody>
579579 </table>
641641 <td class="listing_lines" align="right"><pre>1
642642 2
643643 3</pre></td>
644 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-class-init">tp_presence_mixin_class_init</a></span> <span class="gtkdoc opt">((</span>GObjectClass <span class="gtkdoc opt">*)</span> klass<span class="gtkdoc opt">,</span>
645 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#G-STRUCT-OFFSET:CAPS">G_STRUCT_OFFSET</a></span> <span class="gtkdoc opt">(</span>SomeObjectClass<span class="gtkdoc opt">,</span>
646 presence_mixin<span class="gtkdoc opt">));</span></pre></td>
644 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-class-init">tp_presence_mixin_class_init</a></span><span class="normal"> </span><span class="symbol">((</span><span class="normal"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass">GObjectClass</a> </span><span class="symbol">*)</span><span class="normal"> klass</span><span class="symbol">,</span>
645 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#G-STRUCT-OFFSET:CAPS">G_STRUCT_OFFSET</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">SomeObjectClass</span><span class="symbol">,</span>
646 <span class="normal"> presence_mixin</span><span class="symbol">));</span></pre></td>
647647 </tr>
648648 </tbody>
649649 </table>
707707 <tr>
708708 <td class="listing_lines" align="right"><pre>1
709709 2</pre></td>
710 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-init">tp_presence_mixin_init</a></span> <span class="gtkdoc opt">((</span>GObject <span class="gtkdoc opt">*)</span> self<span class="gtkdoc opt">,</span>
711 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#G-STRUCT-OFFSET:CAPS">G_STRUCT_OFFSET</a></span> <span class="gtkdoc opt">(</span>SomeObject<span class="gtkdoc opt">,</span> presence_mixin<span class="gtkdoc opt">));</span></pre></td>
710 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-init">tp_presence_mixin_init</a></span><span class="normal"> </span><span class="symbol">((</span><span class="normal"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> </span><span class="symbol">*)</span><span class="normal"> self</span><span class="symbol">,</span>
711 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#G-STRUCT-OFFSET:CAPS">G_STRUCT_OFFSET</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">SomeObject</span><span class="symbol">,</span><span class="normal"> presence_mixin</span><span class="symbol">));</span></pre></td>
712712 </tr>
713713 </tbody>
714714 </table>
900900 </div>
901901 <div class="footer">
902902 <hr>
903 Generated by GTK-Doc V1.17</div>
903 Generated by GTK-Doc V1.17.1</div>
904904 </body>
905905 </html>
66 <link rel="home" href="index.html" title="telepathy-glib API Reference Manual">
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="telepathy-glib-TpPresenceMixin.html" title="TpPresenceMixin">
9 <link rel="next" href="telepathy-glib-TpGroupMixin.html" title="TpGroupMixin">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
9 <link rel="next" href="TpBaseRoomConfig.html" title="TpBaseRoomConfig">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
1717 <td><a accesskey="u" href="ch-service-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
1818 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
1919 <th width="100%" align="center">telepathy-glib API Reference Manual</th>
20 <td><a accesskey="n" href="telepathy-glib-TpGroupMixin.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
20 <td><a accesskey="n" href="TpBaseRoomConfig.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
2121 </tr>
2222 <tr><td colspan="5" class="shortcuts">
2323 <a href="#telepathy-glib-TpPropertiesMixin.synopsis" class="shortcut">Top</a>
335335 <td class="listing_lines" align="right"><pre>1
336336 2
337337 3</pre></td>
338 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-TpPropertiesMixin.html#tp-properties-mixin-class-init">tp_properties_mixin_class_init</a></span> <span class="gtkdoc opt">((</span>GObjectClass <span class="gtkdoc opt">*)</span> klass<span class="gtkdoc opt">,</span>
339 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#G-STRUCT-OFFSET:CAPS">G_STRUCT_OFFSET</a></span> <span class="gtkdoc opt">(</span>SomeObjectClass<span class="gtkdoc opt">,</span>
340 properties_mixin<span class="gtkdoc opt">));</span></pre></td>
338 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-TpPropertiesMixin.html#tp-properties-mixin-class-init">tp_properties_mixin_class_init</a></span><span class="normal"> </span><span class="symbol">((</span><span class="normal"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass">GObjectClass</a> </span><span class="symbol">*)</span><span class="normal"> klass</span><span class="symbol">,</span>
339 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#G-STRUCT-OFFSET:CAPS">G_STRUCT_OFFSET</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">SomeObjectClass</span><span class="symbol">,</span>
340 <span class="normal"> properties_mixin</span><span class="symbol">));</span></pre></td>
341341 </tr>
342342 </tbody>
343343 </table>
391391 <td class="listing_lines" align="right"><pre>1
392392 2
393393 3</pre></td>
394 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-TpPropertiesMixin.html#tp-properties-mixin-init">tp_properties_mixin_init</a></span> <span class="gtkdoc opt">((</span>GObject <span class="gtkdoc opt">*)</span> self<span class="gtkdoc opt">,</span>
395 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#G-STRUCT-OFFSET:CAPS">G_STRUCT_OFFSET</a></span> <span class="gtkdoc opt">(</span>SomeObject<span class="gtkdoc opt">,</span> properties_mixin<span class="gtkdoc opt">),</span>
396 self<span class="gtkdoc opt">-&gt;</span>contact_repo<span class="gtkdoc opt">);</span></pre></td>
394 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-TpPropertiesMixin.html#tp-properties-mixin-init">tp_properties_mixin_init</a></span><span class="normal"> </span><span class="symbol">((</span><span class="normal"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> </span><span class="symbol">*)</span><span class="normal"> self</span><span class="symbol">,</span>
395 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#G-STRUCT-OFFSET:CAPS">G_STRUCT_OFFSET</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">SomeObject</span><span class="symbol">,</span><span class="normal"> properties_mixin</span><span class="symbol">),</span>
396 <span class="normal"> self</span><span class="symbol">-&gt;</span><span class="normal">contact_repo</span><span class="symbol">);</span></pre></td>
397397 </tr>
398398 </tbody>
399399 </table>
10511051 </div>
10521052 <div class="footer">
10531053 <hr>
1054 Generated by GTK-Doc V1.17</div>
1054 Generated by GTK-Doc V1.17.1</div>
10551055 </body>
10561056 </html>
77 <link rel="up" href="ch-obsolete.html" title="Obsolete modules">
88 <link rel="prev" href="telepathy-glib-debug-ansi.html" title="ANSI codes for debug messages">
99 <link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
180180 <tr>
181181 <td class="listing_lines" align="right"><pre>1
182182 2</pre></td>
183 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-TpTextMixin.html#tp-text-mixin-class-init">tp_text_mixin_class_init</a></span> <span class="gtkdoc opt">((</span>GObjectClass <span class="gtkdoc opt">*)</span> klass<span class="gtkdoc opt">,</span>
184 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#G-STRUCT-OFFSET:CAPS">G_STRUCT_OFFSET</a></span> <span class="gtkdoc opt">(</span>SomeObjectClass<span class="gtkdoc opt">,</span> text_mixin<span class="gtkdoc opt">));</span></pre></td>
183 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-TpTextMixin.html#tp-text-mixin-class-init">tp_text_mixin_class_init</a></span><span class="normal"> </span><span class="symbol">((</span><span class="normal"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass">GObjectClass</a> </span><span class="symbol">*)</span><span class="normal"> klass</span><span class="symbol">,</span>
184 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#G-STRUCT-OFFSET:CAPS">G_STRUCT_OFFSET</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">SomeObjectClass</span><span class="symbol">,</span><span class="normal"> text_mixin</span><span class="symbol">));</span></pre></td>
185185 </tr>
186186 </tbody>
187187 </table>
222222 <td class="listing_lines" align="right"><pre>1
223223 2
224224 3</pre></td>
225 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-TpTextMixin.html#tp-text-mixin-init">tp_text_mixin_init</a></span> <span class="gtkdoc opt">((</span>GObject <span class="gtkdoc opt">*)</span> self<span class="gtkdoc opt">,</span>
226 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#G-STRUCT-OFFSET:CAPS">G_STRUCT_OFFSET</a></span> <span class="gtkdoc opt">(</span>SomeObject<span class="gtkdoc opt">,</span> text_mixin<span class="gtkdoc opt">),</span>
227 self<span class="gtkdoc opt">-&gt;</span>contact_repo<span class="gtkdoc opt">);</span></pre></td>
225 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-TpTextMixin.html#tp-text-mixin-init">tp_text_mixin_init</a></span><span class="normal"> </span><span class="symbol">((</span><span class="normal"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> </span><span class="symbol">*)</span><span class="normal"> self</span><span class="symbol">,</span>
226 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#G-STRUCT-OFFSET:CAPS">G_STRUCT_OFFSET</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">SomeObject</span><span class="symbol">,</span><span class="normal"> text_mixin</span><span class="symbol">),</span>
227 <span class="normal"> self</span><span class="symbol">-&gt;</span><span class="normal">contact_repo</span><span class="symbol">);</span></pre></td>
228228 </tr>
229229 </tbody>
230230 </table>
583583 </div>
584584 <div class="footer">
585585 <hr>
586 Generated by GTK-Doc V1.17</div>
586 Generated by GTK-Doc V1.17.1</div>
587587 </body>
588588 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-client.html" title="TpClient">
99 <link rel="next" href="telepathy-glib-stream-tube-channel.html" title="TpStreamTubeChannel">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
4646 #include &lt;telepathy-glib/account-channel-request.h&gt;
4747
4848 <a class="link" href="telepathy-glib-account-channel-request.html#TpAccountChannelRequest-struct" title="TpAccountChannelRequest">TpAccountChannelRequest</a>;
49 <a class="link" href="telepathy-glib-account-channel-request.html#TpAccountChannelRequest"><span class="returnvalue">TpAccountChannelRequest</span></a> * <a class="link" href="telepathy-glib-account-channel-request.html#tp-account-channel-request-new" title="tp_account_channel_request_new ()">tp_account_channel_request_new</a>
49 <a class="link" href="telepathy-glib-account-channel-request.html#TpAccountChannelRequest"><span class="returnvalue">TpAccountChannelRequest</span></a> * <a class="link" href="telepathy-glib-account-channel-request.html#tp-account-channel-request-new" title="tp_account_channel_request_new ()">tp_account_channel_request_new</a>
5050 (<em class="parameter"><code><a class="link" href="telepathy-glib-account.html#TpAccount"><span class="type">TpAccount</span></a> *account</code></em>,
5151 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *request</code></em>,
5252 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> user_action_time</code></em>);
192192 <hr>
193193 <div class="refsect2">
194194 <a name="tp-account-channel-request-new"></a><h3>tp_account_channel_request_new ()</h3>
195 <pre class="programlisting"><a class="link" href="telepathy-glib-account-channel-request.html#TpAccountChannelRequest"><span class="returnvalue">TpAccountChannelRequest</span></a> * tp_account_channel_request_new
195 <pre class="programlisting"><a class="link" href="telepathy-glib-account-channel-request.html#TpAccountChannelRequest"><span class="returnvalue">TpAccountChannelRequest</span></a> * tp_account_channel_request_new
196196 (<em class="parameter"><code><a class="link" href="telepathy-glib-account.html#TpAccount"><span class="type">TpAccount</span></a> *account</code></em>,
197197 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *request</code></em>,
198198 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> user_action_time</code></em>);</pre>
12671267 </div>
12681268 <div class="footer">
12691269 <hr>
1270 Generated by GTK-Doc V1.17</div>
1270 Generated by GTK-Doc V1.17.1</div>
12711271 </body>
12721272 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-media-interfaces.html" title="TpMediaSessionHandler, TpMediaStreamHandler">
99 <link rel="next" href="telepathy-glib-account.html" title="TpAccount">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
6464 (<em class="parameter"><code><a class="link" href="telepathy-glib-account-manager.html#TpAccountManager"><span class="type">TpAccountManager</span></a> *manager</code></em>,
6565 <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *result</code></em>,
6666 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
67 <a class="link" href="telepathy-glib-account.html#TpAccount"><span class="returnvalue">TpAccount</span></a> * <a class="link" href="telepathy-glib-account-manager.html#tp-account-manager-ensure-account" title="tp_account_manager_ensure_account ()">tp_account_manager_ensure_account</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-account-manager.html#TpAccountManager"><span class="type">TpAccountManager</span></a> *manager</code></em>);
67 <a class="link" href="telepathy-glib-account.html#TpAccount"><span class="returnvalue">TpAccount</span></a> * <a class="link" href="telepathy-glib-account-manager.html#tp-account-manager-ensure-account" title="tp_account_manager_ensure_account ()">tp_account_manager_ensure_account</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-account-manager.html#TpAccountManager"><span class="type">TpAccountManager</span></a> *manager</code></em>,
68 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *path</code></em>);
6869 <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="telepathy-glib-account-manager.html#tp-account-manager-get-valid-accounts" title="tp_account_manager_get_valid_accounts ()">tp_account_manager_get_valid_accounts</a>
6970 (<em class="parameter"><code><a class="link" href="telepathy-glib-account-manager.html#TpAccountManager"><span class="type">TpAccountManager</span></a> *manager</code></em>);
70 <a class="link" href="telepathy-glib-enums.html#TpConnectionPresenceType" title="enum TpConnectionPresenceType"><span class="returnvalue">TpConnectionPresenceType</span></a> <a class="link" href="telepathy-glib-account-manager.html#tp-account-manager-get-most-available-presence" title="tp_account_manager_get_most_available_presence ()">tp_account_manager_get_most_available_presence</a>
71 <a class="link" href="telepathy-glib-enums.html#TpConnectionPresenceType" title="enum TpConnectionPresenceType"><span class="returnvalue">TpConnectionPresenceType</span></a> <a class="link" href="telepathy-glib-account-manager.html#tp-account-manager-get-most-available-presence" title="tp_account_manager_get_most_available_presence ()">tp_account_manager_get_most_available_presence</a>
7172 (<em class="parameter"><code><a class="link" href="telepathy-glib-account-manager.html#TpAccountManager"><span class="type">TpAccountManager</span></a> *manager</code></em>,
7273 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **status</code></em>,
7374 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **message</code></em>);
288289 <td class="listing_code"><pre class="programlisting"><span class="comment">/*</span>
289290 <span class="comment"> * contact-list</span>
290291 <span class="comment"> *</span>
291 <span class="comment"> * Copyright © 2011 Collabora Ltd. &lt;http://www.collabora.co.uk/&gt;</span>
292 <span class="comment"> * Copyright © 2011 Collabora Ltd. </span><span class="url"><a href="&lt;http://www.collabora.co.uk/&gt;">&lt;http://www.collabora.co.uk/&gt;</a></span>
292293 <span class="comment"> *</span>
293294 <span class="comment"> * Copying and distribution of this file, with or without modification,</span>
294295 <span class="comment"> * are permitted in any medium without royalty provided the copyright</span>
295296 <span class="comment"> * notice and this notice are preserved.</span>
296297 <span class="comment"> */</span>
297298
298 <span class="gtkdoc ppc">#include &lt;telepathy-glib/telepathy-glib.h&gt;</span>
299 <span class="gtkdoc ppc">#include &lt;telepathy-glib/debug.h&gt;</span>
300
301 <span class="gtkdoc kwb">static void</span>
302 <span class="function">account_manager_prepared_cb</span> <span class="gtkdoc opt">(</span>GObject <span class="gtkdoc opt">*</span>object<span class="gtkdoc opt">,</span>
303 GAsyncResult <span class="gtkdoc opt">*</span>res<span class="gtkdoc opt">,</span>
304 gpointer user_data<span class="gtkdoc opt">)</span>
305 <span class="gtkdoc opt">{</span>
306 TpAccountManager <span class="gtkdoc opt">*</span>manager <span class="gtkdoc opt">= (</span>TpAccountManager <span class="gtkdoc opt">*)</span> object<span class="gtkdoc opt">;</span>
307 GMainLoop <span class="gtkdoc opt">*</span>loop <span class="gtkdoc opt">=</span> user_data<span class="gtkdoc opt">;</span>
308 GList <span class="gtkdoc opt">*</span>accounts<span class="gtkdoc opt">;</span>
309 GError <span class="gtkdoc opt">*</span>error <span class="gtkdoc opt">=</span> NULL<span class="gtkdoc opt">;</span>
310
311 <span class="keyword">if</span> <span class="gtkdoc opt">(!</span><span class="function"><a href="telepathy-glib-proxy.html#tp-proxy-prepare-finish">tp_proxy_prepare_finish</a></span> <span class="gtkdoc opt">(</span>object<span class="gtkdoc opt">,</span> res<span class="gtkdoc opt">, &amp;</span>error<span class="gtkdoc opt">))</span>
312 <span class="gtkdoc opt">{</span>
313 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Error preparing AM: %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> error<span class="gtkdoc opt">-&gt;</span>message<span class="gtkdoc opt">);</span>
314 <span class="keyword">goto</span> OUT<span class="gtkdoc opt">;</span>
315 <span class="gtkdoc opt">}</span>
316
317 <span class="keyword">for</span> <span class="gtkdoc opt">(</span>accounts <span class="gtkdoc opt">=</span> <span class="function"><a href="telepathy-glib-account-manager.html#tp-account-manager-get-valid-accounts">tp_account_manager_get_valid_accounts</a></span> <span class="gtkdoc opt">(</span>manager<span class="gtkdoc opt">);</span>
318 accounts <span class="gtkdoc opt">!=</span> NULL<span class="gtkdoc opt">;</span> accounts <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-delete-link">g_list_delete_link</a></span> <span class="gtkdoc opt">(</span>accounts<span class="gtkdoc opt">,</span> accounts<span class="gtkdoc opt">))</span>
319 <span class="gtkdoc opt">{</span>
320 TpAccount <span class="gtkdoc opt">*</span>account <span class="gtkdoc opt">=</span> accounts<span class="gtkdoc opt">-&gt;</span>data<span class="gtkdoc opt">;</span>
321 TpConnection <span class="gtkdoc opt">*</span>connection <span class="gtkdoc opt">=</span> <span class="function"><a href="telepathy-glib-account.html#tp-account-get-connection">tp_account_get_connection</a></span> <span class="gtkdoc opt">(</span>account<span class="gtkdoc opt">);</span>
322 GPtrArray <span class="gtkdoc opt">*</span>contacts<span class="gtkdoc opt">;</span>
323 guint i<span class="gtkdoc opt">;</span>
324
325 <span class="comment">/* Verify account is online and received its contact list. If state is not</span>
299 <span class="preproc">#include</span><span class="normal"> </span><span class="string">&lt;telepathy-glib/telepathy-glib.h&gt;</span>
300 <span class="preproc">#include</span><span class="normal"> </span><span class="string">&lt;telepathy-glib/debug.h&gt;</span>
301
302 <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
303 <span class="function">account_manager_prepared_cb</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GObject</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">object</span><span class="symbol">,</span>
304 <span class="normal"> </span><span class="usertype">GAsyncResult</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">res</span><span class="symbol">,</span>
305 <span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
306 <span class="cbracket">{</span>
307 <span class="normal"> </span><span class="usertype">TpAccountManager</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">manager </span><span class="symbol">=</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="telepathy-glib-account-manager.html#TpAccountManager">TpAccountManager</a> </span><span class="symbol">*)</span><span class="normal"> object</span><span class="symbol">;</span>
308 <span class="normal"> </span><span class="usertype">GMainLoop</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">loop </span><span class="symbol">=</span><span class="normal"> user_data</span><span class="symbol">;</span><span class="normal"> </span>
309 <span class="normal"> </span><span class="usertype">GList</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">accounts</span><span class="symbol">;</span>
310 <span class="normal"> </span><span class="usertype">GError</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">error </span><span class="symbol">=</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>
311
312 <span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(!</span><span class="function"><a href="telepathy-glib-proxy.html#tp-proxy-prepare-finish">tp_proxy_prepare_finish</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">object</span><span class="symbol">,</span><span class="normal"> res</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">error</span><span class="symbol">))</span>
313 <span class="normal"> </span><span class="cbracket">{</span>
314 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Error preparing AM: %s</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> error</span><span class="symbol">-&gt;</span><span class="normal">message</span><span class="symbol">);</span>
315 <span class="normal"> </span><span class="keyword">goto</span><span class="normal"> OUT</span><span class="symbol">;</span>
316 <span class="normal"> </span><span class="cbracket">}</span>
317
318 <span class="normal"> </span><span class="keyword">for</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">accounts </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-account-manager.html#tp-account-manager-get-valid-accounts">tp_account_manager_get_valid_accounts</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">manager</span><span class="symbol">);</span>
319 <span class="normal"> accounts </span><span class="symbol">!=</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span><span class="normal"> accounts </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-delete-link">g_list_delete_link</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">accounts</span><span class="symbol">,</span><span class="normal"> accounts</span><span class="symbol">))</span>
320 <span class="normal"> </span><span class="cbracket">{</span>
321 <span class="normal"> </span><span class="usertype">TpAccount</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">account </span><span class="symbol">=</span><span class="normal"> accounts</span><span class="symbol">-&gt;</span><span class="normal">data</span><span class="symbol">;</span>
322 <span class="normal"> </span><span class="usertype">TpConnection</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">connection </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-account.html#tp-account-get-connection">tp_account_get_connection</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">account</span><span class="symbol">);</span>
323 <span class="normal"> </span><span class="usertype">GPtrArray</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">contacts</span><span class="symbol">;</span>
324 <span class="normal"> </span><span class="usertype">guint</span><span class="normal"> i</span><span class="symbol">;</span>
325
326 <span class="normal"> </span><span class="comment">/* Verify account is online and received its contact list. If state is not</span>
326327 <span class="comment"> * SUCCESS this means we didn't received the roster from server yet and</span>
327 <span class="comment"> * we would have to wait for the &quot;notify:contact-list-state&quot; signal. */</span>
328 <span class="keyword">if</span> <span class="gtkdoc opt">(</span>connection <span class="gtkdoc opt">==</span> NULL <span class="gtkdoc opt">||</span>
329 <span class="function"><a href="telepathy-glib-connection.html#tp-connection-get-contact-list-state">tp_connection_get_contact_list_state</a></span> <span class="gtkdoc opt">(</span>connection<span class="gtkdoc opt">) !=</span>
330 TP_CONTACT_LIST_STATE_SUCCESS<span class="gtkdoc opt">)</span>
331 <span class="keyword">continue</span><span class="gtkdoc opt">;</span>
332
333 contacts <span class="gtkdoc opt">=</span> <span class="function"><a href="telepathy-glib-connection.html#tp-connection-dup-contact-list">tp_connection_dup_contact_list</a></span> <span class="gtkdoc opt">(</span>connection<span class="gtkdoc opt">);</span>
334 <span class="keyword">for</span> <span class="gtkdoc opt">(</span>i <span class="gtkdoc opt">=</span> <span class="number">0</span><span class="gtkdoc opt">;</span> i <span class="gtkdoc opt">&lt;</span> contacts<span class="gtkdoc opt">-&gt;</span>len<span class="gtkdoc opt">;</span> i<span class="gtkdoc opt">++)</span>
335 <span class="gtkdoc opt">{</span>
336 TpContact <span class="gtkdoc opt">*</span>contact <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#g-ptr-array-index">g_ptr_array_index</a></span> <span class="gtkdoc opt">(</span>contacts<span class="gtkdoc opt">,</span> i<span class="gtkdoc opt">);</span>
337 <span class="gtkdoc kwb">const</span> gchar <span class="gtkdoc opt">*</span> <span class="gtkdoc kwb">const</span> <span class="gtkdoc opt">*</span>groups<span class="gtkdoc opt">;</span>
338
339 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;contact %s (%s) in groups:</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span>
340 <span class="function"><a href="telepathy-glib-contact.html#tp-contact-get-identifier">tp_contact_get_identifier</a></span> <span class="gtkdoc opt">(</span>contact<span class="gtkdoc opt">),</span>
341 <span class="function"><a href="telepathy-glib-contact.html#tp-contact-get-alias">tp_contact_get_alias</a></span> <span class="gtkdoc opt">(</span>contact<span class="gtkdoc opt">));</span>
342
343 <span class="keyword">for</span> <span class="gtkdoc opt">(</span>groups <span class="gtkdoc opt">=</span> <span class="function"><a href="telepathy-glib-contact.html#tp-contact-get-contact-groups">tp_contact_get_contact_groups</a></span> <span class="gtkdoc opt">(</span>contact<span class="gtkdoc opt">);</span>
344 <span class="gtkdoc opt">*</span>groups <span class="gtkdoc opt">!=</span> NULL<span class="gtkdoc opt">;</span> groups<span class="gtkdoc opt">++)</span>
345 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot; %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">, *</span>groups<span class="gtkdoc opt">);</span>
346 <span class="gtkdoc opt">}</span>
347 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#g-ptr-array-unref">g_ptr_array_unref</a></span> <span class="gtkdoc opt">(</span>contacts<span class="gtkdoc opt">);</span>
348 <span class="gtkdoc opt">}</span>
349
350 OUT<span class="gtkdoc opt">:</span>
351 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-loop-quit">g_main_loop_quit</a></span> <span class="gtkdoc opt">(</span>loop<span class="gtkdoc opt">);</span>
352 <span class="gtkdoc opt">}</span>
353
354 <span class="gtkdoc kwb">int</span>
355 <span class="function">main</span> <span class="gtkdoc opt">(</span><span class="gtkdoc kwb">int</span> argc<span class="gtkdoc opt">,</span>
356 <span class="gtkdoc kwb">char</span> <span class="gtkdoc opt">**</span>argv<span class="gtkdoc opt">)</span>
357 <span class="gtkdoc opt">{</span>
358 TpAccountManager <span class="gtkdoc opt">*</span>manager<span class="gtkdoc opt">;</span>
359 TpSimpleClientFactory <span class="gtkdoc opt">*</span>factory<span class="gtkdoc opt">;</span>
360 GMainLoop <span class="gtkdoc opt">*</span>loop<span class="gtkdoc opt">;</span>
361
362 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#g-type-init">g_type_init</a></span> <span class="gtkdoc opt">();</span>
363 <span class="function"><a href="telepathy-glib-debug.html#tp-debug-set-flags">tp_debug_set_flags</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Miscellaneous-Utility-Functions.html#g-getenv">g_getenv</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;EXAMPLE_DEBUG&quot;</span><span class="gtkdoc opt">));</span>
364
365 loop <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-loop-new">g_main_loop_new</a></span> <span class="gtkdoc opt">(</span>NULL<span class="gtkdoc opt">,</span> FALSE<span class="gtkdoc opt">);</span>
366
367 manager <span class="gtkdoc opt">=</span> <span class="function"><a href="telepathy-glib-account-manager.html#tp-account-manager-dup">tp_account_manager_dup</a></span> <span class="gtkdoc opt">();</span>
368 factory <span class="gtkdoc opt">=</span> <span class="function"><a href="telepathy-glib-proxy.html#tp-proxy-get-factory">tp_proxy_get_factory</a></span> <span class="gtkdoc opt">(</span>manager<span class="gtkdoc opt">);</span>
369 <span class="function"><a href="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-account-features-varargs">tp_simple_client_factory_add_account_features_varargs</a></span> <span class="gtkdoc opt">(</span>factory<span class="gtkdoc opt">,</span>
370 TP_ACCOUNT_FEATURE_CONNECTION<span class="gtkdoc opt">,</span>
371 <span class="number">0</span><span class="gtkdoc opt">);</span>
372 <span class="function"><a href="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-connection-features-varargs">tp_simple_client_factory_add_connection_features_varargs</a></span> <span class="gtkdoc opt">(</span>factory<span class="gtkdoc opt">,</span>
373 TP_CONNECTION_FEATURE_CONTACT_LIST<span class="gtkdoc opt">,</span>
374 <span class="number">0</span><span class="gtkdoc opt">);</span>
375 <span class="function"><a href="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-contact-features-varargs">tp_simple_client_factory_add_contact_features_varargs</a></span> <span class="gtkdoc opt">(</span>factory<span class="gtkdoc opt">,</span>
376 TP_CONTACT_FEATURE_ALIAS<span class="gtkdoc opt">,</span>
377 TP_CONTACT_FEATURE_CONTACT_GROUPS<span class="gtkdoc opt">,</span>
378 TP_CONTACT_FEATURE_INVALID<span class="gtkdoc opt">);</span>
379
380 <span class="function"><a href="telepathy-glib-proxy.html#tp-proxy-prepare-async">tp_proxy_prepare_async</a></span> <span class="gtkdoc opt">(</span>manager<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span> account_manager_prepared_cb<span class="gtkdoc opt">,</span> loop<span class="gtkdoc opt">);</span>
381
382 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-loop-run">g_main_loop_run</a></span> <span class="gtkdoc opt">(</span>loop<span class="gtkdoc opt">);</span>
383
384 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span> <span class="gtkdoc opt">(</span>manager<span class="gtkdoc opt">);</span>
385 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-loop-unref">g_main_loop_unref</a></span> <span class="gtkdoc opt">(</span>loop<span class="gtkdoc opt">);</span>
386
387 <span class="keyword">return</span> <span class="number">0</span><span class="gtkdoc opt">;</span>
388 <span class="gtkdoc opt">}</span></pre></td>
328 <span class="comment"> * we would have to wait for the "notify:contact-list-state" signal. */</span>
329 <span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">connection </span><span class="symbol">==</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a> </span><span class="symbol">||</span>
330 <span class="normal"> </span><span class="function"><a href="telepathy-glib-connection.html#tp-connection-get-contact-list-state">tp_connection_get_contact_list_state</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">connection</span><span class="symbol">)</span><span class="normal"> </span><span class="symbol">!=</span>
331 <span class="normal"> <a href="telepathy-glib-enums.html#TP-CONTACT-LIST-STATE-SUCCESS:CAPS">TP_CONTACT_LIST_STATE_SUCCESS</a></span><span class="symbol">)</span>
332 <span class="normal"> </span><span class="keyword">continue</span><span class="symbol">;</span>
333
334 <span class="normal"> contacts </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-connection.html#tp-connection-dup-contact-list">tp_connection_dup_contact_list</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">connection</span><span class="symbol">);</span>
335 <span class="normal"> </span><span class="keyword">for</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">i </span><span class="symbol">=</span><span class="normal"> </span><span class="number">0</span><span class="symbol">;</span><span class="normal"> i </span><span class="symbol">&lt;</span><span class="normal"> contacts</span><span class="symbol">-&gt;</span><span class="normal">len</span><span class="symbol">;</span><span class="normal"> i</span><span class="symbol">++)</span>
336 <span class="normal"> </span><span class="cbracket">{</span>
337 <span class="normal"> </span><span class="usertype">TpContact</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">contact </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#g-ptr-array-index">g_ptr_array_index</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">contacts</span><span class="symbol">,</span><span class="normal"> i</span><span class="symbol">);</span>
338 <span class="normal"> </span><span class="keyword">const</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar">gchar</a> </span><span class="symbol">*</span><span class="normal"> </span><span class="keyword">const</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">groups</span><span class="symbol">;</span>
339
340 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"contact %s (%s) in groups:</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span>
341 <span class="normal"> </span><span class="function"><a href="telepathy-glib-contact.html#tp-contact-get-identifier">tp_contact_get_identifier</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">contact</span><span class="symbol">),</span>
342 <span class="normal"> </span><span class="function"><a href="telepathy-glib-contact.html#tp-contact-get-alias">tp_contact_get_alias</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">contact</span><span class="symbol">));</span>
343
344 <span class="normal"> </span><span class="keyword">for</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">groups </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-contact.html#tp-contact-get-contact-groups">tp_contact_get_contact_groups</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">contact</span><span class="symbol">);</span>
345 <span class="normal"> </span><span class="symbol">*</span><span class="normal">groups </span><span class="symbol">!=</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span><span class="normal"> groups</span><span class="symbol">++)</span>
346 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">" %s</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">groups</span><span class="symbol">);</span>
347 <span class="normal"> </span><span class="cbracket">}</span>
348 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#g-ptr-array-unref">g_ptr_array_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">contacts</span><span class="symbol">);</span>
349 <span class="normal"> </span><span class="cbracket">}</span>
350
351 <span class="label">OUT:</span>
352 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-loop-quit">g_main_loop_quit</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">loop</span><span class="symbol">);</span>
353 <span class="cbracket">}</span>
354
355 <span class="type">int</span>
356 <span class="function">main</span><span class="normal"> </span><span class="symbol">(</span><span class="type">int</span><span class="normal"> argc</span><span class="symbol">,</span>
357 <span class="normal"> </span><span class="type">char</span><span class="normal"> </span><span class="symbol">**</span><span class="normal">argv</span><span class="symbol">)</span>
358 <span class="cbracket">{</span>
359 <span class="normal"> </span><span class="usertype">TpAccountManager</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">manager</span><span class="symbol">;</span>
360 <span class="normal"> </span><span class="usertype">TpSimpleClientFactory</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">factory</span><span class="symbol">;</span>
361 <span class="normal"> </span><span class="usertype">GMainLoop</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">loop</span><span class="symbol">;</span>
362
363 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#g-type-init">g_type_init</a></span><span class="normal"> </span><span class="symbol">();</span>
364 <span class="normal"> </span><span class="function"><a href="telepathy-glib-debug.html#tp-debug-set-flags">tp_debug_set_flags</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Miscellaneous-Utility-Functions.html#g-getenv">g_getenv</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"EXAMPLE_DEBUG"</span><span class="symbol">));</span>
365
366 <span class="normal"> loop </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-loop-new">g_main_loop_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS">FALSE</a></span><span class="symbol">);</span>
367
368 <span class="normal"> manager </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-account-manager.html#tp-account-manager-dup">tp_account_manager_dup</a></span><span class="normal"> </span><span class="symbol">();</span>
369 <span class="normal"> factory </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-proxy.html#tp-proxy-get-factory">tp_proxy_get_factory</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">manager</span><span class="symbol">);</span>
370 <span class="normal"> </span><span class="function"><a href="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-account-features-varargs">tp_simple_client_factory_add_account_features_varargs</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">factory</span><span class="symbol">,</span>
371 <span class="normal"> <a href="telepathy-glib-account.html#TP-ACCOUNT-FEATURE-CONNECTION:CAPS">TP_ACCOUNT_FEATURE_CONNECTION</a></span><span class="symbol">,</span>
372 <span class="normal"> </span><span class="number">0</span><span class="symbol">);</span>
373 <span class="normal"> </span><span class="function"><a href="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-connection-features-varargs">tp_simple_client_factory_add_connection_features_varargs</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">factory</span><span class="symbol">,</span>
374 <span class="normal"> <a href="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CONTACT-LIST:CAPS">TP_CONNECTION_FEATURE_CONTACT_LIST</a></span><span class="symbol">,</span>
375 <span class="normal"> </span><span class="number">0</span><span class="symbol">);</span>
376 <span class="normal"> </span><span class="function"><a href="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-contact-features-varargs">tp_simple_client_factory_add_contact_features_varargs</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">factory</span><span class="symbol">,</span>
377 <span class="normal"> <a href="telepathy-glib-contact.html#TP-CONTACT-FEATURE-ALIAS:CAPS">TP_CONTACT_FEATURE_ALIAS</a></span><span class="symbol">,</span>
378 <span class="normal"> <a href="telepathy-glib-contact.html#TP-CONTACT-FEATURE-CONTACT-GROUPS:CAPS">TP_CONTACT_FEATURE_CONTACT_GROUPS</a></span><span class="symbol">,</span>
379 <span class="normal"> <a href="telepathy-glib-contact.html#TP-CONTACT-FEATURE-INVALID:CAPS">TP_CONTACT_FEATURE_INVALID</a></span><span class="symbol">);</span>
380
381 <span class="normal"> </span><span class="function"><a href="telepathy-glib-proxy.html#tp-proxy-prepare-async">tp_proxy_prepare_async</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">manager</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> account_manager_prepared_cb</span><span class="symbol">,</span><span class="normal"> loop</span><span class="symbol">);</span>
382
383 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-loop-run">g_main_loop_run</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">loop</span><span class="symbol">);</span>
384
385 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">manager</span><span class="symbol">);</span>
386 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-loop-unref">g_main_loop_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">loop</span><span class="symbol">);</span>
387
388 <span class="normal"> </span><span class="keyword">return</span><span class="normal"> </span><span class="number">0</span><span class="symbol">;</span>
389 <span class="cbracket">}</span></pre></td>
389390 </tr>
390391 </tbody>
391392 </table>
647648 <hr>
648649 <div class="refsect2">
649650 <a name="tp-account-manager-ensure-account"></a><h3>tp_account_manager_ensure_account ()</h3>
650 <pre class="programlisting"><a class="link" href="telepathy-glib-account.html#TpAccount"><span class="returnvalue">TpAccount</span></a> * tp_account_manager_ensure_account (<em class="parameter"><code><a class="link" href="telepathy-glib-account-manager.html#TpAccountManager"><span class="type">TpAccountManager</span></a> *manager</code></em>);</pre>
651 <pre class="programlisting"><a class="link" href="telepathy-glib-account.html#TpAccount"><span class="returnvalue">TpAccount</span></a> * tp_account_manager_ensure_account (<em class="parameter"><code><a class="link" href="telepathy-glib-account-manager.html#TpAccountManager"><span class="type">TpAccountManager</span></a> *manager</code></em>,
652 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *path</code></em>);</pre>
651653 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
652654 <h3 class="title">Warning</h3>
653655 <p><code class="literal">tp_account_manager_ensure_account</code> is deprecated and should not be used in newly-written code. New code should use <a class="link" href="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-ensure-account" title="tp_simple_client_factory_ensure_account ()"><code class="function">tp_simple_client_factory_ensure_account()</code></a>
672674 <td><p><span class="term"><em class="parameter"><code>manager</code></em> :</span></p></td>
673675 <td>a <a class="link" href="telepathy-glib-account-manager.html#TpAccountManager"><span class="type">TpAccountManager</span></a>
674676 </td>
677 </tr>
678 <tr>
679 <td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td>
680 <td>the object path for an account</td>
675681 </tr>
676682 <tr>
677683 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
705711 <td class="listing_lines" align="right"><pre>1
706712 2
707713 3</pre></td>
708 <td class="listing_code"><pre class="programlisting">GList <span class="gtkdoc opt">*</span>accounts<span class="gtkdoc opt">;</span>
709 account <span class="gtkdoc opt">=</span> <span class="function"><a href="telepathy-glib-account-manager.html#tp-account-manager-get-valid-accounts">tp_account_manager_get_valid_accounts</a></span> <span class="gtkdoc opt">(</span>manager<span class="gtkdoc opt">);</span>
710 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-foreach">g_list_foreach</a></span> <span class="gtkdoc opt">(</span>accounts<span class="gtkdoc opt">, (</span>GFunc<span class="gtkdoc opt">)</span> g_object_ref<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span></pre></td>
714 <td class="listing_code"><pre class="programlisting"><span class="usertype">GList</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">accounts</span><span class="symbol">;</span>
715 <span class="normal">account </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-account-manager.html#tp-account-manager-get-valid-accounts">tp_account_manager_get_valid_accounts</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">manager</span><span class="symbol">);</span>
716 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-foreach">g_list_foreach</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">accounts</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GFunc">GFunc</a></span><span class="symbol">)</span><span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-ref">g_object_ref</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span></pre></td>
711717 </tr>
712718 </tbody>
713719 </table>
746752 <hr>
747753 <div class="refsect2">
748754 <a name="tp-account-manager-get-most-available-presence"></a><h3>tp_account_manager_get_most_available_presence ()</h3>
749 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpConnectionPresenceType" title="enum TpConnectionPresenceType"><span class="returnvalue">TpConnectionPresenceType</span></a> tp_account_manager_get_most_available_presence
755 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpConnectionPresenceType" title="enum TpConnectionPresenceType"><span class="returnvalue">TpConnectionPresenceType</span></a> tp_account_manager_get_most_available_presence
750756 (<em class="parameter"><code><a class="link" href="telepathy-glib-account-manager.html#TpAccountManager"><span class="type">TpAccountManager</span></a> *manager</code></em>,
751757 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **status</code></em>,
752758 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **message</code></em>);</pre>
920926 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> *features</code></em>,
921927 <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
922928 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
929 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
930 <h3 class="title">Warning</h3>
931 <p><code class="literal">tp_account_manager_prepare_async</code> is deprecated and should not be used in newly-written code. since 0.15.6, use <a class="link" href="telepathy-glib-proxy.html#tp-proxy-prepare-async" title="tp_proxy_prepare_async ()"><code class="function">tp_proxy_prepare_async()</code></a> instead.</p>
932 </div>
923933 <p>
924934 Requests an asynchronous preparation of <em class="parameter"><code>manager</code></em> with
925935 <a class="link" href="telepathy-glib-account-manager.html#TP-ACCOUNT-MANAGER-FEATURE-CORE:CAPS" title="TP_ACCOUNT_MANAGER_FEATURE_CORE"><code class="literal">TP_ACCOUNT_MANAGER_FEATURE_CORE</code></a>, plus any features specified
968978 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> tp_account_manager_prepare_finish (<em class="parameter"><code><a class="link" href="telepathy-glib-account-manager.html#TpAccountManager"><span class="type">TpAccountManager</span></a> *manager</code></em>,
969979 <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *result</code></em>,
970980 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
981 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
982 <h3 class="title">Warning</h3>
983 <p><code class="literal">tp_account_manager_prepare_finish</code> is deprecated and should not be used in newly-written code. since 0.15.6, use <a class="link" href="telepathy-glib-proxy.html#tp-proxy-prepare-finish" title="tp_proxy_prepare_finish ()"><code class="function">tp_proxy_prepare_finish()</code></a> instead.</p>
984 </div>
971985 <p>
972986 Finishes an async preparation of the account manager <em class="parameter"><code>manager</code></em>.
973987 </p>
15071521 </div>
15081522 <div class="footer">
15091523 <hr>
1510 Generated by GTK-Doc V1.17</div>
1524 Generated by GTK-Doc V1.17.1</div>
15111525 </body>
15121526 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-account-manager.html" title="TpAccountManager">
99 <link rel="next" href="telepathy-glib-channel-dispatcher.html" title="TpChannelDispatcher">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
154154 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="telepathy-glib-account.html#tp-account-get-detailed-error" title="tp_account_get_detailed_error ()">tp_account_get_detailed_error</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-account.html#TpAccount"><span class="type">TpAccount</span></a> *self</code></em>,
155155 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> **details</code></em>);
156156 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="telepathy-glib-account.html#tp-account-get-changing-presence" title="tp_account_get_changing_presence ()">tp_account_get_changing_presence</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-account.html#TpAccount"><span class="type">TpAccount</span></a> *self</code></em>);
157 <a class="link" href="telepathy-glib-enums.html#TpConnectionPresenceType" title="enum TpConnectionPresenceType"><span class="returnvalue">TpConnectionPresenceType</span></a> <a class="link" href="telepathy-glib-account.html#tp-account-get-current-presence" title="tp_account_get_current_presence ()">tp_account_get_current_presence</a>
157 <a class="link" href="telepathy-glib-enums.html#TpConnectionPresenceType" title="enum TpConnectionPresenceType"><span class="returnvalue">TpConnectionPresenceType</span></a> <a class="link" href="telepathy-glib-account.html#tp-account-get-current-presence" title="tp_account_get_current_presence ()">tp_account_get_current_presence</a>
158158 (<em class="parameter"><code><a class="link" href="telepathy-glib-account.html#TpAccount"><span class="type">TpAccount</span></a> *account</code></em>,
159159 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **status</code></em>,
160160 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **status_message</code></em>);
161 <a class="link" href="telepathy-glib-enums.html#TpConnectionPresenceType" title="enum TpConnectionPresenceType"><span class="returnvalue">TpConnectionPresenceType</span></a> <a class="link" href="telepathy-glib-account.html#tp-account-get-requested-presence" title="tp_account_get_requested_presence ()">tp_account_get_requested_presence</a>
161 <a class="link" href="telepathy-glib-enums.html#TpConnectionPresenceType" title="enum TpConnectionPresenceType"><span class="returnvalue">TpConnectionPresenceType</span></a> <a class="link" href="telepathy-glib-account.html#tp-account-get-requested-presence" title="tp_account_get_requested_presence ()">tp_account_get_requested_presence</a>
162162 (<em class="parameter"><code><a class="link" href="telepathy-glib-account.html#TpAccount"><span class="type">TpAccount</span></a> *account</code></em>,
163163 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **status</code></em>,
164164 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **status_message</code></em>);
165 <a class="link" href="telepathy-glib-enums.html#TpConnectionPresenceType" title="enum TpConnectionPresenceType"><span class="returnvalue">TpConnectionPresenceType</span></a> <a class="link" href="telepathy-glib-account.html#tp-account-get-automatic-presence" title="tp_account_get_automatic_presence ()">tp_account_get_automatic_presence</a>
165 <a class="link" href="telepathy-glib-enums.html#TpConnectionPresenceType" title="enum TpConnectionPresenceType"><span class="returnvalue">TpConnectionPresenceType</span></a> <a class="link" href="telepathy-glib-account.html#tp-account-get-automatic-presence" title="tp_account_get_automatic_presence ()">tp_account_get_automatic_presence</a>
166166 (<em class="parameter"><code><a class="link" href="telepathy-glib-account.html#TpAccount"><span class="type">TpAccount</span></a> *self</code></em>,
167167 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **status</code></em>,
168168 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **status_message</code></em>);
228228 #define <a class="link" href="telepathy-glib-account.html#TP-ACCOUNT-FEATURE-STORAGE:CAPS" title="TP_ACCOUNT_FEATURE_STORAGE">TP_ACCOUNT_FEATURE_STORAGE</a>
229229 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="telepathy-glib-account.html#tp-account-get-storage-provider" title="tp_account_get_storage_provider ()">tp_account_get_storage_provider</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-account.html#TpAccount"><span class="type">TpAccount</span></a> *self</code></em>);
230230 const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> * <a class="link" href="telepathy-glib-account.html#tp-account-get-storage-identifier" title="tp_account_get_storage_identifier ()">tp_account_get_storage_identifier</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-account.html#TpAccount"><span class="type">TpAccount</span></a> *self</code></em>);
231 <a class="link" href="telepathy-glib-enums.html#TpStorageRestrictionFlags" title="enum TpStorageRestrictionFlags"><span class="returnvalue">TpStorageRestrictionFlags</span></a> <a class="link" href="telepathy-glib-account.html#tp-account-get-storage-restrictions" title="tp_account_get_storage_restrictions ()">tp_account_get_storage_restrictions</a>
231 <a class="link" href="telepathy-glib-enums.html#TpStorageRestrictionFlags" title="enum TpStorageRestrictionFlags"><span class="returnvalue">TpStorageRestrictionFlags</span></a> <a class="link" href="telepathy-glib-account.html#tp-account-get-storage-restrictions" title="tp_account_get_storage_restrictions ()">tp_account_get_storage_restrictions</a>
232232 (<em class="parameter"><code><a class="link" href="telepathy-glib-account.html#TpAccount"><span class="type">TpAccount</span></a> *self</code></em>);
233233 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-account.html#tp-account-get-storage-specific-information-async" title="tp_account_get_storage_specific_information_async ()">tp_account_get_storage_specific_information_async</a>
234234 (<em class="parameter"><code><a class="link" href="telepathy-glib-account.html#TpAccount"><span class="type">TpAccount</span></a> *self</code></em>,
16931693 <hr>
16941694 <div class="refsect2">
16951695 <a name="tp-account-get-current-presence"></a><h3>tp_account_get_current_presence ()</h3>
1696 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpConnectionPresenceType" title="enum TpConnectionPresenceType"><span class="returnvalue">TpConnectionPresenceType</span></a> tp_account_get_current_presence
1696 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpConnectionPresenceType" title="enum TpConnectionPresenceType"><span class="returnvalue">TpConnectionPresenceType</span></a> tp_account_get_current_presence
16971697 (<em class="parameter"><code><a class="link" href="telepathy-glib-account.html#TpAccount"><span class="type">TpAccount</span></a> *account</code></em>,
16981698 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **status</code></em>,
16991699 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **status_message</code></em>);</pre>
17321732 <hr>
17331733 <div class="refsect2">
17341734 <a name="tp-account-get-requested-presence"></a><h3>tp_account_get_requested_presence ()</h3>
1735 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpConnectionPresenceType" title="enum TpConnectionPresenceType"><span class="returnvalue">TpConnectionPresenceType</span></a> tp_account_get_requested_presence
1735 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpConnectionPresenceType" title="enum TpConnectionPresenceType"><span class="returnvalue">TpConnectionPresenceType</span></a> tp_account_get_requested_presence
17361736 (<em class="parameter"><code><a class="link" href="telepathy-glib-account.html#TpAccount"><span class="type">TpAccount</span></a> *account</code></em>,
17371737 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **status</code></em>,
17381738 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **status_message</code></em>);</pre>
17721772 <hr>
17731773 <div class="refsect2">
17741774 <a name="tp-account-get-automatic-presence"></a><h3>tp_account_get_automatic_presence ()</h3>
1775 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpConnectionPresenceType" title="enum TpConnectionPresenceType"><span class="returnvalue">TpConnectionPresenceType</span></a> tp_account_get_automatic_presence
1775 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpConnectionPresenceType" title="enum TpConnectionPresenceType"><span class="returnvalue">TpConnectionPresenceType</span></a> tp_account_get_automatic_presence
17761776 (<em class="parameter"><code><a class="link" href="telepathy-glib-account.html#TpAccount"><span class="type">TpAccount</span></a> *self</code></em>,
17771777 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **status</code></em>,
17781778 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **status_message</code></em>);</pre>
22622262 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> *features</code></em>,
22632263 <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
22642264 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
2265 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
2266 <h3 class="title">Warning</h3>
2267 <p><code class="literal">tp_account_prepare_async</code> is deprecated and should not be used in newly-written code. since 0.15.6, use <a class="link" href="telepathy-glib-proxy.html#tp-proxy-prepare-async" title="tp_proxy_prepare_async ()"><code class="function">tp_proxy_prepare_async()</code></a> instead.</p>
2268 </div>
22652269 <p>
22662270 Requests an asynchronous preparation of <em class="parameter"><code>account</code></em> with the features specified
22672271 by <em class="parameter"><code>features</code></em>. When the operation is finished, <em class="parameter"><code>callback</code></em> will be called. You
23132317 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> tp_account_prepare_finish (<em class="parameter"><code><a class="link" href="telepathy-glib-account.html#TpAccount"><span class="type">TpAccount</span></a> *account</code></em>,
23142318 <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *result</code></em>,
23152319 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
2320 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
2321 <h3 class="title">Warning</h3>
2322 <p><code class="literal">tp_account_prepare_finish</code> is deprecated and should not be used in newly-written code. since 0.15.6, use <a class="link" href="telepathy-glib-proxy.html#tp-proxy-prepare-finish" title="tp_proxy_prepare_finish ()"><code class="function">tp_proxy_prepare_finish()</code></a> instead.</p>
2323 </div>
23162324 <p>
23172325 Finishes an async preparation of the account <em class="parameter"><code>account</code></em>.
23182326 </p>
25882596 <hr>
25892597 <div class="refsect2">
25902598 <a name="tp-account-get-storage-restrictions"></a><h3>tp_account_get_storage_restrictions ()</h3>
2591 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpStorageRestrictionFlags" title="enum TpStorageRestrictionFlags"><span class="returnvalue">TpStorageRestrictionFlags</span></a> tp_account_get_storage_restrictions
2599 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpStorageRestrictionFlags" title="enum TpStorageRestrictionFlags"><span class="returnvalue">TpStorageRestrictionFlags</span></a> tp_account_get_storage_restrictions
25922600 (<em class="parameter"><code><a class="link" href="telepathy-glib-account.html#TpAccount"><span class="type">TpAccount</span></a> *self</code></em>);</pre>
25932601 <p>
25942602
41274135 </div>
41284136 <div class="footer">
41294137 <hr>
4130 Generated by GTK-Doc V1.17</div>
4138 Generated by GTK-Doc V1.17.1</div>
41314139 </body>
41324140 </html>
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="telepathy-glib-observe-channels-context.html" title="TpObserveChannelsContext">
99 <link rel="next" href="telepathy-glib-handle-channels-context.html" title="TpHandleChannelsContext">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
228228 </div>
229229 <div class="footer">
230230 <hr>
231 Generated by GTK-Doc V1.17</div>
231 Generated by GTK-Doc V1.17.1</div>
232232 </body>
233233 </html>
77 <link rel="up" href="ch-dbus.html" title="General D-Bus support">
88 <link rel="prev" href="telepathy-glib-dbus.html" title="D-Bus utilities">
99 <link rel="next" href="telepathy-glib-proxy-subclass.html" title="TpProxy subclasses and mixins">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
197197 <tr>
198198 <td class="listing_lines" align="right"><pre>1
199199 2</pre></td>
200 <td class="listing_code"><pre class="programlisting">GHashTable <span class="gtkdoc opt">*</span>asv <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#g-hash-table-new-full">g_hash_table_new_full</a></span> <span class="gtkdoc opt">(</span>g_str_hash<span class="gtkdoc opt">,</span> g_str_equal<span class="gtkdoc opt">,</span>
201 NULL<span class="gtkdoc opt">, (</span>GDestroyNotify<span class="gtkdoc opt">)</span> tp_g_value_slice_free<span class="gtkdoc opt">);</span></pre></td>
200 <td class="listing_code"><pre class="programlisting"><span class="usertype">GHashTable</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">asv </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#g-hash-table-new-full">g_hash_table_new_full</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#g-str-hash">g_str_hash</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#g-str-equal">g_str_equal</a></span><span class="symbol">,</span>
201 <span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify">GDestroyNotify</a></span><span class="symbol">)</span><span class="normal"> <a href="telepathy-glib-util.html#tp-g-value-slice-free">tp_g_value_slice_free</a></span><span class="symbol">);</span></pre></td>
202202 </tr>
203203 </tbody>
204204 </table>
221221 <tr>
222222 <td class="listing_lines" align="right"><pre>1
223223 2</pre></td>
224 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#g-hash-table-insert">g_hash_table_insert</a></span> <span class="gtkdoc opt">(</span>parameters<span class="gtkdoc opt">,</span> <span class="string">&quot;account&quot;</span><span class="gtkdoc opt">,</span>
225 <span class="function"><a href="telepathy-glib-util.html#tp-g-value-slice-new-string">tp_g_value_slice_new_string</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;bob&#64;mcbadgers.com&quot;</span><span class="gtkdoc opt">));</span></pre></td>
224 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#g-hash-table-insert">g_hash_table_insert</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">parameters</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"account"</span><span class="symbol">,</span>
225 <span class="normal"> </span><span class="function"><a href="telepathy-glib-util.html#tp-g-value-slice-new-string">tp_g_value_slice_new_string</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"bob@mcbadgers.com"</span><span class="symbol">));</span></pre></td>
226226 </tr>
227227 </tbody>
228228 </table>
233233 <p>
234234 </p>
235235 <div class="example">
236 <a name="idp12676416"></a><p class="title"><b>Example 1. Using <a class="link" href="telepathy-glib-asv.html#tp-asv-new" title="tp_asv_new ()"><code class="function">tp_asv_new()</code></a></b></p>
236 <a name="idp12679728"></a><p class="title"><b>Example 1. Using <a class="link" href="telepathy-glib-asv.html#tp-asv-new" title="tp_asv_new ()"><code class="function">tp_asv_new()</code></a></b></p>
237237 <div class="example-contents">
238238 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
239239 <tbody>
242242 2
243243 3
244244 4</pre></td>
245 <td class="listing_code"><pre class="programlisting">GHashTable <span class="gtkdoc opt">*</span>parameters <span class="gtkdoc opt">=</span> <span class="function"><a href="telepathy-glib-asv.html#tp-asv-new">tp_asv_new</a></span> <span class="gtkdoc opt">(</span>
246 <span class="string">&quot;answer&quot;</span><span class="gtkdoc opt">,</span> G_TYPE_INT<span class="gtkdoc opt">,</span> <span class="number">42</span><span class="gtkdoc opt">,</span>
247 <span class="string">&quot;question&quot;</span><span class="gtkdoc opt">,</span> G_TYPE_STRING<span class="gtkdoc opt">,</span> <span class="string">&quot;We just don't know&quot;</span><span class="gtkdoc opt">,</span>
248 NULL<span class="gtkdoc opt">);</span></pre></td>
245 <td class="listing_code"><pre class="programlisting"><span class="usertype">GHashTable</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">parameters </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-asv.html#tp-asv-new">tp_asv_new</a></span><span class="normal"> </span><span class="symbol">(</span>
246 <span class="normal"> </span><span class="string">"answer"</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-INT:CAPS">G_TYPE_INT</a></span><span class="symbol">,</span><span class="normal"> </span><span class="number">42</span><span class="symbol">,</span>
247 <span class="normal"> </span><span class="string">"question"</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-STRING:CAPS">G_TYPE_STRING</a></span><span class="symbol">,</span><span class="normal"> </span><span class="string">"We just don't know"</span><span class="symbol">,</span>
248 <span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span></pre></td>
249249 </tr>
250250 </tbody>
251251 </table>
14501450 </div>
14511451 <div class="footer">
14521452 <hr>
1453 Generated by GTK-Doc V1.17</div>
1453 Generated by GTK-Doc V1.17.1</div>
14541454 </body>
14551455 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-simple-client-factory.html" title="TpSimpleClientFactory">
99 <link rel="next" href="TpClientMessage.html" title="TpClientMessage">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
7070 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
7171 <li class="listitem"><p>a <a class="link" href="telepathy-glib-stream-tube-channel.html#TpStreamTubeChannel"><span class="type">TpStreamTubeChannel</span></a>, if the channel is of type
7272 <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-STREAM-TUBE:CAPS" title="TP_IFACE_CHANNEL_TYPE_STREAM_TUBE"><code class="literal">TP_IFACE_CHANNEL_TYPE_STREAM_TUBE</code></a>;</p></li>
73 <li class="listitem"><p>a <a class="link" href="telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel"><span class="type">TpDBusTubeChannel</span></a>, if the channel is of type
74 <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-DBUS-TUBE:CAPS" title="TP_IFACE_CHANNEL_TYPE_DBUS_TUBE"><code class="literal">TP_IFACE_CHANNEL_TYPE_DBUS_TUBE</code></a>;</p></li>
7375 <li class="listitem"><p>a <a class="link" href="telepathy-glib-text-channel.html#TpTextChannel"><span class="type">TpTextChannel</span></a>, if the channel is of type
7476 <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-TEXT:CAPS" title="TP_IFACE_CHANNEL_TYPE_TEXT"><code class="literal">TP_IFACE_CHANNEL_TYPE_TEXT</code></a> and implements
7577 <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-MESSAGES:CAPS" title="TP_IFACE_CHANNEL_INTERFACE_MESSAGES"><code class="literal">TP_IFACE_CHANNEL_INTERFACE_MESSAGES</code></a>;</p></li>
163165 </div>
164166 <div class="footer">
165167 <hr>
166 Generated by GTK-Doc V1.17</div>
168 Generated by GTK-Doc V1.17.1</div>
167169 </body>
168170 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-basic-proxy-factory.html" title="TpBasicProxyFactory">
99 <link rel="next" href="telepathy-glib-simple-client-factory.html" title="TpSimpleClientFactory">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
4545
4646 <a class="link" href="telepathy-glib-automatic-proxy-factory.html#TpAutomaticProxyFactory-struct" title="TpAutomaticProxyFactory">TpAutomaticProxyFactory</a>;
4747 struct <a class="link" href="telepathy-glib-automatic-proxy-factory.html#TpAutomaticProxyFactoryClass" title="struct TpAutomaticProxyFactoryClass">TpAutomaticProxyFactoryClass</a>;
48 <a class="link" href="telepathy-glib-automatic-proxy-factory.html#TpAutomaticProxyFactory"><span class="returnvalue">TpAutomaticProxyFactory</span></a> * <a class="link" href="telepathy-glib-automatic-proxy-factory.html#tp-automatic-proxy-factory-new" title="tp_automatic_proxy_factory_new ()">tp_automatic_proxy_factory_new</a>
49 ();
50 <a class="link" href="telepathy-glib-automatic-proxy-factory.html#TpAutomaticProxyFactory"><span class="returnvalue">TpAutomaticProxyFactory</span></a> * <a class="link" href="telepathy-glib-automatic-proxy-factory.html#tp-automatic-proxy-factory-dup" title="tp_automatic_proxy_factory_dup ()">tp_automatic_proxy_factory_dup</a>
51 ();
48 <a class="link" href="telepathy-glib-automatic-proxy-factory.html#TpAutomaticProxyFactory"><span class="returnvalue">TpAutomaticProxyFactory</span></a> * <a class="link" href="telepathy-glib-automatic-proxy-factory.html#tp-automatic-proxy-factory-new" title="tp_automatic_proxy_factory_new ()">tp_automatic_proxy_factory_new</a>
49 (<em class="parameter"><code><span class="type">void</span></code></em>);
50 <a class="link" href="telepathy-glib-automatic-proxy-factory.html#TpAutomaticProxyFactory"><span class="returnvalue">TpAutomaticProxyFactory</span></a> * <a class="link" href="telepathy-glib-automatic-proxy-factory.html#tp-automatic-proxy-factory-dup" title="tp_automatic_proxy_factory_dup ()">tp_automatic_proxy_factory_dup</a>
51 (<em class="parameter"><code><span class="type">void</span></code></em>);
5252 </pre>
5353 </div>
5454 <div class="refsect1">
145145 <hr>
146146 <div class="refsect2">
147147 <a name="tp-automatic-proxy-factory-new"></a><h3>tp_automatic_proxy_factory_new ()</h3>
148 <pre class="programlisting"><a class="link" href="telepathy-glib-automatic-proxy-factory.html#TpAutomaticProxyFactory"><span class="returnvalue">TpAutomaticProxyFactory</span></a> * tp_automatic_proxy_factory_new
149 ();</pre>
148 <pre class="programlisting"><a class="link" href="telepathy-glib-automatic-proxy-factory.html#TpAutomaticProxyFactory"><span class="returnvalue">TpAutomaticProxyFactory</span></a> * tp_automatic_proxy_factory_new
149 (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
150150 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
151151 <h3 class="title">Warning</h3>
152152 <p><code class="literal">tp_automatic_proxy_factory_new</code> is deprecated and should not be used in newly-written code. New code should use <a class="link" href="telepathy-glib-automatic-client-factory.html#TpAutomaticClientFactory"><span class="type">TpAutomaticClientFactory</span></a> instead</p>
167167 <hr>
168168 <div class="refsect2">
169169 <a name="tp-automatic-proxy-factory-dup"></a><h3>tp_automatic_proxy_factory_dup ()</h3>
170 <pre class="programlisting"><a class="link" href="telepathy-glib-automatic-proxy-factory.html#TpAutomaticProxyFactory"><span class="returnvalue">TpAutomaticProxyFactory</span></a> * tp_automatic_proxy_factory_dup
171 ();</pre>
170 <pre class="programlisting"><a class="link" href="telepathy-glib-automatic-proxy-factory.html#TpAutomaticProxyFactory"><span class="returnvalue">TpAutomaticProxyFactory</span></a> * tp_automatic_proxy_factory_dup
171 (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
172172 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
173173 <h3 class="title">Warning</h3>
174174 <p><code class="literal">tp_automatic_proxy_factory_dup</code> is deprecated and should not be used in newly-written code. New code should use <a class="link" href="telepathy-glib-automatic-client-factory.html#TpAutomaticClientFactory"><span class="type">TpAutomaticClientFactory</span></a> instead</p>
196196 </div>
197197 <div class="footer">
198198 <hr>
199 Generated by GTK-Doc V1.17</div>
199 Generated by GTK-Doc V1.17.1</div>
200200 </body>
201201 </html>
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="telepathy-glib-simple-password-manager.html" title="TpSimplePasswordManager">
99 <link rel="next" href="telepathy-glib-observe-channels-context.html" title="TpObserveChannelsContext">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
110110 (<em class="parameter"><code><a class="link" href="telepathy-glib-base-client.html#TpBaseClientClass" title="struct TpBaseClientClass"><span class="type">TpBaseClientClass</span></a> *klass</code></em>,
111111 <em class="parameter"><code><a class="link" href="telepathy-glib-base-client.html#TpBaseClientClassHandleChannelsImpl" title="TpBaseClientClassHandleChannelsImpl ()"><span class="type">TpBaseClientClassHandleChannelsImpl</span></a> impl</code></em>);
112112 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-base-client.html#tp-base-client-add-account-features" title="tp_base_client_add_account_features ()">tp_base_client_add_account_features</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-base-client.html#TpBaseClient"><span class="type">TpBaseClient</span></a> *self</code></em>,
113 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> *features</code></em>);
113 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> *features</code></em>,
114 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gssize"><span class="type">gssize</span></a> n</code></em>);
114115 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-base-client.html#tp-base-client-add-account-features-varargs" title="tp_base_client_add_account_features_varargs ()">tp_base_client_add_account_features_varargs</a>
115116 (<em class="parameter"><code><a class="link" href="telepathy-glib-base-client.html#TpBaseClient"><span class="type">TpBaseClient</span></a> *self</code></em>,
116 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> feature</code></em>);
117 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> feature</code></em>,
118 <em class="parameter"><code>...</code></em>);
117119 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-base-client.html#tp-base-client-add-connection-features" title="tp_base_client_add_connection_features ()">tp_base_client_add_connection_features</a>
118120 (<em class="parameter"><code><a class="link" href="telepathy-glib-base-client.html#TpBaseClient"><span class="type">TpBaseClient</span></a> *self</code></em>,
119 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> *features</code></em>);
121 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> *features</code></em>,
122 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gssize"><span class="type">gssize</span></a> n</code></em>);
120123 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-base-client.html#tp-base-client-add-connection-features-varargs" title="tp_base_client_add_connection_features_varargs ()">tp_base_client_add_connection_features_varargs</a>
121124 (<em class="parameter"><code><a class="link" href="telepathy-glib-base-client.html#TpBaseClient"><span class="type">TpBaseClient</span></a> *self</code></em>,
122 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> feature</code></em>);
125 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> feature</code></em>,
126 <em class="parameter"><code>...</code></em>);
123127 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-base-client.html#tp-base-client-add-channel-features" title="tp_base_client_add_channel_features ()">tp_base_client_add_channel_features</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-base-client.html#TpBaseClient"><span class="type">TpBaseClient</span></a> *self</code></em>,
124 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> *features</code></em>);
128 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> *features</code></em>,
129 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gssize"><span class="type">gssize</span></a> n</code></em>);
125130 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-base-client.html#tp-base-client-add-channel-features-varargs" title="tp_base_client_add_channel_features_varargs ()">tp_base_client_add_channel_features_varargs</a>
126131 (<em class="parameter"><code><a class="link" href="telepathy-glib-base-client.html#TpBaseClient"><span class="type">TpBaseClient</span></a> *self</code></em>,
127 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> feature</code></em>);
132 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> feature</code></em>,
133 <em class="parameter"><code>...</code></em>);
128134 <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="telepathy-glib-base-client.html#tp-base-client-get-handled-channels" title="tp_base_client_get_handled_channels ()">tp_base_client_get_handled_channels</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-base-client.html#TpBaseClient"><span class="type">TpBaseClient</span></a> *self</code></em>);
129135 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="telepathy-glib-base-client.html#tp-base-client-is-handling-channel" title="tp_base_client_is_handling_channel ()">tp_base_client_is_handling_channel</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-base-client.html#TpBaseClient"><span class="type">TpBaseClient</span></a> *self</code></em>,
130136 <em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *channel</code></em>);
339345 5
340346 6
341347 7</pre></td>
342 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-base-client.html#tp-base-client-take-observer-filter">tp_base_client_take_observer_filter</a></span> <span class="gtkdoc opt">(</span>client<span class="gtkdoc opt">,</span>
343 <span class="function"><a href="telepathy-glib-asv.html#tp-asv-new">tp_asv_new</a></span> <span class="gtkdoc opt">(</span>
344 TP_PROP_CHANNEL_CHANNEL_TYPE<span class="gtkdoc opt">,</span> G_TYPE_STRING<span class="gtkdoc opt">,</span>
345 TP_IFACE_CHANNEL_TYPE_TEXT<span class="gtkdoc opt">,</span>
346 TP_PROP_CHANNEL_TARGET_HANDLE_TYPE<span class="gtkdoc opt">,</span> G_TYPE_UINT<span class="gtkdoc opt">,</span>
347 TP_HANDLE_TYPE_CONTACT<span class="gtkdoc opt">,</span>
348 <span class="gtkdoc opt">...));</span></pre></td>
348 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-base-client.html#tp-base-client-take-observer-filter">tp_base_client_take_observer_filter</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">client</span><span class="symbol">,</span>
349 <span class="normal"> </span><span class="function"><a href="telepathy-glib-asv.html#tp-asv-new">tp_asv_new</a></span><span class="normal"> </span><span class="symbol">(</span>
350 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-CHANNEL-TYPE:CAPS">TP_PROP_CHANNEL_CHANNEL_TYPE</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-STRING:CAPS">G_TYPE_STRING</a></span><span class="symbol">,</span>
351 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-TEXT:CAPS">TP_IFACE_CHANNEL_TYPE_TEXT</a></span><span class="symbol">,</span>
352 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TARGET-HANDLE-TYPE:CAPS">TP_PROP_CHANNEL_TARGET_HANDLE_TYPE</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS">G_TYPE_UINT</a></span><span class="symbol">,</span>
353 <span class="normal"> <a href="telepathy-glib-enums.html#TP-HANDLE-TYPE-CONTACT:CAPS">TP_HANDLE_TYPE_CONTACT</a></span><span class="symbol">,</span>
354 <span class="normal"> </span><span class="symbol">...));</span></pre></td>
349355 </tr>
350356 </tbody>
351357 </table>
602608 5
603609 6
604610 7</pre></td>
605 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-base-client.html#tp-base-client-take-approver-filter">tp_base_client_take_approver_filter</a></span> <span class="gtkdoc opt">(</span>client<span class="gtkdoc opt">,</span>
606 <span class="function"><a href="telepathy-glib-asv.html#tp-asv-new">tp_asv_new</a></span> <span class="gtkdoc opt">(</span>
607 TP_PROP_CHANNEL_CHANNEL_TYPE<span class="gtkdoc opt">,</span> G_TYPE_STRING<span class="gtkdoc opt">,</span>
608 TP_IFACE_CHANNEL_TYPE_TEXT<span class="gtkdoc opt">,</span>
609 TP_PROP_CHANNEL_TARGET_HANDLE_TYPE<span class="gtkdoc opt">,</span> G_TYPE_UINT<span class="gtkdoc opt">,</span>
610 TP_HANDLE_TYPE_CONTACT<span class="gtkdoc opt">,</span>
611 <span class="gtkdoc opt">...));</span></pre></td>
611 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-base-client.html#tp-base-client-take-approver-filter">tp_base_client_take_approver_filter</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">client</span><span class="symbol">,</span>
612 <span class="normal"> </span><span class="function"><a href="telepathy-glib-asv.html#tp-asv-new">tp_asv_new</a></span><span class="normal"> </span><span class="symbol">(</span>
613 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-CHANNEL-TYPE:CAPS">TP_PROP_CHANNEL_CHANNEL_TYPE</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-STRING:CAPS">G_TYPE_STRING</a></span><span class="symbol">,</span>
614 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-TEXT:CAPS">TP_IFACE_CHANNEL_TYPE_TEXT</a></span><span class="symbol">,</span>
615 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TARGET-HANDLE-TYPE:CAPS">TP_PROP_CHANNEL_TARGET_HANDLE_TYPE</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS">G_TYPE_UINT</a></span><span class="symbol">,</span>
616 <span class="normal"> <a href="telepathy-glib-enums.html#TP-HANDLE-TYPE-CONTACT:CAPS">TP_HANDLE_TYPE_CONTACT</a></span><span class="symbol">,</span>
617 <span class="normal"> </span><span class="symbol">...));</span></pre></td>
612618 </tr>
613619 </tbody>
614620 </table>
887893 5
888894 6
889895 7</pre></td>
890 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-base-client.html#tp-base-client-take-handler-filter">tp_base_client_take_handler_filter</a></span> <span class="gtkdoc opt">(</span>client<span class="gtkdoc opt">,</span>
891 <span class="function"><a href="telepathy-glib-asv.html#tp-asv-new">tp_asv_new</a></span> <span class="gtkdoc opt">(</span>
892 TP_PROP_CHANNEL_CHANNEL_TYPE<span class="gtkdoc opt">,</span> G_TYPE_STRING<span class="gtkdoc opt">,</span>
893 TP_IFACE_CHANNEL_TYPE_TEXT<span class="gtkdoc opt">,</span>
894 TP_PROP_CHANNEL_TARGET_HANDLE_TYPE<span class="gtkdoc opt">,</span> G_TYPE_UINT<span class="gtkdoc opt">,</span>
895 TP_HANDLE_TYPE_CONTACT<span class="gtkdoc opt">,</span>
896 <span class="gtkdoc opt">...));</span></pre></td>
896 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-base-client.html#tp-base-client-take-handler-filter">tp_base_client_take_handler_filter</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">client</span><span class="symbol">,</span>
897 <span class="normal"> </span><span class="function"><a href="telepathy-glib-asv.html#tp-asv-new">tp_asv_new</a></span><span class="normal"> </span><span class="symbol">(</span>
898 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-CHANNEL-TYPE:CAPS">TP_PROP_CHANNEL_CHANNEL_TYPE</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-STRING:CAPS">G_TYPE_STRING</a></span><span class="symbol">,</span>
899 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-TEXT:CAPS">TP_IFACE_CHANNEL_TYPE_TEXT</a></span><span class="symbol">,</span>
900 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TARGET-HANDLE-TYPE:CAPS">TP_PROP_CHANNEL_TARGET_HANDLE_TYPE</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS">G_TYPE_UINT</a></span><span class="symbol">,</span>
901 <span class="normal"> <a href="telepathy-glib-enums.html#TP-HANDLE-TYPE-CONTACT:CAPS">TP_HANDLE_TYPE_CONTACT</a></span><span class="symbol">,</span>
902 <span class="normal"> </span><span class="symbol">...));</span></pre></td>
897903 </tr>
898904 </tbody>
899905 </table>
10471053 <div class="refsect2">
10481054 <a name="tp-base-client-add-account-features"></a><h3>tp_base_client_add_account_features ()</h3>
10491055 <pre class="programlisting"><span class="returnvalue">void</span> tp_base_client_add_account_features (<em class="parameter"><code><a class="link" href="telepathy-glib-base-client.html#TpBaseClient"><span class="type">TpBaseClient</span></a> *self</code></em>,
1050 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> *features</code></em>);</pre>
1056 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> *features</code></em>,
1057 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gssize"><span class="type">gssize</span></a> n</code></em>);</pre>
10511058 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
10521059 <h3 class="title">Warning</h3>
10531060 <p><code class="literal">tp_base_client_add_account_features</code> is deprecated and should not be used in newly-written code. New code should use
10731080 <td>the features. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n]</span>
10741081 </td>
10751082 </tr>
1083 <tr>
1084 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
1085 <td>the number of features, or -1 if <em class="parameter"><code>features</code></em> is 0-terminated</td>
1086 </tr>
10761087 </tbody>
10771088 </table></div>
10781089 <p class="since">Since 0.11.14</p>
10821093 <a name="tp-base-client-add-account-features-varargs"></a><h3>tp_base_client_add_account_features_varargs ()</h3>
10831094 <pre class="programlisting"><span class="returnvalue">void</span> tp_base_client_add_account_features_varargs
10841095 (<em class="parameter"><code><a class="link" href="telepathy-glib-base-client.html#TpBaseClient"><span class="type">TpBaseClient</span></a> *self</code></em>,
1085 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> feature</code></em>);</pre>
1096 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> feature</code></em>,
1097 <em class="parameter"><code>...</code></em>);</pre>
10861098 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
10871099 <h3 class="title">Warning</h3>
10881100 <p><code class="literal">tp_base_client_add_account_features_varargs</code> is deprecated and should not be used in newly-written code. New code should use
11031115 <td><p><span class="term"><em class="parameter"><code>feature</code></em> :</span></p></td>
11041116 <td>the first feature</td>
11051117 </tr>
1118 <tr>
1119 <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
1120 <td>the second and subsequent features, if any, ending with 0</td>
1121 </tr>
11061122 </tbody>
11071123 </table></div>
11081124 <p class="since">Since 0.11.14</p>
11121128 <a name="tp-base-client-add-connection-features"></a><h3>tp_base_client_add_connection_features ()</h3>
11131129 <pre class="programlisting"><span class="returnvalue">void</span> tp_base_client_add_connection_features
11141130 (<em class="parameter"><code><a class="link" href="telepathy-glib-base-client.html#TpBaseClient"><span class="type">TpBaseClient</span></a> *self</code></em>,
1115 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> *features</code></em>);</pre>
1131 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> *features</code></em>,
1132 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gssize"><span class="type">gssize</span></a> n</code></em>);</pre>
11161133 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
11171134 <h3 class="title">Warning</h3>
11181135 <p><code class="literal">tp_base_client_add_connection_features</code> is deprecated and should not be used in newly-written code. New code should use
11371154 <td>the features. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n]</span>
11381155 </td>
11391156 </tr>
1157 <tr>
1158 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
1159 <td>the number of features, or -1 if <em class="parameter"><code>features</code></em> is 0-terminated</td>
1160 </tr>
11401161 </tbody>
11411162 </table></div>
11421163 <p class="since">Since 0.11.14</p>
11461167 <a name="tp-base-client-add-connection-features-varargs"></a><h3>tp_base_client_add_connection_features_varargs ()</h3>
11471168 <pre class="programlisting"><span class="returnvalue">void</span> tp_base_client_add_connection_features_varargs
11481169 (<em class="parameter"><code><a class="link" href="telepathy-glib-base-client.html#TpBaseClient"><span class="type">TpBaseClient</span></a> *self</code></em>,
1149 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> feature</code></em>);</pre>
1170 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> feature</code></em>,
1171 <em class="parameter"><code>...</code></em>);</pre>
11501172 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
11511173 <h3 class="title">Warning</h3>
11521174 <p><code class="literal">tp_base_client_add_connection_features_varargs</code> is deprecated and should not be used in newly-written code. New code should use
11671189 <td><p><span class="term"><em class="parameter"><code>feature</code></em> :</span></p></td>
11681190 <td>the first feature</td>
11691191 </tr>
1192 <tr>
1193 <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
1194 <td>the second and subsequent features, if any, ending with 0</td>
1195 </tr>
11701196 </tbody>
11711197 </table></div>
11721198 <p class="since">Since 0.11.14</p>
11751201 <div class="refsect2">
11761202 <a name="tp-base-client-add-channel-features"></a><h3>tp_base_client_add_channel_features ()</h3>
11771203 <pre class="programlisting"><span class="returnvalue">void</span> tp_base_client_add_channel_features (<em class="parameter"><code><a class="link" href="telepathy-glib-base-client.html#TpBaseClient"><span class="type">TpBaseClient</span></a> *self</code></em>,
1178 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> *features</code></em>);</pre>
1204 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> *features</code></em>,
1205 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gssize"><span class="type">gssize</span></a> n</code></em>);</pre>
11791206 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
11801207 <h3 class="title">Warning</h3>
11811208 <p><code class="literal">tp_base_client_add_channel_features</code> is deprecated and should not be used in newly-written code. New code should use
12001227 <td>the features. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n]</span>
12011228 </td>
12021229 </tr>
1230 <tr>
1231 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
1232 <td>the number of features, or -1 if <em class="parameter"><code>features</code></em> is 0-terminated</td>
1233 </tr>
12031234 </tbody>
12041235 </table></div>
12051236 <p class="since">Since 0.11.14</p>
12091240 <a name="tp-base-client-add-channel-features-varargs"></a><h3>tp_base_client_add_channel_features_varargs ()</h3>
12101241 <pre class="programlisting"><span class="returnvalue">void</span> tp_base_client_add_channel_features_varargs
12111242 (<em class="parameter"><code><a class="link" href="telepathy-glib-base-client.html#TpBaseClient"><span class="type">TpBaseClient</span></a> *self</code></em>,
1212 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> feature</code></em>);</pre>
1243 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> feature</code></em>,
1244 <em class="parameter"><code>...</code></em>);</pre>
12131245 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
12141246 <h3 class="title">Warning</h3>
12151247 <p><code class="literal">tp_base_client_add_channel_features_varargs</code> is deprecated and should not be used in newly-written code. New code should use
12291261 <tr>
12301262 <td><p><span class="term"><em class="parameter"><code>feature</code></em> :</span></p></td>
12311263 <td>the first feature</td>
1264 </tr>
1265 <tr>
1266 <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
1267 <td>the second and subsequent features, if any, ending with 0</td>
12321268 </tr>
12331269 </tbody>
12341270 </table></div>
21542190 </div>
21552191 <div class="footer">
21562192 <hr>
2157 Generated by GTK-Doc V1.17</div>
2193 Generated by GTK-Doc V1.17.1</div>
21582194 </body>
21592195 </html>
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="TpChannelManager.html" title="TpChannelManager">
99 <link rel="next" href="telepathy-glib-TpContactsMixin.html" title="TpContactsMixin">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
305305 (<em class="parameter"><code><a class="link" href="telepathy-glib-base-contact-list.html#TpBaseContactList"><span class="type">TpBaseContactList</span></a> *self</code></em>,
306306 <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *result</code></em>,
307307 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
308 <a class="link" href="telepathy-glib-enums.html#TpContactMetadataStorageType" title="enum TpContactMetadataStorageType"><span class="returnvalue">TpContactMetadataStorageType</span></a> <a class="link" href="telepathy-glib-base-contact-list.html#tp-base-contact-list-get-group-storage" title="tp_base_contact_list_get_group_storage ()">tp_base_contact_list_get_group_storage</a>
308 <a class="link" href="telepathy-glib-enums.html#TpContactMetadataStorageType" title="enum TpContactMetadataStorageType"><span class="returnvalue">TpContactMetadataStorageType</span></a> <a class="link" href="telepathy-glib-base-contact-list.html#tp-base-contact-list-get-group-storage" title="tp_base_contact_list_get_group_storage ()">tp_base_contact_list_get_group_storage</a>
309309 (<em class="parameter"><code><a class="link" href="telepathy-glib-base-contact-list.html#TpBaseContactList"><span class="type">TpBaseContactList</span></a> *self</code></em>);
310310
311311 #define <a class="link" href="telepathy-glib-base-contact-list.html#TP-TYPE-BLOCKABLE-CONTACT-LIST:CAPS" title="TP_TYPE_BLOCKABLE_CONTACT_LIST">TP_TYPE_BLOCKABLE_CONTACT_LIST</a>
404404 5
405405 6
406406 7</pre></td>
407 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-DEFINE-TYPE-WITH-CODE:CAPS">G_DEFINE_TYPE_WITH_CODE</a></span> <span class="gtkdoc opt">(</span>MyConnection<span class="gtkdoc opt">,</span> my_connection<span class="gtkdoc opt">,</span>
408 TP_TYPE_BASE_CONNECTION<span class="gtkdoc opt">,</span>
409 <span class="gtkdoc slc">// ...</span>
410 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span> <span class="gtkdoc opt">(</span>TP_TYPE_SVC_CONNECTION_INTERFACE_CONTACT_LIST<span class="gtkdoc opt">,</span>
411 tp_base_contact_list_mixin_list_iface_init<span class="gtkdoc opt">);</span>
412 <span class="gtkdoc slc">// ...</span>
413 <span class="gtkdoc opt">)</span></pre></td>
407 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-DEFINE-TYPE-WITH-CODE:CAPS">G_DEFINE_TYPE_WITH_CODE</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">MyConnection</span><span class="symbol">,</span><span class="normal"> my_connection</span><span class="symbol">,</span>
408 <span class="normal"> TP_TYPE_BASE_CONNECTION</span><span class="symbol">,</span>
409 <span class="normal"> </span><span class="comment">// ...</span>
410 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">TP_TYPE_SVC_CONNECTION_INTERFACE_CONTACT_LIST</span><span class="symbol">,</span>
411 <span class="normal"> <a href="telepathy-glib-base-contact-list.html#tp-base-contact-list-mixin-list-iface-init">tp_base_contact_list_mixin_list_iface_init</a></span><span class="symbol">);</span>
412 <span class="normal"> </span><span class="comment">// ...</span>
413 <span class="normal"> </span><span class="symbol">)</span></pre></td>
414414 </tr>
415415 </tbody>
416416 </table>
430430 3
431431 4
432432 5</pre></td>
433 <td class="listing_code"><pre class="programlisting"><span class="gtkdoc slc">// ...</span>
434 <span class="function"><a href="telepathy-glib-TpContactsMixin.html#tp-contacts-mixin-class-init">tp_contacts_mixin_class_init</a></span> <span class="gtkdoc opt">(</span>object_class<span class="gtkdoc opt">,</span>
435 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#G-STRUCT-OFFSET:CAPS">G_STRUCT_OFFSET</a></span> <span class="gtkdoc opt">(</span>MyConnectionClass<span class="gtkdoc opt">,</span> contacts_mixin<span class="gtkdoc opt">));</span>
436 <span class="function"><a href="telepathy-glib-base-contact-list.html#tp-base-contact-list-mixin-class-init">tp_base_contact_list_mixin_class_init</a></span> <span class="gtkdoc opt">(</span>base_connection_class<span class="gtkdoc opt">);</span>
437 <span class="gtkdoc slc">// ...</span></pre></td>
433 <td class="listing_code"><pre class="programlisting"><span class="comment">// ...</span>
434 <span class="function"><a href="telepathy-glib-TpContactsMixin.html#tp-contacts-mixin-class-init">tp_contacts_mixin_class_init</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">object_class</span><span class="symbol">,</span>
435 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#G-STRUCT-OFFSET:CAPS">G_STRUCT_OFFSET</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">MyConnectionClass</span><span class="symbol">,</span><span class="normal"> contacts_mixin</span><span class="symbol">));</span>
436 <span class="function"><a href="telepathy-glib-base-contact-list.html#tp-base-contact-list-mixin-class-init">tp_base_contact_list_mixin_class_init</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">base_connection_class</span><span class="symbol">);</span>
437 <span class="comment">// ...</span></pre></td>
438438 </tr>
439439 </tbody>
440440 </table>
36673667 <hr>
36683668 <div class="refsect2">
36693669 <a name="tp-base-contact-list-get-group-storage"></a><h3>tp_base_contact_list_get_group_storage ()</h3>
3670 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpContactMetadataStorageType" title="enum TpContactMetadataStorageType"><span class="returnvalue">TpContactMetadataStorageType</span></a> tp_base_contact_list_get_group_storage
3670 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpContactMetadataStorageType" title="enum TpContactMetadataStorageType"><span class="returnvalue">TpContactMetadataStorageType</span></a> tp_base_contact_list_get_group_storage
36713671 (<em class="parameter"><code><a class="link" href="telepathy-glib-base-contact-list.html#TpBaseContactList"><span class="type">TpBaseContactList</span></a> *self</code></em>);</pre>
36723672 <p>
36733673 Return the extent to which user-defined groups can be set in this protocol.
42704270 </div>
42714271 <div class="footer">
42724272 <hr>
4273 Generated by GTK-Doc V1.17</div>
4273 Generated by GTK-Doc V1.17.1</div>
42744274 </body>
42754275 </html>
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="TpCMMessage.html" title="TpCMMessage">
99 <link rel="next" href="telepathy-glib-simple-password-manager.html" title="TpSimplePasswordManager">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
239239 </div>
240240 <div class="footer">
241241 <hr>
242 Generated by GTK-Doc V1.17</div>
242 Generated by GTK-Doc V1.17.1</div>
243243 </body>
244244 </html>
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="TpBaseConnectionManager.html" title="TpBaseConnectionManager">
99 <link rel="next" href="TpBaseConnection.html" title="TpBaseConnection">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
762762 </div>
763763 <div class="footer">
764764 <hr>
765 Generated by GTK-Doc V1.17</div>
765 Generated by GTK-Doc V1.17.1</div>
766766 </body>
767767 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-client-channel-factory.html" title="TpClientChannelFactoryInterface">
99 <link rel="next" href="telepathy-glib-automatic-proxy-factory.html" title="TpAutomaticProxyFactory">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
4545
4646 <a class="link" href="telepathy-glib-basic-proxy-factory.html#TpBasicProxyFactory-struct" title="TpBasicProxyFactory">TpBasicProxyFactory</a>;
4747 struct <a class="link" href="telepathy-glib-basic-proxy-factory.html#TpBasicProxyFactoryClass" title="struct TpBasicProxyFactoryClass">TpBasicProxyFactoryClass</a>;
48 <a class="link" href="telepathy-glib-basic-proxy-factory.html#TpBasicProxyFactory"><span class="returnvalue">TpBasicProxyFactory</span></a> * <a class="link" href="telepathy-glib-basic-proxy-factory.html#tp-basic-proxy-factory-new" title="tp_basic_proxy_factory_new ()">tp_basic_proxy_factory_new</a> ();
49 <a class="link" href="telepathy-glib-basic-proxy-factory.html#TpBasicProxyFactory"><span class="returnvalue">TpBasicProxyFactory</span></a> * <a class="link" href="telepathy-glib-basic-proxy-factory.html#tp-basic-proxy-factory-dup" title="tp_basic_proxy_factory_dup ()">tp_basic_proxy_factory_dup</a> ();
48 <a class="link" href="telepathy-glib-basic-proxy-factory.html#TpBasicProxyFactory"><span class="returnvalue">TpBasicProxyFactory</span></a> * <a class="link" href="telepathy-glib-basic-proxy-factory.html#tp-basic-proxy-factory-new" title="tp_basic_proxy_factory_new ()">tp_basic_proxy_factory_new</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
49 <a class="link" href="telepathy-glib-basic-proxy-factory.html#TpBasicProxyFactory"><span class="returnvalue">TpBasicProxyFactory</span></a> * <a class="link" href="telepathy-glib-basic-proxy-factory.html#tp-basic-proxy-factory-dup" title="tp_basic_proxy_factory_dup ()">tp_basic_proxy_factory_dup</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
5050 </pre>
5151 </div>
5252 <div class="refsect1">
106106 <hr>
107107 <div class="refsect2">
108108 <a name="tp-basic-proxy-factory-new"></a><h3>tp_basic_proxy_factory_new ()</h3>
109 <pre class="programlisting"><a class="link" href="telepathy-glib-basic-proxy-factory.html#TpBasicProxyFactory"><span class="returnvalue">TpBasicProxyFactory</span></a> * tp_basic_proxy_factory_new ();</pre>
109 <pre class="programlisting"><a class="link" href="telepathy-glib-basic-proxy-factory.html#TpBasicProxyFactory"><span class="returnvalue">TpBasicProxyFactory</span></a> * tp_basic_proxy_factory_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
110110 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
111111 <h3 class="title">Warning</h3>
112112 <p><code class="literal">tp_basic_proxy_factory_new</code> is deprecated and should not be used in newly-written code. New code should use <a class="link" href="telepathy-glib-simple-client-factory.html#TpSimpleClientFactory"><span class="type">TpSimpleClientFactory</span></a> instead</p>
127127 <hr>
128128 <div class="refsect2">
129129 <a name="tp-basic-proxy-factory-dup"></a><h3>tp_basic_proxy_factory_dup ()</h3>
130 <pre class="programlisting"><a class="link" href="telepathy-glib-basic-proxy-factory.html#TpBasicProxyFactory"><span class="returnvalue">TpBasicProxyFactory</span></a> * tp_basic_proxy_factory_dup ();</pre>
130 <pre class="programlisting"><a class="link" href="telepathy-glib-basic-proxy-factory.html#TpBasicProxyFactory"><span class="returnvalue">TpBasicProxyFactory</span></a> * tp_basic_proxy_factory_dup (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
131131 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
132132 <h3 class="title">Warning</h3>
133133 <p><code class="literal">tp_basic_proxy_factory_dup</code> is deprecated and should not be used in newly-written code. New code should use <a class="link" href="telepathy-glib-simple-client-factory.html#TpSimpleClientFactory"><span class="type">TpSimpleClientFactory</span></a> instead</p>
155155 </div>
156156 <div class="footer">
157157 <hr>
158 Generated by GTK-Doc V1.17</div>
158 Generated by GTK-Doc V1.17.1</div>
159159 </body>
160160 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-contact.html" title="TpContact">
99 <link rel="next" href="telepathy-glib-connection-aliasing.html" title="Connection Aliasing interface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
378378 15
379379 16
380380 17</pre></td>
381 <td class="listing_code"><pre class="programlisting">GHashTable <span class="gtkdoc opt">*</span>request<span class="gtkdoc opt">;</span>
382 TpAccountChannelRequest <span class="gtkdoc opt">*</span>req<span class="gtkdoc opt">;</span>
383
384 request <span class="gtkdoc opt">=</span> <span class="function"><a href="telepathy-glib-asv.html#tp-asv-new">tp_asv_new</a></span> <span class="gtkdoc opt">(</span>
385 TP_PROP_CHANNEL_CHANNEL_TYPE<span class="gtkdoc opt">,</span> G_TYPE_STRING<span class="gtkdoc opt">,</span>
386 TP_IFACE_CHANNEL_TYPE_ROOM_LIST<span class="gtkdoc opt">,</span>
387 TP_PROP_CHANNEL_TARGET_HANDLE_TYPE<span class="gtkdoc opt">,</span> G_TYPE_UINT<span class="gtkdoc opt">,</span> TP_HANDLE_TYPE_NONE<span class="gtkdoc opt">,</span>
388 NULL<span class="gtkdoc opt">);</span>
389
390 req <span class="gtkdoc opt">=</span> <span class="function"><a href="telepathy-glib-account-channel-request.html#tp-account-channel-request-new">tp_account_channel_request_new</a></span> <span class="gtkdoc opt">(</span>account<span class="gtkdoc opt">,</span> request<span class="gtkdoc opt">,</span>
391 TP_USER_ACTION_TIME_CURRENT_TIME<span class="gtkdoc opt">);</span>
392
393 <span class="function"><a href="telepathy-glib-account-channel-request.html#tp-account-channel-request-create-and-handle-channel-async">tp_account_channel_request_create_and_handle_channel_async</a></span> <span class="gtkdoc opt">(</span>req<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span>
394 create_channel_cb<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
395
396 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span> <span class="gtkdoc opt">(</span>req<span class="gtkdoc opt">);</span>
397 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#g-hash-table-unref">g_hash_table_unref</a></span> <span class="gtkdoc opt">(</span>request<span class="gtkdoc opt">);</span></pre></td>
381 <td class="listing_code"><pre class="programlisting"><span class="usertype">GHashTable</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">request</span><span class="symbol">;</span>
382 <span class="usertype">TpAccountChannelRequest</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">req</span><span class="symbol">;</span>
383
384 <span class="normal">request </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-asv.html#tp-asv-new">tp_asv_new</a></span><span class="normal"> </span><span class="symbol">(</span>
385 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-CHANNEL-TYPE:CAPS">TP_PROP_CHANNEL_CHANNEL_TYPE</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-STRING:CAPS">G_TYPE_STRING</a></span><span class="symbol">,</span>
386 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-ROOM-LIST:CAPS">TP_IFACE_CHANNEL_TYPE_ROOM_LIST</a></span><span class="symbol">,</span>
387 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TARGET-HANDLE-TYPE:CAPS">TP_PROP_CHANNEL_TARGET_HANDLE_TYPE</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS">G_TYPE_UINT</a></span><span class="symbol">,</span><span class="normal"> <a href="telepathy-glib-enums.html#TP-HANDLE-TYPE-NONE:CAPS">TP_HANDLE_TYPE_NONE</a></span><span class="symbol">,</span>
388 <span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
389
390 <span class="normal">req </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-account-channel-request.html#tp-account-channel-request-new">tp_account_channel_request_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">account</span><span class="symbol">,</span><span class="normal"> request</span><span class="symbol">,</span>
391 <span class="normal"> <a href="telepathy-glib-defs.html#TP-USER-ACTION-TIME-CURRENT-TIME:CAPS">TP_USER_ACTION_TIME_CURRENT_TIME</a></span><span class="symbol">);</span>
392
393 <span class="function"><a href="telepathy-glib-account-channel-request.html#tp-account-channel-request-create-and-handle-channel-async">tp_account_channel_request_create_and_handle_channel_async</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">req</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span>
394 <span class="normal"> create_channel_cb</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
395
396 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">req</span><span class="symbol">);</span>
397 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#g-hash-table-unref">g_hash_table_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">request</span><span class="symbol">);</span></pre></td>
398398 </tr>
399399 </tbody>
400400 </table>
418418 6
419419 7
420420 8</pre></td>
421 <td class="listing_code"><pre class="programlisting"><span class="gtkdoc opt">/</span>\<span class="gtkdoc opt">*</span> Same code as above but with request defined <span class="keyword">using</span><span class="gtkdoc opt">: *</span>\<span class="gtkdoc opt">/</span>
422 request <span class="gtkdoc opt">=</span> <span class="function"><a href="telepathy-glib-asv.html#tp-asv-new">tp_asv_new</a></span> <span class="gtkdoc opt">(</span>
423 TP_PROP_CHANNEL_CHANNEL_TYPE<span class="gtkdoc opt">,</span> G_TYPE_STRING<span class="gtkdoc opt">,</span>
424 TP_IFACE_CHANNEL_TYPE_ROOM_LIST<span class="gtkdoc opt">,</span>
425 TP_PROP_CHANNEL_TARGET_HANDLE_TYPE<span class="gtkdoc opt">,</span> G_TYPE_UINT<span class="gtkdoc opt">,</span> TP_HANDLE_TYPE_NONE<span class="gtkdoc opt">,</span>
426 TP_PROP_CHANNEL_TYPE_ROOM_LIST_SERVER<span class="gtkdoc opt">,</span> G_TYPE_STRING<span class="gtkdoc opt">,</span>
427 <span class="string">&quot;characters.shakespeare.lit&quot;</span><span class="gtkdoc opt">,</span>
428 NULL<span class="gtkdoc opt">);</span></pre></td>
421 <td class="listing_code"><pre class="programlisting"><span class="symbol">/\*</span><span class="normal"> Same code as above but with request </span><span class="usertype">defined</span><span class="normal"> using</span><span class="symbol">:</span><span class="normal"> </span><span class="symbol">*\/</span>
422 <span class="normal">request </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-asv.html#tp-asv-new">tp_asv_new</a></span><span class="normal"> </span><span class="symbol">(</span>
423 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-CHANNEL-TYPE:CAPS">TP_PROP_CHANNEL_CHANNEL_TYPE</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-STRING:CAPS">G_TYPE_STRING</a></span><span class="symbol">,</span>
424 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-ROOM-LIST:CAPS">TP_IFACE_CHANNEL_TYPE_ROOM_LIST</a></span><span class="symbol">,</span>
425 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TARGET-HANDLE-TYPE:CAPS">TP_PROP_CHANNEL_TARGET_HANDLE_TYPE</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS">G_TYPE_UINT</a></span><span class="symbol">,</span><span class="normal"> <a href="telepathy-glib-enums.html#TP-HANDLE-TYPE-NONE:CAPS">TP_HANDLE_TYPE_NONE</a></span><span class="symbol">,</span>
426 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-ROOM-LIST-SERVER:CAPS">TP_PROP_CHANNEL_TYPE_ROOM_LIST_SERVER</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-STRING:CAPS">G_TYPE_STRING</a></span><span class="symbol">,</span>
427 <span class="normal"> </span><span class="string">"characters.shakespeare.lit"</span><span class="symbol">,</span>
428 <span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span></pre></td>
429429 </tr>
430430 </tbody>
431431 </table>
495495 </div>
496496 <div class="footer">
497497 <hr>
498 Generated by GTK-Doc V1.17</div>
498 Generated by GTK-Doc V1.17.1</div>
499499 </body>
500500 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-channel-contactsearch.html" title="Contact Search channels">
99 <link rel="next" href="telepathy-glib-cli-anonymity.html" title="Connection and Channel Anonymity interfaces">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
788788 </div>
789789 <div class="footer">
790790 <hr>
791 Generated by GTK-Doc V1.17</div>
791 Generated by GTK-Doc V1.17.1</div>
792792 </body>
793793 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-channel-roomlist.html" title="Room List channels">
99 <link rel="next" href="telepathy-glib-channel-auth.html" title="Channel Authentication interfaces">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
814814 </div>
815815 <div class="footer">
816816 <hr>
817 Generated by GTK-Doc V1.17</div>
817 Generated by GTK-Doc V1.17.1</div>
818818 </body>
819819 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-channel-dispatcher.html" title="TpChannelDispatcher">
99 <link rel="next" href="telepathy-glib-channel-request.html" title="TpChannelRequest">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
883883 Specifically, this implies that:
884884 </p>
885885 <p>
886 - <a class="link" href="telepathy-glib-channel-dispatch-operation.html#TpChannelDispatchOperation--connection" title='The "connection" property'><span class="type">"connection"</span></a> is set (but
887 TP_CONNECTION_FEATURE_CORE is not necessarily prepared)
888 - <a class="link" href="telepathy-glib-channel-dispatch-operation.html#TpChannelDispatchOperation--account" title='The "account" property'><span class="type">"account"</span></a> is set (but
889 TP_ACCOUNT_FEATURE_CORE is not necessarily prepared)
890 - <a class="link" href="telepathy-glib-channel-dispatch-operation.html#TpChannelDispatchOperation--channels" title='The "channels" property'><span class="type">"channels"</span></a> is set (but
891 TP_CHANNEL_FEATURE_CORE is not necessarily prepared)
892 - <a class="link" href="telepathy-glib-channel-dispatch-operation.html#TpChannelDispatchOperation--possible-handlers" title='The "possible-handlers" property'><span class="type">"possible-handlers"</span></a> is set
893 - any extra interfaces will have been set up in TpProxy (i.e.
886 </p>
887 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
888 <li class="listitem"><p><a class="link" href="telepathy-glib-channel-dispatch-operation.html#TpChannelDispatchOperation--connection" title='The "connection" property'><span class="type">"connection"</span></a> is set (but
889 TP_CONNECTION_FEATURE_CORE is not necessarily prepared)</p></li>
890 <li class="listitem"><p><a class="link" href="telepathy-glib-channel-dispatch-operation.html#TpChannelDispatchOperation--account" title='The "account" property'><span class="type">"account"</span></a> is set (but
891 TP_ACCOUNT_FEATURE_CORE is not necessarily prepared)</p></li>
892 <li class="listitem"><p><a class="link" href="telepathy-glib-channel-dispatch-operation.html#TpChannelDispatchOperation--channels" title='The "channels" property'><span class="type">"channels"</span></a> is set (but
893 TP_CHANNEL_FEATURE_CORE is not necessarily prepared)</p></li>
894 <li class="listitem"><p><a class="link" href="telepathy-glib-channel-dispatch-operation.html#TpChannelDispatchOperation--possible-handlers" title='The "possible-handlers" property'><span class="type">"possible-handlers"</span></a> is set</p></li>
895 <li class="listitem"><p>any extra interfaces will have been set up in TpProxy (i.e.
894896 <a class="link" href="telepathy-glib-proxy.html#TpProxy--interfaces" title='The "interfaces" property'><span class="type">"interfaces"</span></a> contains at least all extra ChannelDispatchOperation
895 interfaces)
897 interfaces)</p></li>
898 </ul></div>
899 <p>
896900 </p>
897901 <p>
898902 One can ask for a feature to be prepared using the
18131817 </div>
18141818 <div class="footer">
18151819 <hr>
1816 Generated by GTK-Doc V1.17</div>
1820 Generated by GTK-Doc V1.17.1</div>
18171821 </body>
18181822 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-account.html" title="TpAccount">
99 <link rel="next" href="telepathy-glib-channel-dispatch-operation.html" title="TpChannelDispatchOperation">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
12161216 </div>
12171217 <div class="footer">
12181218 <hr>
1219 Generated by GTK-Doc V1.17</div>
1219 Generated by GTK-Doc V1.17.1</div>
12201220 </body>
12211221 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-channel-media.html" title="Media channels">
99 <link rel="next" href="telepathy-glib-channel-tubes.html" title="Tubes channels">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
939939 </div>
940940 <div class="footer">
941941 <hr>
942 Generated by GTK-Doc V1.17</div>
942 Generated by GTK-Doc V1.17.1</div>
943943 </body>
944944 </html>
66 <link rel="home" href="index.html" title="telepathy-glib API Reference Manual">
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-channel.html" title="TpChannel">
9 <link rel="next" href="telepathy-glib-channel-text.html" title="Text channels">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
9 <link rel="next" href="telepathy-glib-channel-room.html" title="Room-related interfaces on Channels">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
1717 <td><a accesskey="u" href="ch-client.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
1818 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
1919 <th width="100%" align="center">telepathy-glib API Reference Manual</th>
20 <td><a accesskey="n" href="telepathy-glib-channel-text.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
20 <td><a accesskey="n" href="telepathy-glib-channel-room.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
2121 </tr>
2222 <tr><td colspan="5" class="shortcuts">
2323 <a href="#telepathy-glib-channel-group.synopsis" class="shortcut">Top</a>
334334 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_Self_Handle</code></em>,
335335 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
336336 <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *weak_object</code></em>);
337 <a class="link" href="telepathy-glib-proxy.html#TpProxySignalConnection" title="TpProxySignalConnection"><span class="returnvalue">TpProxySignalConnection</span></a> * <a class="link" href="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-connect-to-handle-owners-changed-detailed" title="tp_cli_channel_interface_group_connect_to_handle_owners_changed_detailed ()">tp_cli_channel_interface_group_connect_to_handle_owners_changed_detailed</a>
338 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *proxy</code></em>,
339 <em class="parameter"><code><a class="link" href="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-signal-callback-handle-owners-changed-detailed" title="tp_cli_channel_interface_group_signal_callback_handle_owners_changed_detailed ()"><span class="type">tp_cli_channel_interface_group_signal_callback_handle_owners_changed_detailed</span></a> callback</code></em>,
340 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
341 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>,
342 <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *weak_object</code></em>,
343 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
344 <a class="link" href="telepathy-glib-proxy.html#TpProxySignalConnection" title="TpProxySignalConnection"><span class="returnvalue">TpProxySignalConnection</span></a> * <a class="link" href="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-connect-to-self-contact-changed" title="tp_cli_channel_interface_group_connect_to_self_contact_changed ()">tp_cli_channel_interface_group_connect_to_self_contact_changed</a>
345 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *proxy</code></em>,
346 <em class="parameter"><code><a class="link" href="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-signal-callback-self-contact-changed" title="tp_cli_channel_interface_group_signal_callback_self_contact_changed ()"><span class="type">tp_cli_channel_interface_group_signal_callback_self_contact_changed</span></a> callback</code></em>,
347 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
348 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>,
349 <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *weak_object</code></em>,
350 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
351 <span class="returnvalue">void</span> (<a class="link" href="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-signal-callback-handle-owners-changed-detailed" title="tp_cli_channel_interface_group_signal_callback_handle_owners_changed_detailed ()">*tp_cli_channel_interface_group_signal_callback_handle_owners_changed_detailed</a>)
352 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *proxy</code></em>,
353 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *arg_Added</code></em>,
354 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *arg_Removed</code></em>,
355 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *arg_Identifiers</code></em>,
356 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
357 <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *weak_object</code></em>);
358 <span class="returnvalue">void</span> (<a class="link" href="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-signal-callback-self-contact-changed" title="tp_cli_channel_interface_group_signal_callback_self_contact_changed ()">*tp_cli_channel_interface_group_signal_callback_self_contact_changed</a>)
359 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *proxy</code></em>,
360 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_Self_Handle</code></em>,
361 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg_Self_ID</code></em>,
362 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
363 <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *weak_object</code></em>);
364 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-channel-group.html#tp-svc-channel-interface-group-emit-handle-owners-changed-detailed" title="tp_svc_channel_interface_group_emit_handle_owners_changed_detailed ()">tp_svc_channel_interface_group_emit_handle_owners_changed_detailed</a>
365 (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>,
366 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *arg_Added</code></em>,
367 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *arg_Removed</code></em>,
368 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *arg_Identifiers</code></em>);
369 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-channel-group.html#tp-svc-channel-interface-group-emit-self-contact-changed" title="tp_svc_channel_interface_group_emit_self_contact_changed ()">tp_svc_channel_interface_group_emit_self_contact_changed</a>
370 (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>,
371 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_Self_Handle</code></em>,
372 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg_Self_ID</code></em>);
337373
338374 <a class="link" href="telepathy-glib-proxy.html#TpProxySignalConnection" title="TpProxySignalConnection"><span class="returnvalue">TpProxySignalConnection</span></a> * <a class="link" href="telepathy-glib-channel-group.html#tp-cli-channel-interface-conference-connect-to-channel-merged" title="tp_cli_channel_interface_conference_connect_to_channel_merged ()">tp_cli_channel_interface_conference_connect_to_channel_merged</a>
339375 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *proxy</code></em>,
28842920 </div>
28852921 <hr>
28862922 <div class="refsect2">
2887 <a name="tp-cli-channel-interface-conference-connect-to-channel-merged"></a><h3>tp_cli_channel_interface_conference_connect_to_channel_merged ()</h3>
2888 <pre class="programlisting"><a class="link" href="telepathy-glib-proxy.html#TpProxySignalConnection" title="TpProxySignalConnection"><span class="returnvalue">TpProxySignalConnection</span></a> * tp_cli_channel_interface_conference_connect_to_channel_merged
2889 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *proxy</code></em>,
2890 <em class="parameter"><code><a class="link" href="telepathy-glib-channel-group.html#tp-cli-channel-interface-conference-signal-callback-channel-merged" title="tp_cli_channel_interface_conference_signal_callback_channel_merged ()"><span class="type">tp_cli_channel_interface_conference_signal_callback_channel_merged</span></a> callback</code></em>,
2923 <a name="tp-cli-channel-interface-group-connect-to-handle-owners-changed-detailed"></a><h3>tp_cli_channel_interface_group_connect_to_handle_owners_changed_detailed ()</h3>
2924 <pre class="programlisting"><a class="link" href="telepathy-glib-proxy.html#TpProxySignalConnection" title="TpProxySignalConnection"><span class="returnvalue">TpProxySignalConnection</span></a> * tp_cli_channel_interface_group_connect_to_handle_owners_changed_detailed
2925 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *proxy</code></em>,
2926 <em class="parameter"><code><a class="link" href="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-signal-callback-handle-owners-changed-detailed" title="tp_cli_channel_interface_group_signal_callback_handle_owners_changed_detailed ()"><span class="type">tp_cli_channel_interface_group_signal_callback_handle_owners_changed_detailed</span></a> callback</code></em>,
28912927 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
28922928 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>,
28932929 <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *weak_object</code></em>,
28942930 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
28952931 <p>
2896 Connect a handler to the signal ChannelMerged.
2897 </p>
2898 <p>
2899 &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;Emitted when a new channel is added to the value of &lt;tp:member-ref&gt;Channels&lt;/tp:member-ref&gt;.&lt;/p&gt;
2932 Connect a handler to the signal HandleOwnersChangedDetailed.
2933 </p>
2934 <p>
2935 &lt;p&gt;Emitted whenever the &lt;tp:member-ref&gt;HandleOwners&lt;/tp:member-ref&gt; property changes.&lt;/p&gt; &lt;p&gt;Clients can assume this signal is emitted by the Connection Manager if the &lt;tp:member-ref&gt;MemberIdentifiers&lt;/tp:member-ref&gt; property exists &lt;/p&gt;
29002936 </p>
29012937 <div class="variablelist"><table border="0">
29022938 <col align="left" valign="top">
29442980 </div>
29452981 <hr>
29462982 <div class="refsect2">
2947 <a name="tp-cli-channel-interface-conference-connect-to-channel-removed"></a><h3>tp_cli_channel_interface_conference_connect_to_channel_removed ()</h3>
2948 <pre class="programlisting"><a class="link" href="telepathy-glib-proxy.html#TpProxySignalConnection" title="TpProxySignalConnection"><span class="returnvalue">TpProxySignalConnection</span></a> * tp_cli_channel_interface_conference_connect_to_channel_removed
2949 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *proxy</code></em>,
2950 <em class="parameter"><code><a class="link" href="telepathy-glib-channel-group.html#tp-cli-channel-interface-conference-signal-callback-channel-removed" title="tp_cli_channel_interface_conference_signal_callback_channel_removed ()"><span class="type">tp_cli_channel_interface_conference_signal_callback_channel_removed</span></a> callback</code></em>,
2983 <a name="tp-cli-channel-interface-group-connect-to-self-contact-changed"></a><h3>tp_cli_channel_interface_group_connect_to_self_contact_changed ()</h3>
2984 <pre class="programlisting"><a class="link" href="telepathy-glib-proxy.html#TpProxySignalConnection" title="TpProxySignalConnection"><span class="returnvalue">TpProxySignalConnection</span></a> * tp_cli_channel_interface_group_connect_to_self_contact_changed
2985 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *proxy</code></em>,
2986 <em class="parameter"><code><a class="link" href="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-signal-callback-self-contact-changed" title="tp_cli_channel_interface_group_signal_callback_self_contact_changed ()"><span class="type">tp_cli_channel_interface_group_signal_callback_self_contact_changed</span></a> callback</code></em>,
29512987 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
29522988 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>,
29532989 <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *weak_object</code></em>,
29542990 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
29552991 <p>
2956 Connect a handler to the signal ChannelRemoved.
2957 </p>
2958 <p>
2959 &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;Emitted when a channel is removed from the value of &lt;tp:member-ref&gt;Channels&lt;/tp:member-ref&gt;, either because it closed or because it was split using the &lt;tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Interface"&gt;Splittable.DRAFT.Split&lt;/tp:dbus-ref&gt; method.&lt;/p&gt; &lt;p&gt;If a channel is removed because it was closed, &lt;tp:dbus-ref namespace="ofdT.Channel"&gt;Closed&lt;/tp:dbus-ref&gt; should be emitted before this signal.&lt;/p&gt;
2992 Connect a handler to the signal SelfContactChanged.
2993 </p>
2994 <p>
2995 &lt;p&gt;Emitted whenever the &lt;tp:member-ref&gt;SelfHandle&lt;/tp:member-ref&gt; property changes.&lt;/p&gt; &lt;p&gt;Clients can assume this signal is emitted by the Connection Manager if the &lt;tp:member-ref&gt;MemberIdentifiers&lt;/tp:member-ref&gt; property exists. &lt;/p&gt;
29602996 </p>
29612997 <div class="variablelist"><table border="0">
29622998 <col align="left" valign="top">
30043040 </div>
30053041 <hr>
30063042 <div class="refsect2">
3043 <a name="tp-cli-channel-interface-group-signal-callback-handle-owners-changed-detailed"></a><h3>tp_cli_channel_interface_group_signal_callback_handle_owners_changed_detailed ()</h3>
3044 <pre class="programlisting"><span class="returnvalue">void</span> (*tp_cli_channel_interface_group_signal_callback_handle_owners_changed_detailed)
3045 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *proxy</code></em>,
3046 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *arg_Added</code></em>,
3047 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *arg_Removed</code></em>,
3048 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *arg_Identifiers</code></em>,
3049 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
3050 <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *weak_object</code></em>);</pre>
3051 <p>
3052 Represents the signature of a callback for the signal HandleOwnersChangedDetailed.
3053 </p>
3054 <div class="variablelist"><table border="0">
3055 <col align="left" valign="top">
3056 <tbody>
3057 <tr>
3058 <td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
3059 <td>The proxy on which <a class="link" href="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-connect-to-handle-owners-changed-detailed" title="tp_cli_channel_interface_group_connect_to_handle_owners_changed_detailed ()"><code class="function">tp_cli_channel_interface_group_connect_to_handle_owners_changed_detailed()</code></a>
3060 was called</td>
3061 </tr>
3062 <tr>
3063 <td><p><span class="term"><em class="parameter"><code>arg_Added</code></em> :</span></p></td>
3064 <td>A map from channel-specific handles to their owners, in which the keys include all the handles that were added to the keys of the HandleOwners property, and all the handles in that property whose owner has changed</td>
3065 </tr>
3066 <tr>
3067 <td><p><span class="term"><em class="parameter"><code>arg_Removed</code></em> :</span></p></td>
3068 <td>The channel-specific handles that were removed from the keys of the HandleOwners property, as a result of the contact leaving this group in a previous &lt;tp:member-ref&gt;MembersChanged&lt;/tp:member-ref&gt; signal</td>
3069 </tr>
3070 <tr>
3071 <td><p><span class="term"><em class="parameter"><code>arg_Identifiers</code></em> :</span></p></td>
3072 <td>The string identifiers for handles mentioned in this signal, to give clients the minimal information necessary to create contacts without waiting for round-trips. Connection managers MUST include at least the identifiers for all handles in the Added map, and MAY include those from Removed array.</td>
3073 </tr>
3074 <tr>
3075 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
3076 <td>User-supplied data</td>
3077 </tr>
3078 <tr>
3079 <td><p><span class="term"><em class="parameter"><code>weak_object</code></em> :</span></p></td>
3080 <td>User-supplied weakly referenced object</td>
3081 </tr>
3082 </tbody>
3083 </table></div>
3084 </div>
3085 <hr>
3086 <div class="refsect2">
3087 <a name="tp-cli-channel-interface-group-signal-callback-self-contact-changed"></a><h3>tp_cli_channel_interface_group_signal_callback_self_contact_changed ()</h3>
3088 <pre class="programlisting"><span class="returnvalue">void</span> (*tp_cli_channel_interface_group_signal_callback_self_contact_changed)
3089 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *proxy</code></em>,
3090 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_Self_Handle</code></em>,
3091 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg_Self_ID</code></em>,
3092 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
3093 <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *weak_object</code></em>);</pre>
3094 <p>
3095 Represents the signature of a callback for the signal SelfContactChanged.
3096 </p>
3097 <div class="variablelist"><table border="0">
3098 <col align="left" valign="top">
3099 <tbody>
3100 <tr>
3101 <td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
3102 <td>The proxy on which <a class="link" href="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-connect-to-self-contact-changed" title="tp_cli_channel_interface_group_connect_to_self_contact_changed ()"><code class="function">tp_cli_channel_interface_group_connect_to_self_contact_changed()</code></a>
3103 was called</td>
3104 </tr>
3105 <tr>
3106 <td><p><span class="term"><em class="parameter"><code>arg_Self_Handle</code></em> :</span></p></td>
3107 <td>The new value of the SelfHandle property. (<span class="type">TpContactHandle</span>)</td>
3108 </tr>
3109 <tr>
3110 <td><p><span class="term"><em class="parameter"><code>arg_Self_ID</code></em> :</span></p></td>
3111 <td>The new value of the SelfHandle property's identifier.</td>
3112 </tr>
3113 <tr>
3114 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
3115 <td>User-supplied data</td>
3116 </tr>
3117 <tr>
3118 <td><p><span class="term"><em class="parameter"><code>weak_object</code></em> :</span></p></td>
3119 <td>User-supplied weakly referenced object</td>
3120 </tr>
3121 </tbody>
3122 </table></div>
3123 </div>
3124 <hr>
3125 <div class="refsect2">
3126 <a name="tp-svc-channel-interface-group-emit-handle-owners-changed-detailed"></a><h3>tp_svc_channel_interface_group_emit_handle_owners_changed_detailed ()</h3>
3127 <pre class="programlisting"><span class="returnvalue">void</span> tp_svc_channel_interface_group_emit_handle_owners_changed_detailed
3128 (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>,
3129 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *arg_Added</code></em>,
3130 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> *arg_Removed</code></em>,
3131 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *arg_Identifiers</code></em>);</pre>
3132 <p>
3133 Type-safe wrapper around g_signal_emit to emit the
3134 HandleOwnersChangedDetailed signal on interface org.freedesktop.Telepathy.Channel.Interface.Group.
3135 </p>
3136 <div class="variablelist"><table border="0">
3137 <col align="left" valign="top">
3138 <tbody>
3139 <tr>
3140 <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td>
3141 <td>The object implementing this interface</td>
3142 </tr>
3143 <tr>
3144 <td><p><span class="term"><em class="parameter"><code>arg_Added</code></em> :</span></p></td>
3145 <td>GHashTable * (FIXME, generate documentation)</td>
3146 </tr>
3147 <tr>
3148 <td><p><span class="term"><em class="parameter"><code>arg_Removed</code></em> :</span></p></td>
3149 <td>const GArray * (FIXME, generate documentation)</td>
3150 </tr>
3151 <tr>
3152 <td><p><span class="term"><em class="parameter"><code>arg_Identifiers</code></em> :</span></p></td>
3153 <td>GHashTable * (FIXME, generate documentation)</td>
3154 </tr>
3155 </tbody>
3156 </table></div>
3157 </div>
3158 <hr>
3159 <div class="refsect2">
3160 <a name="tp-svc-channel-interface-group-emit-self-contact-changed"></a><h3>tp_svc_channel_interface_group_emit_self_contact_changed ()</h3>
3161 <pre class="programlisting"><span class="returnvalue">void</span> tp_svc_channel_interface_group_emit_self_contact_changed
3162 (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance</code></em>,
3163 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_Self_Handle</code></em>,
3164 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg_Self_ID</code></em>);</pre>
3165 <p>
3166 Type-safe wrapper around g_signal_emit to emit the
3167 SelfContactChanged signal on interface org.freedesktop.Telepathy.Channel.Interface.Group.
3168 </p>
3169 <div class="variablelist"><table border="0">
3170 <col align="left" valign="top">
3171 <tbody>
3172 <tr>
3173 <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td>
3174 <td>The object implementing this interface</td>
3175 </tr>
3176 <tr>
3177 <td><p><span class="term"><em class="parameter"><code>arg_Self_Handle</code></em> :</span></p></td>
3178 <td>guint (FIXME, generate documentation)</td>
3179 </tr>
3180 <tr>
3181 <td><p><span class="term"><em class="parameter"><code>arg_Self_ID</code></em> :</span></p></td>
3182 <td>const gchar * (FIXME, generate documentation)</td>
3183 </tr>
3184 </tbody>
3185 </table></div>
3186 </div>
3187 <hr>
3188 <div class="refsect2">
3189 <a name="tp-cli-channel-interface-conference-connect-to-channel-merged"></a><h3>tp_cli_channel_interface_conference_connect_to_channel_merged ()</h3>
3190 <pre class="programlisting"><a class="link" href="telepathy-glib-proxy.html#TpProxySignalConnection" title="TpProxySignalConnection"><span class="returnvalue">TpProxySignalConnection</span></a> * tp_cli_channel_interface_conference_connect_to_channel_merged
3191 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *proxy</code></em>,
3192 <em class="parameter"><code><a class="link" href="telepathy-glib-channel-group.html#tp-cli-channel-interface-conference-signal-callback-channel-merged" title="tp_cli_channel_interface_conference_signal_callback_channel_merged ()"><span class="type">tp_cli_channel_interface_conference_signal_callback_channel_merged</span></a> callback</code></em>,
3193 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
3194 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>,
3195 <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *weak_object</code></em>,
3196 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
3197 <p>
3198 Connect a handler to the signal ChannelMerged.
3199 </p>
3200 <p>
3201 &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;Emitted when a new channel is added to the value of &lt;tp:member-ref&gt;Channels&lt;/tp:member-ref&gt;.&lt;/p&gt;
3202 </p>
3203 <div class="variablelist"><table border="0">
3204 <col align="left" valign="top">
3205 <tbody>
3206 <tr>
3207 <td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
3208 <td>A <a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> or subclass</td>
3209 </tr>
3210 <tr>
3211 <td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
3212 <td>Callback to be called when the signal is
3213 received</td>
3214 </tr>
3215 <tr>
3216 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
3217 <td>User-supplied data for the callback</td>
3218 </tr>
3219 <tr>
3220 <td><p><span class="term"><em class="parameter"><code>destroy</code></em> :</span></p></td>
3221 <td>Destructor for the user-supplied data, which
3222 will be called when this signal is disconnected, or
3223 before this function returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
3224 </td>
3225 </tr>
3226 <tr>
3227 <td><p><span class="term"><em class="parameter"><code>weak_object</code></em> :</span></p></td>
3228 <td>A <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> which will be weakly referenced;
3229 if it is destroyed, this callback will automatically be
3230 disconnected</td>
3231 </tr>
3232 <tr>
3233 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
3234 <td>If not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, used to raise an error if <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is
3235 returned</td>
3236 </tr>
3237 <tr>
3238 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3239 <td>a <a class="link" href="telepathy-glib-proxy.html#TpProxySignalConnection" title="TpProxySignalConnection"><span class="type">TpProxySignalConnection</span></a> containing all of the
3240 above, which can be used to disconnect the signal; or
3241 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the proxy does not have the desired interface
3242 or has become invalid.</td>
3243 </tr>
3244 </tbody>
3245 </table></div>
3246 </div>
3247 <hr>
3248 <div class="refsect2">
3249 <a name="tp-cli-channel-interface-conference-connect-to-channel-removed"></a><h3>tp_cli_channel_interface_conference_connect_to_channel_removed ()</h3>
3250 <pre class="programlisting"><a class="link" href="telepathy-glib-proxy.html#TpProxySignalConnection" title="TpProxySignalConnection"><span class="returnvalue">TpProxySignalConnection</span></a> * tp_cli_channel_interface_conference_connect_to_channel_removed
3251 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *proxy</code></em>,
3252 <em class="parameter"><code><a class="link" href="telepathy-glib-channel-group.html#tp-cli-channel-interface-conference-signal-callback-channel-removed" title="tp_cli_channel_interface_conference_signal_callback_channel_removed ()"><span class="type">tp_cli_channel_interface_conference_signal_callback_channel_removed</span></a> callback</code></em>,
3253 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
3254 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>,
3255 <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *weak_object</code></em>,
3256 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
3257 <p>
3258 Connect a handler to the signal ChannelRemoved.
3259 </p>
3260 <p>
3261 &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;Emitted when a channel is removed from the value of &lt;tp:member-ref&gt;Channels&lt;/tp:member-ref&gt;, either because it closed or because it was split using the &lt;tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Interface"&gt;Splittable.DRAFT.Split&lt;/tp:dbus-ref&gt; method.&lt;/p&gt; &lt;p&gt;If a channel is removed because it was closed, &lt;tp:dbus-ref namespace="ofdT.Channel"&gt;Closed&lt;/tp:dbus-ref&gt; should be emitted before this signal.&lt;/p&gt;
3262 </p>
3263 <div class="variablelist"><table border="0">
3264 <col align="left" valign="top">
3265 <tbody>
3266 <tr>
3267 <td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
3268 <td>A <a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> or subclass</td>
3269 </tr>
3270 <tr>
3271 <td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
3272 <td>Callback to be called when the signal is
3273 received</td>
3274 </tr>
3275 <tr>
3276 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
3277 <td>User-supplied data for the callback</td>
3278 </tr>
3279 <tr>
3280 <td><p><span class="term"><em class="parameter"><code>destroy</code></em> :</span></p></td>
3281 <td>Destructor for the user-supplied data, which
3282 will be called when this signal is disconnected, or
3283 before this function returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
3284 </td>
3285 </tr>
3286 <tr>
3287 <td><p><span class="term"><em class="parameter"><code>weak_object</code></em> :</span></p></td>
3288 <td>A <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> which will be weakly referenced;
3289 if it is destroyed, this callback will automatically be
3290 disconnected</td>
3291 </tr>
3292 <tr>
3293 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
3294 <td>If not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, used to raise an error if <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is
3295 returned</td>
3296 </tr>
3297 <tr>
3298 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3299 <td>a <a class="link" href="telepathy-glib-proxy.html#TpProxySignalConnection" title="TpProxySignalConnection"><span class="type">TpProxySignalConnection</span></a> containing all of the
3300 above, which can be used to disconnect the signal; or
3301 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the proxy does not have the desired interface
3302 or has become invalid.</td>
3303 </tr>
3304 </tbody>
3305 </table></div>
3306 </div>
3307 <hr>
3308 <div class="refsect2">
30073309 <a name="tp-cli-channel-interface-conference-signal-callback-channel-merged"></a><h3>tp_cli_channel_interface_conference_signal_callback_channel_merged ()</h3>
30083310 <pre class="programlisting"><span class="returnvalue">void</span> (*tp_cli_channel_interface_conference_signal_callback_channel_merged)
30093311 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *proxy</code></em>,
30933395 </div>
30943396 <div class="footer">
30953397 <hr>
3096 Generated by GTK-Doc V1.17</div>
3398 Generated by GTK-Doc V1.17.1</div>
30973399 </body>
30983400 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-channel-text.html" title="Text channels">
99 <link rel="next" href="telepathy-glib-channel-file-transfer.html" title="File transfer">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
33333333 </div>
33343334 <div class="footer">
33353335 <hr>
3336 Generated by GTK-Doc V1.17</div>
3336 Generated by GTK-Doc V1.17.1</div>
33373337 </body>
33383338 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-channel-dispatch-operation.html" title="TpChannelDispatchOperation">
99 <link rel="next" href="telepathy-glib-client.html" title="TpClient">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
11121112 </div>
11131113 <div class="footer">
11141114 <hr>
1115 Generated by GTK-Doc V1.17</div>
1115 Generated by GTK-Doc V1.17.1</div>
11161116 </body>
11171117 </html>
0 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4 <title>Room-related interfaces on Channels</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
6 <link rel="home" href="index.html" title="telepathy-glib API Reference Manual">
7 <link rel="up" href="ch-client.html" title="Client-side proxies">
8 <link rel="prev" href="telepathy-glib-channel-group.html" title="Group and Conference interfaces on Channels">
9 <link rel="next" href="telepathy-glib-channel-text.html" title="Text channels">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
11 <link rel="stylesheet" href="style.css" type="text/css">
12 </head>
13 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
14 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
15 <tr valign="middle">
16 <td><a accesskey="p" href="telepathy-glib-channel-group.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
17 <td><a accesskey="u" href="ch-client.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
18 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
19 <th width="100%" align="center">telepathy-glib API Reference Manual</th>
20 <td><a accesskey="n" href="telepathy-glib-channel-text.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
21 </tr>
22 <tr><td colspan="5" class="shortcuts">
23 <a href="#telepathy-glib-channel-room.synopsis" class="shortcut">Top</a>
24  | 
25 <a href="#telepathy-glib-channel-room.description" class="shortcut">Description</a>
26 </td></tr>
27 </table>
28 <div class="refentry">
29 <a name="telepathy-glib-channel-room"></a><div class="titlepage"></div>
30 <div class="refnamediv"><table width="100%"><tr>
31 <td valign="top">
32 <h2><span class="refentrytitle"><a name="telepathy-glib-channel-room.top_of_page"></a>Room-related interfaces on Channels</span></h2>
33 <p>Room-related interfaces on Channels — client-side wrappers for Room, RoomConfig and Subject</p>
34 </td>
35 <td valign="top" align="right"></td>
36 </tr></table></div>
37 <div class="refsynopsisdiv">
38 <a name="telepathy-glib-channel-room.synopsis"></a><h2>Synopsis</h2>
39 <pre class="synopsis">
40 #include &lt;telepathy-glib/channel.h&gt;
41
42 <a class="link" href="telepathy-glib-proxy.html#TpProxyPendingCall" title="TpProxyPendingCall"><span class="returnvalue">TpProxyPendingCall</span></a> * <a class="link" href="telepathy-glib-channel-room.html#tp-cli-channel-interface-room-config-call-update-configuration" title="tp_cli_channel_interface_room_config_call_update_configuration ()">tp_cli_channel_interface_room_config_call_update_configuration</a>
43 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *proxy</code></em>,
44 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> timeout_ms</code></em>,
45 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *in_Properties</code></em>,
46 <em class="parameter"><code><a class="link" href="telepathy-glib-channel-room.html#tp-cli-channel-interface-room-config-callback-for-update-configuration" title="tp_cli_channel_interface_room_config_callback_for_update_configuration ()"><span class="type">tp_cli_channel_interface_room_config_callback_for_update_configuration</span></a> callback</code></em>,
47 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
48 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>,
49 <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *weak_object</code></em>);
50 <span class="returnvalue">void</span> (<a class="link" href="telepathy-glib-channel-room.html#tp-cli-channel-interface-room-config-callback-for-update-configuration" title="tp_cli_channel_interface_room_config_callback_for_update_configuration ()">*tp_cli_channel_interface_room_config_callback_for_update_configuration</a>)
51 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *proxy</code></em>,
52 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>,
53 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
54 <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *weak_object</code></em>);
55
56 <a class="link" href="telepathy-glib-proxy.html#TpProxyPendingCall" title="TpProxyPendingCall"><span class="returnvalue">TpProxyPendingCall</span></a> * <a class="link" href="telepathy-glib-channel-room.html#tp-cli-channel-interface-subject-call-set-subject" title="tp_cli_channel_interface_subject_call_set_subject ()">tp_cli_channel_interface_subject_call_set_subject</a>
57 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *proxy</code></em>,
58 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> timeout_ms</code></em>,
59 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *in_Subject</code></em>,
60 <em class="parameter"><code><a class="link" href="telepathy-glib-channel-room.html#tp-cli-channel-interface-subject-callback-for-set-subject" title="tp_cli_channel_interface_subject_callback_for_set_subject ()"><span class="type">tp_cli_channel_interface_subject_callback_for_set_subject</span></a> callback</code></em>,
61 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
62 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>,
63 <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *weak_object</code></em>);
64 <span class="returnvalue">void</span> (<a class="link" href="telepathy-glib-channel-room.html#tp-cli-channel-interface-subject-callback-for-set-subject" title="tp_cli_channel_interface_subject_callback_for_set_subject ()">*tp_cli_channel_interface_subject_callback_for_set_subject</a>)
65 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *proxy</code></em>,
66 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>,
67 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
68 <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *weak_object</code></em>);
69 </pre>
70 </div>
71 <div class="refsect1">
72 <a name="telepathy-glib-channel-room.description"></a><h2>Description</h2>
73 <p>
74 This family of interfaces exposes aspects of chat rooms' configuration, and
75 provides API to modify it (where permitted). Most of the API is in terms of
76 D-Bus properties; they may be retrieved using
77 <a class="link" href="telepathy-glib-proxy-dbus-core.html#tp-cli-dbus-properties-call-get-all" title="tp_cli_dbus_properties_call_get_all ()"><code class="function">tp_cli_dbus_properties_call_get_all()</code></a>, and changes monitored using
78 <a class="link" href="telepathy-glib-proxy-dbus-core.html#tp-cli-dbus-properties-connect-to-properties-changed" title="tp_cli_dbus_properties_connect_to_properties_changed ()"><code class="function">tp_cli_dbus_properties_connect_to_properties_changed()</code></a>.
79 </p>
80 <p>
81 <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-ROOM:CAPS" title="TP_IFACE_CHANNEL_INTERFACE_ROOM"><span class="type">TP_IFACE_CHANNEL_INTERFACE_ROOM</span></a> consists only of a pair of requestable,
82 immutable properties: <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-ROOM-NAME:CAPS" title="TP_PROP_CHANNEL_INTERFACE_ROOM_ROOM_NAME"><span class="type">TP_PROP_CHANNEL_INTERFACE_ROOM_ROOM_NAME</span></a> and
83 <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-SERVER:CAPS" title="TP_PROP_CHANNEL_INTERFACE_ROOM_SERVER"><span class="type">TP_PROP_CHANNEL_INTERFACE_ROOM_SERVER</span></a>.
84 </p>
85 <p>
86 In addition to <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-SUBJECT:CAPS" title="TP_IFACE_CHANNEL_INTERFACE_SUBJECT"><span class="type">TP_IFACE_CHANNEL_INTERFACE_SUBJECT</span></a>'s single method, it
87 defines a set of read-only properties: <code class="code">"Subject"</code>,
88 <code class="code">"Actor"</code>, <code class="code">"ActorHandle"</code>, <code class="code">"Timestamp"</code>,
89 and <code class="code">"CanSet"</code>.
90 </p>
91 <p>
92 <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-ROOM-CONFIG:CAPS" title="TP_IFACE_CHANNEL_INTERFACE_ROOM_CONFIG"><span class="type">TP_IFACE_CHANNEL_INTERFACE_ROOM_CONFIG</span></a> provides a vast array of properties
93 for other aspects of a chat room's configuration (such as the maximum number
94 of participants, and whether the room is password-protected).
95 </p>
96 </div>
97 <div class="refsect1">
98 <a name="telepathy-glib-channel-room.details"></a><h2>Details</h2>
99 <div class="refsect2">
100 <a name="tp-cli-channel-interface-room-config-call-update-configuration"></a><h3>tp_cli_channel_interface_room_config_call_update_configuration ()</h3>
101 <pre class="programlisting"><a class="link" href="telepathy-glib-proxy.html#TpProxyPendingCall" title="TpProxyPendingCall"><span class="returnvalue">TpProxyPendingCall</span></a> * tp_cli_channel_interface_room_config_call_update_configuration
102 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *proxy</code></em>,
103 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> timeout_ms</code></em>,
104 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *in_Properties</code></em>,
105 <em class="parameter"><code><a class="link" href="telepathy-glib-channel-room.html#tp-cli-channel-interface-room-config-callback-for-update-configuration" title="tp_cli_channel_interface_room_config_callback_for_update_configuration ()"><span class="type">tp_cli_channel_interface_room_config_callback_for_update_configuration</span></a> callback</code></em>,
106 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
107 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>,
108 <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *weak_object</code></em>);</pre>
109 <p>
110 Start a UpdateConfiguration method call.
111 </p>
112 <p>
113 &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;If &lt;tp:member-ref&gt;CanUpdateConfiguration&lt;/tp:member-ref&gt; is &lt;code&gt;True&lt;/code&gt;, modifies the current values of one or more room properties. This method SHOULD NOT return until the change has been accepted or declined by the server.&lt;/p&gt; &lt;p&gt;Note that the server may ostensibly accept the changes (thus allowing this method to return success) but signal different values; for example, the server might truncate &lt;tp:member-ref&gt;Title&lt;/tp:member-ref&gt; to some maximum length. Callers SHOULD continue to listen for the &lt;code&gt;PropertiesChanged&lt;/code&gt; signal, and trust the values it signals over those provided to this method.&lt;/p&gt;
114 </p>
115 <div class="variablelist"><table border="0">
116 <col align="left" valign="top">
117 <tbody>
118 <tr>
119 <td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
120 <td>the <a class="link" href="telepathy-glib-proxy.html#TpProxy"><span class="type">TpProxy</span></a>
121 </td>
122 </tr>
123 <tr>
124 <td><p><span class="term"><em class="parameter"><code>timeout_ms</code></em> :</span></p></td>
125 <td>the timeout in milliseconds, or -1 to use the
126 default</td>
127 </tr>
128 <tr>
129 <td><p><span class="term"><em class="parameter"><code>in_Properties</code></em> :</span></p></td>
130 <td>Used to pass an 'in' argument: &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt; The new values of one or more properties on this interface, which must be listed in &lt;tp:member-ref&gt;MutableProperties&lt;/tp:member-ref&gt;. For instance, to set up a channel for discussing top-secret corporate merge plans, this parameter might be: &lt;/p&gt; &lt;blockquote&gt; &lt;pre&gt;{ 'Private': True, 'InviteOnly': True, 'Description': &amp;quot;The first rule of <span class="type">inteltakeover</span> is: do not talk about <span class="type">inteltakeover</span>&amp;quot;, }&lt;/pre&gt;&lt;/blockquote&gt;</td>
131 </tr>
132 <tr>
133 <td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
134 <td>called when the method call succeeds or fails;
135 may be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to make a "fire and forget" call with no
136 reply tracking</td>
137 </tr>
138 <tr>
139 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
140 <td>user-supplied data passed to the callback;
141 must be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>callback</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
142 </td>
143 </tr>
144 <tr>
145 <td><p><span class="term"><em class="parameter"><code>destroy</code></em> :</span></p></td>
146 <td>called with the user_data as argument, after the
147 call has succeeded, failed or been cancelled;
148 must be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>callback</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
149 </td>
150 </tr>
151 <tr>
152 <td><p><span class="term"><em class="parameter"><code>weak_object</code></em> :</span></p></td>
153 <td>If not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> which will be
154 weakly referenced; if it is destroyed, this call
155 will automatically be cancelled. Must be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
156 <em class="parameter"><code>callback</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
157 </td>
158 </tr>
159 <tr>
160 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
161 <td>a <a class="link" href="telepathy-glib-proxy.html#TpProxyPendingCall" title="TpProxyPendingCall"><span class="type">TpProxyPendingCall</span></a> representing the call in
162 progress. It is borrowed from the object, and will become
163 invalid when the callback is called, the call is
164 cancelled or the <a class="link" href="telepathy-glib-proxy.html#TpProxy"><span class="type">TpProxy</span></a> becomes invalid.</td>
165 </tr>
166 </tbody>
167 </table></div>
168 </div>
169 <hr>
170 <div class="refsect2">
171 <a name="tp-cli-channel-interface-room-config-callback-for-update-configuration"></a><h3>tp_cli_channel_interface_room_config_callback_for_update_configuration ()</h3>
172 <pre class="programlisting"><span class="returnvalue">void</span> (*tp_cli_channel_interface_room_config_callback_for_update_configuration)
173 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *proxy</code></em>,
174 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>,
175 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
176 <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *weak_object</code></em>);</pre>
177 <p>
178 Signature of the callback called when a UpdateConfiguration method call
179 succeeds or fails.
180 </p>
181 <div class="variablelist"><table border="0">
182 <col align="left" valign="top">
183 <tbody>
184 <tr>
185 <td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
186 <td>the proxy on which the call was made</td>
187 </tr>
188 <tr>
189 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
190 <td>
191 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on success, or an error on failure</td>
192 </tr>
193 <tr>
194 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
195 <td>user-supplied data</td>
196 </tr>
197 <tr>
198 <td><p><span class="term"><em class="parameter"><code>weak_object</code></em> :</span></p></td>
199 <td>user-supplied object</td>
200 </tr>
201 </tbody>
202 </table></div>
203 </div>
204 <hr>
205 <div class="refsect2">
206 <a name="tp-cli-channel-interface-subject-call-set-subject"></a><h3>tp_cli_channel_interface_subject_call_set_subject ()</h3>
207 <pre class="programlisting"><a class="link" href="telepathy-glib-proxy.html#TpProxyPendingCall" title="TpProxyPendingCall"><span class="returnvalue">TpProxyPendingCall</span></a> * tp_cli_channel_interface_subject_call_set_subject
208 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *proxy</code></em>,
209 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> timeout_ms</code></em>,
210 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *in_Subject</code></em>,
211 <em class="parameter"><code><a class="link" href="telepathy-glib-channel-room.html#tp-cli-channel-interface-subject-callback-for-set-subject" title="tp_cli_channel_interface_subject_callback_for_set_subject ()"><span class="type">tp_cli_channel_interface_subject_callback_for_set_subject</span></a> callback</code></em>,
212 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
213 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>,
214 <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *weak_object</code></em>);</pre>
215 <p>
216 Start a SetSubject method call.
217 </p>
218 <p>
219 &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;Set the room's subject. Clients SHOULD look at the subject flags before calling this method as the user might not have permission to set the subject.&lt;/p&gt; &lt;p&gt;A successful return of this method indicates a successful change in subject, but clients should still listen for changes to the &lt;tp:member-ref&gt;Subject&lt;/tp:member-ref&gt; property for further changes by other users or the server.&lt;/p&gt;
220 </p>
221 <div class="variablelist"><table border="0">
222 <col align="left" valign="top">
223 <tbody>
224 <tr>
225 <td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
226 <td>the <a class="link" href="telepathy-glib-proxy.html#TpProxy"><span class="type">TpProxy</span></a>
227 </td>
228 </tr>
229 <tr>
230 <td><p><span class="term"><em class="parameter"><code>timeout_ms</code></em> :</span></p></td>
231 <td>the timeout in milliseconds, or -1 to use the
232 default</td>
233 </tr>
234 <tr>
235 <td><p><span class="term"><em class="parameter"><code>in_Subject</code></em> :</span></p></td>
236 <td>Used to pass an 'in' argument: The new subject.</td>
237 </tr>
238 <tr>
239 <td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
240 <td>called when the method call succeeds or fails;
241 may be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to make a "fire and forget" call with no
242 reply tracking</td>
243 </tr>
244 <tr>
245 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
246 <td>user-supplied data passed to the callback;
247 must be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>callback</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
248 </td>
249 </tr>
250 <tr>
251 <td><p><span class="term"><em class="parameter"><code>destroy</code></em> :</span></p></td>
252 <td>called with the user_data as argument, after the
253 call has succeeded, failed or been cancelled;
254 must be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>callback</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
255 </td>
256 </tr>
257 <tr>
258 <td><p><span class="term"><em class="parameter"><code>weak_object</code></em> :</span></p></td>
259 <td>If not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> which will be
260 weakly referenced; if it is destroyed, this call
261 will automatically be cancelled. Must be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
262 <em class="parameter"><code>callback</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
263 </td>
264 </tr>
265 <tr>
266 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
267 <td>a <a class="link" href="telepathy-glib-proxy.html#TpProxyPendingCall" title="TpProxyPendingCall"><span class="type">TpProxyPendingCall</span></a> representing the call in
268 progress. It is borrowed from the object, and will become
269 invalid when the callback is called, the call is
270 cancelled or the <a class="link" href="telepathy-glib-proxy.html#TpProxy"><span class="type">TpProxy</span></a> becomes invalid.</td>
271 </tr>
272 </tbody>
273 </table></div>
274 </div>
275 <hr>
276 <div class="refsect2">
277 <a name="tp-cli-channel-interface-subject-callback-for-set-subject"></a><h3>tp_cli_channel_interface_subject_callback_for_set_subject ()</h3>
278 <pre class="programlisting"><span class="returnvalue">void</span> (*tp_cli_channel_interface_subject_callback_for_set_subject)
279 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *proxy</code></em>,
280 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>,
281 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
282 <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *weak_object</code></em>);</pre>
283 <p>
284 Signature of the callback called when a SetSubject method call
285 succeeds or fails.
286 </p>
287 <div class="variablelist"><table border="0">
288 <col align="left" valign="top">
289 <tbody>
290 <tr>
291 <td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
292 <td>the proxy on which the call was made</td>
293 </tr>
294 <tr>
295 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
296 <td>
297 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on success, or an error on failure</td>
298 </tr>
299 <tr>
300 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
301 <td>user-supplied data</td>
302 </tr>
303 <tr>
304 <td><p><span class="term"><em class="parameter"><code>weak_object</code></em> :</span></p></td>
305 <td>user-supplied object</td>
306 </tr>
307 </tbody>
308 </table></div>
309 </div>
310 </div>
311 </div>
312 <div class="footer">
313 <hr>
314 Generated by GTK-Doc V1.17.1</div>
315 </body>
316 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-channel-tube.html" title="Tube channels">
99 <link rel="next" href="telepathy-glib-channel-contactsearch.html" title="Contact Search channels">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
616616 Connect a handler to the signal GotRooms.
617617 </p>
618618 <p>
619 &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;Emitted when information about rooms on the server becomes available. The array contains the room handle (as can be passed to the &lt;tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection"&gt;RequestChannel&lt;/tp:dbus-ref&gt; method with HANDLE_TYPE_ROOM), the channel type, and a dictionary containing further information about the room as available. The following well-known keys and types are recommended for use where appropriate:&lt;/p&gt; &lt;dl&gt; &lt;dt&gt;handle-name (s)&lt;/dt&gt; &lt;dd&gt;The identifier of the room (as would be returned by &lt;tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection"&gt;InspectHandles&lt;/tp:dbus-ref&gt;)&lt;/dd&gt; &lt;dt&gt;name (s)&lt;/dt&gt; &lt;dd&gt;The human-readable name of the room if different from the handle&lt;/dd&gt; &lt;dt&gt;description (s)&lt;/dt&gt; &lt;dd&gt;A description of the room's overall purpose&lt;/dd&gt; &lt;dt&gt;subject (s)&lt;/dt&gt; &lt;dd&gt;The current subject of conversation in the room (as would be returned by getting the string part of the &lt;tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Interface.Room.DRAFT"&gt;Subject&lt;/tp:dbus-ref&gt; property)&lt;/dd&gt; &lt;dt&gt;members (u)&lt;/dt&gt; &lt;dd&gt;The number of members in the room&lt;/dd&gt; &lt;dt&gt;password (b)&lt;/dt&gt; &lt;dd&gt;True if the room requires a password to enter&lt;/dd&gt; &lt;dt&gt;invite-only (b)&lt;/dt&gt; &lt;dd&gt;True if you cannot join the room, but must be invited&lt;/dd&gt; &lt;dt&gt;room-id (s)&lt;/dt&gt; &lt;dd&gt;The human-readable identifier of a chat room (as would be returned by getting the &lt;tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Interface.Room.DRAFT"&gt;RoomID&lt;/tp:dbus-ref&gt; property)&lt;/dd&gt; &lt;dt&gt;server (s)&lt;/dt&gt; &lt;dd&gt;The DNS name of the server hosting these channels (as would be returned by getting the &lt;tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Interface.Room.DRAFT"&gt;Server&lt;/tp:dbus-ref&gt; property)&lt;/dd&gt; &lt;/dl&gt;
619 &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;Emitted when information about rooms on the server becomes available. The array contains the room handle (as can be passed to the &lt;tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection"&gt;RequestChannel&lt;/tp:dbus-ref&gt; method with HANDLE_TYPE_ROOM), the channel type, and a dictionary containing further information about the room as available. The following well-known keys and types are recommended for use where appropriate:&lt;/p&gt; &lt;dl&gt; &lt;dt&gt;handle-name (s)&lt;/dt&gt; &lt;dd&gt;The identifier of the room (as would be returned by &lt;tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection"&gt;InspectHandles&lt;/tp:dbus-ref&gt;)&lt;/dd&gt; &lt;dt&gt;name (s)&lt;/dt&gt; &lt;dd&gt;The human-readable name of the room if different from the handle&lt;/dd&gt; &lt;dt&gt;description (s)&lt;/dt&gt; &lt;dd&gt;A description of the room's overall purpose&lt;/dd&gt; &lt;dt&gt;subject (s)&lt;/dt&gt; &lt;dd&gt;The current subject of conversation in the room (as would be returned by getting the string part of the &lt;tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Interface.Subject2"&gt;Subject&lt;/tp:dbus-ref&gt; property)&lt;/dd&gt; &lt;dt&gt;members (u)&lt;/dt&gt; &lt;dd&gt;The number of members in the room&lt;/dd&gt; &lt;dt&gt;password (b)&lt;/dt&gt; &lt;dd&gt;True if the room requires a password to enter&lt;/dd&gt; &lt;dt&gt;invite-only (b)&lt;/dt&gt; &lt;dd&gt;True if you cannot join the room, but must be invited&lt;/dd&gt; &lt;dt&gt;room-id (s)&lt;/dt&gt; &lt;dd&gt;The human-readable identifier of a chat room (as would be returned by getting the &lt;tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Interface.Room2"&gt;RoomName&lt;/tp:dbus-ref&gt; property)&lt;/dd&gt; &lt;dt&gt;server (s)&lt;/dt&gt; &lt;dd&gt;The DNS name of the server hosting these channels (as would be returned by getting the &lt;tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Interface.Room2"&gt;Server&lt;/tp:dbus-ref&gt; property)&lt;/dd&gt; &lt;/dl&gt;
620620 </p>
621621 <div class="variablelist"><table border="0">
622622 <col align="left" valign="top">
798798 </div>
799799 <div class="footer">
800800 <hr>
801 Generated by GTK-Doc V1.17</div>
801 Generated by GTK-Doc V1.17.1</div>
802802 </body>
803803 </html>
55 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
66 <link rel="home" href="index.html" title="telepathy-glib API Reference Manual">
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
8 <link rel="prev" href="telepathy-glib-channel-group.html" title="Group and Conference interfaces on Channels">
8 <link rel="prev" href="telepathy-glib-channel-room.html" title="Room-related interfaces on Channels">
99 <link rel="next" href="telepathy-glib-channel-media.html" title="Media channels">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
1414 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
1515 <tr valign="middle">
16 <td><a accesskey="p" href="telepathy-glib-channel-group.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
16 <td><a accesskey="p" href="telepathy-glib-channel-room.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
1717 <td><a accesskey="u" href="ch-client.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
1818 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
1919 <th width="100%" align="center">telepathy-glib API Reference Manual</th>
17721772 Start a SendMessage method call.
17731773 </p>
17741774 <p>
1775 &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;Submit a message to the server for sending. If this method returns successfully, the message has been submitted to the server and the &lt;tp:member-ref&gt;MessageSent&lt;/tp:member-ref&gt; signal is emitted. A corresponding &lt;tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Type.Text"&gt;Sent&lt;/tp:dbus-ref&gt; signal on the Text interface MUST also be emitted.&lt;/p&gt; &lt;p&gt;This method MUST return before the MessageSent signal is emitted.&lt;/p&gt; &lt;tp:rationale&gt; &lt;p&gt;This means that the process sending the message is the first to see the &lt;tp:type&gt;Protocol_Message_Token&lt;/tp:type&gt;, and can relate the message to the corresponding &lt;tp:member-ref&gt;MessageSent&lt;/tp:member-ref&gt; signal by comparing message tokens (if supported by the protocol).&lt;/p&gt; &lt;/tp:rationale&gt; &lt;p&gt;If this method fails, message submission to the server has failed and no signal on this interface (or the Text interface) is emitted.&lt;/p&gt; &lt;p&gt;If this method succeeds, message submission to the server has succeeded, but the message has not necessarily reached its intended recipient. If a delivery failure is detected later, this is signalled by receiving a message whose &lt;code&gt;message-type&lt;/code&gt; header maps to &lt;tp:type&gt;Channel_Text_Message_Type&lt;/tp:type&gt;_Delivery_Report. Similarly, if delivery is detected to have been successful (which is not possible in all protocols), a successful delivery report will be signalled.&lt;/p&gt;
1775 &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;Submit a message to the server for sending. If this method returns successfully, the message has been submitted to the server and the &lt;tp:member-ref&gt;MessageSent&lt;/tp:member-ref&gt; signal is emitted. A corresponding &lt;tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Type.Text"&gt;Sent&lt;/tp:dbus-ref&gt; signal on the Text interface MUST also be emitted.&lt;/p&gt; &lt;p&gt;This method MUST return before the MessageSent signal is emitted.&lt;/p&gt; &lt;tp:rationale&gt; &lt;p&gt;This means that the process sending the message is the first to see the &lt;tp:type&gt;Protocol_Message_Token&lt;/tp:type&gt;, and can relate the message to the corresponding &lt;tp:member-ref&gt;MessageSent&lt;/tp:member-ref&gt; signal by comparing message tokens (if supported by the protocol).&lt;/p&gt; &lt;/tp:rationale&gt; &lt;p&gt;If this method fails, message submission to the server has failed and no signal on this interface (or the Text interface) is emitted.&lt;/p&gt; &lt;p&gt;If this method succeeds, message submission to the server has succeeded, but the message has not necessarily reached its intended recipient. If a delivery failure is detected later, this is signalled by receiving a message whose &lt;code&gt;message-type&lt;/code&gt; header maps to &lt;tp:value-ref type="Channel_Text_Message_Type"&gt;Delivery_Report&lt;/tp:value-ref&gt;. Similarly, if delivery is detected to have been successful (which is not possible in all protocols), a successful delivery report will be signalled.&lt;/p&gt;
17761776 </p>
17771777 <div class="variablelist"><table border="0">
17781778 <col align="left" valign="top">
18551855 state.
18561856 </p>
18571857 <p>
1858 &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;Submit a message to the server for sending. If this method returns successfully, the message has been submitted to the server and the &lt;tp:member-ref&gt;MessageSent&lt;/tp:member-ref&gt; signal is emitted. A corresponding &lt;tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Type.Text"&gt;Sent&lt;/tp:dbus-ref&gt; signal on the Text interface MUST also be emitted.&lt;/p&gt; &lt;p&gt;This method MUST return before the MessageSent signal is emitted.&lt;/p&gt; &lt;tp:rationale&gt; &lt;p&gt;This means that the process sending the message is the first to see the &lt;tp:type&gt;Protocol_Message_Token&lt;/tp:type&gt;, and can relate the message to the corresponding &lt;tp:member-ref&gt;MessageSent&lt;/tp:member-ref&gt; signal by comparing message tokens (if supported by the protocol).&lt;/p&gt; &lt;/tp:rationale&gt; &lt;p&gt;If this method fails, message submission to the server has failed and no signal on this interface (or the Text interface) is emitted.&lt;/p&gt; &lt;p&gt;If this method succeeds, message submission to the server has succeeded, but the message has not necessarily reached its intended recipient. If a delivery failure is detected later, this is signalled by receiving a message whose &lt;code&gt;message-type&lt;/code&gt; header maps to &lt;tp:type&gt;Channel_Text_Message_Type&lt;/tp:type&gt;_Delivery_Report. Similarly, if delivery is detected to have been successful (which is not possible in all protocols), a successful delivery report will be signalled.&lt;/p&gt;
1858 &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;Submit a message to the server for sending. If this method returns successfully, the message has been submitted to the server and the &lt;tp:member-ref&gt;MessageSent&lt;/tp:member-ref&gt; signal is emitted. A corresponding &lt;tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Type.Text"&gt;Sent&lt;/tp:dbus-ref&gt; signal on the Text interface MUST also be emitted.&lt;/p&gt; &lt;p&gt;This method MUST return before the MessageSent signal is emitted.&lt;/p&gt; &lt;tp:rationale&gt; &lt;p&gt;This means that the process sending the message is the first to see the &lt;tp:type&gt;Protocol_Message_Token&lt;/tp:type&gt;, and can relate the message to the corresponding &lt;tp:member-ref&gt;MessageSent&lt;/tp:member-ref&gt; signal by comparing message tokens (if supported by the protocol).&lt;/p&gt; &lt;/tp:rationale&gt; &lt;p&gt;If this method fails, message submission to the server has failed and no signal on this interface (or the Text interface) is emitted.&lt;/p&gt; &lt;p&gt;If this method succeeds, message submission to the server has succeeded, but the message has not necessarily reached its intended recipient. If a delivery failure is detected later, this is signalled by receiving a message whose &lt;code&gt;message-type&lt;/code&gt; header maps to &lt;tp:value-ref type="Channel_Text_Message_Type"&gt;Delivery_Report&lt;/tp:value-ref&gt;. Similarly, if delivery is detected to have been successful (which is not possible in all protocols), a successful delivery report will be signalled.&lt;/p&gt;
18591859 </p>
18601860 <div class="variablelist"><table border="0">
18611861 <col align="left" valign="top">
31933193 </div>
31943194 <div class="footer">
31953195 <hr>
3196 Generated by GTK-Doc V1.17</div>
3196 Generated by GTK-Doc V1.17.1</div>
31973197 </body>
31983198 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-channel-tubes.html" title="Tubes channels">
99 <link rel="next" href="telepathy-glib-channel-roomlist.html" title="Room List channels">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
14631463 </div>
14641464 <div class="footer">
14651465 <hr>
1466 Generated by GTK-Doc V1.17</div>
1466 Generated by GTK-Doc V1.17.1</div>
14671467 </body>
14681468 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-channel-file-transfer.html" title="File transfer">
99 <link rel="next" href="telepathy-glib-channel-tube.html" title="Tube channels">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
28702870 </div>
28712871 <div class="footer">
28722872 <hr>
2873 Generated by GTK-Doc V1.17</div>
2873 Generated by GTK-Doc V1.17.1</div>
28742874 </body>
28752875 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-contact-search-result.html" title="TpContactSearchResult">
99 <link rel="next" href="telepathy-glib-channel-group.html" title="Group and Conference interfaces on Channels">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
7272 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="telepathy-glib-channel.html#tp-channel-is-ready" title="tp_channel_is_ready ()">tp_channel_is_ready</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);
7373
7474 #define <a class="link" href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-CORE:CAPS" title="TP_CHANNEL_FEATURE_CORE">TP_CHANNEL_FEATURE_CORE</a>
75 #define <a class="link" href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-CONTACTS:CAPS" title="TP_CHANNEL_FEATURE_CONTACTS">TP_CHANNEL_FEATURE_CONTACTS</a>
7576 <a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="returnvalue">TpConnection</span></a> * <a class="link" href="telepathy-glib-channel.html#tp-channel-borrow-connection" title="tp_channel_borrow_connection ()">tp_channel_borrow_connection</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);
7677 <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="returnvalue">GHashTable</span></a> * <a class="link" href="telepathy-glib-channel.html#tp-channel-borrow-immutable-properties" title="tp_channel_borrow_immutable_properties ()">tp_channel_borrow_immutable_properties</a>
7778 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);
8081 <a class="link" href="telepathy-glib-handle.html#TpHandle" title="TpHandle"><span class="returnvalue">TpHandle</span></a> <a class="link" href="telepathy-glib-channel.html#tp-channel-get-handle" title="tp_channel_get_handle ()">tp_channel_get_handle</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>,
8182 <em class="parameter"><code><a class="link" href="telepathy-glib-enums.html#TpHandleType" title="enum TpHandleType"><span class="type">TpHandleType</span></a> *handle_type</code></em>);
8283 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="telepathy-glib-channel.html#tp-channel-get-identifier" title="tp_channel_get_identifier ()">tp_channel_get_identifier</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);
84 <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="returnvalue">TpContact</span></a> * <a class="link" href="telepathy-glib-channel.html#tp-channel-get-target-contact" title="tp_channel_get_target_contact ()">tp_channel_get_target_contact</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);
8385 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="telepathy-glib-channel.html#tp-channel-get-requested" title="tp_channel_get_requested ()">tp_channel_get_requested</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);
8486 <a class="link" href="telepathy-glib-handle.html#TpHandle" title="TpHandle"><span class="returnvalue">TpHandle</span></a> <a class="link" href="telepathy-glib-channel.html#tp-channel-get-initiator-handle" title="tp_channel_get_initiator_handle ()">tp_channel_get_initiator_handle</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);
8587 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="telepathy-glib-channel.html#tp-channel-get-initiator-identifier" title="tp_channel_get_initiator_identifier ()">tp_channel_get_initiator_identifier</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);
88 <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="returnvalue">TpContact</span></a> * <a class="link" href="telepathy-glib-channel.html#tp-channel-get-initiator-contact" title="tp_channel_get_initiator_contact ()">tp_channel_get_initiator_contact</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);
8689 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-channel.html#tp-channel-join-async" title="tp_channel_join_async ()">tp_channel_join_async</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>,
8790 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *message</code></em>,
8891 <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
117120 <em class="parameter"><code><a class="link" href="telepathy-glib-handle.html#TpHandle" title="TpHandle"><span class="type">TpHandle</span></a> contact</code></em>);
118121
119122 #define <a class="link" href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-GROUP:CAPS" title="TP_CHANNEL_FEATURE_GROUP">TP_CHANNEL_FEATURE_GROUP</a>
120 <a class="link" href="telepathy-glib-enums.html#TpChannelGroupFlags" title="enum TpChannelGroupFlags"><span class="returnvalue">TpChannelGroupFlags</span></a> <a class="link" href="telepathy-glib-channel.html#tp-channel-group-get-flags" title="tp_channel_group_get_flags ()">tp_channel_group_get_flags</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);
123 <a class="link" href="telepathy-glib-enums.html#TpChannelGroupFlags" title="enum TpChannelGroupFlags"><span class="returnvalue">TpChannelGroupFlags</span></a> <a class="link" href="telepathy-glib-channel.html#tp-channel-group-get-flags" title="tp_channel_group_get_flags ()">tp_channel_group_get_flags</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);
121124 <a class="link" href="telepathy-glib-handle.html#TpHandle" title="TpHandle"><span class="returnvalue">TpHandle</span></a> <a class="link" href="telepathy-glib-channel.html#tp-channel-group-get-handle-owner" title="tp_channel_group_get_handle_owner ()">tp_channel_group_get_handle_owner</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>,
122125 <em class="parameter"><code><a class="link" href="telepathy-glib-handle.html#TpHandle" title="TpHandle"><span class="type">TpHandle</span></a> handle</code></em>);
126 <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="returnvalue">TpContact</span></a> * <a class="link" href="telepathy-glib-channel.html#tp-channel-group-get-contact-owner" title="tp_channel_group_get_contact_owner ()">tp_channel_group_get_contact_owner</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>,
127 <em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *contact</code></em>);
123128 <a class="link" href="telepathy-glib-handle.html#TpHandle" title="TpHandle"><span class="returnvalue">TpHandle</span></a> <a class="link" href="telepathy-glib-channel.html#tp-channel-group-get-self-handle" title="tp_channel_group_get_self_handle ()">tp_channel_group_get_self_handle</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);
129 <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="returnvalue">TpContact</span></a> * <a class="link" href="telepathy-glib-channel.html#tp-channel-group-get-self-contact" title="tp_channel_group_get_self_contact ()">tp_channel_group_get_self_contact</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);
130 const <a class="link" href="TpIntset.html" title="TpIntset"><span class="returnvalue">TpIntset</span></a> * <a class="link" href="telepathy-glib-channel.html#tp-channel-group-get-members" title="tp_channel_group_get_members ()">tp_channel_group_get_members</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);
131 <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="returnvalue">GPtrArray</span></a> * <a class="link" href="telepathy-glib-channel.html#tp-channel-group-dup-members-contacts" title="tp_channel_group_dup_members_contacts ()">tp_channel_group_dup_members_contacts</a>
132 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);
124133 const <a class="link" href="TpIntset.html" title="TpIntset"><span class="returnvalue">TpIntset</span></a> * <a class="link" href="telepathy-glib-channel.html#tp-channel-group-get-local-pending" title="tp_channel_group_get_local_pending ()">tp_channel_group_get_local_pending</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);
125 const <a class="link" href="TpIntset.html" title="TpIntset"><span class="returnvalue">TpIntset</span></a> * <a class="link" href="telepathy-glib-channel.html#tp-channel-group-get-members" title="tp_channel_group_get_members ()">tp_channel_group_get_members</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);
134 <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="returnvalue">GPtrArray</span></a> * <a class="link" href="telepathy-glib-channel.html#tp-channel-group-dup-local-pending-contacts" title="tp_channel_group_dup_local_pending_contacts ()">tp_channel_group_dup_local_pending_contacts</a>
135 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);
126136 const <a class="link" href="TpIntset.html" title="TpIntset"><span class="returnvalue">TpIntset</span></a> * <a class="link" href="telepathy-glib-channel.html#tp-channel-group-get-remote-pending" title="tp_channel_group_get_remote_pending ()">tp_channel_group_get_remote_pending</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);
137 <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="returnvalue">GPtrArray</span></a> * <a class="link" href="telepathy-glib-channel.html#tp-channel-group-dup-remote-pending-contacts" title="tp_channel_group_dup_remote_pending_contacts ()">tp_channel_group_dup_remote_pending_contacts</a>
138 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);
127139 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="telepathy-glib-channel.html#tp-channel-group-get-local-pending-info" title="tp_channel_group_get_local_pending_info ()">tp_channel_group_get_local_pending_info</a>
128140 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>,
129141 <em class="parameter"><code><a class="link" href="telepathy-glib-handle.html#TpHandle" title="TpHandle"><span class="type">TpHandle</span></a> local_pending</code></em>,
130142 <em class="parameter"><code><a class="link" href="telepathy-glib-handle.html#TpHandle" title="TpHandle"><span class="type">TpHandle</span></a> *actor</code></em>,
143 <em class="parameter"><code><a class="link" href="telepathy-glib-enums.html#TpChannelGroupChangeReason" title="enum TpChannelGroupChangeReason"><span class="type">TpChannelGroupChangeReason</span></a> *reason</code></em>,
144 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **message</code></em>);
145 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="telepathy-glib-channel.html#tp-channel-group-get-local-pending-contact-info" title="tp_channel_group_get_local_pending_contact_info ()">tp_channel_group_get_local_pending_contact_info</a>
146 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>,
147 <em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *local_pending</code></em>,
148 <em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> **actor</code></em>,
131149 <em class="parameter"><code><a class="link" href="telepathy-glib-enums.html#TpChannelGroupChangeReason" title="enum TpChannelGroupChangeReason"><span class="type">TpChannelGroupChangeReason</span></a> *reason</code></em>,
132150 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **message</code></em>);
133151 #define <a class="link" href="telepathy-glib-channel.html#TP-ERRORS-REMOVED-FROM-GROUP:CAPS" title="TP_ERRORS_REMOVED_FROM_GROUP">TP_ERRORS_REMOVED_FROM_GROUP</a>
249267 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
250268 +----<a class="link" href="telepathy-glib-proxy.html#TpProxy">TpProxy</a>
251269 +----TpChannel
270 +----<a class="link" href="telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel">TpDBusTubeChannel</a>
252271 +----<a class="link" href="telepathy-glib-file-transfer-channel.html#TpFileTransferChannel">TpFileTransferChannel</a>
253272 +----<a class="link" href="telepathy-glib-stream-tube-channel.html#TpStreamTubeChannel">TpStreamTubeChannel</a>
254273 +----<a class="link" href="telepathy-glib-text-channel.html#TpTextChannel">TpTextChannel</a>
267286 "<a class="link" href="telepathy-glib-channel.html#TpChannel--channel-ready" title='The "channel-ready" property'>channel-ready</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read
268287 "<a class="link" href="telepathy-glib-channel.html#TpChannel--connection" title='The "connection" property'>connection</a>" <a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a>* : Read / Write / Construct Only
269288 "<a class="link" href="telepathy-glib-channel.html#TpChannel--group-flags" title='The "group-flags" property'>group-flags</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read
289 "<a class="link" href="telepathy-glib-channel.html#TpChannel--group-self-contact" title='The "group-self-contact" property'>group-self-contact</a>" <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a>* : Read
270290 "<a class="link" href="telepathy-glib-channel.html#TpChannel--group-self-handle" title='The "group-self-handle" property'>group-self-handle</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read
271291 "<a class="link" href="telepathy-glib-channel.html#TpChannel--identifier" title='The "identifier" property'>identifier</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read
292 "<a class="link" href="telepathy-glib-channel.html#TpChannel--initiator-contact" title='The "initiator-contact" property'>initiator-contact</a>" <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a>* : Read
272293 "<a class="link" href="telepathy-glib-channel.html#TpChannel--initiator-handle" title='The "initiator-handle" property'>initiator-handle</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read
273294 "<a class="link" href="telepathy-glib-channel.html#TpChannel--initiator-identifier" title='The "initiator-identifier" property'>initiator-identifier</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read
274295 "<a class="link" href="telepathy-glib-channel.html#TpChannel--password-needed" title='The "password-needed" property'>password-needed</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read
275296 "<a class="link" href="telepathy-glib-channel.html#TpChannel--requested" title='The "requested" property'>requested</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read
297 "<a class="link" href="telepathy-glib-channel.html#TpChannel--target-contact" title='The "target-contact" property'>target-contact</a>" <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a>* : Read
276298 </pre>
277299 </div>
278300 <div class="refsect1">
279301 <a name="telepathy-glib-channel.signals"></a><h2>Signals</h2>
280302 <pre class="synopsis">
281303 "<a class="link" href="telepathy-glib-channel.html#TpChannel-chat-state-changed" title='The "chat-state-changed" signal'>chat-state-changed</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a>
304 "<a class="link" href="telepathy-glib-channel.html#TpChannel-group-contacts-changed" title='The "group-contacts-changed" signal'>group-contacts-changed</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a>
282305 "<a class="link" href="telepathy-glib-channel.html#TpChannel-group-flags-changed" title='The "group-flags-changed" signal'>group-flags-changed</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a>
283306 "<a class="link" href="telepathy-glib-channel.html#TpChannel-group-members-changed" title='The "group-members-changed" signal'>group-members-changed</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a>
284307 "<a class="link" href="telepathy-glib-channel.html#TpChannel-group-members-changed-detailed" title='The "group-members-changed-detailed" signal'>group-members-changed-detailed</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a>
624647 Specifically, this implies that:
625648 </p>
626649 <p>
627 - <a class="link" href="TpChannelIface.html#TpChannelIface--channel-type" title='The "channel-type" property'><span class="type">"channel-type"</span></a> is set
628 - <a class="link" href="TpChannelIface.html#TpChannelIface--handle-type" title='The "handle-type" property'><span class="type">"handle-type"</span></a> and <a class="link" href="TpChannelIface.html#TpChannelIface--handle" title='The "handle" property'><span class="type">"handle"</span></a> are set
629 - any extra interfaces will have been set up in TpProxy (i.e.
630 <a class="link" href="telepathy-glib-proxy.html#TpProxy--interfaces" title='The "interfaces" property'><span class="type">"interfaces"</span></a> contains at least all extra Channel interfaces)
650 </p>
651 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
652 <li class="listitem"><p><a class="link" href="TpChannelIface.html#TpChannelIface--channel-type" title='The "channel-type" property'><span class="type">"channel-type"</span></a> is set</p></li>
653 <li class="listitem"><p><a class="link" href="TpChannelIface.html#TpChannelIface--handle-type" title='The "handle-type" property'><span class="type">"handle-type"</span></a> and <a class="link" href="TpChannelIface.html#TpChannelIface--handle" title='The "handle" property'><span class="type">"handle"</span></a> are set</p></li>
654 <li class="listitem"><p>any extra interfaces will have been set up in TpProxy (i.e.
655 <a class="link" href="telepathy-glib-proxy.html#TpProxy--interfaces" title='The "interfaces" property'><span class="type">"interfaces"</span></a> contains at least all extra Channel interfaces)</p></li>
656 </ul></div>
657 <p>
631658 </p>
632659 <p>
633660 (These are a subset of the guarantees offered by the older
641668 <a class="link" href="telepathy-glib-proxy.html#tp-proxy-prepare-async" title="tp_proxy_prepare_async ()"><code class="function">tp_proxy_prepare_async()</code></a> function, and waiting for it to callback.
642669 </p>
643670 <p class="since">Since 0.11.3</p>
671 </div>
672 <hr>
673 <div class="refsect2">
674 <a name="TP-CHANNEL-FEATURE-CONTACTS:CAPS"></a><h3>TP_CHANNEL_FEATURE_CONTACTS</h3>
675 <pre class="programlisting">#define TP_CHANNEL_FEATURE_CONTACTS</pre>
676 <p>
677 Expands to a call to a function that returns a quark representing the
678 Contacts features of a TpChannel.
679 </p>
680 <p>
681 When this feature is prepared, the <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> objects of this channel are
682 guaranteed to have all of the features previously passed to
683 <a class="link" href="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-contact-features" title="tp_simple_client_factory_add_contact_features ()"><code class="function">tp_simple_client_factory_add_contact_features()</code></a> prepared.
684 </p>
685 <p>
686 On older connection managers, this feature may fail to prepare.
687 </p>
688 <p>
689 One can ask for a feature to be prepared using the
690 <a class="link" href="telepathy-glib-proxy.html#tp-proxy-prepare-async" title="tp_proxy_prepare_async ()"><code class="function">tp_proxy_prepare_async()</code></a> function, and waiting for it to callback.
691 </p>
692 <p class="since">Since 0.15.6</p>
644693 </div>
645694 <hr>
646695 <div class="refsect2">
841890 </div>
842891 <hr>
843892 <div class="refsect2">
893 <a name="tp-channel-get-target-contact"></a><h3>tp_channel_get_target_contact ()</h3>
894 <pre class="programlisting"><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="returnvalue">TpContact</span></a> * tp_channel_get_target_contact (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);</pre>
895 <p>
896
897 </p>
898 <div class="variablelist"><table border="0">
899 <col align="left" valign="top">
900 <tbody>
901 <tr>
902 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
903 <td>a channel</td>
904 </tr>
905 <tr>
906 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
907 <td>the value of <a class="link" href="telepathy-glib-channel.html#TpChannel--target-contact" title='The "target-contact" property'><span class="type">"target-contact"</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
908 </td>
909 </tr>
910 </tbody>
911 </table></div>
912 <p class="since">Since 0.15.6</p>
913 </div>
914 <hr>
915 <div class="refsect2">
844916 <a name="tp-channel-get-requested"></a><h3>tp_channel_get_requested ()</h3>
845917 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> tp_channel_get_requested (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);</pre>
846918 <p>
910982 </tbody>
911983 </table></div>
912984 <p class="since">Since 0.11.15</p>
985 </div>
986 <hr>
987 <div class="refsect2">
988 <a name="tp-channel-get-initiator-contact"></a><h3>tp_channel_get_initiator_contact ()</h3>
989 <pre class="programlisting"><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="returnvalue">TpContact</span></a> * tp_channel_get_initiator_contact (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);</pre>
990 <p>
991
992 </p>
993 <div class="variablelist"><table border="0">
994 <col align="left" valign="top">
995 <tbody>
996 <tr>
997 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
998 <td>a channel</td>
999 </tr>
1000 <tr>
1001 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1002 <td>the value of <a class="link" href="telepathy-glib-channel.html#TpChannel--initiator-contact" title='The "initiator-contact" property'><span class="type">"initiator-contact"</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
1003 </td>
1004 </tr>
1005 </tbody>
1006 </table></div>
1007 <p class="since">Since 0.15.6</p>
9131008 </div>
9141009 <hr>
9151010 <div class="refsect2">
12831378 change-notification has been set up for those that can change:
12841379 </p>
12851380 <p>
1286 - the initial value of the <a class="link" href="telepathy-glib-channel.html#TpChannel--group-self-handle" title='The "group-self-handle" property'><span class="type">"group-self-handle"</span></a> property will
1287 have been fetched and change notification will have been set up
1288 - the initial value of the <a class="link" href="telepathy-glib-channel.html#TpChannel--group-flags" title='The "group-flags" property'><span class="type">"group-flags"</span></a> property will
1289 have been fetched and change notification will have been set up
1381 </p>
1382 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
1383 <li class="listitem"><p>the initial value of the <a class="link" href="telepathy-glib-channel.html#TpChannel--group-self-handle" title='The "group-self-handle" property'><span class="type">"group-self-handle"</span></a> property will
1384 have been fetched and change notification will have been set up</p></li>
1385 <li class="listitem"><p>the initial value of the <a class="link" href="telepathy-glib-channel.html#TpChannel--group-flags" title='The "group-flags" property'><span class="type">"group-flags"</span></a> property will
1386 have been fetched and change notification will have been set up</p></li>
1387 </ul></div>
1388 <p>
12901389 </p>
12911390 <p>
12921391 (These are the same guarantees offered for Group channels by the older
13011400 <hr>
13021401 <div class="refsect2">
13031402 <a name="tp-channel-group-get-flags"></a><h3>tp_channel_group_get_flags ()</h3>
1304 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpChannelGroupFlags" title="enum TpChannelGroupFlags"><span class="returnvalue">TpChannelGroupFlags</span></a> tp_channel_group_get_flags (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);</pre>
1403 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpChannelGroupFlags" title="enum TpChannelGroupFlags"><span class="returnvalue">TpChannelGroupFlags</span></a> tp_channel_group_get_flags (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);</pre>
13051404 <p>
13061405 Return the <a class="link" href="telepathy-glib-channel.html#TpChannel--group-flags" title='The "group-flags" property'><span class="type">"group-flags"</span></a> property (see the description
13071406 of that property for notes on validity).
13301429 Synopsis (see below for further explanation):
13311430 </p>
13321431 <p>
1333 - if <em class="parameter"><code>self</code></em> is not a group or <em class="parameter"><code>handle</code></em> is not a member of this channel,
1334 result is undefined;
1335 - if <a class="link" href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-GROUP:CAPS" title="TP_CHANNEL_FEATURE_GROUP"><code class="literal">TP_CHANNEL_FEATURE_GROUP</code></a> has not yet been prepared, result is
1336 undefined;
1337 - if <em class="parameter"><code>self</code></em> does not have flags that include
1432 </p>
1433 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
1434 <li class="listitem"><p>if <em class="parameter"><code>self</code></em> is not a group or <em class="parameter"><code>handle</code></em> is not a member of this channel,
1435 result is undefined;</p></li>
1436 <li class="listitem"><p>if <a class="link" href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-GROUP:CAPS" title="TP_CHANNEL_FEATURE_GROUP"><code class="literal">TP_CHANNEL_FEATURE_GROUP</code></a> has not yet been prepared, result is
1437 undefined;</p></li>
1438 <li class="listitem"><p>if <em class="parameter"><code>self</code></em> does not have flags that include
13381439 <a class="link" href="telepathy-glib-enums.html#TP-CHANNEL-GROUP-FLAG-PROPERTIES:CAPS"><code class="literal">TP_CHANNEL_GROUP_FLAG_PROPERTIES</code></a>,
1339 result is undefined;
1340 - if <em class="parameter"><code>handle</code></em> is channel-specific and its globally valid "owner" is known,
1341 return that owner;
1342 - if <em class="parameter"><code>handle</code></em> is channel-specific and its globally valid "owner" is unknown,
1343 return zero;
1344 - if <em class="parameter"><code>handle</code></em> is globally valid, return <em class="parameter"><code>handle</code></em> itself
1440 result is undefined;</p></li>
1441 <li class="listitem"><p>if <em class="parameter"><code>handle</code></em> is channel-specific and its globally valid "owner" is known,
1442 return that owner;</p></li>
1443 <li class="listitem"><p>if <em class="parameter"><code>handle</code></em> is channel-specific and its globally valid "owner" is unknown,
1444 return zero;</p></li>
1445 <li class="listitem"><p>if <em class="parameter"><code>handle</code></em> is globally valid, return <em class="parameter"><code>handle</code></em> itself</p></li>
1446 </ul></div>
1447 <p>
13451448 </p>
13461449 <p>
13471450 Some channels (those with flags that include
13911494 </div>
13921495 <hr>
13931496 <div class="refsect2">
1497 <a name="tp-channel-group-get-contact-owner"></a><h3>tp_channel_group_get_contact_owner ()</h3>
1498 <pre class="programlisting"><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="returnvalue">TpContact</span></a> * tp_channel_group_get_contact_owner (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>,
1499 <em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *contact</code></em>);</pre>
1500 <p>
1501 Synopsis (see below for further explanation):
1502 </p>
1503 <p>
1504 </p>
1505 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
1506 <li class="listitem"><p>if <em class="parameter"><code>self</code></em> is not a group or <em class="parameter"><code>contact</code></em> is not a member of this channel,
1507 result is undefined;</p></li>
1508 <li class="listitem"><p>if <a class="link" href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-CONTACTS:CAPS" title="TP_CHANNEL_FEATURE_CONTACTS"><code class="literal">TP_CHANNEL_FEATURE_CONTACTS</code></a> has not yet been prepared, result is
1509 undefined;</p></li>
1510 <li class="listitem"><p>if <em class="parameter"><code>self</code></em> does not have flags that include
1511 <a class="link" href="telepathy-glib-enums.html#TP-CHANNEL-GROUP-FLAG-PROPERTIES:CAPS"><code class="literal">TP_CHANNEL_GROUP_FLAG_PROPERTIES</code></a>,
1512 result is undefined;</p></li>
1513 <li class="listitem"><p>if <em class="parameter"><code>contact</code></em> is channel-specific and its globally valid "owner" is known,
1514 return that owner;</p></li>
1515 <li class="listitem"><p>if <em class="parameter"><code>contact</code></em> is channel-specific and its globally valid "owner" is unknown,
1516 return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>;</p></li>
1517 <li class="listitem"><p>if <em class="parameter"><code>contact</code></em> is globally valid, return <em class="parameter"><code>contact</code></em> itself</p></li>
1518 </ul></div>
1519 <p>
1520 </p>
1521 <p>
1522 Some channels (those with flags that include
1523 <a class="link" href="telepathy-glib-enums.html#TP-CHANNEL-GROUP-FLAG-CHANNEL-SPECIFIC-HANDLES:CAPS"><code class="literal">TP_CHANNEL_GROUP_FLAG_CHANNEL_SPECIFIC_HANDLES</code></a>) have a concept of
1524 "channel-specific contacts". These are contacts that only have meaning within
1525 the context of the channel - for instance, in XMPP Multi-User Chat,
1526 participants in a chatroom are identified by an in-room JID consisting
1527 of the JID of the chatroom plus a local nickname.
1528 </p>
1529 <p>
1530 Depending on the protocol and configuration, it might be possible to find
1531 out what globally valid contact (i.e. a contact that you could add to
1532 your contact list) "owns" a channel-specific contact. For instance, in
1533 most XMPP MUC chatrooms, normal users cannot see what global JID
1534 corresponds to an in-room JID, but moderators can.
1535 </p>
1536 <p>
1537 This is further complicated by the fact that channels with channel-specific
1538 contacts can sometimes have members with globally valid contacts (for
1539 instance, if you invite someone to an XMPP MUC using their globally valid
1540 JID, you would expect to see the contact representing that JID in the
1541 Group's remote-pending set).
1542 </p>
1543 <div class="variablelist"><table border="0">
1544 <col align="left" valign="top">
1545 <tbody>
1546 <tr>
1547 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
1548 <td>a channel</td>
1549 </tr>
1550 <tr>
1551 <td><p><span class="term"><em class="parameter"><code>contact</code></em> :</span></p></td>
1552 <td>a contact which is a member of this channel</td>
1553 </tr>
1554 <tr>
1555 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1556 <td>the global contact that owns the given contact,
1557 or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
1558 </td>
1559 </tr>
1560 </tbody>
1561 </table></div>
1562 <p class="since">Since 0.15.6</p>
1563 </div>
1564 <hr>
1565 <div class="refsect2">
13941566 <a name="tp-channel-group-get-self-handle"></a><h3>tp_channel_group_get_self_handle ()</h3>
13951567 <pre class="programlisting"><a class="link" href="telepathy-glib-handle.html#TpHandle" title="TpHandle"><span class="returnvalue">TpHandle</span></a> tp_channel_group_get_self_handle (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);</pre>
13961568 <p>
14141586 </div>
14151587 <hr>
14161588 <div class="refsect2">
1589 <a name="tp-channel-group-get-self-contact"></a><h3>tp_channel_group_get_self_contact ()</h3>
1590 <pre class="programlisting"><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="returnvalue">TpContact</span></a> * tp_channel_group_get_self_contact (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);</pre>
1591 <p>
1592
1593 </p>
1594 <div class="variablelist"><table border="0">
1595 <col align="left" valign="top">
1596 <tbody>
1597 <tr>
1598 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
1599 <td>a channel</td>
1600 </tr>
1601 <tr>
1602 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1603 <td>the value of <a class="link" href="telepathy-glib-channel.html#TpChannel--group-self-contact" title='The "group-self-contact" property'><span class="type">"group-self-contact"</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
1604 </td>
1605 </tr>
1606 </tbody>
1607 </table></div>
1608 <p class="since">Since 0.15.6</p>
1609 </div>
1610 <hr>
1611 <div class="refsect2">
1612 <a name="tp-channel-group-get-members"></a><h3>tp_channel_group_get_members ()</h3>
1613 <pre class="programlisting">const <a class="link" href="TpIntset.html" title="TpIntset"><span class="returnvalue">TpIntset</span></a> * tp_channel_group_get_members (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);</pre>
1614 <p>
1615 If <em class="parameter"><code>self</code></em> is a group and the <a class="link" href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-GROUP:CAPS" title="TP_CHANNEL_FEATURE_GROUP"><code class="literal">TP_CHANNEL_FEATURE_GROUP</code></a> feature has been
1616 prepared, return a <a class="link" href="TpIntset.html" title="TpIntset"><span class="type">TpIntset</span></a> containing its members.
1617 </p>
1618 <p>
1619 If <em class="parameter"><code>self</code></em> is a group but <a class="link" href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-GROUP:CAPS" title="TP_CHANNEL_FEATURE_GROUP"><code class="literal">TP_CHANNEL_FEATURE_GROUP</code></a> has not been prepared,
1620 the result may either be a set of members, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
1621 </p>
1622 <p>
1623 If <em class="parameter"><code>self</code></em> is not a group, return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
1624 </p>
1625 <div class="variablelist"><table border="0">
1626 <col align="left" valign="top">
1627 <tbody>
1628 <tr>
1629 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
1630 <td>a channel</td>
1631 </tr>
1632 <tr>
1633 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1634 <td>the members, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
1635 </td>
1636 </tr>
1637 </tbody>
1638 </table></div>
1639 <p class="since">Since 0.7.12</p>
1640 </div>
1641 <hr>
1642 <div class="refsect2">
1643 <a name="tp-channel-group-dup-members-contacts"></a><h3>tp_channel_group_dup_members_contacts ()</h3>
1644 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="returnvalue">GPtrArray</span></a> * tp_channel_group_dup_members_contacts
1645 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);</pre>
1646 <p>
1647 If <em class="parameter"><code>self</code></em> is a group and the <a class="link" href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-CONTACTS:CAPS" title="TP_CHANNEL_FEATURE_CONTACTS"><code class="literal">TP_CHANNEL_FEATURE_CONTACTS</code></a> feature has been
1648 prepared, return a <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> containing its members.
1649 </p>
1650 <p>
1651 If <em class="parameter"><code>self</code></em> is a group but <a class="link" href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-CONTACTS:CAPS" title="TP_CHANNEL_FEATURE_CONTACTS"><code class="literal">TP_CHANNEL_FEATURE_CONTACTS</code></a> has not been prepared,
1652 the result may either be a set of members, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
1653 </p>
1654 <p>
1655 If <em class="parameter"><code>self</code></em> is not a group, return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
1656 </p>
1657 <div class="variablelist"><table border="0">
1658 <col align="left" valign="top">
1659 <tbody>
1660 <tr>
1661 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
1662 <td>a channel</td>
1663 </tr>
1664 <tr>
1665 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1666 <td>a new <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> of <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a>, free it with <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#g-ptr-array-unref"><code class="function">g_ptr_array_unref()</code></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> GLib.PtrArray][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> TelepathyGLib.Contact]</span>
1667 </td>
1668 </tr>
1669 </tbody>
1670 </table></div>
1671 <p class="since">Since 0.15.6</p>
1672 </div>
1673 <hr>
1674 <div class="refsect2">
14171675 <a name="tp-channel-group-get-local-pending"></a><h3>tp_channel_group_get_local_pending ()</h3>
14181676 <pre class="programlisting">const <a class="link" href="TpIntset.html" title="TpIntset"><span class="returnvalue">TpIntset</span></a> * tp_channel_group_get_local_pending (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);</pre>
14191677 <p>
14451703 </div>
14461704 <hr>
14471705 <div class="refsect2">
1448 <a name="tp-channel-group-get-members"></a><h3>tp_channel_group_get_members ()</h3>
1449 <pre class="programlisting">const <a class="link" href="TpIntset.html" title="TpIntset"><span class="returnvalue">TpIntset</span></a> * tp_channel_group_get_members (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);</pre>
1450 <p>
1451 If <em class="parameter"><code>self</code></em> is a group and the <a class="link" href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-GROUP:CAPS" title="TP_CHANNEL_FEATURE_GROUP"><code class="literal">TP_CHANNEL_FEATURE_GROUP</code></a> feature has been
1452 prepared, return a <a class="link" href="TpIntset.html" title="TpIntset"><span class="type">TpIntset</span></a> containing its members.
1453 </p>
1454 <p>
1455 If <em class="parameter"><code>self</code></em> is a group but <a class="link" href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-GROUP:CAPS" title="TP_CHANNEL_FEATURE_GROUP"><code class="literal">TP_CHANNEL_FEATURE_GROUP</code></a> has not been prepared,
1456 the result may either be a set of members, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
1706 <a name="tp-channel-group-dup-local-pending-contacts"></a><h3>tp_channel_group_dup_local_pending_contacts ()</h3>
1707 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="returnvalue">GPtrArray</span></a> * tp_channel_group_dup_local_pending_contacts
1708 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);</pre>
1709 <p>
1710 If <em class="parameter"><code>self</code></em> is a group and the <a class="link" href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-CONTACTS:CAPS" title="TP_CHANNEL_FEATURE_CONTACTS"><code class="literal">TP_CHANNEL_FEATURE_CONTACTS</code></a> feature has been
1711 prepared, return a <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> containing its local-pending members.
1712 </p>
1713 <p>
1714 If <em class="parameter"><code>self</code></em> is a group but <a class="link" href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-CONTACTS:CAPS" title="TP_CHANNEL_FEATURE_CONTACTS"><code class="literal">TP_CHANNEL_FEATURE_CONTACTS</code></a> has not been prepared,
1715 the result may either be a set of local-pending members, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
14571716 </p>
14581717 <p>
14591718 If <em class="parameter"><code>self</code></em> is not a group, return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
14671726 </tr>
14681727 <tr>
14691728 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1470 <td>the members, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
1471 </td>
1472 </tr>
1473 </tbody>
1474 </table></div>
1475 <p class="since">Since 0.7.12</p>
1729 <td>a new <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> of <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a>, free it with <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#g-ptr-array-unref"><code class="function">g_ptr_array_unref()</code></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> GLib.PtrArray][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> TelepathyGLib.Contact]</span>
1730 </td>
1731 </tr>
1732 </tbody>
1733 </table></div>
1734 <p class="since">Since 0.15.6</p>
14761735 </div>
14771736 <hr>
14781737 <div class="refsect2">
15041763 </tbody>
15051764 </table></div>
15061765 <p class="since">Since 0.7.12</p>
1766 </div>
1767 <hr>
1768 <div class="refsect2">
1769 <a name="tp-channel-group-dup-remote-pending-contacts"></a><h3>tp_channel_group_dup_remote_pending_contacts ()</h3>
1770 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="returnvalue">GPtrArray</span></a> * tp_channel_group_dup_remote_pending_contacts
1771 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);</pre>
1772 <p>
1773 If <em class="parameter"><code>self</code></em> is a group and the <a class="link" href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-CONTACTS:CAPS" title="TP_CHANNEL_FEATURE_CONTACTS"><code class="literal">TP_CHANNEL_FEATURE_CONTACTS</code></a> feature has been
1774 prepared, return a <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> containing its remote-pending members.
1775 </p>
1776 <p>
1777 If <em class="parameter"><code>self</code></em> is a group but <a class="link" href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-CONTACTS:CAPS" title="TP_CHANNEL_FEATURE_CONTACTS"><code class="literal">TP_CHANNEL_FEATURE_CONTACTS</code></a> has not been prepared,
1778 the result may either be a set of remote-pending members, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
1779 </p>
1780 <p>
1781 If <em class="parameter"><code>self</code></em> is not a group, return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
1782 </p>
1783 <div class="variablelist"><table border="0">
1784 <col align="left" valign="top">
1785 <tbody>
1786 <tr>
1787 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
1788 <td>a channel</td>
1789 </tr>
1790 <tr>
1791 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1792 <td>a new <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> of <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a>, free it with <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#g-ptr-array-unref"><code class="function">g_ptr_array_unref()</code></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> GLib.PtrArray][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> TelepathyGLib.Contact]</span>
1793 </td>
1794 </tr>
1795 </tbody>
1796 </table></div>
1797 <p class="since">Since 0.15.6</p>
15071798 </div>
15081799 <hr>
15091800 <div class="refsect2">
15631854 </tbody>
15641855 </table></div>
15651856 <p class="since">Since 0.7.12</p>
1857 </div>
1858 <hr>
1859 <div class="refsect2">
1860 <a name="tp-channel-group-get-local-pending-contact-info"></a><h3>tp_channel_group_get_local_pending_contact_info ()</h3>
1861 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> tp_channel_group_get_local_pending_contact_info
1862 (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>,
1863 <em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *local_pending</code></em>,
1864 <em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> **actor</code></em>,
1865 <em class="parameter"><code><a class="link" href="telepathy-glib-enums.html#TpChannelGroupChangeReason" title="enum TpChannelGroupChangeReason"><span class="type">TpChannelGroupChangeReason</span></a> *reason</code></em>,
1866 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **message</code></em>);</pre>
1867 <p>
1868 If <em class="parameter"><code>local_pending</code></em> is actually a local-pending contact,
1869 write additional information into <em class="parameter"><code>actor</code></em>, <em class="parameter"><code>reason</code></em> and <em class="parameter"><code>message</code></em> and return
1870 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>. The contact and message are not referenced or copied, and can only be
1871 assumed to remain valid until the main loop is re-entered.
1872 </p>
1873 <p>
1874 If <em class="parameter"><code>local_pending</code></em> is not the handle of a local-pending contact,
1875 write <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> into <em class="parameter"><code>actor</code></em>, <a class="link" href="telepathy-glib-enums.html#TP-CHANNEL-GROUP-CHANGE-REASON-NONE:CAPS"><code class="literal">TP_CHANNEL_GROUP_CHANGE_REASON_NONE</code></a> into <em class="parameter"><code>reason</code></em>
1876 and "" into <em class="parameter"><code>message</code></em>, and return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.
1877 </p>
1878 <div class="variablelist"><table border="0">
1879 <col align="left" valign="top">
1880 <tbody>
1881 <tr>
1882 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
1883 <td>a channel</td>
1884 </tr>
1885 <tr>
1886 <td><p><span class="term"><em class="parameter"><code>local_pending</code></em> :</span></p></td>
1887 <td>the <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> of a local-pending contact about whom more
1888 information is needed</td>
1889 </tr>
1890 <tr>
1891 <td><p><span class="term"><em class="parameter"><code>actor</code></em> :</span></p></td>
1892 <td>either <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> or a location to
1893 return the contact who requested the change. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
1894 </td>
1895 </tr>
1896 <tr>
1897 <td><p><span class="term"><em class="parameter"><code>reason</code></em> :</span></p></td>
1898 <td>either <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> or a location to return the reason
1899 for the change. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
1900 </td>
1901 </tr>
1902 <tr>
1903 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
1904 <td>either <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> or a location to
1905 return the
1906 user-supplied message. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
1907 </td>
1908 </tr>
1909 <tr>
1910 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1911 <td>
1912 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the contact is in fact local-pending</td>
1913 </tr>
1914 </tbody>
1915 </table></div>
1916 <p class="since">Since 0.15.6</p>
15661917 </div>
15671918 <hr>
15681919 <div class="refsect2">
27003051 </div>
27013052 <hr>
27023053 <div class="refsect2">
3054 <a name="TpChannel--group-self-contact"></a><h3>The <code class="literal">"group-self-contact"</code> property</h3>
3055 <pre class="programlisting"> "group-self-contact" <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a>* : Read</pre>
3056 <p>
3057 If this channel is a group and <a class="link" href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-CONTACTS:CAPS" title="TP_CHANNEL_FEATURE_CONTACTS"><code class="literal">TP_CHANNEL_FEATURE_CONTACTS</code></a> has been
3058 prepared, and the user is a member of the group, the <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a>
3059 representing them in this group.
3060 </p>
3061 <p>
3062 Otherwise, the result may be either a contact representing the user,
3063 or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
3064 </p>
3065 <p>
3066 Change notification is via notify::group-self-contact.
3067 </p>
3068 <p class="since">Since 0.15.6</p>
3069 </div>
3070 <hr>
3071 <div class="refsect2">
27033072 <a name="TpChannel--group-self-handle"></a><h3>The <code class="literal">"group-self-handle"</code> property</h3>
27043073 <pre class="programlisting"> "group-self-handle" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read</pre>
27053074 <p>
27393108 with no TargetID D-Bus property had TargetHandleType <a class="link" href="telepathy-glib-enums.html#TP-HANDLE-TYPE-NONE:CAPS"><code class="literal">TP_HANDLE_TYPE_NONE</code></a>.
27403109 </p>
27413110 <p>Default value: ""</p>
3111 </div>
3112 <hr>
3113 <div class="refsect2">
3114 <a name="TpChannel--initiator-contact"></a><h3>The <code class="literal">"initiator-contact"</code> property</h3>
3115 <pre class="programlisting"> "initiator-contact" <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a>* : Read</pre>
3116 <p>
3117 The <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> of the initiator of this channel, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is no
3118 particular initiator.
3119 </p>
3120 <p>
3121 If the channel was initiated by a remote contact, this represents
3122 that contact, and <a class="link" href="telepathy-glib-channel.html#TpChannel--requested" title='The "requested" property'><span class="type">"requested"</span></a> will be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>. For instance,
3123 for an incoming call this property indicates the caller, and for a
3124 chatroom invitation this property indicates who sent the invitation.
3125 </p>
3126 <p>
3127 If the channel was requested by the local user, <a class="link" href="telepathy-glib-channel.html#TpChannel--requested" title='The "requested" property'><span class="type">"requested"</span></a>
3128 will be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, and this property may be the <a class="link" href="telepathy-glib-channel.html#TpChannel--group-self-contact" title='The "group-self-contact" property'><span class="type">"group-self-contact"</span></a>
3129 or <a class="link" href="telepathy-glib-connection.html#TpConnection--self-contact" title='The "self-contact" property'><span class="type">"self-contact"</span></a>.
3130 </p>
3131 <p>
3132 If the channel appeared for some other reason (for instance as a
3133 side-effect of connecting to the server), this property may be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
3134 </p>
3135 <p>
3136 This is not guaranteed to be set until <a class="link" href="telepathy-glib-proxy.html#tp-proxy-prepare-async" title="tp_proxy_prepare_async ()"><code class="function">tp_proxy_prepare_async()</code></a> has
3137 finished preparing <a class="link" href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-CONTACTS:CAPS" title="TP_CHANNEL_FEATURE_CONTACTS"><code class="literal">TP_CHANNEL_FEATURE_CONTACTS</code></a>; until then, it may be
3138 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
3139 </p>
3140 <p class="since">Since 0.15.6</p>
27423141 </div>
27433142 <hr>
27443143 <div class="refsect2">
28303229 <p>Default value: FALSE</p>
28313230 <p class="since">Since 0.11.15</p>
28323231 </div>
3232 <hr>
3233 <div class="refsect2">
3234 <a name="TpChannel--target-contact"></a><h3>The <code class="literal">"target-contact"</code> property</h3>
3235 <pre class="programlisting"> "target-contact" <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a>* : Read</pre>
3236 <p>
3237 If this channel is for communication with a single contact (that is,
3238 <a class="link" href="TpChannelIface.html#TpChannelIface--handle-type" title='The "handle-type" property'><span class="type">"handle-type"</span></a> is <a class="link" href="telepathy-glib-enums.html#TP-HANDLE-TYPE-CONTACT:CAPS"><code class="literal">TP_HANDLE_TYPE_CONTACT</code></a>), then a <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a>
3239 representing the remote contact. For chat rooms, contact search channels and
3240 other channels without a single remote contact, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
3241 </p>
3242 <p>
3243 This is not guaranteed to be set until <a class="link" href="telepathy-glib-proxy.html#tp-proxy-prepare-async" title="tp_proxy_prepare_async ()"><code class="function">tp_proxy_prepare_async()</code></a> has
3244 finished preparing <a class="link" href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-CONTACTS:CAPS" title="TP_CHANNEL_FEATURE_CONTACTS"><code class="literal">TP_CHANNEL_FEATURE_CONTACTS</code></a>; until then, it may be
3245 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
3246 </p>
3247 <p class="since">Since 0.15.6</p>
3248 </div>
28333249 </div>
28343250 <div class="refsect1">
28353251 <a name="telepathy-glib-channel.signal-details"></a><h2>Signal Details</h2>
28653281 </tbody>
28663282 </table></div>
28673283 <p class="since">Since 0.11.3</p>
3284 </div>
3285 <hr>
3286 <div class="refsect2">
3287 <a name="TpChannel-group-contacts-changed"></a><h3>The <code class="literal">"group-contacts-changed"</code> signal</h3>
3288 <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self,
3289 <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> *added,
3290 <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> *removed,
3291 <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> *local_pending,
3292 <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> *remote_pending,
3293 <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *actor,
3294 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a></pre>
3295 <p>
3296 Emitted when the group members change in a Group channel.
3297 </p>
3298 <p>
3299 This is not guaranteed to be emitted until <a class="link" href="telepathy-glib-proxy.html#tp-proxy-prepare-async" title="tp_proxy_prepare_async ()"><code class="function">tp_proxy_prepare_async()</code></a> has
3300 finished preparing <a class="link" href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-CONTACTS:CAPS" title="TP_CHANNEL_FEATURE_CONTACTS"><code class="literal">TP_CHANNEL_FEATURE_CONTACTS</code></a>; until then, it may be
3301 omitted.
3302 </p>
3303 <div class="variablelist"><table border="0">
3304 <col align="left" valign="top">
3305 <tbody>
3306 <tr>
3307 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
3308 <td>a channel</td>
3309 </tr>
3310 <tr>
3311 <td><p><span class="term"><em class="parameter"><code>added</code></em> :</span></p></td>
3312 <td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> of <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> containing the full members added. <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> GLib.PtrArray][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> TelepathyGLib.Contact]</span>
3313 </td>
3314 </tr>
3315 <tr>
3316 <td><p><span class="term"><em class="parameter"><code>removed</code></em> :</span></p></td>
3317 <td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> of <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> containing the members (full, local-pending or
3318 remote-pending) removed. <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> GLib.PtrArray][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> TelepathyGLib.Contact]</span>
3319 </td>
3320 </tr>
3321 <tr>
3322 <td><p><span class="term"><em class="parameter"><code>local_pending</code></em> :</span></p></td>
3323 <td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> of <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> containing the local-pending members added. <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> GLib.PtrArray][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> TelepathyGLib.Contact]</span>
3324 </td>
3325 </tr>
3326 <tr>
3327 <td><p><span class="term"><em class="parameter"><code>remote_pending</code></em> :</span></p></td>
3328 <td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> of <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> containing the remote-pending members added. <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> GLib.PtrArray][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> TelepathyGLib.Contact]</span>
3329 </td>
3330 </tr>
3331 <tr>
3332 <td><p><span class="term"><em class="parameter"><code>actor</code></em> :</span></p></td>
3333 <td>a <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> for the "actor" handle in <em class="parameter"><code>details</code></em>
3334 </td>
3335 </tr>
3336 <tr>
3337 <td><p><span class="term"><em class="parameter"><code>details</code></em> :</span></p></td>
3338 <td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> mapping (gchar *) to <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> containing details
3339 about the change, as described in the specification of the
3340 MembersChangedDetailed signal. <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> GLib.HashTable][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8 GObject.Value]</span>
3341 </td>
3342 </tr>
3343 <tr>
3344 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
3345 <td>user data set when the signal handler was connected.</td>
3346 </tr>
3347 </tbody>
3348 </table></div>
3349 <p class="since">Since 0.15.6</p>
28683350 </div>
28693351 <hr>
28703352 <div class="refsect2">
30333515 </div>
30343516 <div class="footer">
30353517 <hr>
3036 Generated by GTK-Doc V1.17</div>
3518 Generated by GTK-Doc V1.17.1</div>
30373519 </body>
30383520 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-channel-auth.html" title="Channel Authentication interfaces">
99 <link rel="next" href="telepathy-glib-cli-service-point.html" title="Connection and Channel ServicePoint interfaces">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
169169 </div>
170170 <div class="footer">
171171 <hr>
172 Generated by GTK-Doc V1.17</div>
172 Generated by GTK-Doc V1.17.1</div>
173173 </body>
174174 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-cli-anonymity.html" title="Connection and Channel Anonymity interfaces">
99 <link rel="next" href="telepathy-glib-media-interfaces.html" title="TpMediaSessionHandler, TpMediaStreamHandler">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
276276 </div>
277277 <div class="footer">
278278 <hr>
279 Generated by GTK-Doc V1.17</div>
279 Generated by GTK-Doc V1.17.1</div>
280280 </body>
281281 </html>
55 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
66 <link rel="home" href="index.html" title="telepathy-glib API Reference Manual">
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
8 <link rel="prev" href="telepathy-glib-stream-tube-connection.html" title="TpStreamTubeConnection">
8 <link rel="prev" href="telepathy-glib-dbus-tube-channel.html" title="TpDBusTubeChannel">
99 <link rel="next" href="telepathy-glib-basic-proxy-factory.html" title="TpBasicProxyFactory">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
1414 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
1515 <tr valign="middle">
16 <td><a accesskey="p" href="telepathy-glib-stream-tube-connection.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
16 <td><a accesskey="p" href="telepathy-glib-dbus-tube-channel.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
1717 <td><a accesskey="u" href="ch-client.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
1818 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
1919 <th width="100%" align="center">telepathy-glib API Reference Manual</th>
257257 </div>
258258 <div class="footer">
259259 <hr>
260 Generated by GTK-Doc V1.17</div>
260 Generated by GTK-Doc V1.17.1</div>
261261 </body>
262262 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-channel-request.html" title="TpChannelRequest">
99 <link rel="next" href="telepathy-glib-account-channel-request.html" title="TpAccountChannelRequest">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
801801 </div>
802802 <div class="footer">
803803 <hr>
804 Generated by GTK-Doc V1.17</div>
804 Generated by GTK-Doc V1.17.1</div>
805805 </body>
806806 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-capabilities.html" title="TpCapabilities">
99 <link rel="next" href="telepathy-glib-connection-avatars.html" title="Connection Avatars interface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
924924 </div>
925925 <div class="footer">
926926 <hr>
927 Generated by GTK-Doc V1.17</div>
927 Generated by GTK-Doc V1.17.1</div>
928928 </body>
929929 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-connection-aliasing.html" title="Connection Aliasing interface">
99 <link rel="next" href="telepathy-glib-connection-balance.html" title="Connection Balance interface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
17261726 </div>
17271727 <div class="footer">
17281728 <hr>
1729 Generated by GTK-Doc V1.17</div>
1729 Generated by GTK-Doc V1.17.1</div>
17301730 </body>
17311731 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-connection-avatars.html" title="Connection Avatars interface">
99 <link rel="next" href="telepathy-glib-connection-client-types.html" title="Connection ClientTypes interface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
168168 </div>
169169 <div class="footer">
170170 <hr>
171 Generated by GTK-Doc V1.17</div>
171 Generated by GTK-Doc V1.17.1</div>
172172 </body>
173173 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-connection-contact-list.html" title="Connection ContactList, ContactGroups and ContactBlocking interfaces">
99 <link rel="next" href="telepathy-glib-connection-location.html" title="Connection Location interface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
782782 </div>
783783 <div class="footer">
784784 <hr>
785 Generated by GTK-Doc V1.17</div>
785 Generated by GTK-Doc V1.17.1</div>
786786 </body>
787787 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-connection-presence.html" title="Connection Presence interface">
99 <link rel="next" href="telepathy-glib-connection-mail.html" title="Connection MailNotification interface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
163163 </div>
164164 <div class="footer">
165165 <hr>
166 Generated by GTK-Doc V1.17</div>
166 Generated by GTK-Doc V1.17.1</div>
167167 </body>
168168 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-connection-balance.html" title="Connection Balance interface">
99 <link rel="next" href="telepathy-glib-connection-contacts.html" title="Connection Contacts interface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
421421 </div>
422422 <div class="footer">
423423 <hr>
424 Generated by GTK-Doc V1.17</div>
424 Generated by GTK-Doc V1.17.1</div>
425425 </body>
426426 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-connection-contacts.html" title="Connection Contacts interface">
99 <link rel="next" href="telepathy-glib-connection-contact-list.html" title="Connection ContactList, ContactGroups and ContactBlocking interfaces">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
935935 </div>
936936 <div class="footer">
937937 <hr>
938 Generated by GTK-Doc V1.17</div>
938 Generated by GTK-Doc V1.17.1</div>
939939 </body>
940940 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-connection-contact-info.html" title="Connection ContactInfo interface">
99 <link rel="next" href="telepathy-glib-connection-caps.html" title="Connection ContactCapabilities and Capabilities interfaces">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
28622862 </div>
28632863 <div class="footer">
28642864 <hr>
2865 Generated by GTK-Doc V1.17</div>
2865 Generated by GTK-Doc V1.17.1</div>
28662866 </body>
28672867 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-connection-client-types.html" title="Connection ClientTypes interface">
99 <link rel="next" href="telepathy-glib-connection-contact-info.html" title="Connection ContactInfo interface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
281281 </div>
282282 <div class="footer">
283283 <hr>
284 Generated by GTK-Doc V1.17</div>
284 Generated by GTK-Doc V1.17.1</div>
285285 </body>
286286 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-connection-caps.html" title="Connection ContactCapabilities and Capabilities interfaces">
99 <link rel="next" href="telepathy-glib-connection-requests.html" title="Connection Requests interface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
543543 </div>
544544 <div class="footer">
545545 <hr>
546 Generated by GTK-Doc V1.17</div>
546 Generated by GTK-Doc V1.17.1</div>
547547 </body>
548548 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-connection-cellular.html" title="Connection Cellular interface">
99 <link rel="next" href="telepathy-glib-connection-powersaving.html" title="Connection PowerSaving interface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
532532 </div>
533533 <div class="footer">
534534 <hr>
535 Generated by GTK-Doc V1.17</div>
535 Generated by GTK-Doc V1.17.1</div>
536536 </body>
537537 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="ch-client.html" title="Client-side proxies">
99 <link rel="next" href="telepathy-glib-protocol.html" title="TpProtocol">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
7474 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>,
7575 <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *weak_object</code></em>);
7676 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="telepathy-glib-connection-manager.html#tp-connection-manager-is-ready" title="tp_connection_manager_is_ready ()">tp_connection_manager_is_ready</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-connection-manager.html#TpConnectionManager"><span class="type">TpConnectionManager</span></a> *self</code></em>);
77 enum <a class="link" href="telepathy-glib-connection-manager.html#TpCMInfoSource">TpCMInfoSource</a>;
77 enum <a class="link" href="telepathy-glib-connection-manager.html#TpCMInfoSource-enum" title="enum TpCMInfoSource">TpCMInfoSource</a>;
7878 #define <a class="link" href="telepathy-glib-connection-manager.html#TP-TYPE-CM-INFO-SOURCE:CAPS" title="TP_TYPE_CM_INFO_SOURCE">TP_TYPE_CM_INFO_SOURCE</a>
7979 <a class="link" href="telepathy-glib-connection-manager.html#TpCMInfoSource"><span class="returnvalue">TpCMInfoSource</span></a> <a class="link" href="telepathy-glib-connection-manager.html#tp-connection-manager-get-info-source" title="tp_connection_manager_get_info_source ()">tp_connection_manager_get_info_source</a>
8080 (<em class="parameter"><code><a class="link" href="telepathy-glib-connection-manager.html#TpConnectionManager"><span class="type">TpConnectionManager</span></a> *self</code></em>);
677677 </div>
678678 <hr>
679679 <div class="refsect2">
680 <a name="TpCMInfoSource"></a><h3>enum TpCMInfoSource</h3>
680 <a name="TpCMInfoSource-enum"></a><h3>enum TpCMInfoSource</h3>
681681 <pre class="programlisting">typedef enum
682682 {
683683 TP_CM_INFO_SOURCE_NONE,
22822282 </div>
22832283 <div class="footer">
22842284 <hr>
2285 Generated by GTK-Doc V1.17</div>
2285 Generated by GTK-Doc V1.17.1</div>
22862286 </body>
22872287 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-connection-mail.html" title="Connection MailNotification interface">
99 <link rel="next" href="telepathy-glib-contact-search.html" title="TpContactSearch">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
280280 </div>
281281 <div class="footer">
282282 <hr>
283 Generated by GTK-Doc V1.17</div>
283 Generated by GTK-Doc V1.17.1</div>
284284 </body>
285285 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-connection-simple-presence.html" title="Connection SimplePresence interface">
99 <link rel="next" href="telepathy-glib-connection-cellular.html" title="Connection Cellular interface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
16531653 </div>
16541654 <div class="footer">
16551655 <hr>
1656 Generated by GTK-Doc V1.17</div>
1656 Generated by GTK-Doc V1.17.1</div>
16571657 </body>
16581658 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-connection-location.html" title="Connection Location interface">
99 <link rel="next" href="telepathy-glib-connection-simple-presence.html" title="Connection SimplePresence interface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
702702 </div>
703703 <div class="footer">
704704 <hr>
705 Generated by GTK-Doc V1.17</div>
705 Generated by GTK-Doc V1.17.1</div>
706706 </body>
707707 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-connection-requests.html" title="Connection Requests interface">
99 <link rel="next" href="telepathy-glib-connection-presence.html" title="Connection Presence interface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
561561 </div>
562562 <div class="footer">
563563 <hr>
564 Generated by GTK-Doc V1.17</div>
564 Generated by GTK-Doc V1.17.1</div>
565565 </body>
566566 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-protocol.html" title="TpProtocol">
99 <link rel="next" href="telepathy-glib-contact.html" title="TpContact">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
155155 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **protocol</code></em>,
156156 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **cm_name</code></em>);
157157 <a class="link" href="telepathy-glib-capabilities.html#TpCapabilities"><span class="returnvalue">TpCapabilities</span></a> * <a class="link" href="telepathy-glib-connection.html#tp-connection-get-capabilities" title="tp_connection_get_capabilities ()">tp_connection_get_capabilities</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a> *self</code></em>);
158 <a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements"><span class="returnvalue">TpAvatarRequirements</span></a> * <a class="link" href="telepathy-glib-connection.html#tp-connection-get-avatar-requirements" title="tp_connection_get_avatar_requirements ()">tp_connection_get_avatar_requirements</a>
158 <a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements"><span class="returnvalue">TpAvatarRequirements</span></a> * <a class="link" href="telepathy-glib-connection.html#tp-connection-get-avatar-requirements" title="tp_connection_get_avatar_requirements ()">tp_connection_get_avatar_requirements</a>
159159 (<em class="parameter"><code><a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a> *self</code></em>);
160160 <a class="link" href="telepathy-glib-enums.html#TpContactInfoFlags" title="enum TpContactInfoFlags"><span class="returnvalue">TpContactInfoFlags</span></a> <a class="link" href="telepathy-glib-connection.html#tp-connection-get-contact-info-flags" title="tp_connection_get_contact_info_flags ()">tp_connection_get_contact_info_flags</a>
161161 (<em class="parameter"><code><a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a> *self</code></em>);
193193
194194 #define <a class="link" href="telepathy-glib-connection.html#TP-TYPE-AVATAR-REQUIREMENTS:CAPS" title="TP_TYPE_AVATAR_REQUIREMENTS">TP_TYPE_AVATAR_REQUIREMENTS</a>
195195 struct <a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements-struct" title="struct TpAvatarRequirements">TpAvatarRequirements</a>;
196 <a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements"><span class="returnvalue">TpAvatarRequirements</span></a> * <a class="link" href="telepathy-glib-connection.html#tp-avatar-requirements-new" title="tp_avatar_requirements_new ()">tp_avatar_requirements_new</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a> supported_mime_types</code></em>,
196 <a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements"><span class="returnvalue">TpAvatarRequirements</span></a> * <a class="link" href="telepathy-glib-connection.html#tp-avatar-requirements-new" title="tp_avatar_requirements_new ()">tp_avatar_requirements_new</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a> supported_mime_types</code></em>,
197197 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> minimum_width</code></em>,
198198 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> minimum_height</code></em>,
199199 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> recommended_width</code></em>,
201201 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> maximum_width</code></em>,
202202 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> maximum_height</code></em>,
203203 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> maximum_bytes</code></em>);
204 <a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements"><span class="returnvalue">TpAvatarRequirements</span></a> * <a class="link" href="telepathy-glib-connection.html#tp-avatar-requirements-copy" title="tp_avatar_requirements_copy ()">tp_avatar_requirements_copy</a> (<em class="parameter"><code>const <a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements"><span class="type">TpAvatarRequirements</span></a> *self</code></em>);
204 <a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements"><span class="returnvalue">TpAvatarRequirements</span></a> * <a class="link" href="telepathy-glib-connection.html#tp-avatar-requirements-copy" title="tp_avatar_requirements_copy ()">tp_avatar_requirements_copy</a> (<em class="parameter"><code>const <a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements"><span class="type">TpAvatarRequirements</span></a> *self</code></em>);
205205 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-connection.html#tp-avatar-requirements-destroy" title="tp_avatar_requirements_destroy ()">tp_avatar_requirements_destroy</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements"><span class="type">TpAvatarRequirements</span></a> *self</code></em>);
206206
207207 struct <a class="link" href="telepathy-glib-connection.html#TpContactInfoFieldSpec-struct" title="struct TpContactInfoFieldSpec">TpContactInfoFieldSpec</a>;
280280 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
281281
282282 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="telepathy-glib-connection.html#tp-connection-get-disjoint-groups" title="tp_connection_get_disjoint_groups ()">tp_connection_get_disjoint_groups</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a> *self</code></em>);
283 <a class="link" href="telepathy-glib-enums.html#TpContactMetadataStorageType" title="enum TpContactMetadataStorageType"><span class="returnvalue">TpContactMetadataStorageType</span></a> <a class="link" href="telepathy-glib-connection.html#tp-connection-get-group-storage" title="tp_connection_get_group_storage ()">tp_connection_get_group_storage</a>
283 <a class="link" href="telepathy-glib-enums.html#TpContactMetadataStorageType" title="enum TpContactMetadataStorageType"><span class="returnvalue">TpContactMetadataStorageType</span></a> <a class="link" href="telepathy-glib-connection.html#tp-connection-get-group-storage" title="tp_connection_get_group_storage ()">tp_connection_get_group_storage</a>
284284 (<em class="parameter"><code><a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a> *self</code></em>);
285285 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * const * <a class="link" href="telepathy-glib-connection.html#tp-connection-get-contact-groups" title="tp_connection_get_contact_groups ()">tp_connection_get_contact_groups</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a> *self</code></em>);
286286 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-connection.html#tp-connection-set-group-members-async" title="tp_connection_set_group_members_async ()">tp_connection_set_group_members_async</a>
20912091 <hr>
20922092 <div class="refsect2">
20932093 <a name="tp-connection-get-avatar-requirements"></a><h3>tp_connection_get_avatar_requirements ()</h3>
2094 <pre class="programlisting"><a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements"><span class="returnvalue">TpAvatarRequirements</span></a> * tp_connection_get_avatar_requirements
2094 <pre class="programlisting"><a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements"><span class="returnvalue">TpAvatarRequirements</span></a> * tp_connection_get_avatar_requirements
20952095 (<em class="parameter"><code><a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a> *self</code></em>);</pre>
20962096 <p>
20972097 To wait for valid avatar requirements, call <a class="link" href="telepathy-glib-proxy.html#tp-proxy-prepare-async" title="tp_proxy_prepare_async ()"><code class="function">tp_proxy_prepare_async()</code></a>
26072607 <hr>
26082608 <div class="refsect2">
26092609 <a name="tp-avatar-requirements-new"></a><h3>tp_avatar_requirements_new ()</h3>
2610 <pre class="programlisting"><a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements"><span class="returnvalue">TpAvatarRequirements</span></a> * tp_avatar_requirements_new (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a> supported_mime_types</code></em>,
2610 <pre class="programlisting"><a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements"><span class="returnvalue">TpAvatarRequirements</span></a> * tp_avatar_requirements_new (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a> supported_mime_types</code></em>,
26112611 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> minimum_width</code></em>,
26122612 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> minimum_height</code></em>,
26132613 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> recommended_width</code></em>,
26722672 <hr>
26732673 <div class="refsect2">
26742674 <a name="tp-avatar-requirements-copy"></a><h3>tp_avatar_requirements_copy ()</h3>
2675 <pre class="programlisting"><a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements"><span class="returnvalue">TpAvatarRequirements</span></a> * tp_avatar_requirements_copy (<em class="parameter"><code>const <a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements"><span class="type">TpAvatarRequirements</span></a> *self</code></em>);</pre>
2675 <pre class="programlisting"><a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements"><span class="returnvalue">TpAvatarRequirements</span></a> * tp_avatar_requirements_copy (<em class="parameter"><code>const <a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements"><span class="type">TpAvatarRequirements</span></a> *self</code></em>);</pre>
26762676 <p>
26772677
26782678 </p>
36263626 <hr>
36273627 <div class="refsect2">
36283628 <a name="tp-connection-get-group-storage"></a><h3>tp_connection_get_group_storage ()</h3>
3629 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpContactMetadataStorageType" title="enum TpContactMetadataStorageType"><span class="returnvalue">TpContactMetadataStorageType</span></a> tp_connection_get_group_storage
3629 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpContactMetadataStorageType" title="enum TpContactMetadataStorageType"><span class="returnvalue">TpContactMetadataStorageType</span></a> tp_connection_get_group_storage
36303630 (<em class="parameter"><code><a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a> *self</code></em>);</pre>
36313631 <p>
36323632
70517051 representing the new identifier, and <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject-notify"><span class="type">"notify"</span></a> will be emitted.
70527052 </p>
70537053 <p>
7054 The <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> object is guaranteed to have all of the features previously
7055 passed to <a class="link" href="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-contact-features" title="tp_simple_client_factory_add_contact_features ()"><code class="function">tp_simple_client_factory_add_contact_features()</code></a> prepared.
7056 </p>
7057 <p>
70547058 To wait for a non-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> self-contact (and other properties), call
70557059 <a class="link" href="telepathy-glib-proxy.html#tp-proxy-prepare-async" title="tp_proxy_prepare_async ()"><code class="function">tp_proxy_prepare_async()</code></a> with the feature
70567060 <a class="link" href="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CONNECTED:CAPS" title="TP_CONNECTION_FEATURE_CONNECTED"><code class="literal">TP_CONNECTION_FEATURE_CONNECTED</code></a>.
71707174 desired features prepared. See
71717175 <a class="link" href="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-contact-features" title="tp_simple_client_factory_add_contact_features ()"><code class="function">tp_simple_client_factory_add_contact_features()</code></a> to define which features
71727176 needs to be prepared.
7177 </p>
7178 <p>
7179 This signal is also emitted for the initial set of contacts once retrieved.
71737180 </p>
71747181 <p>
71757182 For this signal to be emitted, you must first call
73387345 </div>
73397346 <div class="footer">
73407347 <hr>
7341 Generated by GTK-Doc V1.17</div>
7348 Generated by GTK-Doc V1.17.1</div>
73427349 </body>
73437350 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-contact-search.html" title="TpContactSearch">
99 <link rel="next" href="telepathy-glib-channel.html" title="TpChannel">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
189189 </div>
190190 <div class="footer">
191191 <hr>
192 Generated by GTK-Doc V1.17</div>
192 Generated by GTK-Doc V1.17.1</div>
193193 </body>
194194 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-connection-powersaving.html" title="Connection PowerSaving interface">
99 <link rel="next" href="telepathy-glib-contact-search-result.html" title="TpContactSearchResult">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
520520 </div>
521521 <div class="footer">
522522 <hr>
523 Generated by GTK-Doc V1.17</div>
523 Generated by GTK-Doc V1.17.1</div>
524524 </body>
525525 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-connection.html" title="TpConnection">
99 <link rel="next" href="telepathy-glib-capabilities.html" title="TpCapabilities">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
4646 #include &lt;telepathy-glib/telepathy-glib.h&gt;
4747
4848 <a class="link" href="telepathy-glib-contact.html#TpContact-struct" title="TpContact">TpContact</a>;
49 enum <a class="link" href="telepathy-glib-contact.html#TpContactFeature">TpContactFeature</a>;
49 enum <a class="link" href="telepathy-glib-contact.html#TpContactFeature-enum" title="enum TpContactFeature">TpContactFeature</a>;
5050 #define <a class="link" href="telepathy-glib-contact.html#TP-CONTACT-FEATURE-INVALID:CAPS" title="TP_CONTACT_FEATURE_INVALID">TP_CONTACT_FEATURE_INVALID</a>
5151 #define <a class="link" href="telepathy-glib-contact.html#NUM-TP-CONTACT-FEATURES:CAPS" title="NUM_TP_CONTACT_FEATURES">NUM_TP_CONTACT_FEATURES</a>
5252 #define <a class="link" href="telepathy-glib-contact.html#TP-TYPE-CONTACT-FEATURE:CAPS" title="TP_TYPE_CONTACT_FEATURE">TP_TYPE_CONTACT_FEATURE</a>
117117 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="telepathy-glib-contact.html#tp-contact-get-identifier" title="tp_contact_get_identifier ()">tp_contact_get_identifier</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *self</code></em>);
118118 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="telepathy-glib-contact.html#tp-contact-get-presence-message" title="tp_contact_get_presence_message ()">tp_contact_get_presence_message</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *self</code></em>);
119119 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="telepathy-glib-contact.html#tp-contact-get-presence-status" title="tp_contact_get_presence_status ()">tp_contact_get_presence_status</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *self</code></em>);
120 <a class="link" href="telepathy-glib-enums.html#TpConnectionPresenceType" title="enum TpConnectionPresenceType"><span class="returnvalue">TpConnectionPresenceType</span></a> <a class="link" href="telepathy-glib-contact.html#tp-contact-get-presence-type" title="tp_contact_get_presence_type ()">tp_contact_get_presence_type</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *self</code></em>);
120 <a class="link" href="telepathy-glib-enums.html#TpConnectionPresenceType" title="enum TpConnectionPresenceType"><span class="returnvalue">TpConnectionPresenceType</span></a> <a class="link" href="telepathy-glib-contact.html#tp-contact-get-presence-type" title="tp_contact_get_presence_type ()">tp_contact_get_presence_type</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *self</code></em>);
121121 <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="returnvalue">GHashTable</span></a> * <a class="link" href="telepathy-glib-contact.html#tp-contact-get-location" title="tp_contact_get_location ()">tp_contact_get_location</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *self</code></em>);
122122 <a class="link" href="telepathy-glib-capabilities.html#TpCapabilities"><span class="returnvalue">TpCapabilities</span></a> * <a class="link" href="telepathy-glib-contact.html#tp-contact-get-capabilities" title="tp_contact_get_capabilities ()">tp_contact_get_capabilities</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *self</code></em>);
123123 <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="telepathy-glib-contact.html#tp-contact-get-contact-info" title="tp_contact_get_contact_info ()">tp_contact_get_contact_info</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *self</code></em>);
130130 (<em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *self</code></em>,
131131 <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *result</code></em>,
132132 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
133 <a class="link" href="telepathy-glib-enums.html#TpSubscriptionState" title="enum TpSubscriptionState"><span class="returnvalue">TpSubscriptionState</span></a> <a class="link" href="telepathy-glib-contact.html#tp-contact-get-subscribe-state" title="tp_contact_get_subscribe_state ()">tp_contact_get_subscribe_state</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *self</code></em>);
134 <a class="link" href="telepathy-glib-enums.html#TpSubscriptionState" title="enum TpSubscriptionState"><span class="returnvalue">TpSubscriptionState</span></a> <a class="link" href="telepathy-glib-contact.html#tp-contact-get-publish-state" title="tp_contact_get_publish_state ()">tp_contact_get_publish_state</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *self</code></em>);
133 <a class="link" href="telepathy-glib-enums.html#TpSubscriptionState" title="enum TpSubscriptionState"><span class="returnvalue">TpSubscriptionState</span></a> <a class="link" href="telepathy-glib-contact.html#tp-contact-get-subscribe-state" title="tp_contact_get_subscribe_state ()">tp_contact_get_subscribe_state</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *self</code></em>);
134 <a class="link" href="telepathy-glib-enums.html#TpSubscriptionState" title="enum TpSubscriptionState"><span class="returnvalue">TpSubscriptionState</span></a> <a class="link" href="telepathy-glib-contact.html#tp-contact-get-publish-state" title="tp_contact_get_publish_state ()">tp_contact_get_publish_state</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *self</code></em>);
135135 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="telepathy-glib-contact.html#tp-contact-get-publish-request" title="tp_contact_get_publish_request ()">tp_contact_get_publish_request</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *self</code></em>);
136136 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * const * <a class="link" href="telepathy-glib-contact.html#tp-contact-get-contact-groups" title="tp_contact_get_contact_groups ()">tp_contact_get_contact_groups</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *self</code></em>);
137137 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-contact.html#tp-contact-set-contact-groups-async" title="tp_contact_set_contact_groups_async ()">tp_contact_set_contact_groups_async</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *self</code></em>,
279279 </div>
280280 <hr>
281281 <div class="refsect2">
282 <a name="TpContactFeature"></a><h3>enum TpContactFeature</h3>
282 <a name="TpContactFeature-enum"></a><h3>enum TpContactFeature</h3>
283283 <pre class="programlisting">typedef enum {
284284 TP_CONTACT_FEATURE_ALIAS,
285285 TP_CONTACT_FEATURE_AVATAR_TOKEN,
12331233 <hr>
12341234 <div class="refsect2">
12351235 <a name="tp-contact-get-presence-type"></a><h3>tp_contact_get_presence_type ()</h3>
1236 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpConnectionPresenceType" title="enum TpConnectionPresenceType"><span class="returnvalue">TpConnectionPresenceType</span></a> tp_contact_get_presence_type (<em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *self</code></em>);</pre>
1236 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpConnectionPresenceType" title="enum TpConnectionPresenceType"><span class="returnvalue">TpConnectionPresenceType</span></a> tp_contact_get_presence_type (<em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *self</code></em>);</pre>
12371237 <p>
12381238 If this object has been set up to track <a class="link" href="telepathy-glib-contact.html#TP-CONTACT-FEATURE-PRESENCE:CAPS"><code class="literal">TP_CONTACT_FEATURE_PRESENCE</code></a>
12391239 and the underlying connection supports either the Presence or
14381438 <hr>
14391439 <div class="refsect2">
14401440 <a name="tp-contact-get-subscribe-state"></a><h3>tp_contact_get_subscribe_state ()</h3>
1441 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpSubscriptionState" title="enum TpSubscriptionState"><span class="returnvalue">TpSubscriptionState</span></a> tp_contact_get_subscribe_state (<em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *self</code></em>);</pre>
1441 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpSubscriptionState" title="enum TpSubscriptionState"><span class="returnvalue">TpSubscriptionState</span></a> tp_contact_get_subscribe_state (<em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *self</code></em>);</pre>
14421442 <p>
14431443 Return the state of the local user's subscription to this remote contact's
14441444 presence.
14661466 <hr>
14671467 <div class="refsect2">
14681468 <a name="tp-contact-get-publish-state"></a><h3>tp_contact_get_publish_state ()</h3>
1469 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpSubscriptionState" title="enum TpSubscriptionState"><span class="returnvalue">TpSubscriptionState</span></a> tp_contact_get_publish_state (<em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *self</code></em>);</pre>
1469 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpSubscriptionState" title="enum TpSubscriptionState"><span class="returnvalue">TpSubscriptionState</span></a> tp_contact_get_publish_state (<em class="parameter"><code><a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> *self</code></em>);</pre>
14701470 <p>
14711471 Return the state of this remote contact's subscription to the local user's
14721472 presence.
25722572 </div>
25732573 <div class="footer">
25742574 <hr>
2575 Generated by GTK-Doc V1.17</div>
2575 Generated by GTK-Doc V1.17.1</div>
25762576 </body>
25772577 </html>
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="telepathy-glib-TpContactsMixin.html" title="TpContactsMixin">
99 <link rel="next" href="TpExportableChannel.html" title="TpExportableChannel">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
4141 <a name="TpDBusPropertiesMixinFlags"></a><pre class="synopsis">
4242 #include &lt;telepathy-glib/dbus-properties-mixin.h&gt;
4343
44 enum <a class="link" href="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinFlags">TpDBusPropertiesMixinFlags</a>;
44 enum <a class="link" href="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinFlags-enum" title="enum TpDBusPropertiesMixinFlags">TpDBusPropertiesMixinFlags</a>;
4545 #define <a class="link" href="telepathy-glib-dbus-properties-mixin.html#TP-TYPE-DBUS-PROPERTIES-MIXIN-FLAGS:CAPS" title="TP_TYPE_DBUS_PROPERTIES_MIXIN_FLAGS">TP_TYPE_DBUS_PROPERTIES_MIXIN_FLAGS</a>
4646 <a class="link" href="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinIfaceInfo" title="TpDBusPropertiesMixinIfaceInfo">TpDBusPropertiesMixinIfaceInfo</a>;
4747 <a class="link" href="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinPropInfo" title="TpDBusPropertiesMixinPropInfo">TpDBusPropertiesMixinPropInfo</a>;
4848 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-dbus-properties-mixin.html#tp-svc-interface-set-dbus-properties-info" title="tp_svc_interface_set_dbus_properties_info ()">tp_svc_interface_set_dbus_properties_info</a>
4949 (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> g_interface</code></em>,
5050 <em class="parameter"><code><a class="link" href="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinIfaceInfo" title="TpDBusPropertiesMixinIfaceInfo"><span class="type">TpDBusPropertiesMixinIfaceInfo</span></a> *info</code></em>);
51 <a class="link" href="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinIfaceInfo" title="TpDBusPropertiesMixinIfaceInfo"><span class="returnvalue">TpDBusPropertiesMixinIfaceInfo</span></a> * <a class="link" href="telepathy-glib-dbus-properties-mixin.html#tp-svc-interface-get-dbus-properties-info" title="tp_svc_interface_get_dbus_properties_info ()">tp_svc_interface_get_dbus_properties_info</a>
52 (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> g_interface</code></em>);
5153
5254 <a class="link" href="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinClass" title="TpDBusPropertiesMixinClass">TpDBusPropertiesMixinClass</a>;
5355 <a class="link" href="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinIfaceImpl" title="TpDBusPropertiesMixinIfaceImpl">TpDBusPropertiesMixinIfaceImpl</a>;
9193 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
9294 <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
9395 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
96 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-set" title="tp_dbus_properties_mixin_set ()">tp_dbus_properties_mixin_set</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *self</code></em>,
97 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *interface_name</code></em>,
98 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
99 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
100 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
94101 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-fill-properties-hash" title="tp_dbus_properties_mixin_fill_properties_hash ()">tp_dbus_properties_mixin_fill_properties_hash</a>
95102 (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
96103 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *table</code></em>,
102109 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_interface</code></em>,
103110 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property</code></em>,
104111 <em class="parameter"><code>...</code></em>);
112 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-emit-properties-changed" title="tp_dbus_properties_mixin_emit_properties_changed ()">tp_dbus_properties_mixin_emit_properties_changed</a>
113 (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
114 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *interface_name</code></em>,
115 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> * const *properties</code></em>);
116 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-emit-properties-changed-varargs" title="tp_dbus_properties_mixin_emit_properties_changed_varargs ()">tp_dbus_properties_mixin_emit_properties_changed_varargs</a>
117 (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
118 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *interface_name</code></em>,
119 <em class="parameter"><code>...</code></em>);
105120 </pre>
106121 </div>
107122 <div class="refsect1">
142157 <div class="refsect1">
143158 <a name="telepathy-glib-dbus-properties-mixin.details"></a><h2>Details</h2>
144159 <div class="refsect2">
145 <a name="TpDBusPropertiesMixinFlags"></a><h3>enum TpDBusPropertiesMixinFlags</h3>
160 <a name="TpDBusPropertiesMixinFlags-enum"></a><h3>enum TpDBusPropertiesMixinFlags</h3>
146161 <pre class="programlisting">typedef enum { /*&lt; flags &gt;*/
147162 TP_DBUS_PROPERTIES_MIXIN_FLAG_READ = 1,
148 TP_DBUS_PROPERTIES_MIXIN_FLAG_WRITE = 2
163 TP_DBUS_PROPERTIES_MIXIN_FLAG_WRITE = 2,
164 TP_DBUS_PROPERTIES_MIXIN_FLAG_EMITS_CHANGED = 4,
165 TP_DBUS_PROPERTIES_MIXIN_FLAG_EMITS_INVALIDATED = 8
149166 } TpDBusPropertiesMixinFlags;
150167 </pre>
151168 <p>
152 Bitfield representing allowed access to a property.
169 Bitfield representing allowed access to a property. At most one of
170 <a class="link" href="telepathy-glib-dbus-properties-mixin.html#TP-DBUS-PROPERTIES-MIXIN-FLAG-EMITS-CHANGED:CAPS"><code class="literal">TP_DBUS_PROPERTIES_MIXIN_FLAG_EMITS_CHANGED</code></a> and
171 <a class="link" href="telepathy-glib-dbus-properties-mixin.html#TP-DBUS-PROPERTIES-MIXIN-FLAG-EMITS-INVALIDATED:CAPS"><code class="literal">TP_DBUS_PROPERTIES_MIXIN_FLAG_EMITS_INVALIDATED</code></a> may be specified for a
172 property.
153173 </p>
154174 <p>
155175 Since 0.11.5, there is a corresponding <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Enumeration-and-Flag-Types.html#GFlagsClass"><span class="type">GFlagsClass</span></a> type,
167187 <tr>
168188 <td><p><a name="TP-DBUS-PROPERTIES-MIXIN-FLAG-WRITE:CAPS"></a><span class="term"><code class="literal">TP_DBUS_PROPERTIES_MIXIN_FLAG_WRITE</code></span></p></td>
169189 <td>The property can be written using Set
190 </td>
191 </tr>
192 <tr>
193 <td><p><a name="TP-DBUS-PROPERTIES-MIXIN-FLAG-EMITS-CHANGED:CAPS"></a><span class="term"><code class="literal">TP_DBUS_PROPERTIES_MIXIN_FLAG_EMITS_CHANGED</code></span></p></td>
194 <td>The property's new value is
195 included in emissions of PropertiesChanged
196 </td>
197 </tr>
198 <tr>
199 <td><p><a name="TP-DBUS-PROPERTIES-MIXIN-FLAG-EMITS-INVALIDATED:CAPS"></a><span class="term"><code class="literal">TP_DBUS_PROPERTIES_MIXIN_FLAG_EMITS_INVALIDATED</code></span></p></td>
200 <td>The property is announced
201 as invalidated, without its value, in emissions of PropertiesChanged
170202 </td>
171203 </tr>
172204 </tbody>
276308 given properties. This may only be called once per GInterface, usually from
277309 a section of its base_init function that only runs once.
278310 </p>
311 <p>
312 This is typically only used within generated code; there is normally no
313 reason to call it manually.
314 </p>
279315 <div class="variablelist"><table border="0">
280316 <col align="left" valign="top">
281317 <tbody>
290326 </tbody>
291327 </table></div>
292328 <p class="since">Since 0.7.3</p>
329 </div>
330 <hr>
331 <div class="refsect2">
332 <a name="tp-svc-interface-get-dbus-properties-info"></a><h3>tp_svc_interface_get_dbus_properties_info ()</h3>
333 <pre class="programlisting"><a class="link" href="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinIfaceInfo" title="TpDBusPropertiesMixinIfaceInfo"><span class="returnvalue">TpDBusPropertiesMixinIfaceInfo</span></a> * tp_svc_interface_get_dbus_properties_info
334 (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> g_interface</code></em>);</pre>
335 <p>
336 Retrieves the D-Bus property metadata for the given interface, if any.
337 This function is typically not useful outside telepathy-glib itself, but may
338 be useful for domain-specific variations on the theme of SetProperty. If in
339 doubt, you probably don't need this function.
340 </p>
341 <div class="variablelist"><table border="0">
342 <col align="left" valign="top">
343 <tbody>
344 <tr>
345 <td><p><span class="term"><em class="parameter"><code>g_interface</code></em> :</span></p></td>
346 <td>The <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of a service interface</td>
347 </tr>
348 <tr>
349 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
350 <td>D-Bus property metadata for <em class="parameter"><code>g_interface</code></em>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if it has
351 none.</td>
352 </tr>
353 </tbody>
354 </table></div>
355 <p class="since">Since 0.15.8</p>
293356 </div>
294357 <hr>
295358 <div class="refsect2">
782845 </div>
783846 <hr>
784847 <div class="refsect2">
848 <a name="tp-dbus-properties-mixin-set"></a><h3>tp_dbus_properties_mixin_set ()</h3>
849 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> tp_dbus_properties_mixin_set (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *self</code></em>,
850 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *interface_name</code></em>,
851 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
852 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
853 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
854 <p>
855 Sets a property to the value specified by <em class="parameter"><code>value</code></em>, as if by
856 calling the D-Bus method org.freedesktop.DBus.Properties.Set.
857 </p>
858 <p>
859 If Set would return a D-Bus error, sets <em class="parameter"><code>error</code></em> and returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
860 </p>
861 <div class="variablelist"><table border="0">
862 <col align="left" valign="top">
863 <tbody>
864 <tr>
865 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
866 <td>an object with this mixin</td>
867 </tr>
868 <tr>
869 <td><p><span class="term"><em class="parameter"><code>interface_name</code></em> :</span></p></td>
870 <td>a D-Bus interface name</td>
871 </tr>
872 <tr>
873 <td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
874 <td>a D-Bus property name</td>
875 </tr>
876 <tr>
877 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
878 <td>a GValue containing the new value for this property.</td>
879 </tr>
880 <tr>
881 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
882 <td>used to return an error on failure</td>
883 </tr>
884 <tr>
885 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
886 <td>
887 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success; <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> (setting <em class="parameter"><code>error</code></em>) on failure</td>
888 </tr>
889 </tbody>
890 </table></div>
891 <p class="since">Since 0.15.8</p>
892 </div>
893 <hr>
894 <div class="refsect2">
785895 <a name="tp-dbus-properties-mixin-fill-properties-hash"></a><h3>tp_dbus_properties_mixin_fill_properties_hash ()</h3>
786896 <pre class="programlisting"><span class="returnvalue">void</span> tp_dbus_properties_mixin_fill_properties_hash
787897 (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
887997 </tbody>
888998 </table></div>
889999 </div>
1000 <hr>
1001 <div class="refsect2">
1002 <a name="tp-dbus-properties-mixin-emit-properties-changed"></a><h3>tp_dbus_properties_mixin_emit_properties_changed ()</h3>
1003 <pre class="programlisting"><span class="returnvalue">void</span> tp_dbus_properties_mixin_emit_properties_changed
1004 (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
1005 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *interface_name</code></em>,
1006 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> * const *properties</code></em>);</pre>
1007 <p>
1008 Emits the PropertiesChanged signal for the provided properties. Depending on
1009 the EmitsChangedSignal annotations in the introspection XML, either the new
1010 value of the property will be included in the signal, or merely the fact
1011 that the property has changed.
1012 </p>
1013 <p>
1014 For example, the MPRIS specification defines a TrackList interface with two
1015 properties, one of which is annotated with EmitsChangedSignal=true and one
1016 annotated with EmitsChangedSignal=invalidates. The following call would
1017 include the new value of CanEditTracks and list Tracks as invalidated:
1018 </p>
1019 <p>
1020 </p>
1021 <div class="informalexample">
1022 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
1023 <tbody>
1024 <tr>
1025 <td class="listing_lines" align="right"><pre>1
1026 2
1027 3
1028 4</pre></td>
1029 <td class="listing_code"><pre class="programlisting"><span class="keyword">const</span><span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal"><a href="/usr/share/gtk-doc/html/libbonobo/properties.html">properties</a></span><span class="symbol">[]</span><span class="normal"> </span><span class="symbol">=</span><span class="normal"> </span><span class="cbracket">{</span><span class="normal"> </span><span class="string">"CanEditTracks"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Tracks"</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a> </span><span class="cbracket">}</span><span class="symbol">;</span>
1030
1031 <span class="function"><a href="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-emit-properties-changed">tp_dbus_properties_mixin_emit_properties_changed</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#G-OBJECT:CAPS">G_OBJECT</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">self</span><span class="symbol">),</span>
1032 <span class="normal"> </span><span class="string">"org.mpris.MediaPlayer2.TrackList"</span><span class="symbol">,</span><span class="normal"> <a href="/usr/share/gtk-doc/html/libbonobo/properties.html">properties</a></span><span class="symbol">);</span></pre></td>
1033 </tr>
1034 </tbody>
1035 </table>
1036 </div>
1037
1038 <p>
1039 </p>
1040 <p>
1041 It is an error to pass a property to this
1042 function if the property is annotated with EmitsChangedSignal=false, or is
1043 unannotated.
1044 </p>
1045 <div class="variablelist"><table border="0">
1046 <col align="left" valign="top">
1047 <tbody>
1048 <tr>
1049 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
1050 <td>an object which uses the D-Bus properties mixin</td>
1051 </tr>
1052 <tr>
1053 <td><p><span class="term"><em class="parameter"><code>interface_name</code></em> :</span></p></td>
1054 <td>the interface on which properties have changed</td>
1055 </tr>
1056 <tr>
1057 <td><p><span class="term"><em class="parameter"><code>properties</code></em> :</span></p></td>
1058 <td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of (unqualified)
1059 property names whose values have changed. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
1060 </td>
1061 </tr>
1062 </tbody>
1063 </table></div>
1064 <p class="since">Since 0.15.6</p>
1065 </div>
1066 <hr>
1067 <div class="refsect2">
1068 <a name="tp-dbus-properties-mixin-emit-properties-changed-varargs"></a><h3>tp_dbus_properties_mixin_emit_properties_changed_varargs ()</h3>
1069 <pre class="programlisting"><span class="returnvalue">void</span> tp_dbus_properties_mixin_emit_properties_changed_varargs
1070 (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
1071 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *interface_name</code></em>,
1072 <em class="parameter"><code>...</code></em>);</pre>
1073 <p>
1074 A shortcut for calling <a class="link" href="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-emit-properties-changed" title="tp_dbus_properties_mixin_emit_properties_changed ()"><code class="function">tp_dbus_properties_mixin_emit_properties_changed()</code></a>.
1075 </p>
1076 <div class="variablelist"><table border="0">
1077 <col align="left" valign="top">
1078 <tbody>
1079 <tr>
1080 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
1081 <td>an object which uses the D-Bus properties mixin</td>
1082 </tr>
1083 <tr>
1084 <td><p><span class="term"><em class="parameter"><code>interface_name</code></em> :</span></p></td>
1085 <td>the interface on which properties have changed</td>
1086 </tr>
1087 <tr>
1088 <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
1089 <td>(unqualified) property names whose values have changed, terminated by
1090 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
1091 </tr>
1092 </tbody>
1093 </table></div>
1094 <p class="since">Since 0.15.6</p>
1095 </div>
8901096 </div>
8911097 <div class="refsect1">
8921098 <a name="telepathy-glib-dbus-properties-mixin.see-also"></a><h2>See Also</h2>
8951101 </div>
8961102 <div class="footer">
8971103 <hr>
898 Generated by GTK-Doc V1.17</div>
1104 Generated by GTK-Doc V1.17.1</div>
8991105 </body>
9001106 </html>
0 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4 <title>TpDBusTubeChannel</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
6 <link rel="home" href="index.html" title="telepathy-glib API Reference Manual">
7 <link rel="up" href="ch-client.html" title="Client-side proxies">
8 <link rel="prev" href="telepathy-glib-stream-tube-connection.html" title="TpStreamTubeConnection">
9 <link rel="next" href="telepathy-glib-client-channel-factory.html" title="TpClientChannelFactoryInterface">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
11 <link rel="stylesheet" href="style.css" type="text/css">
12 </head>
13 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
14 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
15 <tr valign="middle">
16 <td><a accesskey="p" href="telepathy-glib-stream-tube-connection.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
17 <td><a accesskey="u" href="ch-client.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
18 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
19 <th width="100%" align="center">telepathy-glib API Reference Manual</th>
20 <td><a accesskey="n" href="telepathy-glib-client-channel-factory.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
21 </tr>
22 <tr><td colspan="5" class="shortcuts">
23 <a href="#telepathy-glib-dbus-tube-channel.synopsis" class="shortcut">Top</a>
24  | 
25 <a href="#telepathy-glib-dbus-tube-channel.description" class="shortcut">Description</a>
26  | 
27 <a href="#telepathy-glib-dbus-tube-channel.object-hierarchy" class="shortcut">Object Hierarchy</a>
28  | 
29 <a href="#telepathy-glib-dbus-tube-channel.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
30  | 
31 <a href="#telepathy-glib-dbus-tube-channel.properties" class="shortcut">Properties</a>
32 </td></tr>
33 </table>
34 <div class="refentry">
35 <a name="telepathy-glib-dbus-tube-channel"></a><div class="titlepage"></div>
36 <div class="refnamediv"><table width="100%"><tr>
37 <td valign="top">
38 <h2><span class="refentrytitle"><a name="telepathy-glib-dbus-tube-channel.top_of_page"></a>TpDBusTubeChannel</span></h2>
39 <p>TpDBusTubeChannel — proxy object for a dbus tube channel</p>
40 </td>
41 <td valign="top" align="right"></td>
42 </tr></table></div>
43 <div class="refsynopsisdiv">
44 <a name="telepathy-glib-dbus-tube-channel.synopsis"></a><h2>Synopsis</h2>
45 <a name="TpDBusTubeChannel"></a><pre class="synopsis">
46 #include &lt;telepathy-glib/dbus-tube-channel.h&gt;
47
48 struct <a class="link" href="telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel-struct" title="struct TpDBusTubeChannel">TpDBusTubeChannel</a>;
49 struct <a class="link" href="telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannelClass" title="struct TpDBusTubeChannelClass">TpDBusTubeChannelClass</a>;
50 <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="returnvalue">GHashTable</span></a> * <a class="link" href="telepathy-glib-dbus-tube-channel.html#tp-dbus-tube-channel-get-parameters" title="tp_dbus_tube_channel_get_parameters ()">tp_dbus_tube_channel_get_parameters</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel"><span class="type">TpDBusTubeChannel</span></a> *self</code></em>);
51 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="telepathy-glib-dbus-tube-channel.html#tp-dbus-tube-channel-get-service-name" title="tp_dbus_tube_channel_get_service_name ()">tp_dbus_tube_channel_get_service_name</a>
52 (<em class="parameter"><code><a class="link" href="telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel"><span class="type">TpDBusTubeChannel</span></a> *self</code></em>);
53 </pre>
54 </div>
55 <div class="refsect1">
56 <a name="telepathy-glib-dbus-tube-channel.object-hierarchy"></a><h2>Object Hierarchy</h2>
57 <pre class="synopsis">
58 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
59 +----<a class="link" href="telepathy-glib-proxy.html#TpProxy">TpProxy</a>
60 +----<a class="link" href="telepathy-glib-channel.html#TpChannel">TpChannel</a>
61 +----TpDBusTubeChannel
62 </pre>
63 </div>
64 <div class="refsect1">
65 <a name="telepathy-glib-dbus-tube-channel.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
66 <p>
67 TpDBusTubeChannel implements
68 <a class="link" href="TpChannelIface.html" title="TpChannelIface">TpChannelIface</a>.</p>
69 </div>
70 <div class="refsect1">
71 <a name="telepathy-glib-dbus-tube-channel.properties"></a><h2>Properties</h2>
72 <pre class="synopsis">
73 "<a class="link" href="telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel--parameters" title='The "parameters" property'>parameters</a>" <span class="type">GHashTable_gchararray+GValue_*</span> : Read
74 "<a class="link" href="telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel--service-name" title='The "service-name" property'>service-name</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read
75 </pre>
76 </div>
77 <div class="refsect1">
78 <a name="telepathy-glib-dbus-tube-channel.description"></a><h2>Description</h2>
79 <p>
80 <a class="link" href="telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel"><span class="type">TpDBusTubeChannel</span></a> is a sub-class of <a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> providing convenient API
81 to offer and accept a dbus tube.
82 </p>
83 </div>
84 <div class="refsect1">
85 <a name="telepathy-glib-dbus-tube-channel.details"></a><h2>Details</h2>
86 <div class="refsect2">
87 <a name="TpDBusTubeChannel-struct"></a><h3>struct TpDBusTubeChannel</h3>
88 <pre class="programlisting">struct TpDBusTubeChannel;</pre>
89 <p>
90 Data structure representing a <a class="link" href="telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel"><span class="type">TpDBusTubeChannel</span></a>.
91 </p>
92 <p class="since">Since 0.15.6</p>
93 </div>
94 <hr>
95 <div class="refsect2">
96 <a name="TpDBusTubeChannelClass"></a><h3>struct TpDBusTubeChannelClass</h3>
97 <pre class="programlisting">struct TpDBusTubeChannelClass {
98 };
99 </pre>
100 <p>
101 The class of a <a class="link" href="telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel"><span class="type">TpDBusTubeChannel</span></a>.
102 </p>
103 <p class="since">Since 0.15.6</p>
104 </div>
105 <hr>
106 <div class="refsect2">
107 <a name="tp-dbus-tube-channel-get-parameters"></a><h3>tp_dbus_tube_channel_get_parameters ()</h3>
108 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="returnvalue">GHashTable</span></a> * tp_dbus_tube_channel_get_parameters (<em class="parameter"><code><a class="link" href="telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel"><span class="type">TpDBusTubeChannel</span></a> *self</code></em>);</pre>
109 <p>
110 Return the <a class="link" href="telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel--parameters" title='The "parameters" property'><span class="type">"parameters"</span></a> property
111 </p>
112 <div class="variablelist"><table border="0">
113 <col align="left" valign="top">
114 <tbody>
115 <tr>
116 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
117 <td>a <a class="link" href="telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel"><span class="type">TpDBusTubeChannel</span></a>
118 </td>
119 </tr>
120 <tr>
121 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
122 <td>the value of <a class="link" href="telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel--parameters" title='The "parameters" property'><span class="type">"parameters"</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8 GObject.Value]</span>
123 </td>
124 </tr>
125 </tbody>
126 </table></div>
127 <p class="since">Since 0.15.6</p>
128 </div>
129 <hr>
130 <div class="refsect2">
131 <a name="tp-dbus-tube-channel-get-service-name"></a><h3>tp_dbus_tube_channel_get_service_name ()</h3>
132 <pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * tp_dbus_tube_channel_get_service_name
133 (<em class="parameter"><code><a class="link" href="telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel"><span class="type">TpDBusTubeChannel</span></a> *self</code></em>);</pre>
134 <p>
135 Return the <a class="link" href="telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel--service-name" title='The "service-name" property'><span class="type">"service-name"</span></a> property
136 </p>
137 <div class="variablelist"><table border="0">
138 <col align="left" valign="top">
139 <tbody>
140 <tr>
141 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
142 <td>a <a class="link" href="telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel"><span class="type">TpDBusTubeChannel</span></a>
143 </td>
144 </tr>
145 <tr>
146 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
147 <td>the value of <a class="link" href="telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel--service-name" title='The "service-name" property'><span class="type">"service-name"</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
148 </td>
149 </tr>
150 </tbody>
151 </table></div>
152 <p class="since">Since 0.15.6</p>
153 </div>
154 </div>
155 <div class="refsect1">
156 <a name="telepathy-glib-dbus-tube-channel.property-details"></a><h2>Property Details</h2>
157 <div class="refsect2">
158 <a name="TpDBusTubeChannel--parameters"></a><h3>The <code class="literal">"parameters"</code> property</h3>
159 <pre class="programlisting"> "parameters" <span class="type">GHashTable_gchararray+GValue_*</span> : Read</pre>
160 <p>
161 A string to <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> representing the parameters of the tube.
162 </p>
163 <p>
164 Will be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for outgoing tubes until the tube has been offered.
165 </p>
166 <p class="since">Since 0.15.6</p>
167 </div>
168 <hr>
169 <div class="refsect2">
170 <a name="TpDBusTubeChannel--service-name"></a><h3>The <code class="literal">"service-name"</code> property</h3>
171 <pre class="programlisting"> "service-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre>
172 <p>
173 A string representing the service name that will be used over the tube.
174 </p>
175 <p>Default value: NULL</p>
176 <p class="since">Since 0.15.6</p>
177 </div>
178 </div>
179 </div>
180 <div class="footer">
181 <hr>
182 Generated by GTK-Doc V1.17.1</div>
183 </body>
184 </html>
77 <link rel="up" href="ch-dbus.html" title="General D-Bus support">
88 <link rel="prev" href="telepathy-glib-proxy-tp-properties.html" title="TpProxy Telepathy Properties">
99 <link rel="next" href="telepathy-glib-asv.html" title="Manipulating a{sv} mappings">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
4545 (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGMethod.html#DBusGMethodInvocation"><span class="type">DBusGMethodInvocation</span></a> *context</code></em>);
4646 <a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="returnvalue">DBusGConnection</span></a> * <a class="link" href="telepathy-glib-dbus.html#tp-get-bus" title="tp_get_bus ()">tp_get_bus</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
4747 <a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGProxy.html#DBusGProxy"><span class="returnvalue">DBusGProxy</span></a> * <a class="link" href="telepathy-glib-dbus.html#tp-get-bus-proxy" title="tp_get_bus_proxy ()">tp_get_bus_proxy</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
48 enum <a class="link" href="telepathy-glib-dbus.html#TpDBusNameType">TpDBusNameType</a>;
48 enum <a class="link" href="telepathy-glib-dbus.html#TpDBusNameType-enum" title="enum TpDBusNameType">TpDBusNameType</a>;
4949 #define <a class="link" href="telepathy-glib-dbus.html#TP-TYPE-DBUS-NAME-TYPE:CAPS" title="TP_TYPE_DBUS_NAME_TYPE">TP_TYPE_DBUS_NAME_TYPE</a>
5050 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="telepathy-glib-dbus.html#tp-dbus-check-valid-bus-name" title="tp_dbus_check_valid_bus_name ()">tp_dbus_check_valid_bus_name</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
5151 <em class="parameter"><code><a class="link" href="telepathy-glib-dbus.html#TpDBusNameType"><span class="type">TpDBusNameType</span></a> allow_types</code></em>,
559559 </div>
560560 <hr>
561561 <div class="refsect2">
562 <a name="TpDBusNameType"></a><h3>enum TpDBusNameType</h3>
562 <a name="TpDBusNameType-enum"></a><h3>enum TpDBusNameType</h3>
563563 <pre class="programlisting">typedef enum /*&lt; flags &gt;*/
564564 {
565565 TP_DBUS_NAME_TYPE_UNIQUE = 1,
44624462 </div>
44634463 <div class="footer">
44644464 <hr>
4465 Generated by GTK-Doc V1.17</div>
4465 Generated by GTK-Doc V1.17.1</div>
44664466 </body>
44674467 </html>
77 <link rel="up" href="ch-obsolete.html" title="Obsolete modules">
88 <link rel="prev" href="TpChannelFactoryIface.html" title="TpChannelFactoryIface">
99 <link rel="next" href="telepathy-glib-TpTextMixin.html" title="TpTextMixin">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
319319 </div>
320320 <div class="footer">
321321 <hr>
322 Generated by GTK-Doc V1.17</div>
322 Generated by GTK-Doc V1.17.1</div>
323323 </body>
324324 </html>
77 <link rel="up" href="ch-utilities.html" title="Utilities">
88 <link rel="prev" href="telepathy-glib-debug.html" title="Common debug support">
99 <link rel="next" href="TpIntset.html" title="TpIntset">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
337337 13
338338 14</pre></td>
339339 <td class="listing_code"><pre class="programlisting"><span class="comment">/* Create a main loop and debug sender */</span>
340 GMainLoop <span class="gtkdoc opt">*</span>loop <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-loop-new">g_main_loop_new</a></span> <span class="gtkdoc opt">(</span>NULL<span class="gtkdoc opt">,</span> FALSE<span class="gtkdoc opt">);</span>
341 TpDebugSender <span class="gtkdoc opt">*</span>sender <span class="gtkdoc opt">=</span> <span class="function"><a href="telepathy-glib-debug-sender.html#tp-debug-sender-dup">tp_debug_sender_dup</a></span> <span class="gtkdoc opt">();</span>
340 <span class="usertype">GMainLoop</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">loop </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-loop-new">g_main_loop_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS">FALSE</a></span><span class="symbol">);</span>
341 <span class="usertype">TpDebugSender</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">sender </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-debug-sender.html#tp-debug-sender-dup">tp_debug_sender_dup</a></span><span class="normal"> </span><span class="symbol">();</span>
342342
343343 <span class="comment">/* Set the default handler */</span>
344 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Message-Logging.html#g-log-set-default-handler">g_log_set_default_handler</a></span> <span class="gtkdoc opt">(</span>tp_debug_sender_log_handler<span class="gtkdoc opt">,</span> G_LOG_DOMAIN<span class="gtkdoc opt">);</span>
344 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Message-Logging.html#g-log-set-default-handler">g_log_set_default_handler</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="telepathy-glib-debug-sender.html#tp-debug-sender-log-handler">tp_debug_sender_log_handler</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Message-Logging.html#G-LOG-DOMAIN:CAPS">G_LOG_DOMAIN</a></span><span class="symbol">);</span>
345345
346346 <span class="comment">/* Run the main loop, but keeping a ref on the TpDebugSender from</span>
347347 <span class="comment"> * the beginning of this code sample. */</span>
348 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-loop-run">g_main_loop_run</a></span> <span class="gtkdoc opt">(</span>loop<span class="gtkdoc opt">);</span>
348 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-loop-run">g_main_loop_run</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">loop</span><span class="symbol">);</span>
349349
350350 <span class="comment">/* g_main_loop_quit was called, so only now can we clean up the</span>
351351 <span class="comment"> * TpDebugSender. */</span>
352 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span> <span class="gtkdoc opt">(</span>sender<span class="gtkdoc opt">);</span></pre></td>
352 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">sender</span><span class="symbol">);</span></pre></td>
353353 </tr>
354354 </tbody>
355355 </table>
443443 </div>
444444 <div class="footer">
445445 <hr>
446 Generated by GTK-Doc V1.17</div>
446 Generated by GTK-Doc V1.17.1</div>
447447 </body>
448448 </html>
77 <link rel="up" href="ch-utilities.html" title="Utilities">
88 <link rel="prev" href="telepathy-glib-gnio-util.html" title="GNIO Utilities">
99 <link rel="next" href="telepathy-glib-debug-sender.html" title="TpDebugSender">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
209209 <tr>
210210 <td class="listing_lines" align="right"><pre>1
211211 2</pre></td>
212 <td class="listing_code"><pre class="programlisting"><span class="keyword">if</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Miscellaneous-Utility-Functions.html#g-getenv">g_getenv</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;MYPROG_TIMING&quot;</span><span class="gtkdoc opt">) !=</span> NULL<span class="gtkdoc opt">)</span>
213 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Message-Logging.html#g-log-set-default-handler">g_log_set_default_handler</a></span> <span class="gtkdoc opt">(</span>tp_debug_timestamped_log_handler<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span></pre></td>
212 <td class="listing_code"><pre class="programlisting"><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Miscellaneous-Utility-Functions.html#g-getenv">g_getenv</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"MYPROG_TIMING"</span><span class="symbol">)</span><span class="normal"> </span><span class="symbol">!=</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">)</span>
213 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Message-Logging.html#g-log-set-default-handler">g_log_set_default_handler</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="telepathy-glib-debug.html#tp-debug-timestamped-log-handler">tp_debug_timestamped_log_handler</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span></pre></td>
214214 </tr>
215215 </tbody>
216216 </table>
318318 </div>
319319 <div class="footer">
320320 <hr>
321 Generated by GTK-Doc V1.17</div>
321 Generated by GTK-Doc V1.17.1</div>
322322 </body>
323323 </html>
77 <link rel="up" href="ch-protocol.html" title="The Telepathy protocol">
88 <link rel="prev" href="ch-protocol.html" title="The Telepathy protocol">
99 <link rel="next" href="telepathy-glib-handle.html" title="TpHandle">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
212212 </div>
213213 <div class="footer">
214214 <hr>
215 Generated by GTK-Doc V1.17</div>
215 Generated by GTK-Doc V1.17.1</div>
216216 </body>
217217 </html>
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="telepathy-glib-simple-handler.html" title="TpSimpleHandler">
99 <link rel="next" href="ch-service-handles.html" title="Service-side handle repositories">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
365365 </div>
366366 <div class="footer">
367367 <hr>
368 Generated by GTK-Doc V1.17</div>
368 Generated by GTK-Doc V1.17.1</div>
369369 </body>
370370 </html>
77 <link rel="up" href="ch-protocol.html" title="The Telepathy protocol">
88 <link rel="prev" href="telepathy-glib-interfaces.html" title="Telepathy protocol interface and property names">
99 <link rel="next" href="telepathy-glib-errors.html" title="Telepathy protocol errors">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
19731973 </tr>
19741974 <tr>
19751975 <td><p><a name="TP-LOCAL-HOLD-STATE-PENDING-HOLD:CAPS"></a><span class="term"><code class="literal">TP_LOCAL_HOLD_STATE_PENDING_HOLD</code></span></p></td>
1976 <td> The connection manager is attempting to move to state Held, but has not yet completed that operation. It is unspecified whether any, all or none of the streams making up the channel are on hold.
1976 <td> The connection manager is attempting to move to state Held, but has not yet completed that operation. It is unspecified whether any, all or none of the streams making up the channel are on hold. Examining the Hold state of Call Contents (if applicable) may provide more useful information.
19771977 </td>
19781978 </tr>
19791979 <tr>
19801980 <td><p><a name="TP-LOCAL-HOLD-STATE-PENDING-UNHOLD:CAPS"></a><span class="term"><code class="literal">TP_LOCAL_HOLD_STATE_PENDING_UNHOLD</code></span></p></td>
1981 <td> The connection manager is attempting to move to state Held, but has not yet completed that operation. It is unspecified whether any, all or none of the streams making up the channel are on hold.
1981 <td> The connection manager is attempting to move to state Unheld, but has not yet completed that operation. It is unspecified whether any, all or none of the streams making up the channel are on hold. Examining the Hold state of Call Contents (if applicable) may provide more useful information.
19821982 </td>
19831983 </tr>
19841984 </tbody>
31233123 </div>
31243124 <div class="footer">
31253125 <hr>
3126 Generated by GTK-Doc V1.17</div>
3126 Generated by GTK-Doc V1.17.1</div>
31273127 </body>
31283128 </html>
77 <link rel="up" href="ch-protocol.html" title="The Telepathy protocol">
88 <link rel="prev" href="telepathy-glib-enums.html" title="Telepathy protocol enumerations">
99 <link rel="next" href="telepathy-glib-gtypes.html" title="GType factory functions">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
4545 #define <a class="link" href="telepathy-glib-errors.html#TP-ERROR-PREFIX:CAPS" title="TP_ERROR_PREFIX">TP_ERROR_PREFIX</a>
4646 #define <a class="link" href="telepathy-glib-errors.html#TP-ERROR:CAPS" title="TP_ERROR">TP_ERROR</a>
4747 #define <a class="link" href="telepathy-glib-errors.html#TP-TYPE-ERROR:CAPS" title="TP_TYPE_ERROR">TP_TYPE_ERROR</a>
48 enum <a class="link" href="telepathy-glib-errors.html#TpError">TpError</a>;
48 enum <a class="link" href="telepathy-glib-errors.html#TpError-enum" title="enum TpError">TpError</a>;
4949 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-errors.html#tp-g-set-error-invalid-handle-type" title="tp_g_set_error_invalid_handle_type ()">tp_g_set_error_invalid_handle_type</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> type</code></em>,
5050 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
5151 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-errors.html#tp-g-set-error-unsupported-handle-type" title="tp_g_set_error_unsupported_handle_type ()">tp_g_set_error_unsupported_handle_type</a>
102102 #define <a class="link" href="telepathy-glib-errors.html#TP-ERROR-STR-SOFTWARE-UPGRADE-REQUIRED:CAPS" title="TP_ERROR_STR_SOFTWARE_UPGRADE_REQUIRED">TP_ERROR_STR_SOFTWARE_UPGRADE_REQUIRED</a>
103103 #define <a class="link" href="telepathy-glib-errors.html#TP-ERROR-STR-EMERGENCY-CALLS-NOT-SUPPORTED:CAPS" title="TP_ERROR_STR_EMERGENCY_CALLS_NOT_SUPPORTED">TP_ERROR_STR_EMERGENCY_CALLS_NOT_SUPPORTED</a>
104104 #define <a class="link" href="telepathy-glib-errors.html#TP-ERROR-STR-INSUFFICIENT-BALANCE:CAPS" title="TP_ERROR_STR_INSUFFICIENT_BALANCE">TP_ERROR_STR_INSUFFICIENT_BALANCE</a>
105 #define <a class="link" href="telepathy-glib-errors.html#TP-ERROR-STR-MEDIA-CODECS-INCOMPATIBLE:CAPS" title="TP_ERROR_STR_MEDIA_CODECS_INCOMPATIBLE">TP_ERROR_STR_MEDIA_CODECS_INCOMPATIBLE</a>
106 #define <a class="link" href="telepathy-glib-errors.html#TP-ERROR-STR-MEDIA-UNSUPPORTED-TYPE:CAPS" title="TP_ERROR_STR_MEDIA_UNSUPPORTED_TYPE">TP_ERROR_STR_MEDIA_UNSUPPORTED_TYPE</a>
107 #define <a class="link" href="telepathy-glib-errors.html#TP-ERROR-STR-MEDIA-STREAMING-ERROR:CAPS" title="TP_ERROR_STR_MEDIA_STREAMING_ERROR">TP_ERROR_STR_MEDIA_STREAMING_ERROR</a>
105108 </pre>
106109 </div>
107110 <div class="refsect1">
167170 </div>
168171 <hr>
169172 <div class="refsect2">
170 <a name="TpError"></a><h3>enum TpError</h3>
173 <a name="TpError-enum"></a><h3>enum TpError</h3>
171174 <pre class="programlisting">typedef enum {
172175 TP_ERROR_NETWORK_ERROR, /*&lt; nick=NetworkError &gt;*/
173176 TP_ERROR_NOT_IMPLEMENTED, /*&lt; nick=NotImplemented &gt;*/
219222 TP_ERROR_EMERGENCY_CALLS_NOT_SUPPORTED, /*&lt; nick=EmergencyCallsNotSupported &gt;*/
220223 TP_ERROR_SOFTWARE_UPGRADE_REQUIRED, /*&lt; nick=SoftwareUpgradeRequired &gt;*/
221224 TP_ERROR_INSUFFICIENT_BALANCE, /*&lt; nick=InsufficientBalance &gt;*/
225 TP_ERROR_MEDIA_CODECS_INCOMPATIBLE, /*&lt; nick=Media.CodecsIncompatible &gt;*/
226 TP_ERROR_MEDIA_UNSUPPORTED_TYPE, /*&lt; nick=Media.UnsupportedType &gt;*/
227 TP_ERROR_MEDIA_STREAMING_ERROR, /*&lt; nick=Media.StreamingError &gt;*/
222228 } TpError;
223229 </pre>
224230 <p>
594600 credit is required to make this call.
595601 </td>
596602 </tr>
603 <tr>
604 <td><p><a name="TP-ERROR-MEDIA-CODECS-INCOMPATIBLE:CAPS"></a><span class="term"><code class="literal">TP_ERROR_MEDIA_CODECS_INCOMPATIBLE</code></span></p></td>
605 <td> <code class="code">org.freedesktop.Telepathy.Error.Media.CodecsIncompatible</code>:
606 Raised when the local streaming implementation has no codecs in common
607 with the remote side.
608 Since: 0.15.6
609 </td>
610 </tr>
611 <tr>
612 <td><p><a name="TP-ERROR-MEDIA-UNSUPPORTED-TYPE:CAPS"></a><span class="term"><code class="literal">TP_ERROR_MEDIA_UNSUPPORTED_TYPE</code></span></p></td>
613 <td> <code class="code">org.freedesktop.Telepathy.Error.Media.UnsupportedType</code>:
614 The media stream type requested is not supported by either the local or
615 remote side.
616 Since: 0.15.6
617 </td>
618 </tr>
619 <tr>
620 <td><p><a name="TP-ERROR-MEDIA-STREAMING-ERROR:CAPS"></a><span class="term"><code class="literal">TP_ERROR_MEDIA_STREAMING_ERROR</code></span></p></td>
621 <td> <code class="code">org.freedesktop.Telepathy.Error.Media.StreamingError</code>:
622 Raised when the call's streaming implementation has some kind of internal
623 error.
624 Since: 0.15.6
625 </td>
626 </tr>
597627 </tbody>
598628 </table></div>
599629 </div>
11991229 The D-Bus error name org.freedesktop.Telepathy.Error.Rejected
12001230 </p>
12011231 <p>
1202 Raised when an incoming or outgoing &lt;tp:dbus-ref namespace="ofdT.Channel.Type"&gt;Call.DRAFT&lt;/tp:dbus-ref&gt; is rejected by the the receiver.
1232 Raised when an incoming or outgoing &lt;tp:dbus-ref namespace="ofdT.Channel.Type"&gt;Call1&lt;/tp:dbus-ref&gt; is rejected by the the receiver.
12031233 </p>
12041234 </div>
12051235 <hr>
12231253 The D-Bus error name org.freedesktop.Telepathy.Error.Confused
12241254 </p>
12251255 <p>
1226 Raised if a server rejects protocol messages from a connection manager claiming that they do not make sense, two local processes fail to understand each other, or an apparently impossible situation is reached. &lt;tp:rationale&gt; For instance, this would be an appropriate mapping for XMPP's errors bad-format, invalid-xml, etc., which can't happen unless the local (or remote) XMPP implementation is faulty. This is also analogous to &lt;tp:type&gt;Media_Stream_Error&lt;/tp:type&gt;_Invalid_CM_Behavior, &lt;code&gt;TP_DBUS_ERROR_INCONSISTENT&lt;/code&gt; in telepathy-glib, and &lt;code&gt;TELEPATHY_QT4_ERROR_INCONSISTENT&lt;/code&gt; in telepathy-qt4. &lt;/tp:rationale&gt;
1256 Raised if a server rejects protocol messages from a connection manager claiming that they do not make sense, two local processes fail to understand each other, or an apparently impossible situation is reached. &lt;tp:rationale&gt; For instance, this would be an appropriate mapping for XMPP's errors bad-format, invalid-xml, etc., which can't happen unless the local (or remote) XMPP implementation is faulty. This is also analogous to &lt;tp:value-ref type="Media_Stream_Error"&gt;Invalid_CM_Behavior&lt;/tp:value-ref&gt;, &lt;code&gt;TP_DBUS_ERROR_INCONSISTENT&lt;/code&gt; in telepathy-glib, and &lt;code&gt;TELEPATHY_QT4_ERROR_INCONSISTENT&lt;/code&gt; in telepathy-qt4. &lt;/tp:rationale&gt;
12271257 </p>
12281258 </div>
12291259 <hr>
12711301 The D-Bus error name org.freedesktop.Telepathy.Error.InsufficientBalance
12721302 </p>
12731303 <p>
1274 &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;Raised if the user has insufficient &lt;tp:dbus-ref namespace="ofdT.Connection.Interface"&gt;Balance&lt;/tp:dbus-ref&gt; to place a call or send a message.&lt;/p&gt; &lt;p&gt;The key 'balance-required' MAY be included in &lt;tp:dbus-ref namespace="ofdT.Channel.Type.Call.DRAFT"&gt;CallStateDetails&lt;/tp:dbus-ref&gt; or a delivery report's &lt;tp:type&gt;Message_Part&lt;/tp:type&gt; (with the same units and scale as &lt;tp:dbus-ref namespace="ofdT.Connection.Interface.Balance"&gt;AccountBalance&lt;/tp:dbus-ref&gt;) to indicate how much credit is required to make this call or send this message.&lt;/p&gt;
1304 &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;Raised if the user has insufficient &lt;tp:dbus-ref namespace="ofdT.Connection.Interface"&gt;Balance&lt;/tp:dbus-ref&gt; to place a call or send a message.&lt;/p&gt; &lt;p&gt;The key 'balance-required' MAY be included in &lt;tp:dbus-ref namespace="ofdT.Channel.Type.Call1"&gt;CallStateDetails&lt;/tp:dbus-ref&gt; or a delivery report's &lt;tp:type&gt;Message_Part&lt;/tp:type&gt; (with the same units and scale as &lt;tp:dbus-ref namespace="ofdT.Connection.Interface.Balance"&gt;AccountBalance&lt;/tp:dbus-ref&gt;) to indicate how much credit is required to make this call or send this message.&lt;/p&gt;
1305 </p>
1306 </div>
1307 <hr>
1308 <div class="refsect2">
1309 <a name="TP-ERROR-STR-MEDIA-CODECS-INCOMPATIBLE:CAPS"></a><h3>TP_ERROR_STR_MEDIA_CODECS_INCOMPATIBLE</h3>
1310 <pre class="programlisting">#define TP_ERROR_STR_MEDIA_CODECS_INCOMPATIBLE "org.freedesktop.Telepathy.Error.Media.CodecsIncompatible"
1311 </pre>
1312 <p>
1313 The D-Bus error name org.freedesktop.Telepathy.Error.Media.CodecsIncompatible
1314 </p>
1315 <p>
1316 Raised when the local streaming implementation has no codecs in common with the remote side. &lt;tp:rationale&gt; This corresponds to &lt;tp:value-ref type="Call_State_Change_Reason"&gt;Media_Error&lt;/tp:value-ref&gt;. &lt;/tp:rationale&gt;
1317 </p>
1318 </div>
1319 <hr>
1320 <div class="refsect2">
1321 <a name="TP-ERROR-STR-MEDIA-UNSUPPORTED-TYPE:CAPS"></a><h3>TP_ERROR_STR_MEDIA_UNSUPPORTED_TYPE</h3>
1322 <pre class="programlisting">#define TP_ERROR_STR_MEDIA_UNSUPPORTED_TYPE "org.freedesktop.Telepathy.Error.Media.UnsupportedType"
1323 </pre>
1324 <p>
1325 The D-Bus error name org.freedesktop.Telepathy.Error.Media.UnsupportedType
1326 </p>
1327 <p>
1328 The media stream type requested is not supported by either the local or remote side. &lt;tp:rationale&gt; This corresponds to &lt;tp:value-ref type="Call_State_Change_Reason"&gt;Media_Error&lt;/tp:value-ref&gt;. &lt;/tp:rationale&gt;
1329 </p>
1330 </div>
1331 <hr>
1332 <div class="refsect2">
1333 <a name="TP-ERROR-STR-MEDIA-STREAMING-ERROR:CAPS"></a><h3>TP_ERROR_STR_MEDIA_STREAMING_ERROR</h3>
1334 <pre class="programlisting">#define TP_ERROR_STR_MEDIA_STREAMING_ERROR "org.freedesktop.Telepathy.Error.Media.StreamingError"
1335 </pre>
1336 <p>
1337 The D-Bus error name org.freedesktop.Telepathy.Error.Media.StreamingError
1338 </p>
1339 <p>
1340 Raised when the call's streaming implementation has some kind of internal error. &lt;tp:rationale&gt; This corresponds to &lt;tp:value-ref type="Call_State_Change_Reason"&gt;Internal_Error&lt;/tp:value-ref&gt;. &lt;/tp:rationale&gt;
12751341 </p>
12761342 </div>
12771343 </div>
12781344 </div>
12791345 <div class="footer">
12801346 <hr>
1281 Generated by GTK-Doc V1.17</div>
1347 Generated by GTK-Doc V1.17.1</div>
12821348 </body>
12831349 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-text-channel.html" title="TpTextChannel">
99 <link rel="next" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
4747
4848 struct <a class="link" href="telepathy-glib-file-transfer-channel.html#TpFileTransferChannel-struct" title="struct TpFileTransferChannel">TpFileTransferChannel</a>;
4949 struct <a class="link" href="telepathy-glib-file-transfer-channel.html#TpFileTransferChannelClass" title="struct TpFileTransferChannelClass">TpFileTransferChannelClass</a>;
50 <a class="link" href="telepathy-glib-file-transfer-channel.html#TpFileTransferChannel"><span class="returnvalue">TpFileTransferChannel</span></a> * <a class="link" href="telepathy-glib-file-transfer-channel.html#tp-file-transfer-channel-new" title="tp_file_transfer_channel_new ()">tp_file_transfer_channel_new</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a> *conn</code></em>,
50 <a class="link" href="telepathy-glib-file-transfer-channel.html#TpFileTransferChannel"><span class="returnvalue">TpFileTransferChannel</span></a> * <a class="link" href="telepathy-glib-file-transfer-channel.html#tp-file-transfer-channel-new" title="tp_file_transfer_channel_new ()">tp_file_transfer_channel_new</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a> *conn</code></em>,
5151 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
5252 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *immutable_properties</code></em>,
5353 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
122122 <hr>
123123 <div class="refsect2">
124124 <a name="tp-file-transfer-channel-new"></a><h3>tp_file_transfer_channel_new ()</h3>
125 <pre class="programlisting"><a class="link" href="telepathy-glib-file-transfer-channel.html#TpFileTransferChannel"><span class="returnvalue">TpFileTransferChannel</span></a> * tp_file_transfer_channel_new (<em class="parameter"><code><a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a> *conn</code></em>,
125 <pre class="programlisting"><a class="link" href="telepathy-glib-file-transfer-channel.html#TpFileTransferChannel"><span class="returnvalue">TpFileTransferChannel</span></a> * tp_file_transfer_channel_new (<em class="parameter"><code><a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a> *conn</code></em>,
126126 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
127127 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *immutable_properties</code></em>,
128128 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
413413 </div>
414414 <div class="footer">
415415 <hr>
416 Generated by GTK-Doc V1.17</div>
416 Generated by GTK-Doc V1.17.1</div>
417417 </body>
418418 </html>
77 <link rel="up" href="ch-utilities.html" title="Utilities">
88 <link rel="prev" href="telepathy-glib-util.html" title="Utilities">
99 <link rel="next" href="telepathy-glib-debug.html" title="Common debug support">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
233233 </div>
234234 <div class="footer">
235235 <hr>
236 Generated by GTK-Doc V1.17</div>
236 Generated by GTK-Doc V1.17.1</div>
237237 </body>
238238 </html>
77 <link rel="up" href="ch-protocol.html" title="The Telepathy protocol">
88 <link rel="prev" href="telepathy-glib-errors.html" title="Telepathy protocol errors">
99 <link rel="next" href="TpChannelIface.html" title="TpChannelIface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
32983298 The minimum interval between two regular RTCP packets in
32993299 milliseconds for this content. If no special value is desired, one
33003300 should put MAXUINT (0xFFFFFFFF).
3301 </p>
3302 <p>
3303 Implementors and users of Call's
3304 &lt;tp:dbus-ref namespace="ofdT.Call1.Content.MediaDescription.Interface"&gt;
3305 RTCPFeedback
3306 &lt;/tp:dbus-ref&gt;
3307 should not use the MAXUINT default.
3308 Instead, in RTP/AVP, the default should be 5000 (5 seconds).
3309 If using the RTP/AVPF profile, it can be set to a lower value,
3310 the default being 0.
33013311
33023312 </p>
33033313 <p>
33093319 <p>
33103320 Member 0 (D-Bus type <code class="literal">u</code>,
33113321 named <code class="literal">RTCPMinimumInterval</code>):
3312 The minimum interval between two regular RTCP packets in milliseconds for this content. If no special value is desired, one should put MAXUINT (0xFFFFFFFF).
3322 The minimum interval between two regular RTCP packets in milliseconds for this content. If no special value is desired, one should put MAXUINT (0xFFFFFFFF). Implementors and users of Call's &lt;tp:dbus-ref namespace="ofdT.Call1.Content.MediaDescription.Interface"&gt;RTCPFeedback&lt;/tp:dbus-ref&gt; should not use the MAXUINT default. Instead, in RTP/AVP, the default should be 5000 (5 seconds). If using the RTP/AVPF profile, it can be set to a lower value, the default being 0.
33133323 </p>
33143324 <p>
33153325 Member 1 (D-Bus type <code class="literal">a(sss)</code>,
38113821 </div>
38123822 <div class="footer">
38133823 <hr>
3814 Generated by GTK-Doc V1.17</div>
3824 Generated by GTK-Doc V1.17.1</div>
38153825 </body>
38163826 </html>
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="telepathy-glib-add-dispatch-operation-context.html" title="TpAddDispatchOperationContext">
99 <link rel="next" href="telepathy-glib-simple-observer.html" title="TpSimpleObserver">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
354354 </div>
355355 <div class="footer">
356356 <hr>
357 Generated by GTK-Doc V1.17</div>
357 Generated by GTK-Doc V1.17.1</div>
358358 </body>
359359 </html>
77 <link rel="up" href="ch-service-handles.html" title="Service-side handle repositories">
88 <link rel="prev" href="ch-service-handles.html" title="Service-side handle repositories">
99 <link rel="next" href="TpStaticHandleRepo.html" title="TpStaticHandleRepo">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
12891289 </div>
12901290 <div class="footer">
12911291 <hr>
1292 Generated by GTK-Doc V1.17</div>
1292 Generated by GTK-Doc V1.17.1</div>
12931293 </body>
12941294 </html>
77 <link rel="up" href="ch-protocol.html" title="The Telepathy protocol">
88 <link rel="prev" href="telepathy-glib-defs.html" title="Miscellaneous definitions">
99 <link rel="next" href="telepathy-glib-interfaces.html" title="Telepathy protocol interface and property names">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
150150 </div>
151151 <div class="footer">
152152 <hr>
153 Generated by GTK-Doc V1.17</div>
153 Generated by GTK-Doc V1.17.1</div>
154154 </body>
155155 </html>
77 <link rel="up" href="ch-protocol.html" title="The Telepathy protocol">
88 <link rel="prev" href="telepathy-glib-handle.html" title="TpHandle">
99 <link rel="next" href="telepathy-glib-enums.html" title="Telepathy protocol enumerations">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
156156 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-HOLD:CAPS" title="TP_IFACE_QUARK_CHANNEL_INTERFACE_HOLD">TP_IFACE_QUARK_CHANNEL_INTERFACE_HOLD</a>
157157 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-PASSWORD:CAPS" title="TP_IFACE_CHANNEL_INTERFACE_PASSWORD">TP_IFACE_CHANNEL_INTERFACE_PASSWORD</a>
158158 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-PASSWORD:CAPS" title="TP_IFACE_QUARK_CHANNEL_INTERFACE_PASSWORD">TP_IFACE_QUARK_CHANNEL_INTERFACE_PASSWORD</a>
159 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-ROOM:CAPS" title="TP_IFACE_CHANNEL_INTERFACE_ROOM">TP_IFACE_CHANNEL_INTERFACE_ROOM</a>
160 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-ROOM:CAPS" title="TP_IFACE_QUARK_CHANNEL_INTERFACE_ROOM">TP_IFACE_QUARK_CHANNEL_INTERFACE_ROOM</a>
161 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-ROOM-CONFIG:CAPS" title="TP_IFACE_CHANNEL_INTERFACE_ROOM_CONFIG">TP_IFACE_CHANNEL_INTERFACE_ROOM_CONFIG</a>
162 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-ROOM-CONFIG:CAPS" title="TP_IFACE_QUARK_CHANNEL_INTERFACE_ROOM_CONFIG">TP_IFACE_QUARK_CHANNEL_INTERFACE_ROOM_CONFIG</a>
159163 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-SASL-AUTHENTICATION:CAPS" title="TP_IFACE_CHANNEL_INTERFACE_SASL_AUTHENTICATION">TP_IFACE_CHANNEL_INTERFACE_SASL_AUTHENTICATION</a>
160164 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-SASL-AUTHENTICATION:CAPS" title="TP_IFACE_QUARK_CHANNEL_INTERFACE_SASL_AUTHENTICATION">TP_IFACE_QUARK_CHANNEL_INTERFACE_SASL_AUTHENTICATION</a>
161165 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-SECURABLE:CAPS" title="TP_IFACE_CHANNEL_INTERFACE_SECURABLE">TP_IFACE_CHANNEL_INTERFACE_SECURABLE</a>
162166 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-SECURABLE:CAPS" title="TP_IFACE_QUARK_CHANNEL_INTERFACE_SECURABLE">TP_IFACE_QUARK_CHANNEL_INTERFACE_SECURABLE</a>
163167 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-SMS:CAPS" title="TP_IFACE_CHANNEL_INTERFACE_SMS">TP_IFACE_CHANNEL_INTERFACE_SMS</a>
164168 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-SMS:CAPS" title="TP_IFACE_QUARK_CHANNEL_INTERFACE_SMS">TP_IFACE_QUARK_CHANNEL_INTERFACE_SMS</a>
169 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-SUBJECT:CAPS" title="TP_IFACE_CHANNEL_INTERFACE_SUBJECT">TP_IFACE_CHANNEL_INTERFACE_SUBJECT</a>
170 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-SUBJECT:CAPS" title="TP_IFACE_QUARK_CHANNEL_INTERFACE_SUBJECT">TP_IFACE_QUARK_CHANNEL_INTERFACE_SUBJECT</a>
165171 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-MEDIA-SIGNALLING:CAPS" title="TP_IFACE_CHANNEL_INTERFACE_MEDIA_SIGNALLING">TP_IFACE_CHANNEL_INTERFACE_MEDIA_SIGNALLING</a>
166172 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-MEDIA-SIGNALLING:CAPS" title="TP_IFACE_QUARK_CHANNEL_INTERFACE_MEDIA_SIGNALLING">TP_IFACE_QUARK_CHANNEL_INTERFACE_MEDIA_SIGNALLING</a>
167173 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-MESSAGES:CAPS" title="TP_IFACE_CHANNEL_INTERFACE_MESSAGES">TP_IFACE_CHANNEL_INTERFACE_MESSAGES</a>
255261 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-GROUP-HANDLE-OWNERS:CAPS" title="TP_PROP_CHANNEL_INTERFACE_GROUP_HANDLE_OWNERS">TP_PROP_CHANNEL_INTERFACE_GROUP_HANDLE_OWNERS</a>
256262 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-GROUP-LOCAL-PENDING-MEMBERS:CAPS" title="TP_PROP_CHANNEL_INTERFACE_GROUP_LOCAL_PENDING_MEMBERS">TP_PROP_CHANNEL_INTERFACE_GROUP_LOCAL_PENDING_MEMBERS</a>
257263 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-GROUP-MEMBERS:CAPS" title="TP_PROP_CHANNEL_INTERFACE_GROUP_MEMBERS">TP_PROP_CHANNEL_INTERFACE_GROUP_MEMBERS</a>
264 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-GROUP-MEMBER-IDENTIFIERS:CAPS" title="TP_PROP_CHANNEL_INTERFACE_GROUP_MEMBER_IDENTIFIERS">TP_PROP_CHANNEL_INTERFACE_GROUP_MEMBER_IDENTIFIERS</a>
258265 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-GROUP-REMOTE-PENDING-MEMBERS:CAPS" title="TP_PROP_CHANNEL_INTERFACE_GROUP_REMOTE_PENDING_MEMBERS">TP_PROP_CHANNEL_INTERFACE_GROUP_REMOTE_PENDING_MEMBERS</a>
259266 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-GROUP-SELF-HANDLE:CAPS" title="TP_PROP_CHANNEL_INTERFACE_GROUP_SELF_HANDLE">TP_PROP_CHANNEL_INTERFACE_GROUP_SELF_HANDLE</a>
260267 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-MESSAGES-DELIVERY-REPORTING-SUPPORT:CAPS" title="TP_PROP_CHANNEL_INTERFACE_MESSAGES_DELIVERY_REPORTING_SUPPORT">TP_PROP_CHANNEL_INTERFACE_MESSAGES_DELIVERY_REPORTING_SUPPORT</a>
262269 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-MESSAGES-MESSAGE-TYPES:CAPS" title="TP_PROP_CHANNEL_INTERFACE_MESSAGES_MESSAGE_TYPES">TP_PROP_CHANNEL_INTERFACE_MESSAGES_MESSAGE_TYPES</a>
263270 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-MESSAGES-PENDING-MESSAGES:CAPS" title="TP_PROP_CHANNEL_INTERFACE_MESSAGES_PENDING_MESSAGES">TP_PROP_CHANNEL_INTERFACE_MESSAGES_PENDING_MESSAGES</a>
264271 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-MESSAGES-SUPPORTED-CONTENT-TYPES:CAPS" title="TP_PROP_CHANNEL_INTERFACE_MESSAGES_SUPPORTED_CONTENT_TYPES">TP_PROP_CHANNEL_INTERFACE_MESSAGES_SUPPORTED_CONTENT_TYPES</a>
272 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-ANONYMOUS:CAPS" title="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_ANONYMOUS">TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_ANONYMOUS</a>
273 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-CAN-UPDATE-CONFIGURATION:CAPS" title="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_CAN_UPDATE_CONFIGURATION">TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_CAN_UPDATE_CONFIGURATION</a>
274 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-CONFIGURATION-RETRIEVED:CAPS" title="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_CONFIGURATION_RETRIEVED">TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_CONFIGURATION_RETRIEVED</a>
275 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-DESCRIPTION:CAPS" title="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_DESCRIPTION">TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_DESCRIPTION</a>
276 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-INVITEONLY:CAPS" title="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_INVITEONLY">TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_INVITEONLY</a>
277 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-LIMIT:CAPS" title="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_LIMIT">TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_LIMIT</a>
278 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-MODERATED:CAPS" title="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_MODERATED">TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_MODERATED</a>
279 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-MUTABLE-PROPERTIES:CAPS" title="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_MUTABLE_PROPERTIES">TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_MUTABLE_PROPERTIES</a>
280 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-PASSWORD:CAPS" title="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_PASSWORD">TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_PASSWORD</a>
281 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-PASSWORD-PROTECTED:CAPS" title="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_PASSWORD_PROTECTED">TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_PASSWORD_PROTECTED</a>
282 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-PERSISTENT:CAPS" title="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_PERSISTENT">TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_PERSISTENT</a>
283 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-PRIVATE:CAPS" title="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_PRIVATE">TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_PRIVATE</a>
284 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-TITLE:CAPS" title="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_TITLE">TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_TITLE</a>
285 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-ROOM-NAME:CAPS" title="TP_PROP_CHANNEL_INTERFACE_ROOM_ROOM_NAME">TP_PROP_CHANNEL_INTERFACE_ROOM_ROOM_NAME</a>
286 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-SERVER:CAPS" title="TP_PROP_CHANNEL_INTERFACE_ROOM_SERVER">TP_PROP_CHANNEL_INTERFACE_ROOM_SERVER</a>
265287 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SASL-AUTHENTICATION-AUTHORIZATION-IDENTITY:CAPS" title="TP_PROP_CHANNEL_INTERFACE_SASL_AUTHENTICATION_AUTHORIZATION_IDENTITY">TP_PROP_CHANNEL_INTERFACE_SASL_AUTHENTICATION_AUTHORIZATION_IDENTITY</a>
266288 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SASL-AUTHENTICATION-AVAILABLE-MECHANISMS:CAPS" title="TP_PROP_CHANNEL_INTERFACE_SASL_AUTHENTICATION_AVAILABLE_MECHANISMS">TP_PROP_CHANNEL_INTERFACE_SASL_AUTHENTICATION_AVAILABLE_MECHANISMS</a>
267289 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SASL-AUTHENTICATION-CAN-TRY-AGAIN:CAPS" title="TP_PROP_CHANNEL_INTERFACE_SASL_AUTHENTICATION_CAN_TRY_AGAIN">TP_PROP_CHANNEL_INTERFACE_SASL_AUTHENTICATION_CAN_TRY_AGAIN</a>
278300 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SERVICE-POINT-INITIAL-SERVICE-POINT:CAPS" title="TP_PROP_CHANNEL_INTERFACE_SERVICE_POINT_INITIAL_SERVICE_POINT">TP_PROP_CHANNEL_INTERFACE_SERVICE_POINT_INITIAL_SERVICE_POINT</a>
279301 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SMS-FLASH:CAPS" title="TP_PROP_CHANNEL_INTERFACE_SMS_FLASH">TP_PROP_CHANNEL_INTERFACE_SMS_FLASH</a>
280302 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SMS-SMS-CHANNEL:CAPS" title="TP_PROP_CHANNEL_INTERFACE_SMS_SMS_CHANNEL">TP_PROP_CHANNEL_INTERFACE_SMS_SMS_CHANNEL</a>
303 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SUBJECT-ACTOR:CAPS" title="TP_PROP_CHANNEL_INTERFACE_SUBJECT_ACTOR">TP_PROP_CHANNEL_INTERFACE_SUBJECT_ACTOR</a>
304 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SUBJECT-ACTOR-HANDLE:CAPS" title="TP_PROP_CHANNEL_INTERFACE_SUBJECT_ACTOR_HANDLE">TP_PROP_CHANNEL_INTERFACE_SUBJECT_ACTOR_HANDLE</a>
305 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SUBJECT-CAN-SET:CAPS" title="TP_PROP_CHANNEL_INTERFACE_SUBJECT_CAN_SET">TP_PROP_CHANNEL_INTERFACE_SUBJECT_CAN_SET</a>
306 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SUBJECT-SUBJECT:CAPS" title="TP_PROP_CHANNEL_INTERFACE_SUBJECT_SUBJECT">TP_PROP_CHANNEL_INTERFACE_SUBJECT_SUBJECT</a>
307 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SUBJECT-TIMESTAMP:CAPS" title="TP_PROP_CHANNEL_INTERFACE_SUBJECT_TIMESTAMP">TP_PROP_CHANNEL_INTERFACE_SUBJECT_TIMESTAMP</a>
281308 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-TUBE-PARAMETERS:CAPS" title="TP_PROP_CHANNEL_INTERFACE_TUBE_PARAMETERS">TP_PROP_CHANNEL_INTERFACE_TUBE_PARAMETERS</a>
282309 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-TUBE-STATE:CAPS" title="TP_PROP_CHANNEL_INTERFACE_TUBE_STATE">TP_PROP_CHANNEL_INTERFACE_TUBE_STATE</a>
283310 #define <a class="link" href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-SERVER-AUTHENTICATION-AUTHENTICATION-METHOD:CAPS" title="TP_PROP_CHANNEL_TYPE_SERVER_AUTHENTICATION_AUTHENTICATION_METHOD">TP_PROP_CHANNEL_TYPE_SERVER_AUTHENTICATION_AUTHENTICATION_METHOD</a>
13791406 </div>
13801407 <hr>
13811408 <div class="refsect2">
1409 <a name="TP-IFACE-CHANNEL-INTERFACE-ROOM:CAPS"></a><h3>TP_IFACE_CHANNEL_INTERFACE_ROOM</h3>
1410 <pre class="programlisting">#define TP_IFACE_CHANNEL_INTERFACE_ROOM</pre>
1411 <p>
1412 The interface name "org.freedesktop.Telepathy.Channel.Interface.Room2"
1413 </p>
1414 </div>
1415 <hr>
1416 <div class="refsect2">
1417 <a name="TP-IFACE-QUARK-CHANNEL-INTERFACE-ROOM:CAPS"></a><h3>TP_IFACE_QUARK_CHANNEL_INTERFACE_ROOM</h3>
1418 <pre class="programlisting">#define TP_IFACE_QUARK_CHANNEL_INTERFACE_ROOM</pre>
1419 <p>
1420 Expands to a call to a function that returns a quark for the interface name "org.freedesktop.Telepathy.Channel.Interface.Room2"
1421 </p>
1422 </div>
1423 <hr>
1424 <div class="refsect2">
1425 <a name="TP-IFACE-CHANNEL-INTERFACE-ROOM-CONFIG:CAPS"></a><h3>TP_IFACE_CHANNEL_INTERFACE_ROOM_CONFIG</h3>
1426 <pre class="programlisting">#define TP_IFACE_CHANNEL_INTERFACE_ROOM_CONFIG</pre>
1427 <p>
1428 The interface name "org.freedesktop.Telepathy.Channel.Interface.RoomConfig1"
1429 </p>
1430 </div>
1431 <hr>
1432 <div class="refsect2">
1433 <a name="TP-IFACE-QUARK-CHANNEL-INTERFACE-ROOM-CONFIG:CAPS"></a><h3>TP_IFACE_QUARK_CHANNEL_INTERFACE_ROOM_CONFIG</h3>
1434 <pre class="programlisting">#define TP_IFACE_QUARK_CHANNEL_INTERFACE_ROOM_CONFIG</pre>
1435 <p>
1436 Expands to a call to a function that returns a quark for the interface name "org.freedesktop.Telepathy.Channel.Interface.RoomConfig1"
1437 </p>
1438 </div>
1439 <hr>
1440 <div class="refsect2">
13821441 <a name="TP-IFACE-CHANNEL-INTERFACE-SASL-AUTHENTICATION:CAPS"></a><h3>TP_IFACE_CHANNEL_INTERFACE_SASL_AUTHENTICATION</h3>
13831442 <pre class="programlisting">#define TP_IFACE_CHANNEL_INTERFACE_SASL_AUTHENTICATION</pre>
13841443 <p>
14271486 </div>
14281487 <hr>
14291488 <div class="refsect2">
1489 <a name="TP-IFACE-CHANNEL-INTERFACE-SUBJECT:CAPS"></a><h3>TP_IFACE_CHANNEL_INTERFACE_SUBJECT</h3>
1490 <pre class="programlisting">#define TP_IFACE_CHANNEL_INTERFACE_SUBJECT</pre>
1491 <p>
1492 The interface name "org.freedesktop.Telepathy.Channel.Interface.Subject2"
1493 </p>
1494 </div>
1495 <hr>
1496 <div class="refsect2">
1497 <a name="TP-IFACE-QUARK-CHANNEL-INTERFACE-SUBJECT:CAPS"></a><h3>TP_IFACE_QUARK_CHANNEL_INTERFACE_SUBJECT</h3>
1498 <pre class="programlisting">#define TP_IFACE_QUARK_CHANNEL_INTERFACE_SUBJECT</pre>
1499 <p>
1500 Expands to a call to a function that returns a quark for the interface name "org.freedesktop.Telepathy.Channel.Interface.Subject2"
1501 </p>
1502 </div>
1503 <hr>
1504 <div class="refsect2">
14301505 <a name="TP-IFACE-CHANNEL-INTERFACE-MEDIA-SIGNALLING:CAPS"></a><h3>TP_IFACE_CHANNEL_INTERFACE_MEDIA_SIGNALLING</h3>
14311506 <pre class="programlisting">#define TP_IFACE_CHANNEL_INTERFACE_MEDIA_SIGNALLING</pre>
14321507 <p>
21712246 </div>
21722247 <hr>
21732248 <div class="refsect2">
2249 <a name="TP-PROP-CHANNEL-INTERFACE-GROUP-MEMBER-IDENTIFIERS:CAPS"></a><h3>TP_PROP_CHANNEL_INTERFACE_GROUP_MEMBER_IDENTIFIERS</h3>
2250 <pre class="programlisting">#define TP_PROP_CHANNEL_INTERFACE_GROUP_MEMBER_IDENTIFIERS</pre>
2251 <p>
2252 The fully-qualified property name "org.freedesktop.Telepathy.Channel.Interface.Group.MemberIdentifiers"
2253 </p>
2254 </div>
2255 <hr>
2256 <div class="refsect2">
21742257 <a name="TP-PROP-CHANNEL-INTERFACE-GROUP-REMOTE-PENDING-MEMBERS:CAPS"></a><h3>TP_PROP_CHANNEL_INTERFACE_GROUP_REMOTE_PENDING_MEMBERS</h3>
21752258 <pre class="programlisting">#define TP_PROP_CHANNEL_INTERFACE_GROUP_REMOTE_PENDING_MEMBERS</pre>
21762259 <p>
22272310 </div>
22282311 <hr>
22292312 <div class="refsect2">
2313 <a name="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-ANONYMOUS:CAPS"></a><h3>TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_ANONYMOUS</h3>
2314 <pre class="programlisting">#define TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_ANONYMOUS</pre>
2315 <p>
2316 The fully-qualified property name "org.freedesktop.Telepathy.Channel.Interface.RoomConfig1.Anonymous"
2317 </p>
2318 </div>
2319 <hr>
2320 <div class="refsect2">
2321 <a name="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-CAN-UPDATE-CONFIGURATION:CAPS"></a><h3>TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_CAN_UPDATE_CONFIGURATION</h3>
2322 <pre class="programlisting">#define TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_CAN_UPDATE_CONFIGURATION</pre>
2323 <p>
2324 The fully-qualified property name "org.freedesktop.Telepathy.Channel.Interface.RoomConfig1.CanUpdateConfiguration"
2325 </p>
2326 </div>
2327 <hr>
2328 <div class="refsect2">
2329 <a name="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-CONFIGURATION-RETRIEVED:CAPS"></a><h3>TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_CONFIGURATION_RETRIEVED</h3>
2330 <pre class="programlisting">#define TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_CONFIGURATION_RETRIEVED</pre>
2331 <p>
2332 The fully-qualified property name "org.freedesktop.Telepathy.Channel.Interface.RoomConfig1.ConfigurationRetrieved"
2333 </p>
2334 </div>
2335 <hr>
2336 <div class="refsect2">
2337 <a name="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-DESCRIPTION:CAPS"></a><h3>TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_DESCRIPTION</h3>
2338 <pre class="programlisting">#define TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_DESCRIPTION</pre>
2339 <p>
2340 The fully-qualified property name "org.freedesktop.Telepathy.Channel.Interface.RoomConfig1.Description"
2341 </p>
2342 </div>
2343 <hr>
2344 <div class="refsect2">
2345 <a name="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-INVITEONLY:CAPS"></a><h3>TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_INVITEONLY</h3>
2346 <pre class="programlisting">#define TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_INVITEONLY</pre>
2347 <p>
2348 The fully-qualified property name "org.freedesktop.Telepathy.Channel.Interface.RoomConfig1.InviteOnly"
2349 </p>
2350 </div>
2351 <hr>
2352 <div class="refsect2">
2353 <a name="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-LIMIT:CAPS"></a><h3>TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_LIMIT</h3>
2354 <pre class="programlisting">#define TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_LIMIT</pre>
2355 <p>
2356 The fully-qualified property name "org.freedesktop.Telepathy.Channel.Interface.RoomConfig1.Limit"
2357 </p>
2358 </div>
2359 <hr>
2360 <div class="refsect2">
2361 <a name="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-MODERATED:CAPS"></a><h3>TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_MODERATED</h3>
2362 <pre class="programlisting">#define TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_MODERATED</pre>
2363 <p>
2364 The fully-qualified property name "org.freedesktop.Telepathy.Channel.Interface.RoomConfig1.Moderated"
2365 </p>
2366 </div>
2367 <hr>
2368 <div class="refsect2">
2369 <a name="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-MUTABLE-PROPERTIES:CAPS"></a><h3>TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_MUTABLE_PROPERTIES</h3>
2370 <pre class="programlisting">#define TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_MUTABLE_PROPERTIES</pre>
2371 <p>
2372 The fully-qualified property name "org.freedesktop.Telepathy.Channel.Interface.RoomConfig1.MutableProperties"
2373 </p>
2374 </div>
2375 <hr>
2376 <div class="refsect2">
2377 <a name="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-PASSWORD:CAPS"></a><h3>TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_PASSWORD</h3>
2378 <pre class="programlisting">#define TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_PASSWORD</pre>
2379 <p>
2380 The fully-qualified property name "org.freedesktop.Telepathy.Channel.Interface.RoomConfig1.Password"
2381 </p>
2382 </div>
2383 <hr>
2384 <div class="refsect2">
2385 <a name="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-PASSWORD-PROTECTED:CAPS"></a><h3>TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_PASSWORD_PROTECTED</h3>
2386 <pre class="programlisting">#define TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_PASSWORD_PROTECTED</pre>
2387 <p>
2388 The fully-qualified property name "org.freedesktop.Telepathy.Channel.Interface.RoomConfig1.PasswordProtected"
2389 </p>
2390 </div>
2391 <hr>
2392 <div class="refsect2">
2393 <a name="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-PERSISTENT:CAPS"></a><h3>TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_PERSISTENT</h3>
2394 <pre class="programlisting">#define TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_PERSISTENT</pre>
2395 <p>
2396 The fully-qualified property name "org.freedesktop.Telepathy.Channel.Interface.RoomConfig1.Persistent"
2397 </p>
2398 </div>
2399 <hr>
2400 <div class="refsect2">
2401 <a name="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-PRIVATE:CAPS"></a><h3>TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_PRIVATE</h3>
2402 <pre class="programlisting">#define TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_PRIVATE</pre>
2403 <p>
2404 The fully-qualified property name "org.freedesktop.Telepathy.Channel.Interface.RoomConfig1.Private"
2405 </p>
2406 </div>
2407 <hr>
2408 <div class="refsect2">
2409 <a name="TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-TITLE:CAPS"></a><h3>TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_TITLE</h3>
2410 <pre class="programlisting">#define TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_TITLE</pre>
2411 <p>
2412 The fully-qualified property name "org.freedesktop.Telepathy.Channel.Interface.RoomConfig1.Title"
2413 </p>
2414 </div>
2415 <hr>
2416 <div class="refsect2">
2417 <a name="TP-PROP-CHANNEL-INTERFACE-ROOM-ROOM-NAME:CAPS"></a><h3>TP_PROP_CHANNEL_INTERFACE_ROOM_ROOM_NAME</h3>
2418 <pre class="programlisting">#define TP_PROP_CHANNEL_INTERFACE_ROOM_ROOM_NAME</pre>
2419 <p>
2420 The fully-qualified property name "org.freedesktop.Telepathy.Channel.Interface.Room2.RoomName"
2421 </p>
2422 </div>
2423 <hr>
2424 <div class="refsect2">
2425 <a name="TP-PROP-CHANNEL-INTERFACE-ROOM-SERVER:CAPS"></a><h3>TP_PROP_CHANNEL_INTERFACE_ROOM_SERVER</h3>
2426 <pre class="programlisting">#define TP_PROP_CHANNEL_INTERFACE_ROOM_SERVER</pre>
2427 <p>
2428 The fully-qualified property name "org.freedesktop.Telepathy.Channel.Interface.Room2.Server"
2429 </p>
2430 </div>
2431 <hr>
2432 <div class="refsect2">
22302433 <a name="TP-PROP-CHANNEL-INTERFACE-SASL-AUTHENTICATION-AUTHORIZATION-IDENTITY:CAPS"></a><h3>TP_PROP_CHANNEL_INTERFACE_SASL_AUTHENTICATION_AUTHORIZATION_IDENTITY</h3>
22312434 <pre class="programlisting">#define TP_PROP_CHANNEL_INTERFACE_SASL_AUTHENTICATION_AUTHORIZATION_IDENTITY</pre>
22322435 <p>
23552558 </div>
23562559 <hr>
23572560 <div class="refsect2">
2561 <a name="TP-PROP-CHANNEL-INTERFACE-SUBJECT-ACTOR:CAPS"></a><h3>TP_PROP_CHANNEL_INTERFACE_SUBJECT_ACTOR</h3>
2562 <pre class="programlisting">#define TP_PROP_CHANNEL_INTERFACE_SUBJECT_ACTOR</pre>
2563 <p>
2564 The fully-qualified property name "org.freedesktop.Telepathy.Channel.Interface.Subject2.Actor"
2565 </p>
2566 </div>
2567 <hr>
2568 <div class="refsect2">
2569 <a name="TP-PROP-CHANNEL-INTERFACE-SUBJECT-ACTOR-HANDLE:CAPS"></a><h3>TP_PROP_CHANNEL_INTERFACE_SUBJECT_ACTOR_HANDLE</h3>
2570 <pre class="programlisting">#define TP_PROP_CHANNEL_INTERFACE_SUBJECT_ACTOR_HANDLE</pre>
2571 <p>
2572 The fully-qualified property name "org.freedesktop.Telepathy.Channel.Interface.Subject2.ActorHandle"
2573 </p>
2574 </div>
2575 <hr>
2576 <div class="refsect2">
2577 <a name="TP-PROP-CHANNEL-INTERFACE-SUBJECT-CAN-SET:CAPS"></a><h3>TP_PROP_CHANNEL_INTERFACE_SUBJECT_CAN_SET</h3>
2578 <pre class="programlisting">#define TP_PROP_CHANNEL_INTERFACE_SUBJECT_CAN_SET</pre>
2579 <p>
2580 The fully-qualified property name "org.freedesktop.Telepathy.Channel.Interface.Subject2.CanSet"
2581 </p>
2582 </div>
2583 <hr>
2584 <div class="refsect2">
2585 <a name="TP-PROP-CHANNEL-INTERFACE-SUBJECT-SUBJECT:CAPS"></a><h3>TP_PROP_CHANNEL_INTERFACE_SUBJECT_SUBJECT</h3>
2586 <pre class="programlisting">#define TP_PROP_CHANNEL_INTERFACE_SUBJECT_SUBJECT</pre>
2587 <p>
2588 The fully-qualified property name "org.freedesktop.Telepathy.Channel.Interface.Subject2.Subject"
2589 </p>
2590 </div>
2591 <hr>
2592 <div class="refsect2">
2593 <a name="TP-PROP-CHANNEL-INTERFACE-SUBJECT-TIMESTAMP:CAPS"></a><h3>TP_PROP_CHANNEL_INTERFACE_SUBJECT_TIMESTAMP</h3>
2594 <pre class="programlisting">#define TP_PROP_CHANNEL_INTERFACE_SUBJECT_TIMESTAMP</pre>
2595 <p>
2596 The fully-qualified property name "org.freedesktop.Telepathy.Channel.Interface.Subject2.Timestamp"
2597 </p>
2598 </div>
2599 <hr>
2600 <div class="refsect2">
23582601 <a name="TP-PROP-CHANNEL-INTERFACE-TUBE-PARAMETERS:CAPS"></a><h3>TP_PROP_CHANNEL_INTERFACE_TUBE_PARAMETERS</h3>
23592602 <pre class="programlisting">#define TP_PROP_CHANNEL_INTERFACE_TUBE_PARAMETERS</pre>
23602603 <p>
34693712 </div>
34703713 <div class="footer">
34713714 <hr>
3472 Generated by GTK-Doc V1.17</div>
3715 Generated by GTK-Doc V1.17.1</div>
34733716 </body>
34743717 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-cli-service-point.html" title="Connection and Channel ServicePoint interfaces">
99 <link rel="next" href="telepathy-glib-account-manager.html" title="TpAccountManager">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
51415141 </div>
51425142 <div class="footer">
51435143 <hr>
5144 Generated by GTK-Doc V1.17</div>
5144 Generated by GTK-Doc V1.17.1</div>
51455145 </body>
51465146 </html>
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="telepathy-glib-base-client.html" title="TpBaseClient">
99 <link rel="next" href="telepathy-glib-add-dispatch-operation-context.html" title="TpAddDispatchOperationContext">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
311311 </div>
312312 <div class="footer">
313313 <hr>
314 Generated by GTK-Doc V1.17</div>
314 Generated by GTK-Doc V1.17.1</div>
315315 </body>
316316 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-connection-manager.html" title="TpConnectionManager">
99 <link rel="next" href="telepathy-glib-connection.html" title="TpConnection">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
6767 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="telepathy-glib-protocol.html#tp-protocol-get-icon-name" title="tp_protocol_get_icon_name ()">tp_protocol_get_icon_name</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-protocol.html#TpProtocol"><span class="type">TpProtocol</span></a> *self</code></em>);
6868 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="telepathy-glib-protocol.html#tp-protocol-get-vcard-field" title="tp_protocol_get_vcard_field ()">tp_protocol_get_vcard_field</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-protocol.html#TpProtocol"><span class="type">TpProtocol</span></a> *self</code></em>);
6969 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * const * <a class="link" href="telepathy-glib-protocol.html#tp-protocol-get-authentication-types" title="tp_protocol_get_authentication_types ()">tp_protocol_get_authentication_types</a>
70 (<em class="parameter"><code><a class="link" href="telepathy-glib-protocol.html#TpProtocol"><span class="type">TpProtocol</span></a> *self</code></em>);
71 <a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements"><span class="returnvalue">TpAvatarRequirements</span></a> * <a class="link" href="telepathy-glib-protocol.html#tp-protocol-get-avatar-requirements" title="tp_protocol_get_avatar_requirements ()">tp_protocol_get_avatar_requirements</a>
7072 (<em class="parameter"><code><a class="link" href="telepathy-glib-protocol.html#TpProtocol"><span class="type">TpProtocol</span></a> *self</code></em>);
7173
7274 <a class="link" href="telepathy-glib-proxy.html#TpProxyPendingCall" title="TpProxyPendingCall"><span class="returnvalue">TpProxyPendingCall</span></a> * <a class="link" href="telepathy-glib-protocol.html#tp-cli-protocol-call-identify-account" title="tp_cli_protocol_call_identify_account ()">tp_cli_protocol_call_identify_account</a>
111113 <a name="telepathy-glib-protocol.properties"></a><h2>Properties</h2>
112114 <pre class="synopsis">
113115 "<a class="link" href="telepathy-glib-protocol.html#TpProtocol--authentication-types" title='The "authentication-types" property'>authentication-types</a>" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a> : Read
116 "<a class="link" href="telepathy-glib-protocol.html#TpProtocol--avatar-requirements" title='The "avatar-requirements" property'>avatar-requirements</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> : Read
114117 "<a class="link" href="telepathy-glib-protocol.html#TpProtocol--capabilities" title='The "capabilities" property'>capabilities</a>" <a class="link" href="telepathy-glib-capabilities.html#TpCapabilities"><span class="type">TpCapabilities</span></a>* : Read
115118 "<a class="link" href="telepathy-glib-protocol.html#TpProtocol--english-name" title='The "english-name" property'>english-name</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read
116119 "<a class="link" href="telepathy-glib-protocol.html#TpProtocol--icon-name" title='The "icon-name" property'>icon-name</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read
514517 </tbody>
515518 </table></div>
516519 <p class="since">Since 0.13.9</p>
520 </div>
521 <hr>
522 <div class="refsect2">
523 <a name="tp-protocol-get-avatar-requirements"></a><h3>tp_protocol_get_avatar_requirements ()</h3>
524 <pre class="programlisting"><a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements"><span class="returnvalue">TpAvatarRequirements</span></a> * tp_protocol_get_avatar_requirements
525 (<em class="parameter"><code><a class="link" href="telepathy-glib-protocol.html#TpProtocol"><span class="type">TpProtocol</span></a> *self</code></em>);</pre>
526 <p>
527 Return the <a class="link" href="telepathy-glib-protocol.html#TpProtocol--avatar-requirements" title='The "avatar-requirements" property'><span class="type">"avatar-requirements"</span></a> property
528 </p>
529 <div class="variablelist"><table border="0">
530 <col align="left" valign="top">
531 <tbody>
532 <tr>
533 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
534 <td>a <a class="link" href="telepathy-glib-protocol.html#TpProtocol"><span class="type">TpProtocol</span></a>
535 </td>
536 </tr>
537 <tr>
538 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
539 <td>the value of <a class="link" href="telepathy-glib-protocol.html#TpProtocol--avatar-requirements" title='The "avatar-requirements" property'><span class="type">"avatar-requirements"</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
540 </td>
541 </tr>
542 </tbody>
543 </table></div>
544 <p class="since">Since 0.15.6</p>
517545 </div>
518546 <hr>
519547 <div class="refsect2">
753781 </div>
754782 <hr>
755783 <div class="refsect2">
784 <a name="TpProtocol--avatar-requirements"></a><h3>The <code class="literal">"avatar-requirements"</code> property</h3>
785 <pre class="programlisting"> "avatar-requirements" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> : Read</pre>
786 <p>
787 A <a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements"><span class="type">TpAvatarRequirements</span></a> representing the avatar requirements on this
788 protocol, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <a class="link" href="telepathy-glib-protocol.html#TP-PROTOCOL-FEATURE-CORE:CAPS" title="TP_PROTOCOL_FEATURE_CORE"><code class="literal">TP_PROTOCOL_FEATURE_CORE</code></a> has not been prepared or
789 if the protocol doesn't support avatars.
790 </p>
791 <p class="since">Since 0.15.6</p>
792 </div>
793 <hr>
794 <div class="refsect2">
756795 <a name="TpProtocol--capabilities"></a><h3>The <code class="literal">"capabilities"</code> property</h3>
757796 <pre class="programlisting"> "capabilities" <a class="link" href="telepathy-glib-capabilities.html#TpCapabilities"><span class="type">TpCapabilities</span></a>* : Read</pre>
758797 <p>
854893 </div>
855894 <div class="footer">
856895 <hr>
857 Generated by GTK-Doc V1.17</div>
896 Generated by GTK-Doc V1.17.1</div>
858897 </body>
859898 </html>
77 <link rel="up" href="ch-dbus.html" title="General D-Bus support">
88 <link rel="prev" href="telepathy-glib-proxy.html" title="TpProxy">
99 <link rel="next" href="telepathy-glib-proxy-tp-properties.html" title="TpProxy Telepathy Properties">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13111311 </div>
13121312 <div class="footer">
13131313 <hr>
1314 Generated by GTK-Doc V1.17</div>
1314 Generated by GTK-Doc V1.17.1</div>
13151315 </body>
13161316 </html>
77 <link rel="up" href="ch-dbus.html" title="General D-Bus support">
88 <link rel="prev" href="telepathy-glib-asv.html" title="Manipulating a{sv} mappings">
99 <link rel="next" href="ch-protocol.html" title="The Telepathy protocol">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
823823 </div>
824824 <div class="footer">
825825 <hr>
826 Generated by GTK-Doc V1.17</div>
826 Generated by GTK-Doc V1.17.1</div>
827827 </body>
828828 </html>
77 <link rel="up" href="ch-dbus.html" title="General D-Bus support">
88 <link rel="prev" href="telepathy-glib-proxy-dbus-core.html" title="TpProxy D-Bus core methods">
99 <link rel="next" href="telepathy-glib-dbus.html" title="D-Bus utilities">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
838838 </div>
839839 <div class="footer">
840840 <hr>
841 Generated by GTK-Doc V1.17</div>
841 Generated by GTK-Doc V1.17.1</div>
842842 </body>
843843 </html>
77 <link rel="up" href="ch-dbus.html" title="General D-Bus support">
88 <link rel="prev" href="ch-dbus.html" title="General D-Bus support">
99 <link rel="next" href="telepathy-glib-proxy-dbus-core.html" title="TpProxy D-Bus core methods">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
8282 <em class="parameter"><code>const <span class="type">char</span> *debug_message</code></em>,
8383 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
8484 #define <a class="link" href="telepathy-glib-proxy.html#TP-DBUS-ERRORS:CAPS" title="TP_DBUS_ERRORS">TP_DBUS_ERRORS</a>
85 enum <a class="link" href="telepathy-glib-proxy.html#TpDBusError">TpDBusError</a>;
85 enum <a class="link" href="telepathy-glib-proxy.html#TpDBusError-enum" title="enum TpDBusError">TpDBusError</a>;
8686 #define <a class="link" href="telepathy-glib-proxy.html#NUM-TP-DBUS-ERRORS:CAPS" title="NUM_TP_DBUS_ERRORS">NUM_TP_DBUS_ERRORS</a>
8787 #define <a class="link" href="telepathy-glib-proxy.html#TP-TYPE-DBUS-ERROR:CAPS" title="TP_TYPE_DBUS_ERROR">TP_TYPE_DBUS_ERROR</a>
8888 </pre>
444444 <td class="listing_lines" align="right"><pre>1
445445 2
446446 3</pre></td>
447 <td class="listing_code"><pre class="programlisting">TpChannel <span class="gtkdoc opt">*</span>channel <span class="gtkdoc opt">= ...;</span>
448
449 <span class="function"><a href="telepathy-glib-proxy.html#tp-proxy-prepare-async">tp_proxy_prepare_async</a></span> <span class="gtkdoc opt">(</span>channel<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span> callback<span class="gtkdoc opt">,</span> user_data<span class="gtkdoc opt">);</span></pre></td>
447 <td class="listing_code"><pre class="programlisting"><span class="usertype">TpChannel</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">channel </span><span class="symbol">=</span><span class="normal"> </span><span class="symbol">...;</span>
448
449 <span class="function"><a href="telepathy-glib-proxy.html#tp-proxy-prepare-async">tp_proxy_prepare_async</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">channel</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> callback</span><span class="symbol">,</span><span class="normal"> user_data</span><span class="symbol">);</span></pre></td>
450450 </tr>
451451 </tbody>
452452 </table>
467467 2
468468 3
469469 4</pre></td>
470 <td class="listing_code"><pre class="programlisting">TpChannel <span class="gtkdoc opt">*</span>channel <span class="gtkdoc opt">= ...;</span>
471 GQuark features<span class="gtkdoc opt">[] = {</span> TP_CHANNEL_FEATURE_CORE<span class="gtkdoc opt">,</span> <span class="number">0</span> <span class="gtkdoc opt">};</span>
472
473 <span class="function"><a href="telepathy-glib-proxy.html#tp-proxy-prepare-async">tp_proxy_prepare_async</a></span> <span class="gtkdoc opt">(</span>channel<span class="gtkdoc opt">,</span> features<span class="gtkdoc opt">,</span> callback<span class="gtkdoc opt">,</span> user_data<span class="gtkdoc opt">);</span></pre></td>
470 <td class="listing_code"><pre class="programlisting"><span class="usertype">TpChannel</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">channel </span><span class="symbol">=</span><span class="normal"> </span><span class="symbol">...;</span>
471 <span class="usertype">GQuark</span><span class="normal"> features</span><span class="symbol">[]</span><span class="normal"> </span><span class="symbol">=</span><span class="normal"> </span><span class="cbracket">{</span><span class="normal"> <a href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-CORE:CAPS">TP_CHANNEL_FEATURE_CORE</a></span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="normal"> </span><span class="cbracket">}</span><span class="symbol">;</span>
472
473 <span class="function"><a href="telepathy-glib-proxy.html#tp-proxy-prepare-async">tp_proxy_prepare_async</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">channel</span><span class="symbol">,</span><span class="normal"> features</span><span class="symbol">,</span><span class="normal"> callback</span><span class="symbol">,</span><span class="normal"> user_data</span><span class="symbol">);</span></pre></td>
474474 </tr>
475475 </tbody>
476476 </table>
833833 </div>
834834 <hr>
835835 <div class="refsect2">
836 <a name="TpDBusError"></a><h3>enum TpDBusError</h3>
836 <a name="TpDBusError-enum"></a><h3>enum TpDBusError</h3>
837837 <pre class="programlisting">typedef enum {
838838 TP_DBUS_ERROR_UNKNOWN_REMOTE_ERROR = 0,
839839 TP_DBUS_ERROR_PROXY_UNREFERENCED = 1,
10971097 </div>
10981098 <div class="footer">
10991099 <hr>
1100 Generated by GTK-Doc V1.17</div>
1100 Generated by GTK-Doc V1.17.1</div>
11011101 </body>
11021102 </html>
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="ch-service-base.html" title="Service-side implementation">
99 <link rel="next" href="TpBaseConnectionManager.html" title="TpBaseConnectionManager">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
117117 </div>
118118 <div class="footer">
119119 <hr>
120 Generated by GTK-Doc V1.17</div>
120 Generated by GTK-Doc V1.17.1</div>
121121 </body>
122122 </html>
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="telepathy-glib-simple-observer.html" title="TpSimpleObserver">
99 <link rel="next" href="telepathy-glib-simple-handler.html" title="TpSimpleHandler">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
5959 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
6060 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> uniquify</code></em>,
6161 <em class="parameter"><code><a class="link" href="telepathy-glib-simple-approver.html#TpSimpleApproverAddDispatchOperationImpl" title="TpSimpleApproverAddDispatchOperationImpl ()"><span class="type">TpSimpleApproverAddDispatchOperationImpl</span></a> callback</code></em>,
62 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
62 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
63 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>);
6364 <a class="link" href="telepathy-glib-base-client.html#TpBaseClient"><span class="returnvalue">TpBaseClient</span></a> * <a class="link" href="telepathy-glib-simple-approver.html#tp-simple-approver-new-with-am" title="tp_simple_approver_new_with_am ()">tp_simple_approver_new_with_am</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-account-manager.html#TpAccountManager"><span class="type">TpAccountManager</span></a> *account_manager</code></em>,
6465 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
6566 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> uniquify</code></em>,
133134 22
134135 23
135136 24</pre></td>
136 <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span>
137 <span class="function">my_add_dispatch_operation</span> <span class="gtkdoc opt">(</span>TpSimpleApprover <span class="gtkdoc opt">*</span>approver<span class="gtkdoc opt">,</span>
138 TpAccount <span class="gtkdoc opt">*</span>account<span class="gtkdoc opt">,</span>
139 TpConnection <span class="gtkdoc opt">*</span>connection<span class="gtkdoc opt">,</span>
140 GList <span class="gtkdoc opt">*</span>channels<span class="gtkdoc opt">,</span>
141 TpChannelDispatchOperation <span class="gtkdoc opt">*</span>dispatch_operation<span class="gtkdoc opt">,</span>
142 TpAddDispatchOperationContext <span class="gtkdoc opt">*</span>context<span class="gtkdoc opt">,</span>
143 gpointer user_data<span class="gtkdoc opt">)</span>
144 <span class="gtkdoc opt">{</span>
145 <span class="comment">/* call tp_channel_dispatch_operation_handle_with_async()</span>
137 <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
138 <span class="function">my_add_dispatch_operation</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">TpSimpleApprover</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">approver</span><span class="symbol">,</span>
139 <span class="normal"> </span><span class="usertype">TpAccount</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">account</span><span class="symbol">,</span>
140 <span class="normal"> </span><span class="usertype">TpConnection</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">connection</span><span class="symbol">,</span>
141 <span class="normal"> </span><span class="usertype">GList</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">channels</span><span class="symbol">,</span>
142 <span class="normal"> </span><span class="usertype">TpChannelDispatchOperation</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">dispatch_operation</span><span class="symbol">,</span>
143 <span class="normal"> </span><span class="usertype">TpAddDispatchOperationContext</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">context</span><span class="symbol">,</span>
144 <span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
145 <span class="cbracket">{</span>
146 <span class="normal"> </span><span class="comment">/* call tp_channel_dispatch_operation_handle_with_async()</span>
146147 <span class="comment"> if wanting to approve the channels */</span>
147148
148 <span class="function"><a href="telepathy-glib-add-dispatch-operation-context.html#tp-add-dispatch-operation-context-accept">tp_add_dispatch_operation_context_accept</a></span> <span class="gtkdoc opt">(</span>context<span class="gtkdoc opt">);</span>
149 <span class="gtkdoc opt">}</span>
150
151 client <span class="gtkdoc opt">=</span> <span class="function"><a href="telepathy-glib-simple-approver.html#tp-simple-approver-new">tp_simple_approver_new</a></span> <span class="gtkdoc opt">(</span>dbus<span class="gtkdoc opt">,</span> <span class="string">&quot;MyApprover&quot;</span><span class="gtkdoc opt">,</span> FALSE<span class="gtkdoc opt">,</span>
152 my_add_dispatch_operation<span class="gtkdoc opt">,</span> user_data<span class="gtkdoc opt">);</span>
153
154 <span class="function"><a href="telepathy-glib-base-client.html#tp-base-client-take-approver-filter">tp_base_client_take_approver_filter</a></span> <span class="gtkdoc opt">(</span>client<span class="gtkdoc opt">,</span> <span class="function"><a href="telepathy-glib-asv.html#tp-asv-new">tp_asv_new</a></span> <span class="gtkdoc opt">(</span>
155 TP_PROP_CHANNEL_CHANNEL_TYPE<span class="gtkdoc opt">,</span> G_TYPE_STRING<span class="gtkdoc opt">,</span> TP_IFACE_CHANNEL_TYPE_TEXT<span class="gtkdoc opt">,</span>
156 TP_PROP_CHANNEL_TARGET_HANDLE_TYPE<span class="gtkdoc opt">,</span> G_TYPE_UINT<span class="gtkdoc opt">,</span> TP_HANDLE_TYPE_CONTACT<span class="gtkdoc opt">,</span>
157 NULL<span class="gtkdoc opt">));</span>
158
159 <span class="function"><a href="telepathy-glib-base-client.html#tp-base-client-register">tp_base_client_register</a></span> <span class="gtkdoc opt">(</span>client<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span></pre></td>
149 <span class="normal"> </span><span class="function"><a href="telepathy-glib-add-dispatch-operation-context.html#tp-add-dispatch-operation-context-accept">tp_add_dispatch_operation_context_accept</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">context</span><span class="symbol">);</span>
150 <span class="cbracket">}</span>
151
152 <span class="normal">client </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-simple-approver.html#tp-simple-approver-new">tp_simple_approver_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">dbus</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"MyApprover"</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS">FALSE</a></span><span class="symbol">,</span>
153 <span class="normal"> my_add_dispatch_operation</span><span class="symbol">,</span><span class="normal"> user_data</span><span class="symbol">);</span>
154
155 <span class="function"><a href="telepathy-glib-base-client.html#tp-base-client-take-approver-filter">tp_base_client_take_approver_filter</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">client</span><span class="symbol">,</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-asv.html#tp-asv-new">tp_asv_new</a></span><span class="normal"> </span><span class="symbol">(</span>
156 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-CHANNEL-TYPE:CAPS">TP_PROP_CHANNEL_CHANNEL_TYPE</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-STRING:CAPS">G_TYPE_STRING</a></span><span class="symbol">,</span><span class="normal"> <a href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-TEXT:CAPS">TP_IFACE_CHANNEL_TYPE_TEXT</a></span><span class="symbol">,</span>
157 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TARGET-HANDLE-TYPE:CAPS">TP_PROP_CHANNEL_TARGET_HANDLE_TYPE</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS">G_TYPE_UINT</a></span><span class="symbol">,</span><span class="normal"> <a href="telepathy-glib-enums.html#TP-HANDLE-TYPE-CONTACT:CAPS">TP_HANDLE_TYPE_CONTACT</a></span><span class="symbol">,</span>
158 <span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">));</span>
159
160 <span class="function"><a href="telepathy-glib-base-client.html#tp-base-client-register">tp_base_client_register</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">client</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span></pre></td>
160161 </tr>
161162 </tbody>
162163 </table>
246247 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
247248 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> uniquify</code></em>,
248249 <em class="parameter"><code><a class="link" href="telepathy-glib-simple-approver.html#TpSimpleApproverAddDispatchOperationImpl" title="TpSimpleApproverAddDispatchOperationImpl ()"><span class="type">TpSimpleApproverAddDispatchOperationImpl</span></a> callback</code></em>,
249 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
250 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
251 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>);</pre>
250252 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
251253 <h3 class="title">Warning</h3>
252254 <p><code class="literal">tp_simple_approver_new</code> is deprecated and should not be used in newly-written code. New code should use <a class="link" href="telepathy-glib-simple-approver.html#tp-simple-approver-new-with-am" title="tp_simple_approver_new_with_am ()"><code class="function">tp_simple_approver_new_with_am()</code></a> instead.</p>
285287 </td>
286288 </tr>
287289 <tr>
290 <td><p><span class="term"><em class="parameter"><code>destroy</code></em> :</span></p></td>
291 <td>called with <em class="parameter"><code>user_data</code></em> as its argument when the <a class="link" href="telepathy-glib-simple-approver.html#TpSimpleApprover"><span class="type">TpSimpleApprover</span></a>
292 is destroyed</td>
293 </tr>
294 <tr>
288295 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
289296 <td>a new <a class="link" href="telepathy-glib-simple-approver.html#TpSimpleApprover"><span class="type">TpSimpleApprover</span></a>. <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> TelepathyGLib.SimpleApprover]</span>
290297 </td>
439446 </div>
440447 <div class="footer">
441448 <hr>
442 Generated by GTK-Doc V1.17</div>
449 Generated by GTK-Doc V1.17.1</div>
443450 </body>
444451 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-automatic-proxy-factory.html" title="TpAutomaticProxyFactory">
99 <link rel="next" href="telepathy-glib-automatic-client-factory.html" title="TpAutomaticClientFactory">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
4646
4747 <a class="link" href="telepathy-glib-simple-client-factory.html#TpSimpleClientFactory-struct" title="TpSimpleClientFactory">TpSimpleClientFactory</a>;
4848 struct <a class="link" href="telepathy-glib-simple-client-factory.html#TpSimpleClientFactoryClass" title="struct TpSimpleClientFactoryClass">TpSimpleClientFactoryClass</a>;
49 <a class="link" href="telepathy-glib-simple-client-factory.html#TpSimpleClientFactory"><span class="returnvalue">TpSimpleClientFactory</span></a> * <a class="link" href="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-new" title="tp_simple_client_factory_new ()">tp_simple_client_factory_new</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-dbus.html#TpDBusDaemon"><span class="type">TpDBusDaemon</span></a> *dbus</code></em>);
49 <a class="link" href="telepathy-glib-simple-client-factory.html#TpSimpleClientFactory"><span class="returnvalue">TpSimpleClientFactory</span></a> * <a class="link" href="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-new" title="tp_simple_client_factory_new ()">tp_simple_client_factory_new</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-dbus.html#TpDBusDaemon"><span class="type">TpDBusDaemon</span></a> *dbus</code></em>);
5050 <a class="link" href="telepathy-glib-dbus.html#TpDBusDaemon"><span class="returnvalue">TpDBusDaemon</span></a> * <a class="link" href="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-get-dbus-daemon" title="tp_simple_client_factory_get_dbus_daemon ()">tp_simple_client_factory_get_dbus_daemon</a>
5151 (<em class="parameter"><code><a class="link" href="telepathy-glib-simple-client-factory.html#TpSimpleClientFactory"><span class="type">TpSimpleClientFactory</span></a> *self</code></em>);
5252
177177 13
178178 14
179179 15</pre></td>
180 <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">int</span> <span class="function">main</span><span class="gtkdoc opt">(</span><span class="gtkdoc kwb">int</span> argc<span class="gtkdoc opt">,</span> <span class="gtkdoc kwb">char</span> <span class="gtkdoc opt">*</span>argv<span class="gtkdoc opt">[])</span>
181 <span class="gtkdoc opt">{</span>
182 TpSimpleClientFactory <span class="gtkdoc opt">*</span>factory<span class="gtkdoc opt">;</span>
183 TpAccountManager <span class="gtkdoc opt">*</span>manager<span class="gtkdoc opt">;</span>
184
185 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#g-type-init">g_type_init</a></span> <span class="gtkdoc opt">();</span>
186
187 factory <span class="gtkdoc opt">=</span> <span class="function">my_factory_new</span> <span class="gtkdoc opt">();</span>
188 manager <span class="gtkdoc opt">=</span> <span class="function"><a href="telepathy-glib-account-manager.html#tp-account-manager-new-with-factory">tp_account_manager_new_with_factory</a></span> <span class="gtkdoc opt">(</span>factory<span class="gtkdoc opt">);</span>
189 <span class="function"><a href="telepathy-glib-account-manager.html#tp-account-manager-set-default">tp_account_manager_set_default</a></span> <span class="gtkdoc opt">(</span>manager<span class="gtkdoc opt">);</span>
190
191 <span class="gtkdoc opt">...</span>
192 <span class="function"><a href="telepathy-glib-proxy.html#tp-proxy-prepare-async">tp_proxy_prepare_async</a></span> <span class="gtkdoc opt">(</span>manager<span class="gtkdoc opt">,</span> am_features<span class="gtkdoc opt">,</span> callback<span class="gtkdoc opt">,</span> user_data<span class="gtkdoc opt">);</span>
193 <span class="gtkdoc opt">...</span>
194 <span class="gtkdoc opt">}</span></pre></td>
180 <td class="listing_code"><pre class="programlisting"><span class="type">int</span><span class="normal"> </span><span class="function">main</span><span class="symbol">(</span><span class="type">int</span><span class="normal"> argc</span><span class="symbol">,</span><span class="normal"> </span><span class="type">char</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">argv</span><span class="symbol">[])</span>
181 <span class="cbracket">{</span>
182 <span class="normal"> </span><span class="usertype">TpSimpleClientFactory</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">factory</span><span class="symbol">;</span>
183 <span class="normal"> </span><span class="usertype">TpAccountManager</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">manager</span><span class="symbol">;</span>
184
185 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#g-type-init">g_type_init</a></span><span class="normal"> </span><span class="symbol">();</span>
186
187 <span class="normal"> factory </span><span class="symbol">=</span><span class="normal"> </span><span class="function">my_factory_new</span><span class="normal"> </span><span class="symbol">();</span>
188 <span class="normal"> manager </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-account-manager.html#tp-account-manager-new-with-factory">tp_account_manager_new_with_factory</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">factory</span><span class="symbol">);</span>
189 <span class="normal"> </span><span class="function"><a href="telepathy-glib-account-manager.html#tp-account-manager-set-default">tp_account_manager_set_default</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">manager</span><span class="symbol">);</span>
190
191 <span class="normal"> </span><span class="symbol">...</span>
192 <span class="normal"> </span><span class="function"><a href="telepathy-glib-proxy.html#tp-proxy-prepare-async">tp_proxy_prepare_async</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">manager</span><span class="symbol">,</span><span class="normal"> am_features</span><span class="symbol">,</span><span class="normal"> callback</span><span class="symbol">,</span><span class="normal"> user_data</span><span class="symbol">);</span>
193 <span class="normal"> </span><span class="symbol">...</span>
194 <span class="cbracket">}</span></pre></td>
195195 </tr>
196196 </tbody>
197197 </table>
334334 <hr>
335335 <div class="refsect2">
336336 <a name="tp-simple-client-factory-new"></a><h3>tp_simple_client_factory_new ()</h3>
337 <pre class="programlisting"><a class="link" href="telepathy-glib-simple-client-factory.html#TpSimpleClientFactory"><span class="returnvalue">TpSimpleClientFactory</span></a> * tp_simple_client_factory_new (<em class="parameter"><code><a class="link" href="telepathy-glib-dbus.html#TpDBusDaemon"><span class="type">TpDBusDaemon</span></a> *dbus</code></em>);</pre>
337 <pre class="programlisting"><a class="link" href="telepathy-glib-simple-client-factory.html#TpSimpleClientFactory"><span class="returnvalue">TpSimpleClientFactory</span></a> * tp_simple_client_factory_new (<em class="parameter"><code><a class="link" href="telepathy-glib-dbus.html#TpDBusDaemon"><span class="type">TpDBusDaemon</span></a> *dbus</code></em>);</pre>
338338 <p>
339339 Creates a new <a class="link" href="telepathy-glib-simple-client-factory.html#TpSimpleClientFactory"><span class="type">TpSimpleClientFactory</span></a> instance.
340340 </p>
411411 </tr>
412412 <tr>
413413 <td><p><span class="term"><em class="parameter"><code>immutable_properties</code></em> :</span></p></td>
414 <td>the immutable properties of the account. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8 GObject.Value]</span>
414 <td>the immutable properties of the account, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8 GObject.Value]</span>
415415 </td>
416416 </tr>
417417 <tr>
10061006 </div>
10071007 <div class="footer">
10081008 <hr>
1009 Generated by GTK-Doc V1.17</div>
1009 Generated by GTK-Doc V1.17.1</div>
10101010 </body>
10111011 </html>
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="telepathy-glib-simple-approver.html" title="TpSimpleApprover">
99 <link rel="next" href="telepathy-glib-dtmf.html" title="DTMF dialstring interpreter">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
6262 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
6363 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> uniquify</code></em>,
6464 <em class="parameter"><code><a class="link" href="telepathy-glib-simple-handler.html#TpSimpleHandlerHandleChannelsImpl" title="TpSimpleHandlerHandleChannelsImpl ()"><span class="type">TpSimpleHandlerHandleChannelsImpl</span></a> callback</code></em>,
65 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
65 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
66 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>);
6667 <a class="link" href="telepathy-glib-base-client.html#TpBaseClient"><span class="returnvalue">TpBaseClient</span></a> * <a class="link" href="telepathy-glib-simple-handler.html#tp-simple-handler-new-with-am" title="tp_simple_handler_new_with_am ()">tp_simple_handler_new_with_am</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-account-manager.html#TpAccountManager"><span class="type">TpAccountManager</span></a> *account_manager</code></em>,
6768 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> bypass_approval</code></em>,
6869 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> requests</code></em>,
143144 23
144145 24
145146 25</pre></td>
146 <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span>
147 <span class="function">my_handle_channels</span> <span class="gtkdoc opt">(</span>TpSimpleHandler <span class="gtkdoc opt">*</span>handler<span class="gtkdoc opt">,</span>
148 TpAccount <span class="gtkdoc opt">*</span>account<span class="gtkdoc opt">,</span>
149 TpConnection <span class="gtkdoc opt">*</span>connection<span class="gtkdoc opt">,</span>
150 GList <span class="gtkdoc opt">*</span>channels<span class="gtkdoc opt">,</span>
151 GList <span class="gtkdoc opt">*</span>requests_satisfied<span class="gtkdoc opt">,</span>
152 gint64 user_action_time<span class="gtkdoc opt">,</span>
153 GList <span class="gtkdoc opt">*</span>requests<span class="gtkdoc opt">,</span>
154 TpHandleChannelsContext <span class="gtkdoc opt">*</span>context<span class="gtkdoc opt">,</span>
155 gpointer user_data<span class="gtkdoc opt">)</span>
156 <span class="gtkdoc opt">{</span>
157 <span class="comment">/* start handling the channels here */</span>
147 <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
148 <span class="function">my_handle_channels</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">TpSimpleHandler</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">handler</span><span class="symbol">,</span>
149 <span class="normal"> </span><span class="usertype">TpAccount</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">account</span><span class="symbol">,</span>
150 <span class="normal"> </span><span class="usertype">TpConnection</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">connection</span><span class="symbol">,</span>
151 <span class="normal"> </span><span class="usertype">GList</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">channels</span><span class="symbol">,</span>
152 <span class="normal"> </span><span class="usertype">GList</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">requests_satisfied</span><span class="symbol">,</span>
153 <span class="normal"> </span><span class="usertype">gint64</span><span class="normal"> user_action_time</span><span class="symbol">,</span>
154 <span class="normal"> </span><span class="usertype">GList</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">requests</span><span class="symbol">,</span>
155 <span class="normal"> </span><span class="usertype">TpHandleChannelsContext</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">context</span><span class="symbol">,</span>
156 <span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
157 <span class="cbracket">{</span>
158 <span class="normal"> </span><span class="comment">/* start handling the channels here */</span>
158159
159 <span class="function"><a href="telepathy-glib-handle-channels-context.html#tp-handle-channels-context-accept">tp_handle_channels_context_accept</a></span> <span class="gtkdoc opt">(</span>context<span class="gtkdoc opt">);</span>
160 <span class="gtkdoc opt">}</span>
160 <span class="normal"> </span><span class="function"><a href="telepathy-glib-handle-channels-context.html#tp-handle-channels-context-accept">tp_handle_channels_context_accept</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">context</span><span class="symbol">);</span>
161 <span class="cbracket">}</span>
161162
162 client <span class="gtkdoc opt">=</span> <span class="function"><a href="telepathy-glib-simple-handler.html#tp-simple-handler-new">tp_simple_handler_new</a></span> <span class="gtkdoc opt">(</span>dbus<span class="gtkdoc opt">,</span> FALSE<span class="gtkdoc opt">,</span> FALSE<span class="gtkdoc opt">,</span> <span class="string">&quot;MyHandler&quot;</span><span class="gtkdoc opt">,</span> FALSE<span class="gtkdoc opt">,</span>
163 my_handle_channels<span class="gtkdoc opt">,</span> user_data<span class="gtkdoc opt">);</span>
163 <span class="normal">client </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-simple-handler.html#tp-simple-handler-new">tp_simple_handler_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">dbus</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS">FALSE</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS">FALSE</a></span><span class="symbol">,</span><span class="normal"> </span><span class="string">"MyHandler"</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS">FALSE</a></span><span class="symbol">,</span>
164 <span class="normal"> my_handle_channels</span><span class="symbol">,</span><span class="normal"> user_data</span><span class="symbol">);</span>
164165
165 <span class="function"><a href="telepathy-glib-base-client.html#tp-base-client-take-handler-filter">tp_base_client_take_handler_filter</a></span> <span class="gtkdoc opt">(</span>client<span class="gtkdoc opt">,</span> <span class="function"><a href="telepathy-glib-asv.html#tp-asv-new">tp_asv_new</a></span> <span class="gtkdoc opt">(</span>
166 TP_PROP_CHANNEL_CHANNEL_TYPE<span class="gtkdoc opt">,</span> G_TYPE_STRING<span class="gtkdoc opt">,</span> TP_IFACE_CHANNEL_TYPE_TEXT<span class="gtkdoc opt">,</span>
167 TP_PROP_CHANNEL_TARGET_HANDLE_TYPE<span class="gtkdoc opt">,</span> G_TYPE_UINT<span class="gtkdoc opt">,</span> TP_HANDLE_TYPE_CONTACT<span class="gtkdoc opt">,</span>
168 NULL<span class="gtkdoc opt">));</span>
166 <span class="function"><a href="telepathy-glib-base-client.html#tp-base-client-take-handler-filter">tp_base_client_take_handler_filter</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">client</span><span class="symbol">,</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-asv.html#tp-asv-new">tp_asv_new</a></span><span class="normal"> </span><span class="symbol">(</span>
167 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-CHANNEL-TYPE:CAPS">TP_PROP_CHANNEL_CHANNEL_TYPE</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-STRING:CAPS">G_TYPE_STRING</a></span><span class="symbol">,</span><span class="normal"> <a href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-TEXT:CAPS">TP_IFACE_CHANNEL_TYPE_TEXT</a></span><span class="symbol">,</span>
168 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TARGET-HANDLE-TYPE:CAPS">TP_PROP_CHANNEL_TARGET_HANDLE_TYPE</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS">G_TYPE_UINT</a></span><span class="symbol">,</span><span class="normal"> <a href="telepathy-glib-enums.html#TP-HANDLE-TYPE-CONTACT:CAPS">TP_HANDLE_TYPE_CONTACT</a></span><span class="symbol">,</span>
169 <span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">));</span>
169170
170 <span class="function"><a href="telepathy-glib-base-client.html#tp-base-client-register">tp_base_client_register</a></span> <span class="gtkdoc opt">(</span>client<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span></pre></td>
171 <span class="function"><a href="telepathy-glib-base-client.html#tp-base-client-register">tp_base_client_register</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">client</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span></pre></td>
171172 </tr>
172173 </tbody>
173174 </table>
268269 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
269270 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> uniquify</code></em>,
270271 <em class="parameter"><code><a class="link" href="telepathy-glib-simple-handler.html#TpSimpleHandlerHandleChannelsImpl" title="TpSimpleHandlerHandleChannelsImpl ()"><span class="type">TpSimpleHandlerHandleChannelsImpl</span></a> callback</code></em>,
271 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
272 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
273 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>);</pre>
272274 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
273275 <h3 class="title">Warning</h3>
274276 <p><code class="literal">tp_simple_handler_new</code> is deprecated and should not be used in newly-written code. New code should use <a class="link" href="telepathy-glib-simple-handler.html#tp-simple-handler-new-with-am" title="tp_simple_handler_new_with_am ()"><code class="function">tp_simple_handler_new_with_am()</code></a> instead.</p>
315317 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
316318 <td>arbitrary user-supplied data passed to <em class="parameter"><code>callback</code></em>
317319 </td>
320 </tr>
321 <tr>
322 <td><p><span class="term"><em class="parameter"><code>destroy</code></em> :</span></p></td>
323 <td>called with <em class="parameter"><code>user_data</code></em> as its argument when the <a class="link" href="telepathy-glib-simple-handler.html#TpSimpleHandler"><span class="type">TpSimpleHandler</span></a>
324 is destroyed</td>
318325 </tr>
319326 <tr>
320327 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
515522 </div>
516523 <div class="footer">
517524 <hr>
518 Generated by GTK-Doc V1.17</div>
525 Generated by GTK-Doc V1.17.1</div>
519526 </body>
520527 </html>
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="telepathy-glib-handle-channels-context.html" title="TpHandleChannelsContext">
99 <link rel="next" href="telepathy-glib-simple-approver.html" title="TpSimpleApprover">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
6161 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
6262 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> uniquify</code></em>,
6363 <em class="parameter"><code><a class="link" href="telepathy-glib-simple-observer.html#TpSimpleObserverObserveChannelsImpl" title="TpSimpleObserverObserveChannelsImpl ()"><span class="type">TpSimpleObserverObserveChannelsImpl</span></a> callback</code></em>,
64 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
64 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
65 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>);
6566 <a class="link" href="telepathy-glib-base-client.html#TpBaseClient"><span class="returnvalue">TpBaseClient</span></a> * <a class="link" href="telepathy-glib-simple-observer.html#tp-simple-observer-new-with-am" title="tp_simple_observer_new_with_am ()">tp_simple_observer_new_with_am</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-account-manager.html#TpAccountManager"><span class="type">TpAccountManager</span></a> *account_manager</code></em>,
6667 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> recover</code></em>,
6768 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
138139 22
139140 23
140141 24</pre></td>
141 <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span>
142 <span class="function">my_observe_channels</span> <span class="gtkdoc opt">(</span>TpSimpleObserver <span class="gtkdoc opt">*</span>observer<span class="gtkdoc opt">,</span>
143 TpAccount <span class="gtkdoc opt">*</span>account<span class="gtkdoc opt">,</span>
144 TpConnection <span class="gtkdoc opt">*</span>connection<span class="gtkdoc opt">,</span>
145 GList <span class="gtkdoc opt">*</span>channels<span class="gtkdoc opt">,</span>
146 TpChannelDispatchOperation <span class="gtkdoc opt">*</span>dispatch_operation<span class="gtkdoc opt">,</span>
147 GList <span class="gtkdoc opt">*</span>requests<span class="gtkdoc opt">,</span>
148 TpObserveChannelsContext <span class="gtkdoc opt">*</span>context<span class="gtkdoc opt">,</span>
149 gpointer user_data<span class="gtkdoc opt">)</span>
150 <span class="gtkdoc opt">{</span>
151 <span class="comment">/* do something useful with the channels here */</span>
152
153 <span class="function"><a href="telepathy-glib-observe-channels-context.html#tp-observe-channels-context-accept">tp_observe_channels_context_accept</a></span> <span class="gtkdoc opt">(</span>context<span class="gtkdoc opt">);</span>
154 <span class="gtkdoc opt">}</span>
155
156 client <span class="gtkdoc opt">=</span> <span class="function"><a href="telepathy-glib-simple-observer.html#tp-simple-observer-new">tp_simple_observer_new</a></span> <span class="gtkdoc opt">(</span>dbus<span class="gtkdoc opt">,</span> TRUE<span class="gtkdoc opt">,</span> <span class="string">&quot;MyObserver&quot;</span><span class="gtkdoc opt">,</span> FALSE<span class="gtkdoc opt">,</span>
157 my_observe_channels<span class="gtkdoc opt">,</span> user_data<span class="gtkdoc opt">);</span>
158
159 <span class="function"><a href="telepathy-glib-base-client.html#tp-base-client-take-observer-filter">tp_base_client_take_observer_filter</a></span> <span class="gtkdoc opt">(</span>client<span class="gtkdoc opt">,</span> <span class="function"><a href="telepathy-glib-asv.html#tp-asv-new">tp_asv_new</a></span> <span class="gtkdoc opt">(</span>
160 TP_PROP_CHANNEL_CHANNEL_TYPE<span class="gtkdoc opt">,</span> G_TYPE_STRING<span class="gtkdoc opt">,</span> TP_IFACE_CHANNEL_TYPE_TEXT<span class="gtkdoc opt">,</span>
161 TP_PROP_CHANNEL_TARGET_HANDLE_TYPE<span class="gtkdoc opt">,</span> G_TYPE_UINT<span class="gtkdoc opt">,</span> TP_HANDLE_TYPE_CONTACT<span class="gtkdoc opt">,</span>
162 NULL<span class="gtkdoc opt">));</span>
163
164 <span class="function"><a href="telepathy-glib-base-client.html#tp-base-client-register">tp_base_client_register</a></span> <span class="gtkdoc opt">(</span>client<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span></pre></td>
142 <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
143 <span class="function">my_observe_channels</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">TpSimpleObserver</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">observer</span><span class="symbol">,</span>
144 <span class="normal"> </span><span class="usertype">TpAccount</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">account</span><span class="symbol">,</span>
145 <span class="normal"> </span><span class="usertype">TpConnection</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">connection</span><span class="symbol">,</span>
146 <span class="normal"> </span><span class="usertype">GList</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">channels</span><span class="symbol">,</span>
147 <span class="normal"> </span><span class="usertype">TpChannelDispatchOperation</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">dispatch_operation</span><span class="symbol">,</span>
148 <span class="normal"> </span><span class="usertype">GList</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">requests</span><span class="symbol">,</span>
149 <span class="normal"> </span><span class="usertype">TpObserveChannelsContext</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">context</span><span class="symbol">,</span>
150 <span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
151 <span class="cbracket">{</span>
152 <span class="normal"> </span><span class="comment">/* do something useful with the channels here */</span>
153
154 <span class="normal"> </span><span class="function"><a href="telepathy-glib-observe-channels-context.html#tp-observe-channels-context-accept">tp_observe_channels_context_accept</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">context</span><span class="symbol">);</span>
155 <span class="cbracket">}</span>
156
157 <span class="normal">client </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-simple-observer.html#tp-simple-observer-new">tp_simple_observer_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">dbus</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS">TRUE</a></span><span class="symbol">,</span><span class="normal"> </span><span class="string">"MyObserver"</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS">FALSE</a></span><span class="symbol">,</span>
158 <span class="normal"> my_observe_channels</span><span class="symbol">,</span><span class="normal"> user_data</span><span class="symbol">);</span>
159
160 <span class="function"><a href="telepathy-glib-base-client.html#tp-base-client-take-observer-filter">tp_base_client_take_observer_filter</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">client</span><span class="symbol">,</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-asv.html#tp-asv-new">tp_asv_new</a></span><span class="normal"> </span><span class="symbol">(</span>
161 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-CHANNEL-TYPE:CAPS">TP_PROP_CHANNEL_CHANNEL_TYPE</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-STRING:CAPS">G_TYPE_STRING</a></span><span class="symbol">,</span><span class="normal"> <a href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-TEXT:CAPS">TP_IFACE_CHANNEL_TYPE_TEXT</a></span><span class="symbol">,</span>
162 <span class="normal"> <a href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TARGET-HANDLE-TYPE:CAPS">TP_PROP_CHANNEL_TARGET_HANDLE_TYPE</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS">G_TYPE_UINT</a></span><span class="symbol">,</span><span class="normal"> <a href="telepathy-glib-enums.html#TP-HANDLE-TYPE-CONTACT:CAPS">TP_HANDLE_TYPE_CONTACT</a></span><span class="symbol">,</span>
163 <span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">));</span>
164
165 <span class="function"><a href="telepathy-glib-base-client.html#tp-base-client-register">tp_base_client_register</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">client</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span></pre></td>
165166 </tr>
166167 </tbody>
167168 </table>
260261 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
261262 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> uniquify</code></em>,
262263 <em class="parameter"><code><a class="link" href="telepathy-glib-simple-observer.html#TpSimpleObserverObserveChannelsImpl" title="TpSimpleObserverObserveChannelsImpl ()"><span class="type">TpSimpleObserverObserveChannelsImpl</span></a> callback</code></em>,
263 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
264 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
265 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>);</pre>
264266 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
265267 <h3 class="title">Warning</h3>
266268 <p><code class="literal">tp_simple_observer_new</code> is deprecated and should not be used in newly-written code. New code should use <a class="link" href="telepathy-glib-simple-observer.html#tp-simple-observer-new-with-am" title="tp_simple_observer_new_with_am ()"><code class="function">tp_simple_observer_new_with_am()</code></a> instead.</p>
303305 </td>
304306 </tr>
305307 <tr>
308 <td><p><span class="term"><em class="parameter"><code>destroy</code></em> :</span></p></td>
309 <td>called with the user_data as argument, when the <a class="link" href="telepathy-glib-simple-observer.html#TpSimpleObserver"><span class="type">TpSimpleObserver</span></a>
310 is destroyed</td>
311 </tr>
312 <tr>
306313 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
307314 <td>a new <a class="link" href="telepathy-glib-simple-observer.html#TpSimpleObserver"><span class="type">TpSimpleObserver</span></a>. <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> TelepathyGLib.SimpleObserver]</span>
308315 </td>
478485 </div>
479486 <div class="footer">
480487 <hr>
481 Generated by GTK-Doc V1.17</div>
488 Generated by GTK-Doc V1.17.1</div>
482489 </body>
483490 </html>
77 <link rel="up" href="ch-service-base.html" title="Service-side implementation">
88 <link rel="prev" href="telepathy-glib-base-password-channel.html" title="TpBasePasswordChannel">
99 <link rel="next" href="telepathy-glib-base-client.html" title="TpBaseClient">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
4646 #include &lt;telepathy-glib/simple-password-manager.h&gt;
4747
4848 <a class="link" href="telepathy-glib-simple-password-manager.html#TpSimplePasswordManager-struct" title="TpSimplePasswordManager">TpSimplePasswordManager</a>;
49 <a class="link" href="telepathy-glib-simple-password-manager.html#TpSimplePasswordManager"><span class="returnvalue">TpSimplePasswordManager</span></a> * <a class="link" href="telepathy-glib-simple-password-manager.html#tp-simple-password-manager-new" title="tp_simple_password_manager_new ()">tp_simple_password_manager_new</a>
49 <a class="link" href="telepathy-glib-simple-password-manager.html#TpSimplePasswordManager"><span class="returnvalue">TpSimplePasswordManager</span></a> * <a class="link" href="telepathy-glib-simple-password-manager.html#tp-simple-password-manager-new" title="tp_simple_password_manager_new ()">tp_simple_password_manager_new</a>
5050 (<em class="parameter"><code><a class="link" href="TpBaseConnection.html" title="TpBaseConnection"><span class="type">TpBaseConnection</span></a> *connection</code></em>);
5151
5252 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-simple-password-manager.html#tp-simple-password-manager-prompt-async" title="tp_simple_password_manager_prompt_async ()">tp_simple_password_manager_prompt_async</a>
141141 <hr>
142142 <div class="refsect2">
143143 <a name="tp-simple-password-manager-new"></a><h3>tp_simple_password_manager_new ()</h3>
144 <pre class="programlisting"><a class="link" href="telepathy-glib-simple-password-manager.html#TpSimplePasswordManager"><span class="returnvalue">TpSimplePasswordManager</span></a> * tp_simple_password_manager_new
144 <pre class="programlisting"><a class="link" href="telepathy-glib-simple-password-manager.html#TpSimplePasswordManager"><span class="returnvalue">TpSimplePasswordManager</span></a> * tp_simple_password_manager_new
145145 (<em class="parameter"><code><a class="link" href="TpBaseConnection.html" title="TpBaseConnection"><span class="type">TpBaseConnection</span></a> *connection</code></em>);</pre>
146146 <p>
147147 Creates a new simple server authentication channel manager.
347347 </div>
348348 <div class="footer">
349349 <hr>
350 Generated by GTK-Doc V1.17</div>
350 Generated by GTK-Doc V1.17.1</div>
351351 </body>
352352 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-account-channel-request.html" title="TpAccountChannelRequest">
99 <link rel="next" href="telepathy-glib-stream-tube-connection.html" title="TpStreamTubeConnection">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
5252 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-stream-tube-channel.html#tp-stream-tube-channel-accept-async" title="tp_stream_tube_channel_accept_async ()">tp_stream_tube_channel_accept_async</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-stream-tube-channel.html#TpStreamTubeChannel"><span class="type">TpStreamTubeChannel</span></a> *self</code></em>,
5353 <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
5454 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
55 <a class="link" href="telepathy-glib-stream-tube-connection.html#TpStreamTubeConnection"><span class="returnvalue">TpStreamTubeConnection</span></a> * <a class="link" href="telepathy-glib-stream-tube-channel.html#tp-stream-tube-channel-accept-finish" title="tp_stream_tube_channel_accept_finish ()">tp_stream_tube_channel_accept_finish</a>
55 <a class="link" href="telepathy-glib-stream-tube-connection.html#TpStreamTubeConnection"><span class="returnvalue">TpStreamTubeConnection</span></a> * <a class="link" href="telepathy-glib-stream-tube-channel.html#tp-stream-tube-channel-accept-finish" title="tp_stream_tube_channel_accept_finish ()">tp_stream_tube_channel_accept_finish</a>
5656 (<em class="parameter"><code><a class="link" href="telepathy-glib-stream-tube-channel.html#TpStreamTubeChannel"><span class="type">TpStreamTubeChannel</span></a> *self</code></em>,
5757 <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *result</code></em>,
5858 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
163163 <hr>
164164 <div class="refsect2">
165165 <a name="tp-stream-tube-channel-accept-finish"></a><h3>tp_stream_tube_channel_accept_finish ()</h3>
166 <pre class="programlisting"><a class="link" href="telepathy-glib-stream-tube-connection.html#TpStreamTubeConnection"><span class="returnvalue">TpStreamTubeConnection</span></a> * tp_stream_tube_channel_accept_finish
166 <pre class="programlisting"><a class="link" href="telepathy-glib-stream-tube-connection.html#TpStreamTubeConnection"><span class="returnvalue">TpStreamTubeConnection</span></a> * tp_stream_tube_channel_accept_finish
167167 (<em class="parameter"><code><a class="link" href="telepathy-glib-stream-tube-channel.html#TpStreamTubeChannel"><span class="type">TpStreamTubeChannel</span></a> *self</code></em>,
168168 <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *result</code></em>,
169169 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
431431 </div>
432432 <div class="footer">
433433 <hr>
434 Generated by GTK-Doc V1.17</div>
434 Generated by GTK-Doc V1.17.1</div>
435435 </body>
436436 </html>
66 <link rel="home" href="index.html" title="telepathy-glib API Reference Manual">
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-stream-tube-channel.html" title="TpStreamTubeChannel">
9 <link rel="next" href="telepathy-glib-client-channel-factory.html" title="TpClientChannelFactoryInterface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
9 <link rel="next" href="telepathy-glib-dbus-tube-channel.html" title="TpDBusTubeChannel">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
1717 <td><a accesskey="u" href="ch-client.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
1818 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
1919 <th width="100%" align="center">telepathy-glib API Reference Manual</th>
20 <td><a accesskey="n" href="telepathy-glib-client-channel-factory.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
20 <td><a accesskey="n" href="telepathy-glib-dbus-tube-channel.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
2121 </tr>
2222 <tr><td colspan="5" class="shortcuts">
2323 <a href="#telepathy-glib-stream-tube-connection.synopsis" class="shortcut">Top</a>
4747
4848 <a class="link" href="telepathy-glib-stream-tube-connection.html#TpStreamTubeConnection-struct" title="TpStreamTubeConnection">TpStreamTubeConnection</a>;
4949 <a class="link" href="telepathy-glib-stream-tube-connection.html#TpStreamTubeConnectionClass" title="TpStreamTubeConnectionClass">TpStreamTubeConnectionClass</a>;
50 <a class="link" href="telepathy-glib-stream-tube-channel.html#TpStreamTubeChannel"><span class="returnvalue">TpStreamTubeChannel</span></a> * <a class="link" href="telepathy-glib-stream-tube-connection.html#tp-stream-tube-connection-get-channel" title="tp_stream_tube_connection_get_channel ()">tp_stream_tube_connection_get_channel</a>
50 <a class="link" href="telepathy-glib-stream-tube-channel.html#TpStreamTubeChannel"><span class="returnvalue">TpStreamTubeChannel</span></a> * <a class="link" href="telepathy-glib-stream-tube-connection.html#tp-stream-tube-connection-get-channel" title="tp_stream_tube_connection_get_channel ()">tp_stream_tube_connection_get_channel</a>
5151 (<em class="parameter"><code><a class="link" href="telepathy-glib-stream-tube-connection.html#TpStreamTubeConnection"><span class="type">TpStreamTubeConnection</span></a> *self</code></em>);
5252 <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="returnvalue">TpContact</span></a> * <a class="link" href="telepathy-glib-stream-tube-connection.html#tp-stream-tube-connection-get-contact" title="tp_stream_tube_connection_get_contact ()">tp_stream_tube_connection_get_contact</a>
5353 (<em class="parameter"><code><a class="link" href="telepathy-glib-stream-tube-connection.html#TpStreamTubeConnection"><span class="type">TpStreamTubeConnection</span></a> *self</code></em>);
54 <a href="http://library.gnome.org/devel/gio/unstable/GSocketConnection.html"><span class="returnvalue">GSocketConnection</span></a> * <a class="link" href="telepathy-glib-stream-tube-connection.html#tp-stream-tube-connection-get-socket-connection" title="tp_stream_tube_connection_get_socket_connection ()">tp_stream_tube_connection_get_socket_connection</a>
54 <a href="http://library.gnome.org/devel/gio/unstable/GSocketConnection.html"><span class="returnvalue">GSocketConnection</span></a> * <a class="link" href="telepathy-glib-stream-tube-connection.html#tp-stream-tube-connection-get-socket-connection" title="tp_stream_tube_connection_get_socket_connection ()">tp_stream_tube_connection_get_socket_connection</a>
5555 (<em class="parameter"><code><a class="link" href="telepathy-glib-stream-tube-connection.html#TpStreamTubeConnection"><span class="type">TpStreamTubeConnection</span></a> *self</code></em>);
5656 </pre>
5757 </div>
104104 <hr>
105105 <div class="refsect2">
106106 <a name="tp-stream-tube-connection-get-channel"></a><h3>tp_stream_tube_connection_get_channel ()</h3>
107 <pre class="programlisting"><a class="link" href="telepathy-glib-stream-tube-channel.html#TpStreamTubeChannel"><span class="returnvalue">TpStreamTubeChannel</span></a> * tp_stream_tube_connection_get_channel
107 <pre class="programlisting"><a class="link" href="telepathy-glib-stream-tube-channel.html#TpStreamTubeChannel"><span class="returnvalue">TpStreamTubeChannel</span></a> * tp_stream_tube_connection_get_channel
108108 (<em class="parameter"><code><a class="link" href="telepathy-glib-stream-tube-connection.html#TpStreamTubeConnection"><span class="type">TpStreamTubeConnection</span></a> *self</code></em>);</pre>
109109 <p>
110110 Return the <a class="link" href="telepathy-glib-stream-tube-connection.html#TpStreamTubeConnection--channel" title='The "channel" property'><span class="type">"channel"</span></a> property
154154 <hr>
155155 <div class="refsect2">
156156 <a name="tp-stream-tube-connection-get-socket-connection"></a><h3>tp_stream_tube_connection_get_socket_connection ()</h3>
157 <pre class="programlisting"><a href="http://library.gnome.org/devel/gio/unstable/GSocketConnection.html"><span class="returnvalue">GSocketConnection</span></a> * tp_stream_tube_connection_get_socket_connection
157 <pre class="programlisting"><a href="http://library.gnome.org/devel/gio/unstable/GSocketConnection.html"><span class="returnvalue">GSocketConnection</span></a> * tp_stream_tube_connection_get_socket_connection
158158 (<em class="parameter"><code><a class="link" href="telepathy-glib-stream-tube-connection.html#TpStreamTubeConnection"><span class="type">TpStreamTubeConnection</span></a> *self</code></em>);</pre>
159159 <p>
160160 Return the <a class="link" href="telepathy-glib-stream-tube-connection.html#TpStreamTubeConnection--socket-connection" title='The "socket-connection" property'><span class="type">"socket-connection"</span></a> property
197197 <p>
198198 The <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> with who we are exchanging data through this tube, or
199199 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if we can't safely identify the contact.
200 </p>
201 <p>
202 If not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> objects is guaranteed to have all of the
203 features previously passed to
204 <a class="link" href="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-contact-features" title="tp_simple_client_factory_add_contact_features ()"><code class="function">tp_simple_client_factory_add_contact_features()</code></a> prepared.
200205 </p>
201206 <p class="since">Since 0.13.2</p>
202207 </div>
251256 </div>
252257 <div class="footer">
253258 <hr>
254 Generated by GTK-Doc V1.17</div>
259 Generated by GTK-Doc V1.17.1</div>
255260 </body>
256261 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-protocol.html" title="Service-side Protocol interface">
99 <link rel="next" href="telepathy-glib-svc-account.html" title="Service-side Account interfaces">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
349349 </div>
350350 <div class="footer">
351351 <hr>
352 Generated by GTK-Doc V1.17</div>
352 Generated by GTK-Doc V1.17.1</div>
353353 </body>
354354 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-account-manager.html" title="Service-side Account Manager interface">
99 <link rel="next" href="telepathy-glib-svc-channel-dispatcher.html" title="Service-side Channel Dispatcher interface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
673673 </div>
674674 <div class="footer">
675675 <hr>
676 Generated by GTK-Doc V1.17</div>
676 Generated by GTK-Doc V1.17.1</div>
677677 </body>
678678 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-connection.html" title="Service-side Connection interfaces">
99 <link rel="next" href="telepathy-glib-svc-service-point.html" title="Service-side Connection and Channel ServicePoint interfaces">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
182182 </div>
183183 <div class="footer">
184184 <hr>
185 Generated by GTK-Doc V1.17</div>
185 Generated by GTK-Doc V1.17.1</div>
186186 </body>
187187 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-channel-roomlist.html" title="Room List channels">
99 <link rel="next" href="telepathy-glib-svc-channel-securable.html" title="Service-side Securable interface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
694694 </div>
695695 <div class="footer">
696696 <hr>
697 Generated by GTK-Doc V1.17</div>
697 Generated by GTK-Doc V1.17.1</div>
698698 </body>
699699 </html>
55 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
66 <link rel="home" href="index.html" title="telepathy-glib API Reference Manual">
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
8 <link rel="prev" href="telepathy-glib-svc-channel-group.html" title="Service-side Channel Group and Conference interfaces">
8 <link rel="prev" href="telepathy-glib-svc-channel-room.html" title="Service-side room interfaces">
99 <link rel="next" href="telepathy-glib-svc-channel-contactsearch.html" title="Contact Search channels">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
1414 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
1515 <tr valign="middle">
16 <td><a accesskey="p" href="telepathy-glib-svc-channel-group.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
16 <td><a accesskey="p" href="telepathy-glib-svc-channel-room.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
1717 <td><a accesskey="u" href="ch-service-dbus.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
1818 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
1919 <th width="100%" align="center">telepathy-glib API Reference Manual</th>
8989 </div>
9090 <div class="footer">
9191 <hr>
92 Generated by GTK-Doc V1.17</div>
92 Generated by GTK-Doc V1.17.1</div>
9393 </body>
9494 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-channel-contactlist.html" title="Contact List channels">
99 <link rel="next" href="telepathy-glib-svc-channel-text.html" title="Text channels">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
476476 </div>
477477 <div class="footer">
478478 <hr>
479 Generated by GTK-Doc V1.17</div>
479 Generated by GTK-Doc V1.17.1</div>
480480 </body>
481481 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-channel-dispatcher.html" title="Service-side Channel Dispatcher interface">
99 <link rel="next" href="telepathy-glib-svc-channel-request.html" title="Service-side Channel Request interface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
477477 </div>
478478 <div class="footer">
479479 <hr>
480 Generated by GTK-Doc V1.17</div>
480 Generated by GTK-Doc V1.17.1</div>
481481 </body>
482482 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-account.html" title="Service-side Account interfaces">
99 <link rel="next" href="telepathy-glib-svc-channel-dispatch-operation.html" title="Service-side Channel Dispatch Operation interface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
900900 </div>
901901 <div class="footer">
902902 <hr>
903 Generated by GTK-Doc V1.17</div>
903 Generated by GTK-Doc V1.17.1</div>
904904 </body>
905905 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-channel-media.html" title="Media channels">
99 <link rel="next" href="telepathy-glib-svc-channel-tubes.html" title="Tubes channels">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
548548 </div>
549549 <div class="footer">
550550 <hr>
551 Generated by GTK-Doc V1.17</div>
551 Generated by GTK-Doc V1.17.1</div>
552552 </body>
553553 </html>
66 <link rel="home" href="index.html" title="telepathy-glib API Reference Manual">
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-channel.html" title="Service-side Channel base interface">
9 <link rel="next" href="telepathy-glib-svc-channel-contactlist.html" title="Contact List channels">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
9 <link rel="next" href="telepathy-glib-svc-channel-room.html" title="Service-side room interfaces">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
1717 <td><a accesskey="u" href="ch-service-dbus.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
1818 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
1919 <th width="100%" align="center">telepathy-glib API Reference Manual</th>
20 <td><a accesskey="n" href="telepathy-glib-svc-channel-contactlist.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
20 <td><a accesskey="n" href="telepathy-glib-svc-channel-room.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
2121 </tr>
2222 <tr><td colspan="5" class="shortcuts">
2323 <a href="#telepathy-glib-svc-channel-group.synopsis" class="shortcut">Top</a>
209209 <pre class="synopsis">
210210 "<a class="link" href="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-group-flags-changed" title='The "group-flags-changed" signal'>group-flags-changed</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a>
211211 "<a class="link" href="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-handle-owners-changed" title='The "handle-owners-changed" signal'>handle-owners-changed</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a>
212 "<a class="link" href="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-handle-owners-changed-detailed" title='The "handle-owners-changed-detailed" signal'>handle-owners-changed-detailed</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a>
212213 "<a class="link" href="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-members-changed" title='The "members-changed" signal'>members-changed</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a>
213214 "<a class="link" href="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-members-changed-detailed" title='The "members-changed-detailed" signal'>members-changed-detailed</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a>
215 "<a class="link" href="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-self-contact-changed" title='The "self-contact-changed" signal'>self-contact-changed</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a>
214216 "<a class="link" href="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-self-handle-changed" title='The "self-handle-changed" signal'>self-handle-changed</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a>
215217 "<a class="link" href="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceConference-channel-merged" title='The "channel-merged" signal'>channel-merged</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a>
216218 "<a class="link" href="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceConference-channel-removed" title='The "channel-removed" signal'>channel-removed</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a>
14641466 </div>
14651467 <hr>
14661468 <div class="refsect2">
1469 <a name="TpSvcChannelInterfaceGroup-handle-owners-changed-detailed"></a><h3>The <code class="literal">"handle-owners-changed-detailed"</code> signal</h3>
1470 <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup"><span class="type">TpSvcChannelInterfaceGroup</span></a> *self,
1471 <span class="type">GArray_guint_</span> *arg_Removed,
1472 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a></pre>
1473 <p>
1474 The HandleOwnersChangedDetailed D-Bus signal is emitted whenever this GObject signal is.
1475 </p>
1476 <div class="variablelist"><table border="0">
1477 <col align="left" valign="top">
1478 <tbody>
1479 <tr>
1480 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
1481 <td>an object</td>
1482 </tr>
1483 <tr>
1484 <td><p><span class="term"><em class="parameter"><code>arg_Added</code></em> :</span></p></td>
1485 <td>GHashTable * (FIXME, generate documentation)</td>
1486 </tr>
1487 <tr>
1488 <td><p><span class="term"><em class="parameter"><code>arg_Removed</code></em> :</span></p></td>
1489 <td>const GArray * (FIXME, generate documentation)</td>
1490 </tr>
1491 <tr>
1492 <td><p><span class="term"><em class="parameter"><code>arg_Identifiers</code></em> :</span></p></td>
1493 <td>GHashTable * (FIXME, generate documentation)</td>
1494 </tr>
1495 <tr>
1496 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
1497 <td>user data set when the signal handler was connected.</td>
1498 </tr>
1499 </tbody>
1500 </table></div>
1501 </div>
1502 <hr>
1503 <div class="refsect2">
14671504 <a name="TpSvcChannelInterfaceGroup-members-changed"></a><h3>The <code class="literal">"members-changed"</code> signal</h3>
14681505 <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup"><span class="type">TpSvcChannelInterfaceGroup</span></a> *self,
14691506 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg_Message,
15671604 </div>
15681605 <hr>
15691606 <div class="refsect2">
1607 <a name="TpSvcChannelInterfaceGroup-self-contact-changed"></a><h3>The <code class="literal">"self-contact-changed"</code> signal</h3>
1608 <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup"><span class="type">TpSvcChannelInterfaceGroup</span></a> *self,
1609 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_Self_Handle,
1610 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg_Self_ID,
1611 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a></pre>
1612 <p>
1613 The SelfContactChanged D-Bus signal is emitted whenever this GObject signal is.
1614 </p>
1615 <div class="variablelist"><table border="0">
1616 <col align="left" valign="top">
1617 <tbody>
1618 <tr>
1619 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
1620 <td>an object</td>
1621 </tr>
1622 <tr>
1623 <td><p><span class="term"><em class="parameter"><code>arg_Self_Handle</code></em> :</span></p></td>
1624 <td>guint (FIXME, generate documentation)</td>
1625 </tr>
1626 <tr>
1627 <td><p><span class="term"><em class="parameter"><code>arg_Self_ID</code></em> :</span></p></td>
1628 <td>const gchar * (FIXME, generate documentation)</td>
1629 </tr>
1630 <tr>
1631 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
1632 <td>user data set when the signal handler was connected.</td>
1633 </tr>
1634 </tbody>
1635 </table></div>
1636 </div>
1637 <hr>
1638 <div class="refsect2">
15701639 <a name="TpSvcChannelInterfaceGroup-self-handle-changed"></a><h3>The <code class="literal">"self-handle-changed"</code> signal</h3>
15711640 <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup"><span class="type">TpSvcChannelInterfaceGroup</span></a> *self,
15721641 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg_Self_Handle,
16671736 </div>
16681737 <div class="footer">
16691738 <hr>
1670 Generated by GTK-Doc V1.17</div>
1739 Generated by GTK-Doc V1.17.1</div>
16711740 </body>
16721741 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-channel-text.html" title="Text channels">
99 <link rel="next" href="telepathy-glib-svc-channel-file-transfer.html" title="File Transfer channels">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
19551955 </div>
19561956 <div class="footer">
19571957 <hr>
1958 Generated by GTK-Doc V1.17</div>
1958 Generated by GTK-Doc V1.17.1</div>
19591959 </body>
19601960 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-channel-dispatch-operation.html" title="Service-side Channel Dispatch Operation interface">
99 <link rel="next" href="telepathy-glib-svc-client.html" title="Service-side Client interfaces">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
457457 </div>
458458 <div class="footer">
459459 <hr>
460 Generated by GTK-Doc V1.17</div>
460 Generated by GTK-Doc V1.17.1</div>
461461 </body>
462462 </html>
0 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4 <title>Service-side room interfaces</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
6 <link rel="home" href="index.html" title="telepathy-glib API Reference Manual">
7 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
8 <link rel="prev" href="telepathy-glib-svc-channel-group.html" title="Service-side Channel Group and Conference interfaces">
9 <link rel="next" href="telepathy-glib-svc-channel-contactlist.html" title="Contact List channels">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
11 <link rel="stylesheet" href="style.css" type="text/css">
12 </head>
13 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
14 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
15 <tr valign="middle">
16 <td><a accesskey="p" href="telepathy-glib-svc-channel-group.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
17 <td><a accesskey="u" href="ch-service-dbus.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
18 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
19 <th width="100%" align="center">telepathy-glib API Reference Manual</th>
20 <td><a accesskey="n" href="telepathy-glib-svc-channel-contactlist.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
21 </tr>
22 <tr><td colspan="5" class="shortcuts">
23 <a href="#telepathy-glib-svc-channel-room.synopsis" class="shortcut">Top</a>
24  | 
25 <a href="#telepathy-glib-svc-channel-room.description" class="shortcut">Description</a>
26  | 
27 <a href="#telepathy-glib-svc-channel-room.object-hierarchy" class="shortcut">Object Hierarchy</a>
28 </td></tr>
29 </table>
30 <div class="refentry">
31 <a name="telepathy-glib-svc-channel-room"></a><div class="titlepage"></div>
32 <div class="refnamediv"><table width="100%"><tr>
33 <td valign="top">
34 <h2><span class="refentrytitle"><a name="telepathy-glib-svc-channel-room.top_of_page"></a>Service-side room interfaces</span></h2>
35 <p>Service-side room interfaces — room-related functionality for channels</p>
36 </td>
37 <td valign="top" align="right"></td>
38 </tr></table></div>
39 <div class="refsynopsisdiv">
40 <a name="telepathy-glib-svc-channel-room.synopsis"></a><h2>Synopsis</h2>
41 <a name="TpSvcChannelInterfaceRoom"></a><a name="TpSvcChannelInterfaceRoomConfig"></a><a name="TpSvcChannelInterfaceSubject"></a><pre class="synopsis">
42 #include &lt;telepathy-glib/svc-channel.h&gt;
43
44 <a class="link" href="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceRoom-struct" title="TpSvcChannelInterfaceRoom">TpSvcChannelInterfaceRoom</a>;
45 <a class="link" href="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceRoomClass" title="TpSvcChannelInterfaceRoomClass">TpSvcChannelInterfaceRoomClass</a>;
46
47
48 <a class="link" href="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceRoomConfig-struct" title="TpSvcChannelInterfaceRoomConfig">TpSvcChannelInterfaceRoomConfig</a>;
49 <a class="link" href="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceRoomConfigClass" title="TpSvcChannelInterfaceRoomConfigClass">TpSvcChannelInterfaceRoomConfigClass</a>;
50 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-svc-channel-room.html#tp-svc-channel-interface-room-config-implement-update-configuration" title="tp_svc_channel_interface_room_config_implement_update_configuration ()">tp_svc_channel_interface_room_config_implement_update_configuration</a>
51 (<em class="parameter"><code><a class="link" href="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceRoomConfigClass" title="TpSvcChannelInterfaceRoomConfigClass"><span class="type">TpSvcChannelInterfaceRoomConfigClass</span></a> *klass</code></em>,
52 <em class="parameter"><code><a class="link" href="telepathy-glib-svc-channel-room.html#tp-svc-channel-interface-room-config-update-configuration-impl" title="tp_svc_channel_interface_room_config_update_configuration_impl ()"><span class="type">tp_svc_channel_interface_room_config_update_configuration_impl</span></a> impl</code></em>);
53 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-svc-channel-room.html#tp-svc-channel-interface-room-config-return-from-update-configuration" title="tp_svc_channel_interface_room_config_return_from_update_configuration ()">tp_svc_channel_interface_room_config_return_from_update_configuration</a>
54 (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGMethod.html#DBusGMethodInvocation"><span class="type">DBusGMethodInvocation</span></a> *context</code></em>);
55 <span class="returnvalue">void</span> (<a class="link" href="telepathy-glib-svc-channel-room.html#tp-svc-channel-interface-room-config-update-configuration-impl" title="tp_svc_channel_interface_room_config_update_configuration_impl ()">*tp_svc_channel_interface_room_config_update_configuration_impl</a>)
56 (<em class="parameter"><code><a class="link" href="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceRoomConfig"><span class="type">TpSvcChannelInterfaceRoomConfig</span></a> *self</code></em>,
57 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *in_Properties</code></em>,
58 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGMethod.html#DBusGMethodInvocation"><span class="type">DBusGMethodInvocation</span></a> *context</code></em>);
59
60
61 <a class="link" href="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceSubject-struct" title="TpSvcChannelInterfaceSubject">TpSvcChannelInterfaceSubject</a>;
62 <a class="link" href="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceSubjectClass" title="TpSvcChannelInterfaceSubjectClass">TpSvcChannelInterfaceSubjectClass</a>;
63 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-svc-channel-room.html#tp-svc-channel-interface-subject-implement-set-subject" title="tp_svc_channel_interface_subject_implement_set_subject ()">tp_svc_channel_interface_subject_implement_set_subject</a>
64 (<em class="parameter"><code><a class="link" href="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceSubjectClass" title="TpSvcChannelInterfaceSubjectClass"><span class="type">TpSvcChannelInterfaceSubjectClass</span></a> *klass</code></em>,
65 <em class="parameter"><code><a class="link" href="telepathy-glib-svc-channel-room.html#tp-svc-channel-interface-subject-set-subject-impl" title="tp_svc_channel_interface_subject_set_subject_impl ()"><span class="type">tp_svc_channel_interface_subject_set_subject_impl</span></a> impl</code></em>);
66 <span class="returnvalue">void</span> <a class="link" href="telepathy-glib-svc-channel-room.html#tp-svc-channel-interface-subject-return-from-set-subject" title="tp_svc_channel_interface_subject_return_from_set_subject ()">tp_svc_channel_interface_subject_return_from_set_subject</a>
67 (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGMethod.html#DBusGMethodInvocation"><span class="type">DBusGMethodInvocation</span></a> *context</code></em>);
68 <span class="returnvalue">void</span> (<a class="link" href="telepathy-glib-svc-channel-room.html#tp-svc-channel-interface-subject-set-subject-impl" title="tp_svc_channel_interface_subject_set_subject_impl ()">*tp_svc_channel_interface_subject_set_subject_impl</a>)
69 (<em class="parameter"><code><a class="link" href="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceSubject"><span class="type">TpSvcChannelInterfaceSubject</span></a> *self</code></em>,
70 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *in_Subject</code></em>,
71 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGMethod.html#DBusGMethodInvocation"><span class="type">DBusGMethodInvocation</span></a> *context</code></em>);
72 </pre>
73 </div>
74 <div class="refsect1">
75 <a name="telepathy-glib-svc-channel-room.object-hierarchy"></a><h2>Object Hierarchy</h2>
76 <pre class="synopsis">
77 GInterface
78 +----TpSvcChannelInterfaceRoom
79 </pre>
80 <pre class="synopsis">
81 GInterface
82 +----TpSvcChannelInterfaceRoomConfig
83 </pre>
84 <pre class="synopsis">
85 GInterface
86 +----TpSvcChannelInterfaceSubject
87 </pre>
88 </div>
89 <div class="refsect1">
90 <a name="telepathy-glib-svc-channel-room.description"></a><h2>Description</h2>
91 <p>
92 This collection of interfaces is used to expose various aspects of the
93 configuration of chat rooms.
94 </p>
95 <p>
96 <a class="link" href="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceRoom"><span class="type">TpSvcChannelInterfaceRoom</span></a> consists only of a pair of requestable, immutable
97 properties: <code class="code">"RoomName"</code> and <code class="code">"Server"</code>. It has no
98 methods or signals. It should be implemented on channels representing a chat
99 room (whether it be a text chat, a multi-user call, or some other media
100 type).
101 </p>
102 <p>
103 <a class="link" href="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceSubject"><span class="type">TpSvcChannelInterfaceSubject</span></a> may be implemented by channels which have a
104 subject (or topic, depending on your protocol's terminology of choice). This
105 will usually be in addition to <a class="link" href="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceRoom"><span class="type">TpSvcChannelInterfaceRoom</span></a>, though in theory
106 a 1-1 channel could have a subject. In addition to its single method, it
107 defines a set of read-only properties, namely <code class="code">"Subject"</code>,
108 <code class="code">"Actor"</code>, <code class="code">"ActorHandle"</code>, <code class="code">"Timestamp"</code>,
109 and <code class="code">"CanSet"</code>. Changes should be signalled using
110 <a class="link" href="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-emit-properties-changed" title="tp_dbus_properties_mixin_emit_properties_changed ()"><code class="function">tp_dbus_properties_mixin_emit_properties_changed()</code></a>.
111 </p>
112 <p>
113 <a class="link" href="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceRoomConfig"><span class="type">TpSvcChannelInterfaceRoomConfig</span></a> provides a vast array of properties for
114 other aspects of a chat room's configuration (such as the maximum number of
115 participants, and whether the room is password-protected). Channels with
116 this interface will typically implement the other two, too.
117 </p>
118 </div>
119 <div class="refsect1">
120 <a name="telepathy-glib-svc-channel-room.details"></a><h2>Details</h2>
121 <div class="refsect2">
122 <a name="TpSvcChannelInterfaceRoom-struct"></a><h3>TpSvcChannelInterfaceRoom</h3>
123 <pre class="programlisting">typedef struct _TpSvcChannelInterfaceRoom TpSvcChannelInterfaceRoom;</pre>
124 <p>
125 Dummy typedef representing any implementation of this interface.
126 </p>
127 </div>
128 <hr>
129 <div class="refsect2">
130 <a name="TpSvcChannelInterfaceRoomClass"></a><h3>TpSvcChannelInterfaceRoomClass</h3>
131 <pre class="programlisting">typedef struct _TpSvcChannelInterfaceRoomClass TpSvcChannelInterfaceRoomClass;</pre>
132 <p>
133 The class of TpSvcChannelInterfaceRoom.
134 This interface has no D-Bus methods, so an
135 implementation can typically pass <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to
136 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS"><code class="function">G_IMPLEMENT_INTERFACE()</code></a> as the interface
137 initialization function.
138 </p>
139 </div>
140 <hr>
141 <div class="refsect2">
142 <a name="TpSvcChannelInterfaceRoomConfig-struct"></a><h3>TpSvcChannelInterfaceRoomConfig</h3>
143 <pre class="programlisting">typedef struct _TpSvcChannelInterfaceRoomConfig TpSvcChannelInterfaceRoomConfig;</pre>
144 <p>
145 Dummy typedef representing any implementation of this interface.
146 </p>
147 </div>
148 <hr>
149 <div class="refsect2">
150 <a name="TpSvcChannelInterfaceRoomConfigClass"></a><h3>TpSvcChannelInterfaceRoomConfigClass</h3>
151 <pre class="programlisting">typedef struct _TpSvcChannelInterfaceRoomConfigClass TpSvcChannelInterfaceRoomConfigClass;</pre>
152 <p>
153 The class of TpSvcChannelInterfaceRoomConfig.
154 </p>
155 <p>
156 In a full implementation of this interface (i.e. all
157 methods implemented), the interface initialization
158 function used in <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS"><code class="function">G_IMPLEMENT_INTERFACE()</code></a> would
159 typically look like this:
160 </p>
161 <p>
162 </p>
163 <pre class="programlisting">
164 static void
165 implement_channel_interface_room_config (gpointer klass,
166 gpointer unused G_GNUC_UNUSED)
167 {
168 #define IMPLEMENT(x) tp_svc_channel_interface_room_config_implement_##x (\
169 klass, my_object_##x)
170 IMPLEMENT (update_configuration);
171 #undef IMPLEMENT
172 }
173 </pre>
174 <p>
175 </p>
176 </div>
177 <hr>
178 <div class="refsect2">
179 <a name="tp-svc-channel-interface-room-config-implement-update-configuration"></a><h3>tp_svc_channel_interface_room_config_implement_update_configuration ()</h3>
180 <pre class="programlisting"><span class="returnvalue">void</span> tp_svc_channel_interface_room_config_implement_update_configuration
181 (<em class="parameter"><code><a class="link" href="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceRoomConfigClass" title="TpSvcChannelInterfaceRoomConfigClass"><span class="type">TpSvcChannelInterfaceRoomConfigClass</span></a> *klass</code></em>,
182 <em class="parameter"><code><a class="link" href="telepathy-glib-svc-channel-room.html#tp-svc-channel-interface-room-config-update-configuration-impl" title="tp_svc_channel_interface_room_config_update_configuration_impl ()"><span class="type">tp_svc_channel_interface_room_config_update_configuration_impl</span></a> impl</code></em>);</pre>
183 <p>
184 Register an implementation for the UpdateConfiguration method in the vtable
185 of an implementation of this interface. To be called from
186 the interface init function.
187 </p>
188 <div class="variablelist"><table border="0">
189 <col align="left" valign="top">
190 <tbody>
191 <tr>
192 <td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
193 <td>A class whose instances implement this interface</td>
194 </tr>
195 <tr>
196 <td><p><span class="term"><em class="parameter"><code>impl</code></em> :</span></p></td>
197 <td>A callback used to implement the UpdateConfiguration D-Bus method</td>
198 </tr>
199 </tbody>
200 </table></div>
201 </div>
202 <hr>
203 <div class="refsect2">
204 <a name="tp-svc-channel-interface-room-config-return-from-update-configuration"></a><h3>tp_svc_channel_interface_room_config_return_from_update_configuration ()</h3>
205 <pre class="programlisting"><span class="returnvalue">void</span> tp_svc_channel_interface_room_config_return_from_update_configuration
206 (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGMethod.html#DBusGMethodInvocation"><span class="type">DBusGMethodInvocation</span></a> *context</code></em>);</pre>
207 <p>
208 Return successfully by calling <a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGMethod.html#dbus-g-method-return"><code class="function">dbus_g_method_return()</code></a>.
209 This inline function exists only to provide type-safety.
210 </p>
211 <div class="variablelist"><table border="0">
212 <col align="left" valign="top">
213 <tbody><tr>
214 <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
215 <td>The D-Bus method invocation context</td>
216 </tr></tbody>
217 </table></div>
218 </div>
219 <hr>
220 <div class="refsect2">
221 <a name="tp-svc-channel-interface-room-config-update-configuration-impl"></a><h3>tp_svc_channel_interface_room_config_update_configuration_impl ()</h3>
222 <pre class="programlisting"><span class="returnvalue">void</span> (*tp_svc_channel_interface_room_config_update_configuration_impl)
223 (<em class="parameter"><code><a class="link" href="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceRoomConfig"><span class="type">TpSvcChannelInterfaceRoomConfig</span></a> *self</code></em>,
224 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *in_Properties</code></em>,
225 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGMethod.html#DBusGMethodInvocation"><span class="type">DBusGMethodInvocation</span></a> *context</code></em>);</pre>
226 <p>
227 The signature of an implementation of the D-Bus method
228 UpdateConfiguration on interface org.freedesktop.Telepathy.Channel.Interface.RoomConfig1.
229 </p>
230 <div class="variablelist"><table border="0">
231 <col align="left" valign="top">
232 <tbody>
233 <tr>
234 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
235 <td>The object implementing this interface</td>
236 </tr>
237 <tr>
238 <td><p><span class="term"><em class="parameter"><code>in_Properties</code></em> :</span></p></td>
239 <td>GHashTable * (FIXME, generate documentation)</td>
240 </tr>
241 <tr>
242 <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
243 <td>Used to return values or throw an error</td>
244 </tr>
245 </tbody>
246 </table></div>
247 </div>
248 <hr>
249 <div class="refsect2">
250 <a name="TpSvcChannelInterfaceSubject-struct"></a><h3>TpSvcChannelInterfaceSubject</h3>
251 <pre class="programlisting">typedef struct _TpSvcChannelInterfaceSubject TpSvcChannelInterfaceSubject;</pre>
252 <p>
253 Dummy typedef representing any implementation of this interface.
254 </p>
255 </div>
256 <hr>
257 <div class="refsect2">
258 <a name="TpSvcChannelInterfaceSubjectClass"></a><h3>TpSvcChannelInterfaceSubjectClass</h3>
259 <pre class="programlisting">typedef struct _TpSvcChannelInterfaceSubjectClass TpSvcChannelInterfaceSubjectClass;</pre>
260 <p>
261 The class of TpSvcChannelInterfaceSubject.
262 </p>
263 <p>
264 In a full implementation of this interface (i.e. all
265 methods implemented), the interface initialization
266 function used in <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS"><code class="function">G_IMPLEMENT_INTERFACE()</code></a> would
267 typically look like this:
268 </p>
269 <p>
270 </p>
271 <pre class="programlisting">
272 static void
273 implement_channel_interface_subject (gpointer klass,
274 gpointer unused G_GNUC_UNUSED)
275 {
276 #define IMPLEMENT(x) tp_svc_channel_interface_subject_implement_##x (\
277 klass, my_object_##x)
278 IMPLEMENT (set_subject);
279 #undef IMPLEMENT
280 }
281 </pre>
282 <p>
283 </p>
284 </div>
285 <hr>
286 <div class="refsect2">
287 <a name="tp-svc-channel-interface-subject-implement-set-subject"></a><h3>tp_svc_channel_interface_subject_implement_set_subject ()</h3>
288 <pre class="programlisting"><span class="returnvalue">void</span> tp_svc_channel_interface_subject_implement_set_subject
289 (<em class="parameter"><code><a class="link" href="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceSubjectClass" title="TpSvcChannelInterfaceSubjectClass"><span class="type">TpSvcChannelInterfaceSubjectClass</span></a> *klass</code></em>,
290 <em class="parameter"><code><a class="link" href="telepathy-glib-svc-channel-room.html#tp-svc-channel-interface-subject-set-subject-impl" title="tp_svc_channel_interface_subject_set_subject_impl ()"><span class="type">tp_svc_channel_interface_subject_set_subject_impl</span></a> impl</code></em>);</pre>
291 <p>
292 Register an implementation for the SetSubject method in the vtable
293 of an implementation of this interface. To be called from
294 the interface init function.
295 </p>
296 <div class="variablelist"><table border="0">
297 <col align="left" valign="top">
298 <tbody>
299 <tr>
300 <td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
301 <td>A class whose instances implement this interface</td>
302 </tr>
303 <tr>
304 <td><p><span class="term"><em class="parameter"><code>impl</code></em> :</span></p></td>
305 <td>A callback used to implement the SetSubject D-Bus method</td>
306 </tr>
307 </tbody>
308 </table></div>
309 </div>
310 <hr>
311 <div class="refsect2">
312 <a name="tp-svc-channel-interface-subject-return-from-set-subject"></a><h3>tp_svc_channel_interface_subject_return_from_set_subject ()</h3>
313 <pre class="programlisting"><span class="returnvalue">void</span> tp_svc_channel_interface_subject_return_from_set_subject
314 (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGMethod.html#DBusGMethodInvocation"><span class="type">DBusGMethodInvocation</span></a> *context</code></em>);</pre>
315 <p>
316 Return successfully by calling <a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGMethod.html#dbus-g-method-return"><code class="function">dbus_g_method_return()</code></a>.
317 This inline function exists only to provide type-safety.
318 </p>
319 <div class="variablelist"><table border="0">
320 <col align="left" valign="top">
321 <tbody><tr>
322 <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
323 <td>The D-Bus method invocation context</td>
324 </tr></tbody>
325 </table></div>
326 </div>
327 <hr>
328 <div class="refsect2">
329 <a name="tp-svc-channel-interface-subject-set-subject-impl"></a><h3>tp_svc_channel_interface_subject_set_subject_impl ()</h3>
330 <pre class="programlisting"><span class="returnvalue">void</span> (*tp_svc_channel_interface_subject_set_subject_impl)
331 (<em class="parameter"><code><a class="link" href="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceSubject"><span class="type">TpSvcChannelInterfaceSubject</span></a> *self</code></em>,
332 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *in_Subject</code></em>,
333 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGMethod.html#DBusGMethodInvocation"><span class="type">DBusGMethodInvocation</span></a> *context</code></em>);</pre>
334 <p>
335 The signature of an implementation of the D-Bus method
336 SetSubject on interface org.freedesktop.Telepathy.Channel.Interface.Subject2.
337 </p>
338 <div class="variablelist"><table border="0">
339 <col align="left" valign="top">
340 <tbody>
341 <tr>
342 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
343 <td>The object implementing this interface</td>
344 </tr>
345 <tr>
346 <td><p><span class="term"><em class="parameter"><code>in_Subject</code></em> :</span></p></td>
347 <td>const gchar * (FIXME, generate documentation)</td>
348 </tr>
349 <tr>
350 <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
351 <td>Used to return values or throw an error</td>
352 </tr>
353 </tbody>
354 </table></div>
355 </div>
356 </div>
357 </div>
358 <div class="footer">
359 <hr>
360 Generated by GTK-Doc V1.17.1</div>
361 </body>
362 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-channel-tube.html" title="Tube channels">
99 <link rel="next" href="telepathy-glib-svc-channel-auth.html" title="Service-side Channel Authentication interfaces">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
452452 </div>
453453 <div class="footer">
454454 <hr>
455 Generated by GTK-Doc V1.17</div>
455 Generated by GTK-Doc V1.17.1</div>
456456 </body>
457457 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-channel-auth.html" title="Service-side Channel Authentication interfaces">
99 <link rel="next" href="telepathy-glib-svc-debug.html" title="Service-side Debug base interface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
8484 </div>
8585 <div class="footer">
8686 <hr>
87 Generated by GTK-Doc V1.17</div>
87 Generated by GTK-Doc V1.17.1</div>
8888 </body>
8989 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-channel-contactsearch.html" title="Contact Search channels">
99 <link rel="next" href="telepathy-glib-svc-channel-media.html" title="Media channels">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
18661866 </div>
18671867 <div class="footer">
18681868 <hr>
1869 Generated by GTK-Doc V1.17</div>
1869 Generated by GTK-Doc V1.17.1</div>
18701870 </body>
18711871 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-channel-tubes.html" title="Tubes channels">
99 <link rel="next" href="telepathy-glib-svc-channel-roomlist.html" title="Room List channels">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
892892 </div>
893893 <div class="footer">
894894 <hr>
895 Generated by GTK-Doc V1.17</div>
895 Generated by GTK-Doc V1.17.1</div>
896896 </body>
897897 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-channel-file-transfer.html" title="File Transfer channels">
99 <link rel="next" href="telepathy-glib-svc-channel-tube.html" title="Tube channels">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
14951495 </div>
14961496 <div class="footer">
14971497 <hr>
1498 Generated by GTK-Doc V1.17</div>
1498 Generated by GTK-Doc V1.17.1</div>
14991499 </body>
15001500 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-generic.html" title="Generic service-side interfaces">
99 <link rel="next" href="telepathy-glib-svc-channel-group.html" title="Service-side Channel Group and Conference interfaces">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
607607 </div>
608608 <div class="footer">
609609 <hr>
610 Generated by GTK-Doc V1.17</div>
610 Generated by GTK-Doc V1.17.1</div>
611611 </body>
612612 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-channel-request.html" title="Service-side Channel Request interface">
99 <link rel="next" href="telepathy-glib-svc-tls.html" title="Service-side TLS interfaces">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
775775 </div>
776776 <div class="footer">
777777 <hr>
778 Generated by GTK-Doc V1.17</div>
778 Generated by GTK-Doc V1.17.1</div>
779779 </body>
780780 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-media-interfaces.html" title="Service-side media streaming helper interfaces">
99 <link rel="next" href="telepathy-glib-svc-protocol.html" title="Service-side Protocol interface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
473473 </div>
474474 <div class="footer">
475475 <hr>
476 Generated by GTK-Doc V1.17</div>
476 Generated by GTK-Doc V1.17.1</div>
477477 </body>
478478 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-debug.html" title="Service-side Debug base interface">
99 <link rel="next" href="telepathy-glib-svc-anonymity.html" title="Service-side Connection and Channel Anonymity interfaces">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
86668666 </div>
86678667 <div class="footer">
86688668 <hr>
8669 Generated by GTK-Doc V1.17</div>
8669 Generated by GTK-Doc V1.17.1</div>
86708670 </body>
86718671 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-channel-securable.html" title="Service-side Securable interface">
99 <link rel="next" href="telepathy-glib-svc-connection.html" title="Service-side Connection interfaces">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
285285 </div>
286286 <div class="footer">
287287 <hr>
288 Generated by GTK-Doc V1.17</div>
288 Generated by GTK-Doc V1.17.1</div>
289289 </body>
290290 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc.html" title="The TpSvc* interfaces">
99 <link rel="next" href="telepathy-glib-svc-channel.html" title="Service-side Channel base interface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
10101010 </div>
10111011 <div class="footer">
10121012 <hr>
1013 Generated by GTK-Doc V1.17</div>
1013 Generated by GTK-Doc V1.17.1</div>
10141014 </body>
10151015 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-service-point.html" title="Service-side Connection and Channel ServicePoint interfaces">
99 <link rel="next" href="telepathy-glib-svc-connection-manager.html" title="Service-side Connection Manager interface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
24752475 </div>
24762476 <div class="footer">
24772477 <hr>
2478 Generated by GTK-Doc V1.17</div>
2478 Generated by GTK-Doc V1.17.1</div>
24792479 </body>
24802480 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-connection-manager.html" title="Service-side Connection Manager interface">
99 <link rel="next" href="telepathy-glib-svc-account-manager.html" title="Service-side Account Manager interface">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
352352 </div>
353353 <div class="footer">
354354 <hr>
355 Generated by GTK-Doc V1.17</div>
355 Generated by GTK-Doc V1.17.1</div>
356356 </body>
357357 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-anonymity.html" title="Service-side Connection and Channel Anonymity interfaces">
99 <link rel="next" href="telepathy-glib-svc-media-interfaces.html" title="Service-side media streaming helper interfaces">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
236236 </div>
237237 <div class="footer">
238238 <hr>
239 Generated by GTK-Doc V1.17</div>
239 Generated by GTK-Doc V1.17.1</div>
240240 </body>
241241 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="telepathy-glib-svc-client.html" title="Service-side Client interfaces">
99 <link rel="next" href="ch-service-base.html" title="Service-side implementation">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
390390 </div>
391391 <div class="footer">
392392 <hr>
393 Generated by GTK-Doc V1.17</div>
393 Generated by GTK-Doc V1.17.1</div>
394394 </body>
395395 </html>
77 <link rel="up" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
88 <link rel="prev" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
99 <link rel="next" href="telepathy-glib-svc-generic.html" title="Generic service-side interfaces">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
5959 6
6060 7
6161 8</pre></td>
62 <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span> <span class="function">stream_handler_iface_init</span> <span class="gtkdoc opt">(</span>gpointer<span class="gtkdoc opt">,</span> gpointer<span class="gtkdoc opt">);</span>
63
64 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-DEFINE-TYPE-WITH-CODE:CAPS">G_DEFINE_TYPE_WITH_CODE</a></span><span class="gtkdoc opt">(</span>GabbleMediaStream<span class="gtkdoc opt">,</span>
65 gabble_media_stream<span class="gtkdoc opt">,</span>
66 G_TYPE_OBJECT<span class="gtkdoc opt">,</span>
67 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span> <span class="gtkdoc opt">(</span>TP_TYPE_SVC_MEDIA_STREAM_HANDLER<span class="gtkdoc opt">,</span>
68 stream_handler_iface_init<span class="gtkdoc opt">)</span>
69 <span class="gtkdoc opt">)</span></pre></td>
62 <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span><span class="normal"> </span><span class="function">stream_handler_iface_init</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer">gpointer</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer">gpointer</a></span><span class="symbol">);</span>
63
64 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-DEFINE-TYPE-WITH-CODE:CAPS">G_DEFINE_TYPE_WITH_CODE</a></span><span class="symbol">(</span><span class="normal">GabbleMediaStream</span><span class="symbol">,</span>
65 <span class="normal"> gabble_media_stream</span><span class="symbol">,</span>
66 <span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-OBJECT:CAPS">G_TYPE_OBJECT</a></span><span class="symbol">,</span>
67 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">TP_TYPE_SVC_MEDIA_STREAM_HANDLER</span><span class="symbol">,</span>
68 <span class="normal"> stream_handler_iface_init</span><span class="symbol">)</span>
69 <span class="normal"> </span><span class="symbol">)</span></pre></td>
7070 </tr>
7171 </tbody>
7272 </table>
111111 22
112112 23</pre></td>
113113 <td class="listing_code"><pre class="programlisting"><span class="comment">/* in header files */</span>
114 <span class="gtkdoc kwb">void</span> <span class="function">conn_aliasing_iface_init</span> <span class="gtkdoc opt">(</span>gpointer<span class="gtkdoc opt">,</span> gpointer<span class="gtkdoc opt">);</span>
115 <span class="gtkdoc kwb">void</span> <span class="function">conn_avatars_iface_init</span> <span class="gtkdoc opt">(</span>gpointer<span class="gtkdoc opt">,</span> gpointer<span class="gtkdoc opt">);</span>
116 <span class="gtkdoc kwb">void</span> <span class="function">conn_presence_iface_init</span> <span class="gtkdoc opt">(</span>gpointer<span class="gtkdoc opt">,</span> gpointer<span class="gtkdoc opt">);</span>
114 <span class="type">void</span><span class="normal"> </span><span class="function">conn_aliasing_iface_init</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer">gpointer</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer">gpointer</a></span><span class="symbol">);</span>
115 <span class="type">void</span><span class="normal"> </span><span class="function">conn_avatars_iface_init</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer">gpointer</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer">gpointer</a></span><span class="symbol">);</span>
116 <span class="type">void</span><span class="normal"> </span><span class="function">conn_presence_iface_init</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer">gpointer</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer">gpointer</a></span><span class="symbol">);</span>
117117
118118 <span class="comment">/* in gabble-connection.c */</span>
119 <span class="gtkdoc kwb">static void</span> <span class="function">conn_iface_init</span> <span class="gtkdoc opt">(</span>gpointer<span class="gtkdoc opt">,</span> gpointer<span class="gtkdoc opt">);</span>
120 <span class="gtkdoc kwb">static void</span> <span class="function">capabilities_iface_init</span> <span class="gtkdoc opt">(</span>gpointer<span class="gtkdoc opt">,</span> gpointer<span class="gtkdoc opt">);</span>
121
122 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-DEFINE-TYPE-WITH-CODE:CAPS">G_DEFINE_TYPE_WITH_CODE</a></span><span class="gtkdoc opt">(</span>GabbleConnection<span class="gtkdoc opt">,</span>
123 gabble_connection<span class="gtkdoc opt">,</span>
124 TP_TYPE_BASE_CONNECTION<span class="gtkdoc opt">,</span>
125 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span> <span class="gtkdoc opt">(</span>TP_TYPE_SVC_CONNECTION<span class="gtkdoc opt">,</span>
126 conn_iface_init<span class="gtkdoc opt">);</span>
127 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span> <span class="gtkdoc opt">(</span>TP_TYPE_SVC_CONNECTION_INTERFACE_ALIASING<span class="gtkdoc opt">,</span>
128 conn_aliasing_iface_init<span class="gtkdoc opt">);</span>
129 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span> <span class="gtkdoc opt">(</span>TP_TYPE_SVC_CONNECTION_INTERFACE_AVATARS<span class="gtkdoc opt">,</span>
130 conn_avatars_iface_init<span class="gtkdoc opt">);</span>
131 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span> <span class="gtkdoc opt">(</span>TP_TYPE_SVC_CONNECTION_INTERFACE_CAPABILITIES<span class="gtkdoc opt">,</span>
132 capabilities_init<span class="gtkdoc opt">);</span>
133 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span> <span class="gtkdoc opt">(</span>TP_TYPE_SVC_CONNECTION_INTERFACE_PRESENCE<span class="gtkdoc opt">,</span>
134 conn_presence_iface_init<span class="gtkdoc opt">);</span>
135 <span class="gtkdoc opt">)</span></pre></td>
119 <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span><span class="normal"> </span><span class="function">conn_iface_init</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer">gpointer</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer">gpointer</a></span><span class="symbol">);</span>
120 <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span><span class="normal"> </span><span class="function">capabilities_iface_init</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer">gpointer</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer">gpointer</a></span><span class="symbol">);</span>
121
122 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-DEFINE-TYPE-WITH-CODE:CAPS">G_DEFINE_TYPE_WITH_CODE</a></span><span class="symbol">(</span><span class="normal">GabbleConnection</span><span class="symbol">,</span>
123 <span class="normal"> gabble_connection</span><span class="symbol">,</span>
124 <span class="normal"> TP_TYPE_BASE_CONNECTION</span><span class="symbol">,</span>
125 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">TP_TYPE_SVC_CONNECTION</span><span class="symbol">,</span>
126 <span class="normal"> conn_iface_init</span><span class="symbol">);</span>
127 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">TP_TYPE_SVC_CONNECTION_INTERFACE_ALIASING</span><span class="symbol">,</span>
128 <span class="normal"> conn_aliasing_iface_init</span><span class="symbol">);</span>
129 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">TP_TYPE_SVC_CONNECTION_INTERFACE_AVATARS</span><span class="symbol">,</span>
130 <span class="normal"> conn_avatars_iface_init</span><span class="symbol">);</span>
131 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">TP_TYPE_SVC_CONNECTION_INTERFACE_CAPABILITIES</span><span class="symbol">,</span>
132 <span class="normal"> capabilities_init</span><span class="symbol">);</span>
133 <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">TP_TYPE_SVC_CONNECTION_INTERFACE_PRESENCE</span><span class="symbol">,</span>
134 <span class="normal"> conn_presence_iface_init</span><span class="symbol">);</span>
135 <span class="normal"> </span><span class="symbol">)</span></pre></td>
136136 </tr>
137137 </tbody>
138138 </table>
158158 <td class="listing_lines" align="right"><pre>1
159159 2
160160 3</pre></td>
161 <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">void</span> <span class="gtkdoc opt">(*</span>tp_svc_media_session_handler_error_impl<span class="gtkdoc opt">)</span>
162 <span class="gtkdoc opt">(</span>TpSvcMediaSessionHandler <span class="gtkdoc opt">*</span>self<span class="gtkdoc opt">,</span> guint errno<span class="gtkdoc opt">,</span> <span class="gtkdoc kwb">const char</span> <span class="gtkdoc opt">*</span>message<span class="gtkdoc opt">,</span>
163 DBusGMethodInvocation <span class="gtkdoc opt">*</span>context<span class="gtkdoc opt">);</span></pre></td>
161 <td class="listing_code"><pre class="programlisting"><span class="type">void</span><span class="normal"> </span><span class="symbol">(*</span><span class="normal"><a href="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-error-impl">tp_svc_media_session_handler_error_impl</a></span><span class="symbol">)</span>
162 <span class="normal"> </span><span class="symbol">(</span><span class="usertype">TpSvcMediaSessionHandler</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">self</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">guint</span><span class="normal"> errno</span><span class="symbol">,</span><span class="normal"> </span><span class="keyword">const</span><span class="normal"> </span><span class="type">char</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">message</span><span class="symbol">,</span>
163 <span class="normal"> </span><span class="usertype">DBusGMethodInvocation</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">context</span><span class="symbol">);</span></pre></td>
164164 </tr>
165165 </tbody>
166166 </table>
182182 7
183183 8
184184 9</pre></td>
185 <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span>
186 <span class="function">gabble_media_session_error</span> <span class="gtkdoc opt">(</span>TpSvcMediaSessionHandler <span class="gtkdoc opt">*</span>iface<span class="gtkdoc opt">,</span>
187 guint errno<span class="gtkdoc opt">,</span>
188 <span class="gtkdoc kwb">const char</span> <span class="gtkdoc opt">*</span>message<span class="gtkdoc opt">,</span>
189 DBusGMethodInvocation <span class="gtkdoc opt">*</span>context<span class="gtkdoc opt">)</span>
190 <span class="gtkdoc opt">{</span>
191 GabbleMediaSession <span class="gtkdoc opt">*</span>self <span class="gtkdoc opt">=</span> <span class="function">GABBLE_MEDIA_SESSION</span> <span class="gtkdoc opt">(</span>iface<span class="gtkdoc opt">);</span>
192
193 <span class="comment">/* do stuff with self here */</span></pre></td>
185 <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
186 <span class="function">gabble_media_session_error</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">TpSvcMediaSessionHandler</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">iface</span><span class="symbol">,</span>
187 <span class="normal"> </span><span class="usertype">guint</span><span class="normal"> errno</span><span class="symbol">,</span>
188 <span class="normal"> </span><span class="keyword">const</span><span class="normal"> </span><span class="type">char</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">message</span><span class="symbol">,</span>
189 <span class="normal"> </span><span class="usertype">DBusGMethodInvocation</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">context</span><span class="symbol">)</span>
190 <span class="cbracket">{</span>
191 <span class="normal"> </span><span class="usertype">GabbleMediaSession</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">self </span><span class="symbol">=</span><span class="normal"> </span><span class="function">GABBLE_MEDIA_SESSION</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">iface</span><span class="symbol">);</span>
192
193 <span class="normal"> </span><span class="comment">/* do stuff with self here */</span></pre></td>
194194 </tr>
195195 </tbody>
196196 </table>
233233 10
234234 11
235235 12</pre></td>
236 <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span>
237 <span class="function">gabble_media_session_error</span> <span class="gtkdoc opt">(</span>TpSvcMediaSessionHandler <span class="gtkdoc opt">*</span>iface<span class="gtkdoc opt">,</span>
238 guint errno<span class="gtkdoc opt">,</span>
239 <span class="gtkdoc kwb">const char</span> <span class="gtkdoc opt">*</span>message<span class="gtkdoc opt">,</span>
240 DBusGMethodInvocation <span class="gtkdoc opt">*</span>context<span class="gtkdoc opt">)</span>
241 <span class="gtkdoc opt">{</span>
242 GabbleMediaSession <span class="gtkdoc opt">*</span>self <span class="gtkdoc opt">=</span> <span class="function">GABBLE_MEDIA_SESSION</span> <span class="gtkdoc opt">(</span>iface<span class="gtkdoc opt">);</span>
243
244 <span class="comment">/* do stuff with self here */</span>
245
246 <span class="function"><a href="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-return-from-error">tp_svc_media_session_handler_return_from_error</a></span> <span class="gtkdoc opt">(</span>context<span class="gtkdoc opt">);</span>
247 <span class="gtkdoc opt">}</span></pre></td>
236 <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
237 <span class="function">gabble_media_session_error</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">TpSvcMediaSessionHandler</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">iface</span><span class="symbol">,</span>
238 <span class="normal"> </span><span class="usertype">guint</span><span class="normal"> errno</span><span class="symbol">,</span>
239 <span class="normal"> </span><span class="keyword">const</span><span class="normal"> </span><span class="type">char</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">message</span><span class="symbol">,</span>
240 <span class="normal"> </span><span class="usertype">DBusGMethodInvocation</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">context</span><span class="symbol">)</span>
241 <span class="cbracket">{</span>
242 <span class="normal"> </span><span class="usertype">GabbleMediaSession</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">self </span><span class="symbol">=</span><span class="normal"> </span><span class="function">GABBLE_MEDIA_SESSION</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">iface</span><span class="symbol">);</span>
243
244 <span class="normal"> </span><span class="comment">/* do stuff with self here */</span>
245
246 <span class="normal"> </span><span class="function"><a href="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-return-from-error">tp_svc_media_session_handler_return_from_error</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">context</span><span class="symbol">);</span>
247 <span class="cbracket">}</span></pre></td>
248248 </tr>
249249 </tbody>
250250 </table>
268268 <tr>
269269 <td class="listing_lines" align="right"><pre>1
270270 2</pre></td>
271 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-emit-new-stream-handler">tp_svc_media_session_handler_emit_new_stream_handler</a></span> <span class="gtkdoc opt">(</span>session<span class="gtkdoc opt">,</span>
272 object_path<span class="gtkdoc opt">,</span> id<span class="gtkdoc opt">,</span> media_type<span class="gtkdoc opt">,</span> TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL<span class="gtkdoc opt">);</span></pre></td>
271 <td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-emit-new-stream-handler">tp_svc_media_session_handler_emit_new_stream_handler</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">session</span><span class="symbol">,</span>
272 <span class="normal"> object_path</span><span class="symbol">,</span><span class="normal"> id</span><span class="symbol">,</span><span class="normal"> media_type</span><span class="symbol">,</span><span class="normal"> <a href="telepathy-glib-enums.html#TP-MEDIA-STREAM-DIRECTION-BIDIRECTIONAL:CAPS">TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL</a></span><span class="symbol">);</span></pre></td>
273273 </tr>
274274 </tbody>
275275 </table>
300300 9
301301 10
302302 11</pre></td>
303 <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span>
304 <span class="function">session_handler_iface_init</span> <span class="gtkdoc opt">(</span>gpointer g_iface<span class="gtkdoc opt">,</span> gpointer iface_data<span class="gtkdoc opt">)</span>
305 <span class="gtkdoc opt">{</span>
306 TpSvcMediaSessionHandlerClass <span class="gtkdoc opt">*</span>klass <span class="gtkdoc opt">=</span>
307 <span class="gtkdoc opt">(</span>TpSvcMediaSessionHandlerClass <span class="gtkdoc opt">*)</span>g_iface<span class="gtkdoc opt">;</span>
308
309 <span class="function"><a href="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-implement-error">tp_svc_media_session_handler_implement_error</a></span> <span class="gtkdoc opt">(</span>klass<span class="gtkdoc opt">,</span>
310 gabble_media_session_error<span class="gtkdoc opt">);</span>
311 <span class="function"><a href="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-implement-ready">tp_svc_media_session_handler_implement_ready</a></span> <span class="gtkdoc opt">(</span>klass<span class="gtkdoc opt">,</span>
312 gabble_media_session_ready<span class="gtkdoc opt">);</span>
313 <span class="gtkdoc opt">}</span></pre></td>
303 <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
304 <span class="function">session_handler_iface_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">gpointer</span><span class="normal"> g_iface</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> iface_data</span><span class="symbol">)</span>
305 <span class="cbracket">{</span>
306 <span class="normal"> </span><span class="usertype">TpSvcMediaSessionHandlerClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">klass </span><span class="symbol">=</span>
307 <span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="telepathy-glib-svc-media-interfaces.html#TpSvcMediaSessionHandlerClass">TpSvcMediaSessionHandlerClass</a> </span><span class="symbol">*)</span><span class="normal">g_iface</span><span class="symbol">;</span>
308
309 <span class="normal"> </span><span class="function"><a href="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-implement-error">tp_svc_media_session_handler_implement_error</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">klass</span><span class="symbol">,</span>
310 <span class="normal"> gabble_media_session_error</span><span class="symbol">);</span>
311 <span class="normal"> </span><span class="function"><a href="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-implement-ready">tp_svc_media_session_handler_implement_ready</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">klass</span><span class="symbol">,</span>
312 <span class="normal"> gabble_media_session_ready</span><span class="symbol">);</span>
313 <span class="cbracket">}</span></pre></td>
314314 </tr>
315315 </tbody>
316316 </table>
337337 10
338338 11
339339 12</pre></td>
340 <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span>
341 <span class="function">session_handler_iface_init</span> <span class="gtkdoc opt">(</span>gpointer g_iface<span class="gtkdoc opt">,</span> gpointer iface_data<span class="gtkdoc opt">)</span>
342 <span class="gtkdoc opt">{</span>
343 TpSvcMediaSessionHandlerClass <span class="gtkdoc opt">*</span>klass <span class="gtkdoc opt">=</span>
344 <span class="gtkdoc opt">(</span>TpSvcMediaSessionHandlerClass <span class="gtkdoc opt">*)</span>g_iface<span class="gtkdoc opt">;</span>
345
346 <span class="gtkdoc ppc">#define IMPLEMENT(x) tp_svc_media_session_handler_implement_##x (\</span>
347 <span class="gtkdoc ppc"> klass, gabble_media_session_##x)</span>
348 <span class="function">IMPLEMENT</span><span class="gtkdoc opt">(</span>error<span class="gtkdoc opt">);</span>
349 <span class="function">IMPLEMENT</span><span class="gtkdoc opt">(</span>ready<span class="gtkdoc opt">);</span>
350 <span class="gtkdoc ppc">#undef IMPLEMENT</span>
351 <span class="gtkdoc opt">}</span></pre></td>
340 <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
341 <span class="function">session_handler_iface_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">gpointer</span><span class="normal"> g_iface</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> iface_data</span><span class="symbol">)</span>
342 <span class="cbracket">{</span>
343 <span class="normal"> </span><span class="usertype">TpSvcMediaSessionHandlerClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">klass </span><span class="symbol">=</span>
344 <span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="telepathy-glib-svc-media-interfaces.html#TpSvcMediaSessionHandlerClass">TpSvcMediaSessionHandlerClass</a> </span><span class="symbol">*)</span><span class="normal">g_iface</span><span class="symbol">;</span>
345
346 <span class="preproc">#define</span><span class="normal"> </span><span class="function">IMPLEMENT</span><span class="symbol">(</span><span class="normal">x</span><span class="symbol">)</span><span class="normal"> tp_svc_media_session_handler_implement_##</span><span class="function">x</span><span class="normal"> </span><span class="symbol">(\</span>
347 <span class="normal"> klass</span><span class="symbol">,</span><span class="normal"> gabble_media_session_##x</span><span class="symbol">)</span>
348 <span class="normal"> </span><span class="function">IMPLEMENT</span><span class="symbol">(</span><span class="normal">error</span><span class="symbol">);</span>
349 <span class="normal"> </span><span class="function">IMPLEMENT</span><span class="symbol">(</span><span class="normal">ready</span><span class="symbol">);</span>
350 <span class="preproc">#undef</span><span class="normal"> IMPLEMENT</span>
351 <span class="cbracket">}</span></pre></td>
352352 </tr>
353353 </tbody>
354354 </table>
363363 </div>
364364 <div class="footer">
365365 <hr>
366 Generated by GTK-Doc V1.17</div>
366 Generated by GTK-Doc V1.17.1</div>
367367 </body>
368368 </html>
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="TpSignalledMessage.html" title="TpSignalledMessage">
99 <link rel="next" href="telepathy-glib-file-transfer-channel.html" title="TpFileTransferChannel">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
5555 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
5656 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * const * <a class="link" href="telepathy-glib-text-channel.html#tp-text-channel-get-supported-content-types" title="tp_text_channel_get_supported_content_types ()">tp_text_channel_get_supported_content_types</a>
5757 (<em class="parameter"><code><a class="link" href="telepathy-glib-text-channel.html#TpTextChannel"><span class="type">TpTextChannel</span></a> *self</code></em>);
58 <a class="link" href="telepathy-glib-enums.html#TpMessagePartSupportFlags" title="enum TpMessagePartSupportFlags"><span class="returnvalue">TpMessagePartSupportFlags</span></a> <a class="link" href="telepathy-glib-text-channel.html#tp-text-channel-get-message-part-support-flags" title="tp_text_channel_get_message_part_support_flags ()">tp_text_channel_get_message_part_support_flags</a>
58 <a class="link" href="telepathy-glib-enums.html#TpMessagePartSupportFlags" title="enum TpMessagePartSupportFlags"><span class="returnvalue">TpMessagePartSupportFlags</span></a> <a class="link" href="telepathy-glib-text-channel.html#tp-text-channel-get-message-part-support-flags" title="tp_text_channel_get_message_part_support_flags ()">tp_text_channel_get_message_part_support_flags</a>
5959 (<em class="parameter"><code><a class="link" href="telepathy-glib-text-channel.html#TpTextChannel"><span class="type">TpTextChannel</span></a> *self</code></em>);
60 <a class="link" href="telepathy-glib-enums.html#TpDeliveryReportingSupportFlags" title="enum TpDeliveryReportingSupportFlags"><span class="returnvalue">TpDeliveryReportingSupportFlags</span></a> <a class="link" href="telepathy-glib-text-channel.html#tp-text-channel-get-delivery-reporting-support" title="tp_text_channel_get_delivery_reporting_support ()">tp_text_channel_get_delivery_reporting_support</a>
60 <a class="link" href="telepathy-glib-enums.html#TpDeliveryReportingSupportFlags" title="enum TpDeliveryReportingSupportFlags"><span class="returnvalue">TpDeliveryReportingSupportFlags</span></a> <a class="link" href="telepathy-glib-text-channel.html#tp-text-channel-get-delivery-reporting-support" title="tp_text_channel_get_delivery_reporting_support ()">tp_text_channel_get_delivery_reporting_support</a>
6161 (<em class="parameter"><code><a class="link" href="telepathy-glib-text-channel.html#TpTextChannel"><span class="type">TpTextChannel</span></a> *self</code></em>);
6262 <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="telepathy-glib-text-channel.html#tp-text-channel-get-pending-messages" title="tp_text_channel_get_pending_messages ()">tp_text_channel_get_pending_messages</a>
6363 (<em class="parameter"><code><a class="link" href="telepathy-glib-text-channel.html#TpTextChannel"><span class="type">TpTextChannel</span></a> *self</code></em>);
258258 <hr>
259259 <div class="refsect2">
260260 <a name="tp-text-channel-get-message-part-support-flags"></a><h3>tp_text_channel_get_message_part_support_flags ()</h3>
261 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpMessagePartSupportFlags" title="enum TpMessagePartSupportFlags"><span class="returnvalue">TpMessagePartSupportFlags</span></a> tp_text_channel_get_message_part_support_flags
261 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpMessagePartSupportFlags" title="enum TpMessagePartSupportFlags"><span class="returnvalue">TpMessagePartSupportFlags</span></a> tp_text_channel_get_message_part_support_flags
262262 (<em class="parameter"><code><a class="link" href="telepathy-glib-text-channel.html#TpTextChannel"><span class="type">TpTextChannel</span></a> *self</code></em>);</pre>
263263 <p>
264264 Return the <a class="link" href="telepathy-glib-text-channel.html#TpTextChannel--message-part-support-flags" title='The "message-part-support-flags" property'><span class="type">"message-part-support-flags"</span></a> property
283283 <hr>
284284 <div class="refsect2">
285285 <a name="tp-text-channel-get-delivery-reporting-support"></a><h3>tp_text_channel_get_delivery_reporting_support ()</h3>
286 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpDeliveryReportingSupportFlags" title="enum TpDeliveryReportingSupportFlags"><span class="returnvalue">TpDeliveryReportingSupportFlags</span></a> tp_text_channel_get_delivery_reporting_support
286 <pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpDeliveryReportingSupportFlags" title="enum TpDeliveryReportingSupportFlags"><span class="returnvalue">TpDeliveryReportingSupportFlags</span></a> tp_text_channel_get_delivery_reporting_support
287287 (<em class="parameter"><code><a class="link" href="telepathy-glib-text-channel.html#TpTextChannel"><span class="type">TpTextChannel</span></a> *self</code></em>);</pre>
288288 <p>
289289 Return the <a class="link" href="telepathy-glib-text-channel.html#TpTextChannel--delivery-reporting-support" title='The "delivery-reporting-support" property'><span class="type">"delivery-reporting-support"</span></a> property
312312 <p>
313313 Return a newly allocated list of unacknowledged <a class="link" href="TpSignalledMessage.html" title="TpSignalledMessage"><span class="type">TpSignalledMessage</span></a>
314314 objects.
315 </p>
316 <p>
317 It is guaranteed that the <a class="link" href="TpSignalledMessage.html#TpSignalledMessage--sender" title='The "sender" property'><span class="type">"sender"</span></a> of each
318 <a class="link" href="TpSignalledMessage.html" title="TpSignalledMessage"><span class="type">TpSignalledMessage</span></a> has all of the features previously passed to
319 <a class="link" href="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-contact-features" title="tp_simple_client_factory_add_contact_features ()"><code class="function">tp_simple_client_factory_add_contact_features()</code></a> prepared.
315320 </p>
316321 <div class="variablelist"><table border="0">
317322 <col align="left" valign="top">
10871092 Note that this signal is only fired once the
10881093 <a class="link" href="telepathy-glib-text-channel.html#TP-TEXT-CHANNEL-FEATURE-INCOMING-MESSAGES:CAPS" title="TP_TEXT_CHANNEL_FEATURE_INCOMING_MESSAGES"><span class="type">TP_TEXT_CHANNEL_FEATURE_INCOMING_MESSAGES</span></a> has been prepared.
10891094 </p>
1095 <p>
1096 It is guaranteed that <em class="parameter"><code>message</code></em>'s <a class="link" href="TpSignalledMessage.html#TpSignalledMessage--sender" title='The "sender" property'><span class="type">"sender"</span></a> has all of the
1097 features previously passed to
1098 <a class="link" href="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-contact-features" title="tp_simple_client_factory_add_contact_features ()"><code class="function">tp_simple_client_factory_add_contact_features()</code></a> prepared.
1099 </p>
10901100 <div class="variablelist"><table border="0">
10911101 <col align="left" valign="top">
10921102 <tbody>
11201130 The ::message-sent signal is emitted when <em class="parameter"><code>message</code></em>
11211131 has been submitted for sending.
11221132 </p>
1133 <p>
1134 It is guaranteed that <em class="parameter"><code>message</code></em>'s <a class="link" href="TpSignalledMessage.html#TpSignalledMessage--sender" title='The "sender" property'><span class="type">"sender"</span></a> has all of the
1135 features previously passed to
1136 <a class="link" href="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-contact-features" title="tp_simple_client_factory_add_contact_features ()"><code class="function">tp_simple_client_factory_add_contact_features()</code></a> prepared.
1137 </p>
11231138 <div class="variablelist"><table border="0">
11241139 <col align="left" valign="top">
11251140 <tbody>
11651180 Note that this signal is only fired once the
11661181 <a class="link" href="telepathy-glib-text-channel.html#TP-TEXT-CHANNEL-FEATURE-INCOMING-MESSAGES:CAPS" title="TP_TEXT_CHANNEL_FEATURE_INCOMING_MESSAGES"><span class="type">TP_TEXT_CHANNEL_FEATURE_INCOMING_MESSAGES</span></a> has been prepared.
11671182 </p>
1183 <p>
1184 It is guaranteed that <em class="parameter"><code>message</code></em>'s <a class="link" href="TpSignalledMessage.html#TpSignalledMessage--sender" title='The "sender" property'><span class="type">"sender"</span></a> has all of the
1185 features previously passed to
1186 <a class="link" href="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-contact-features" title="tp_simple_client_factory_add_contact_features ()"><code class="function">tp_simple_client_factory_add_contact_features()</code></a> prepared.
1187 </p>
11681188 <div class="variablelist"><table border="0">
11691189 <col align="left" valign="top">
11701190 <tbody>
11901210 </div>
11911211 <div class="footer">
11921212 <hr>
1193 Generated by GTK-Doc V1.17</div>
1213 Generated by GTK-Doc V1.17.1</div>
11941214 </body>
11951215 </html>
77 <link rel="up" href="ch-utilities.html" title="Utilities">
88 <link rel="prev" href="ch-utilities.html" title="Utilities">
99 <link rel="next" href="telepathy-glib-gnio-util.html" title="GNIO Utilities">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
11211121 <p>
11221122 </p>
11231123 <div class="example">
1124 <a name="idp99896240"></a><p class="title"><b>Example 3.  using tp_value_array_build</b></p>
1124 <a name="idp101760880"></a><p class="title"><b>Example 3.  using tp_value_array_build</b></p>
11251125 <div class="example-contents">
11261126 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
11271127 <tbody>
11301130 2
11311131 3
11321132 4</pre></td>
1133 <td class="listing_code"><pre class="programlisting">GValueArray <span class="gtkdoc opt">*</span>array <span class="gtkdoc opt">=</span> <span class="function"><a href="telepathy-glib-util.html#tp-value-array-build">tp_value_array_build</a></span> <span class="gtkdoc opt">(</span><span class="number">2</span><span class="gtkdoc opt">,</span>
1134 G_TYPE_STRING<span class="gtkdoc opt">,</span> host<span class="gtkdoc opt">,</span>
1135 G_TYPE_UINT<span class="gtkdoc opt">,</span> port<span class="gtkdoc opt">,</span>
1136 G_TYPE_INVALID<span class="gtkdoc opt">);</span></pre></td>
1133 <td class="listing_code"><pre class="programlisting"><span class="usertype">GValueArray</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">array </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-util.html#tp-value-array-build">tp_value_array_build</a></span><span class="normal"> </span><span class="symbol">(</span><span class="number">2</span><span class="symbol">,</span>
1134 <span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-STRING:CAPS">G_TYPE_STRING</a></span><span class="symbol">,</span><span class="normal"> host</span><span class="symbol">,</span>
1135 <span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS">G_TYPE_UINT</a></span><span class="symbol">,</span><span class="normal"> port</span><span class="symbol">,</span>
1136 <span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-INVALID:CAPS">G_TYPE_INVALID</a></span><span class="symbol">);</span></pre></td>
11371137 </tr>
11381138 </tbody>
11391139 </table>
11821182 <p>
11831183 </p>
11841184 <div class="example">
1185 <a name="idp99917712"></a><p class="title"><b>Example 4. using tp_value_array_unpack</b></p>
1185 <a name="idp101782352"></a><p class="title"><b>Example 4. using tp_value_array_unpack</b></p>
11861186 <div class="example-contents">
11871187 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
11881188 <tbody>
11931193 4
11941194 5
11951195 6</pre></td>
1196 <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">const</span> gchar <span class="gtkdoc opt">*</span>host<span class="gtkdoc opt">;</span>
1197 guint port<span class="gtkdoc opt">;</span>
1196 <td class="listing_code"><pre class="programlisting"><span class="keyword">const</span><span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">host</span><span class="symbol">;</span>
1197 <span class="usertype">guint</span><span class="normal"> port</span><span class="symbol">;</span>
11981198
1199 <span class="function"><a href="telepathy-glib-util.html#tp-value-array-unpack">tp_value_array_unpack</a></span> <span class="gtkdoc opt">(</span>array<span class="gtkdoc opt">,</span> <span class="number">2</span><span class="gtkdoc opt">,</span>
1200 <span class="gtkdoc opt">&amp;</span>host<span class="gtkdoc opt">,</span>
1201 <span class="gtkdoc opt">&amp;</span>port<span class="gtkdoc opt">);</span></pre></td>
1199 <span class="function"><a href="telepathy-glib-util.html#tp-value-array-unpack">tp_value_array_unpack</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">array</span><span class="symbol">,</span><span class="normal"> </span><span class="number">2</span><span class="symbol">,</span>
1200 <span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">host</span><span class="symbol">,</span>
1201 <span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">port</span><span class="symbol">);</span></pre></td>
12021202 </tr>
12031203 </tbody>
12041204 </table>
13881388 12
13891389 13
13901390 14</pre></td>
1391 <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwc">typedef</span> <span class="gtkdoc kwb">struct</span> <span class="gtkdoc opt">{</span>
1392 TpConnection <span class="gtkdoc opt">*</span>conn<span class="gtkdoc opt">;</span>
1393 GError <span class="gtkdoc opt">*</span>error<span class="gtkdoc opt">;</span>
1394 GHashTable <span class="gtkdoc opt">*</span>table<span class="gtkdoc opt">;</span>
1395 MyStruct <span class="gtkdoc opt">*</span>misc<span class="gtkdoc opt">;</span>
1396 <span class="gtkdoc opt">}</span> Foo<span class="gtkdoc opt">;</span>
1397 Foo <span class="gtkdoc opt">*</span>foo<span class="gtkdoc opt">;</span>
1391 <td class="listing_code"><pre class="programlisting"><span class="keyword">typedef</span><span class="normal"> </span><span class="keyword">struct</span><span class="normal"> </span><span class="cbracket">{</span>
1392 <span class="normal"> </span><span class="usertype">TpConnection</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">conn</span><span class="symbol">;</span>
1393 <span class="normal"> </span><span class="usertype">GError</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">error</span><span class="symbol">;</span>
1394 <span class="normal"> </span><span class="usertype">GHashTable</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">table</span><span class="symbol">;</span>
1395 <span class="normal"> </span><span class="usertype">MyStruct</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">misc</span><span class="symbol">;</span>
1396 <span class="cbracket">}</span><span class="normal"> Foo</span><span class="symbol">;</span>
1397 <span class="usertype">Foo</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">foo</span><span class="symbol">;</span>
13981398
1399 <span class="gtkdoc opt">...</span>
1399 <span class="symbol">...</span>
14001400
1401 <span class="function"><a href="telepathy-glib-util.html#tp-clear-object">tp_clear_object</a></span> <span class="gtkdoc opt">(&amp;</span>foo<span class="gtkdoc opt">-&gt;</span>conn<span class="gtkdoc opt">);</span>
1402 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#g-clear-error">g_clear_error</a></span> <span class="gtkdoc opt">(&amp;</span>foo<span class="gtkdoc opt">-&gt;</span>error<span class="gtkdoc opt">);</span>
1403 <span class="function"><a href="telepathy-glib-util.html#tp-clear-boxed">tp_clear_boxed</a></span> <span class="gtkdoc opt">(</span>G_TYPE_HASH_TABLE<span class="gtkdoc opt">, &amp;</span>foo<span class="gtkdoc opt">-&gt;</span>table<span class="gtkdoc opt">);</span>
1404 <span class="function"><a href="telepathy-glib-util.html#tp-clear-pointer">tp_clear_pointer</a></span> <span class="gtkdoc opt">(&amp;</span>foo<span class="gtkdoc opt">-&gt;</span>misc<span class="gtkdoc opt">,</span> my_struct_destroy<span class="gtkdoc opt">);</span></pre></td>
1401 <span class="function"><a href="telepathy-glib-util.html#tp-clear-object">tp_clear_object</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">foo</span><span class="symbol">-&gt;</span><span class="normal">conn</span><span class="symbol">);</span>
1402 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#g-clear-error">g_clear_error</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">foo</span><span class="symbol">-&gt;</span><span class="normal">error</span><span class="symbol">);</span>
1403 <span class="function"><a href="telepathy-glib-util.html#tp-clear-boxed">tp_clear_boxed</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#G-TYPE-HASH-TABLE:CAPS">G_TYPE_HASH_TABLE</a></span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">foo</span><span class="symbol">-&gt;</span><span class="normal">table</span><span class="symbol">);</span>
1404 <span class="function"><a href="telepathy-glib-util.html#tp-clear-pointer">tp_clear_pointer</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">foo</span><span class="symbol">-&gt;</span><span class="normal">misc</span><span class="symbol">,</span><span class="normal"> my_struct_destroy</span><span class="symbol">);</span></pre></td>
14051405 </tr>
14061406 </tbody>
14071407 </table>
16281628 </div>
16291629 <div class="footer">
16301630 <hr>
1631 Generated by GTK-Doc V1.17</div>
1631 Generated by GTK-Doc V1.17.1</div>
16321632 </body>
16331633 </html>
+0
-4099
docs/reference/html/telepathy-glib.devhelp less more
0 <?xml version="1.0" encoding="utf-8" standalone="no"?>
1 <!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
2 <book xmlns="http://www.devhelp.net/book" title="telepathy-glib API Reference Manual" link="index.html" author="" name="telepathy-glib">
3 <chapters>
4 <sub name="General D-Bus support" link="ch-dbus.html">
5 <sub name="TpProxy" link="telepathy-glib-proxy.html"/>
6 <sub name="TpProxy D-Bus core methods" link="telepathy-glib-proxy-dbus-core.html"/>
7 <sub name="TpProxy Telepathy Properties" link="telepathy-glib-proxy-tp-properties.html"/>
8 <sub name="D-Bus utilities" link="telepathy-glib-dbus.html"/>
9 <sub name="Manipulating a{sv} mappings" link="telepathy-glib-asv.html"/>
10 <sub name="TpProxy subclasses and mixins" link="telepathy-glib-proxy-subclass.html"/>
11 </sub>
12 <sub name="The Telepathy protocol" link="ch-protocol.html">
13 <sub name="Miscellaneous definitions" link="telepathy-glib-defs.html"/>
14 <sub name="TpHandle" link="telepathy-glib-handle.html"/>
15 <sub name="Telepathy protocol interface and property names" link="telepathy-glib-interfaces.html"/>
16 <sub name="Telepathy protocol enumerations" link="telepathy-glib-enums.html"/>
17 <sub name="Telepathy protocol errors" link="telepathy-glib-errors.html"/>
18 <sub name="GType factory functions" link="telepathy-glib-gtypes.html"/>
19 <sub name="TpChannelIface" link="TpChannelIface.html"/>
20 </sub>
21 <sub name="Client-side proxies" link="ch-client.html">
22 <sub name="TpConnectionManager" link="telepathy-glib-connection-manager.html"/>
23 <sub name="TpProtocol" link="telepathy-glib-protocol.html"/>
24 <sub name="TpConnection" link="telepathy-glib-connection.html"/>
25 <sub name="TpContact" link="telepathy-glib-contact.html"/>
26 <sub name="TpCapabilities" link="telepathy-glib-capabilities.html"/>
27 <sub name="Connection Aliasing interface" link="telepathy-glib-connection-aliasing.html"/>
28 <sub name="Connection Avatars interface" link="telepathy-glib-connection-avatars.html"/>
29 <sub name="Connection Balance interface" link="telepathy-glib-connection-balance.html"/>
30 <sub name="Connection ClientTypes interface" link="telepathy-glib-connection-client-types.html"/>
31 <sub name="Connection Contacts interface" link="telepathy-glib-connection-contacts.html"/>
32 <sub name="Connection ContactInfo interface" link="telepathy-glib-connection-contact-info.html"/>
33 <sub name="Connection ContactList, ContactGroups and ContactBlocking interfaces" link="telepathy-glib-connection-contact-list.html"/>
34 <sub name="Connection ContactCapabilities and Capabilities interfaces" link="telepathy-glib-connection-caps.html"/>
35 <sub name="Connection Location interface" link="telepathy-glib-connection-location.html"/>
36 <sub name="Connection Requests interface" link="telepathy-glib-connection-requests.html"/>
37 <sub name="Connection SimplePresence interface" link="telepathy-glib-connection-simple-presence.html"/>
38 <sub name="Connection Presence interface" link="telepathy-glib-connection-presence.html"/>
39 <sub name="Connection Cellular interface" link="telepathy-glib-connection-cellular.html"/>
40 <sub name="Connection MailNotification interface" link="telepathy-glib-connection-mail.html"/>
41 <sub name="Connection PowerSaving interface" link="telepathy-glib-connection-powersaving.html"/>
42 <sub name="TpContactSearch" link="telepathy-glib-contact-search.html"/>
43 <sub name="TpContactSearchResult" link="telepathy-glib-contact-search-result.html"/>
44 <sub name="TpChannel" link="telepathy-glib-channel.html"/>
45 <sub name="Group and Conference interfaces on Channels" link="telepathy-glib-channel-group.html"/>
46 <sub name="Text channels" link="telepathy-glib-channel-text.html"/>
47 <sub name="Media channels" link="telepathy-glib-channel-media.html"/>
48 <sub name="File transfer" link="telepathy-glib-channel-file-transfer.html"/>
49 <sub name="Tubes channels" link="telepathy-glib-channel-tubes.html"/>
50 <sub name="Tube channels" link="telepathy-glib-channel-tube.html"/>
51 <sub name="Room List channels" link="telepathy-glib-channel-roomlist.html"/>
52 <sub name="Contact Search channels" link="telepathy-glib-channel-contactsearch.html"/>
53 <sub name="Channel Authentication interfaces" link="telepathy-glib-channel-auth.html"/>
54 <sub name="Connection and Channel Anonymity interfaces" link="telepathy-glib-cli-anonymity.html"/>
55 <sub name="Connection and Channel ServicePoint interfaces" link="telepathy-glib-cli-service-point.html"/>
56 <sub name="TpMediaSessionHandler, TpMediaStreamHandler" link="telepathy-glib-media-interfaces.html"/>
57 <sub name="TpAccountManager" link="telepathy-glib-account-manager.html"/>
58 <sub name="TpAccount" link="telepathy-glib-account.html"/>
59 <sub name="TpChannelDispatcher" link="telepathy-glib-channel-dispatcher.html"/>
60 <sub name="TpChannelDispatchOperation" link="telepathy-glib-channel-dispatch-operation.html"/>
61 <sub name="TpChannelRequest" link="telepathy-glib-channel-request.html"/>
62 <sub name="TpClient" link="telepathy-glib-client.html"/>
63 <sub name="TpAccountChannelRequest" link="telepathy-glib-account-channel-request.html"/>
64 <sub name="TpStreamTubeChannel" link="telepathy-glib-stream-tube-channel.html"/>
65 <sub name="TpStreamTubeConnection" link="telepathy-glib-stream-tube-connection.html"/>
66 <sub name="TpClientChannelFactoryInterface" link="telepathy-glib-client-channel-factory.html"/>
67 <sub name="TpBasicProxyFactory" link="telepathy-glib-basic-proxy-factory.html"/>
68 <sub name="TpAutomaticProxyFactory" link="telepathy-glib-automatic-proxy-factory.html"/>
69 <sub name="TpSimpleClientFactory" link="telepathy-glib-simple-client-factory.html"/>
70 <sub name="TpAutomaticClientFactory" link="telepathy-glib-automatic-client-factory.html"/>
71 <sub name="TpClientMessage" link="TpClientMessage.html"/>
72 <sub name="TpSignalledMessage" link="TpSignalledMessage.html"/>
73 <sub name="TpTextChannel" link="telepathy-glib-text-channel.html"/>
74 <sub name="TpFileTransferChannel" link="telepathy-glib-file-transfer-channel.html"/>
75 </sub>
76 <sub name="Service-side D-Bus interfaces" link="ch-service-dbus.html">
77 <sub name="&#10; The TpSvc* interfaces&#10; " link="telepathy-glib-svc.html"/>
78 <sub name="Generic service-side interfaces" link="telepathy-glib-svc-generic.html"/>
79 <sub name="Service-side Channel base interface" link="telepathy-glib-svc-channel.html"/>
80 <sub name="Service-side Channel Group and Conference interfaces" link="telepathy-glib-svc-channel-group.html"/>
81 <sub name="Contact List channels" link="telepathy-glib-svc-channel-contactlist.html"/>
82 <sub name="Contact Search channels" link="telepathy-glib-svc-channel-contactsearch.html"/>
83 <sub name="Text channels" link="telepathy-glib-svc-channel-text.html"/>
84 <sub name="Media channels" link="telepathy-glib-svc-channel-media.html"/>
85 <sub name="File Transfer channels" link="telepathy-glib-svc-channel-file-transfer.html"/>
86 <sub name="Tubes channels" link="telepathy-glib-svc-channel-tubes.html"/>
87 <sub name="Tube channels" link="telepathy-glib-svc-channel-tube.html"/>
88 <sub name="Room List channels" link="telepathy-glib-svc-channel-roomlist.html"/>
89 <sub name="Service-side Channel Authentication interfaces" link="telepathy-glib-svc-channel-auth.html"/>
90 <sub name="Service-side Securable interface" link="telepathy-glib-svc-channel-securable.html"/>
91 <sub name="Service-side Debug base interface" link="telepathy-glib-svc-debug.html"/>
92 <sub name="Service-side Connection interfaces" link="telepathy-glib-svc-connection.html"/>
93 <sub name="Service-side Connection and Channel Anonymity interfaces" link="telepathy-glib-svc-anonymity.html"/>
94 <sub name="Service-side Connection and Channel ServicePoint interfaces" link="telepathy-glib-svc-service-point.html"/>
95 <sub name="Service-side media streaming helper interfaces" link="telepathy-glib-svc-media-interfaces.html"/>
96 <sub name="Service-side Connection Manager interface" link="telepathy-glib-svc-connection-manager.html"/>
97 <sub name="Service-side Protocol interface" link="telepathy-glib-svc-protocol.html"/>
98 <sub name="Service-side Account Manager interface" link="telepathy-glib-svc-account-manager.html"/>
99 <sub name="Service-side Account interfaces" link="telepathy-glib-svc-account.html"/>
100 <sub name="Service-side Channel Dispatcher interface" link="telepathy-glib-svc-channel-dispatcher.html"/>
101 <sub name="Service-side Channel Dispatch Operation interface" link="telepathy-glib-svc-channel-dispatch-operation.html"/>
102 <sub name="Service-side Channel Request interface" link="telepathy-glib-svc-channel-request.html"/>
103 <sub name="Service-side Client interfaces" link="telepathy-glib-svc-client.html"/>
104 <sub name="Service-side TLS interfaces" link="telepathy-glib-svc-tls.html"/>
105 </sub>
106 <sub name="Service-side implementation" link="ch-service-base.html">
107 <sub name="Connection manager life cycle" link="telepathy-glib-run.html"/>
108 <sub name="TpBaseConnectionManager" link="TpBaseConnectionManager.html"/>
109 <sub name="TpBaseProtocol" link="telepathy-glib-base-protocol.html"/>
110 <sub name="TpBaseConnection" link="TpBaseConnection.html"/>
111 <sub name="TpChannelManager" link="TpChannelManager.html"/>
112 <sub name="TpBaseContactList" link="telepathy-glib-base-contact-list.html"/>
113 <sub name="TpContactsMixin" link="telepathy-glib-TpContactsMixin.html"/>
114 <sub name="TpDBusPropertiesMixin" link="telepathy-glib-dbus-properties-mixin.html"/>
115 <sub name="TpExportableChannel" link="TpExportableChannel.html"/>
116 <sub name="TpBaseChannel" link="TpBaseChannel.html"/>
117 <sub name="TpPresenceMixin" link="telepathy-glib-TpPresenceMixin.html"/>
118 <sub name="TpPropertiesMixin" link="telepathy-glib-TpPropertiesMixin.html"/>
119 <sub name="TpGroupMixin" link="telepathy-glib-TpGroupMixin.html"/>
120 <sub name="TpMessageMixin" link="telepathy-glib-TpMessageMixin.html"/>
121 <sub name="TpMessage" link="TpMessage.html"/>
122 <sub name="TpCMMessage" link="TpCMMessage.html"/>
123 <sub name="TpBasePasswordChannel" link="telepathy-glib-base-password-channel.html"/>
124 <sub name="TpSimplePasswordManager" link="telepathy-glib-simple-password-manager.html"/>
125 <sub name="TpBaseClient" link="telepathy-glib-base-client.html"/>
126 <sub name="TpObserveChannelsContext" link="telepathy-glib-observe-channels-context.html"/>
127 <sub name="TpAddDispatchOperationContext" link="telepathy-glib-add-dispatch-operation-context.html"/>
128 <sub name="TpHandleChannelsContext" link="telepathy-glib-handle-channels-context.html"/>
129 <sub name="TpSimpleObserver" link="telepathy-glib-simple-observer.html"/>
130 <sub name="TpSimpleApprover" link="telepathy-glib-simple-approver.html"/>
131 <sub name="TpSimpleHandler" link="telepathy-glib-simple-handler.html"/>
132 <sub name="DTMF dialstring interpreter" link="telepathy-glib-dtmf.html"/>
133 </sub>
134 <sub name="Service-side handle repositories" link="ch-service-handles.html">
135 <sub name="TpHandleRepoIface" link="telepathy-glib-handle-repo.html"/>
136 <sub name="TpStaticHandleRepo" link="TpStaticHandleRepo.html"/>
137 <sub name="TpDynamicHandleRepo" link="TpDynamicHandleRepo.html"/>
138 </sub>
139 <sub name="Utilities" link="ch-utilities.html">
140 <sub name="Utilities" link="telepathy-glib-util.html"/>
141 <sub name="GNIO Utilities" link="telepathy-glib-gnio-util.html"/>
142 <sub name="Common debug support" link="telepathy-glib-debug.html"/>
143 <sub name="TpDebugSender" link="telepathy-glib-debug-sender.html"/>
144 <sub name="TpIntset" link="TpIntset.html"/>
145 <sub name="TpHeap" link="telepathy-glib-TpHeap.html"/>
146 </sub>
147 <sub name="Obsolete modules" link="ch-obsolete.html">
148 <sub name="TpChannelFactoryIface" link="TpChannelFactoryIface.html"/>
149 <sub name="ANSI codes for debug messages" link="telepathy-glib-debug-ansi.html"/>
150 <sub name="TpTextMixin" link="telepathy-glib-TpTextMixin.html"/>
151 </sub>
152 <sub name="Annotation Glossary" link="annotation-glossary.html"/>
153 </chapters>
154 <functions>
155 <function name="struct TpProxy" link="telepathy-glib-proxy.html#TpProxy-struct"/>
156 <function name="TpProxyPrepareAsync ()" link="telepathy-glib-proxy.html#TpProxyPrepareAsync"/>
157 <function name="struct TpProxyFeature" link="telepathy-glib-proxy.html#TpProxyFeature"/>
158 <function name="TpProxyClassFeatureListFunc ()" link="telepathy-glib-proxy.html#TpProxyClassFeatureListFunc"/>
159 <function name="struct TpProxyClass" link="telepathy-glib-proxy.html#TpProxyClass"/>
160 <function name="tp_proxy_has_interface ()" link="telepathy-glib-proxy.html#tp-proxy-has-interface"/>
161 <function name="tp_proxy_has_interface_by_id ()" link="telepathy-glib-proxy.html#tp-proxy-has-interface-by-id"/>
162 <function name="tp_proxy_is_prepared ()" link="telepathy-glib-proxy.html#tp-proxy-is-prepared"/>
163 <function name="tp_proxy_prepare_async ()" link="telepathy-glib-proxy.html#tp-proxy-prepare-async"/>
164 <function name="tp_proxy_prepare_finish ()" link="telepathy-glib-proxy.html#tp-proxy-prepare-finish"/>
165 <function name="TpProxyPendingCall" link="telepathy-glib-proxy.html#TpProxyPendingCall"/>
166 <function name="tp_proxy_pending_call_cancel ()" link="telepathy-glib-proxy.html#tp-proxy-pending-call-cancel"/>
167 <function name="TpProxySignalConnection" link="telepathy-glib-proxy.html#TpProxySignalConnection"/>
168 <function name="tp_proxy_signal_connection_disconnect ()" link="telepathy-glib-proxy.html#tp-proxy-signal-connection-disconnect"/>
169 <function name="tp_proxy_get_factory ()" link="telepathy-glib-proxy.html#tp-proxy-get-factory"/>
170 <function name="tp_proxy_get_dbus_daemon ()" link="telepathy-glib-proxy.html#tp-proxy-get-dbus-daemon"/>
171 <function name="tp_proxy_get_dbus_connection ()" link="telepathy-glib-proxy.html#tp-proxy-get-dbus-connection"/>
172 <function name="tp_proxy_get_bus_name ()" link="telepathy-glib-proxy.html#tp-proxy-get-bus-name"/>
173 <function name="tp_proxy_get_object_path ()" link="telepathy-glib-proxy.html#tp-proxy-get-object-path"/>
174 <function name="tp_proxy_get_invalidated ()" link="telepathy-glib-proxy.html#tp-proxy-get-invalidated"/>
175 <function name="tp_proxy_dbus_error_to_gerror ()" link="telepathy-glib-proxy.html#tp-proxy-dbus-error-to-gerror"/>
176 <function name="TP_DBUS_ERRORS" link="telepathy-glib-proxy.html#TP-DBUS-ERRORS:CAPS"/>
177 <function name="enum TpDBusError" link="telepathy-glib-proxy.html#TpDBusError"/>
178 <function name="NUM_TP_DBUS_ERRORS" link="telepathy-glib-proxy.html#NUM-TP-DBUS-ERRORS:CAPS"/>
179 <function name="TP_TYPE_DBUS_ERROR" link="telepathy-glib-proxy.html#TP-TYPE-DBUS-ERROR:CAPS"/>
180 <function name="The &quot;bus-name&quot; property" link="telepathy-glib-proxy.html#TpProxy--bus-name"/>
181 <function name="The &quot;dbus-connection&quot; property" link="telepathy-glib-proxy.html#TpProxy--dbus-connection"/>
182 <function name="The &quot;dbus-daemon&quot; property" link="telepathy-glib-proxy.html#TpProxy--dbus-daemon"/>
183 <function name="The &quot;factory&quot; property" link="telepathy-glib-proxy.html#TpProxy--factory"/>
184 <function name="The &quot;interfaces&quot; property" link="telepathy-glib-proxy.html#TpProxy--interfaces"/>
185 <function name="The &quot;object-path&quot; property" link="telepathy-glib-proxy.html#TpProxy--object-path"/>
186 <function name="The &quot;interface-added&quot; signal" link="telepathy-glib-proxy.html#TpProxy-interface-added"/>
187 <function name="The &quot;invalidated&quot; signal" link="telepathy-glib-proxy.html#TpProxy-invalidated"/>
188 <function name="tp_cli_dbus_introspectable_call_introspect ()" link="telepathy-glib-proxy-dbus-core.html#tp-cli-dbus-introspectable-call-introspect"/>
189 <function name="tp_cli_dbus_introspectable_callback_for_introspect ()" link="telepathy-glib-proxy-dbus-core.html#tp-cli-dbus-introspectable-callback-for-introspect"/>
190 <function name="tp_cli_dbus_introspectable_run_introspect ()" link="telepathy-glib-proxy-dbus-core.html#tp-cli-dbus-introspectable-run-introspect"/>
191 <function name="tp_cli_dbus_peer_call_get_machine_id ()" link="telepathy-glib-proxy-dbus-core.html#tp-cli-dbus-peer-call-get-machine-id"/>
192 <function name="tp_cli_dbus_peer_call_ping ()" link="telepathy-glib-proxy-dbus-core.html#tp-cli-dbus-peer-call-ping"/>
193 <function name="tp_cli_dbus_peer_callback_for_get_machine_id ()" link="telepathy-glib-proxy-dbus-core.html#tp-cli-dbus-peer-callback-for-get-machine-id"/>
194 <function name="tp_cli_dbus_peer_callback_for_ping ()" link="telepathy-glib-proxy-dbus-core.html#tp-cli-dbus-peer-callback-for-ping"/>
195 <function name="tp_cli_dbus_peer_run_get_machine_id ()" link="telepathy-glib-proxy-dbus-core.html#tp-cli-dbus-peer-run-get-machine-id"/>
196 <function name="tp_cli_dbus_peer_run_ping ()" link="telepathy-glib-proxy-dbus-core.html#tp-cli-dbus-peer-run-ping"/>
197 <function name="tp_cli_dbus_properties_call_get ()" link="telepathy-glib-proxy-dbus-core.html#tp-cli-dbus-properties-call-get"/>
198 <function name="tp_cli_dbus_properties_call_get_all ()" link="telepathy-glib-proxy-dbus-core.html#tp-cli-dbus-properties-call-get-all"/>
199 <function name="tp_cli_dbus_properties_call_set ()" link="telepathy-glib-proxy-dbus-core.html#tp-cli-dbus-properties-call-set"/>
200 <function name="tp_cli_dbus_properties_callback_for_get ()" link="telepathy-glib-proxy-dbus-core.html#tp-cli-dbus-properties-callback-for-get"/>
201 <function name="tp_cli_dbus_properties_callback_for_get_all ()" link="telepathy-glib-proxy-dbus-core.html#tp-cli-dbus-properties-callback-for-get-all"/>
202 <function name="tp_cli_dbus_properties_callback_for_set ()" link="telepathy-glib-proxy-dbus-core.html#tp-cli-dbus-properties-callback-for-set"/>
203 <function name="tp_cli_dbus_properties_run_get ()" link="telepathy-glib-proxy-dbus-core.html#tp-cli-dbus-properties-run-get"/>
204 <function name="tp_cli_dbus_properties_run_get_all ()" link="telepathy-glib-proxy-dbus-core.html#tp-cli-dbus-properties-run-get-all"/>
205 <function name="tp_cli_dbus_properties_signal_callback_properties_changed ()" link="telepathy-glib-proxy-dbus-core.html#tp-cli-dbus-properties-signal-callback-properties-changed"/>
206 <function name="tp_cli_dbus_properties_connect_to_properties_changed ()" link="telepathy-glib-proxy-dbus-core.html#tp-cli-dbus-properties-connect-to-properties-changed"/>
207 <function name="tp_cli_dbus_properties_run_set ()" link="telepathy-glib-proxy-dbus-core.html#tp-cli-dbus-properties-run-set"/>
208 <function name="tp_cli_properties_interface_callback_for_get_properties ()" link="telepathy-glib-proxy-tp-properties.html#tp-cli-properties-interface-callback-for-get-properties"/>
209 <function name="tp_cli_properties_interface_call_get_properties ()" link="telepathy-glib-proxy-tp-properties.html#tp-cli-properties-interface-call-get-properties"/>
210 <function name="tp_cli_properties_interface_run_get_properties ()" link="telepathy-glib-proxy-tp-properties.html#tp-cli-properties-interface-run-get-properties"/>
211 <function name="tp_cli_properties_interface_callback_for_list_properties ()" link="telepathy-glib-proxy-tp-properties.html#tp-cli-properties-interface-callback-for-list-properties"/>
212 <function name="tp_cli_properties_interface_call_list_properties ()" link="telepathy-glib-proxy-tp-properties.html#tp-cli-properties-interface-call-list-properties"/>
213 <function name="tp_cli_properties_interface_run_list_properties ()" link="telepathy-glib-proxy-tp-properties.html#tp-cli-properties-interface-run-list-properties"/>
214 <function name="tp_cli_properties_interface_callback_for_set_properties ()" link="telepathy-glib-proxy-tp-properties.html#tp-cli-properties-interface-callback-for-set-properties"/>
215 <function name="tp_cli_properties_interface_call_set_properties ()" link="telepathy-glib-proxy-tp-properties.html#tp-cli-properties-interface-call-set-properties"/>
216 <function name="tp_cli_properties_interface_run_set_properties ()" link="telepathy-glib-proxy-tp-properties.html#tp-cli-properties-interface-run-set-properties"/>
217 <function name="tp_cli_properties_interface_signal_callback_properties_changed ()" link="telepathy-glib-proxy-tp-properties.html#tp-cli-properties-interface-signal-callback-properties-changed"/>
218 <function name="tp_cli_properties_interface_connect_to_properties_changed ()" link="telepathy-glib-proxy-tp-properties.html#tp-cli-properties-interface-connect-to-properties-changed"/>
219 <function name="tp_cli_properties_interface_signal_callback_property_flags_changed ()" link="telepathy-glib-proxy-tp-properties.html#tp-cli-properties-interface-signal-callback-property-flags-changed"/>
220 <function name="tp_cli_properties_interface_connect_to_property_flags_changed ()" link="telepathy-glib-proxy-tp-properties.html#tp-cli-properties-interface-connect-to-property-flags-changed"/>
221 <function name="tp_dbus_g_method_return_not_implemented ()" link="telepathy-glib-dbus.html#tp-dbus-g-method-return-not-implemented"/>
222 <function name="tp_get_bus ()" link="telepathy-glib-dbus.html#tp-get-bus"/>
223 <function name="tp_get_bus_proxy ()" link="telepathy-glib-dbus.html#tp-get-bus-proxy"/>
224 <function name="enum TpDBusNameType" link="telepathy-glib-dbus.html#TpDBusNameType"/>
225 <function name="TP_TYPE_DBUS_NAME_TYPE" link="telepathy-glib-dbus.html#TP-TYPE-DBUS-NAME-TYPE:CAPS"/>
226 <function name="tp_dbus_check_valid_bus_name ()" link="telepathy-glib-dbus.html#tp-dbus-check-valid-bus-name"/>
227 <function name="tp_dbus_check_valid_interface_name ()" link="telepathy-glib-dbus.html#tp-dbus-check-valid-interface-name"/>
228 <function name="tp_dbus_check_valid_member_name ()" link="telepathy-glib-dbus.html#tp-dbus-check-valid-member-name"/>
229 <function name="tp_dbus_check_valid_object_path ()" link="telepathy-glib-dbus.html#tp-dbus-check-valid-object-path"/>
230 <function name="tp_g_value_slice_new_bytes ()" link="telepathy-glib-dbus.html#tp-g-value-slice-new-bytes"/>
231 <function name="tp_g_value_slice_new_take_bytes ()" link="telepathy-glib-dbus.html#tp-g-value-slice-new-take-bytes"/>
232 <function name="tp_g_value_slice_new_object_path ()" link="telepathy-glib-dbus.html#tp-g-value-slice-new-object-path"/>
233 <function name="tp_g_value_slice_new_static_object_path ()" link="telepathy-glib-dbus.html#tp-g-value-slice-new-static-object-path"/>
234 <function name="tp_g_value_slice_new_take_object_path ()" link="telepathy-glib-dbus.html#tp-g-value-slice-new-take-object-path"/>
235 <function name="TpDBusDaemon" link="telepathy-glib-dbus.html#TpDBusDaemon-struct"/>
236 <function name="TpDBusDaemonClass" link="telepathy-glib-dbus.html#TpDBusDaemonClass"/>
237 <function name="tp_dbus_daemon_dup ()" link="telepathy-glib-dbus.html#tp-dbus-daemon-dup"/>
238 <function name="tp_dbus_daemon_new ()" link="telepathy-glib-dbus.html#tp-dbus-daemon-new"/>
239 <function name="tp_dbus_daemon_get_unique_name ()" link="telepathy-glib-dbus.html#tp-dbus-daemon-get-unique-name"/>
240 <function name="TpDBusDaemonNameOwnerChangedCb ()" link="telepathy-glib-dbus.html#TpDBusDaemonNameOwnerChangedCb"/>
241 <function name="tp_dbus_daemon_watch_name_owner ()" link="telepathy-glib-dbus.html#tp-dbus-daemon-watch-name-owner"/>
242 <function name="tp_dbus_daemon_cancel_name_owner_watch ()" link="telepathy-glib-dbus.html#tp-dbus-daemon-cancel-name-owner-watch"/>
243 <function name="TpDBusDaemonListNamesCb ()" link="telepathy-glib-dbus.html#TpDBusDaemonListNamesCb"/>
244 <function name="tp_dbus_daemon_list_names ()" link="telepathy-glib-dbus.html#tp-dbus-daemon-list-names"/>
245 <function name="tp_dbus_daemon_list_activatable_names ()" link="telepathy-glib-dbus.html#tp-dbus-daemon-list-activatable-names"/>
246 <function name="tp_dbus_daemon_release_name ()" link="telepathy-glib-dbus.html#tp-dbus-daemon-release-name"/>
247 <function name="tp_dbus_daemon_request_name ()" link="telepathy-glib-dbus.html#tp-dbus-daemon-request-name"/>
248 <function name="tp_dbus_daemon_register_object ()" link="telepathy-glib-dbus.html#tp-dbus-daemon-register-object"/>
249 <function name="tp_dbus_daemon_unregister_object ()" link="telepathy-glib-dbus.html#tp-dbus-daemon-unregister-object"/>
250 <function name="tp_dbus_daemon_init_known_interfaces ()" link="telepathy-glib-dbus.html#tp-dbus-daemon-init-known-interfaces"/>
251 <function name="tp_cli_dbus_daemon_call_add_match ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-call-add-match"/>
252 <function name="tp_cli_dbus_daemon_call_get_connection_se_linux_security_context ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-call-get-connection-se-linux-security-context"/>
253 <function name="tp_cli_dbus_daemon_call_get_connection_unix_process_id ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-call-get-connection-unix-process-id"/>
254 <function name="tp_cli_dbus_daemon_call_get_connection_unix_user ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-call-get-connection-unix-user"/>
255 <function name="tp_cli_dbus_daemon_call_get_id ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-call-get-id"/>
256 <function name="tp_cli_dbus_daemon_call_get_name_owner ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-call-get-name-owner"/>
257 <function name="tp_cli_dbus_daemon_call_hello ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-call-hello"/>
258 <function name="tp_cli_dbus_daemon_call_list_activatable_names ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-call-list-activatable-names"/>
259 <function name="tp_cli_dbus_daemon_call_list_names ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-call-list-names"/>
260 <function name="tp_cli_dbus_daemon_call_list_queued_owners ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-call-list-queued-owners"/>
261 <function name="tp_cli_dbus_daemon_call_name_has_owner ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-call-name-has-owner"/>
262 <function name="tp_cli_dbus_daemon_call_release_name ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-call-release-name"/>
263 <function name="tp_cli_dbus_daemon_call_reload_config ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-call-reload-config"/>
264 <function name="tp_cli_dbus_daemon_call_remove_match ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-call-remove-match"/>
265 <function name="tp_cli_dbus_daemon_call_request_name ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-call-request-name"/>
266 <function name="tp_cli_dbus_daemon_call_start_service_by_name ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-call-start-service-by-name"/>
267 <function name="tp_cli_dbus_daemon_run_add_match ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-run-add-match"/>
268 <function name="tp_cli_dbus_daemon_run_get_connection_se_linux_security_context ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-run-get-connection-se-linux-security-context"/>
269 <function name="tp_cli_dbus_daemon_run_get_connection_unix_process_id ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-run-get-connection-unix-process-id"/>
270 <function name="tp_cli_dbus_daemon_run_get_connection_unix_user ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-run-get-connection-unix-user"/>
271 <function name="tp_cli_dbus_daemon_run_get_id ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-run-get-id"/>
272 <function name="tp_cli_dbus_daemon_run_get_name_owner ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-run-get-name-owner"/>
273 <function name="tp_cli_dbus_daemon_run_hello ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-run-hello"/>
274 <function name="tp_cli_dbus_daemon_run_list_activatable_names ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-run-list-activatable-names"/>
275 <function name="tp_cli_dbus_daemon_run_list_names ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-run-list-names"/>
276 <function name="tp_cli_dbus_daemon_run_list_queued_owners ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-run-list-queued-owners"/>
277 <function name="tp_cli_dbus_daemon_run_name_has_owner ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-run-name-has-owner"/>
278 <function name="tp_cli_dbus_daemon_run_release_name ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-run-release-name"/>
279 <function name="tp_cli_dbus_daemon_run_reload_config ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-run-reload-config"/>
280 <function name="tp_cli_dbus_daemon_run_remove_match ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-run-remove-match"/>
281 <function name="tp_cli_dbus_daemon_run_request_name ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-run-request-name"/>
282 <function name="tp_cli_dbus_daemon_run_start_service_by_name ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-run-start-service-by-name"/>
283 <function name="tp_cli_dbus_daemon_callback_for_add_match ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-callback-for-add-match"/>
284 <function name="tp_cli_dbus_daemon_callback_for_get_connection_se_linux_security_context ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-callback-for-get-connection-se-linux-security-context"/>
285 <function name="tp_cli_dbus_daemon_callback_for_get_connection_unix_process_id ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-callback-for-get-connection-unix-process-id"/>
286 <function name="tp_cli_dbus_daemon_callback_for_get_connection_unix_user ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-callback-for-get-connection-unix-user"/>
287 <function name="tp_cli_dbus_daemon_callback_for_get_id ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-callback-for-get-id"/>
288 <function name="tp_cli_dbus_daemon_callback_for_get_name_owner ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-callback-for-get-name-owner"/>
289 <function name="tp_cli_dbus_daemon_callback_for_hello ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-callback-for-hello"/>
290 <function name="tp_cli_dbus_daemon_callback_for_list_activatable_names ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-callback-for-list-activatable-names"/>
291 <function name="tp_cli_dbus_daemon_callback_for_list_names ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-callback-for-list-names"/>
292 <function name="tp_cli_dbus_daemon_callback_for_list_queued_owners ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-callback-for-list-queued-owners"/>
293 <function name="tp_cli_dbus_daemon_callback_for_name_has_owner ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-callback-for-name-has-owner"/>
294 <function name="tp_cli_dbus_daemon_callback_for_release_name ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-callback-for-release-name"/>
295 <function name="tp_cli_dbus_daemon_callback_for_reload_config ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-callback-for-reload-config"/>
296 <function name="tp_cli_dbus_daemon_callback_for_remove_match ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-callback-for-remove-match"/>
297 <function name="tp_cli_dbus_daemon_callback_for_request_name ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-callback-for-request-name"/>
298 <function name="tp_cli_dbus_daemon_callback_for_start_service_by_name ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-callback-for-start-service-by-name"/>
299 <function name="tp_cli_dbus_daemon_connect_to_name_acquired ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-connect-to-name-acquired"/>
300 <function name="tp_cli_dbus_daemon_connect_to_name_lost ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-connect-to-name-lost"/>
301 <function name="tp_cli_dbus_daemon_connect_to_name_owner_changed ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-connect-to-name-owner-changed"/>
302 <function name="tp_cli_dbus_daemon_signal_callback_name_acquired ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-signal-callback-name-acquired"/>
303 <function name="tp_cli_dbus_daemon_signal_callback_name_lost ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-signal-callback-name-lost"/>
304 <function name="tp_cli_dbus_daemon_signal_callback_name_owner_changed ()" link="telepathy-glib-dbus.html#tp-cli-dbus-daemon-signal-callback-name-owner-changed"/>
305 <function name="tp_asv_size()" link="telepathy-glib-asv.html#tp-asv-size"/>
306 <function name="tp_asv_new ()" link="telepathy-glib-asv.html#tp-asv-new"/>
307 <function name="tp_asv_get_boolean ()" link="telepathy-glib-asv.html#tp-asv-get-boolean"/>
308 <function name="tp_asv_set_boolean ()" link="telepathy-glib-asv.html#tp-asv-set-boolean"/>
309 <function name="tp_asv_get_boxed ()" link="telepathy-glib-asv.html#tp-asv-get-boxed"/>
310 <function name="tp_asv_set_boxed ()" link="telepathy-glib-asv.html#tp-asv-set-boxed"/>
311 <function name="tp_asv_take_boxed ()" link="telepathy-glib-asv.html#tp-asv-take-boxed"/>
312 <function name="tp_asv_set_static_boxed ()" link="telepathy-glib-asv.html#tp-asv-set-static-boxed"/>
313 <function name="tp_asv_get_bytes ()" link="telepathy-glib-asv.html#tp-asv-get-bytes"/>
314 <function name="tp_asv_set_bytes ()" link="telepathy-glib-asv.html#tp-asv-set-bytes"/>
315 <function name="tp_asv_take_bytes ()" link="telepathy-glib-asv.html#tp-asv-take-bytes"/>
316 <function name="tp_asv_get_double ()" link="telepathy-glib-asv.html#tp-asv-get-double"/>
317 <function name="tp_asv_set_double ()" link="telepathy-glib-asv.html#tp-asv-set-double"/>
318 <function name="tp_asv_get_int32 ()" link="telepathy-glib-asv.html#tp-asv-get-int32"/>
319 <function name="tp_asv_set_int32 ()" link="telepathy-glib-asv.html#tp-asv-set-int32"/>
320 <function name="tp_asv_get_int64 ()" link="telepathy-glib-asv.html#tp-asv-get-int64"/>
321 <function name="tp_asv_set_int64 ()" link="telepathy-glib-asv.html#tp-asv-set-int64"/>
322 <function name="tp_asv_get_object_path ()" link="telepathy-glib-asv.html#tp-asv-get-object-path"/>
323 <function name="tp_asv_set_object_path ()" link="telepathy-glib-asv.html#tp-asv-set-object-path"/>
324 <function name="tp_asv_take_object_path ()" link="telepathy-glib-asv.html#tp-asv-take-object-path"/>
325 <function name="tp_asv_set_static_object_path ()" link="telepathy-glib-asv.html#tp-asv-set-static-object-path"/>
326 <function name="tp_asv_get_string ()" link="telepathy-glib-asv.html#tp-asv-get-string"/>
327 <function name="tp_asv_set_string ()" link="telepathy-glib-asv.html#tp-asv-set-string"/>
328 <function name="tp_asv_take_string ()" link="telepathy-glib-asv.html#tp-asv-take-string"/>
329 <function name="tp_asv_set_static_string ()" link="telepathy-glib-asv.html#tp-asv-set-static-string"/>
330 <function name="tp_asv_get_strv ()" link="telepathy-glib-asv.html#tp-asv-get-strv"/>
331 <function name="tp_asv_set_strv ()" link="telepathy-glib-asv.html#tp-asv-set-strv"/>
332 <function name="tp_asv_get_uint32 ()" link="telepathy-glib-asv.html#tp-asv-get-uint32"/>
333 <function name="tp_asv_set_uint32 ()" link="telepathy-glib-asv.html#tp-asv-set-uint32"/>
334 <function name="tp_asv_get_uint64 ()" link="telepathy-glib-asv.html#tp-asv-get-uint64"/>
335 <function name="tp_asv_set_uint64 ()" link="telepathy-glib-asv.html#tp-asv-set-uint64"/>
336 <function name="tp_asv_lookup ()" link="telepathy-glib-asv.html#tp-asv-lookup"/>
337 <function name="tp_asv_dump ()" link="telepathy-glib-asv.html#tp-asv-dump"/>
338 <function name="tp_proxy_add_interface_by_id ()" link="telepathy-glib-proxy-subclass.html#tp-proxy-add-interface-by-id"/>
339 <function name="tp_proxy_add_interfaces ()" link="telepathy-glib-proxy-subclass.html#tp-proxy-add-interfaces"/>
340 <function name="tp_proxy_borrow_interface_by_id ()" link="telepathy-glib-proxy-subclass.html#tp-proxy-borrow-interface-by-id"/>
341 <function name="tp_proxy_invalidate ()" link="telepathy-glib-proxy-subclass.html#tp-proxy-invalidate"/>
342 <function name="TpProxyInterfaceAddedCb ()" link="telepathy-glib-proxy-subclass.html#TpProxyInterfaceAddedCb"/>
343 <function name="tp_proxy_or_subclass_hook_on_interface_add ()" link="telepathy-glib-proxy-subclass.html#tp-proxy-or-subclass-hook-on-interface-add"/>
344 <function name="tp_proxy_init_known_interfaces ()" link="telepathy-glib-proxy-subclass.html#tp-proxy-init-known-interfaces"/>
345 <function name="tp_proxy_subclass_add_error_mapping ()" link="telepathy-glib-proxy-subclass.html#tp-proxy-subclass-add-error-mapping"/>
346 <function name="tp_proxy_dbus_g_proxy_claim_for_signal_adding ()" link="telepathy-glib-proxy-subclass.html#tp-proxy-dbus-g-proxy-claim-for-signal-adding"/>
347 <function name="TpProxyInvokeFunc ()" link="telepathy-glib-proxy-subclass.html#TpProxyInvokeFunc"/>
348 <function name="tp_proxy_pending_call_v0_new ()" link="telepathy-glib-proxy-subclass.html#tp-proxy-pending-call-v0-new"/>
349 <function name="tp_proxy_pending_call_v0_completed ()" link="telepathy-glib-proxy-subclass.html#tp-proxy-pending-call-v0-completed"/>
350 <function name="tp_proxy_pending_call_v0_take_pending_call ()" link="telepathy-glib-proxy-subclass.html#tp-proxy-pending-call-v0-take-pending-call"/>
351 <function name="tp_proxy_pending_call_v0_take_results ()" link="telepathy-glib-proxy-subclass.html#tp-proxy-pending-call-v0-take-results"/>
352 <function name="tp_proxy_signal_connection_v0_new ()" link="telepathy-glib-proxy-subclass.html#tp-proxy-signal-connection-v0-new"/>
353 <function name="tp_proxy_signal_connection_v0_take_results ()" link="telepathy-glib-proxy-subclass.html#tp-proxy-signal-connection-v0-take-results"/>
354 <function name="TP_CM_BUS_NAME_BASE" link="telepathy-glib-defs.html#TP-CM-BUS-NAME-BASE:CAPS"/>
355 <function name="TP_CM_OBJECT_PATH_BASE" link="telepathy-glib-defs.html#TP-CM-OBJECT-PATH-BASE:CAPS"/>
356 <function name="TP_CONN_BUS_NAME_BASE" link="telepathy-glib-defs.html#TP-CONN-BUS-NAME-BASE:CAPS"/>
357 <function name="TP_CONN_OBJECT_PATH_BASE" link="telepathy-glib-defs.html#TP-CONN-OBJECT-PATH-BASE:CAPS"/>
358 <function name="TP_ACCOUNT_MANAGER_BUS_NAME" link="telepathy-glib-defs.html#TP-ACCOUNT-MANAGER-BUS-NAME:CAPS"/>
359 <function name="TP_ACCOUNT_MANAGER_OBJECT_PATH" link="telepathy-glib-defs.html#TP-ACCOUNT-MANAGER-OBJECT-PATH:CAPS"/>
360 <function name="TP_ACCOUNT_OBJECT_PATH_BASE" link="telepathy-glib-defs.html#TP-ACCOUNT-OBJECT-PATH-BASE:CAPS"/>
361 <function name="TP_CHANNEL_DISPATCHER_BUS_NAME" link="telepathy-glib-defs.html#TP-CHANNEL-DISPATCHER-BUS-NAME:CAPS"/>
362 <function name="TP_CHANNEL_DISPATCHER_OBJECT_PATH" link="telepathy-glib-defs.html#TP-CHANNEL-DISPATCHER-OBJECT-PATH:CAPS"/>
363 <function name="TP_CLIENT_BUS_NAME_BASE" link="telepathy-glib-defs.html#TP-CLIENT-BUS-NAME-BASE:CAPS"/>
364 <function name="TP_CLIENT_OBJECT_PATH_BASE" link="telepathy-glib-defs.html#TP-CLIENT-OBJECT-PATH-BASE:CAPS"/>
365 <function name="TP_USER_ACTION_TIME_NOT_USER_ACTION" link="telepathy-glib-defs.html#TP-USER-ACTION-TIME-NOT-USER-ACTION:CAPS"/>
366 <function name="TP_USER_ACTION_TIME_CURRENT_TIME" link="telepathy-glib-defs.html#TP-USER-ACTION-TIME-CURRENT-TIME:CAPS"/>
367 <function name="TpHandle" link="telepathy-glib-handle.html#TpHandle"/>
368 <function name="TP_TYPE_HANDLE" link="telepathy-glib-handle.html#TP-TYPE-HANDLE:CAPS"/>
369 <function name="TP_UNKNOWN_HANDLE_TYPE" link="telepathy-glib-handle.html#TP-UNKNOWN-HANDLE-TYPE:CAPS"/>
370 <function name="tp_handle_type_is_valid ()" link="telepathy-glib-handle.html#tp-handle-type-is-valid"/>
371 <function name="tp_handle_type_to_string ()" link="telepathy-glib-handle.html#tp-handle-type-to-string"/>
372 <function name="TP_IFACE_ACCOUNT" link="telepathy-glib-interfaces.html#TP-IFACE-ACCOUNT:CAPS"/>
373 <function name="TP_IFACE_QUARK_ACCOUNT" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-ACCOUNT:CAPS"/>
374 <function name="TP_IFACE_ACCOUNT_INTERFACE_ADDRESSING" link="telepathy-glib-interfaces.html#TP-IFACE-ACCOUNT-INTERFACE-ADDRESSING:CAPS"/>
375 <function name="TP_IFACE_QUARK_ACCOUNT_INTERFACE_ADDRESSING" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-ACCOUNT-INTERFACE-ADDRESSING:CAPS"/>
376 <function name="TP_IFACE_ACCOUNT_INTERFACE_AVATAR" link="telepathy-glib-interfaces.html#TP-IFACE-ACCOUNT-INTERFACE-AVATAR:CAPS"/>
377 <function name="TP_IFACE_QUARK_ACCOUNT_INTERFACE_AVATAR" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-ACCOUNT-INTERFACE-AVATAR:CAPS"/>
378 <function name="TP_IFACE_ACCOUNT_INTERFACE_STORAGE" link="telepathy-glib-interfaces.html#TP-IFACE-ACCOUNT-INTERFACE-STORAGE:CAPS"/>
379 <function name="TP_IFACE_QUARK_ACCOUNT_INTERFACE_STORAGE" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-ACCOUNT-INTERFACE-STORAGE:CAPS"/>
380 <function name="TP_IFACE_ACCOUNT_MANAGER" link="telepathy-glib-interfaces.html#TP-IFACE-ACCOUNT-MANAGER:CAPS"/>
381 <function name="TP_IFACE_QUARK_ACCOUNT_MANAGER" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-ACCOUNT-MANAGER:CAPS"/>
382 <function name="TP_IFACE_AUTHENTICATION_TLS_CERTIFICATE" link="telepathy-glib-interfaces.html#TP-IFACE-AUTHENTICATION-TLS-CERTIFICATE:CAPS"/>
383 <function name="TP_IFACE_QUARK_AUTHENTICATION_TLS_CERTIFICATE" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-AUTHENTICATION-TLS-CERTIFICATE:CAPS"/>
384 <function name="TP_IFACE_DBUS_DAEMON" link="telepathy-glib-interfaces.html#TP-IFACE-DBUS-DAEMON:CAPS"/>
385 <function name="TP_IFACE_QUARK_DBUS_DAEMON" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-DBUS-DAEMON:CAPS"/>
386 <function name="TP_IFACE_DBUS_INTROSPECTABLE" link="telepathy-glib-interfaces.html#TP-IFACE-DBUS-INTROSPECTABLE:CAPS"/>
387 <function name="TP_IFACE_QUARK_DBUS_INTROSPECTABLE" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-DBUS-INTROSPECTABLE:CAPS"/>
388 <function name="TP_IFACE_DBUS_PEER" link="telepathy-glib-interfaces.html#TP-IFACE-DBUS-PEER:CAPS"/>
389 <function name="TP_IFACE_QUARK_DBUS_PEER" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-DBUS-PEER:CAPS"/>
390 <function name="TP_IFACE_DBUS_PROPERTIES" link="telepathy-glib-interfaces.html#TP-IFACE-DBUS-PROPERTIES:CAPS"/>
391 <function name="TP_IFACE_QUARK_DBUS_PROPERTIES" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-DBUS-PROPERTIES:CAPS"/>
392 <function name="TP_IFACE_DEBUG" link="telepathy-glib-interfaces.html#TP-IFACE-DEBUG:CAPS"/>
393 <function name="TP_IFACE_QUARK_DEBUG" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-DEBUG:CAPS"/>
394 <function name="TP_IFACE_CONNECTION_MANAGER" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-MANAGER:CAPS"/>
395 <function name="TP_IFACE_QUARK_CONNECTION_MANAGER" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-MANAGER:CAPS"/>
396 <function name="TP_IFACE_PROTOCOL" link="telepathy-glib-interfaces.html#TP-IFACE-PROTOCOL:CAPS"/>
397 <function name="TP_IFACE_QUARK_PROTOCOL" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-PROTOCOL:CAPS"/>
398 <function name="TP_IFACE_PROTOCOL_INTERFACE_AVATARS" link="telepathy-glib-interfaces.html#TP-IFACE-PROTOCOL-INTERFACE-AVATARS:CAPS"/>
399 <function name="TP_IFACE_QUARK_PROTOCOL_INTERFACE_AVATARS" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-PROTOCOL-INTERFACE-AVATARS:CAPS"/>
400 <function name="TP_IFACE_PROTOCOL_INTERFACE_PRESENCE" link="telepathy-glib-interfaces.html#TP-IFACE-PROTOCOL-INTERFACE-PRESENCE:CAPS"/>
401 <function name="TP_IFACE_QUARK_PROTOCOL_INTERFACE_PRESENCE" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-PROTOCOL-INTERFACE-PRESENCE:CAPS"/>
402 <function name="TP_IFACE_CONNECTION" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION:CAPS"/>
403 <function name="TP_IFACE_QUARK_CONNECTION" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION:CAPS"/>
404 <function name="TP_IFACE_CONNECTION_INTERFACE_ALIASING" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-ALIASING:CAPS"/>
405 <function name="TP_IFACE_QUARK_CONNECTION_INTERFACE_ALIASING" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-ALIASING:CAPS"/>
406 <function name="TP_IFACE_CONNECTION_INTERFACE_ANONYMITY" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-ANONYMITY:CAPS"/>
407 <function name="TP_IFACE_QUARK_CONNECTION_INTERFACE_ANONYMITY" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-ANONYMITY:CAPS"/>
408 <function name="TP_IFACE_CONNECTION_INTERFACE_AVATARS" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-AVATARS:CAPS"/>
409 <function name="TP_IFACE_QUARK_CONNECTION_INTERFACE_AVATARS" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-AVATARS:CAPS"/>
410 <function name="TP_IFACE_CONNECTION_INTERFACE_BALANCE" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-BALANCE:CAPS"/>
411 <function name="TP_IFACE_QUARK_CONNECTION_INTERFACE_BALANCE" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-BALANCE:CAPS"/>
412 <function name="TP_IFACE_CONNECTION_INTERFACE_CAPABILITIES" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-CAPABILITIES:CAPS"/>
413 <function name="TP_IFACE_QUARK_CONNECTION_INTERFACE_CAPABILITIES" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-CAPABILITIES:CAPS"/>
414 <function name="TP_IFACE_CONNECTION_INTERFACE_CELLULAR" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-CELLULAR:CAPS"/>
415 <function name="TP_IFACE_QUARK_CONNECTION_INTERFACE_CELLULAR" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-CELLULAR:CAPS"/>
416 <function name="TP_IFACE_CONNECTION_INTERFACE_CLIENT_TYPES" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-CLIENT-TYPES:CAPS"/>
417 <function name="TP_IFACE_QUARK_CONNECTION_INTERFACE_CLIENT_TYPES" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-CLIENT-TYPES:CAPS"/>
418 <function name="TP_IFACE_CONNECTION_INTERFACE_CONTACT_CAPABILITIES" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-CONTACT-CAPABILITIES:CAPS"/>
419 <function name="TP_IFACE_QUARK_CONNECTION_INTERFACE_CONTACT_CAPABILITIES" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-CONTACT-CAPABILITIES:CAPS"/>
420 <function name="TP_IFACE_CONNECTION_INTERFACE_CONTACT_GROUPS" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-CONTACT-GROUPS:CAPS"/>
421 <function name="TP_IFACE_QUARK_CONNECTION_INTERFACE_CONTACT_GROUPS" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-CONTACT-GROUPS:CAPS"/>
422 <function name="TP_IFACE_CONNECTION_INTERFACE_POWER_SAVING" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-POWER-SAVING:CAPS"/>
423 <function name="TP_IFACE_QUARK_CONNECTION_INTERFACE_POWER_SAVING" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-POWER-SAVING:CAPS"/>
424 <function name="TP_IFACE_CONNECTION_INTERFACE_CONTACT_BLOCKING" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-CONTACT-BLOCKING:CAPS"/>
425 <function name="TP_IFACE_QUARK_CONNECTION_INTERFACE_CONTACT_BLOCKING" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-CONTACT-BLOCKING:CAPS"/>
426 <function name="TP_IFACE_CONNECTION_INTERFACE_CONTACT_INFO" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-CONTACT-INFO:CAPS"/>
427 <function name="TP_IFACE_QUARK_CONNECTION_INTERFACE_CONTACT_INFO" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-CONTACT-INFO:CAPS"/>
428 <function name="TP_IFACE_CONNECTION_INTERFACE_CONTACT_LIST" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-CONTACT-LIST:CAPS"/>
429 <function name="TP_IFACE_QUARK_CONNECTION_INTERFACE_CONTACT_LIST" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-CONTACT-LIST:CAPS"/>
430 <function name="TP_IFACE_CONNECTION_INTERFACE_CONTACTS" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-CONTACTS:CAPS"/>
431 <function name="TP_IFACE_QUARK_CONNECTION_INTERFACE_CONTACTS" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-CONTACTS:CAPS"/>
432 <function name="TP_IFACE_CONNECTION_INTERFACE_REQUESTS" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-REQUESTS:CAPS"/>
433 <function name="TP_IFACE_QUARK_CONNECTION_INTERFACE_REQUESTS" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-REQUESTS:CAPS"/>
434 <function name="TP_IFACE_CONNECTION_INTERFACE_SIMPLE_PRESENCE" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-SIMPLE-PRESENCE:CAPS"/>
435 <function name="TP_IFACE_QUARK_CONNECTION_INTERFACE_SIMPLE_PRESENCE" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-SIMPLE-PRESENCE:CAPS"/>
436 <function name="TP_IFACE_CONNECTION_INTERFACE_PRESENCE" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-PRESENCE:CAPS"/>
437 <function name="TP_IFACE_QUARK_CONNECTION_INTERFACE_PRESENCE" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-PRESENCE:CAPS"/>
438 <function name="TP_IFACE_CONNECTION_INTERFACE_LOCATION" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-LOCATION:CAPS"/>
439 <function name="TP_IFACE_QUARK_CONNECTION_INTERFACE_LOCATION" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-LOCATION:CAPS"/>
440 <function name="TP_IFACE_CONNECTION_INTERFACE_SERVICE_POINT" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-SERVICE-POINT:CAPS"/>
441 <function name="TP_IFACE_QUARK_CONNECTION_INTERFACE_SERVICE_POINT" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-SERVICE-POINT:CAPS"/>
442 <function name="TP_IFACE_CONNECTION_INTERFACE_MAIL_NOTIFICATION" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-MAIL-NOTIFICATION:CAPS"/>
443 <function name="TP_IFACE_QUARK_CONNECTION_INTERFACE_MAIL_NOTIFICATION" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-MAIL-NOTIFICATION:CAPS"/>
444 <function name="TP_IFACE_CHANNEL" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL:CAPS"/>
445 <function name="TP_IFACE_QUARK_CHANNEL" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL:CAPS"/>
446 <function name="TP_IFACE_CHANNEL_TYPE_CONTACT_LIST" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-CONTACT-LIST:CAPS"/>
447 <function name="TP_IFACE_QUARK_CHANNEL_TYPE_CONTACT_LIST" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-TYPE-CONTACT-LIST:CAPS"/>
448 <function name="TP_IFACE_CHANNEL_TYPE_CONTACT_SEARCH" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-CONTACT-SEARCH:CAPS"/>
449 <function name="TP_IFACE_QUARK_CHANNEL_TYPE_CONTACT_SEARCH" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-TYPE-CONTACT-SEARCH:CAPS"/>
450 <function name="TP_IFACE_CHANNEL_TYPE_FILE_TRANSFER" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-FILE-TRANSFER:CAPS"/>
451 <function name="TP_IFACE_QUARK_CHANNEL_TYPE_FILE_TRANSFER" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-TYPE-FILE-TRANSFER:CAPS"/>
452 <function name="TP_IFACE_CHANNEL_TYPE_SERVER_AUTHENTICATION" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-SERVER-AUTHENTICATION:CAPS"/>
453 <function name="TP_IFACE_QUARK_CHANNEL_TYPE_SERVER_AUTHENTICATION" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-TYPE-SERVER-AUTHENTICATION:CAPS"/>
454 <function name="TP_IFACE_CHANNEL_TYPE_SERVER_TLS_CONNECTION" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-SERVER-TLS-CONNECTION:CAPS"/>
455 <function name="TP_IFACE_QUARK_CHANNEL_TYPE_SERVER_TLS_CONNECTION" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-TYPE-SERVER-TLS-CONNECTION:CAPS"/>
456 <function name="TP_IFACE_CHANNEL_TYPE_STREAMED_MEDIA" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-STREAMED-MEDIA:CAPS"/>
457 <function name="TP_IFACE_QUARK_CHANNEL_TYPE_STREAMED_MEDIA" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-TYPE-STREAMED-MEDIA:CAPS"/>
458 <function name="TP_IFACE_CHANNEL_TYPE_ROOM_LIST" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-ROOM-LIST:CAPS"/>
459 <function name="TP_IFACE_QUARK_CHANNEL_TYPE_ROOM_LIST" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-TYPE-ROOM-LIST:CAPS"/>
460 <function name="TP_IFACE_CHANNEL_TYPE_TEXT" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-TEXT:CAPS"/>
461 <function name="TP_IFACE_QUARK_CHANNEL_TYPE_TEXT" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-TYPE-TEXT:CAPS"/>
462 <function name="TP_IFACE_CHANNEL_TYPE_TUBES" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-TUBES:CAPS"/>
463 <function name="TP_IFACE_QUARK_CHANNEL_TYPE_TUBES" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-TYPE-TUBES:CAPS"/>
464 <function name="TP_IFACE_CHANNEL_INTERFACE_TUBE" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-TUBE:CAPS"/>
465 <function name="TP_IFACE_CHANNEL_TYPE_DBUS_TUBE" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-DBUS-TUBE:CAPS"/>
466 <function name="TP_IFACE_CHANNEL_TYPE_STREAM_TUBE" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-STREAM-TUBE:CAPS"/>
467 <function name="TP_IFACE_QUARK_CHANNEL_INTERFACE_TUBE" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-TUBE:CAPS"/>
468 <function name="TP_IFACE_QUARK_CHANNEL_TYPE_DBUS_TUBE" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-TYPE-DBUS-TUBE:CAPS"/>
469 <function name="TP_IFACE_QUARK_CHANNEL_TYPE_STREAM_TUBE" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-TYPE-STREAM-TUBE:CAPS"/>
470 <function name="TP_IFACE_CHANNEL_INTERFACE_ANONYMITY" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-ANONYMITY:CAPS"/>
471 <function name="TP_IFACE_QUARK_CHANNEL_INTERFACE_ANONYMITY" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-ANONYMITY:CAPS"/>
472 <function name="TP_IFACE_CHANNEL_INTERFACE_CALL_STATE" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-CALL-STATE:CAPS"/>
473 <function name="TP_IFACE_QUARK_CHANNEL_INTERFACE_CALL_STATE" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-CALL-STATE:CAPS"/>
474 <function name="TP_IFACE_CHANNEL_INTERFACE_CHAT_STATE" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-CHAT-STATE:CAPS"/>
475 <function name="TP_IFACE_QUARK_CHANNEL_INTERFACE_CHAT_STATE" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-CHAT-STATE:CAPS"/>
476 <function name="TP_IFACE_CHANNEL_INTERFACE_CONFERENCE" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-CONFERENCE:CAPS"/>
477 <function name="TP_IFACE_QUARK_CHANNEL_INTERFACE_CONFERENCE" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-CONFERENCE:CAPS"/>
478 <function name="TP_IFACE_CHANNEL_INTERFACE_DESTROYABLE" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-DESTROYABLE:CAPS"/>
479 <function name="TP_IFACE_QUARK_CHANNEL_INTERFACE_DESTROYABLE" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-DESTROYABLE:CAPS"/>
480 <function name="TP_IFACE_CHANNEL_INTERFACE_DTMF" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-DTMF:CAPS"/>
481 <function name="TP_IFACE_QUARK_CHANNEL_INTERFACE_DTMF" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-DTMF:CAPS"/>
482 <function name="TP_IFACE_CHANNEL_INTERFACE_GROUP" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-GROUP:CAPS"/>
483 <function name="TP_IFACE_QUARK_CHANNEL_INTERFACE_GROUP" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-GROUP:CAPS"/>
484 <function name="TP_IFACE_CHANNEL_INTERFACE_HOLD" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-HOLD:CAPS"/>
485 <function name="TP_IFACE_QUARK_CHANNEL_INTERFACE_HOLD" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-HOLD:CAPS"/>
486 <function name="TP_IFACE_CHANNEL_INTERFACE_PASSWORD" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-PASSWORD:CAPS"/>
487 <function name="TP_IFACE_QUARK_CHANNEL_INTERFACE_PASSWORD" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-PASSWORD:CAPS"/>
488 <function name="TP_IFACE_CHANNEL_INTERFACE_SASL_AUTHENTICATION" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-SASL-AUTHENTICATION:CAPS"/>
489 <function name="TP_IFACE_QUARK_CHANNEL_INTERFACE_SASL_AUTHENTICATION" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-SASL-AUTHENTICATION:CAPS"/>
490 <function name="TP_IFACE_CHANNEL_INTERFACE_SECURABLE" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-SECURABLE:CAPS"/>
491 <function name="TP_IFACE_QUARK_CHANNEL_INTERFACE_SECURABLE" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-SECURABLE:CAPS"/>
492 <function name="TP_IFACE_CHANNEL_INTERFACE_SMS" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-SMS:CAPS"/>
493 <function name="TP_IFACE_QUARK_CHANNEL_INTERFACE_SMS" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-SMS:CAPS"/>
494 <function name="TP_IFACE_CHANNEL_INTERFACE_MEDIA_SIGNALLING" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-MEDIA-SIGNALLING:CAPS"/>
495 <function name="TP_IFACE_QUARK_CHANNEL_INTERFACE_MEDIA_SIGNALLING" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-MEDIA-SIGNALLING:CAPS"/>
496 <function name="TP_IFACE_CHANNEL_INTERFACE_MESSAGES" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-MESSAGES:CAPS"/>
497 <function name="TP_IFACE_QUARK_CHANNEL_INTERFACE_MESSAGES" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-MESSAGES:CAPS"/>
498 <function name="TP_IFACE_CHANNEL_INTERFACE_SERVICE_POINT" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-SERVICE-POINT:CAPS"/>
499 <function name="TP_IFACE_QUARK_CHANNEL_INTERFACE_SERVICE_POINT" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-SERVICE-POINT:CAPS"/>
500 <function name="TP_IFACE_CHANNEL_DISPATCHER" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-DISPATCHER:CAPS"/>
501 <function name="TP_IFACE_QUARK_CHANNEL_DISPATCHER" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-DISPATCHER:CAPS"/>
502 <function name="TP_IFACE_CHANNEL_DISPATCHER_INTERFACE_OPERATION_LIST" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-DISPATCHER-INTERFACE-OPERATION-LIST:CAPS"/>
503 <function name="TP_IFACE_QUARK_CHANNEL_DISPATCHER_INTERFACE_OPERATION_LIST" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-DISPATCHER-INTERFACE-OPERATION-LIST:CAPS"/>
504 <function name="TP_IFACE_CHANNEL_DISPATCH_OPERATION" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-DISPATCH-OPERATION:CAPS"/>
505 <function name="TP_IFACE_QUARK_CHANNEL_DISPATCH_OPERATION" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-DISPATCH-OPERATION:CAPS"/>
506 <function name="TP_IFACE_CHANNEL_REQUEST" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-REQUEST:CAPS"/>
507 <function name="TP_IFACE_QUARK_CHANNEL_REQUEST" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-REQUEST:CAPS"/>
508 <function name="TP_IFACE_MEDIA_SESSION_HANDLER" link="telepathy-glib-interfaces.html#TP-IFACE-MEDIA-SESSION-HANDLER:CAPS"/>
509 <function name="TP_IFACE_QUARK_MEDIA_SESSION_HANDLER" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-MEDIA-SESSION-HANDLER:CAPS"/>
510 <function name="TP_IFACE_MEDIA_STREAM_HANDLER" link="telepathy-glib-interfaces.html#TP-IFACE-MEDIA-STREAM-HANDLER:CAPS"/>
511 <function name="TP_IFACE_QUARK_MEDIA_STREAM_HANDLER" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-MEDIA-STREAM-HANDLER:CAPS"/>
512 <function name="TP_IFACE_PROPERTIES_INTERFACE" link="telepathy-glib-interfaces.html#TP-IFACE-PROPERTIES-INTERFACE:CAPS"/>
513 <function name="TP_IFACE_QUARK_PROPERTIES_INTERFACE" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-PROPERTIES-INTERFACE:CAPS"/>
514 <function name="TP_IFACE_CLIENT" link="telepathy-glib-interfaces.html#TP-IFACE-CLIENT:CAPS"/>
515 <function name="TP_IFACE_QUARK_CLIENT" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CLIENT:CAPS"/>
516 <function name="TP_IFACE_CLIENT_APPROVER" link="telepathy-glib-interfaces.html#TP-IFACE-CLIENT-APPROVER:CAPS"/>
517 <function name="TP_IFACE_QUARK_CLIENT_APPROVER" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CLIENT-APPROVER:CAPS"/>
518 <function name="TP_IFACE_CLIENT_HANDLER" link="telepathy-glib-interfaces.html#TP-IFACE-CLIENT-HANDLER:CAPS"/>
519 <function name="TP_IFACE_QUARK_CLIENT_HANDLER" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CLIENT-HANDLER:CAPS"/>
520 <function name="TP_IFACE_CLIENT_OBSERVER" link="telepathy-glib-interfaces.html#TP-IFACE-CLIENT-OBSERVER:CAPS"/>
521 <function name="TP_IFACE_QUARK_CLIENT_OBSERVER" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CLIENT-OBSERVER:CAPS"/>
522 <function name="TP_IFACE_CLIENT_INTERFACE_REQUESTS" link="telepathy-glib-interfaces.html#TP-IFACE-CLIENT-INTERFACE-REQUESTS:CAPS"/>
523 <function name="TP_IFACE_QUARK_CLIENT_INTERFACE_REQUESTS" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CLIENT-INTERFACE-REQUESTS:CAPS"/>
524 <function name="TP_PROP_ACCOUNT_AUTOMATIC_PRESENCE" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-AUTOMATIC-PRESENCE:CAPS"/>
525 <function name="TP_PROP_ACCOUNT_CHANGING_PRESENCE" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-CHANGING-PRESENCE:CAPS"/>
526 <function name="TP_PROP_ACCOUNT_CONNECTION" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-CONNECTION:CAPS"/>
527 <function name="TP_PROP_ACCOUNT_CONNECTION_ERROR" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-CONNECTION-ERROR:CAPS"/>
528 <function name="TP_PROP_ACCOUNT_CONNECTION_ERROR_DETAILS" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-CONNECTION-ERROR-DETAILS:CAPS"/>
529 <function name="TP_PROP_ACCOUNT_CONNECTION_STATUS" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-CONNECTION-STATUS:CAPS"/>
530 <function name="TP_PROP_ACCOUNT_CONNECTION_STATUS_REASON" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-CONNECTION-STATUS-REASON:CAPS"/>
531 <function name="TP_PROP_ACCOUNT_CONNECT_AUTOMATICALLY" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-CONNECT-AUTOMATICALLY:CAPS"/>
532 <function name="TP_PROP_ACCOUNT_CURRENT_PRESENCE" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-CURRENT-PRESENCE:CAPS"/>
533 <function name="TP_PROP_ACCOUNT_DISPLAY_NAME" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-DISPLAY-NAME:CAPS"/>
534 <function name="TP_PROP_ACCOUNT_ENABLED" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-ENABLED:CAPS"/>
535 <function name="TP_PROP_ACCOUNT_HAS_BEEN_ONLINE" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-HAS-BEEN-ONLINE:CAPS"/>
536 <function name="TP_PROP_ACCOUNT_ICON" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-ICON:CAPS"/>
537 <function name="TP_PROP_ACCOUNT_INTERFACES" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-INTERFACES:CAPS"/>
538 <function name="TP_PROP_ACCOUNT_INTERFACE_ADDRESSING_URI_SCHEMES" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-INTERFACE-ADDRESSING-URI-SCHEMES:CAPS"/>
539 <function name="TP_PROP_ACCOUNT_INTERFACE_AVATAR_AVATAR" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-INTERFACE-AVATAR-AVATAR:CAPS"/>
540 <function name="TP_PROP_ACCOUNT_INTERFACE_STORAGE_STORAGE_IDENTIFIER" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-INTERFACE-STORAGE-STORAGE-IDENTIFIER:CAPS"/>
541 <function name="TP_PROP_ACCOUNT_INTERFACE_STORAGE_STORAGE_PROVIDER" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-INTERFACE-STORAGE-STORAGE-PROVIDER:CAPS"/>
542 <function name="TP_PROP_ACCOUNT_INTERFACE_STORAGE_STORAGE_RESTRICTIONS" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-INTERFACE-STORAGE-STORAGE-RESTRICTIONS:CAPS"/>
543 <function name="TP_PROP_ACCOUNT_INTERFACE_STORAGE_STORAGE_SPECIFIC_INFORMATION" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-INTERFACE-STORAGE-STORAGE-SPECIFIC-INFORMATION:CAPS"/>
544 <function name="TP_PROP_ACCOUNT_MANAGER_INTERFACES" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-MANAGER-INTERFACES:CAPS"/>
545 <function name="TP_PROP_ACCOUNT_MANAGER_INVALID_ACCOUNTS" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-MANAGER-INVALID-ACCOUNTS:CAPS"/>
546 <function name="TP_PROP_ACCOUNT_MANAGER_SUPPORTED_ACCOUNT_PROPERTIES" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-MANAGER-SUPPORTED-ACCOUNT-PROPERTIES:CAPS"/>
547 <function name="TP_PROP_ACCOUNT_MANAGER_VALID_ACCOUNTS" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-MANAGER-VALID-ACCOUNTS:CAPS"/>
548 <function name="TP_PROP_ACCOUNT_NICKNAME" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-NICKNAME:CAPS"/>
549 <function name="TP_PROP_ACCOUNT_NORMALIZED_NAME" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-NORMALIZED-NAME:CAPS"/>
550 <function name="TP_PROP_ACCOUNT_PARAMETERS" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-PARAMETERS:CAPS"/>
551 <function name="TP_PROP_ACCOUNT_REQUESTED_PRESENCE" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-REQUESTED-PRESENCE:CAPS"/>
552 <function name="TP_PROP_ACCOUNT_SERVICE" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-SERVICE:CAPS"/>
553 <function name="TP_PROP_ACCOUNT_VALID" link="telepathy-glib-interfaces.html#TP-PROP-ACCOUNT-VALID:CAPS"/>
554 <function name="TP_PROP_AUTHENTICATION_TLS_CERTIFICATE_CERTIFICATE_CHAIN_DATA" link="telepathy-glib-interfaces.html#TP-PROP-AUTHENTICATION-TLS-CERTIFICATE-CERTIFICATE-CHAIN-DATA:CAPS"/>
555 <function name="TP_PROP_AUTHENTICATION_TLS_CERTIFICATE_CERTIFICATE_TYPE" link="telepathy-glib-interfaces.html#TP-PROP-AUTHENTICATION-TLS-CERTIFICATE-CERTIFICATE-TYPE:CAPS"/>
556 <function name="TP_PROP_AUTHENTICATION_TLS_CERTIFICATE_REJECTIONS" link="telepathy-glib-interfaces.html#TP-PROP-AUTHENTICATION-TLS-CERTIFICATE-REJECTIONS:CAPS"/>
557 <function name="TP_PROP_AUTHENTICATION_TLS_CERTIFICATE_STATE" link="telepathy-glib-interfaces.html#TP-PROP-AUTHENTICATION-TLS-CERTIFICATE-STATE:CAPS"/>
558 <function name="TP_PROP_CHANNEL_CHANNEL_TYPE" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-CHANNEL-TYPE:CAPS"/>
559 <function name="TP_PROP_CHANNEL_DISPATCHER_INTERFACES" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-DISPATCHER-INTERFACES:CAPS"/>
560 <function name="TP_PROP_CHANNEL_DISPATCHER_INTERFACE_OPERATION_LIST_DISPATCH_OPERATIONS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-DISPATCHER-INTERFACE-OPERATION-LIST-DISPATCH-OPERATIONS:CAPS"/>
561 <function name="TP_PROP_CHANNEL_DISPATCHER_SUPPORTS_REQUEST_HINTS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-DISPATCHER-SUPPORTS-REQUEST-HINTS:CAPS"/>
562 <function name="TP_PROP_CHANNEL_DISPATCH_OPERATION_ACCOUNT" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-DISPATCH-OPERATION-ACCOUNT:CAPS"/>
563 <function name="TP_PROP_CHANNEL_DISPATCH_OPERATION_CHANNELS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-DISPATCH-OPERATION-CHANNELS:CAPS"/>
564 <function name="TP_PROP_CHANNEL_DISPATCH_OPERATION_CONNECTION" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-DISPATCH-OPERATION-CONNECTION:CAPS"/>
565 <function name="TP_PROP_CHANNEL_DISPATCH_OPERATION_INTERFACES" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-DISPATCH-OPERATION-INTERFACES:CAPS"/>
566 <function name="TP_PROP_CHANNEL_DISPATCH_OPERATION_POSSIBLE_HANDLERS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-DISPATCH-OPERATION-POSSIBLE-HANDLERS:CAPS"/>
567 <function name="TP_PROP_CHANNEL_INITIATOR_HANDLE" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INITIATOR-HANDLE:CAPS"/>
568 <function name="TP_PROP_CHANNEL_INITIATOR_ID" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INITIATOR-ID:CAPS"/>
569 <function name="TP_PROP_CHANNEL_INTERFACES" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACES:CAPS"/>
570 <function name="TP_PROP_CHANNEL_INTERFACE_ANONYMITY_ANONYMITY_MANDATORY" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ANONYMITY-ANONYMITY-MANDATORY:CAPS"/>
571 <function name="TP_PROP_CHANNEL_INTERFACE_ANONYMITY_ANONYMITY_MODES" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ANONYMITY-ANONYMITY-MODES:CAPS"/>
572 <function name="TP_PROP_CHANNEL_INTERFACE_ANONYMITY_ANONYMOUS_ID" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ANONYMITY-ANONYMOUS-ID:CAPS"/>
573 <function name="TP_PROP_CHANNEL_INTERFACE_CHAT_STATE_CHAT_STATES" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-CHAT-STATE-CHAT-STATES:CAPS"/>
574 <function name="TP_PROP_CHANNEL_INTERFACE_CONFERENCE_CHANNELS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-CONFERENCE-CHANNELS:CAPS"/>
575 <function name="TP_PROP_CHANNEL_INTERFACE_CONFERENCE_INITIAL_CHANNELS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-CONFERENCE-INITIAL-CHANNELS:CAPS"/>
576 <function name="TP_PROP_CHANNEL_INTERFACE_CONFERENCE_INITIAL_INVITEE_HANDLES" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-CONFERENCE-INITIAL-INVITEE-HANDLES:CAPS"/>
577 <function name="TP_PROP_CHANNEL_INTERFACE_CONFERENCE_INITIAL_INVITEE_IDS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-CONFERENCE-INITIAL-INVITEE-IDS:CAPS"/>
578 <function name="TP_PROP_CHANNEL_INTERFACE_CONFERENCE_INVITATION_MESSAGE" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-CONFERENCE-INVITATION-MESSAGE:CAPS"/>
579 <function name="TP_PROP_CHANNEL_INTERFACE_CONFERENCE_ORIGINAL_CHANNELS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-CONFERENCE-ORIGINAL-CHANNELS:CAPS"/>
580 <function name="TP_PROP_CHANNEL_INTERFACE_DTMF_CURRENTLY_SENDING_TONES" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-DTMF-CURRENTLY-SENDING-TONES:CAPS"/>
581 <function name="TP_PROP_CHANNEL_INTERFACE_DTMF_DEFERRED_TONES" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-DTMF-DEFERRED-TONES:CAPS"/>
582 <function name="TP_PROP_CHANNEL_INTERFACE_DTMF_INITIAL_TONES" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-DTMF-INITIAL-TONES:CAPS"/>
583 <function name="TP_PROP_CHANNEL_INTERFACE_GROUP_GROUP_FLAGS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-GROUP-GROUP-FLAGS:CAPS"/>
584 <function name="TP_PROP_CHANNEL_INTERFACE_GROUP_HANDLE_OWNERS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-GROUP-HANDLE-OWNERS:CAPS"/>
585 <function name="TP_PROP_CHANNEL_INTERFACE_GROUP_LOCAL_PENDING_MEMBERS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-GROUP-LOCAL-PENDING-MEMBERS:CAPS"/>
586 <function name="TP_PROP_CHANNEL_INTERFACE_GROUP_MEMBERS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-GROUP-MEMBERS:CAPS"/>
587 <function name="TP_PROP_CHANNEL_INTERFACE_GROUP_REMOTE_PENDING_MEMBERS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-GROUP-REMOTE-PENDING-MEMBERS:CAPS"/>
588 <function name="TP_PROP_CHANNEL_INTERFACE_GROUP_SELF_HANDLE" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-GROUP-SELF-HANDLE:CAPS"/>
589 <function name="TP_PROP_CHANNEL_INTERFACE_MESSAGES_DELIVERY_REPORTING_SUPPORT" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-MESSAGES-DELIVERY-REPORTING-SUPPORT:CAPS"/>
590 <function name="TP_PROP_CHANNEL_INTERFACE_MESSAGES_MESSAGE_PART_SUPPORT_FLAGS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-MESSAGES-MESSAGE-PART-SUPPORT-FLAGS:CAPS"/>
591 <function name="TP_PROP_CHANNEL_INTERFACE_MESSAGES_MESSAGE_TYPES" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-MESSAGES-MESSAGE-TYPES:CAPS"/>
592 <function name="TP_PROP_CHANNEL_INTERFACE_MESSAGES_PENDING_MESSAGES" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-MESSAGES-PENDING-MESSAGES:CAPS"/>
593 <function name="TP_PROP_CHANNEL_INTERFACE_MESSAGES_SUPPORTED_CONTENT_TYPES" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-MESSAGES-SUPPORTED-CONTENT-TYPES:CAPS"/>
594 <function name="TP_PROP_CHANNEL_INTERFACE_SASL_AUTHENTICATION_AUTHORIZATION_IDENTITY" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SASL-AUTHENTICATION-AUTHORIZATION-IDENTITY:CAPS"/>
595 <function name="TP_PROP_CHANNEL_INTERFACE_SASL_AUTHENTICATION_AVAILABLE_MECHANISMS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SASL-AUTHENTICATION-AVAILABLE-MECHANISMS:CAPS"/>
596 <function name="TP_PROP_CHANNEL_INTERFACE_SASL_AUTHENTICATION_CAN_TRY_AGAIN" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SASL-AUTHENTICATION-CAN-TRY-AGAIN:CAPS"/>
597 <function name="TP_PROP_CHANNEL_INTERFACE_SASL_AUTHENTICATION_DEFAULT_REALM" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SASL-AUTHENTICATION-DEFAULT-REALM:CAPS"/>
598 <function name="TP_PROP_CHANNEL_INTERFACE_SASL_AUTHENTICATION_DEFAULT_USERNAME" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SASL-AUTHENTICATION-DEFAULT-USERNAME:CAPS"/>
599 <function name="TP_PROP_CHANNEL_INTERFACE_SASL_AUTHENTICATION_HAS_INITIAL_DATA" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SASL-AUTHENTICATION-HAS-INITIAL-DATA:CAPS"/>
600 <function name="TP_PROP_CHANNEL_INTERFACE_SASL_AUTHENTICATION_MAY_SAVE_RESPONSE" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SASL-AUTHENTICATION-MAY-SAVE-RESPONSE:CAPS"/>
601 <function name="TP_PROP_CHANNEL_INTERFACE_SASL_AUTHENTICATION_SASL_ERROR" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SASL-AUTHENTICATION-SASL-ERROR:CAPS"/>
602 <function name="TP_PROP_CHANNEL_INTERFACE_SASL_AUTHENTICATION_SASL_ERROR_DETAILS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SASL-AUTHENTICATION-SASL-ERROR-DETAILS:CAPS"/>
603 <function name="TP_PROP_CHANNEL_INTERFACE_SASL_AUTHENTICATION_SASL_STATUS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SASL-AUTHENTICATION-SASL-STATUS:CAPS"/>
604 <function name="TP_PROP_CHANNEL_INTERFACE_SECURABLE_ENCRYPTED" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SECURABLE-ENCRYPTED:CAPS"/>
605 <function name="TP_PROP_CHANNEL_INTERFACE_SECURABLE_VERIFIED" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SECURABLE-VERIFIED:CAPS"/>
606 <function name="TP_PROP_CHANNEL_INTERFACE_SERVICE_POINT_CURRENT_SERVICE_POINT" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SERVICE-POINT-CURRENT-SERVICE-POINT:CAPS"/>
607 <function name="TP_PROP_CHANNEL_INTERFACE_SERVICE_POINT_INITIAL_SERVICE_POINT" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SERVICE-POINT-INITIAL-SERVICE-POINT:CAPS"/>
608 <function name="TP_PROP_CHANNEL_INTERFACE_SMS_FLASH" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SMS-FLASH:CAPS"/>
609 <function name="TP_PROP_CHANNEL_INTERFACE_SMS_SMS_CHANNEL" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SMS-SMS-CHANNEL:CAPS"/>
610 <function name="TP_PROP_CHANNEL_INTERFACE_TUBE_PARAMETERS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-TUBE-PARAMETERS:CAPS"/>
611 <function name="TP_PROP_CHANNEL_INTERFACE_TUBE_STATE" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-TUBE-STATE:CAPS"/>
612 <function name="TP_PROP_CHANNEL_TYPE_SERVER_AUTHENTICATION_AUTHENTICATION_METHOD" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-SERVER-AUTHENTICATION-AUTHENTICATION-METHOD:CAPS"/>
613 <function name="TP_PROP_CHANNEL_REQUESTED" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-REQUESTED:CAPS"/>
614 <function name="TP_PROP_CHANNEL_REQUEST_ACCOUNT" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-REQUEST-ACCOUNT:CAPS"/>
615 <function name="TP_PROP_CHANNEL_REQUEST_HINTS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-REQUEST-HINTS:CAPS"/>
616 <function name="TP_PROP_CHANNEL_REQUEST_INTERFACES" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-REQUEST-INTERFACES:CAPS"/>
617 <function name="TP_PROP_CHANNEL_REQUEST_PREFERRED_HANDLER" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-REQUEST-PREFERRED-HANDLER:CAPS"/>
618 <function name="TP_PROP_CHANNEL_REQUEST_REQUESTS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-REQUEST-REQUESTS:CAPS"/>
619 <function name="TP_PROP_CHANNEL_REQUEST_USER_ACTION_TIME" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-REQUEST-USER-ACTION-TIME:CAPS"/>
620 <function name="TP_PROP_CHANNEL_TARGET_HANDLE" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TARGET-HANDLE:CAPS"/>
621 <function name="TP_PROP_CHANNEL_TARGET_HANDLE_TYPE" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TARGET-HANDLE-TYPE:CAPS"/>
622 <function name="TP_PROP_CHANNEL_TARGET_ID" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TARGET-ID:CAPS"/>
623 <function name="TP_PROP_CHANNEL_TYPE_CONTACT_SEARCH_AVAILABLE_SEARCH_KEYS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-CONTACT-SEARCH-AVAILABLE-SEARCH-KEYS:CAPS"/>
624 <function name="TP_PROP_CHANNEL_TYPE_CONTACT_SEARCH_LIMIT" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-CONTACT-SEARCH-LIMIT:CAPS"/>
625 <function name="TP_PROP_CHANNEL_TYPE_CONTACT_SEARCH_SEARCH_STATE" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-CONTACT-SEARCH-SEARCH-STATE:CAPS"/>
626 <function name="TP_PROP_CHANNEL_TYPE_CONTACT_SEARCH_SERVER" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-CONTACT-SEARCH-SERVER:CAPS"/>
627 <function name="TP_PROP_CHANNEL_TYPE_DBUS_TUBE_DBUS_NAMES" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-DBUS-TUBE-DBUS-NAMES:CAPS"/>
628 <function name="TP_PROP_CHANNEL_TYPE_DBUS_TUBE_SERVICE_NAME" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-DBUS-TUBE-SERVICE-NAME:CAPS"/>
629 <function name="TP_PROP_CHANNEL_TYPE_DBUS_TUBE_SUPPORTED_ACCESS_CONTROLS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-DBUS-TUBE-SUPPORTED-ACCESS-CONTROLS:CAPS"/>
630 <function name="TP_PROP_CHANNEL_TYPE_FILE_TRANSFER_AVAILABLE_SOCKET_TYPES" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-FILE-TRANSFER-AVAILABLE-SOCKET-TYPES:CAPS"/>
631 <function name="TP_PROP_CHANNEL_TYPE_FILE_TRANSFER_CONTENT_HASH" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-FILE-TRANSFER-CONTENT-HASH:CAPS"/>
632 <function name="TP_PROP_CHANNEL_TYPE_FILE_TRANSFER_CONTENT_HASH_TYPE" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-FILE-TRANSFER-CONTENT-HASH-TYPE:CAPS"/>
633 <function name="TP_PROP_CHANNEL_TYPE_FILE_TRANSFER_CONTENT_TYPE" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-FILE-TRANSFER-CONTENT-TYPE:CAPS"/>
634 <function name="TP_PROP_CHANNEL_TYPE_FILE_TRANSFER_DATE" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-FILE-TRANSFER-DATE:CAPS"/>
635 <function name="TP_PROP_CHANNEL_TYPE_FILE_TRANSFER_DESCRIPTION" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-FILE-TRANSFER-DESCRIPTION:CAPS"/>
636 <function name="TP_PROP_CHANNEL_TYPE_FILE_TRANSFER_FILENAME" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-FILE-TRANSFER-FILENAME:CAPS"/>
637 <function name="TP_PROP_CHANNEL_TYPE_FILE_TRANSFER_INITIAL_OFFSET" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-FILE-TRANSFER-INITIAL-OFFSET:CAPS"/>
638 <function name="TP_PROP_CHANNEL_TYPE_FILE_TRANSFER_SIZE" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-FILE-TRANSFER-SIZE:CAPS"/>
639 <function name="TP_PROP_CHANNEL_TYPE_FILE_TRANSFER_STATE" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-FILE-TRANSFER-STATE:CAPS"/>
640 <function name="TP_PROP_CHANNEL_TYPE_FILE_TRANSFER_TRANSFERRED_BYTES" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-FILE-TRANSFER-TRANSFERRED-BYTES:CAPS"/>
641 <function name="TP_PROP_CHANNEL_TYPE_FILE_TRANSFER_URI" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-FILE-TRANSFER-URI:CAPS"/>
642 <function name="TP_PROP_CHANNEL_TYPE_ROOM_LIST_SERVER" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-ROOM-LIST-SERVER:CAPS"/>
643 <function name="TP_PROP_CHANNEL_TYPE_SERVER_TLS_CONNECTION_HOSTNAME" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-SERVER-TLS-CONNECTION-HOSTNAME:CAPS"/>
644 <function name="TP_PROP_CHANNEL_TYPE_SERVER_TLS_CONNECTION_REFERENCE_IDENTITIES" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-SERVER-TLS-CONNECTION-REFERENCE-IDENTITIES:CAPS"/>
645 <function name="TP_PROP_CHANNEL_TYPE_SERVER_TLS_CONNECTION_SERVER_CERTIFICATE" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-SERVER-TLS-CONNECTION-SERVER-CERTIFICATE:CAPS"/>
646 <function name="TP_PROP_CHANNEL_TYPE_STREAMED_MEDIA_IMMUTABLE_STREAMS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-STREAMED-MEDIA-IMMUTABLE-STREAMS:CAPS"/>
647 <function name="TP_PROP_CHANNEL_TYPE_STREAMED_MEDIA_INITIAL_AUDIO" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-STREAMED-MEDIA-INITIAL-AUDIO:CAPS"/>
648 <function name="TP_PROP_CHANNEL_TYPE_STREAMED_MEDIA_INITIAL_VIDEO" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-STREAMED-MEDIA-INITIAL-VIDEO:CAPS"/>
649 <function name="TP_PROP_CHANNEL_TYPE_STREAM_TUBE_SERVICE" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-STREAM-TUBE-SERVICE:CAPS"/>
650 <function name="TP_PROP_CHANNEL_TYPE_STREAM_TUBE_SUPPORTED_SOCKET_TYPES" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-STREAM-TUBE-SUPPORTED-SOCKET-TYPES:CAPS"/>
651 <function name="TP_PROP_CLIENT_APPROVER_APPROVER_CHANNEL_FILTER" link="telepathy-glib-interfaces.html#TP-PROP-CLIENT-APPROVER-APPROVER-CHANNEL-FILTER:CAPS"/>
652 <function name="TP_PROP_CLIENT_HANDLER_BYPASS_APPROVAL" link="telepathy-glib-interfaces.html#TP-PROP-CLIENT-HANDLER-BYPASS-APPROVAL:CAPS"/>
653 <function name="TP_PROP_CLIENT_HANDLER_CAPABILITIES" link="telepathy-glib-interfaces.html#TP-PROP-CLIENT-HANDLER-CAPABILITIES:CAPS"/>
654 <function name="TP_PROP_CLIENT_HANDLER_HANDLED_CHANNELS" link="telepathy-glib-interfaces.html#TP-PROP-CLIENT-HANDLER-HANDLED-CHANNELS:CAPS"/>
655 <function name="TP_PROP_CLIENT_HANDLER_HANDLER_CHANNEL_FILTER" link="telepathy-glib-interfaces.html#TP-PROP-CLIENT-HANDLER-HANDLER-CHANNEL-FILTER:CAPS"/>
656 <function name="TP_PROP_CLIENT_INTERFACES" link="telepathy-glib-interfaces.html#TP-PROP-CLIENT-INTERFACES:CAPS"/>
657 <function name="TP_PROP_CLIENT_OBSERVER_DELAY_APPROVERS" link="telepathy-glib-interfaces.html#TP-PROP-CLIENT-OBSERVER-DELAY-APPROVERS:CAPS"/>
658 <function name="TP_PROP_CLIENT_OBSERVER_OBSERVER_CHANNEL_FILTER" link="telepathy-glib-interfaces.html#TP-PROP-CLIENT-OBSERVER-OBSERVER-CHANNEL-FILTER:CAPS"/>
659 <function name="TP_PROP_CLIENT_OBSERVER_RECOVER" link="telepathy-glib-interfaces.html#TP-PROP-CLIENT-OBSERVER-RECOVER:CAPS"/>
660 <function name="TP_PROP_CONNECTION_HAS_IMMORTAL_HANDLES" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-HAS-IMMORTAL-HANDLES:CAPS"/>
661 <function name="TP_PROP_CONNECTION_INTERFACE_ANONYMITY_ANONYMITY_MANDATORY" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-ANONYMITY-ANONYMITY-MANDATORY:CAPS"/>
662 <function name="TP_PROP_CONNECTION_INTERFACE_ANONYMITY_ANONYMITY_MODES" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-ANONYMITY-ANONYMITY-MODES:CAPS"/>
663 <function name="TP_PROP_CONNECTION_INTERFACE_ANONYMITY_SUPPORTED_ANONYMITY_MODES" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-ANONYMITY-SUPPORTED-ANONYMITY-MODES:CAPS"/>
664 <function name="TP_PROP_CONNECTION_INTERFACE_AVATARS_MAXIMUM_AVATAR_BYTES" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-AVATARS-MAXIMUM-AVATAR-BYTES:CAPS"/>
665 <function name="TP_PROP_CONNECTION_INTERFACE_AVATARS_MAXIMUM_AVATAR_HEIGHT" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-AVATARS-MAXIMUM-AVATAR-HEIGHT:CAPS"/>
666 <function name="TP_PROP_CONNECTION_INTERFACE_AVATARS_MAXIMUM_AVATAR_WIDTH" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-AVATARS-MAXIMUM-AVATAR-WIDTH:CAPS"/>
667 <function name="TP_PROP_CONNECTION_INTERFACE_AVATARS_MINIMUM_AVATAR_HEIGHT" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-AVATARS-MINIMUM-AVATAR-HEIGHT:CAPS"/>
668 <function name="TP_PROP_CONNECTION_INTERFACE_AVATARS_MINIMUM_AVATAR_WIDTH" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-AVATARS-MINIMUM-AVATAR-WIDTH:CAPS"/>
669 <function name="TP_PROP_CONNECTION_INTERFACE_AVATARS_RECOMMENDED_AVATAR_HEIGHT" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-AVATARS-RECOMMENDED-AVATAR-HEIGHT:CAPS"/>
670 <function name="TP_PROP_CONNECTION_INTERFACE_AVATARS_RECOMMENDED_AVATAR_WIDTH" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-AVATARS-RECOMMENDED-AVATAR-WIDTH:CAPS"/>
671 <function name="TP_PROP_CONNECTION_INTERFACE_AVATARS_SUPPORTED_AVATAR_MIME_TYPES" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-AVATARS-SUPPORTED-AVATAR-MIME-TYPES:CAPS"/>
672 <function name="TP_PROP_CONNECTION_INTERFACE_BALANCE_ACCOUNT_BALANCE" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-BALANCE-ACCOUNT-BALANCE:CAPS"/>
673 <function name="TP_PROP_CONNECTION_INTERFACE_BALANCE_MANAGE_CREDIT_URI" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-BALANCE-MANAGE-CREDIT-URI:CAPS"/>
674 <function name="TP_PROP_CONNECTION_INTERFACE_CELLULAR_IMSI" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-CELLULAR-IMSI:CAPS"/>
675 <function name="TP_PROP_CONNECTION_INTERFACE_CELLULAR_MESSAGE_NATIONAL_CHARACTER_SET" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-CELLULAR-MESSAGE-NATIONAL-CHARACTER-SET:CAPS"/>
676 <function name="TP_PROP_CONNECTION_INTERFACE_CELLULAR_MESSAGE_REDUCED_CHARACTER_SET" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-CELLULAR-MESSAGE-REDUCED-CHARACTER-SET:CAPS"/>
677 <function name="TP_PROP_CONNECTION_INTERFACE_CELLULAR_MESSAGE_SERVICE_CENTRE" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-CELLULAR-MESSAGE-SERVICE-CENTRE:CAPS"/>
678 <function name="TP_PROP_CONNECTION_INTERFACE_CELLULAR_MESSAGE_VALIDITY_PERIOD" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-CELLULAR-MESSAGE-VALIDITY-PERIOD:CAPS"/>
679 <function name="TP_PROP_CONNECTION_INTERFACE_CELLULAR_OVERRIDE_MESSAGE_SERVICE_CENTRE" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-CELLULAR-OVERRIDE-MESSAGE-SERVICE-CENTRE:CAPS"/>
680 <function name="TP_PROP_CONNECTION_INTERFACE_CONTACTS_CONTACT_ATTRIBUTE_INTERFACES" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-CONTACTS-CONTACT-ATTRIBUTE-INTERFACES:CAPS"/>
681 <function name="TP_PROP_CONNECTION_INTERFACE_CONTACT_BLOCKING_CONTACT_BLOCKING_CAPABILITIES" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-CONTACT-BLOCKING-CONTACT-BLOCKING-CAPABILITIES:CAPS"/>
682 <function name="TP_PROP_CONNECTION_INTERFACE_CONTACT_GROUPS_DISJOINT_GROUPS" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-CONTACT-GROUPS-DISJOINT-GROUPS:CAPS"/>
683 <function name="TP_PROP_CONNECTION_INTERFACE_CONTACT_GROUPS_GROUPS" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-CONTACT-GROUPS-GROUPS:CAPS"/>
684 <function name="TP_PROP_CONNECTION_INTERFACE_CONTACT_GROUPS_GROUP_STORAGE" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-CONTACT-GROUPS-GROUP-STORAGE:CAPS"/>
685 <function name="TP_PROP_CONNECTION_INTERFACE_CONTACT_INFO_CONTACT_INFO_FLAGS" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-CONTACT-INFO-CONTACT-INFO-FLAGS:CAPS"/>
686 <function name="TP_PROP_CONNECTION_INTERFACE_CONTACT_INFO_SUPPORTED_FIELDS" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-CONTACT-INFO-SUPPORTED-FIELDS:CAPS"/>
687 <function name="TP_PROP_CONNECTION_INTERFACE_CONTACT_LIST_CAN_CHANGE_CONTACT_LIST" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-CONTACT-LIST-CAN-CHANGE-CONTACT-LIST:CAPS"/>
688 <function name="TP_PROP_CONNECTION_INTERFACE_CONTACT_LIST_REQUEST_USES_MESSAGE" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-CONTACT-LIST-REQUEST-USES-MESSAGE:CAPS"/>
689 <function name="TP_PROP_CONNECTION_INTERFACE_CONTACT_LIST_CONTACT_LIST_PERSISTS" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-CONTACT-LIST-CONTACT-LIST-PERSISTS:CAPS"/>
690 <function name="TP_PROP_CONNECTION_INTERFACE_CONTACT_LIST_CONTACT_LIST_STATE" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-CONTACT-LIST-CONTACT-LIST-STATE:CAPS"/>
691 <function name="TP_PROP_CONNECTION_INTERFACE_LOCATION_LOCATION_ACCESS_CONTROL" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-LOCATION-LOCATION-ACCESS-CONTROL:CAPS"/>
692 <function name="TP_PROP_CONNECTION_INTERFACE_LOCATION_LOCATION_ACCESS_CONTROL_TYPES" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-LOCATION-LOCATION-ACCESS-CONTROL-TYPES:CAPS"/>
693 <function name="TP_PROP_CONNECTION_INTERFACE_LOCATION_SUPPORTED_LOCATION_FEATURES" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-LOCATION-SUPPORTED-LOCATION-FEATURES:CAPS"/>
694 <function name="TP_PROP_CONNECTION_INTERFACE_MAIL_NOTIFICATION_MAIL_ADDRESS" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-MAIL-NOTIFICATION-MAIL-ADDRESS:CAPS"/>
695 <function name="TP_PROP_CONNECTION_INTERFACE_MAIL_NOTIFICATION_MAIL_NOTIFICATION_FLAGS" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-MAIL-NOTIFICATION-MAIL-NOTIFICATION-FLAGS:CAPS"/>
696 <function name="TP_PROP_CONNECTION_INTERFACE_MAIL_NOTIFICATION_UNREAD_MAILS" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-MAIL-NOTIFICATION-UNREAD-MAILS:CAPS"/>
697 <function name="TP_PROP_CONNECTION_INTERFACE_MAIL_NOTIFICATION_UNREAD_MAIL_COUNT" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-MAIL-NOTIFICATION-UNREAD-MAIL-COUNT:CAPS"/>
698 <function name="TP_PROP_CONNECTION_INTERFACE_POWER_SAVING_POWER_SAVING_ACTIVE" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-POWER-SAVING-POWER-SAVING-ACTIVE:CAPS"/>
699 <function name="TP_PROP_CONNECTION_INTERFACE_REQUESTS_CHANNELS" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-REQUESTS-CHANNELS:CAPS"/>
700 <function name="TP_PROP_CONNECTION_INTERFACE_REQUESTS_REQUESTABLE_CHANNEL_CLASSES" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-REQUESTS-REQUESTABLE-CHANNEL-CLASSES:CAPS"/>
701 <function name="TP_PROP_CONNECTION_INTERFACE_SERVICE_POINT_KNOWN_SERVICE_POINTS" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-SERVICE-POINT-KNOWN-SERVICE-POINTS:CAPS"/>
702 <function name="TP_PROP_CONNECTION_INTERFACE_SIMPLE_PRESENCE_STATUSES" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-SIMPLE-PRESENCE-STATUSES:CAPS"/>
703 <function name="TP_PROP_CONNECTION_INTERFACE_SIMPLE_PRESENCE_MAXIMUM_STATUS_MESSAGE_LENGTH" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACE-SIMPLE-PRESENCE-MAXIMUM-STATUS-MESSAGE-LENGTH:CAPS"/>
704 <function name="TP_PROP_CONNECTION_MANAGER_INTERFACES" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-MANAGER-INTERFACES:CAPS"/>
705 <function name="TP_PROP_CONNECTION_MANAGER_PROTOCOLS" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-MANAGER-PROTOCOLS:CAPS"/>
706 <function name="TP_PROP_CONNECTION_INTERFACES" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-INTERFACES:CAPS"/>
707 <function name="TP_PROP_CONNECTION_SELF_HANDLE" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-SELF-HANDLE:CAPS"/>
708 <function name="TP_PROP_CONNECTION_STATUS" link="telepathy-glib-interfaces.html#TP-PROP-CONNECTION-STATUS:CAPS"/>
709 <function name="TP_PROP_DEBUG_ENABLED" link="telepathy-glib-interfaces.html#TP-PROP-DEBUG-ENABLED:CAPS"/>
710 <function name="TP_PROP_MEDIA_STREAM_HANDLER_CREATED_LOCALLY" link="telepathy-glib-interfaces.html#TP-PROP-MEDIA-STREAM-HANDLER-CREATED-LOCALLY:CAPS"/>
711 <function name="TP_PROP_MEDIA_STREAM_HANDLER_NAT_TRAVERSAL" link="telepathy-glib-interfaces.html#TP-PROP-MEDIA-STREAM-HANDLER-NAT-TRAVERSAL:CAPS"/>
712 <function name="TP_PROP_MEDIA_STREAM_HANDLER_RELAY_INFO" link="telepathy-glib-interfaces.html#TP-PROP-MEDIA-STREAM-HANDLER-RELAY-INFO:CAPS"/>
713 <function name="TP_PROP_MEDIA_STREAM_HANDLER_STUN_SERVERS" link="telepathy-glib-interfaces.html#TP-PROP-MEDIA-STREAM-HANDLER-STUN-SERVERS:CAPS"/>
714 <function name="TP_PROP_PROTOCOL_AUTHENTICATION_TYPES" link="telepathy-glib-interfaces.html#TP-PROP-PROTOCOL-AUTHENTICATION-TYPES:CAPS"/>
715 <function name="TP_PROP_PROTOCOL_CONNECTION_INTERFACES" link="telepathy-glib-interfaces.html#TP-PROP-PROTOCOL-CONNECTION-INTERFACES:CAPS"/>
716 <function name="TP_PROP_PROTOCOL_ENGLISH_NAME" link="telepathy-glib-interfaces.html#TP-PROP-PROTOCOL-ENGLISH-NAME:CAPS"/>
717 <function name="TP_PROP_PROTOCOL_ICON" link="telepathy-glib-interfaces.html#TP-PROP-PROTOCOL-ICON:CAPS"/>
718 <function name="TP_PROP_PROTOCOL_INTERFACE_AVATARS_MAXIMUM_AVATAR_BYTES" link="telepathy-glib-interfaces.html#TP-PROP-PROTOCOL-INTERFACE-AVATARS-MAXIMUM-AVATAR-BYTES:CAPS"/>
719 <function name="TP_PROP_PROTOCOL_INTERFACE_AVATARS_MAXIMUM_AVATAR_HEIGHT" link="telepathy-glib-interfaces.html#TP-PROP-PROTOCOL-INTERFACE-AVATARS-MAXIMUM-AVATAR-HEIGHT:CAPS"/>
720 <function name="TP_PROP_PROTOCOL_INTERFACE_AVATARS_MAXIMUM_AVATAR_WIDTH" link="telepathy-glib-interfaces.html#TP-PROP-PROTOCOL-INTERFACE-AVATARS-MAXIMUM-AVATAR-WIDTH:CAPS"/>
721 <function name="TP_PROP_PROTOCOL_INTERFACE_AVATARS_MINIMUM_AVATAR_HEIGHT" link="telepathy-glib-interfaces.html#TP-PROP-PROTOCOL-INTERFACE-AVATARS-MINIMUM-AVATAR-HEIGHT:CAPS"/>
722 <function name="TP_PROP_PROTOCOL_INTERFACE_AVATARS_MINIMUM_AVATAR_WIDTH" link="telepathy-glib-interfaces.html#TP-PROP-PROTOCOL-INTERFACE-AVATARS-MINIMUM-AVATAR-WIDTH:CAPS"/>
723 <function name="TP_PROP_PROTOCOL_INTERFACE_AVATARS_RECOMMENDED_AVATAR_HEIGHT" link="telepathy-glib-interfaces.html#TP-PROP-PROTOCOL-INTERFACE-AVATARS-RECOMMENDED-AVATAR-HEIGHT:CAPS"/>
724 <function name="TP_PROP_PROTOCOL_INTERFACE_AVATARS_RECOMMENDED_AVATAR_WIDTH" link="telepathy-glib-interfaces.html#TP-PROP-PROTOCOL-INTERFACE-AVATARS-RECOMMENDED-AVATAR-WIDTH:CAPS"/>
725 <function name="TP_PROP_PROTOCOL_INTERFACE_AVATARS_SUPPORTED_AVATAR_MIME_TYPES" link="telepathy-glib-interfaces.html#TP-PROP-PROTOCOL-INTERFACE-AVATARS-SUPPORTED-AVATAR-MIME-TYPES:CAPS"/>
726 <function name="TP_PROP_PROTOCOL_INTERFACE_PRESENCE_STATUSES" link="telepathy-glib-interfaces.html#TP-PROP-PROTOCOL-INTERFACE-PRESENCE-STATUSES:CAPS"/>
727 <function name="TP_PROP_PROTOCOL_INTERFACES" link="telepathy-glib-interfaces.html#TP-PROP-PROTOCOL-INTERFACES:CAPS"/>
728 <function name="TP_PROP_PROTOCOL_PARAMETERS" link="telepathy-glib-interfaces.html#TP-PROP-PROTOCOL-PARAMETERS:CAPS"/>
729 <function name="TP_PROP_PROTOCOL_REQUESTABLE_CHANNEL_CLASSES" link="telepathy-glib-interfaces.html#TP-PROP-PROTOCOL-REQUESTABLE-CHANNEL-CLASSES:CAPS"/>
730 <function name="TP_PROP_PROTOCOL_VCARD_FIELD" link="telepathy-glib-interfaces.html#TP-PROP-PROTOCOL-VCARD-FIELD:CAPS"/>
731 <function name="TP_TOKEN_CONNECTION_CONTACT_ID" link="telepathy-glib-interfaces.html#TP-TOKEN-CONNECTION-CONTACT-ID:CAPS"/>
732 <function name="TP_TOKEN_CONNECTION_INTERFACE_ALIASING_ALIAS" link="telepathy-glib-interfaces.html#TP-TOKEN-CONNECTION-INTERFACE-ALIASING-ALIAS:CAPS"/>
733 <function name="TP_TOKEN_CONNECTION_INTERFACE_AVATARS_TOKEN" link="telepathy-glib-interfaces.html#TP-TOKEN-CONNECTION-INTERFACE-AVATARS-TOKEN:CAPS"/>
734 <function name="TP_TOKEN_CONNECTION_INTERFACE_CAPABILITIES_CAPS" link="telepathy-glib-interfaces.html#TP-TOKEN-CONNECTION-INTERFACE-CAPABILITIES-CAPS"/>
735 <function name="TP_TOKEN_CONNECTION_INTERFACE_CLIENT_TYPES_CLIENT_TYPES" link="telepathy-glib-interfaces.html#TP-TOKEN-CONNECTION-INTERFACE-CLIENT-TYPES-CLIENT-TYPES:CAPS"/>
736 <function name="TP_TOKEN_CONNECTION_INTERFACE_CONTACT_BLOCKING_BLOCKED" link="telepathy-glib-interfaces.html#TP-TOKEN-CONNECTION-INTERFACE-CONTACT-BLOCKING-BLOCKED:CAPS"/>
737 <function name="TP_TOKEN_CONNECTION_INTERFACE_CONTACT_CAPABILITIES_CAPABILITIES" link="telepathy-glib-interfaces.html#TP-TOKEN-CONNECTION-INTERFACE-CONTACT-CAPABILITIES-CAPABILITIES:CAPS"/>
738 <function name="TP_TOKEN_CONNECTION_INTERFACE_CONTACT_GROUPS_GROUPS" link="telepathy-glib-interfaces.html#TP-TOKEN-CONNECTION-INTERFACE-CONTACT-GROUPS-GROUPS:CAPS"/>
739 <function name="TP_TOKEN_CONNECTION_INTERFACE_CONTACT_INFO_INFO" link="telepathy-glib-interfaces.html#TP-TOKEN-CONNECTION-INTERFACE-CONTACT-INFO-INFO:CAPS"/>
740 <function name="TP_TOKEN_CONNECTION_INTERFACE_CONTACT_LIST_PUBLISH" link="telepathy-glib-interfaces.html#TP-TOKEN-CONNECTION-INTERFACE-CONTACT-LIST-PUBLISH:CAPS"/>
741 <function name="TP_TOKEN_CONNECTION_INTERFACE_CONTACT_LIST_PUBLISH_REQUEST" link="telepathy-glib-interfaces.html#TP-TOKEN-CONNECTION-INTERFACE-CONTACT-LIST-PUBLISH-REQUEST:CAPS"/>
742 <function name="TP_TOKEN_CONNECTION_INTERFACE_CONTACT_LIST_SUBSCRIBE" link="telepathy-glib-interfaces.html#TP-TOKEN-CONNECTION-INTERFACE-CONTACT-LIST-SUBSCRIBE:CAPS"/>
743 <function name="TP_TOKEN_CONNECTION_INTERFACE_SIMPLE_PRESENCE_PRESENCE" link="telepathy-glib-interfaces.html#TP-TOKEN-CONNECTION-INTERFACE-SIMPLE-PRESENCE-PRESENCE:CAPS"/>
744 <function name="TP_TOKEN_CONNECTION_INTERFACE_LOCATION_LOCATION" link="telepathy-glib-interfaces.html#TP-TOKEN-CONNECTION-INTERFACE-LOCATION-LOCATION:CAPS"/>
745 <function name="TP_TOKEN_CHANNEL_INTERFACE_MEDIA_SIGNALLING_GTALK_P2P" link="telepathy-glib-interfaces.html#TP-TOKEN-CHANNEL-INTERFACE-MEDIA-SIGNALLING-GTALK-P2P:CAPS"/>
746 <function name="TP_TOKEN_CHANNEL_INTERFACE_MEDIA_SIGNALLING_ICE_UDP" link="telepathy-glib-interfaces.html#TP-TOKEN-CHANNEL-INTERFACE-MEDIA-SIGNALLING-ICE-UDP:CAPS"/>
747 <function name="TP_TOKEN_CHANNEL_INTERFACE_MEDIA_SIGNALLING_WLM_8_5" link="telepathy-glib-interfaces.html#TP-TOKEN-CHANNEL-INTERFACE-MEDIA-SIGNALLING-WLM-8-5:CAPS"/>
748 <function name="TP_TOKEN_CHANNEL_INTERFACE_MEDIA_SIGNALLING_WLM_2009" link="telepathy-glib-interfaces.html#TP-TOKEN-CHANNEL-INTERFACE-MEDIA-SIGNALLING-WLM-2009:CAPS"/>
749 <function name="enum TpHandleType" link="telepathy-glib-enums.html#TpHandleType"/>
750 <function name="NUM_TP_HANDLE_TYPES" link="telepathy-glib-enums.html#NUM-TP-HANDLE-TYPES:CAPS"/>
751 <function name="enum TpConnMgrParamFlags" link="telepathy-glib-enums.html#TpConnMgrParamFlags"/>
752 <function name="enum TpConnectionStatus" link="telepathy-glib-enums.html#TpConnectionStatus"/>
753 <function name="NUM_TP_CONNECTION_STATUSES" link="telepathy-glib-enums.html#NUM-TP-CONNECTION-STATUSES:CAPS"/>
754 <function name="enum TpConnectionStatusReason" link="telepathy-glib-enums.html#TpConnectionStatusReason"/>
755 <function name="NUM_TP_CONNECTION_STATUS_REASONS" link="telepathy-glib-enums.html#NUM-TP-CONNECTION-STATUS-REASONS:CAPS"/>
756 <function name="enum TpConnectionAliasFlags" link="telepathy-glib-enums.html#TpConnectionAliasFlags"/>
757 <function name="enum TpConnectionCapabilityFlags" link="telepathy-glib-enums.html#TpConnectionCapabilityFlags"/>
758 <function name="enum TpConnectionPresenceType" link="telepathy-glib-enums.html#TpConnectionPresenceType"/>
759 <function name="NUM_TP_CONNECTION_PRESENCE_TYPES" link="telepathy-glib-enums.html#NUM-TP-CONNECTION-PRESENCE-TYPES:CAPS"/>
760 <function name="enum TpDTMFEvent" link="telepathy-glib-enums.html#TpDTMFEvent"/>
761 <function name="NUM_TP_DTMF_EVENTS" link="telepathy-glib-enums.html#NUM-TP-DTMF-EVENTS:CAPS"/>
762 <function name="tp_dtmf_event_to_char ()" link="telepathy-glib-enums.html#tp-dtmf-event-to-char"/>
763 <function name="enum TpMediaStreamType" link="telepathy-glib-enums.html#TpMediaStreamType"/>
764 <function name="NUM_TP_MEDIA_STREAM_TYPES" link="telepathy-glib-enums.html#NUM-TP-MEDIA-STREAM-TYPES:CAPS"/>
765 <function name="enum TpMediaStreamState" link="telepathy-glib-enums.html#TpMediaStreamState"/>
766 <function name="NUM_TP_MEDIA_STREAM_STATES" link="telepathy-glib-enums.html#NUM-TP-MEDIA-STREAM-STATES:CAPS"/>
767 <function name="enum TpMediaStreamDirection" link="telepathy-glib-enums.html#TpMediaStreamDirection"/>
768 <function name="NUM_TP_MEDIA_STREAM_DIRECTIONS" link="telepathy-glib-enums.html#NUM-TP-MEDIA-STREAM-DIRECTIONS:CAPS"/>
769 <function name="enum TpMediaStreamPendingSend" link="telepathy-glib-enums.html#TpMediaStreamPendingSend"/>
770 <function name="enum TpChannelMediaCapabilities" link="telepathy-glib-enums.html#TpChannelMediaCapabilities"/>
771 <function name="enum TpChannelTextSendError" link="telepathy-glib-enums.html#TpChannelTextSendError"/>
772 <function name="NUM_TP_CHANNEL_TEXT_SEND_ERRORS" link="telepathy-glib-enums.html#NUM-TP-CHANNEL-TEXT-SEND-ERRORS:CAPS"/>
773 <function name="enum TpChannelTextMessageType" link="telepathy-glib-enums.html#TpChannelTextMessageType"/>
774 <function name="NUM_TP_CHANNEL_TEXT_MESSAGE_TYPES" link="telepathy-glib-enums.html#NUM-TP-CHANNEL-TEXT-MESSAGE-TYPES:CAPS"/>
775 <function name="enum TpChannelTextMessageFlags" link="telepathy-glib-enums.html#TpChannelTextMessageFlags"/>
776 <function name="enum TpChannelChatState" link="telepathy-glib-enums.html#TpChannelChatState"/>
777 <function name="NUM_TP_CHANNEL_CHAT_STATES" link="telepathy-glib-enums.html#NUM-TP-CHANNEL-CHAT-STATES:CAPS"/>
778 <function name="enum TpChannelGroupFlags" link="telepathy-glib-enums.html#TpChannelGroupFlags"/>
779 <function name="enum TpChannelGroupChangeReason" link="telepathy-glib-enums.html#TpChannelGroupChangeReason"/>
780 <function name="NUM_TP_CHANNEL_GROUP_CHANGE_REASONS" link="telepathy-glib-enums.html#NUM-TP-CHANNEL-GROUP-CHANGE-REASONS:CAPS"/>
781 <function name="enum TpChannelPasswordFlags" link="telepathy-glib-enums.html#TpChannelPasswordFlags"/>
782 <function name="enum TpContactBlockingCapabilities" link="telepathy-glib-enums.html#TpContactBlockingCapabilities"/>
783 <function name="enum TpDeliveryReportingSupportFlags" link="telepathy-glib-enums.html#TpDeliveryReportingSupportFlags"/>
784 <function name="enum TpDeliveryStatus" link="telepathy-glib-enums.html#TpDeliveryStatus"/>
785 <function name="NUM_TP_DELIVERY_STATUSES" link="telepathy-glib-enums.html#NUM-TP-DELIVERY-STATUSES:CAPS"/>
786 <function name="enum TpMediaStreamError" link="telepathy-glib-enums.html#TpMediaStreamError"/>
787 <function name="NUM_TP_MEDIA_STREAM_ERRORS" link="telepathy-glib-enums.html#NUM-TP-MEDIA-STREAM-ERRORS:CAPS"/>
788 <function name="enum TpMediaStreamBaseProto" link="telepathy-glib-enums.html#TpMediaStreamBaseProto"/>
789 <function name="NUM_TP_MEDIA_STREAM_BASE_PROTOS" link="telepathy-glib-enums.html#NUM-TP-MEDIA-STREAM-BASE-PROTOS:CAPS"/>
790 <function name="enum TpMediaStreamTransportType" link="telepathy-glib-enums.html#TpMediaStreamTransportType"/>
791 <function name="NUM_TP_MEDIA_STREAM_TRANSPORT_TYPES" link="telepathy-glib-enums.html#NUM-TP-MEDIA-STREAM-TRANSPORT-TYPES:CAPS"/>
792 <function name="enum TpPropertyFlags" link="telepathy-glib-enums.html#TpPropertyFlags"/>
793 <function name="enum TpMessagePartSupportFlags" link="telepathy-glib-enums.html#TpMessagePartSupportFlags"/>
794 <function name="enum TpMessageSendingFlags" link="telepathy-glib-enums.html#TpMessageSendingFlags"/>
795 <function name="NUM_TP_SOCKET_ACCESS_CONTROLS" link="telepathy-glib-enums.html#NUM-TP-SOCKET-ACCESS-CONTROLS:CAPS"/>
796 <function name="enum TpSocketAccessControl" link="telepathy-glib-enums.html#TpSocketAccessControl"/>
797 <function name="NUM_TP_SOCKET_ADDRESS_TYPES" link="telepathy-glib-enums.html#NUM-TP-SOCKET-ADDRESS-TYPES:CAPS"/>
798 <function name="enum TpSocketAddressType" link="telepathy-glib-enums.html#TpSocketAddressType"/>
799 <function name="NUM_TP_TUBE_STATES" link="telepathy-glib-enums.html#NUM-TP-TUBE-STATES:CAPS"/>
800 <function name="enum TpTubeState" link="telepathy-glib-enums.html#TpTubeState"/>
801 <function name="NUM_TP_TUBE_TYPES" link="telepathy-glib-enums.html#NUM-TP-TUBE-TYPES:CAPS"/>
802 <function name="enum TpTubeType" link="telepathy-glib-enums.html#TpTubeType"/>
803 <function name="enum TpChannelCallStateFlags" link="telepathy-glib-enums.html#TpChannelCallStateFlags"/>
804 <function name="NUM_TP_LOCAL_HOLD_STATES" link="telepathy-glib-enums.html#NUM-TP-LOCAL-HOLD-STATES:CAPS"/>
805 <function name="enum TpLocalHoldState" link="telepathy-glib-enums.html#TpLocalHoldState"/>
806 <function name="NUM_TP_LOCAL_HOLD_STATE_REASONS" link="telepathy-glib-enums.html#NUM-TP-LOCAL-HOLD-STATE-REASONS:CAPS"/>
807 <function name="enum TpLocalHoldStateReason" link="telepathy-glib-enums.html#TpLocalHoldStateReason"/>
808 <function name="enum TpAccessControlType" link="telepathy-glib-enums.html#TpAccessControlType"/>
809 <function name="NUM_TP_ACCESS_CONTROL_TYPES" link="telepathy-glib-enums.html#NUM-TP-ACCESS-CONTROL-TYPES:CAPS"/>
810 <function name="enum TpRichPresenceAccessControlType" link="telepathy-glib-enums.html#TpRichPresenceAccessControlType"/>
811 <function name="NUM_TP_RICH_PRESENCE_ACCESS_CONTROL_TYPES" link="telepathy-glib-enums.html#NUM-TP-RICH-PRESENCE-ACCESS-CONTROL-TYPES:CAPS"/>
812 <function name="enum TpFileHashType" link="telepathy-glib-enums.html#TpFileHashType"/>
813 <function name="NUM_TP_FILE_HASH_TYPES" link="telepathy-glib-enums.html#NUM-TP-FILE-HASH-TYPES:CAPS"/>
814 <function name="enum TpFileTransferState" link="telepathy-glib-enums.html#TpFileTransferState"/>
815 <function name="NUM_TP_FILE_TRANSFER_STATES" link="telepathy-glib-enums.html#NUM-TP-FILE-TRANSFER-STATES:CAPS"/>
816 <function name="enum TpFileTransferStateChangeReason" link="telepathy-glib-enums.html#TpFileTransferStateChangeReason"/>
817 <function name="NUM_TP_FILE_TRANSFER_STATE_CHANGE_REASONS" link="telepathy-glib-enums.html#NUM-TP-FILE-TRANSFER-STATE-CHANGE-REASONS:CAPS"/>
818 <function name="enum TpTubeChannelState" link="telepathy-glib-enums.html#TpTubeChannelState"/>
819 <function name="NUM_TP_TUBE_CHANNEL_STATES" link="telepathy-glib-enums.html#NUM-TP-TUBE-CHANNEL-STATES:CAPS"/>
820 <function name="enum TpDebugLevel" link="telepathy-glib-enums.html#TpDebugLevel"/>
821 <function name="NUM_TP_DEBUG_LEVELS" link="telepathy-glib-enums.html#NUM-TP-DEBUG-LEVELS:CAPS"/>
822 <function name="enum TpContactInfoFlags" link="telepathy-glib-enums.html#TpContactInfoFlags"/>
823 <function name="enum TpContactInfoFieldFlags" link="telepathy-glib-enums.html#TpContactInfoFieldFlags"/>
824 <function name="enum TpLocationFeatures" link="telepathy-glib-enums.html#TpLocationFeatures"/>
825 <function name="enum TpServicePointType" link="telepathy-glib-enums.html#TpServicePointType"/>
826 <function name="NUM_TP_SERVICE_POINT_TYPES" link="telepathy-glib-enums.html#NUM-TP-SERVICE-POINT-TYPES:CAPS"/>
827 <function name="enum TpAnonymityModeFlags" link="telepathy-glib-enums.html#TpAnonymityModeFlags"/>
828 <function name="enum TpStorageRestrictionFlags" link="telepathy-glib-enums.html#TpStorageRestrictionFlags"/>
829 <function name="enum TpTLSCertificateRejectReason" link="telepathy-glib-enums.html#TpTLSCertificateRejectReason"/>
830 <function name="NUM_TP_TLS_CERTIFICATE_REJECT_REASONS" link="telepathy-glib-enums.html#NUM-TP-TLS-CERTIFICATE-REJECT-REASONS:CAPS"/>
831 <function name="enum TpTLSCertificateState" link="telepathy-glib-enums.html#TpTLSCertificateState"/>
832 <function name="NUM_TP_TLS_CERTIFICATE_STATES" link="telepathy-glib-enums.html#NUM-TP-TLS-CERTIFICATE-STATES:CAPS"/>
833 <function name="enum TpContactMetadataStorageType" link="telepathy-glib-enums.html#TpContactMetadataStorageType"/>
834 <function name="NUM_TP_CONTACT_METADATA_STORAGE_TYPES" link="telepathy-glib-enums.html#NUM-TP-CONTACT-METADATA-STORAGE-TYPES:CAPS"/>
835 <function name="enum TpSubscriptionState" link="telepathy-glib-enums.html#TpSubscriptionState"/>
836 <function name="NUM_TP_SUBSCRIPTION_STATES" link="telepathy-glib-enums.html#NUM-TP-SUBSCRIPTION-STATES:CAPS"/>
837 <function name="enum TpContactListState" link="telepathy-glib-enums.html#TpContactListState"/>
838 <function name="NUM_TP_CONTACT_LIST_STATES" link="telepathy-glib-enums.html#NUM-TP-CONTACT-LIST-STATES:CAPS"/>
839 <function name="enum TpHTTPMethod" link="telepathy-glib-enums.html#TpHTTPMethod"/>
840 <function name="NUM_TP_HTTP_METHODS" link="telepathy-glib-enums.html#NUM-TP-HTTP-METHODS:CAPS"/>
841 <function name="enum TpMailNotificationFlags" link="telepathy-glib-enums.html#TpMailNotificationFlags"/>
842 <function name="enum TpSASLAbortReason" link="telepathy-glib-enums.html#TpSASLAbortReason"/>
843 <function name="NUM_TP_SASL_ABORT_REASONS" link="telepathy-glib-enums.html#NUM-TP-SASL-ABORT-REASONS:CAPS"/>
844 <function name="enum TpSASLStatus" link="telepathy-glib-enums.html#TpSASLStatus"/>
845 <function name="NUM_TP_SASL_STATUSES" link="telepathy-glib-enums.html#NUM-TP-SASL-STATUSES:CAPS"/>
846 <function name="TP_ERROR_PREFIX" link="telepathy-glib-errors.html#TP-ERROR-PREFIX:CAPS"/>
847 <function name="TP_ERROR" link="telepathy-glib-errors.html#TP-ERROR:CAPS"/>
848 <function name="TP_TYPE_ERROR" link="telepathy-glib-errors.html#TP-TYPE-ERROR:CAPS"/>
849 <function name="enum TpError" link="telepathy-glib-errors.html#TpError"/>
850 <function name="tp_g_set_error_invalid_handle_type ()" link="telepathy-glib-errors.html#tp-g-set-error-invalid-handle-type"/>
851 <function name="tp_g_set_error_unsupported_handle_type ()" link="telepathy-glib-errors.html#tp-g-set-error-unsupported-handle-type"/>
852 <function name="tp_error_get_dbus_name ()" link="telepathy-glib-errors.html#tp-error-get-dbus-name"/>
853 <function name="TP_ERROR_STR_NETWORK_ERROR" link="telepathy-glib-errors.html#TP-ERROR-STR-NETWORK-ERROR:CAPS"/>
854 <function name="TP_ERROR_STR_NOT_IMPLEMENTED" link="telepathy-glib-errors.html#TP-ERROR-STR-NOT-IMPLEMENTED:CAPS"/>
855 <function name="TP_ERROR_STR_INVALID_ARGUMENT" link="telepathy-glib-errors.html#TP-ERROR-STR-INVALID-ARGUMENT:CAPS"/>
856 <function name="TP_ERROR_STR_NOT_AVAILABLE" link="telepathy-glib-errors.html#TP-ERROR-STR-NOT-AVAILABLE:CAPS"/>
857 <function name="TP_ERROR_STR_PERMISSION_DENIED" link="telepathy-glib-errors.html#TP-ERROR-STR-PERMISSION-DENIED:CAPS"/>
858 <function name="TP_ERROR_STR_DISCONNECTED" link="telepathy-glib-errors.html#TP-ERROR-STR-DISCONNECTED:CAPS"/>
859 <function name="TP_ERROR_STR_INVALID_HANDLE" link="telepathy-glib-errors.html#TP-ERROR-STR-INVALID-HANDLE:CAPS"/>
860 <function name="TP_ERROR_STR_CHANNEL_BANNED" link="telepathy-glib-errors.html#TP-ERROR-STR-CHANNEL-BANNED:CAPS"/>
861 <function name="TP_ERROR_STR_CHANNEL_FULL" link="telepathy-glib-errors.html#TP-ERROR-STR-CHANNEL-FULL:CAPS"/>
862 <function name="TP_ERROR_STR_CHANNEL_INVITE_ONLY" link="telepathy-glib-errors.html#TP-ERROR-STR-CHANNEL-INVITE-ONLY:CAPS"/>
863 <function name="TP_ERROR_STR_NOT_YOURS" link="telepathy-glib-errors.html#TP-ERROR-STR-NOT-YOURS:CAPS"/>
864 <function name="TP_ERROR_STR_CANCELLED" link="telepathy-glib-errors.html#TP-ERROR-STR-CANCELLED:CAPS"/>
865 <function name="TP_ERROR_STR_AUTHENTICATION_FAILED" link="telepathy-glib-errors.html#TP-ERROR-STR-AUTHENTICATION-FAILED:CAPS"/>
866 <function name="TP_ERROR_STR_ENCRYPTION_NOT_AVAILABLE" link="telepathy-glib-errors.html#TP-ERROR-STR-ENCRYPTION-NOT-AVAILABLE:CAPS"/>
867 <function name="TP_ERROR_STR_ENCRYPTION_ERROR" link="telepathy-glib-errors.html#TP-ERROR-STR-ENCRYPTION-ERROR:CAPS"/>
868 <function name="TP_ERROR_STR_CERT_NOT_PROVIDED" link="telepathy-glib-errors.html#TP-ERROR-STR-CERT-NOT-PROVIDED:CAPS"/>
869 <function name="TP_ERROR_STR_CERT_UNTRUSTED" link="telepathy-glib-errors.html#TP-ERROR-STR-CERT-UNTRUSTED:CAPS"/>
870 <function name="TP_ERROR_STR_CERT_EXPIRED" link="telepathy-glib-errors.html#TP-ERROR-STR-CERT-EXPIRED:CAPS"/>
871 <function name="TP_ERROR_STR_CERT_NOT_ACTIVATED" link="telepathy-glib-errors.html#TP-ERROR-STR-CERT-NOT-ACTIVATED:CAPS"/>
872 <function name="TP_ERROR_STR_CERT_FINGERPRINT_MISMATCH" link="telepathy-glib-errors.html#TP-ERROR-STR-CERT-FINGERPRINT-MISMATCH:CAPS"/>
873 <function name="TP_ERROR_STR_CERT_HOSTNAME_MISMATCH" link="telepathy-glib-errors.html#TP-ERROR-STR-CERT-HOSTNAME-MISMATCH:CAPS"/>
874 <function name="TP_ERROR_STR_CERT_SELF_SIGNED" link="telepathy-glib-errors.html#TP-ERROR-STR-CERT-SELF-SIGNED:CAPS"/>
875 <function name="TP_ERROR_STR_CERT_INVALID" link="telepathy-glib-errors.html#TP-ERROR-STR-CERT-INVALID:CAPS"/>
876 <function name="TP_ERROR_STR_NOT_CAPABLE" link="telepathy-glib-errors.html#TP-ERROR-STR-NOT-CAPABLE:CAPS"/>
877 <function name="TP_ERROR_STR_OFFLINE" link="telepathy-glib-errors.html#TP-ERROR-STR-OFFLINE:CAPS"/>
878 <function name="TP_ERROR_STR_CHANNEL_KICKED" link="telepathy-glib-errors.html#TP-ERROR-STR-CHANNEL-KICKED:CAPS"/>
879 <function name="TP_ERROR_STR_BUSY" link="telepathy-glib-errors.html#TP-ERROR-STR-BUSY:CAPS"/>
880 <function name="TP_ERROR_STR_NO_ANSWER" link="telepathy-glib-errors.html#TP-ERROR-STR-NO-ANSWER:CAPS"/>
881 <function name="TP_ERROR_STR_DOES_NOT_EXIST" link="telepathy-glib-errors.html#TP-ERROR-STR-DOES-NOT-EXIST:CAPS"/>
882 <function name="TP_ERROR_STR_TERMINATED" link="telepathy-glib-errors.html#TP-ERROR-STR-TERMINATED:CAPS"/>
883 <function name="TP_ERROR_STR_CONNECTION_REFUSED" link="telepathy-glib-errors.html#TP-ERROR-STR-CONNECTION-REFUSED:CAPS"/>
884 <function name="TP_ERROR_STR_CONNECTION_FAILED" link="telepathy-glib-errors.html#TP-ERROR-STR-CONNECTION-FAILED:CAPS"/>
885 <function name="TP_ERROR_STR_CONNECTION_LOST" link="telepathy-glib-errors.html#TP-ERROR-STR-CONNECTION-LOST:CAPS"/>
886 <function name="TP_ERROR_STR_ALREADY_CONNECTED" link="telepathy-glib-errors.html#TP-ERROR-STR-ALREADY-CONNECTED:CAPS"/>
887 <function name="TP_ERROR_STR_CONNECTION_REPLACED" link="telepathy-glib-errors.html#TP-ERROR-STR-CONNECTION-REPLACED:CAPS"/>
888 <function name="TP_ERROR_STR_REGISTRATION_EXISTS" link="telepathy-glib-errors.html#TP-ERROR-STR-REGISTRATION-EXISTS:CAPS"/>
889 <function name="TP_ERROR_STR_SERVICE_BUSY" link="telepathy-glib-errors.html#TP-ERROR-STR-SERVICE-BUSY:CAPS"/>
890 <function name="TP_ERROR_STR_RESOURCE_UNAVAILABLE" link="telepathy-glib-errors.html#TP-ERROR-STR-RESOURCE-UNAVAILABLE:CAPS"/>
891 <function name="TP_ERROR_STR_WOULD_BREAK_ANONYMITY" link="telepathy-glib-errors.html#TP-ERROR-STR-WOULD-BREAK-ANONYMITY:CAPS"/>
892 <function name="TP_ERROR_STR_CERT_REVOKED" link="telepathy-glib-errors.html#TP-ERROR-STR-CERT-REVOKED:CAPS"/>
893 <function name="TP_ERROR_STR_CERT_INSECURE" link="telepathy-glib-errors.html#TP-ERROR-STR-CERT-INSECURE:CAPS"/>
894 <function name="TP_ERROR_STR_CERT_LIMIT_EXCEEDED" link="telepathy-glib-errors.html#TP-ERROR-STR-CERT-LIMIT-EXCEEDED:CAPS"/>
895 <function name="TP_ERROR_STR_NOT_YET" link="telepathy-glib-errors.html#TP-ERROR-STR-NOT-YET:CAPS"/>
896 <function name="TP_ERROR_STR_REJECTED" link="telepathy-glib-errors.html#TP-ERROR-STR-REJECTED:CAPS"/>
897 <function name="TP_ERROR_STR_PICKED_UP_ELSEWHERE" link="telepathy-glib-errors.html#TP-ERROR-STR-PICKED-UP-ELSEWHERE:CAPS"/>
898 <function name="TP_ERROR_STR_CONFUSED" link="telepathy-glib-errors.html#TP-ERROR-STR-CONFUSED:CAPS"/>
899 <function name="TP_ERROR_STR_SERVICE_CONFUSED" link="telepathy-glib-errors.html#TP-ERROR-STR-SERVICE-CONFUSED:CAPS"/>
900 <function name="TP_ERROR_STR_SOFTWARE_UPGRADE_REQUIRED" link="telepathy-glib-errors.html#TP-ERROR-STR-SOFTWARE-UPGRADE-REQUIRED:CAPS"/>
901 <function name="TP_ERROR_STR_EMERGENCY_CALLS_NOT_SUPPORTED" link="telepathy-glib-errors.html#TP-ERROR-STR-EMERGENCY-CALLS-NOT-SUPPORTED:CAPS"/>
902 <function name="TP_ERROR_STR_INSUFFICIENT_BALANCE" link="telepathy-glib-errors.html#TP-ERROR-STR-INSUFFICIENT-BALANCE:CAPS"/>
903 <function name="tp_dbus_specialized_value_slice_new ()" link="telepathy-glib-gtypes.html#tp-dbus-specialized-value-slice-new"/>
904 <function name="TP_TYPE_UCHAR_ARRAY" link="telepathy-glib-gtypes.html#TP-TYPE-UCHAR-ARRAY:CAPS"/>
905 <function name="TP_ARRAY_TYPE_OBJECT_PATH_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-OBJECT-PATH-LIST:CAPS"/>
906 <function name="TP_ARRAY_TYPE_UCHAR_ARRAY_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-UCHAR-ARRAY-LIST:CAPS"/>
907 <function name="TP_HASH_TYPE_STRING_STRING_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-STRING-STRING-MAP:CAPS"/>
908 <function name="TP_ARRAY_TYPE_STRING_STRING_MAP_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-STRING-STRING-MAP-LIST:CAPS"/>
909 <function name="TP_HASH_TYPE_STRING_VARIANT_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-STRING-VARIANT-MAP:CAPS"/>
910 <function name="TP_ARRAY_TYPE_STRING_VARIANT_MAP_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-STRING-VARIANT-MAP-LIST:CAPS"/>
911 <function name="TP_HASH_TYPE_QUALIFIED_PROPERTY_VALUE_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-QUALIFIED-PROPERTY-VALUE-MAP:CAPS"/>
912 <function name="TP_ARRAY_TYPE_QUALIFIED_PROPERTY_VALUE_MAP_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-QUALIFIED-PROPERTY-VALUE-MAP-LIST:CAPS"/>
913 <function name="TP_STRUCT_TYPE_SOCKET_ADDRESS_IP" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-SOCKET-ADDRESS-IP:CAPS"/>
914 <function name="TP_ARRAY_TYPE_SOCKET_ADDRESS_IP_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-SOCKET-ADDRESS-IP-LIST:CAPS"/>
915 <function name="TP_STRUCT_TYPE_SOCKET_ADDRESS_IPV4" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-SOCKET-ADDRESS-IPV4:CAPS"/>
916 <function name="TP_STRUCT_TYPE_SOCKET_ADDRESS_IPV6" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-SOCKET-ADDRESS-IPV6:CAPS"/>
917 <function name="TP_STRUCT_TYPE_SOCKET_NETMASK_IPV4" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-SOCKET-NETMASK-IPV4:CAPS"/>
918 <function name="TP_STRUCT_TYPE_SOCKET_NETMASK_IPV6" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-SOCKET-NETMASK-IPV6:CAPS"/>
919 <function name="TP_HASH_TYPE_OBJECT_IMMUTABLE_PROPERTIES_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-OBJECT-IMMUTABLE-PROPERTIES-MAP:CAPS"/>
920 <function name="TP_ARRAY_TYPE_OBJECT_IMMUTABLE_PROPERTIES_MAP_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-OBJECT-IMMUTABLE-PROPERTIES-MAP-LIST:CAPS"/>
921 <function name="TP_STRUCT_TYPE_PARAM_SPEC" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-PARAM-SPEC:CAPS"/>
922 <function name="TP_ARRAY_TYPE_PARAM_SPEC_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-PARAM-SPEC-LIST:CAPS"/>
923 <function name="TP_HASH_TYPE_PROTOCOL_PROPERTIES_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-PROTOCOL-PROPERTIES-MAP:CAPS"/>
924 <function name="TP_STRUCT_TYPE_CHANNEL_INFO" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-CHANNEL-INFO:CAPS"/>
925 <function name="TP_ARRAY_TYPE_CHANNEL_INFO_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-CHANNEL-INFO-LIST:CAPS"/>
926 <function name="TP_HASH_TYPE_ALIAS_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-ALIAS-MAP:CAPS"/>
927 <function name="TP_STRUCT_TYPE_ALIAS_PAIR" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-ALIAS-PAIR:CAPS"/>
928 <function name="TP_ARRAY_TYPE_ALIAS_PAIR_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-ALIAS-PAIR-LIST:CAPS"/>
929 <function name="TP_HASH_TYPE_AVATAR_TOKEN_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-AVATAR-TOKEN-MAP:CAPS"/>
930 <function name="TP_STRUCT_TYPE_CURRENCY_AMOUNT" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-CURRENCY-AMOUNT:CAPS"/>
931 <function name="TP_HASH_TYPE_CONTACT_CAPABILITIES_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-CONTACT-CAPABILITIES-MAP:CAPS"/>
932 <function name="TP_ARRAY_TYPE_CONTACT_CAPABILITIES_MAP_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-CONTACT-CAPABILITIES-MAP-LIST:CAPS"/>
933 <function name="TP_STRUCT_TYPE_HANDLER_CAPABILITIES" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-HANDLER-CAPABILITIES:CAPS"/>
934 <function name="TP_ARRAY_TYPE_HANDLER_CAPABILITIES_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-HANDLER-CAPABILITIES-LIST:CAPS"/>
935 <function name="TP_STRUCT_TYPE_CAPABILITY_CHANGE" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-CAPABILITY-CHANGE:CAPS"/>
936 <function name="TP_ARRAY_TYPE_CAPABILITY_CHANGE_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-CAPABILITY-CHANGE-LIST:CAPS"/>
937 <function name="TP_STRUCT_TYPE_CAPABILITY_PAIR" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-CAPABILITY-PAIR:CAPS"/>
938 <function name="TP_ARRAY_TYPE_CAPABILITY_PAIR_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-CAPABILITY-PAIR-LIST:CAPS"/>
939 <function name="TP_STRUCT_TYPE_CONTACT_CAPABILITY" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-CONTACT-CAPABILITY:CAPS"/>
940 <function name="TP_ARRAY_TYPE_CONTACT_CAPABILITY_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-CONTACT-CAPABILITY-LIST:CAPS"/>
941 <function name="TP_HASH_TYPE_CONTACT_ATTRIBUTES_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-CONTACT-ATTRIBUTES-MAP:CAPS"/>
942 <function name="TP_HASH_TYPE_SINGLE_CONTACT_ATTRIBUTES_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-SINGLE-CONTACT-ATTRIBUTES-MAP:CAPS"/>
943 <function name="TP_HASH_TYPE_CHANNEL_CLASS" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-CHANNEL-CLASS:CAPS"/>
944 <function name="TP_ARRAY_TYPE_CHANNEL_CLASS_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-CHANNEL-CLASS-LIST:CAPS"/>
945 <function name="TP_STRUCT_TYPE_CHANNEL_DETAILS" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-CHANNEL-DETAILS:CAPS"/>
946 <function name="TP_ARRAY_TYPE_CHANNEL_DETAILS_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-CHANNEL-DETAILS-LIST:CAPS"/>
947 <function name="TP_STRUCT_TYPE_REQUESTABLE_CHANNEL_CLASS" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-REQUESTABLE-CHANNEL-CLASS:CAPS"/>
948 <function name="TP_ARRAY_TYPE_REQUESTABLE_CHANNEL_CLASS_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-REQUESTABLE-CHANNEL-CLASS-LIST:CAPS"/>
949 <function name="TP_HASH_TYPE_SIMPLE_CONTACT_PRESENCES" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-SIMPLE-CONTACT-PRESENCES:CAPS"/>
950 <function name="TP_HASH_TYPE_SIMPLE_STATUS_SPEC_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-SIMPLE-STATUS-SPEC-MAP:CAPS"/>
951 <function name="TP_STRUCT_TYPE_SIMPLE_PRESENCE" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-SIMPLE-PRESENCE:CAPS"/>
952 <function name="TP_STRUCT_TYPE_SIMPLE_STATUS_SPEC" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-SIMPLE-STATUS-SPEC:CAPS"/>
953 <function name="TP_STRUCT_TYPE_ACCESS_CONTROL" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-ACCESS-CONTROL:CAPS"/>
954 <function name="TP_STRUCT_TYPE_RICH_PRESENCE_ACCESS_CONTROL" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-RICH-PRESENCE-ACCESS-CONTROL:CAPS"/>
955 <function name="TP_HASH_TYPE_CONTACT_PRESENCES" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-CONTACT-PRESENCES:CAPS"/>
956 <function name="TP_HASH_TYPE_MULTIPLE_STATUS_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-MULTIPLE-STATUS-MAP:CAPS"/>
957 <function name="TP_HASH_TYPE_STATUS_SPEC_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-STATUS-SPEC-MAP:CAPS"/>
958 <function name="TP_STRUCT_TYPE_LAST_ACTIVITY_AND_STATUSES" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-LAST-ACTIVITY-AND-STATUSES:CAPS"/>
959 <function name="TP_STRUCT_TYPE_STATUS_SPEC" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-STATUS-SPEC:CAPS"/>
960 <function name="TP_HASH_TYPE_LOCATION" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-LOCATION:CAPS"/>
961 <function name="TP_HASH_TYPE_CONTACT_LOCATIONS" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-CONTACT-LOCATIONS:CAPS"/>
962 <function name="TP_HASH_TYPE_CONTACT_INFO_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-CONTACT-INFO-MAP:CAPS"/>
963 <function name="TP_STRUCT_TYPE_CONTACT_INFO_FIELD" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-CONTACT-INFO-FIELD:CAPS"/>
964 <function name="TP_ARRAY_TYPE_CONTACT_INFO_FIELD_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-CONTACT-INFO-FIELD-LIST:CAPS"/>
965 <function name="TP_STRUCT_TYPE_FIELD_SPEC" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-FIELD-SPEC:CAPS"/>
966 <function name="TP_ARRAY_TYPE_FIELD_SPECS" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-FIELD-SPECS:CAPS"/>
967 <function name="TP_STRUCT_TYPE_CONTACT_SUBSCRIPTIONS" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-CONTACT-SUBSCRIPTIONS:CAPS"/>
968 <function name="TP_HASH_TYPE_CONTACT_SUBSCRIPTION_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-CONTACT-SUBSCRIPTION-MAP:CAPS"/>
969 <function name="TP_HASH_TYPE_CONTACT_CLIENT_TYPES" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-CONTACT-CLIENT-TYPES:CAPS"/>
970 <function name="TP_HASH_TYPE_MAIL" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-MAIL:CAPS"/>
971 <function name="TP_ARRAY_TYPE_MAIL_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-MAIL-LIST:CAPS"/>
972 <function name="TP_STRUCT_TYPE_MAIL_ADDRESS" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-MAIL-ADDRESS:CAPS"/>
973 <function name="TP_ARRAY_TYPE_MAIL_ADDRESS_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-MAIL-ADDRESS-LIST:CAPS"/>
974 <function name="TP_STRUCT_TYPE_MAIL_URL" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-MAIL-URL:CAPS"/>
975 <function name="TP_STRUCT_TYPE_HTTP_POST_DATA" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-HTTP-POST-DATA:CAPS"/>
976 <function name="TP_ARRAY_TYPE_HTTP_POST_DATA_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-HTTP-POST-DATA-LIST:CAPS"/>
977 <function name="TP_STRUCT_TYPE_LOCAL_PENDING_INFO" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-LOCAL-PENDING-INFO:CAPS"/>
978 <function name="TP_ARRAY_TYPE_LOCAL_PENDING_INFO_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-LOCAL-PENDING-INFO-LIST:CAPS"/>
979 <function name="TP_HASH_TYPE_HANDLE_OWNER_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-HANDLE-OWNER-MAP:CAPS"/>
980 <function name="TP_HASH_TYPE_HANDLE_IDENTIFIER_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-HANDLE-IDENTIFIER-MAP:CAPS"/>
981 <function name="TP_HASH_TYPE_CHANNEL_ORIGINATOR_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-CHANNEL-ORIGINATOR-MAP:CAPS"/>
982 <function name="TP_STRUCT_TYPE_PENDING_TEXT_MESSAGE" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-PENDING-TEXT-MESSAGE:CAPS"/>
983 <function name="TP_ARRAY_TYPE_PENDING_TEXT_MESSAGE_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-PENDING-TEXT-MESSAGE-LIST:CAPS"/>
984 <function name="TP_HASH_TYPE_MESSAGE_PART" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-MESSAGE-PART:CAPS"/>
985 <function name="TP_ARRAY_TYPE_MESSAGE_PART_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-MESSAGE-PART-LIST:CAPS"/>
986 <function name="TP_HASH_TYPE_MESSAGE_PART_CONTENT_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-MESSAGE-PART-CONTENT-MAP:CAPS"/>
987 <function name="TP_HASH_TYPE_CHAT_STATE_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-CHAT-STATE-MAP:CAPS"/>
988 <function name="TP_HASH_TYPE_SUPPORTED_SOCKET_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-SUPPORTED-SOCKET-MAP:CAPS"/>
989 <function name="TP_STRUCT_TYPE_TUBE_INFO" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-TUBE-INFO:CAPS"/>
990 <function name="TP_ARRAY_TYPE_TUBE_INFO_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-TUBE-INFO-LIST:CAPS"/>
991 <function name="TP_STRUCT_TYPE_DBUS_TUBE_MEMBER" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-DBUS-TUBE-MEMBER:CAPS"/>
992 <function name="TP_ARRAY_TYPE_DBUS_TUBE_MEMBER_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-DBUS-TUBE-MEMBER-LIST:CAPS"/>
993 <function name="TP_HASH_TYPE_DBUS_TUBE_PARTICIPANTS" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-DBUS-TUBE-PARTICIPANTS:CAPS"/>
994 <function name="TP_STRUCT_TYPE_PROPERTY_SPEC" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-PROPERTY-SPEC:CAPS"/>
995 <function name="TP_ARRAY_TYPE_PROPERTY_SPEC_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-PROPERTY-SPEC-LIST:CAPS"/>
996 <function name="TP_STRUCT_TYPE_PROPERTY_FLAGS_CHANGE" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-PROPERTY-FLAGS-CHANGE:CAPS"/>
997 <function name="TP_ARRAY_TYPE_PROPERTY_FLAGS_CHANGE_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-PROPERTY-FLAGS-CHANGE-LIST:CAPS"/>
998 <function name="TP_STRUCT_TYPE_PROPERTY_VALUE" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-PROPERTY-VALUE:CAPS"/>
999 <function name="TP_ARRAY_TYPE_PROPERTY_VALUE_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-PROPERTY-VALUE-LIST:CAPS"/>
1000 <function name="TP_ARRAY_TYPE_MEDIA_SESSION_HANDLER_INFO_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-MEDIA-SESSION-HANDLER-INFO-LIST:CAPS"/>
1001 <function name="TP_STRUCT_TYPE_MEDIA_SESSION_HANDLER_INFO" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-MEDIA-SESSION-HANDLER-INFO:CAPS"/>
1002 <function name="TP_ARRAY_TYPE_MEDIA_STREAM_HANDLER_CANDIDATE_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-MEDIA-STREAM-HANDLER-CANDIDATE-LIST:CAPS"/>
1003 <function name="TP_ARRAY_TYPE_MEDIA_STREAM_HANDLER_CODEC_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-MEDIA-STREAM-HANDLER-CODEC-LIST:CAPS"/>
1004 <function name="TP_ARRAY_TYPE_MEDIA_STREAM_HANDLER_TRANSPORT_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-MEDIA-STREAM-HANDLER-TRANSPORT-LIST:CAPS"/>
1005 <function name="TP_STRUCT_TYPE_MEDIA_STREAM_HANDLER_CANDIDATE" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-MEDIA-STREAM-HANDLER-CANDIDATE:CAPS"/>
1006 <function name="TP_STRUCT_TYPE_MEDIA_STREAM_HANDLER_CODEC" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-MEDIA-STREAM-HANDLER-CODEC:CAPS"/>
1007 <function name="TP_STRUCT_TYPE_MEDIA_STREAM_HANDLER_TRANSPORT" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-MEDIA-STREAM-HANDLER-TRANSPORT:CAPS"/>
1008 <function name="TP_STRUCT_TYPE_MEDIA_STREAM_INFO" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-MEDIA-STREAM-INFO:CAPS"/>
1009 <function name="TP_ARRAY_TYPE_MEDIA_STREAM_INFO_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-MEDIA-STREAM-INFO-LIST:CAPS"/>
1010 <function name="TP_HASH_TYPE_CHANNEL_CALL_STATE_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-CHANNEL-CALL-STATE-MAP:CAPS"/>
1011 <function name="TP_ARRAY_TYPE_RTCP_FEEDBACK_MESSAGE_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-RTCP-FEEDBACK-MESSAGE-LIST:CAPS"/>
1012 <function name="TP_ARRAY_TYPE_RTP_HEADER_EXTENSIONS_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-RTP-HEADER-EXTENSIONS-LIST:CAPS"/>
1013 <function name="TP_HASH_TYPE_RTCP_FEEDBACK_MESSAGE_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-RTCP-FEEDBACK-MESSAGE-MAP:CAPS"/>
1014 <function name="TP_STRUCT_TYPE_RTCP_FEEDBACK_MESSAGE" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-RTCP-FEEDBACK-MESSAGE:CAPS"/>
1015 <function name="TP_STRUCT_TYPE_RTCP_FEEDBACK_MESSAGE_PROPERTIES" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-RTCP-FEEDBACK-MESSAGE-PROPERTIES:CAPS"/>
1016 <function name="TP_STRUCT_TYPE_RTP_HEADER_EXTENSION" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-RTP-HEADER-EXTENSION:CAPS"/>
1017 <function name="TP_ARRAY_TYPE_ROOM_INFO_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-ROOM-INFO-LIST:CAPS"/>
1018 <function name="TP_STRUCT_TYPE_ROOM_INFO" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-ROOM-INFO:CAPS"/>
1019 <function name="TP_STRUCT_TYPE_SERVICE_POINT" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-SERVICE-POINT:CAPS"/>
1020 <function name="TP_ARRAY_TYPE_SERVICE_POINT_INFO_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-SERVICE-POINT-INFO-LIST:CAPS"/>
1021 <function name="TP_STRUCT_TYPE_SERVICE_POINT_INFO" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-SERVICE-POINT-INFO:CAPS"/>
1022 <function name="enum TpChannelContactSearchState" link="telepathy-glib-gtypes.html#TpChannelContactSearchState"/>
1023 <function name="NUM_TP_CHANNEL_CONTACT_SEARCH_STATES" link="telepathy-glib-gtypes.html#NUM-TP-CHANNEL-CONTACT-SEARCH-STATES:CAPS"/>
1024 <function name="TP_HASH_TYPE_CONTACT_SEARCH_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-CONTACT-SEARCH-MAP:CAPS"/>
1025 <function name="TP_HASH_TYPE_CONTACT_SEARCH_RESULT_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-CONTACT-SEARCH-RESULT-MAP:CAPS"/>
1026 <function name="TP_STRUCT_TYPE_AVATAR" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-AVATAR:CAPS"/>
1027 <function name="TP_STRUCT_TYPE_DISPATCH_OPERATION_DETAILS" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-DISPATCH-OPERATION-DETAILS:CAPS"/>
1028 <function name="TP_ARRAY_TYPE_DISPATCH_OPERATION_DETAILS_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-DISPATCH-OPERATION-DETAILS-LIST:CAPS"/>
1029 <function name="TP_HASH_TYPE_NOT_DELEGATED_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-NOT-DELEGATED-MAP:CAPS"/>
1030 <function name="TP_STRUCT_TYPE_NOT_DELEGATED_ERROR" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-NOT-DELEGATED-ERROR:CAPS"/>
1031 <function name="TP_STRUCT_TYPE_DEBUG_MESSAGE" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-DEBUG-MESSAGE:CAPS"/>
1032 <function name="TP_ARRAY_TYPE_DEBUG_MESSAGE_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-DEBUG-MESSAGE-LIST:CAPS"/>
1033 <function name="TP_STRUCT_TYPE_TLS_CERTIFICATE_REJECTION" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-TLS-CERTIFICATE-REJECTION:CAPS"/>
1034 <function name="TP_ARRAY_TYPE_TLS_CERTIFICATE_REJECTION_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-TLS-CERTIFICATE-REJECTION-LIST:CAPS"/>
1035 <function name="TpChannelFunc ()" link="TpChannelIface.html#TpChannelFunc"/>
1036 <function name="TpChannelIface" link="TpChannelIface.html#TpChannelIface-struct"/>
1037 <function name="struct TpChannelIfaceClass" link="TpChannelIface.html#TpChannelIfaceClass"/>
1038 <function name="The &quot;channel-type&quot; property" link="TpChannelIface.html#TpChannelIface--channel-type"/>
1039 <function name="The &quot;handle&quot; property" link="TpChannelIface.html#TpChannelIface--handle"/>
1040 <function name="The &quot;handle-type&quot; property" link="TpChannelIface.html#TpChannelIface--handle-type"/>
1041 <function name="The &quot;object-path&quot; property" link="TpChannelIface.html#TpChannelIface--object-path"/>
1042 <function name="TpConnectionManagerListCb ()" link="telepathy-glib-connection-manager.html#TpConnectionManagerListCb"/>
1043 <function name="tp_list_connection_managers ()" link="telepathy-glib-connection-manager.html#tp-list-connection-managers"/>
1044 <function name="struct TpConnectionManager" link="telepathy-glib-connection-manager.html#TpConnectionManager-struct"/>
1045 <function name="struct TpConnectionManagerClass" link="telepathy-glib-connection-manager.html#TpConnectionManagerClass"/>
1046 <function name="tp_connection_manager_new ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-new"/>
1047 <function name="tp_connection_manager_get_name ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-get-name"/>
1048 <function name="TP_CONNECTION_MANAGER_FEATURE_CORE" link="telepathy-glib-connection-manager.html#TP-CONNECTION-MANAGER-FEATURE-CORE:CAPS"/>
1049 <function name="TpConnectionManagerWhenReadyCb ()" link="telepathy-glib-connection-manager.html#TpConnectionManagerWhenReadyCb"/>
1050 <function name="tp_connection_manager_call_when_ready ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-call-when-ready"/>
1051 <function name="tp_connection_manager_is_ready ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-is-ready"/>
1052 <function name="enum TpCMInfoSource" link="telepathy-glib-connection-manager.html#TpCMInfoSource"/>
1053 <function name="TP_TYPE_CM_INFO_SOURCE" link="telepathy-glib-connection-manager.html#TP-TYPE-CM-INFO-SOURCE:CAPS"/>
1054 <function name="tp_connection_manager_get_info_source ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-get-info-source"/>
1055 <function name="tp_connection_manager_activate ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-activate"/>
1056 <function name="tp_connection_manager_is_running ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-is-running"/>
1057 <function name="tp_connection_manager_dup_protocol_names ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-dup-protocol-names"/>
1058 <function name="tp_connection_manager_has_protocol ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-has-protocol"/>
1059 <function name="tp_connection_manager_get_protocol ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-get-protocol"/>
1060 <function name="tp_connection_manager_get_protocol_object ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-get-protocol-object"/>
1061 <function name="struct TpConnectionManagerProtocol" link="telepathy-glib-connection-manager.html#TpConnectionManagerProtocol-struct"/>
1062 <function name="tp_connection_manager_protocol_can_register ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-protocol-can-register"/>
1063 <function name="tp_connection_manager_protocol_dup_param_names ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-protocol-dup-param-names"/>
1064 <function name="tp_connection_manager_protocol_has_param ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-protocol-has-param"/>
1065 <function name="tp_connection_manager_protocol_get_param ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-protocol-get-param"/>
1066 <function name="struct TpConnectionManagerParam" link="telepathy-glib-connection-manager.html#TpConnectionManagerParam-struct"/>
1067 <function name="tp_connection_manager_param_get_name ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-param-get-name"/>
1068 <function name="tp_connection_manager_param_get_dbus_signature ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-param-get-dbus-signature"/>
1069 <function name="tp_connection_manager_param_is_required ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-param-is-required"/>
1070 <function name="tp_connection_manager_param_is_required_for_registration ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-param-is-required-for-registration"/>
1071 <function name="tp_connection_manager_param_is_secret ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-param-is-secret"/>
1072 <function name="tp_connection_manager_param_is_dbus_property ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-param-is-dbus-property"/>
1073 <function name="tp_connection_manager_param_get_default ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-param-get-default"/>
1074 <function name="tp_connection_manager_check_valid_name ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-check-valid-name"/>
1075 <function name="tp_connection_manager_check_valid_protocol_name ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-check-valid-protocol-name"/>
1076 <function name="tp_connection_manager_init_known_interfaces ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-init-known-interfaces"/>
1077 <function name="tp_connection_manager_param_copy ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-param-copy"/>
1078 <function name="tp_connection_manager_param_free ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-param-free"/>
1079 <function name="tp_connection_manager_protocol_copy ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-protocol-copy"/>
1080 <function name="tp_connection_manager_protocol_free ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-protocol-free"/>
1081 <function name="tp_cli_connection_manager_callback_for_get_parameters ()" link="telepathy-glib-connection-manager.html#tp-cli-connection-manager-callback-for-get-parameters"/>
1082 <function name="tp_cli_connection_manager_call_get_parameters ()" link="telepathy-glib-connection-manager.html#tp-cli-connection-manager-call-get-parameters"/>
1083 <function name="tp_cli_connection_manager_run_get_parameters ()" link="telepathy-glib-connection-manager.html#tp-cli-connection-manager-run-get-parameters"/>
1084 <function name="tp_cli_connection_manager_callback_for_list_protocols ()" link="telepathy-glib-connection-manager.html#tp-cli-connection-manager-callback-for-list-protocols"/>
1085 <function name="tp_cli_connection_manager_call_list_protocols ()" link="telepathy-glib-connection-manager.html#tp-cli-connection-manager-call-list-protocols"/>
1086 <function name="tp_cli_connection_manager_run_list_protocols ()" link="telepathy-glib-connection-manager.html#tp-cli-connection-manager-run-list-protocols"/>
1087 <function name="tp_cli_connection_manager_callback_for_request_connection ()" link="telepathy-glib-connection-manager.html#tp-cli-connection-manager-callback-for-request-connection"/>
1088 <function name="tp_cli_connection_manager_call_request_connection ()" link="telepathy-glib-connection-manager.html#tp-cli-connection-manager-call-request-connection"/>
1089 <function name="tp_cli_connection_manager_run_request_connection ()" link="telepathy-glib-connection-manager.html#tp-cli-connection-manager-run-request-connection"/>
1090 <function name="tp_cli_connection_manager_signal_callback_new_connection ()" link="telepathy-glib-connection-manager.html#tp-cli-connection-manager-signal-callback-new-connection"/>
1091 <function name="tp_cli_connection_manager_connect_to_new_connection ()" link="telepathy-glib-connection-manager.html#tp-cli-connection-manager-connect-to-new-connection"/>
1092 <function name="The &quot;always-introspect&quot; property" link="telepathy-glib-connection-manager.html#TpConnectionManager--always-introspect"/>
1093 <function name="The &quot;connection-manager&quot; property" link="telepathy-glib-connection-manager.html#TpConnectionManager--connection-manager"/>
1094 <function name="The &quot;info-source&quot; property" link="telepathy-glib-connection-manager.html#TpConnectionManager--info-source"/>
1095 <function name="The &quot;manager-file&quot; property" link="telepathy-glib-connection-manager.html#TpConnectionManager--manager-file"/>
1096 <function name="The &quot;activated&quot; signal" link="telepathy-glib-connection-manager.html#TpConnectionManager-activated"/>
1097 <function name="The &quot;exited&quot; signal" link="telepathy-glib-connection-manager.html#TpConnectionManager-exited"/>
1098 <function name="The &quot;got-info&quot; signal" link="telepathy-glib-connection-manager.html#TpConnectionManager-got-info"/>
1099 <function name="struct TpProtocol" link="telepathy-glib-protocol.html#TpProtocol-struct"/>
1100 <function name="TpProtocolClass" link="telepathy-glib-protocol.html#TpProtocolClass"/>
1101 <function name="tp_protocol_new ()" link="telepathy-glib-protocol.html#tp-protocol-new"/>
1102 <function name="tp_protocol_get_name ()" link="telepathy-glib-protocol.html#tp-protocol-get-name"/>
1103 <function name="tp_protocol_init_known_interfaces ()" link="telepathy-glib-protocol.html#tp-protocol-init-known-interfaces"/>
1104 <function name="TP_PROTOCOL_FEATURE_PARAMETERS" link="telepathy-glib-protocol.html#TP-PROTOCOL-FEATURE-PARAMETERS:CAPS"/>
1105 <function name="tp_protocol_dup_param_names ()" link="telepathy-glib-protocol.html#tp-protocol-dup-param-names"/>
1106 <function name="tp_protocol_get_param ()" link="telepathy-glib-protocol.html#tp-protocol-get-param"/>
1107 <function name="tp_protocol_has_param ()" link="telepathy-glib-protocol.html#tp-protocol-has-param"/>
1108 <function name="tp_protocol_can_register ()" link="telepathy-glib-protocol.html#tp-protocol-can-register"/>
1109 <function name="TP_PROTOCOL_FEATURE_CORE" link="telepathy-glib-protocol.html#TP-PROTOCOL-FEATURE-CORE:CAPS"/>
1110 <function name="tp_protocol_get_capabilities ()" link="telepathy-glib-protocol.html#tp-protocol-get-capabilities"/>
1111 <function name="tp_protocol_get_english_name ()" link="telepathy-glib-protocol.html#tp-protocol-get-english-name"/>
1112 <function name="tp_protocol_get_icon_name ()" link="telepathy-glib-protocol.html#tp-protocol-get-icon-name"/>
1113 <function name="tp_protocol_get_vcard_field ()" link="telepathy-glib-protocol.html#tp-protocol-get-vcard-field"/>
1114 <function name="tp_protocol_get_authentication_types ()" link="telepathy-glib-protocol.html#tp-protocol-get-authentication-types"/>
1115 <function name="tp_cli_protocol_call_identify_account ()" link="telepathy-glib-protocol.html#tp-cli-protocol-call-identify-account"/>
1116 <function name="tp_cli_protocol_call_normalize_contact ()" link="telepathy-glib-protocol.html#tp-cli-protocol-call-normalize-contact"/>
1117 <function name="tp_cli_protocol_callback_for_identify_account ()" link="telepathy-glib-protocol.html#tp-cli-protocol-callback-for-identify-account"/>
1118 <function name="tp_cli_protocol_callback_for_normalize_contact ()" link="telepathy-glib-protocol.html#tp-cli-protocol-callback-for-normalize-contact"/>
1119 <function name="The &quot;authentication-types&quot; property" link="telepathy-glib-protocol.html#TpProtocol--authentication-types"/>
1120 <function name="The &quot;capabilities&quot; property" link="telepathy-glib-protocol.html#TpProtocol--capabilities"/>
1121 <function name="The &quot;english-name&quot; property" link="telepathy-glib-protocol.html#TpProtocol--english-name"/>
1122 <function name="The &quot;icon-name&quot; property" link="telepathy-glib-protocol.html#TpProtocol--icon-name"/>
1123 <function name="The &quot;param-names&quot; property" link="telepathy-glib-protocol.html#TpProtocol--param-names"/>
1124 <function name="The &quot;protocol-name&quot; property" link="telepathy-glib-protocol.html#TpProtocol--protocol-name"/>
1125 <function name="The &quot;protocol-properties&quot; property" link="telepathy-glib-protocol.html#TpProtocol--protocol-properties"/>
1126 <function name="The &quot;vcard-field&quot; property" link="telepathy-glib-protocol.html#TpProtocol--vcard-field"/>
1127 <function name="TpConnectionNameListCb ()" link="telepathy-glib-connection.html#TpConnectionNameListCb"/>
1128 <function name="tp_list_connection_names ()" link="telepathy-glib-connection.html#tp-list-connection-names"/>
1129 <function name="TpConnection" link="telepathy-glib-connection.html#TpConnection-struct"/>
1130 <function name="struct TpConnectionClass" link="telepathy-glib-connection.html#TpConnectionClass"/>
1131 <function name="tp_connection_new ()" link="telepathy-glib-connection.html#tp-connection-new"/>
1132 <function name="TP_CONNECTION_FEATURE_CORE" link="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CORE:CAPS"/>
1133 <function name="TP_CONNECTION_FEATURE_CONNECTED" link="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CONNECTED:CAPS"/>
1134 <function name="TP_CONNECTION_FEATURE_CAPABILITIES" link="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CAPABILITIES:CAPS"/>
1135 <function name="TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS" link="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-AVATAR-REQUIREMENTS:CAPS"/>
1136 <function name="TP_CONNECTION_FEATURE_CONTACT_INFO" link="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CONTACT-INFO:CAPS"/>
1137 <function name="TP_CONNECTION_FEATURE_BALANCE" link="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-BALANCE:CAPS"/>
1138 <function name="TP_CONNECTION_FEATURE_CONTACT_LIST" link="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CONTACT-LIST:CAPS"/>
1139 <function name="TP_CONNECTION_FEATURE_CONTACT_GROUPS" link="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CONTACT-GROUPS:CAPS"/>
1140 <function name="tp_connection_run_until_ready ()" link="telepathy-glib-connection.html#tp-connection-run-until-ready"/>
1141 <function name="TpConnectionWhenReadyCb ()" link="telepathy-glib-connection.html#TpConnectionWhenReadyCb"/>
1142 <function name="tp_connection_call_when_ready ()" link="telepathy-glib-connection.html#tp-connection-call-when-ready"/>
1143 <function name="tp_connection_is_ready ()" link="telepathy-glib-connection.html#tp-connection-is-ready"/>
1144 <function name="tp_connection_get_account ()" link="telepathy-glib-connection.html#tp-connection-get-account"/>
1145 <function name="tp_connection_get_status ()" link="telepathy-glib-connection.html#tp-connection-get-status"/>
1146 <function name="tp_connection_get_connection_manager_name ()" link="telepathy-glib-connection.html#tp-connection-get-connection-manager-name"/>
1147 <function name="tp_connection_get_protocol_name ()" link="telepathy-glib-connection.html#tp-connection-get-protocol-name"/>
1148 <function name="tp_connection_get_self_contact ()" link="telepathy-glib-connection.html#tp-connection-get-self-contact"/>
1149 <function name="tp_connection_get_self_handle ()" link="telepathy-glib-connection.html#tp-connection-get-self-handle"/>
1150 <function name="tp_connection_has_immortal_handles ()" link="telepathy-glib-connection.html#tp-connection-has-immortal-handles"/>
1151 <function name="TpConnectionRequestHandlesCb ()" link="telepathy-glib-connection.html#TpConnectionRequestHandlesCb"/>
1152 <function name="tp_connection_request_handles ()" link="telepathy-glib-connection.html#tp-connection-request-handles"/>
1153 <function name="TpConnectionHoldHandlesCb ()" link="telepathy-glib-connection.html#TpConnectionHoldHandlesCb"/>
1154 <function name="tp_connection_get_contact_attributes ()" link="telepathy-glib-connection.html#tp-connection-get-contact-attributes"/>
1155 <function name="tp_connection_get_contact_list_attributes ()" link="telepathy-glib-connection.html#tp-connection-get-contact-list-attributes"/>
1156 <function name="tp_connection_hold_handles ()" link="telepathy-glib-connection.html#tp-connection-hold-handles"/>
1157 <function name="tp_connection_unref_handles ()" link="telepathy-glib-connection.html#tp-connection-unref-handles"/>
1158 <function name="tp_connection_init_known_interfaces ()" link="telepathy-glib-connection.html#tp-connection-init-known-interfaces"/>
1159 <function name="tp_connection_presence_type_cmp_availability ()" link="telepathy-glib-connection.html#tp-connection-presence-type-cmp-availability"/>
1160 <function name="tp_connection_parse_object_path ()" link="telepathy-glib-connection.html#tp-connection-parse-object-path"/>
1161 <function name="tp_connection_get_capabilities ()" link="telepathy-glib-connection.html#tp-connection-get-capabilities"/>
1162 <function name="tp_connection_get_avatar_requirements ()" link="telepathy-glib-connection.html#tp-connection-get-avatar-requirements"/>
1163 <function name="tp_connection_get_contact_info_flags ()" link="telepathy-glib-connection.html#tp-connection-get-contact-info-flags"/>
1164 <function name="tp_connection_get_contact_info_supported_fields ()" link="telepathy-glib-connection.html#tp-connection-get-contact-info-supported-fields"/>
1165 <function name="tp_connection_set_contact_info_async ()" link="telepathy-glib-connection.html#tp-connection-set-contact-info-async"/>
1166 <function name="tp_connection_set_contact_info_finish ()" link="telepathy-glib-connection.html#tp-connection-set-contact-info-finish"/>
1167 <function name="TP_UNKNOWN_CONNECTION_STATUS" link="telepathy-glib-connection.html#TP-UNKNOWN-CONNECTION-STATUS:CAPS"/>
1168 <function name="TP_ERRORS_DISCONNECTED" link="telepathy-glib-connection.html#TP-ERRORS-DISCONNECTED:CAPS"/>
1169 <function name="tp_connection_get_detailed_error ()" link="telepathy-glib-connection.html#tp-connection-get-detailed-error"/>
1170 <function name="tp_connection_add_client_interest ()" link="telepathy-glib-connection.html#tp-connection-add-client-interest"/>
1171 <function name="tp_connection_add_client_interest_by_id ()" link="telepathy-glib-connection.html#tp-connection-add-client-interest-by-id"/>
1172 <function name="tp_connection_bind_connection_status_to_property ()" link="telepathy-glib-connection.html#tp-connection-bind-connection-status-to-property"/>
1173 <function name="tp_connection_get_balance ()" link="telepathy-glib-connection.html#tp-connection-get-balance"/>
1174 <function name="tp_connection_get_balance_uri ()" link="telepathy-glib-connection.html#tp-connection-get-balance-uri"/>
1175 <function name="TP_TYPE_AVATAR_REQUIREMENTS" link="telepathy-glib-connection.html#TP-TYPE-AVATAR-REQUIREMENTS:CAPS"/>
1176 <function name="struct TpAvatarRequirements" link="telepathy-glib-connection.html#TpAvatarRequirements-struct"/>
1177 <function name="tp_avatar_requirements_new ()" link="telepathy-glib-connection.html#tp-avatar-requirements-new"/>
1178 <function name="tp_avatar_requirements_copy ()" link="telepathy-glib-connection.html#tp-avatar-requirements-copy"/>
1179 <function name="tp_avatar_requirements_destroy ()" link="telepathy-glib-connection.html#tp-avatar-requirements-destroy"/>
1180 <function name="struct TpContactInfoFieldSpec" link="telepathy-glib-connection.html#TpContactInfoFieldSpec-struct"/>
1181 <function name="TP_TYPE_CONTACT_INFO_FIELD_SPEC" link="telepathy-glib-connection.html#TP-TYPE-CONTACT-INFO-FIELD-SPEC:CAPS"/>
1182 <function name="tp_contact_info_field_spec_copy ()" link="telepathy-glib-connection.html#tp-contact-info-field-spec-copy"/>
1183 <function name="tp_contact_info_field_spec_free ()" link="telepathy-glib-connection.html#tp-contact-info-field-spec-free"/>
1184 <function name="TP_TYPE_CONTACT_INFO_SPEC_LIST" link="telepathy-glib-connection.html#TP-TYPE-CONTACT-INFO-SPEC-LIST:CAPS"/>
1185 <function name="tp_contact_info_spec_list_copy ()" link="telepathy-glib-connection.html#tp-contact-info-spec-list-copy"/>
1186 <function name="tp_contact_info_spec_list_free ()" link="telepathy-glib-connection.html#tp-contact-info-spec-list-free"/>
1187 <function name="struct TpContactInfoField" link="telepathy-glib-connection.html#TpContactInfoField-struct"/>
1188 <function name="TP_TYPE_CONTACT_INFO_FIELD" link="telepathy-glib-connection.html#TP-TYPE-CONTACT-INFO-FIELD:CAPS"/>
1189 <function name="tp_contact_info_field_new ()" link="telepathy-glib-connection.html#tp-contact-info-field-new"/>
1190 <function name="tp_contact_info_field_copy ()" link="telepathy-glib-connection.html#tp-contact-info-field-copy"/>
1191 <function name="tp_contact_info_field_free ()" link="telepathy-glib-connection.html#tp-contact-info-field-free"/>
1192 <function name="TP_TYPE_CONTACT_INFO_LIST" link="telepathy-glib-connection.html#TP-TYPE-CONTACT-INFO-LIST:CAPS"/>
1193 <function name="tp_contact_info_list_copy ()" link="telepathy-glib-connection.html#tp-contact-info-list-copy"/>
1194 <function name="tp_contact_info_list_free ()" link="telepathy-glib-connection.html#tp-contact-info-list-free"/>
1195 <function name="tp_connection_get_contact_list_state ()" link="telepathy-glib-connection.html#tp-connection-get-contact-list-state"/>
1196 <function name="tp_connection_get_contact_list_persists ()" link="telepathy-glib-connection.html#tp-connection-get-contact-list-persists"/>
1197 <function name="tp_connection_get_can_change_contact_list ()" link="telepathy-glib-connection.html#tp-connection-get-can-change-contact-list"/>
1198 <function name="tp_connection_get_request_uses_message ()" link="telepathy-glib-connection.html#tp-connection-get-request-uses-message"/>
1199 <function name="tp_connection_dup_contact_list ()" link="telepathy-glib-connection.html#tp-connection-dup-contact-list"/>
1200 <function name="tp_connection_request_subscription_async ()" link="telepathy-glib-connection.html#tp-connection-request-subscription-async"/>
1201 <function name="tp_connection_request_subscription_finish ()" link="telepathy-glib-connection.html#tp-connection-request-subscription-finish"/>
1202 <function name="tp_connection_authorize_publication_async ()" link="telepathy-glib-connection.html#tp-connection-authorize-publication-async"/>
1203 <function name="tp_connection_authorize_publication_finish ()" link="telepathy-glib-connection.html#tp-connection-authorize-publication-finish"/>
1204 <function name="tp_connection_remove_contacts_async ()" link="telepathy-glib-connection.html#tp-connection-remove-contacts-async"/>
1205 <function name="tp_connection_remove_contacts_finish ()" link="telepathy-glib-connection.html#tp-connection-remove-contacts-finish"/>
1206 <function name="tp_connection_unsubscribe_async ()" link="telepathy-glib-connection.html#tp-connection-unsubscribe-async"/>
1207 <function name="tp_connection_unsubscribe_finish ()" link="telepathy-glib-connection.html#tp-connection-unsubscribe-finish"/>
1208 <function name="tp_connection_unpublish_async ()" link="telepathy-glib-connection.html#tp-connection-unpublish-async"/>
1209 <function name="tp_connection_unpublish_finish ()" link="telepathy-glib-connection.html#tp-connection-unpublish-finish"/>
1210 <function name="tp_connection_get_disjoint_groups ()" link="telepathy-glib-connection.html#tp-connection-get-disjoint-groups"/>
1211 <function name="tp_connection_get_group_storage ()" link="telepathy-glib-connection.html#tp-connection-get-group-storage"/>
1212 <function name="tp_connection_get_contact_groups ()" link="telepathy-glib-connection.html#tp-connection-get-contact-groups"/>
1213 <function name="tp_connection_set_group_members_async ()" link="telepathy-glib-connection.html#tp-connection-set-group-members-async"/>
1214 <function name="tp_connection_set_group_members_finish ()" link="telepathy-glib-connection.html#tp-connection-set-group-members-finish"/>
1215 <function name="tp_connection_add_to_group_async ()" link="telepathy-glib-connection.html#tp-connection-add-to-group-async"/>
1216 <function name="tp_connection_add_to_group_finish ()" link="telepathy-glib-connection.html#tp-connection-add-to-group-finish"/>
1217 <function name="tp_connection_remove_from_group_async ()" link="telepathy-glib-connection.html#tp-connection-remove-from-group-async"/>
1218 <function name="tp_connection_remove_from_group_finish ()" link="telepathy-glib-connection.html#tp-connection-remove-from-group-finish"/>
1219 <function name="tp_connection_remove_group_async ()" link="telepathy-glib-connection.html#tp-connection-remove-group-async"/>
1220 <function name="tp_connection_remove_group_finish ()" link="telepathy-glib-connection.html#tp-connection-remove-group-finish"/>
1221 <function name="tp_connection_rename_group_async ()" link="telepathy-glib-connection.html#tp-connection-rename-group-async"/>
1222 <function name="tp_connection_rename_group_finish ()" link="telepathy-glib-connection.html#tp-connection-rename-group-finish"/>
1223 <function name="tp_cli_connection_callback_for_connect ()" link="telepathy-glib-connection.html#tp-cli-connection-callback-for-connect"/>
1224 <function name="tp_cli_connection_call_connect ()" link="telepathy-glib-connection.html#tp-cli-connection-call-connect"/>
1225 <function name="tp_cli_connection_run_connect ()" link="telepathy-glib-connection.html#tp-cli-connection-run-connect"/>
1226 <function name="tp_cli_connection_callback_for_disconnect ()" link="telepathy-glib-connection.html#tp-cli-connection-callback-for-disconnect"/>
1227 <function name="tp_cli_connection_call_disconnect ()" link="telepathy-glib-connection.html#tp-cli-connection-call-disconnect"/>
1228 <function name="tp_cli_connection_run_disconnect ()" link="telepathy-glib-connection.html#tp-cli-connection-run-disconnect"/>
1229 <function name="tp_cli_connection_callback_for_get_interfaces ()" link="telepathy-glib-connection.html#tp-cli-connection-callback-for-get-interfaces"/>
1230 <function name="tp_cli_connection_call_get_interfaces ()" link="telepathy-glib-connection.html#tp-cli-connection-call-get-interfaces"/>
1231 <function name="tp_cli_connection_run_get_interfaces ()" link="telepathy-glib-connection.html#tp-cli-connection-run-get-interfaces"/>
1232 <function name="tp_cli_connection_callback_for_get_protocol ()" link="telepathy-glib-connection.html#tp-cli-connection-callback-for-get-protocol"/>
1233 <function name="tp_cli_connection_call_get_protocol ()" link="telepathy-glib-connection.html#tp-cli-connection-call-get-protocol"/>
1234 <function name="tp_cli_connection_run_get_protocol ()" link="telepathy-glib-connection.html#tp-cli-connection-run-get-protocol"/>
1235 <function name="tp_cli_connection_callback_for_get_self_handle ()" link="telepathy-glib-connection.html#tp-cli-connection-callback-for-get-self-handle"/>
1236 <function name="tp_cli_connection_call_get_self_handle ()" link="telepathy-glib-connection.html#tp-cli-connection-call-get-self-handle"/>
1237 <function name="tp_cli_connection_run_get_self_handle ()" link="telepathy-glib-connection.html#tp-cli-connection-run-get-self-handle"/>
1238 <function name="tp_cli_connection_callback_for_get_status ()" link="telepathy-glib-connection.html#tp-cli-connection-callback-for-get-status"/>
1239 <function name="tp_cli_connection_call_get_status ()" link="telepathy-glib-connection.html#tp-cli-connection-call-get-status"/>
1240 <function name="tp_cli_connection_run_get_status ()" link="telepathy-glib-connection.html#tp-cli-connection-run-get-status"/>
1241 <function name="tp_cli_connection_callback_for_hold_handles ()" link="telepathy-glib-connection.html#tp-cli-connection-callback-for-hold-handles"/>
1242 <function name="tp_cli_connection_call_hold_handles ()" link="telepathy-glib-connection.html#tp-cli-connection-call-hold-handles"/>
1243 <function name="tp_cli_connection_run_hold_handles ()" link="telepathy-glib-connection.html#tp-cli-connection-run-hold-handles"/>
1244 <function name="tp_cli_connection_callback_for_inspect_handles ()" link="telepathy-glib-connection.html#tp-cli-connection-callback-for-inspect-handles"/>
1245 <function name="tp_cli_connection_call_inspect_handles ()" link="telepathy-glib-connection.html#tp-cli-connection-call-inspect-handles"/>
1246 <function name="tp_cli_connection_run_inspect_handles ()" link="telepathy-glib-connection.html#tp-cli-connection-run-inspect-handles"/>
1247 <function name="tp_cli_connection_callback_for_list_channels ()" link="telepathy-glib-connection.html#tp-cli-connection-callback-for-list-channels"/>
1248 <function name="tp_cli_connection_call_list_channels ()" link="telepathy-glib-connection.html#tp-cli-connection-call-list-channels"/>
1249 <function name="tp_cli_connection_run_list_channels ()" link="telepathy-glib-connection.html#tp-cli-connection-run-list-channels"/>
1250 <function name="tp_cli_connection_callback_for_release_handles ()" link="telepathy-glib-connection.html#tp-cli-connection-callback-for-release-handles"/>
1251 <function name="tp_cli_connection_call_release_handles ()" link="telepathy-glib-connection.html#tp-cli-connection-call-release-handles"/>
1252 <function name="tp_cli_connection_run_release_handles ()" link="telepathy-glib-connection.html#tp-cli-connection-run-release-handles"/>
1253 <function name="tp_cli_connection_callback_for_request_channel ()" link="telepathy-glib-connection.html#tp-cli-connection-callback-for-request-channel"/>
1254 <function name="tp_cli_connection_call_request_channel ()" link="telepathy-glib-connection.html#tp-cli-connection-call-request-channel"/>
1255 <function name="tp_cli_connection_run_request_channel ()" link="telepathy-glib-connection.html#tp-cli-connection-run-request-channel"/>
1256 <function name="tp_cli_connection_callback_for_request_handles ()" link="telepathy-glib-connection.html#tp-cli-connection-callback-for-request-handles"/>
1257 <function name="tp_cli_connection_call_request_handles ()" link="telepathy-glib-connection.html#tp-cli-connection-call-request-handles"/>
1258 <function name="tp_cli_connection_run_request_handles ()" link="telepathy-glib-connection.html#tp-cli-connection-run-request-handles"/>
1259 <function name="tp_cli_connection_signal_callback_new_channel ()" link="telepathy-glib-connection.html#tp-cli-connection-signal-callback-new-channel"/>
1260 <function name="tp_cli_connection_connect_to_new_channel ()" link="telepathy-glib-connection.html#tp-cli-connection-connect-to-new-channel"/>
1261 <function name="tp_cli_connection_signal_callback_self_handle_changed ()" link="telepathy-glib-connection.html#tp-cli-connection-signal-callback-self-handle-changed"/>
1262 <function name="tp_cli_connection_connect_to_self_handle_changed ()" link="telepathy-glib-connection.html#tp-cli-connection-connect-to-self-handle-changed"/>
1263 <function name="tp_cli_connection_signal_callback_status_changed ()" link="telepathy-glib-connection.html#tp-cli-connection-signal-callback-status-changed"/>
1264 <function name="tp_cli_connection_connect_to_status_changed ()" link="telepathy-glib-connection.html#tp-cli-connection-connect-to-status-changed"/>
1265 <function name="tp_cli_connection_signal_callback_connection_error ()" link="telepathy-glib-connection.html#tp-cli-connection-signal-callback-connection-error"/>
1266 <function name="tp_cli_connection_connect_to_connection_error ()" link="telepathy-glib-connection.html#tp-cli-connection-connect-to-connection-error"/>
1267 <function name="tp_cli_connection_call_add_client_interest ()" link="telepathy-glib-connection.html#tp-cli-connection-call-add-client-interest"/>
1268 <function name="tp_cli_connection_call_remove_client_interest ()" link="telepathy-glib-connection.html#tp-cli-connection-call-remove-client-interest"/>
1269 <function name="tp_cli_connection_callback_for_add_client_interest ()" link="telepathy-glib-connection.html#tp-cli-connection-callback-for-add-client-interest"/>
1270 <function name="tp_cli_connection_callback_for_remove_client_interest ()" link="telepathy-glib-connection.html#tp-cli-connection-callback-for-remove-client-interest"/>
1271 <function name="The &quot;balance&quot; property" link="telepathy-glib-connection.html#TpConnection--balance"/>
1272 <function name="The &quot;balance-currency&quot; property" link="telepathy-glib-connection.html#TpConnection--balance-currency"/>
1273 <function name="The &quot;balance-scale&quot; property" link="telepathy-glib-connection.html#TpConnection--balance-scale"/>
1274 <function name="The &quot;balance-uri&quot; property" link="telepathy-glib-connection.html#TpConnection--balance-uri"/>
1275 <function name="The &quot;can-change-contact-list&quot; property" link="telepathy-glib-connection.html#TpConnection--can-change-contact-list"/>
1276 <function name="The &quot;capabilities&quot; property" link="telepathy-glib-connection.html#TpConnection--capabilities"/>
1277 <function name="The &quot;connection-manager-name&quot; property" link="telepathy-glib-connection.html#TpConnection--connection-manager-name"/>
1278 <function name="The &quot;connection-ready&quot; property" link="telepathy-glib-connection.html#TpConnection--connection-ready"/>
1279 <function name="The &quot;contact-groups&quot; property" link="telepathy-glib-connection.html#TpConnection--contact-groups"/>
1280 <function name="The &quot;contact-list-persists&quot; property" link="telepathy-glib-connection.html#TpConnection--contact-list-persists"/>
1281 <function name="The &quot;contact-list-state&quot; property" link="telepathy-glib-connection.html#TpConnection--contact-list-state"/>
1282 <function name="The &quot;disjoint-groups&quot; property" link="telepathy-glib-connection.html#TpConnection--disjoint-groups"/>
1283 <function name="The &quot;group-storage&quot; property" link="telepathy-glib-connection.html#TpConnection--group-storage"/>
1284 <function name="The &quot;protocol-name&quot; property" link="telepathy-glib-connection.html#TpConnection--protocol-name"/>
1285 <function name="The &quot;request-uses-message&quot; property" link="telepathy-glib-connection.html#TpConnection--request-uses-message"/>
1286 <function name="The &quot;self-contact&quot; property" link="telepathy-glib-connection.html#TpConnection--self-contact"/>
1287 <function name="The &quot;self-handle&quot; property" link="telepathy-glib-connection.html#TpConnection--self-handle"/>
1288 <function name="The &quot;status&quot; property" link="telepathy-glib-connection.html#TpConnection--status"/>
1289 <function name="The &quot;status-reason&quot; property" link="telepathy-glib-connection.html#TpConnection--status-reason"/>
1290 <function name="The &quot;balance-changed&quot; signal" link="telepathy-glib-connection.html#TpConnection-balance-changed"/>
1291 <function name="The &quot;contact-list-changed&quot; signal" link="telepathy-glib-connection.html#TpConnection-contact-list-changed"/>
1292 <function name="The &quot;group-renamed&quot; signal" link="telepathy-glib-connection.html#TpConnection-group-renamed"/>
1293 <function name="The &quot;groups-created&quot; signal" link="telepathy-glib-connection.html#TpConnection-groups-created"/>
1294 <function name="The &quot;groups-removed&quot; signal" link="telepathy-glib-connection.html#TpConnection-groups-removed"/>
1295 <function name="TpContact" link="telepathy-glib-contact.html#TpContact-struct"/>
1296 <function name="enum TpContactFeature" link="telepathy-glib-contact.html#TpContactFeature"/>
1297 <function name="TP_CONTACT_FEATURE_INVALID" link="telepathy-glib-contact.html#TP-CONTACT-FEATURE-INVALID:CAPS"/>
1298 <function name="NUM_TP_CONTACT_FEATURES" link="telepathy-glib-contact.html#NUM-TP-CONTACT-FEATURES:CAPS"/>
1299 <function name="TP_TYPE_CONTACT_FEATURE" link="telepathy-glib-contact.html#TP-TYPE-CONTACT-FEATURE:CAPS"/>
1300 <function name="TpConnectionContactsByHandleCb ()" link="telepathy-glib-contact.html#TpConnectionContactsByHandleCb"/>
1301 <function name="tp_connection_dup_contact_if_possible ()" link="telepathy-glib-contact.html#tp-connection-dup-contact-if-possible"/>
1302 <function name="tp_connection_get_contacts_by_handle ()" link="telepathy-glib-contact.html#tp-connection-get-contacts-by-handle"/>
1303 <function name="TpConnectionContactsByIdCb ()" link="telepathy-glib-contact.html#TpConnectionContactsByIdCb"/>
1304 <function name="tp_connection_get_contacts_by_id ()" link="telepathy-glib-contact.html#tp-connection-get-contacts-by-id"/>
1305 <function name="TpConnectionUpgradeContactsCb ()" link="telepathy-glib-contact.html#TpConnectionUpgradeContactsCb"/>
1306 <function name="tp_connection_upgrade_contacts ()" link="telepathy-glib-contact.html#tp-connection-upgrade-contacts"/>
1307 <function name="tp_connection_refresh_contact_info ()" link="telepathy-glib-contact.html#tp-connection-refresh-contact-info"/>
1308 <function name="tp_contact_get_alias ()" link="telepathy-glib-contact.html#tp-contact-get-alias"/>
1309 <function name="tp_contact_get_avatar_token ()" link="telepathy-glib-contact.html#tp-contact-get-avatar-token"/>
1310 <function name="tp_contact_get_avatar_file ()" link="telepathy-glib-contact.html#tp-contact-get-avatar-file"/>
1311 <function name="tp_contact_get_avatar_mime_type ()" link="telepathy-glib-contact.html#tp-contact-get-avatar-mime-type"/>
1312 <function name="tp_contact_get_client_types ()" link="telepathy-glib-contact.html#tp-contact-get-client-types"/>
1313 <function name="tp_contact_get_connection ()" link="telepathy-glib-contact.html#tp-contact-get-connection"/>
1314 <function name="tp_contact_get_handle ()" link="telepathy-glib-contact.html#tp-contact-get-handle"/>
1315 <function name="tp_contact_get_identifier ()" link="telepathy-glib-contact.html#tp-contact-get-identifier"/>
1316 <function name="tp_contact_get_presence_message ()" link="telepathy-glib-contact.html#tp-contact-get-presence-message"/>
1317 <function name="tp_contact_get_presence_status ()" link="telepathy-glib-contact.html#tp-contact-get-presence-status"/>
1318 <function name="tp_contact_get_presence_type ()" link="telepathy-glib-contact.html#tp-contact-get-presence-type"/>
1319 <function name="tp_contact_get_location ()" link="telepathy-glib-contact.html#tp-contact-get-location"/>
1320 <function name="tp_contact_get_capabilities ()" link="telepathy-glib-contact.html#tp-contact-get-capabilities"/>
1321 <function name="tp_contact_get_contact_info ()" link="telepathy-glib-contact.html#tp-contact-get-contact-info"/>
1322 <function name="tp_contact_request_contact_info_async ()" link="telepathy-glib-contact.html#tp-contact-request-contact-info-async"/>
1323 <function name="tp_contact_request_contact_info_finish ()" link="telepathy-glib-contact.html#tp-contact-request-contact-info-finish"/>
1324 <function name="tp_contact_get_subscribe_state ()" link="telepathy-glib-contact.html#tp-contact-get-subscribe-state"/>
1325 <function name="tp_contact_get_publish_state ()" link="telepathy-glib-contact.html#tp-contact-get-publish-state"/>
1326 <function name="tp_contact_get_publish_request ()" link="telepathy-glib-contact.html#tp-contact-get-publish-request"/>
1327 <function name="tp_contact_get_contact_groups ()" link="telepathy-glib-contact.html#tp-contact-get-contact-groups"/>
1328 <function name="tp_contact_set_contact_groups_async ()" link="telepathy-glib-contact.html#tp-contact-set-contact-groups-async"/>
1329 <function name="tp_contact_set_contact_groups_finish ()" link="telepathy-glib-contact.html#tp-contact-set-contact-groups-finish"/>
1330 <function name="tp_contact_has_feature ()" link="telepathy-glib-contact.html#tp-contact-has-feature"/>
1331 <function name="tp_contact_request_subscription_async ()" link="telepathy-glib-contact.html#tp-contact-request-subscription-async"/>
1332 <function name="tp_contact_request_subscription_finish ()" link="telepathy-glib-contact.html#tp-contact-request-subscription-finish"/>
1333 <function name="tp_contact_authorize_publication_async ()" link="telepathy-glib-contact.html#tp-contact-authorize-publication-async"/>
1334 <function name="tp_contact_authorize_publication_finish ()" link="telepathy-glib-contact.html#tp-contact-authorize-publication-finish"/>
1335 <function name="tp_contact_remove_async ()" link="telepathy-glib-contact.html#tp-contact-remove-async"/>
1336 <function name="tp_contact_remove_finish ()" link="telepathy-glib-contact.html#tp-contact-remove-finish"/>
1337 <function name="tp_contact_unsubscribe_async ()" link="telepathy-glib-contact.html#tp-contact-unsubscribe-async"/>
1338 <function name="tp_contact_unsubscribe_finish ()" link="telepathy-glib-contact.html#tp-contact-unsubscribe-finish"/>
1339 <function name="tp_contact_unpublish_async ()" link="telepathy-glib-contact.html#tp-contact-unpublish-async"/>
1340 <function name="tp_contact_unpublish_finish ()" link="telepathy-glib-contact.html#tp-contact-unpublish-finish"/>
1341 <function name="tp_contact_add_to_group_async ()" link="telepathy-glib-contact.html#tp-contact-add-to-group-async"/>
1342 <function name="tp_contact_add_to_group_finish ()" link="telepathy-glib-contact.html#tp-contact-add-to-group-finish"/>
1343 <function name="tp_contact_remove_from_group_async ()" link="telepathy-glib-contact.html#tp-contact-remove-from-group-async"/>
1344 <function name="tp_contact_remove_from_group_finish ()" link="telepathy-glib-contact.html#tp-contact-remove-from-group-finish"/>
1345 <function name="The &quot;alias&quot; property" link="telepathy-glib-contact.html#TpContact--alias"/>
1346 <function name="The &quot;avatar-file&quot; property" link="telepathy-glib-contact.html#TpContact--avatar-file"/>
1347 <function name="The &quot;avatar-mime-type&quot; property" link="telepathy-glib-contact.html#TpContact--avatar-mime-type"/>
1348 <function name="The &quot;avatar-token&quot; property" link="telepathy-glib-contact.html#TpContact--avatar-token"/>
1349 <function name="The &quot;capabilities&quot; property" link="telepathy-glib-contact.html#TpContact--capabilities"/>
1350 <function name="The &quot;client-types&quot; property" link="telepathy-glib-contact.html#TpContact--client-types"/>
1351 <function name="The &quot;connection&quot; property" link="telepathy-glib-contact.html#TpContact--connection"/>
1352 <function name="The &quot;contact-groups&quot; property" link="telepathy-glib-contact.html#TpContact--contact-groups"/>
1353 <function name="The &quot;contact-info&quot; property" link="telepathy-glib-contact.html#TpContact--contact-info"/>
1354 <function name="The &quot;handle&quot; property" link="telepathy-glib-contact.html#TpContact--handle"/>
1355 <function name="The &quot;identifier&quot; property" link="telepathy-glib-contact.html#TpContact--identifier"/>
1356 <function name="The &quot;location&quot; property" link="telepathy-glib-contact.html#TpContact--location"/>
1357 <function name="The &quot;presence-message&quot; property" link="telepathy-glib-contact.html#TpContact--presence-message"/>
1358 <function name="The &quot;presence-status&quot; property" link="telepathy-glib-contact.html#TpContact--presence-status"/>
1359 <function name="The &quot;presence-type&quot; property" link="telepathy-glib-contact.html#TpContact--presence-type"/>
1360 <function name="The &quot;publish-request&quot; property" link="telepathy-glib-contact.html#TpContact--publish-request"/>
1361 <function name="The &quot;publish-state&quot; property" link="telepathy-glib-contact.html#TpContact--publish-state"/>
1362 <function name="The &quot;subscribe-state&quot; property" link="telepathy-glib-contact.html#TpContact--subscribe-state"/>
1363 <function name="The &quot;contact-groups-changed&quot; signal" link="telepathy-glib-contact.html#TpContact-contact-groups-changed"/>
1364 <function name="The &quot;presence-changed&quot; signal" link="telepathy-glib-contact.html#TpContact-presence-changed"/>
1365 <function name="The &quot;subscription-states-changed&quot; signal" link="telepathy-glib-contact.html#TpContact-subscription-states-changed"/>
1366 <function name="TpCapabilities" link="telepathy-glib-capabilities.html#TpCapabilities-struct"/>
1367 <function name="tp_capabilities_get_channel_classes ()" link="telepathy-glib-capabilities.html#tp-capabilities-get-channel-classes"/>
1368 <function name="tp_capabilities_is_specific_to_contact ()" link="telepathy-glib-capabilities.html#tp-capabilities-is-specific-to-contact"/>
1369 <function name="tp_capabilities_supports_text_chatrooms ()" link="telepathy-glib-capabilities.html#tp-capabilities-supports-text-chatrooms"/>
1370 <function name="tp_capabilities_supports_text_chats ()" link="telepathy-glib-capabilities.html#tp-capabilities-supports-text-chats"/>
1371 <function name="tp_capabilities_supports_stream_tubes ()" link="telepathy-glib-capabilities.html#tp-capabilities-supports-stream-tubes"/>
1372 <function name="tp_capabilities_supports_dbus_tubes ()" link="telepathy-glib-capabilities.html#tp-capabilities-supports-dbus-tubes"/>
1373 <function name="tp_capabilities_supports_contact_search ()" link="telepathy-glib-capabilities.html#tp-capabilities-supports-contact-search"/>
1374 <function name="tp_capabilities_supports_room_list ()" link="telepathy-glib-capabilities.html#tp-capabilities-supports-room-list"/>
1375 <function name="The &quot;channel-classes&quot; property" link="telepathy-glib-capabilities.html#TpCapabilities--channel-classes"/>
1376 <function name="The &quot;contact-specific&quot; property" link="telepathy-glib-capabilities.html#TpCapabilities--contact-specific"/>
1377 <function name="tp_cli_connection_interface_aliasing_run_get_alias_flags ()" link="telepathy-glib-connection-aliasing.html#tp-cli-connection-interface-aliasing-run-get-alias-flags"/>
1378 <function name="tp_cli_connection_interface_aliasing_run_request_aliases ()" link="telepathy-glib-connection-aliasing.html#tp-cli-connection-interface-aliasing-run-request-aliases"/>
1379 <function name="tp_cli_connection_interface_aliasing_run_get_aliases ()" link="telepathy-glib-connection-aliasing.html#tp-cli-connection-interface-aliasing-run-get-aliases"/>
1380 <function name="tp_cli_connection_interface_aliasing_run_set_aliases ()" link="telepathy-glib-connection-aliasing.html#tp-cli-connection-interface-aliasing-run-set-aliases"/>
1381 <function name="tp_cli_connection_interface_aliasing_call_get_alias_flags ()" link="telepathy-glib-connection-aliasing.html#tp-cli-connection-interface-aliasing-call-get-alias-flags"/>
1382 <function name="tp_cli_connection_interface_aliasing_call_request_aliases ()" link="telepathy-glib-connection-aliasing.html#tp-cli-connection-interface-aliasing-call-request-aliases"/>
1383 <function name="tp_cli_connection_interface_aliasing_call_get_aliases ()" link="telepathy-glib-connection-aliasing.html#tp-cli-connection-interface-aliasing-call-get-aliases"/>
1384 <function name="tp_cli_connection_interface_aliasing_call_set_aliases ()" link="telepathy-glib-connection-aliasing.html#tp-cli-connection-interface-aliasing-call-set-aliases"/>
1385 <function name="tp_cli_connection_interface_aliasing_callback_for_get_alias_flags ()" link="telepathy-glib-connection-aliasing.html#tp-cli-connection-interface-aliasing-callback-for-get-alias-flags"/>
1386 <function name="tp_cli_connection_interface_aliasing_callback_for_request_aliases ()" link="telepathy-glib-connection-aliasing.html#tp-cli-connection-interface-aliasing-callback-for-request-aliases"/>
1387 <function name="tp_cli_connection_interface_aliasing_callback_for_get_aliases ()" link="telepathy-glib-connection-aliasing.html#tp-cli-connection-interface-aliasing-callback-for-get-aliases"/>
1388 <function name="tp_cli_connection_interface_aliasing_callback_for_set_aliases ()" link="telepathy-glib-connection-aliasing.html#tp-cli-connection-interface-aliasing-callback-for-set-aliases"/>
1389 <function name="tp_cli_connection_interface_aliasing_connect_to_aliases_changed ()" link="telepathy-glib-connection-aliasing.html#tp-cli-connection-interface-aliasing-connect-to-aliases-changed"/>
1390 <function name="tp_cli_connection_interface_aliasing_signal_callback_aliases_changed ()" link="telepathy-glib-connection-aliasing.html#tp-cli-connection-interface-aliasing-signal-callback-aliases-changed"/>
1391 <function name="tp_cli_connection_interface_avatars_run_clear_avatar ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-run-clear-avatar"/>
1392 <function name="tp_cli_connection_interface_avatars_run_get_avatar_requirements ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-run-get-avatar-requirements"/>
1393 <function name="tp_cli_connection_interface_avatars_run_get_avatar_tokens ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-run-get-avatar-tokens"/>
1394 <function name="tp_cli_connection_interface_avatars_run_get_known_avatar_tokens ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-run-get-known-avatar-tokens"/>
1395 <function name="tp_cli_connection_interface_avatars_run_request_avatar ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-run-request-avatar"/>
1396 <function name="tp_cli_connection_interface_avatars_run_request_avatars ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-run-request-avatars"/>
1397 <function name="tp_cli_connection_interface_avatars_run_set_avatar ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-run-set-avatar"/>
1398 <function name="tp_cli_connection_interface_avatars_call_clear_avatar ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-call-clear-avatar"/>
1399 <function name="tp_cli_connection_interface_avatars_call_get_avatar_requirements ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-call-get-avatar-requirements"/>
1400 <function name="tp_cli_connection_interface_avatars_call_get_avatar_tokens ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-call-get-avatar-tokens"/>
1401 <function name="tp_cli_connection_interface_avatars_call_get_known_avatar_tokens ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-call-get-known-avatar-tokens"/>
1402 <function name="tp_cli_connection_interface_avatars_call_request_avatar ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-call-request-avatar"/>
1403 <function name="tp_cli_connection_interface_avatars_call_request_avatars ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-call-request-avatars"/>
1404 <function name="tp_cli_connection_interface_avatars_call_set_avatar ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-call-set-avatar"/>
1405 <function name="tp_cli_connection_interface_avatars_callback_for_clear_avatar ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-callback-for-clear-avatar"/>
1406 <function name="tp_cli_connection_interface_avatars_callback_for_get_avatar_requirements ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-callback-for-get-avatar-requirements"/>
1407 <function name="tp_cli_connection_interface_avatars_callback_for_get_avatar_tokens ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-callback-for-get-avatar-tokens"/>
1408 <function name="tp_cli_connection_interface_avatars_callback_for_get_known_avatar_tokens ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-callback-for-get-known-avatar-tokens"/>
1409 <function name="tp_cli_connection_interface_avatars_callback_for_request_avatar ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-callback-for-request-avatar"/>
1410 <function name="tp_cli_connection_interface_avatars_callback_for_request_avatars ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-callback-for-request-avatars"/>
1411 <function name="tp_cli_connection_interface_avatars_callback_for_set_avatar ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-callback-for-set-avatar"/>
1412 <function name="tp_cli_connection_interface_avatars_connect_to_avatar_retrieved ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-connect-to-avatar-retrieved"/>
1413 <function name="tp_cli_connection_interface_avatars_connect_to_avatar_updated ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-connect-to-avatar-updated"/>
1414 <function name="tp_cli_connection_interface_avatars_signal_callback_avatar_retrieved ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-signal-callback-avatar-retrieved"/>
1415 <function name="tp_cli_connection_interface_avatars_signal_callback_avatar_updated ()" link="telepathy-glib-connection-avatars.html#tp-cli-connection-interface-avatars-signal-callback-avatar-updated"/>
1416 <function name="tp_cli_connection_interface_balance_connect_to_balance_changed ()" link="telepathy-glib-connection-balance.html#tp-cli-connection-interface-balance-connect-to-balance-changed"/>
1417 <function name="tp_cli_connection_interface_balance_signal_callback_balance_changed ()" link="telepathy-glib-connection-balance.html#tp-cli-connection-interface-balance-signal-callback-balance-changed"/>
1418 <function name="tp_cli_connection_interface_client_types_call_get_client_types ()" link="telepathy-glib-connection-client-types.html#tp-cli-connection-interface-client-types-call-get-client-types"/>
1419 <function name="tp_cli_connection_interface_client_types_call_request_client_types ()" link="telepathy-glib-connection-client-types.html#tp-cli-connection-interface-client-types-call-request-client-types"/>
1420 <function name="tp_cli_connection_interface_client_types_callback_for_get_client_types ()" link="telepathy-glib-connection-client-types.html#tp-cli-connection-interface-client-types-callback-for-get-client-types"/>
1421 <function name="tp_cli_connection_interface_client_types_callback_for_request_client_types ()" link="telepathy-glib-connection-client-types.html#tp-cli-connection-interface-client-types-callback-for-request-client-types"/>
1422 <function name="tp_cli_connection_interface_client_types_connect_to_client_types_updated ()" link="telepathy-glib-connection-client-types.html#tp-cli-connection-interface-client-types-connect-to-client-types-updated"/>
1423 <function name="tp_cli_connection_interface_client_types_signal_callback_client_types_updated ()" link="telepathy-glib-connection-client-types.html#tp-cli-connection-interface-client-types-signal-callback-client-types-updated"/>
1424 <function name="tp_cli_connection_interface_contacts_call_get_contact_attributes ()" link="telepathy-glib-connection-contacts.html#tp-cli-connection-interface-contacts-call-get-contact-attributes"/>
1425 <function name="tp_cli_connection_interface_contacts_callback_for_get_contact_attributes ()" link="telepathy-glib-connection-contacts.html#tp-cli-connection-interface-contacts-callback-for-get-contact-attributes"/>
1426 <function name="tp_cli_connection_interface_contacts_run_get_contact_attributes ()" link="telepathy-glib-connection-contacts.html#tp-cli-connection-interface-contacts-run-get-contact-attributes"/>
1427 <function name="tp_cli_connection_interface_contact_info_call_get_contact_info ()" link="telepathy-glib-connection-contact-info.html#tp-cli-connection-interface-contact-info-call-get-contact-info"/>
1428 <function name="tp_cli_connection_interface_contact_info_call_refresh_contact_info ()" link="telepathy-glib-connection-contact-info.html#tp-cli-connection-interface-contact-info-call-refresh-contact-info"/>
1429 <function name="tp_cli_connection_interface_contact_info_call_request_contact_info ()" link="telepathy-glib-connection-contact-info.html#tp-cli-connection-interface-contact-info-call-request-contact-info"/>
1430 <function name="tp_cli_connection_interface_contact_info_call_set_contact_info ()" link="telepathy-glib-connection-contact-info.html#tp-cli-connection-interface-contact-info-call-set-contact-info"/>
1431 <function name="tp_cli_connection_interface_contact_info_callback_for_get_contact_info ()" link="telepathy-glib-connection-contact-info.html#tp-cli-connection-interface-contact-info-callback-for-get-contact-info"/>
1432 <function name="tp_cli_connection_interface_contact_info_callback_for_refresh_contact_info ()" link="telepathy-glib-connection-contact-info.html#tp-cli-connection-interface-contact-info-callback-for-refresh-contact-info"/>
1433 <function name="tp_cli_connection_interface_contact_info_callback_for_request_contact_info ()" link="telepathy-glib-connection-contact-info.html#tp-cli-connection-interface-contact-info-callback-for-request-contact-info"/>
1434 <function name="tp_cli_connection_interface_contact_info_callback_for_set_contact_info ()" link="telepathy-glib-connection-contact-info.html#tp-cli-connection-interface-contact-info-callback-for-set-contact-info"/>
1435 <function name="tp_cli_connection_interface_contact_info_connect_to_contact_info_changed ()" link="telepathy-glib-connection-contact-info.html#tp-cli-connection-interface-contact-info-connect-to-contact-info-changed"/>
1436 <function name="tp_cli_connection_interface_contact_info_run_get_contact_info ()" link="telepathy-glib-connection-contact-info.html#tp-cli-connection-interface-contact-info-run-get-contact-info"/>
1437 <function name="tp_cli_connection_interface_contact_info_run_refresh_contact_info ()" link="telepathy-glib-connection-contact-info.html#tp-cli-connection-interface-contact-info-run-refresh-contact-info"/>
1438 <function name="tp_cli_connection_interface_contact_info_run_request_contact_info ()" link="telepathy-glib-connection-contact-info.html#tp-cli-connection-interface-contact-info-run-request-contact-info"/>
1439 <function name="tp_cli_connection_interface_contact_info_run_set_contact_info ()" link="telepathy-glib-connection-contact-info.html#tp-cli-connection-interface-contact-info-run-set-contact-info"/>
1440 <function name="tp_cli_connection_interface_contact_info_signal_callback_contact_info_changed ()" link="telepathy-glib-connection-contact-info.html#tp-cli-connection-interface-contact-info-signal-callback-contact-info-changed"/>
1441 <function name="tp_cli_connection_interface_contact_blocking_call_block_contacts ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-blocking-call-block-contacts"/>
1442 <function name="tp_cli_connection_interface_contact_blocking_call_request_blocked_contacts ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-blocking-call-request-blocked-contacts"/>
1443 <function name="tp_cli_connection_interface_contact_blocking_call_unblock_contacts ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-blocking-call-unblock-contacts"/>
1444 <function name="tp_cli_connection_interface_contact_blocking_callback_for_block_contacts ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-blocking-callback-for-block-contacts"/>
1445 <function name="tp_cli_connection_interface_contact_blocking_callback_for_request_blocked_contacts ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-blocking-callback-for-request-blocked-contacts"/>
1446 <function name="tp_cli_connection_interface_contact_blocking_callback_for_unblock_contacts ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-blocking-callback-for-unblock-contacts"/>
1447 <function name="tp_cli_connection_interface_contact_blocking_connect_to_blocked_contacts_changed ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-blocking-connect-to-blocked-contacts-changed"/>
1448 <function name="tp_cli_connection_interface_contact_blocking_run_block_contacts ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-blocking-run-block-contacts"/>
1449 <function name="tp_cli_connection_interface_contact_blocking_run_request_blocked_contacts ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-blocking-run-request-blocked-contacts"/>
1450 <function name="tp_cli_connection_interface_contact_blocking_run_unblock_contacts ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-blocking-run-unblock-contacts"/>
1451 <function name="tp_cli_connection_interface_contact_blocking_signal_callback_blocked_contacts_changed ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-blocking-signal-callback-blocked-contacts-changed"/>
1452 <function name="tp_cli_connection_interface_contact_groups_call_add_to_group ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-groups-call-add-to-group"/>
1453 <function name="tp_cli_connection_interface_contact_groups_call_remove_from_group ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-groups-call-remove-from-group"/>
1454 <function name="tp_cli_connection_interface_contact_groups_call_remove_group ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-groups-call-remove-group"/>
1455 <function name="tp_cli_connection_interface_contact_groups_call_rename_group ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-groups-call-rename-group"/>
1456 <function name="tp_cli_connection_interface_contact_groups_call_set_contact_groups ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-groups-call-set-contact-groups"/>
1457 <function name="tp_cli_connection_interface_contact_groups_call_set_group_members ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-groups-call-set-group-members"/>
1458 <function name="tp_cli_connection_interface_contact_groups_callback_for_add_to_group ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-groups-callback-for-add-to-group"/>
1459 <function name="tp_cli_connection_interface_contact_groups_callback_for_remove_from_group ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-groups-callback-for-remove-from-group"/>
1460 <function name="tp_cli_connection_interface_contact_groups_callback_for_remove_group ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-groups-callback-for-remove-group"/>
1461 <function name="tp_cli_connection_interface_contact_groups_callback_for_rename_group ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-groups-callback-for-rename-group"/>
1462 <function name="tp_cli_connection_interface_contact_groups_callback_for_set_contact_groups ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-groups-callback-for-set-contact-groups"/>
1463 <function name="tp_cli_connection_interface_contact_groups_callback_for_set_group_members ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-groups-callback-for-set-group-members"/>
1464 <function name="tp_cli_connection_interface_contact_groups_connect_to_group_renamed ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-groups-connect-to-group-renamed"/>
1465 <function name="tp_cli_connection_interface_contact_groups_connect_to_groups_changed ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-groups-connect-to-groups-changed"/>
1466 <function name="tp_cli_connection_interface_contact_groups_connect_to_groups_created ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-groups-connect-to-groups-created"/>
1467 <function name="tp_cli_connection_interface_contact_groups_connect_to_groups_removed ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-groups-connect-to-groups-removed"/>
1468 <function name="tp_cli_connection_interface_contact_groups_signal_callback_group_renamed ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-groups-signal-callback-group-renamed"/>
1469 <function name="tp_cli_connection_interface_contact_groups_signal_callback_groups_changed ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-groups-signal-callback-groups-changed"/>
1470 <function name="tp_cli_connection_interface_contact_groups_signal_callback_groups_created ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-groups-signal-callback-groups-created"/>
1471 <function name="tp_cli_connection_interface_contact_groups_signal_callback_groups_removed ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-groups-signal-callback-groups-removed"/>
1472 <function name="tp_cli_connection_interface_contact_list_call_authorize_publication ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-list-call-authorize-publication"/>
1473 <function name="tp_cli_connection_interface_contact_list_call_remove_contacts ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-list-call-remove-contacts"/>
1474 <function name="tp_cli_connection_interface_contact_list_call_request_subscription ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-list-call-request-subscription"/>
1475 <function name="tp_cli_connection_interface_contact_list_call_unpublish ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-list-call-unpublish"/>
1476 <function name="tp_cli_connection_interface_contact_list_call_unsubscribe ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-list-call-unsubscribe"/>
1477 <function name="tp_cli_connection_interface_contact_list_callback_for_authorize_publication ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-list-callback-for-authorize-publication"/>
1478 <function name="tp_cli_connection_interface_contact_list_callback_for_remove_contacts ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-list-callback-for-remove-contacts"/>
1479 <function name="tp_cli_connection_interface_contact_list_callback_for_request_subscription ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-list-callback-for-request-subscription"/>
1480 <function name="tp_cli_connection_interface_contact_list_callback_for_unpublish ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-list-callback-for-unpublish"/>
1481 <function name="tp_cli_connection_interface_contact_list_callback_for_unsubscribe ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-list-callback-for-unsubscribe"/>
1482 <function name="tp_cli_connection_interface_contact_list_connect_to_contacts_changed ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-list-connect-to-contacts-changed"/>
1483 <function name="tp_cli_connection_interface_contact_list_signal_callback_contacts_changed_with_id ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-list-signal-callback-contacts-changed-with-id"/>
1484 <function name="tp_cli_connection_interface_contact_list_connect_to_contacts_changed_with_id ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-list-connect-to-contacts-changed-with-id"/>
1485 <function name="tp_cli_connection_interface_contact_list_signal_callback_contacts_changed ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-list-signal-callback-contacts-changed"/>
1486 <function name="tp_cli_connection_interface_contact_list_connect_to_contact_list_state_changed ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-list-connect-to-contact-list-state-changed"/>
1487 <function name="tp_cli_connection_interface_contact_list_signal_callback_contact_list_state_changed ()" link="telepathy-glib-connection-contact-list.html#tp-cli-connection-interface-contact-list-signal-callback-contact-list-state-changed"/>
1488 <function name="tp_cli_connection_interface_contact_capabilities_callback_for_get_contact_capabilities ()" link="telepathy-glib-connection-caps.html#tp-cli-connection-interface-contact-capabilities-callback-for-get-contact-capabilities"/>
1489 <function name="tp_cli_connection_interface_contact_capabilities_call_get_contact_capabilities ()" link="telepathy-glib-connection-caps.html#tp-cli-connection-interface-contact-capabilities-call-get-contact-capabilities"/>
1490 <function name="tp_cli_connection_interface_contact_capabilities_callback_for_update_capabilities ()" link="telepathy-glib-connection-caps.html#tp-cli-connection-interface-contact-capabilities-callback-for-update-capabilities"/>
1491 <function name="tp_cli_connection_interface_contact_capabilities_call_update_capabilities ()" link="telepathy-glib-connection-caps.html#tp-cli-connection-interface-contact-capabilities-call-update-capabilities"/>
1492 <function name="tp_cli_connection_interface_contact_capabilities_signal_callback_contact_capabilities_changed ()" link="telepathy-glib-connection-caps.html#tp-cli-connection-interface-contact-capabilities-signal-callback-contact-capabilities-changed"/>
1493 <function name="tp_cli_connection_interface_contact_capabilities_connect_to_contact_capabilities_changed ()" link="telepathy-glib-connection-caps.html#tp-cli-connection-interface-contact-capabilities-connect-to-contact-capabilities-changed"/>
1494 <function name="tp_cli_connection_interface_capabilities_call_advertise_capabilities ()" link="telepathy-glib-connection-caps.html#tp-cli-connection-interface-capabilities-call-advertise-capabilities"/>
1495 <function name="tp_cli_connection_interface_capabilities_call_get_capabilities ()" link="telepathy-glib-connection-caps.html#tp-cli-connection-interface-capabilities-call-get-capabilities"/>
1496 <function name="tp_cli_connection_interface_capabilities_callback_for_advertise_capabilities ()" link="telepathy-glib-connection-caps.html#tp-cli-connection-interface-capabilities-callback-for-advertise-capabilities"/>
1497 <function name="tp_cli_connection_interface_capabilities_callback_for_get_capabilities ()" link="telepathy-glib-connection-caps.html#tp-cli-connection-interface-capabilities-callback-for-get-capabilities"/>
1498 <function name="tp_cli_connection_interface_capabilities_connect_to_capabilities_changed ()" link="telepathy-glib-connection-caps.html#tp-cli-connection-interface-capabilities-connect-to-capabilities-changed"/>
1499 <function name="tp_cli_connection_interface_capabilities_signal_callback_capabilities_changed ()" link="telepathy-glib-connection-caps.html#tp-cli-connection-interface-capabilities-signal-callback-capabilities-changed"/>
1500 <function name="tp_cli_connection_interface_location_connect_to_location_updated ()" link="telepathy-glib-connection-location.html#tp-cli-connection-interface-location-connect-to-location-updated"/>
1501 <function name="tp_cli_connection_interface_location_signal_callback_location_updated ()" link="telepathy-glib-connection-location.html#tp-cli-connection-interface-location-signal-callback-location-updated"/>
1502 <function name="tp_cli_connection_interface_location_call_get_locations ()" link="telepathy-glib-connection-location.html#tp-cli-connection-interface-location-call-get-locations"/>
1503 <function name="tp_cli_connection_interface_location_callback_for_get_locations ()" link="telepathy-glib-connection-location.html#tp-cli-connection-interface-location-callback-for-get-locations"/>
1504 <function name="tp_cli_connection_interface_location_call_request_location ()" link="telepathy-glib-connection-location.html#tp-cli-connection-interface-location-call-request-location"/>
1505 <function name="tp_cli_connection_interface_location_callback_for_request_location ()" link="telepathy-glib-connection-location.html#tp-cli-connection-interface-location-callback-for-request-location"/>
1506 <function name="tp_cli_connection_interface_location_call_set_location ()" link="telepathy-glib-connection-location.html#tp-cli-connection-interface-location-call-set-location"/>
1507 <function name="tp_cli_connection_interface_location_callback_for_set_location ()" link="telepathy-glib-connection-location.html#tp-cli-connection-interface-location-callback-for-set-location"/>
1508 <function name="tp_cli_connection_interface_requests_call_create_channel ()" link="telepathy-glib-connection-requests.html#tp-cli-connection-interface-requests-call-create-channel"/>
1509 <function name="tp_cli_connection_interface_requests_call_ensure_channel ()" link="telepathy-glib-connection-requests.html#tp-cli-connection-interface-requests-call-ensure-channel"/>
1510 <function name="tp_cli_connection_interface_requests_callback_for_create_channel ()" link="telepathy-glib-connection-requests.html#tp-cli-connection-interface-requests-callback-for-create-channel"/>
1511 <function name="tp_cli_connection_interface_requests_callback_for_ensure_channel ()" link="telepathy-glib-connection-requests.html#tp-cli-connection-interface-requests-callback-for-ensure-channel"/>
1512 <function name="tp_cli_connection_interface_requests_connect_to_channel_closed ()" link="telepathy-glib-connection-requests.html#tp-cli-connection-interface-requests-connect-to-channel-closed"/>
1513 <function name="tp_cli_connection_interface_requests_connect_to_new_channels ()" link="telepathy-glib-connection-requests.html#tp-cli-connection-interface-requests-connect-to-new-channels"/>
1514 <function name="tp_cli_connection_interface_requests_run_create_channel ()" link="telepathy-glib-connection-requests.html#tp-cli-connection-interface-requests-run-create-channel"/>
1515 <function name="tp_cli_connection_interface_requests_run_ensure_channel ()" link="telepathy-glib-connection-requests.html#tp-cli-connection-interface-requests-run-ensure-channel"/>
1516 <function name="tp_cli_connection_interface_requests_signal_callback_channel_closed ()" link="telepathy-glib-connection-requests.html#tp-cli-connection-interface-requests-signal-callback-channel-closed"/>
1517 <function name="tp_cli_connection_interface_requests_signal_callback_new_channels ()" link="telepathy-glib-connection-requests.html#tp-cli-connection-interface-requests-signal-callback-new-channels"/>
1518 <function name="tp_cli_connection_interface_simple_presence_run_get_presences ()" link="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-run-get-presences"/>
1519 <function name="tp_cli_connection_interface_simple_presence_run_set_presence ()" link="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-run-set-presence"/>
1520 <function name="tp_cli_connection_interface_simple_presence_call_get_presences ()" link="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-call-get-presences"/>
1521 <function name="tp_cli_connection_interface_simple_presence_call_set_presence ()" link="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-call-set-presence"/>
1522 <function name="tp_cli_connection_interface_simple_presence_callback_for_get_presences ()" link="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-callback-for-get-presences"/>
1523 <function name="tp_cli_connection_interface_simple_presence_callback_for_set_presence ()" link="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-callback-for-set-presence"/>
1524 <function name="tp_cli_connection_interface_simple_presence_connect_to_presences_changed ()" link="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-connect-to-presences-changed"/>
1525 <function name="tp_cli_connection_interface_simple_presence_signal_callback_presences_changed ()" link="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-signal-callback-presences-changed"/>
1526 <function name="tp_cli_connection_interface_presence_run_add_status ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-run-add-status"/>
1527 <function name="tp_cli_connection_interface_presence_run_clear_status ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-run-clear-status"/>
1528 <function name="tp_cli_connection_interface_presence_run_get_presence ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-run-get-presence"/>
1529 <function name="tp_cli_connection_interface_presence_run_get_statuses ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-run-get-statuses"/>
1530 <function name="tp_cli_connection_interface_presence_run_remove_status ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-run-remove-status"/>
1531 <function name="tp_cli_connection_interface_presence_run_request_presence ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-run-request-presence"/>
1532 <function name="tp_cli_connection_interface_presence_run_set_last_activity_time ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-run-set-last-activity-time"/>
1533 <function name="tp_cli_connection_interface_presence_run_set_status ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-run-set-status"/>
1534 <function name="tp_cli_connection_interface_presence_call_add_status ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-call-add-status"/>
1535 <function name="tp_cli_connection_interface_presence_call_clear_status ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-call-clear-status"/>
1536 <function name="tp_cli_connection_interface_presence_call_get_presence ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-call-get-presence"/>
1537 <function name="tp_cli_connection_interface_presence_call_get_statuses ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-call-get-statuses"/>
1538 <function name="tp_cli_connection_interface_presence_call_remove_status ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-call-remove-status"/>
1539 <function name="tp_cli_connection_interface_presence_call_request_presence ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-call-request-presence"/>
1540 <function name="tp_cli_connection_interface_presence_call_set_last_activity_time ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-call-set-last-activity-time"/>
1541 <function name="tp_cli_connection_interface_presence_call_set_status ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-call-set-status"/>
1542 <function name="tp_cli_connection_interface_presence_callback_for_add_status ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-callback-for-add-status"/>
1543 <function name="tp_cli_connection_interface_presence_callback_for_clear_status ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-callback-for-clear-status"/>
1544 <function name="tp_cli_connection_interface_presence_callback_for_get_presence ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-callback-for-get-presence"/>
1545 <function name="tp_cli_connection_interface_presence_callback_for_get_statuses ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-callback-for-get-statuses"/>
1546 <function name="tp_cli_connection_interface_presence_callback_for_remove_status ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-callback-for-remove-status"/>
1547 <function name="tp_cli_connection_interface_presence_callback_for_request_presence ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-callback-for-request-presence"/>
1548 <function name="tp_cli_connection_interface_presence_callback_for_set_last_activity_time ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-callback-for-set-last-activity-time"/>
1549 <function name="tp_cli_connection_interface_presence_callback_for_set_status ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-callback-for-set-status"/>
1550 <function name="tp_cli_connection_interface_presence_connect_to_presence_update ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-connect-to-presence-update"/>
1551 <function name="tp_cli_connection_interface_presence_signal_callback_presence_update ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-signal-callback-presence-update"/>
1552 <function name="tp_cli_connection_interface_cellular_connect_to_imsi_changed ()" link="telepathy-glib-connection-cellular.html#tp-cli-connection-interface-cellular-connect-to-imsi-changed"/>
1553 <function name="tp_cli_connection_interface_cellular_signal_callback_imsi_changed ()" link="telepathy-glib-connection-cellular.html#tp-cli-connection-interface-cellular-signal-callback-imsi-changed"/>
1554 <function name="tp_cli_connection_interface_mail_notification_call_request_inbox_url ()" link="telepathy-glib-connection-mail.html#tp-cli-connection-interface-mail-notification-call-request-inbox-url"/>
1555 <function name="tp_cli_connection_interface_mail_notification_call_request_mail_url ()" link="telepathy-glib-connection-mail.html#tp-cli-connection-interface-mail-notification-call-request-mail-url"/>
1556 <function name="tp_cli_connection_interface_mail_notification_callback_for_request_inbox_url ()" link="telepathy-glib-connection-mail.html#tp-cli-connection-interface-mail-notification-callback-for-request-inbox-url"/>
1557 <function name="tp_cli_connection_interface_mail_notification_callback_for_request_mail_url ()" link="telepathy-glib-connection-mail.html#tp-cli-connection-interface-mail-notification-callback-for-request-mail-url"/>
1558 <function name="tp_cli_connection_interface_mail_notification_connect_to_mails_received ()" link="telepathy-glib-connection-mail.html#tp-cli-connection-interface-mail-notification-connect-to-mails-received"/>
1559 <function name="tp_cli_connection_interface_mail_notification_connect_to_unread_mails_changed ()" link="telepathy-glib-connection-mail.html#tp-cli-connection-interface-mail-notification-connect-to-unread-mails-changed"/>
1560 <function name="tp_cli_connection_interface_mail_notification_signal_callback_mails_received ()" link="telepathy-glib-connection-mail.html#tp-cli-connection-interface-mail-notification-signal-callback-mails-received"/>
1561 <function name="tp_cli_connection_interface_mail_notification_signal_callback_unread_mails_changed ()" link="telepathy-glib-connection-mail.html#tp-cli-connection-interface-mail-notification-signal-callback-unread-mails-changed"/>
1562 <function name="tp_cli_connection_interface_power_saving_call_set_power_saving ()" link="telepathy-glib-connection-powersaving.html#tp-cli-connection-interface-power-saving-call-set-power-saving"/>
1563 <function name="tp_cli_connection_interface_power_saving_callback_for_set_power_saving ()" link="telepathy-glib-connection-powersaving.html#tp-cli-connection-interface-power-saving-callback-for-set-power-saving"/>
1564 <function name="tp_cli_connection_interface_power_saving_connect_to_power_saving_changed ()" link="telepathy-glib-connection-powersaving.html#tp-cli-connection-interface-power-saving-connect-to-power-saving-changed"/>
1565 <function name="tp_cli_connection_interface_power_saving_signal_callback_power_saving_changed ()" link="telepathy-glib-connection-powersaving.html#tp-cli-connection-interface-power-saving-signal-callback-power-saving-changed"/>
1566 <function name="struct TpContactSearch" link="telepathy-glib-contact-search.html#TpContactSearch-struct"/>
1567 <function name="struct TpContactSearchClass" link="telepathy-glib-contact-search.html#TpContactSearchClass"/>
1568 <function name="tp_contact_search_new_async ()" link="telepathy-glib-contact-search.html#tp-contact-search-new-async"/>
1569 <function name="tp_contact_search_new_finish ()" link="telepathy-glib-contact-search.html#tp-contact-search-new-finish"/>
1570 <function name="tp_contact_search_reset_async ()" link="telepathy-glib-contact-search.html#tp-contact-search-reset-async"/>
1571 <function name="tp_contact_search_reset_finish ()" link="telepathy-glib-contact-search.html#tp-contact-search-reset-finish"/>
1572 <function name="tp_contact_search_start ()" link="telepathy-glib-contact-search.html#tp-contact-search-start"/>
1573 <function name="tp_contact_search_get_search_keys ()" link="telepathy-glib-contact-search.html#tp-contact-search-get-search-keys"/>
1574 <function name="tp_contact_search_get_account ()" link="telepathy-glib-contact-search.html#tp-contact-search-get-account"/>
1575 <function name="tp_contact_search_get_limit ()" link="telepathy-glib-contact-search.html#tp-contact-search-get-limit"/>
1576 <function name="tp_contact_search_get_server ()" link="telepathy-glib-contact-search.html#tp-contact-search-get-server"/>
1577 <function name="The &quot;account&quot; property" link="telepathy-glib-contact-search.html#TpContactSearch--account"/>
1578 <function name="The &quot;limit&quot; property" link="telepathy-glib-contact-search.html#TpContactSearch--limit"/>
1579 <function name="The &quot;server&quot; property" link="telepathy-glib-contact-search.html#TpContactSearch--server"/>
1580 <function name="The &quot;state&quot; property" link="telepathy-glib-contact-search.html#TpContactSearch--state"/>
1581 <function name="The &quot;search-results-received&quot; signal" link="telepathy-glib-contact-search.html#TpContactSearch-search-results-received"/>
1582 <function name="struct TpContactSearchResult" link="telepathy-glib-contact-search-result.html#TpContactSearchResult-struct"/>
1583 <function name="struct TpContactSearchResultClass" link="telepathy-glib-contact-search-result.html#TpContactSearchResultClass"/>
1584 <function name="tp_contact_search_result_get_field ()" link="telepathy-glib-contact-search-result.html#tp-contact-search-result-get-field"/>
1585 <function name="tp_contact_search_result_get_fields ()" link="telepathy-glib-contact-search-result.html#tp-contact-search-result-get-fields"/>
1586 <function name="tp_contact_search_result_get_identifier ()" link="telepathy-glib-contact-search-result.html#tp-contact-search-result-get-identifier"/>
1587 <function name="The &quot;identifier&quot; property" link="telepathy-glib-contact-search-result.html#TpContactSearchResult--identifier"/>
1588 <function name="TpChannel" link="telepathy-glib-channel.html#TpChannel-struct"/>
1589 <function name="struct TpChannelClass" link="telepathy-glib-channel.html#TpChannelClass"/>
1590 <function name="tp_channel_new ()" link="telepathy-glib-channel.html#tp-channel-new"/>
1591 <function name="tp_channel_new_from_properties ()" link="telepathy-glib-channel.html#tp-channel-new-from-properties"/>
1592 <function name="tp_channel_run_until_ready ()" link="telepathy-glib-channel.html#tp-channel-run-until-ready"/>
1593 <function name="TpChannelWhenReadyCb ()" link="telepathy-glib-channel.html#TpChannelWhenReadyCb"/>
1594 <function name="tp_channel_call_when_ready ()" link="telepathy-glib-channel.html#tp-channel-call-when-ready"/>
1595 <function name="tp_channel_init_known_interfaces ()" link="telepathy-glib-channel.html#tp-channel-init-known-interfaces"/>
1596 <function name="tp_channel_is_ready ()" link="telepathy-glib-channel.html#tp-channel-is-ready"/>
1597 <function name="TP_CHANNEL_FEATURE_CORE" link="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-CORE:CAPS"/>
1598 <function name="tp_channel_borrow_connection ()" link="telepathy-glib-channel.html#tp-channel-borrow-connection"/>
1599 <function name="tp_channel_borrow_immutable_properties ()" link="telepathy-glib-channel.html#tp-channel-borrow-immutable-properties"/>
1600 <function name="tp_channel_get_channel_type ()" link="telepathy-glib-channel.html#tp-channel-get-channel-type"/>
1601 <function name="tp_channel_get_channel_type_id ()" link="telepathy-glib-channel.html#tp-channel-get-channel-type-id"/>
1602 <function name="tp_channel_get_handle ()" link="telepathy-glib-channel.html#tp-channel-get-handle"/>
1603 <function name="tp_channel_get_identifier ()" link="telepathy-glib-channel.html#tp-channel-get-identifier"/>
1604 <function name="tp_channel_get_requested ()" link="telepathy-glib-channel.html#tp-channel-get-requested"/>
1605 <function name="tp_channel_get_initiator_handle ()" link="telepathy-glib-channel.html#tp-channel-get-initiator-handle"/>
1606 <function name="tp_channel_get_initiator_identifier ()" link="telepathy-glib-channel.html#tp-channel-get-initiator-identifier"/>
1607 <function name="tp_channel_join_async ()" link="telepathy-glib-channel.html#tp-channel-join-async"/>
1608 <function name="tp_channel_join_finish ()" link="telepathy-glib-channel.html#tp-channel-join-finish"/>
1609 <function name="tp_channel_leave_async ()" link="telepathy-glib-channel.html#tp-channel-leave-async"/>
1610 <function name="tp_channel_leave_finish ()" link="telepathy-glib-channel.html#tp-channel-leave-finish"/>
1611 <function name="tp_channel_close_async ()" link="telepathy-glib-channel.html#tp-channel-close-async"/>
1612 <function name="tp_channel_close_finish ()" link="telepathy-glib-channel.html#tp-channel-close-finish"/>
1613 <function name="tp_channel_destroy_async ()" link="telepathy-glib-channel.html#tp-channel-destroy-async"/>
1614 <function name="tp_channel_destroy_finish ()" link="telepathy-glib-channel.html#tp-channel-destroy-finish"/>
1615 <function name="TP_CHANNEL_FEATURE_CHAT_STATES" link="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-CHAT-STATES:CAPS"/>
1616 <function name="tp_channel_get_chat_state ()" link="telepathy-glib-channel.html#tp-channel-get-chat-state"/>
1617 <function name="TP_CHANNEL_FEATURE_GROUP" link="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-GROUP:CAPS"/>
1618 <function name="tp_channel_group_get_flags ()" link="telepathy-glib-channel.html#tp-channel-group-get-flags"/>
1619 <function name="tp_channel_group_get_handle_owner ()" link="telepathy-glib-channel.html#tp-channel-group-get-handle-owner"/>
1620 <function name="tp_channel_group_get_self_handle ()" link="telepathy-glib-channel.html#tp-channel-group-get-self-handle"/>
1621 <function name="tp_channel_group_get_local_pending ()" link="telepathy-glib-channel.html#tp-channel-group-get-local-pending"/>
1622 <function name="tp_channel_group_get_members ()" link="telepathy-glib-channel.html#tp-channel-group-get-members"/>
1623 <function name="tp_channel_group_get_remote_pending ()" link="telepathy-glib-channel.html#tp-channel-group-get-remote-pending"/>
1624 <function name="tp_channel_group_get_local_pending_info ()" link="telepathy-glib-channel.html#tp-channel-group-get-local-pending-info"/>
1625 <function name="TP_ERRORS_REMOVED_FROM_GROUP" link="telepathy-glib-channel.html#TP-ERRORS-REMOVED-FROM-GROUP:CAPS"/>
1626 <function name="TP_CHANNEL_FEATURE_PASSWORD" link="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-PASSWORD:CAPS"/>
1627 <function name="tp_channel_password_needed ()" link="telepathy-glib-channel.html#tp-channel-password-needed"/>
1628 <function name="tp_channel_provide_password_async ()" link="telepathy-glib-channel.html#tp-channel-provide-password-async"/>
1629 <function name="tp_channel_provide_password_finish ()" link="telepathy-glib-channel.html#tp-channel-provide-password-finish"/>
1630 <function name="tp_cli_channel_call_close ()" link="telepathy-glib-channel.html#tp-cli-channel-call-close"/>
1631 <function name="tp_cli_channel_call_get_channel_type ()" link="telepathy-glib-channel.html#tp-cli-channel-call-get-channel-type"/>
1632 <function name="tp_cli_channel_call_get_handle ()" link="telepathy-glib-channel.html#tp-cli-channel-call-get-handle"/>
1633 <function name="tp_cli_channel_call_get_interfaces ()" link="telepathy-glib-channel.html#tp-cli-channel-call-get-interfaces"/>
1634 <function name="tp_cli_channel_callback_for_close ()" link="telepathy-glib-channel.html#tp-cli-channel-callback-for-close"/>
1635 <function name="tp_cli_channel_callback_for_get_channel_type ()" link="telepathy-glib-channel.html#tp-cli-channel-callback-for-get-channel-type"/>
1636 <function name="tp_cli_channel_callback_for_get_handle ()" link="telepathy-glib-channel.html#tp-cli-channel-callback-for-get-handle"/>
1637 <function name="tp_cli_channel_callback_for_get_interfaces ()" link="telepathy-glib-channel.html#tp-cli-channel-callback-for-get-interfaces"/>
1638 <function name="tp_cli_channel_run_close ()" link="telepathy-glib-channel.html#tp-cli-channel-run-close"/>
1639 <function name="tp_cli_channel_run_get_channel_type ()" link="telepathy-glib-channel.html#tp-cli-channel-run-get-channel-type"/>
1640 <function name="tp_cli_channel_run_get_handle ()" link="telepathy-glib-channel.html#tp-cli-channel-run-get-handle"/>
1641 <function name="tp_cli_channel_run_get_interfaces ()" link="telepathy-glib-channel.html#tp-cli-channel-run-get-interfaces"/>
1642 <function name="tp_cli_channel_connect_to_closed ()" link="telepathy-glib-channel.html#tp-cli-channel-connect-to-closed"/>
1643 <function name="tp_cli_channel_signal_callback_closed ()" link="telepathy-glib-channel.html#tp-cli-channel-signal-callback-closed"/>
1644 <function name="tp_cli_channel_interface_destroyable_call_destroy ()" link="telepathy-glib-channel.html#tp-cli-channel-interface-destroyable-call-destroy"/>
1645 <function name="tp_cli_channel_interface_destroyable_callback_for_destroy ()" link="telepathy-glib-channel.html#tp-cli-channel-interface-destroyable-callback-for-destroy"/>
1646 <function name="tp_cli_channel_interface_destroyable_run_destroy ()" link="telepathy-glib-channel.html#tp-cli-channel-interface-destroyable-run-destroy"/>
1647 <function name="The &quot;channel-properties&quot; property" link="telepathy-glib-channel.html#TpChannel--channel-properties"/>
1648 <function name="The &quot;channel-ready&quot; property" link="telepathy-glib-channel.html#TpChannel--channel-ready"/>
1649 <function name="The &quot;connection&quot; property" link="telepathy-glib-channel.html#TpChannel--connection"/>
1650 <function name="The &quot;group-flags&quot; property" link="telepathy-glib-channel.html#TpChannel--group-flags"/>
1651 <function name="The &quot;group-self-handle&quot; property" link="telepathy-glib-channel.html#TpChannel--group-self-handle"/>
1652 <function name="The &quot;identifier&quot; property" link="telepathy-glib-channel.html#TpChannel--identifier"/>
1653 <function name="The &quot;initiator-handle&quot; property" link="telepathy-glib-channel.html#TpChannel--initiator-handle"/>
1654 <function name="The &quot;initiator-identifier&quot; property" link="telepathy-glib-channel.html#TpChannel--initiator-identifier"/>
1655 <function name="The &quot;password-needed&quot; property" link="telepathy-glib-channel.html#TpChannel--password-needed"/>
1656 <function name="The &quot;requested&quot; property" link="telepathy-glib-channel.html#TpChannel--requested"/>
1657 <function name="The &quot;chat-state-changed&quot; signal" link="telepathy-glib-channel.html#TpChannel-chat-state-changed"/>
1658 <function name="The &quot;group-flags-changed&quot; signal" link="telepathy-glib-channel.html#TpChannel-group-flags-changed"/>
1659 <function name="The &quot;group-members-changed&quot; signal" link="telepathy-glib-channel.html#TpChannel-group-members-changed"/>
1660 <function name="The &quot;group-members-changed-detailed&quot; signal" link="telepathy-glib-channel.html#TpChannel-group-members-changed-detailed"/>
1661 <function name="tp_cli_channel_interface_group_run_add_members ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-run-add-members"/>
1662 <function name="tp_cli_channel_interface_group_run_get_all_members ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-run-get-all-members"/>
1663 <function name="tp_cli_channel_interface_group_run_get_group_flags ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-run-get-group-flags"/>
1664 <function name="tp_cli_channel_interface_group_run_get_handle_owners ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-run-get-handle-owners"/>
1665 <function name="tp_cli_channel_interface_group_run_get_local_pending_members ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-run-get-local-pending-members"/>
1666 <function name="tp_cli_channel_interface_group_run_get_local_pending_members_with_info ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-run-get-local-pending-members-with-info"/>
1667 <function name="tp_cli_channel_interface_group_run_get_members ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-run-get-members"/>
1668 <function name="tp_cli_channel_interface_group_run_get_remote_pending_members ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-run-get-remote-pending-members"/>
1669 <function name="tp_cli_channel_interface_group_run_get_self_handle ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-run-get-self-handle"/>
1670 <function name="tp_cli_channel_interface_group_run_remove_members ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-run-remove-members"/>
1671 <function name="tp_cli_channel_interface_group_run_remove_members_with_reason ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-run-remove-members-with-reason"/>
1672 <function name="tp_cli_channel_interface_group_call_add_members ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-call-add-members"/>
1673 <function name="tp_cli_channel_interface_group_call_get_all_members ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-call-get-all-members"/>
1674 <function name="tp_cli_channel_interface_group_call_get_group_flags ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-call-get-group-flags"/>
1675 <function name="tp_cli_channel_interface_group_call_get_handle_owners ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-call-get-handle-owners"/>
1676 <function name="tp_cli_channel_interface_group_call_get_local_pending_members ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-call-get-local-pending-members"/>
1677 <function name="tp_cli_channel_interface_group_call_get_local_pending_members_with_info ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-call-get-local-pending-members-with-info"/>
1678 <function name="tp_cli_channel_interface_group_call_get_members ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-call-get-members"/>
1679 <function name="tp_cli_channel_interface_group_call_get_remote_pending_members ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-call-get-remote-pending-members"/>
1680 <function name="tp_cli_channel_interface_group_call_get_self_handle ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-call-get-self-handle"/>
1681 <function name="tp_cli_channel_interface_group_call_remove_members ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-call-remove-members"/>
1682 <function name="tp_cli_channel_interface_group_call_remove_members_with_reason ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-call-remove-members-with-reason"/>
1683 <function name="tp_cli_channel_interface_group_callback_for_add_members ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-callback-for-add-members"/>
1684 <function name="tp_cli_channel_interface_group_callback_for_get_all_members ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-callback-for-get-all-members"/>
1685 <function name="tp_cli_channel_interface_group_callback_for_get_group_flags ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-callback-for-get-group-flags"/>
1686 <function name="tp_cli_channel_interface_group_callback_for_get_handle_owners ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-callback-for-get-handle-owners"/>
1687 <function name="tp_cli_channel_interface_group_callback_for_get_local_pending_members ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-callback-for-get-local-pending-members"/>
1688 <function name="tp_cli_channel_interface_group_callback_for_get_local_pending_members_with_info ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-callback-for-get-local-pending-members-with-info"/>
1689 <function name="tp_cli_channel_interface_group_callback_for_get_members ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-callback-for-get-members"/>
1690 <function name="tp_cli_channel_interface_group_callback_for_get_remote_pending_members ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-callback-for-get-remote-pending-members"/>
1691 <function name="tp_cli_channel_interface_group_callback_for_get_self_handle ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-callback-for-get-self-handle"/>
1692 <function name="tp_cli_channel_interface_group_callback_for_remove_members ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-callback-for-remove-members"/>
1693 <function name="tp_cli_channel_interface_group_callback_for_remove_members_with_reason ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-callback-for-remove-members-with-reason"/>
1694 <function name="tp_cli_channel_interface_group_connect_to_group_flags_changed ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-connect-to-group-flags-changed"/>
1695 <function name="tp_cli_channel_interface_group_connect_to_members_changed ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-connect-to-members-changed"/>
1696 <function name="tp_cli_channel_interface_group_connect_to_members_changed_detailed ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-connect-to-members-changed-detailed"/>
1697 <function name="tp_cli_channel_interface_group_signal_callback_group_flags_changed ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-signal-callback-group-flags-changed"/>
1698 <function name="tp_cli_channel_interface_group_signal_callback_members_changed ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-signal-callback-members-changed"/>
1699 <function name="tp_cli_channel_interface_group_signal_callback_members_changed_detailed ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-signal-callback-members-changed-detailed"/>
1700 <function name="tp_cli_channel_interface_group_connect_to_handle_owners_changed ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-connect-to-handle-owners-changed"/>
1701 <function name="tp_cli_channel_interface_group_connect_to_self_handle_changed ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-connect-to-self-handle-changed"/>
1702 <function name="tp_cli_channel_interface_group_signal_callback_handle_owners_changed ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-signal-callback-handle-owners-changed"/>
1703 <function name="tp_cli_channel_interface_group_signal_callback_self_handle_changed ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-signal-callback-self-handle-changed"/>
1704 <function name="tp_cli_channel_interface_conference_connect_to_channel_merged ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-conference-connect-to-channel-merged"/>
1705 <function name="tp_cli_channel_interface_conference_connect_to_channel_removed ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-conference-connect-to-channel-removed"/>
1706 <function name="tp_cli_channel_interface_conference_signal_callback_channel_merged ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-conference-signal-callback-channel-merged"/>
1707 <function name="tp_cli_channel_interface_conference_signal_callback_channel_removed ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-conference-signal-callback-channel-removed"/>
1708 <function name="tp_cli_channel_type_text_run_acknowledge_pending_messages ()" link="telepathy-glib-channel-text.html#tp-cli-channel-type-text-run-acknowledge-pending-messages"/>
1709 <function name="tp_cli_channel_type_text_run_get_message_types ()" link="telepathy-glib-channel-text.html#tp-cli-channel-type-text-run-get-message-types"/>
1710 <function name="tp_cli_channel_type_text_run_list_pending_messages ()" link="telepathy-glib-channel-text.html#tp-cli-channel-type-text-run-list-pending-messages"/>
1711 <function name="tp_cli_channel_type_text_run_send ()" link="telepathy-glib-channel-text.html#tp-cli-channel-type-text-run-send"/>
1712 <function name="tp_cli_channel_type_text_call_acknowledge_pending_messages ()" link="telepathy-glib-channel-text.html#tp-cli-channel-type-text-call-acknowledge-pending-messages"/>
1713 <function name="tp_cli_channel_type_text_call_get_message_types ()" link="telepathy-glib-channel-text.html#tp-cli-channel-type-text-call-get-message-types"/>
1714 <function name="tp_cli_channel_type_text_call_list_pending_messages ()" link="telepathy-glib-channel-text.html#tp-cli-channel-type-text-call-list-pending-messages"/>
1715 <function name="tp_cli_channel_type_text_call_send ()" link="telepathy-glib-channel-text.html#tp-cli-channel-type-text-call-send"/>
1716 <function name="tp_cli_channel_type_text_callback_for_acknowledge_pending_messages ()" link="telepathy-glib-channel-text.html#tp-cli-channel-type-text-callback-for-acknowledge-pending-messages"/>
1717 <function name="tp_cli_channel_type_text_callback_for_get_message_types ()" link="telepathy-glib-channel-text.html#tp-cli-channel-type-text-callback-for-get-message-types"/>
1718 <function name="tp_cli_channel_type_text_callback_for_list_pending_messages ()" link="telepathy-glib-channel-text.html#tp-cli-channel-type-text-callback-for-list-pending-messages"/>
1719 <function name="tp_cli_channel_type_text_callback_for_send ()" link="telepathy-glib-channel-text.html#tp-cli-channel-type-text-callback-for-send"/>
1720 <function name="tp_cli_channel_type_text_connect_to_lost_message ()" link="telepathy-glib-channel-text.html#tp-cli-channel-type-text-connect-to-lost-message"/>
1721 <function name="tp_cli_channel_type_text_connect_to_received ()" link="telepathy-glib-channel-text.html#tp-cli-channel-type-text-connect-to-received"/>
1722 <function name="tp_cli_channel_type_text_connect_to_send_error ()" link="telepathy-glib-channel-text.html#tp-cli-channel-type-text-connect-to-send-error"/>
1723 <function name="tp_cli_channel_type_text_connect_to_sent ()" link="telepathy-glib-channel-text.html#tp-cli-channel-type-text-connect-to-sent"/>
1724 <function name="tp_cli_channel_type_text_signal_callback_lost_message ()" link="telepathy-glib-channel-text.html#tp-cli-channel-type-text-signal-callback-lost-message"/>
1725 <function name="tp_cli_channel_type_text_signal_callback_received ()" link="telepathy-glib-channel-text.html#tp-cli-channel-type-text-signal-callback-received"/>
1726 <function name="tp_cli_channel_type_text_signal_callback_send_error ()" link="telepathy-glib-channel-text.html#tp-cli-channel-type-text-signal-callback-send-error"/>
1727 <function name="tp_cli_channel_type_text_signal_callback_sent ()" link="telepathy-glib-channel-text.html#tp-cli-channel-type-text-signal-callback-sent"/>
1728 <function name="tp_cli_channel_interface_messages_callback_for_get_pending_message_content ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-messages-callback-for-get-pending-message-content"/>
1729 <function name="tp_cli_channel_interface_messages_call_get_pending_message_content ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-messages-call-get-pending-message-content"/>
1730 <function name="tp_cli_channel_interface_messages_run_get_pending_message_content ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-messages-run-get-pending-message-content"/>
1731 <function name="tp_cli_channel_interface_messages_callback_for_send_message ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-messages-callback-for-send-message"/>
1732 <function name="tp_cli_channel_interface_messages_call_send_message ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-messages-call-send-message"/>
1733 <function name="tp_cli_channel_interface_messages_run_send_message ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-messages-run-send-message"/>
1734 <function name="tp_cli_channel_interface_messages_signal_callback_message_received ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-messages-signal-callback-message-received"/>
1735 <function name="tp_cli_channel_interface_messages_connect_to_message_received ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-messages-connect-to-message-received"/>
1736 <function name="tp_cli_channel_interface_messages_signal_callback_message_sent ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-messages-signal-callback-message-sent"/>
1737 <function name="tp_cli_channel_interface_messages_connect_to_message_sent ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-messages-connect-to-message-sent"/>
1738 <function name="tp_cli_channel_interface_messages_signal_callback_pending_messages_removed ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-messages-signal-callback-pending-messages-removed"/>
1739 <function name="tp_cli_channel_interface_messages_connect_to_pending_messages_removed ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-messages-connect-to-pending-messages-removed"/>
1740 <function name="tp_cli_channel_interface_chat_state_run_set_chat_state ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-chat-state-run-set-chat-state"/>
1741 <function name="tp_cli_channel_interface_chat_state_call_set_chat_state ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-chat-state-call-set-chat-state"/>
1742 <function name="tp_cli_channel_interface_chat_state_callback_for_set_chat_state ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-chat-state-callback-for-set-chat-state"/>
1743 <function name="tp_cli_channel_interface_chat_state_connect_to_chat_state_changed ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-chat-state-connect-to-chat-state-changed"/>
1744 <function name="tp_cli_channel_interface_chat_state_signal_callback_chat_state_changed ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-chat-state-signal-callback-chat-state-changed"/>
1745 <function name="tp_cli_channel_interface_password_run_get_password_flags ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-password-run-get-password-flags"/>
1746 <function name="tp_cli_channel_interface_password_run_provide_password ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-password-run-provide-password"/>
1747 <function name="tp_cli_channel_interface_password_call_get_password_flags ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-password-call-get-password-flags"/>
1748 <function name="tp_cli_channel_interface_password_call_provide_password ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-password-call-provide-password"/>
1749 <function name="tp_cli_channel_interface_password_callback_for_get_password_flags ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-password-callback-for-get-password-flags"/>
1750 <function name="tp_cli_channel_interface_password_callback_for_provide_password ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-password-callback-for-provide-password"/>
1751 <function name="tp_cli_channel_interface_password_connect_to_password_flags_changed ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-password-connect-to-password-flags-changed"/>
1752 <function name="tp_cli_channel_interface_password_signal_callback_password_flags_changed ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-password-signal-callback-password-flags-changed"/>
1753 <function name="tp_cli_channel_interface_sms_connect_to_sms_channel_changed ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-sms-connect-to-sms-channel-changed"/>
1754 <function name="tp_cli_channel_interface_sms_signal_callback_sms_channel_changed ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-sms-signal-callback-sms-channel-changed"/>
1755 <function name="tp_cli_channel_interface_sms_call_get_sms_length ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-sms-call-get-sms-length"/>
1756 <function name="tp_cli_channel_interface_sms_callback_for_get_sms_length ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-sms-callback-for-get-sms-length"/>
1757 <function name="tp_cli_channel_interface_sms_run_get_sms_length ()" link="telepathy-glib-channel-text.html#tp-cli-channel-interface-sms-run-get-sms-length"/>
1758 <function name="tp_cli_channel_type_streamed_media_call_list_streams ()" link="telepathy-glib-channel-media.html#tp-cli-channel-type-streamed-media-call-list-streams"/>
1759 <function name="tp_cli_channel_type_streamed_media_call_remove_streams ()" link="telepathy-glib-channel-media.html#tp-cli-channel-type-streamed-media-call-remove-streams"/>
1760 <function name="tp_cli_channel_type_streamed_media_call_request_stream_direction ()" link="telepathy-glib-channel-media.html#tp-cli-channel-type-streamed-media-call-request-stream-direction"/>
1761 <function name="tp_cli_channel_type_streamed_media_call_request_streams ()" link="telepathy-glib-channel-media.html#tp-cli-channel-type-streamed-media-call-request-streams"/>
1762 <function name="tp_cli_channel_type_streamed_media_callback_for_list_streams ()" link="telepathy-glib-channel-media.html#tp-cli-channel-type-streamed-media-callback-for-list-streams"/>
1763 <function name="tp_cli_channel_type_streamed_media_callback_for_remove_streams ()" link="telepathy-glib-channel-media.html#tp-cli-channel-type-streamed-media-callback-for-remove-streams"/>
1764 <function name="tp_cli_channel_type_streamed_media_callback_for_request_stream_direction ()" link="telepathy-glib-channel-media.html#tp-cli-channel-type-streamed-media-callback-for-request-stream-direction"/>
1765 <function name="tp_cli_channel_type_streamed_media_callback_for_request_streams ()" link="telepathy-glib-channel-media.html#tp-cli-channel-type-streamed-media-callback-for-request-streams"/>
1766 <function name="tp_cli_channel_type_streamed_media_run_list_streams ()" link="telepathy-glib-channel-media.html#tp-cli-channel-type-streamed-media-run-list-streams"/>
1767 <function name="tp_cli_channel_type_streamed_media_run_remove_streams ()" link="telepathy-glib-channel-media.html#tp-cli-channel-type-streamed-media-run-remove-streams"/>
1768 <function name="tp_cli_channel_type_streamed_media_run_request_stream_direction ()" link="telepathy-glib-channel-media.html#tp-cli-channel-type-streamed-media-run-request-stream-direction"/>
1769 <function name="tp_cli_channel_type_streamed_media_run_request_streams ()" link="telepathy-glib-channel-media.html#tp-cli-channel-type-streamed-media-run-request-streams"/>
1770 <function name="tp_cli_channel_type_streamed_media_connect_to_stream_added ()" link="telepathy-glib-channel-media.html#tp-cli-channel-type-streamed-media-connect-to-stream-added"/>
1771 <function name="tp_cli_channel_type_streamed_media_connect_to_stream_direction_changed ()" link="telepathy-glib-channel-media.html#tp-cli-channel-type-streamed-media-connect-to-stream-direction-changed"/>
1772 <function name="tp_cli_channel_type_streamed_media_connect_to_stream_error ()" link="telepathy-glib-channel-media.html#tp-cli-channel-type-streamed-media-connect-to-stream-error"/>
1773 <function name="tp_cli_channel_type_streamed_media_connect_to_stream_removed ()" link="telepathy-glib-channel-media.html#tp-cli-channel-type-streamed-media-connect-to-stream-removed"/>
1774 <function name="tp_cli_channel_type_streamed_media_connect_to_stream_state_changed ()" link="telepathy-glib-channel-media.html#tp-cli-channel-type-streamed-media-connect-to-stream-state-changed"/>
1775 <function name="tp_cli_channel_type_streamed_media_signal_callback_stream_added ()" link="telepathy-glib-channel-media.html#tp-cli-channel-type-streamed-media-signal-callback-stream-added"/>
1776 <function name="tp_cli_channel_type_streamed_media_signal_callback_stream_direction_changed ()" link="telepathy-glib-channel-media.html#tp-cli-channel-type-streamed-media-signal-callback-stream-direction-changed"/>
1777 <function name="tp_cli_channel_type_streamed_media_signal_callback_stream_error ()" link="telepathy-glib-channel-media.html#tp-cli-channel-type-streamed-media-signal-callback-stream-error"/>
1778 <function name="tp_cli_channel_type_streamed_media_signal_callback_stream_removed ()" link="telepathy-glib-channel-media.html#tp-cli-channel-type-streamed-media-signal-callback-stream-removed"/>
1779 <function name="tp_cli_channel_type_streamed_media_signal_callback_stream_state_changed ()" link="telepathy-glib-channel-media.html#tp-cli-channel-type-streamed-media-signal-callback-stream-state-changed"/>
1780 <function name="tp_cli_channel_interface_call_state_call_get_call_states ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-call-state-call-get-call-states"/>
1781 <function name="tp_cli_channel_interface_call_state_callback_for_get_call_states ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-call-state-callback-for-get-call-states"/>
1782 <function name="tp_cli_channel_interface_call_state_connect_to_call_state_changed ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-call-state-connect-to-call-state-changed"/>
1783 <function name="tp_cli_channel_interface_call_state_run_get_call_states ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-call-state-run-get-call-states"/>
1784 <function name="tp_cli_channel_interface_call_state_signal_callback_call_state_changed ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-call-state-signal-callback-call-state-changed"/>
1785 <function name="tp_cli_channel_interface_dtmf_run_start_tone ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-dtmf-run-start-tone"/>
1786 <function name="tp_cli_channel_interface_dtmf_run_stop_tone ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-dtmf-run-stop-tone"/>
1787 <function name="tp_cli_channel_interface_dtmf_call_start_tone ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-dtmf-call-start-tone"/>
1788 <function name="tp_cli_channel_interface_dtmf_call_stop_tone ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-dtmf-call-stop-tone"/>
1789 <function name="tp_cli_channel_interface_dtmf_callback_for_start_tone ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-dtmf-callback-for-start-tone"/>
1790 <function name="tp_cli_channel_interface_dtmf_callback_for_stop_tone ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-dtmf-callback-for-stop-tone"/>
1791 <function name="tp_cli_channel_interface_dtmf_call_multiple_tones ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-dtmf-call-multiple-tones"/>
1792 <function name="tp_cli_channel_interface_dtmf_callback_for_multiple_tones ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-dtmf-callback-for-multiple-tones"/>
1793 <function name="tp_cli_channel_interface_dtmf_connect_to_sending_tones ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-dtmf-connect-to-sending-tones"/>
1794 <function name="tp_cli_channel_interface_dtmf_signal_callback_sending_tones ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-dtmf-signal-callback-sending-tones"/>
1795 <function name="tp_cli_channel_interface_dtmf_connect_to_stopped_tones ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-dtmf-connect-to-stopped-tones"/>
1796 <function name="tp_cli_channel_interface_dtmf_signal_callback_stopped_tones ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-dtmf-signal-callback-stopped-tones"/>
1797 <function name="tp_cli_channel_interface_dtmf_connect_to_tones_deferred ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-dtmf-connect-to-tones-deferred"/>
1798 <function name="tp_cli_channel_interface_dtmf_signal_callback_tones_deferred ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-dtmf-signal-callback-tones-deferred"/>
1799 <function name="tp_cli_channel_interface_hold_callback_for_get_hold_state ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-hold-callback-for-get-hold-state"/>
1800 <function name="tp_cli_channel_interface_hold_call_get_hold_state ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-hold-call-get-hold-state"/>
1801 <function name="tp_cli_channel_interface_hold_run_get_hold_state ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-hold-run-get-hold-state"/>
1802 <function name="tp_cli_channel_interface_hold_callback_for_request_hold ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-hold-callback-for-request-hold"/>
1803 <function name="tp_cli_channel_interface_hold_call_request_hold ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-hold-call-request-hold"/>
1804 <function name="tp_cli_channel_interface_hold_run_request_hold ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-hold-run-request-hold"/>
1805 <function name="tp_cli_channel_interface_hold_signal_callback_hold_state_changed ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-hold-signal-callback-hold-state-changed"/>
1806 <function name="tp_cli_channel_interface_hold_connect_to_hold_state_changed ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-hold-connect-to-hold-state-changed"/>
1807 <function name="tp_cli_channel_interface_media_signalling_run_get_session_handlers ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-media-signalling-run-get-session-handlers"/>
1808 <function name="tp_cli_channel_interface_media_signalling_call_get_session_handlers ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-media-signalling-call-get-session-handlers"/>
1809 <function name="tp_cli_channel_interface_media_signalling_callback_for_get_session_handlers ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-media-signalling-callback-for-get-session-handlers"/>
1810 <function name="tp_cli_channel_interface_media_signalling_connect_to_new_session_handler ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-media-signalling-connect-to-new-session-handler"/>
1811 <function name="tp_cli_channel_interface_media_signalling_signal_callback_new_session_handler ()" link="telepathy-glib-channel-media.html#tp-cli-channel-interface-media-signalling-signal-callback-new-session-handler"/>
1812 <function name="tp_cli_channel_type_file_transfer_call_accept_file ()" link="telepathy-glib-channel-file-transfer.html#tp-cli-channel-type-file-transfer-call-accept-file"/>
1813 <function name="tp_cli_channel_type_file_transfer_call_provide_file ()" link="telepathy-glib-channel-file-transfer.html#tp-cli-channel-type-file-transfer-call-provide-file"/>
1814 <function name="tp_cli_channel_type_file_transfer_callback_for_accept_file ()" link="telepathy-glib-channel-file-transfer.html#tp-cli-channel-type-file-transfer-callback-for-accept-file"/>
1815 <function name="tp_cli_channel_type_file_transfer_callback_for_provide_file ()" link="telepathy-glib-channel-file-transfer.html#tp-cli-channel-type-file-transfer-callback-for-provide-file"/>
1816 <function name="tp_cli_channel_type_file_transfer_connect_to_file_transfer_state_changed ()" link="telepathy-glib-channel-file-transfer.html#tp-cli-channel-type-file-transfer-connect-to-file-transfer-state-changed"/>
1817 <function name="tp_cli_channel_type_file_transfer_connect_to_initial_offset_defined ()" link="telepathy-glib-channel-file-transfer.html#tp-cli-channel-type-file-transfer-connect-to-initial-offset-defined"/>
1818 <function name="tp_cli_channel_type_file_transfer_connect_to_transferred_bytes_changed ()" link="telepathy-glib-channel-file-transfer.html#tp-cli-channel-type-file-transfer-connect-to-transferred-bytes-changed"/>
1819 <function name="tp_cli_channel_type_file_transfer_connect_to_uri_defined ()" link="telepathy-glib-channel-file-transfer.html#tp-cli-channel-type-file-transfer-connect-to-uri-defined"/>
1820 <function name="tp_cli_channel_type_file_transfer_run_accept_file ()" link="telepathy-glib-channel-file-transfer.html#tp-cli-channel-type-file-transfer-run-accept-file"/>
1821 <function name="tp_cli_channel_type_file_transfer_run_provide_file ()" link="telepathy-glib-channel-file-transfer.html#tp-cli-channel-type-file-transfer-run-provide-file"/>
1822 <function name="tp_cli_channel_type_file_transfer_signal_callback_file_transfer_state_changed ()" link="telepathy-glib-channel-file-transfer.html#tp-cli-channel-type-file-transfer-signal-callback-file-transfer-state-changed"/>
1823 <function name="tp_cli_channel_type_file_transfer_signal_callback_initial_offset_defined ()" link="telepathy-glib-channel-file-transfer.html#tp-cli-channel-type-file-transfer-signal-callback-initial-offset-defined"/>
1824 <function name="tp_cli_channel_type_file_transfer_signal_callback_transferred_bytes_changed ()" link="telepathy-glib-channel-file-transfer.html#tp-cli-channel-type-file-transfer-signal-callback-transferred-bytes-changed"/>
1825 <function name="tp_cli_channel_type_file_transfer_signal_callback_uri_defined ()" link="telepathy-glib-channel-file-transfer.html#tp-cli-channel-type-file-transfer-signal-callback-uri-defined"/>
1826 <function name="tp_cli_channel_type_tubes_run_accept_d_bus_tube ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-run-accept-d-bus-tube"/>
1827 <function name="tp_cli_channel_type_tubes_run_accept_stream_tube ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-run-accept-stream-tube"/>
1828 <function name="tp_cli_channel_type_tubes_run_close_tube ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-run-close-tube"/>
1829 <function name="tp_cli_channel_type_tubes_run_get_available_stream_tube_types ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-run-get-available-stream-tube-types"/>
1830 <function name="tp_cli_channel_type_tubes_run_get_available_tube_types ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-run-get-available-tube-types"/>
1831 <function name="tp_cli_channel_type_tubes_run_get_d_bus_names ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-run-get-d-bus-names"/>
1832 <function name="tp_cli_channel_type_tubes_run_get_d_bus_tube_address ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-run-get-d-bus-tube-address"/>
1833 <function name="tp_cli_channel_type_tubes_run_get_stream_tube_socket_address ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-run-get-stream-tube-socket-address"/>
1834 <function name="tp_cli_channel_type_tubes_run_list_tubes ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-run-list-tubes"/>
1835 <function name="tp_cli_channel_type_tubes_run_offer_d_bus_tube ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-run-offer-d-bus-tube"/>
1836 <function name="tp_cli_channel_type_tubes_run_offer_stream_tube ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-run-offer-stream-tube"/>
1837 <function name="tp_cli_channel_type_tubes_call_accept_d_bus_tube ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-call-accept-d-bus-tube"/>
1838 <function name="tp_cli_channel_type_tubes_call_accept_stream_tube ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-call-accept-stream-tube"/>
1839 <function name="tp_cli_channel_type_tubes_call_close_tube ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-call-close-tube"/>
1840 <function name="tp_cli_channel_type_tubes_call_get_available_stream_tube_types ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-call-get-available-stream-tube-types"/>
1841 <function name="tp_cli_channel_type_tubes_call_get_available_tube_types ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-call-get-available-tube-types"/>
1842 <function name="tp_cli_channel_type_tubes_call_get_d_bus_names ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-call-get-d-bus-names"/>
1843 <function name="tp_cli_channel_type_tubes_call_get_d_bus_tube_address ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-call-get-d-bus-tube-address"/>
1844 <function name="tp_cli_channel_type_tubes_call_get_stream_tube_socket_address ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-call-get-stream-tube-socket-address"/>
1845 <function name="tp_cli_channel_type_tubes_call_list_tubes ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-call-list-tubes"/>
1846 <function name="tp_cli_channel_type_tubes_call_offer_d_bus_tube ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-call-offer-d-bus-tube"/>
1847 <function name="tp_cli_channel_type_tubes_call_offer_stream_tube ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-call-offer-stream-tube"/>
1848 <function name="tp_cli_channel_type_tubes_callback_for_accept_d_bus_tube ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-callback-for-accept-d-bus-tube"/>
1849 <function name="tp_cli_channel_type_tubes_callback_for_accept_stream_tube ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-callback-for-accept-stream-tube"/>
1850 <function name="tp_cli_channel_type_tubes_callback_for_close_tube ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-callback-for-close-tube"/>
1851 <function name="tp_cli_channel_type_tubes_callback_for_get_available_stream_tube_types ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-callback-for-get-available-stream-tube-types"/>
1852 <function name="tp_cli_channel_type_tubes_callback_for_get_available_tube_types ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-callback-for-get-available-tube-types"/>
1853 <function name="tp_cli_channel_type_tubes_callback_for_get_d_bus_names ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-callback-for-get-d-bus-names"/>
1854 <function name="tp_cli_channel_type_tubes_callback_for_get_d_bus_tube_address ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-callback-for-get-d-bus-tube-address"/>
1855 <function name="tp_cli_channel_type_tubes_callback_for_get_stream_tube_socket_address ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-callback-for-get-stream-tube-socket-address"/>
1856 <function name="tp_cli_channel_type_tubes_callback_for_list_tubes ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-callback-for-list-tubes"/>
1857 <function name="tp_cli_channel_type_tubes_callback_for_offer_d_bus_tube ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-callback-for-offer-d-bus-tube"/>
1858 <function name="tp_cli_channel_type_tubes_callback_for_offer_stream_tube ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-callback-for-offer-stream-tube"/>
1859 <function name="tp_cli_channel_type_tubes_connect_to_d_bus_names_changed ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-connect-to-d-bus-names-changed"/>
1860 <function name="tp_cli_channel_type_tubes_connect_to_new_tube ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-connect-to-new-tube"/>
1861 <function name="tp_cli_channel_type_tubes_connect_to_stream_tube_new_connection ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-connect-to-stream-tube-new-connection"/>
1862 <function name="tp_cli_channel_type_tubes_connect_to_tube_closed ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-connect-to-tube-closed"/>
1863 <function name="tp_cli_channel_type_tubes_connect_to_tube_state_changed ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-connect-to-tube-state-changed"/>
1864 <function name="tp_cli_channel_type_tubes_signal_callback_d_bus_names_changed ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-signal-callback-d-bus-names-changed"/>
1865 <function name="tp_cli_channel_type_tubes_signal_callback_new_tube ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-signal-callback-new-tube"/>
1866 <function name="tp_cli_channel_type_tubes_signal_callback_stream_tube_new_connection ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-signal-callback-stream-tube-new-connection"/>
1867 <function name="tp_cli_channel_type_tubes_signal_callback_tube_closed ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-signal-callback-tube-closed"/>
1868 <function name="tp_cli_channel_type_tubes_signal_callback_tube_state_changed ()" link="telepathy-glib-channel-tubes.html#tp-cli-channel-type-tubes-signal-callback-tube-state-changed"/>
1869 <function name="tp_cli_channel_interface_tube_connect_to_tube_channel_state_changed ()" link="telepathy-glib-channel-tube.html#tp-cli-channel-interface-tube-connect-to-tube-channel-state-changed"/>
1870 <function name="tp_cli_channel_interface_tube_signal_callback_tube_channel_state_changed ()" link="telepathy-glib-channel-tube.html#tp-cli-channel-interface-tube-signal-callback-tube-channel-state-changed"/>
1871 <function name="tp_cli_channel_type_stream_tube_run_offer ()" link="telepathy-glib-channel-tube.html#tp-cli-channel-type-stream-tube-run-offer"/>
1872 <function name="tp_cli_channel_type_stream_tube_run_accept ()" link="telepathy-glib-channel-tube.html#tp-cli-channel-type-stream-tube-run-accept"/>
1873 <function name="tp_cli_channel_type_stream_tube_call_offer ()" link="telepathy-glib-channel-tube.html#tp-cli-channel-type-stream-tube-call-offer"/>
1874 <function name="tp_cli_channel_type_stream_tube_call_accept ()" link="telepathy-glib-channel-tube.html#tp-cli-channel-type-stream-tube-call-accept"/>
1875 <function name="tp_cli_channel_type_stream_tube_callback_for_offer ()" link="telepathy-glib-channel-tube.html#tp-cli-channel-type-stream-tube-callback-for-offer"/>
1876 <function name="tp_cli_channel_type_stream_tube_callback_for_accept ()" link="telepathy-glib-channel-tube.html#tp-cli-channel-type-stream-tube-callback-for-accept"/>
1877 <function name="tp_cli_channel_type_stream_tube_connect_to_new_remote_connection ()" link="telepathy-glib-channel-tube.html#tp-cli-channel-type-stream-tube-connect-to-new-remote-connection"/>
1878 <function name="tp_cli_channel_type_stream_tube_connect_to_new_local_connection ()" link="telepathy-glib-channel-tube.html#tp-cli-channel-type-stream-tube-connect-to-new-local-connection"/>
1879 <function name="tp_cli_channel_type_stream_tube_connect_to_connection_closed ()" link="telepathy-glib-channel-tube.html#tp-cli-channel-type-stream-tube-connect-to-connection-closed"/>
1880 <function name="tp_cli_channel_type_stream_tube_signal_callback_new_remote_connection ()" link="telepathy-glib-channel-tube.html#tp-cli-channel-type-stream-tube-signal-callback-new-remote-connection"/>
1881 <function name="tp_cli_channel_type_stream_tube_signal_callback_new_local_connection ()" link="telepathy-glib-channel-tube.html#tp-cli-channel-type-stream-tube-signal-callback-new-local-connection"/>
1882 <function name="tp_cli_channel_type_stream_tube_signal_callback_connection_closed ()" link="telepathy-glib-channel-tube.html#tp-cli-channel-type-stream-tube-signal-callback-connection-closed"/>
1883 <function name="tp_cli_channel_type_dbus_tube_run_offer ()" link="telepathy-glib-channel-tube.html#tp-cli-channel-type-dbus-tube-run-offer"/>
1884 <function name="tp_cli_channel_type_dbus_tube_run_accept ()" link="telepathy-glib-channel-tube.html#tp-cli-channel-type-dbus-tube-run-accept"/>
1885 <function name="tp_cli_channel_type_dbus_tube_call_offer ()" link="telepathy-glib-channel-tube.html#tp-cli-channel-type-dbus-tube-call-offer"/>
1886 <function name="tp_cli_channel_type_dbus_tube_call_accept ()" link="telepathy-glib-channel-tube.html#tp-cli-channel-type-dbus-tube-call-accept"/>
1887 <function name="tp_cli_channel_type_dbus_tube_callback_for_offer ()" link="telepathy-glib-channel-tube.html#tp-cli-channel-type-dbus-tube-callback-for-offer"/>
1888 <function name="tp_cli_channel_type_dbus_tube_callback_for_accept ()" link="telepathy-glib-channel-tube.html#tp-cli-channel-type-dbus-tube-callback-for-accept"/>
1889 <function name="tp_cli_channel_type_dbus_tube_connect_to_dbus_names_changed ()" link="telepathy-glib-channel-tube.html#tp-cli-channel-type-dbus-tube-connect-to-dbus-names-changed"/>
1890 <function name="tp_cli_channel_type_dbus_tube_signal_callback_dbus_names_changed ()" link="telepathy-glib-channel-tube.html#tp-cli-channel-type-dbus-tube-signal-callback-dbus-names-changed"/>
1891 <function name="tp_cli_channel_type_room_list_call_get_listing_rooms ()" link="telepathy-glib-channel-roomlist.html#tp-cli-channel-type-room-list-call-get-listing-rooms"/>
1892 <function name="tp_cli_channel_type_room_list_call_list_rooms ()" link="telepathy-glib-channel-roomlist.html#tp-cli-channel-type-room-list-call-list-rooms"/>
1893 <function name="tp_cli_channel_type_room_list_call_stop_listing ()" link="telepathy-glib-channel-roomlist.html#tp-cli-channel-type-room-list-call-stop-listing"/>
1894 <function name="tp_cli_channel_type_room_list_callback_for_get_listing_rooms ()" link="telepathy-glib-channel-roomlist.html#tp-cli-channel-type-room-list-callback-for-get-listing-rooms"/>
1895 <function name="tp_cli_channel_type_room_list_callback_for_list_rooms ()" link="telepathy-glib-channel-roomlist.html#tp-cli-channel-type-room-list-callback-for-list-rooms"/>
1896 <function name="tp_cli_channel_type_room_list_callback_for_stop_listing ()" link="telepathy-glib-channel-roomlist.html#tp-cli-channel-type-room-list-callback-for-stop-listing"/>
1897 <function name="tp_cli_channel_type_room_list_run_get_listing_rooms ()" link="telepathy-glib-channel-roomlist.html#tp-cli-channel-type-room-list-run-get-listing-rooms"/>
1898 <function name="tp_cli_channel_type_room_list_run_list_rooms ()" link="telepathy-glib-channel-roomlist.html#tp-cli-channel-type-room-list-run-list-rooms"/>
1899 <function name="tp_cli_channel_type_room_list_run_stop_listing ()" link="telepathy-glib-channel-roomlist.html#tp-cli-channel-type-room-list-run-stop-listing"/>
1900 <function name="tp_cli_channel_type_room_list_connect_to_got_rooms ()" link="telepathy-glib-channel-roomlist.html#tp-cli-channel-type-room-list-connect-to-got-rooms"/>
1901 <function name="tp_cli_channel_type_room_list_connect_to_listing_rooms ()" link="telepathy-glib-channel-roomlist.html#tp-cli-channel-type-room-list-connect-to-listing-rooms"/>
1902 <function name="tp_cli_channel_type_room_list_signal_callback_got_rooms ()" link="telepathy-glib-channel-roomlist.html#tp-cli-channel-type-room-list-signal-callback-got-rooms"/>
1903 <function name="tp_cli_channel_type_room_list_signal_callback_listing_rooms ()" link="telepathy-glib-channel-roomlist.html#tp-cli-channel-type-room-list-signal-callback-listing-rooms"/>
1904 <function name="tp_cli_channel_type_contact_search_call_more ()" link="telepathy-glib-channel-contactsearch.html#tp-cli-channel-type-contact-search-call-more"/>
1905 <function name="tp_cli_channel_type_contact_search_call_search ()" link="telepathy-glib-channel-contactsearch.html#tp-cli-channel-type-contact-search-call-search"/>
1906 <function name="tp_cli_channel_type_contact_search_call_stop ()" link="telepathy-glib-channel-contactsearch.html#tp-cli-channel-type-contact-search-call-stop"/>
1907 <function name="tp_cli_channel_type_contact_search_callback_for_more ()" link="telepathy-glib-channel-contactsearch.html#tp-cli-channel-type-contact-search-callback-for-more"/>
1908 <function name="tp_cli_channel_type_contact_search_callback_for_search ()" link="telepathy-glib-channel-contactsearch.html#tp-cli-channel-type-contact-search-callback-for-search"/>
1909 <function name="tp_cli_channel_type_contact_search_callback_for_stop ()" link="telepathy-glib-channel-contactsearch.html#tp-cli-channel-type-contact-search-callback-for-stop"/>
1910 <function name="tp_cli_channel_type_contact_search_connect_to_search_result_received ()" link="telepathy-glib-channel-contactsearch.html#tp-cli-channel-type-contact-search-connect-to-search-result-received"/>
1911 <function name="tp_cli_channel_type_contact_search_connect_to_search_state_changed ()" link="telepathy-glib-channel-contactsearch.html#tp-cli-channel-type-contact-search-connect-to-search-state-changed"/>
1912 <function name="tp_cli_channel_type_contact_search_run_more ()" link="telepathy-glib-channel-contactsearch.html#tp-cli-channel-type-contact-search-run-more"/>
1913 <function name="tp_cli_channel_type_contact_search_run_search ()" link="telepathy-glib-channel-contactsearch.html#tp-cli-channel-type-contact-search-run-search"/>
1914 <function name="tp_cli_channel_type_contact_search_run_stop ()" link="telepathy-glib-channel-contactsearch.html#tp-cli-channel-type-contact-search-run-stop"/>
1915 <function name="tp_cli_channel_type_contact_search_signal_callback_search_result_received ()" link="telepathy-glib-channel-contactsearch.html#tp-cli-channel-type-contact-search-signal-callback-search-result-received"/>
1916 <function name="tp_cli_channel_type_contact_search_signal_callback_search_state_changed ()" link="telepathy-glib-channel-contactsearch.html#tp-cli-channel-type-contact-search-signal-callback-search-state-changed"/>
1917 <function name="tp_cli_channel_interface_sasl_authentication_call_abort_sasl ()" link="telepathy-glib-channel-auth.html#tp-cli-channel-interface-sasl-authentication-call-abort-sasl"/>
1918 <function name="tp_cli_channel_interface_sasl_authentication_call_accept_sasl ()" link="telepathy-glib-channel-auth.html#tp-cli-channel-interface-sasl-authentication-call-accept-sasl"/>
1919 <function name="tp_cli_channel_interface_sasl_authentication_call_respond ()" link="telepathy-glib-channel-auth.html#tp-cli-channel-interface-sasl-authentication-call-respond"/>
1920 <function name="tp_cli_channel_interface_sasl_authentication_call_start_mechanism ()" link="telepathy-glib-channel-auth.html#tp-cli-channel-interface-sasl-authentication-call-start-mechanism"/>
1921 <function name="tp_cli_channel_interface_sasl_authentication_call_start_mechanism_with_data ()" link="telepathy-glib-channel-auth.html#tp-cli-channel-interface-sasl-authentication-call-start-mechanism-with-data"/>
1922 <function name="tp_cli_channel_interface_sasl_authentication_callback_for_abort_sasl ()" link="telepathy-glib-channel-auth.html#tp-cli-channel-interface-sasl-authentication-callback-for-abort-sasl"/>
1923 <function name="tp_cli_channel_interface_sasl_authentication_callback_for_accept_sasl ()" link="telepathy-glib-channel-auth.html#tp-cli-channel-interface-sasl-authentication-callback-for-accept-sasl"/>
1924 <function name="tp_cli_channel_interface_sasl_authentication_callback_for_respond ()" link="telepathy-glib-channel-auth.html#tp-cli-channel-interface-sasl-authentication-callback-for-respond"/>
1925 <function name="tp_cli_channel_interface_sasl_authentication_callback_for_start_mechanism ()" link="telepathy-glib-channel-auth.html#tp-cli-channel-interface-sasl-authentication-callback-for-start-mechanism"/>
1926 <function name="tp_cli_channel_interface_sasl_authentication_callback_for_start_mechanism_with_data ()" link="telepathy-glib-channel-auth.html#tp-cli-channel-interface-sasl-authentication-callback-for-start-mechanism-with-data"/>
1927 <function name="tp_cli_channel_interface_sasl_authentication_connect_to_new_challenge ()" link="telepathy-glib-channel-auth.html#tp-cli-channel-interface-sasl-authentication-connect-to-new-challenge"/>
1928 <function name="tp_cli_channel_interface_sasl_authentication_connect_to_sasl_status_changed ()" link="telepathy-glib-channel-auth.html#tp-cli-channel-interface-sasl-authentication-connect-to-sasl-status-changed"/>
1929 <function name="tp_cli_connection_interface_anonymity_connect_to_anonymity_modes_changed ()" link="telepathy-glib-cli-anonymity.html#tp-cli-connection-interface-anonymity-connect-to-anonymity-modes-changed"/>
1930 <function name="tp_cli_connection_interface_anonymity_signal_callback_anonymity_modes_changed ()" link="telepathy-glib-cli-anonymity.html#tp-cli-connection-interface-anonymity-signal-callback-anonymity-modes-changed"/>
1931 <function name="tp_cli_channel_interface_service_point_connect_to_service_point_changed ()" link="telepathy-glib-cli-service-point.html#tp-cli-channel-interface-service-point-connect-to-service-point-changed"/>
1932 <function name="tp_cli_channel_interface_service_point_signal_callback_service_point_changed ()" link="telepathy-glib-cli-service-point.html#tp-cli-channel-interface-service-point-signal-callback-service-point-changed"/>
1933 <function name="tp_cli_connection_interface_service_point_connect_to_service_points_changed ()" link="telepathy-glib-cli-service-point.html#tp-cli-connection-interface-service-point-connect-to-service-points-changed"/>
1934 <function name="tp_cli_connection_interface_service_point_signal_callback_service_points_changed ()" link="telepathy-glib-cli-service-point.html#tp-cli-connection-interface-service-point-signal-callback-service-points-changed"/>
1935 <function name="tp_media_session_handler_new ()" link="telepathy-glib-media-interfaces.html#tp-media-session-handler-new"/>
1936 <function name="tp_media_session_handler_init_known_interfaces ()" link="telepathy-glib-media-interfaces.html#tp-media-session-handler-init-known-interfaces"/>
1937 <function name="TpMediaSessionHandler" link="telepathy-glib-media-interfaces.html#TpMediaSessionHandler-struct"/>
1938 <function name="TpMediaSessionHandlerClass" link="telepathy-glib-media-interfaces.html#TpMediaSessionHandlerClass"/>
1939 <function name="tp_media_stream_handler_new ()" link="telepathy-glib-media-interfaces.html#tp-media-stream-handler-new"/>
1940 <function name="tp_media_stream_handler_init_known_interfaces ()" link="telepathy-glib-media-interfaces.html#tp-media-stream-handler-init-known-interfaces"/>
1941 <function name="TpMediaStreamHandler" link="telepathy-glib-media-interfaces.html#TpMediaStreamHandler-struct"/>
1942 <function name="TpMediaStreamHandlerClass" link="telepathy-glib-media-interfaces.html#TpMediaStreamHandlerClass"/>
1943 <function name="tp_cli_media_session_handler_callback_for_error ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-session-handler-callback-for-error"/>
1944 <function name="tp_cli_media_session_handler_call_error ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-session-handler-call-error"/>
1945 <function name="tp_cli_media_session_handler_run_error ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-session-handler-run-error"/>
1946 <function name="tp_cli_media_session_handler_callback_for_ready ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-session-handler-callback-for-ready"/>
1947 <function name="tp_cli_media_session_handler_call_ready ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-session-handler-call-ready"/>
1948 <function name="tp_cli_media_session_handler_run_ready ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-session-handler-run-ready"/>
1949 <function name="tp_cli_media_session_handler_signal_callback_new_stream_handler ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-session-handler-signal-callback-new-stream-handler"/>
1950 <function name="tp_cli_media_session_handler_connect_to_new_stream_handler ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-session-handler-connect-to-new-stream-handler"/>
1951 <function name="tp_cli_media_stream_handler_callback_for_codec_choice ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-callback-for-codec-choice"/>
1952 <function name="tp_cli_media_stream_handler_call_codec_choice ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-call-codec-choice"/>
1953 <function name="tp_cli_media_stream_handler_run_codec_choice ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-run-codec-choice"/>
1954 <function name="tp_cli_media_stream_handler_callback_for_error ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-callback-for-error"/>
1955 <function name="tp_cli_media_stream_handler_call_error ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-call-error"/>
1956 <function name="tp_cli_media_stream_handler_run_error ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-run-error"/>
1957 <function name="tp_cli_media_stream_handler_callback_for_native_candidates_prepared ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-callback-for-native-candidates-prepared"/>
1958 <function name="tp_cli_media_stream_handler_call_native_candidates_prepared ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-call-native-candidates-prepared"/>
1959 <function name="tp_cli_media_stream_handler_run_native_candidates_prepared ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-run-native-candidates-prepared"/>
1960 <function name="tp_cli_media_stream_handler_callback_for_new_active_candidate_pair ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-callback-for-new-active-candidate-pair"/>
1961 <function name="tp_cli_media_stream_handler_call_new_active_candidate_pair ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-call-new-active-candidate-pair"/>
1962 <function name="tp_cli_media_stream_handler_run_new_active_candidate_pair ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-run-new-active-candidate-pair"/>
1963 <function name="tp_cli_media_stream_handler_callback_for_new_native_candidate ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-callback-for-new-native-candidate"/>
1964 <function name="tp_cli_media_stream_handler_call_new_native_candidate ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-call-new-native-candidate"/>
1965 <function name="tp_cli_media_stream_handler_run_new_native_candidate ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-run-new-native-candidate"/>
1966 <function name="tp_cli_media_stream_handler_callback_for_ready ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-callback-for-ready"/>
1967 <function name="tp_cli_media_stream_handler_call_ready ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-call-ready"/>
1968 <function name="tp_cli_media_stream_handler_run_ready ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-run-ready"/>
1969 <function name="tp_cli_media_stream_handler_callback_for_set_local_codecs ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-callback-for-set-local-codecs"/>
1970 <function name="tp_cli_media_stream_handler_call_set_local_codecs ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-call-set-local-codecs"/>
1971 <function name="tp_cli_media_stream_handler_run_set_local_codecs ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-run-set-local-codecs"/>
1972 <function name="tp_cli_media_stream_handler_callback_for_stream_state ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-callback-for-stream-state"/>
1973 <function name="tp_cli_media_stream_handler_call_stream_state ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-call-stream-state"/>
1974 <function name="tp_cli_media_stream_handler_run_stream_state ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-run-stream-state"/>
1975 <function name="tp_cli_media_stream_handler_callback_for_supported_codecs ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-callback-for-supported-codecs"/>
1976 <function name="tp_cli_media_stream_handler_call_supported_codecs ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-call-supported-codecs"/>
1977 <function name="tp_cli_media_stream_handler_run_supported_codecs ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-run-supported-codecs"/>
1978 <function name="tp_cli_media_stream_handler_signal_callback_add_remote_candidate ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-signal-callback-add-remote-candidate"/>
1979 <function name="tp_cli_media_stream_handler_connect_to_add_remote_candidate ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-connect-to-add-remote-candidate"/>
1980 <function name="tp_cli_media_stream_handler_signal_callback_close ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-signal-callback-close"/>
1981 <function name="tp_cli_media_stream_handler_connect_to_close ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-connect-to-close"/>
1982 <function name="tp_cli_media_stream_handler_signal_callback_remove_remote_candidate ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-signal-callback-remove-remote-candidate"/>
1983 <function name="tp_cli_media_stream_handler_connect_to_remove_remote_candidate ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-connect-to-remove-remote-candidate"/>
1984 <function name="tp_cli_media_stream_handler_signal_callback_set_active_candidate_pair ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-signal-callback-set-active-candidate-pair"/>
1985 <function name="tp_cli_media_stream_handler_connect_to_set_active_candidate_pair ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-connect-to-set-active-candidate-pair"/>
1986 <function name="tp_cli_media_stream_handler_signal_callback_set_remote_candidate_list ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-signal-callback-set-remote-candidate-list"/>
1987 <function name="tp_cli_media_stream_handler_connect_to_set_remote_candidate_list ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-connect-to-set-remote-candidate-list"/>
1988 <function name="tp_cli_media_stream_handler_signal_callback_set_remote_codecs ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-signal-callback-set-remote-codecs"/>
1989 <function name="tp_cli_media_stream_handler_connect_to_set_remote_codecs ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-connect-to-set-remote-codecs"/>
1990 <function name="tp_cli_media_stream_handler_signal_callback_set_stream_playing ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-signal-callback-set-stream-playing"/>
1991 <function name="tp_cli_media_stream_handler_connect_to_set_stream_playing ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-connect-to-set-stream-playing"/>
1992 <function name="tp_cli_media_stream_handler_signal_callback_set_stream_sending ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-signal-callback-set-stream-sending"/>
1993 <function name="tp_cli_media_stream_handler_connect_to_set_stream_sending ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-connect-to-set-stream-sending"/>
1994 <function name="tp_cli_media_stream_handler_signal_callback_start_telephony_event ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-signal-callback-start-telephony-event"/>
1995 <function name="tp_cli_media_stream_handler_connect_to_start_telephony_event ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-connect-to-start-telephony-event"/>
1996 <function name="tp_cli_media_stream_handler_signal_callback_stop_telephony_event ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-signal-callback-stop-telephony-event"/>
1997 <function name="tp_cli_media_stream_handler_connect_to_stop_telephony_event ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-connect-to-stop-telephony-event"/>
1998 <function name="tp_cli_media_stream_handler_call_hold_state ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-call-hold-state"/>
1999 <function name="tp_cli_media_stream_handler_call_unhold_failure ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-call-unhold-failure"/>
2000 <function name="tp_cli_media_stream_handler_callback_for_hold_state ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-callback-for-hold-state"/>
2001 <function name="tp_cli_media_stream_handler_callback_for_unhold_failure ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-callback-for-unhold-failure"/>
2002 <function name="tp_cli_media_stream_handler_connect_to_set_stream_held ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-connect-to-set-stream-held"/>
2003 <function name="tp_cli_media_stream_handler_run_hold_state ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-run-hold-state"/>
2004 <function name="tp_cli_media_stream_handler_run_unhold_failure ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-run-unhold-failure"/>
2005 <function name="tp_cli_media_stream_handler_signal_callback_set_stream_held ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-signal-callback-set-stream-held"/>
2006 <function name="tp_cli_media_stream_handler_call_codecs_updated ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-call-codecs-updated"/>
2007 <function name="tp_cli_media_stream_handler_callback_for_codecs_updated ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-callback-for-codecs-updated"/>
2008 <function name="tp_cli_media_stream_handler_run_codecs_updated ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-run-codecs-updated"/>
2009 <function name="tp_cli_media_stream_handler_signal_callback_start_named_telephony_event ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-signal-callback-start-named-telephony-event"/>
2010 <function name="tp_cli_media_stream_handler_connect_to_start_named_telephony_event ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-connect-to-start-named-telephony-event"/>
2011 <function name="tp_cli_media_stream_handler_signal_callback_start_sound_telephony_event ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-signal-callback-start-sound-telephony-event"/>
2012 <function name="tp_cli_media_stream_handler_connect_to_start_sound_telephony_event ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-connect-to-start-sound-telephony-event"/>
2013 <function name="tp_cli_media_stream_handler_call_new_active_transport_pair ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-call-new-active-transport-pair"/>
2014 <function name="tp_cli_media_stream_handler_callback_for_new_active_transport_pair ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-callback-for-new-active-transport-pair"/>
2015 <function name="tp_cli_media_stream_handler_run_new_active_transport_pair ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-run-new-active-transport-pair"/>
2016 <function name="tp_cli_media_stream_handler_call_supported_feedback_messages ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-call-supported-feedback-messages"/>
2017 <function name="tp_cli_media_stream_handler_call_supported_header_extensions ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-call-supported-header-extensions"/>
2018 <function name="tp_cli_media_stream_handler_callback_for_supported_feedback_messages ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-callback-for-supported-feedback-messages"/>
2019 <function name="tp_cli_media_stream_handler_callback_for_supported_header_extensions ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-callback-for-supported-header-extensions"/>
2020 <function name="tp_cli_media_stream_handler_connect_to_set_remote_feedback_messages ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-connect-to-set-remote-feedback-messages"/>
2021 <function name="tp_cli_media_stream_handler_connect_to_set_remote_header_extensions ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-connect-to-set-remote-header-extensions"/>
2022 <function name="tp_cli_media_stream_handler_run_supported_feedback_messages ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-run-supported-feedback-messages"/>
2023 <function name="tp_cli_media_stream_handler_run_supported_header_extensions ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-run-supported-header-extensions"/>
2024 <function name="tp_cli_media_stream_handler_signal_callback_set_remote_feedback_messages ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-signal-callback-set-remote-feedback-messages"/>
2025 <function name="tp_cli_media_stream_handler_signal_callback_set_remote_header_extensions ()" link="telepathy-glib-media-interfaces.html#tp-cli-media-stream-handler-signal-callback-set-remote-header-extensions"/>
2026 <function name="struct TpAccountManager" link="telepathy-glib-account-manager.html#TpAccountManager-struct"/>
2027 <function name="struct TpAccountManagerClass" link="telepathy-glib-account-manager.html#TpAccountManagerClass"/>
2028 <function name="tp_account_manager_new ()" link="telepathy-glib-account-manager.html#tp-account-manager-new"/>
2029 <function name="tp_account_manager_new_with_factory ()" link="telepathy-glib-account-manager.html#tp-account-manager-new-with-factory"/>
2030 <function name="tp_account_manager_init_known_interfaces ()" link="telepathy-glib-account-manager.html#tp-account-manager-init-known-interfaces"/>
2031 <function name="tp_account_manager_set_default ()" link="telepathy-glib-account-manager.html#tp-account-manager-set-default"/>
2032 <function name="tp_account_manager_dup ()" link="telepathy-glib-account-manager.html#tp-account-manager-dup"/>
2033 <function name="tp_account_manager_create_account_async ()" link="telepathy-glib-account-manager.html#tp-account-manager-create-account-async"/>
2034 <function name="tp_account_manager_create_account_finish ()" link="telepathy-glib-account-manager.html#tp-account-manager-create-account-finish"/>
2035 <function name="tp_account_manager_ensure_account ()" link="telepathy-glib-account-manager.html#tp-account-manager-ensure-account"/>
2036 <function name="tp_account_manager_get_valid_accounts ()" link="telepathy-glib-account-manager.html#tp-account-manager-get-valid-accounts"/>
2037 <function name="tp_account_manager_get_most_available_presence ()" link="telepathy-glib-account-manager.html#tp-account-manager-get-most-available-presence"/>
2038 <function name="tp_account_manager_set_all_requested_presences ()" link="telepathy-glib-account-manager.html#tp-account-manager-set-all-requested-presences"/>
2039 <function name="tp_account_manager_enable_restart ()" link="telepathy-glib-account-manager.html#tp-account-manager-enable-restart"/>
2040 <function name="TP_ACCOUNT_MANAGER_FEATURE_CORE" link="telepathy-glib-account-manager.html#TP-ACCOUNT-MANAGER-FEATURE-CORE:CAPS"/>
2041 <function name="tp_account_manager_is_prepared ()" link="telepathy-glib-account-manager.html#tp-account-manager-is-prepared"/>
2042 <function name="tp_account_manager_prepare_async ()" link="telepathy-glib-account-manager.html#tp-account-manager-prepare-async"/>
2043 <function name="tp_account_manager_prepare_finish ()" link="telepathy-glib-account-manager.html#tp-account-manager-prepare-finish"/>
2044 <function name="tp_cli_account_manager_callback_for_create_account ()" link="telepathy-glib-account-manager.html#tp-cli-account-manager-callback-for-create-account"/>
2045 <function name="tp_cli_account_manager_call_create_account ()" link="telepathy-glib-account-manager.html#tp-cli-account-manager-call-create-account"/>
2046 <function name="tp_cli_account_manager_signal_callback_account_removed ()" link="telepathy-glib-account-manager.html#tp-cli-account-manager-signal-callback-account-removed"/>
2047 <function name="tp_cli_account_manager_connect_to_account_removed ()" link="telepathy-glib-account-manager.html#tp-cli-account-manager-connect-to-account-removed"/>
2048 <function name="tp_cli_account_manager_signal_callback_account_validity_changed ()" link="telepathy-glib-account-manager.html#tp-cli-account-manager-signal-callback-account-validity-changed"/>
2049 <function name="tp_cli_account_manager_connect_to_account_validity_changed ()" link="telepathy-glib-account-manager.html#tp-cli-account-manager-connect-to-account-validity-changed"/>
2050 <function name="The &quot;account-disabled&quot; signal" link="telepathy-glib-account-manager.html#TpAccountManager-account-disabled"/>
2051 <function name="The &quot;account-enabled&quot; signal" link="telepathy-glib-account-manager.html#TpAccountManager-account-enabled"/>
2052 <function name="The &quot;account-removed&quot; signal" link="telepathy-glib-account-manager.html#TpAccountManager-account-removed"/>
2053 <function name="The &quot;account-validity-changed&quot; signal" link="telepathy-glib-account-manager.html#TpAccountManager-account-validity-changed"/>
2054 <function name="The &quot;most-available-presence-changed&quot; signal" link="telepathy-glib-account-manager.html#TpAccountManager-most-available-presence-changed"/>
2055 <function name="TpAccount" link="telepathy-glib-account.html#TpAccount-struct"/>
2056 <function name="struct TpAccountClass" link="telepathy-glib-account.html#TpAccountClass"/>
2057 <function name="tp_account_new ()" link="telepathy-glib-account.html#tp-account-new"/>
2058 <function name="tp_account_init_known_interfaces ()" link="telepathy-glib-account.html#tp-account-init-known-interfaces"/>
2059 <function name="tp_account_parse_object_path ()" link="telepathy-glib-account.html#tp-account-parse-object-path"/>
2060 <function name="tp_account_get_path_suffix ()" link="telepathy-glib-account.html#tp-account-get-path-suffix"/>
2061 <function name="tp_account_get_connection ()" link="telepathy-glib-account.html#tp-account-get-connection"/>
2062 <function name="tp_account_ensure_connection ()" link="telepathy-glib-account.html#tp-account-ensure-connection"/>
2063 <function name="tp_account_get_display_name ()" link="telepathy-glib-account.html#tp-account-get-display-name"/>
2064 <function name="tp_account_get_connection_manager ()" link="telepathy-glib-account.html#tp-account-get-connection-manager"/>
2065 <function name="tp_account_get_protocol ()" link="telepathy-glib-account.html#tp-account-get-protocol"/>
2066 <function name="tp_account_get_icon_name ()" link="telepathy-glib-account.html#tp-account-get-icon-name"/>
2067 <function name="tp_account_get_service ()" link="telepathy-glib-account.html#tp-account-get-service"/>
2068 <function name="tp_account_set_enabled_async ()" link="telepathy-glib-account.html#tp-account-set-enabled-async"/>
2069 <function name="tp_account_set_enabled_finish ()" link="telepathy-glib-account.html#tp-account-set-enabled-finish"/>
2070 <function name="tp_account_reconnect_async ()" link="telepathy-glib-account.html#tp-account-reconnect-async"/>
2071 <function name="tp_account_reconnect_finish ()" link="telepathy-glib-account.html#tp-account-reconnect-finish"/>
2072 <function name="tp_account_is_enabled ()" link="telepathy-glib-account.html#tp-account-is-enabled"/>
2073 <function name="tp_account_is_valid ()" link="telepathy-glib-account.html#tp-account-is-valid"/>
2074 <function name="tp_account_update_parameters_async ()" link="telepathy-glib-account.html#tp-account-update-parameters-async"/>
2075 <function name="tp_account_update_parameters_finish ()" link="telepathy-glib-account.html#tp-account-update-parameters-finish"/>
2076 <function name="tp_account_remove_async ()" link="telepathy-glib-account.html#tp-account-remove-async"/>
2077 <function name="tp_account_remove_finish ()" link="telepathy-glib-account.html#tp-account-remove-finish"/>
2078 <function name="tp_account_set_display_name_async ()" link="telepathy-glib-account.html#tp-account-set-display-name-async"/>
2079 <function name="tp_account_set_display_name_finish ()" link="telepathy-glib-account.html#tp-account-set-display-name-finish"/>
2080 <function name="tp_account_set_icon_name_async ()" link="telepathy-glib-account.html#tp-account-set-icon-name-async"/>
2081 <function name="tp_account_set_icon_name_finish ()" link="telepathy-glib-account.html#tp-account-set-icon-name-finish"/>
2082 <function name="tp_account_set_service_async ()" link="telepathy-glib-account.html#tp-account-set-service-async"/>
2083 <function name="tp_account_set_service_finish ()" link="telepathy-glib-account.html#tp-account-set-service-finish"/>
2084 <function name="tp_account_request_presence_async ()" link="telepathy-glib-account.html#tp-account-request-presence-async"/>
2085 <function name="tp_account_request_presence_finish ()" link="telepathy-glib-account.html#tp-account-request-presence-finish"/>
2086 <function name="tp_account_set_automatic_presence_async ()" link="telepathy-glib-account.html#tp-account-set-automatic-presence-async"/>
2087 <function name="tp_account_set_automatic_presence_finish ()" link="telepathy-glib-account.html#tp-account-set-automatic-presence-finish"/>
2088 <function name="tp_account_get_connect_automatically ()" link="telepathy-glib-account.html#tp-account-get-connect-automatically"/>
2089 <function name="tp_account_set_connect_automatically_async ()" link="telepathy-glib-account.html#tp-account-set-connect-automatically-async"/>
2090 <function name="tp_account_set_connect_automatically_finish ()" link="telepathy-glib-account.html#tp-account-set-connect-automatically-finish"/>
2091 <function name="tp_account_get_has_been_online ()" link="telepathy-glib-account.html#tp-account-get-has-been-online"/>
2092 <function name="tp_account_get_connection_status ()" link="telepathy-glib-account.html#tp-account-get-connection-status"/>
2093 <function name="tp_account_get_detailed_error ()" link="telepathy-glib-account.html#tp-account-get-detailed-error"/>
2094 <function name="tp_account_get_changing_presence ()" link="telepathy-glib-account.html#tp-account-get-changing-presence"/>
2095 <function name="tp_account_get_current_presence ()" link="telepathy-glib-account.html#tp-account-get-current-presence"/>
2096 <function name="tp_account_get_requested_presence ()" link="telepathy-glib-account.html#tp-account-get-requested-presence"/>
2097 <function name="tp_account_get_automatic_presence ()" link="telepathy-glib-account.html#tp-account-get-automatic-presence"/>
2098 <function name="tp_account_get_parameters ()" link="telepathy-glib-account.html#tp-account-get-parameters"/>
2099 <function name="tp_account_get_nickname ()" link="telepathy-glib-account.html#tp-account-get-nickname"/>
2100 <function name="tp_account_set_nickname_async ()" link="telepathy-glib-account.html#tp-account-set-nickname-async"/>
2101 <function name="tp_account_set_nickname_finish ()" link="telepathy-glib-account.html#tp-account-set-nickname-finish"/>
2102 <function name="tp_account_get_normalized_name ()" link="telepathy-glib-account.html#tp-account-get-normalized-name"/>
2103 <function name="tp_account_get_avatar_async ()" link="telepathy-glib-account.html#tp-account-get-avatar-async"/>
2104 <function name="tp_account_get_avatar_finish ()" link="telepathy-glib-account.html#tp-account-get-avatar-finish"/>
2105 <function name="tp_account_set_avatar_async ()" link="telepathy-glib-account.html#tp-account-set-avatar-async"/>
2106 <function name="tp_account_set_avatar_finish ()" link="telepathy-glib-account.html#tp-account-set-avatar-finish"/>
2107 <function name="tp_account_bind_connection_status_to_property ()" link="telepathy-glib-account.html#tp-account-bind-connection-status-to-property"/>
2108 <function name="TP_ACCOUNT_FEATURE_CORE" link="telepathy-glib-account.html#TP-ACCOUNT-FEATURE-CORE:CAPS"/>
2109 <function name="TP_ACCOUNT_FEATURE_CONNECTION" link="telepathy-glib-account.html#TP-ACCOUNT-FEATURE-CONNECTION:CAPS"/>
2110 <function name="tp_account_is_prepared ()" link="telepathy-glib-account.html#tp-account-is-prepared"/>
2111 <function name="tp_account_prepare_async ()" link="telepathy-glib-account.html#tp-account-prepare-async"/>
2112 <function name="tp_account_prepare_finish ()" link="telepathy-glib-account.html#tp-account-prepare-finish"/>
2113 <function name="TP_ACCOUNT_FEATURE_ADDRESSING" link="telepathy-glib-account.html#TP-ACCOUNT-FEATURE-ADDRESSING:CAPS"/>
2114 <function name="tp_account_get_uri_schemes ()" link="telepathy-glib-account.html#tp-account-get-uri-schemes"/>
2115 <function name="tp_account_associated_with_uri_scheme ()" link="telepathy-glib-account.html#tp-account-associated-with-uri-scheme"/>
2116 <function name="tp_account_set_uri_scheme_association_async ()" link="telepathy-glib-account.html#tp-account-set-uri-scheme-association-async"/>
2117 <function name="tp_account_set_uri_scheme_association_finish ()" link="telepathy-glib-account.html#tp-account-set-uri-scheme-association-finish"/>
2118 <function name="TP_ACCOUNT_FEATURE_STORAGE" link="telepathy-glib-account.html#TP-ACCOUNT-FEATURE-STORAGE:CAPS"/>
2119 <function name="tp_account_get_storage_provider ()" link="telepathy-glib-account.html#tp-account-get-storage-provider"/>
2120 <function name="tp_account_get_storage_identifier ()" link="telepathy-glib-account.html#tp-account-get-storage-identifier"/>
2121 <function name="tp_account_get_storage_restrictions ()" link="telepathy-glib-account.html#tp-account-get-storage-restrictions"/>
2122 <function name="tp_account_get_storage_specific_information_async ()" link="telepathy-glib-account.html#tp-account-get-storage-specific-information-async"/>
2123 <function name="tp_account_get_storage_specific_information_finish ()" link="telepathy-glib-account.html#tp-account-get-storage-specific-information-finish"/>
2124 <function name="tp_cli_account_callback_for_reconnect ()" link="telepathy-glib-account.html#tp-cli-account-callback-for-reconnect"/>
2125 <function name="tp_cli_account_call_reconnect ()" link="telepathy-glib-account.html#tp-cli-account-call-reconnect"/>
2126 <function name="tp_cli_account_callback_for_remove ()" link="telepathy-glib-account.html#tp-cli-account-callback-for-remove"/>
2127 <function name="tp_cli_account_call_remove ()" link="telepathy-glib-account.html#tp-cli-account-call-remove"/>
2128 <function name="tp_cli_account_callback_for_update_parameters ()" link="telepathy-glib-account.html#tp-cli-account-callback-for-update-parameters"/>
2129 <function name="tp_cli_account_call_update_parameters ()" link="telepathy-glib-account.html#tp-cli-account-call-update-parameters"/>
2130 <function name="tp_cli_account_signal_callback_account_property_changed ()" link="telepathy-glib-account.html#tp-cli-account-signal-callback-account-property-changed"/>
2131 <function name="tp_cli_account_connect_to_account_property_changed ()" link="telepathy-glib-account.html#tp-cli-account-connect-to-account-property-changed"/>
2132 <function name="tp_cli_account_signal_callback_removed ()" link="telepathy-glib-account.html#tp-cli-account-signal-callback-removed"/>
2133 <function name="tp_cli_account_connect_to_removed ()" link="telepathy-glib-account.html#tp-cli-account-connect-to-removed"/>
2134 <function name="tp_cli_account_interface_avatar_signal_callback_avatar_changed ()" link="telepathy-glib-account.html#tp-cli-account-interface-avatar-signal-callback-avatar-changed"/>
2135 <function name="tp_cli_account_interface_avatar_connect_to_avatar_changed ()" link="telepathy-glib-account.html#tp-cli-account-interface-avatar-connect-to-avatar-changed"/>
2136 <function name="tp_cli_account_interface_addressing_callback_for_set_uri_scheme_association ()" link="telepathy-glib-account.html#tp-cli-account-interface-addressing-callback-for-set-uri-scheme-association"/>
2137 <function name="tp_cli_account_interface_addressing_call_set_uri_scheme_association ()" link="telepathy-glib-account.html#tp-cli-account-interface-addressing-call-set-uri-scheme-association"/>
2138 <function name="The &quot;automatic-presence-type&quot; property" link="telepathy-glib-account.html#TpAccount--automatic-presence-type"/>
2139 <function name="The &quot;automatic-status&quot; property" link="telepathy-glib-account.html#TpAccount--automatic-status"/>
2140 <function name="The &quot;automatic-status-message&quot; property" link="telepathy-glib-account.html#TpAccount--automatic-status-message"/>
2141 <function name="The &quot;changing-presence&quot; property" link="telepathy-glib-account.html#TpAccount--changing-presence"/>
2142 <function name="The &quot;connect-automatically&quot; property" link="telepathy-glib-account.html#TpAccount--connect-automatically"/>
2143 <function name="The &quot;connection&quot; property" link="telepathy-glib-account.html#TpAccount--connection"/>
2144 <function name="The &quot;connection-error&quot; property" link="telepathy-glib-account.html#TpAccount--connection-error"/>
2145 <function name="The &quot;connection-error-details&quot; property" link="telepathy-glib-account.html#TpAccount--connection-error-details"/>
2146 <function name="The &quot;connection-manager&quot; property" link="telepathy-glib-account.html#TpAccount--connection-manager"/>
2147 <function name="The &quot;connection-status&quot; property" link="telepathy-glib-account.html#TpAccount--connection-status"/>
2148 <function name="The &quot;connection-status-reason&quot; property" link="telepathy-glib-account.html#TpAccount--connection-status-reason"/>
2149 <function name="The &quot;current-presence-type&quot; property" link="telepathy-glib-account.html#TpAccount--current-presence-type"/>
2150 <function name="The &quot;current-status&quot; property" link="telepathy-glib-account.html#TpAccount--current-status"/>
2151 <function name="The &quot;current-status-message&quot; property" link="telepathy-glib-account.html#TpAccount--current-status-message"/>
2152 <function name="The &quot;display-name&quot; property" link="telepathy-glib-account.html#TpAccount--display-name"/>
2153 <function name="The &quot;enabled&quot; property" link="telepathy-glib-account.html#TpAccount--enabled"/>
2154 <function name="The &quot;has-been-online&quot; property" link="telepathy-glib-account.html#TpAccount--has-been-online"/>
2155 <function name="The &quot;icon-name&quot; property" link="telepathy-glib-account.html#TpAccount--icon-name"/>
2156 <function name="The &quot;nickname&quot; property" link="telepathy-glib-account.html#TpAccount--nickname"/>
2157 <function name="The &quot;normalized-name&quot; property" link="telepathy-glib-account.html#TpAccount--normalized-name"/>
2158 <function name="The &quot;protocol&quot; property" link="telepathy-glib-account.html#TpAccount--protocol"/>
2159 <function name="The &quot;requested-presence-type&quot; property" link="telepathy-glib-account.html#TpAccount--requested-presence-type"/>
2160 <function name="The &quot;requested-status&quot; property" link="telepathy-glib-account.html#TpAccount--requested-status"/>
2161 <function name="The &quot;requested-status-message&quot; property" link="telepathy-glib-account.html#TpAccount--requested-status-message"/>
2162 <function name="The &quot;service&quot; property" link="telepathy-glib-account.html#TpAccount--service"/>
2163 <function name="The &quot;storage-identifier&quot; property" link="telepathy-glib-account.html#TpAccount--storage-identifier"/>
2164 <function name="The &quot;storage-provider&quot; property" link="telepathy-glib-account.html#TpAccount--storage-provider"/>
2165 <function name="The &quot;storage-restrictions&quot; property" link="telepathy-glib-account.html#TpAccount--storage-restrictions"/>
2166 <function name="The &quot;valid&quot; property" link="telepathy-glib-account.html#TpAccount--valid"/>
2167 <function name="The &quot;presence-changed&quot; signal" link="telepathy-glib-account.html#TpAccount-presence-changed"/>
2168 <function name="The &quot;status-changed&quot; signal" link="telepathy-glib-account.html#TpAccount-status-changed"/>
2169 <function name="struct TpChannelDispatcher" link="telepathy-glib-channel-dispatcher.html#TpChannelDispatcher-struct"/>
2170 <function name="struct TpChannelDispatcherClass" link="telepathy-glib-channel-dispatcher.html#TpChannelDispatcherClass"/>
2171 <function name="tp_channel_dispatcher_new ()" link="telepathy-glib-channel-dispatcher.html#tp-channel-dispatcher-new"/>
2172 <function name="tp_channel_dispatcher_init_known_interfaces ()" link="telepathy-glib-channel-dispatcher.html#tp-channel-dispatcher-init-known-interfaces"/>
2173 <function name="tp_cli_channel_dispatcher_callback_for_create_channel ()" link="telepathy-glib-channel-dispatcher.html#tp-cli-channel-dispatcher-callback-for-create-channel"/>
2174 <function name="tp_cli_channel_dispatcher_call_create_channel ()" link="telepathy-glib-channel-dispatcher.html#tp-cli-channel-dispatcher-call-create-channel"/>
2175 <function name="tp_cli_channel_dispatcher_callback_for_create_channel_with_hints ()" link="telepathy-glib-channel-dispatcher.html#tp-cli-channel-dispatcher-callback-for-create-channel-with-hints"/>
2176 <function name="tp_cli_channel_dispatcher_call_create_channel_with_hints ()" link="telepathy-glib-channel-dispatcher.html#tp-cli-channel-dispatcher-call-create-channel-with-hints"/>
2177 <function name="tp_cli_channel_dispatcher_callback_for_ensure_channel ()" link="telepathy-glib-channel-dispatcher.html#tp-cli-channel-dispatcher-callback-for-ensure-channel"/>
2178 <function name="tp_cli_channel_dispatcher_call_ensure_channel ()" link="telepathy-glib-channel-dispatcher.html#tp-cli-channel-dispatcher-call-ensure-channel"/>
2179 <function name="tp_cli_channel_dispatcher_callback_for_ensure_channel_with_hints ()" link="telepathy-glib-channel-dispatcher.html#tp-cli-channel-dispatcher-callback-for-ensure-channel-with-hints"/>
2180 <function name="tp_cli_channel_dispatcher_call_ensure_channel_with_hints ()" link="telepathy-glib-channel-dispatcher.html#tp-cli-channel-dispatcher-call-ensure-channel-with-hints"/>
2181 <function name="tp_cli_channel_dispatcher_call_delegate_channels ()" link="telepathy-glib-channel-dispatcher.html#tp-cli-channel-dispatcher-call-delegate-channels"/>
2182 <function name="tp_cli_channel_dispatcher_call_present_channel ()" link="telepathy-glib-channel-dispatcher.html#tp-cli-channel-dispatcher-call-present-channel"/>
2183 <function name="tp_cli_channel_dispatcher_callback_for_delegate_channels ()" link="telepathy-glib-channel-dispatcher.html#tp-cli-channel-dispatcher-callback-for-delegate-channels"/>
2184 <function name="tp_cli_channel_dispatcher_callback_for_present_channel ()" link="telepathy-glib-channel-dispatcher.html#tp-cli-channel-dispatcher-callback-for-present-channel"/>
2185 <function name="tp_cli_channel_dispatcher_interface_operation_list_signal_callback_dispatch_operation_finished ()" link="telepathy-glib-channel-dispatcher.html#tp-cli-channel-dispatcher-interface-operation-list-signal-callback-dispatch-operation-finished"/>
2186 <function name="tp_cli_channel_dispatcher_interface_operation_list_connect_to_dispatch_operation_finished ()" link="telepathy-glib-channel-dispatcher.html#tp-cli-channel-dispatcher-interface-operation-list-connect-to-dispatch-operation-finished"/>
2187 <function name="tp_cli_channel_dispatcher_interface_operation_list_signal_callback_new_dispatch_operation ()" link="telepathy-glib-channel-dispatcher.html#tp-cli-channel-dispatcher-interface-operation-list-signal-callback-new-dispatch-operation"/>
2188 <function name="tp_cli_channel_dispatcher_interface_operation_list_connect_to_new_dispatch_operation ()" link="telepathy-glib-channel-dispatcher.html#tp-cli-channel-dispatcher-interface-operation-list-connect-to-new-dispatch-operation"/>
2189 <function name="struct TpChannelDispatchOperation" link="telepathy-glib-channel-dispatch-operation.html#TpChannelDispatchOperation-struct"/>
2190 <function name="struct TpChannelDispatchOperationClass" link="telepathy-glib-channel-dispatch-operation.html#TpChannelDispatchOperationClass"/>
2191 <function name="tp_channel_dispatch_operation_new ()" link="telepathy-glib-channel-dispatch-operation.html#tp-channel-dispatch-operation-new"/>
2192 <function name="tp_channel_dispatch_operation_init_known_interfaces ()" link="telepathy-glib-channel-dispatch-operation.html#tp-channel-dispatch-operation-init-known-interfaces"/>
2193 <function name="tp_cli_channel_dispatch_operation_callback_for_claim ()" link="telepathy-glib-channel-dispatch-operation.html#tp-cli-channel-dispatch-operation-callback-for-claim"/>
2194 <function name="tp_cli_channel_dispatch_operation_call_claim ()" link="telepathy-glib-channel-dispatch-operation.html#tp-cli-channel-dispatch-operation-call-claim"/>
2195 <function name="tp_cli_channel_dispatch_operation_callback_for_handle_with ()" link="telepathy-glib-channel-dispatch-operation.html#tp-cli-channel-dispatch-operation-callback-for-handle-with"/>
2196 <function name="tp_cli_channel_dispatch_operation_call_handle_with ()" link="telepathy-glib-channel-dispatch-operation.html#tp-cli-channel-dispatch-operation-call-handle-with"/>
2197 <function name="tp_cli_channel_dispatch_operation_callback_for_handle_with_time ()" link="telepathy-glib-channel-dispatch-operation.html#tp-cli-channel-dispatch-operation-callback-for-handle-with-time"/>
2198 <function name="tp_cli_channel_dispatch_operation_call_handle_with_time ()" link="telepathy-glib-channel-dispatch-operation.html#tp-cli-channel-dispatch-operation-call-handle-with-time"/>
2199 <function name="tp_cli_channel_dispatch_operation_signal_callback_channel_lost ()" link="telepathy-glib-channel-dispatch-operation.html#tp-cli-channel-dispatch-operation-signal-callback-channel-lost"/>
2200 <function name="tp_cli_channel_dispatch_operation_connect_to_channel_lost ()" link="telepathy-glib-channel-dispatch-operation.html#tp-cli-channel-dispatch-operation-connect-to-channel-lost"/>
2201 <function name="tp_cli_channel_dispatch_operation_signal_callback_finished ()" link="telepathy-glib-channel-dispatch-operation.html#tp-cli-channel-dispatch-operation-signal-callback-finished"/>
2202 <function name="tp_cli_channel_dispatch_operation_connect_to_finished ()" link="telepathy-glib-channel-dispatch-operation.html#tp-cli-channel-dispatch-operation-connect-to-finished"/>
2203 <function name="TP_CHANNEL_DISPATCH_OPERATION_FEATURE_CORE" link="telepathy-glib-channel-dispatch-operation.html#TP-CHANNEL-DISPATCH-OPERATION-FEATURE-CORE:CAPS"/>
2204 <function name="tp_channel_dispatch_operation_borrow_account ()" link="telepathy-glib-channel-dispatch-operation.html#tp-channel-dispatch-operation-borrow-account"/>
2205 <function name="tp_channel_dispatch_operation_borrow_channels ()" link="telepathy-glib-channel-dispatch-operation.html#tp-channel-dispatch-operation-borrow-channels"/>
2206 <function name="tp_channel_dispatch_operation_borrow_connection ()" link="telepathy-glib-channel-dispatch-operation.html#tp-channel-dispatch-operation-borrow-connection"/>
2207 <function name="tp_channel_dispatch_operation_borrow_immutable_properties ()" link="telepathy-glib-channel-dispatch-operation.html#tp-channel-dispatch-operation-borrow-immutable-properties"/>
2208 <function name="tp_channel_dispatch_operation_borrow_possible_handlers ()" link="telepathy-glib-channel-dispatch-operation.html#tp-channel-dispatch-operation-borrow-possible-handlers"/>
2209 <function name="tp_channel_dispatch_operation_handle_with_async ()" link="telepathy-glib-channel-dispatch-operation.html#tp-channel-dispatch-operation-handle-with-async"/>
2210 <function name="tp_channel_dispatch_operation_handle_with_finish ()" link="telepathy-glib-channel-dispatch-operation.html#tp-channel-dispatch-operation-handle-with-finish"/>
2211 <function name="tp_channel_dispatch_operation_handle_with_time_async ()" link="telepathy-glib-channel-dispatch-operation.html#tp-channel-dispatch-operation-handle-with-time-async"/>
2212 <function name="tp_channel_dispatch_operation_handle_with_time_finish ()" link="telepathy-glib-channel-dispatch-operation.html#tp-channel-dispatch-operation-handle-with-time-finish"/>
2213 <function name="tp_channel_dispatch_operation_claim_async ()" link="telepathy-glib-channel-dispatch-operation.html#tp-channel-dispatch-operation-claim-async"/>
2214 <function name="tp_channel_dispatch_operation_claim_finish ()" link="telepathy-glib-channel-dispatch-operation.html#tp-channel-dispatch-operation-claim-finish"/>
2215 <function name="tp_channel_dispatch_operation_claim_with_async ()" link="telepathy-glib-channel-dispatch-operation.html#tp-channel-dispatch-operation-claim-with-async"/>
2216 <function name="tp_channel_dispatch_operation_claim_with_finish ()" link="telepathy-glib-channel-dispatch-operation.html#tp-channel-dispatch-operation-claim-with-finish"/>
2217 <function name="tp_channel_dispatch_operation_close_channels_async ()" link="telepathy-glib-channel-dispatch-operation.html#tp-channel-dispatch-operation-close-channels-async"/>
2218 <function name="tp_channel_dispatch_operation_close_channels_finish ()" link="telepathy-glib-channel-dispatch-operation.html#tp-channel-dispatch-operation-close-channels-finish"/>
2219 <function name="tp_channel_dispatch_operation_leave_channels_async ()" link="telepathy-glib-channel-dispatch-operation.html#tp-channel-dispatch-operation-leave-channels-async"/>
2220 <function name="tp_channel_dispatch_operation_leave_channels_finish ()" link="telepathy-glib-channel-dispatch-operation.html#tp-channel-dispatch-operation-leave-channels-finish"/>
2221 <function name="tp_channel_dispatch_operation_destroy_channels_async ()" link="telepathy-glib-channel-dispatch-operation.html#tp-channel-dispatch-operation-destroy-channels-async"/>
2222 <function name="tp_channel_dispatch_operation_destroy_channels_finish ()" link="telepathy-glib-channel-dispatch-operation.html#tp-channel-dispatch-operation-destroy-channels-finish"/>
2223 <function name="The &quot;account&quot; property" link="telepathy-glib-channel-dispatch-operation.html#TpChannelDispatchOperation--account"/>
2224 <function name="The &quot;cdo-properties&quot; property" link="telepathy-glib-channel-dispatch-operation.html#TpChannelDispatchOperation--cdo-properties"/>
2225 <function name="The &quot;channels&quot; property" link="telepathy-glib-channel-dispatch-operation.html#TpChannelDispatchOperation--channels"/>
2226 <function name="The &quot;connection&quot; property" link="telepathy-glib-channel-dispatch-operation.html#TpChannelDispatchOperation--connection"/>
2227 <function name="The &quot;possible-handlers&quot; property" link="telepathy-glib-channel-dispatch-operation.html#TpChannelDispatchOperation--possible-handlers"/>
2228 <function name="The &quot;channel-lost&quot; signal" link="telepathy-glib-channel-dispatch-operation.html#TpChannelDispatchOperation-channel-lost"/>
2229 <function name="struct TpChannelRequest" link="telepathy-glib-channel-request.html#TpChannelRequest-struct"/>
2230 <function name="struct TpChannelRequestClass" link="telepathy-glib-channel-request.html#TpChannelRequestClass"/>
2231 <function name="tp_channel_request_new ()" link="telepathy-glib-channel-request.html#tp-channel-request-new"/>
2232 <function name="tp_channel_request_init_known_interfaces ()" link="telepathy-glib-channel-request.html#tp-channel-request-init-known-interfaces"/>
2233 <function name="tp_channel_request_set_channel_factory ()" link="telepathy-glib-channel-request.html#tp-channel-request-set-channel-factory"/>
2234 <function name="tp_channel_request_get_immutable_properties ()" link="telepathy-glib-channel-request.html#tp-channel-request-get-immutable-properties"/>
2235 <function name="tp_channel_request_get_account ()" link="telepathy-glib-channel-request.html#tp-channel-request-get-account"/>
2236 <function name="tp_channel_request_get_user_action_time ()" link="telepathy-glib-channel-request.html#tp-channel-request-get-user-action-time"/>
2237 <function name="tp_channel_request_get_preferred_handler ()" link="telepathy-glib-channel-request.html#tp-channel-request-get-preferred-handler"/>
2238 <function name="tp_channel_request_get_hints ()" link="telepathy-glib-channel-request.html#tp-channel-request-get-hints"/>
2239 <function name="tp_cli_channel_request_callback_for_cancel ()" link="telepathy-glib-channel-request.html#tp-cli-channel-request-callback-for-cancel"/>
2240 <function name="tp_cli_channel_request_call_cancel ()" link="telepathy-glib-channel-request.html#tp-cli-channel-request-call-cancel"/>
2241 <function name="tp_cli_channel_request_callback_for_proceed ()" link="telepathy-glib-channel-request.html#tp-cli-channel-request-callback-for-proceed"/>
2242 <function name="tp_cli_channel_request_call_proceed ()" link="telepathy-glib-channel-request.html#tp-cli-channel-request-call-proceed"/>
2243 <function name="tp_cli_channel_request_signal_callback_failed ()" link="telepathy-glib-channel-request.html#tp-cli-channel-request-signal-callback-failed"/>
2244 <function name="tp_cli_channel_request_connect_to_failed ()" link="telepathy-glib-channel-request.html#tp-cli-channel-request-connect-to-failed"/>
2245 <function name="tp_cli_channel_request_signal_callback_succeeded ()" link="telepathy-glib-channel-request.html#tp-cli-channel-request-signal-callback-succeeded"/>
2246 <function name="tp_cli_channel_request_connect_to_succeeded ()" link="telepathy-glib-channel-request.html#tp-cli-channel-request-connect-to-succeeded"/>
2247 <function name="tp_cli_channel_request_signal_callback_succeeded_with_channel ()" link="telepathy-glib-channel-request.html#tp-cli-channel-request-signal-callback-succeeded-with-channel"/>
2248 <function name="tp_cli_channel_request_connect_to_succeeded_with_channel ()" link="telepathy-glib-channel-request.html#tp-cli-channel-request-connect-to-succeeded-with-channel"/>
2249 <function name="The &quot;account&quot; property" link="telepathy-glib-channel-request.html#TpChannelRequest--account"/>
2250 <function name="The &quot;channel-factory&quot; property" link="telepathy-glib-channel-request.html#TpChannelRequest--channel-factory"/>
2251 <function name="The &quot;hints&quot; property" link="telepathy-glib-channel-request.html#TpChannelRequest--hints"/>
2252 <function name="The &quot;immutable-properties&quot; property" link="telepathy-glib-channel-request.html#TpChannelRequest--immutable-properties"/>
2253 <function name="The &quot;preferred-handler&quot; property" link="telepathy-glib-channel-request.html#TpChannelRequest--preferred-handler"/>
2254 <function name="The &quot;user-action-time&quot; property" link="telepathy-glib-channel-request.html#TpChannelRequest--user-action-time"/>
2255 <function name="The &quot;succeeded&quot; signal" link="telepathy-glib-channel-request.html#TpChannelRequest-succeeded"/>
2256 <function name="The &quot;succeeded-with-channel&quot; signal" link="telepathy-glib-channel-request.html#TpChannelRequest-succeeded-with-channel"/>
2257 <function name="struct TpClient" link="telepathy-glib-client.html#TpClient-struct"/>
2258 <function name="struct TpClientClass" link="telepathy-glib-client.html#TpClientClass"/>
2259 <function name="tp_client_init_known_interfaces ()" link="telepathy-glib-client.html#tp-client-init-known-interfaces"/>
2260 <function name="tp_cli_client_observer_callback_for_observe_channels ()" link="telepathy-glib-client.html#tp-cli-client-observer-callback-for-observe-channels"/>
2261 <function name="tp_cli_client_observer_call_observe_channels ()" link="telepathy-glib-client.html#tp-cli-client-observer-call-observe-channels"/>
2262 <function name="tp_cli_client_handler_callback_for_handle_channels ()" link="telepathy-glib-client.html#tp-cli-client-handler-callback-for-handle-channels"/>
2263 <function name="tp_cli_client_handler_call_handle_channels ()" link="telepathy-glib-client.html#tp-cli-client-handler-call-handle-channels"/>
2264 <function name="tp_cli_client_interface_requests_callback_for_add_request ()" link="telepathy-glib-client.html#tp-cli-client-interface-requests-callback-for-add-request"/>
2265 <function name="tp_cli_client_interface_requests_call_add_request ()" link="telepathy-glib-client.html#tp-cli-client-interface-requests-call-add-request"/>
2266 <function name="tp_cli_client_interface_requests_callback_for_remove_request ()" link="telepathy-glib-client.html#tp-cli-client-interface-requests-callback-for-remove-request"/>
2267 <function name="tp_cli_client_interface_requests_call_remove_request ()" link="telepathy-glib-client.html#tp-cli-client-interface-requests-call-remove-request"/>
2268 <function name="tp_cli_client_approver_callback_for_add_dispatch_operation ()" link="telepathy-glib-client.html#tp-cli-client-approver-callback-for-add-dispatch-operation"/>
2269 <function name="tp_cli_client_approver_call_add_dispatch_operation ()" link="telepathy-glib-client.html#tp-cli-client-approver-call-add-dispatch-operation"/>
2270 <function name="TpAccountChannelRequest" link="telepathy-glib-account-channel-request.html#TpAccountChannelRequest-struct"/>
2271 <function name="tp_account_channel_request_new ()" link="telepathy-glib-account-channel-request.html#tp-account-channel-request-new"/>
2272 <function name="tp_account_channel_request_get_request ()" link="telepathy-glib-account-channel-request.html#tp-account-channel-request-get-request"/>
2273 <function name="tp_account_channel_request_get_user_action_time ()" link="telepathy-glib-account-channel-request.html#tp-account-channel-request-get-user-action-time"/>
2274 <function name="tp_account_channel_request_get_account ()" link="telepathy-glib-account-channel-request.html#tp-account-channel-request-get-account"/>
2275 <function name="tp_account_channel_request_create_and_handle_channel_async ()" link="telepathy-glib-account-channel-request.html#tp-account-channel-request-create-and-handle-channel-async"/>
2276 <function name="tp_account_channel_request_create_and_handle_channel_finish ()" link="telepathy-glib-account-channel-request.html#tp-account-channel-request-create-and-handle-channel-finish"/>
2277 <function name="tp_account_channel_request_ensure_and_handle_channel_async ()" link="telepathy-glib-account-channel-request.html#tp-account-channel-request-ensure-and-handle-channel-async"/>
2278 <function name="tp_account_channel_request_ensure_and_handle_channel_finish ()" link="telepathy-glib-account-channel-request.html#tp-account-channel-request-ensure-and-handle-channel-finish"/>
2279 <function name="tp_account_channel_request_create_channel_async ()" link="telepathy-glib-account-channel-request.html#tp-account-channel-request-create-channel-async"/>
2280 <function name="tp_account_channel_request_create_channel_finish ()" link="telepathy-glib-account-channel-request.html#tp-account-channel-request-create-channel-finish"/>
2281 <function name="tp_account_channel_request_ensure_channel_async ()" link="telepathy-glib-account-channel-request.html#tp-account-channel-request-ensure-channel-async"/>
2282 <function name="tp_account_channel_request_ensure_channel_finish ()" link="telepathy-glib-account-channel-request.html#tp-account-channel-request-ensure-channel-finish"/>
2283 <function name="tp_account_channel_request_create_and_observe_channel_async ()" link="telepathy-glib-account-channel-request.html#tp-account-channel-request-create-and-observe-channel-async"/>
2284 <function name="tp_account_channel_request_create_and_observe_channel_finish ()" link="telepathy-glib-account-channel-request.html#tp-account-channel-request-create-and-observe-channel-finish"/>
2285 <function name="tp_account_channel_request_ensure_and_observe_channel_async ()" link="telepathy-glib-account-channel-request.html#tp-account-channel-request-ensure-and-observe-channel-async"/>
2286 <function name="tp_account_channel_request_ensure_and_observe_channel_finish ()" link="telepathy-glib-account-channel-request.html#tp-account-channel-request-ensure-and-observe-channel-finish"/>
2287 <function name="tp_account_channel_request_set_channel_factory ()" link="telepathy-glib-account-channel-request.html#tp-account-channel-request-set-channel-factory"/>
2288 <function name="tp_account_channel_request_get_channel_request ()" link="telepathy-glib-account-channel-request.html#tp-account-channel-request-get-channel-request"/>
2289 <function name="tp_account_channel_request_set_hints ()" link="telepathy-glib-account-channel-request.html#tp-account-channel-request-set-hints"/>
2290 <function name="tp_account_channel_request_set_delegate_to_preferred_handler ()" link="telepathy-glib-account-channel-request.html#tp-account-channel-request-set-delegate-to-preferred-handler"/>
2291 <function name="TpAccountChannelRequestDelegatedChannelCb ()" link="telepathy-glib-account-channel-request.html#TpAccountChannelRequestDelegatedChannelCb"/>
2292 <function name="tp_account_channel_request_set_delegated_channel_callback ()" link="telepathy-glib-account-channel-request.html#tp-account-channel-request-set-delegated-channel-callback"/>
2293 <function name="The &quot;account&quot; property" link="telepathy-glib-account-channel-request.html#TpAccountChannelRequest--account"/>
2294 <function name="The &quot;channel-request&quot; property" link="telepathy-glib-account-channel-request.html#TpAccountChannelRequest--channel-request"/>
2295 <function name="The &quot;request&quot; property" link="telepathy-glib-account-channel-request.html#TpAccountChannelRequest--request"/>
2296 <function name="The &quot;user-action-time&quot; property" link="telepathy-glib-account-channel-request.html#TpAccountChannelRequest--user-action-time"/>
2297 <function name="The &quot;re-handled&quot; signal" link="telepathy-glib-account-channel-request.html#TpAccountChannelRequest-re-handled"/>
2298 <function name="struct TpStreamTubeChannel" link="telepathy-glib-stream-tube-channel.html#TpStreamTubeChannel-struct"/>
2299 <function name="struct TpStreamTubeChannelClass" link="telepathy-glib-stream-tube-channel.html#TpStreamTubeChannelClass"/>
2300 <function name="tp_stream_tube_channel_accept_async ()" link="telepathy-glib-stream-tube-channel.html#tp-stream-tube-channel-accept-async"/>
2301 <function name="tp_stream_tube_channel_accept_finish ()" link="telepathy-glib-stream-tube-channel.html#tp-stream-tube-channel-accept-finish"/>
2302 <function name="tp_stream_tube_channel_get_parameters ()" link="telepathy-glib-stream-tube-channel.html#tp-stream-tube-channel-get-parameters"/>
2303 <function name="tp_stream_tube_channel_get_service ()" link="telepathy-glib-stream-tube-channel.html#tp-stream-tube-channel-get-service"/>
2304 <function name="tp_stream_tube_channel_new ()" link="telepathy-glib-stream-tube-channel.html#tp-stream-tube-channel-new"/>
2305 <function name="tp_stream_tube_channel_offer_async ()" link="telepathy-glib-stream-tube-channel.html#tp-stream-tube-channel-offer-async"/>
2306 <function name="tp_stream_tube_channel_offer_finish ()" link="telepathy-glib-stream-tube-channel.html#tp-stream-tube-channel-offer-finish"/>
2307 <function name="The &quot;parameters&quot; property" link="telepathy-glib-stream-tube-channel.html#TpStreamTubeChannel--parameters"/>
2308 <function name="The &quot;service&quot; property" link="telepathy-glib-stream-tube-channel.html#TpStreamTubeChannel--service"/>
2309 <function name="The &quot;incoming&quot; signal" link="telepathy-glib-stream-tube-channel.html#TpStreamTubeChannel-incoming"/>
2310 <function name="TpStreamTubeConnection" link="telepathy-glib-stream-tube-connection.html#TpStreamTubeConnection-struct"/>
2311 <function name="TpStreamTubeConnectionClass" link="telepathy-glib-stream-tube-connection.html#TpStreamTubeConnectionClass"/>
2312 <function name="tp_stream_tube_connection_get_channel ()" link="telepathy-glib-stream-tube-connection.html#tp-stream-tube-connection-get-channel"/>
2313 <function name="tp_stream_tube_connection_get_contact ()" link="telepathy-glib-stream-tube-connection.html#tp-stream-tube-connection-get-contact"/>
2314 <function name="tp_stream_tube_connection_get_socket_connection ()" link="telepathy-glib-stream-tube-connection.html#tp-stream-tube-connection-get-socket-connection"/>
2315 <function name="The &quot;channel&quot; property" link="telepathy-glib-stream-tube-connection.html#TpStreamTubeConnection--channel"/>
2316 <function name="The &quot;contact&quot; property" link="telepathy-glib-stream-tube-connection.html#TpStreamTubeConnection--contact"/>
2317 <function name="The &quot;socket-connection&quot; property" link="telepathy-glib-stream-tube-connection.html#TpStreamTubeConnection--socket-connection"/>
2318 <function name="The &quot;closed&quot; signal" link="telepathy-glib-stream-tube-connection.html#TpStreamTubeConnection-closed"/>
2319 <function name="TpClientChannelFactory" link="telepathy-glib-client-channel-factory.html#TpClientChannelFactory-struct"/>
2320 <function name="struct TpClientChannelFactoryInterface" link="telepathy-glib-client-channel-factory.html#TpClientChannelFactoryInterface"/>
2321 <function name="tp_client_channel_factory_create_channel ()" link="telepathy-glib-client-channel-factory.html#tp-client-channel-factory-create-channel"/>
2322 <function name="tp_client_channel_factory_dup_channel_features ()" link="telepathy-glib-client-channel-factory.html#tp-client-channel-factory-dup-channel-features"/>
2323 <function name="TpBasicProxyFactory" link="telepathy-glib-basic-proxy-factory.html#TpBasicProxyFactory-struct"/>
2324 <function name="struct TpBasicProxyFactoryClass" link="telepathy-glib-basic-proxy-factory.html#TpBasicProxyFactoryClass"/>
2325 <function name="tp_basic_proxy_factory_new ()" link="telepathy-glib-basic-proxy-factory.html#tp-basic-proxy-factory-new"/>
2326 <function name="tp_basic_proxy_factory_dup ()" link="telepathy-glib-basic-proxy-factory.html#tp-basic-proxy-factory-dup"/>
2327 <function name="TpAutomaticProxyFactory" link="telepathy-glib-automatic-proxy-factory.html#TpAutomaticProxyFactory-struct"/>
2328 <function name="struct TpAutomaticProxyFactoryClass" link="telepathy-glib-automatic-proxy-factory.html#TpAutomaticProxyFactoryClass"/>
2329 <function name="tp_automatic_proxy_factory_new ()" link="telepathy-glib-automatic-proxy-factory.html#tp-automatic-proxy-factory-new"/>
2330 <function name="tp_automatic_proxy_factory_dup ()" link="telepathy-glib-automatic-proxy-factory.html#tp-automatic-proxy-factory-dup"/>
2331 <function name="TpSimpleClientFactory" link="telepathy-glib-simple-client-factory.html#TpSimpleClientFactory-struct"/>
2332 <function name="struct TpSimpleClientFactoryClass" link="telepathy-glib-simple-client-factory.html#TpSimpleClientFactoryClass"/>
2333 <function name="tp_simple_client_factory_new ()" link="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-new"/>
2334 <function name="tp_simple_client_factory_get_dbus_daemon ()" link="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-get-dbus-daemon"/>
2335 <function name="tp_simple_client_factory_ensure_account ()" link="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-ensure-account"/>
2336 <function name="tp_simple_client_factory_dup_account_features ()" link="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-dup-account-features"/>
2337 <function name="tp_simple_client_factory_add_account_features ()" link="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-account-features"/>
2338 <function name="tp_simple_client_factory_add_account_features_varargs ()" link="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-account-features-varargs"/>
2339 <function name="tp_simple_client_factory_ensure_connection ()" link="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-ensure-connection"/>
2340 <function name="tp_simple_client_factory_dup_connection_features ()" link="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-dup-connection-features"/>
2341 <function name="tp_simple_client_factory_add_connection_features ()" link="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-connection-features"/>
2342 <function name="tp_simple_client_factory_add_connection_features_varargs ()" link="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-connection-features-varargs"/>
2343 <function name="tp_simple_client_factory_ensure_channel ()" link="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-ensure-channel"/>
2344 <function name="tp_simple_client_factory_dup_channel_features ()" link="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-dup-channel-features"/>
2345 <function name="tp_simple_client_factory_add_channel_features ()" link="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-channel-features"/>
2346 <function name="tp_simple_client_factory_add_channel_features_varargs ()" link="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-channel-features-varargs"/>
2347 <function name="tp_simple_client_factory_ensure_contact ()" link="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-ensure-contact"/>
2348 <function name="tp_simple_client_factory_dup_contact_features ()" link="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-dup-contact-features"/>
2349 <function name="tp_simple_client_factory_add_contact_features ()" link="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-contact-features"/>
2350 <function name="tp_simple_client_factory_add_contact_features_varargs ()" link="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-contact-features-varargs"/>
2351 <function name="The &quot;dbus-daemon&quot; property" link="telepathy-glib-simple-client-factory.html#TpSimpleClientFactory--dbus-daemon"/>
2352 <function name="TpAutomaticClientFactory" link="telepathy-glib-automatic-client-factory.html#TpAutomaticClientFactory-struct"/>
2353 <function name="struct TpAutomaticClientFactoryClass" link="telepathy-glib-automatic-client-factory.html#TpAutomaticClientFactoryClass"/>
2354 <function name="tp_automatic_client_factory_new ()" link="telepathy-glib-automatic-client-factory.html#tp-automatic-client-factory-new"/>
2355 <function name="TpClientMessage" link="TpClientMessage.html#TpClientMessage-struct"/>
2356 <function name="tp_client_message_new ()" link="TpClientMessage.html#tp-client-message-new"/>
2357 <function name="tp_client_message_new_text ()" link="TpClientMessage.html#tp-client-message-new-text"/>
2358 <function name="TpSignalledMessage" link="TpSignalledMessage.html#TpSignalledMessage-struct"/>
2359 <function name="tp_signalled_message_get_sender ()" link="TpSignalledMessage.html#tp-signalled-message-get-sender"/>
2360 <function name="The &quot;sender&quot; property" link="TpSignalledMessage.html#TpSignalledMessage--sender"/>
2361 <function name="struct TpTextChannel" link="telepathy-glib-text-channel.html#TpTextChannel-struct"/>
2362 <function name="struct TpTextChannelClass" link="telepathy-glib-text-channel.html#TpTextChannelClass"/>
2363 <function name="tp_text_channel_new ()" link="telepathy-glib-text-channel.html#tp-text-channel-new"/>
2364 <function name="tp_text_channel_get_supported_content_types ()" link="telepathy-glib-text-channel.html#tp-text-channel-get-supported-content-types"/>
2365 <function name="tp_text_channel_get_message_part_support_flags ()" link="telepathy-glib-text-channel.html#tp-text-channel-get-message-part-support-flags"/>
2366 <function name="tp_text_channel_get_delivery_reporting_support ()" link="telepathy-glib-text-channel.html#tp-text-channel-get-delivery-reporting-support"/>
2367 <function name="tp_text_channel_get_pending_messages ()" link="telepathy-glib-text-channel.html#tp-text-channel-get-pending-messages"/>
2368 <function name="tp_text_channel_get_message_types ()" link="telepathy-glib-text-channel.html#tp-text-channel-get-message-types"/>
2369 <function name="TP_TEXT_CHANNEL_FEATURE_INCOMING_MESSAGES" link="telepathy-glib-text-channel.html#TP-TEXT-CHANNEL-FEATURE-INCOMING-MESSAGES:CAPS"/>
2370 <function name="tp_text_channel_send_message_async ()" link="telepathy-glib-text-channel.html#tp-text-channel-send-message-async"/>
2371 <function name="tp_text_channel_send_message_finish ()" link="telepathy-glib-text-channel.html#tp-text-channel-send-message-finish"/>
2372 <function name="tp_text_channel_ack_messages_async ()" link="telepathy-glib-text-channel.html#tp-text-channel-ack-messages-async"/>
2373 <function name="tp_text_channel_ack_messages_finish ()" link="telepathy-glib-text-channel.html#tp-text-channel-ack-messages-finish"/>
2374 <function name="tp_text_channel_ack_message_async ()" link="telepathy-glib-text-channel.html#tp-text-channel-ack-message-async"/>
2375 <function name="tp_text_channel_ack_message_finish ()" link="telepathy-glib-text-channel.html#tp-text-channel-ack-message-finish"/>
2376 <function name="tp_text_channel_ack_all_pending_messages_async ()" link="telepathy-glib-text-channel.html#tp-text-channel-ack-all-pending-messages-async"/>
2377 <function name="tp_text_channel_ack_all_pending_messages_finish ()" link="telepathy-glib-text-channel.html#tp-text-channel-ack-all-pending-messages-finish"/>
2378 <function name="tp_text_channel_set_chat_state_async ()" link="telepathy-glib-text-channel.html#tp-text-channel-set-chat-state-async"/>
2379 <function name="tp_text_channel_set_chat_state_finish ()" link="telepathy-glib-text-channel.html#tp-text-channel-set-chat-state-finish"/>
2380 <function name="tp_text_channel_supports_message_type ()" link="telepathy-glib-text-channel.html#tp-text-channel-supports-message-type"/>
2381 <function name="TP_TEXT_CHANNEL_FEATURE_SMS" link="telepathy-glib-text-channel.html#TP-TEXT-CHANNEL-FEATURE-SMS:CAPS"/>
2382 <function name="tp_text_channel_is_sms_channel ()" link="telepathy-glib-text-channel.html#tp-text-channel-is-sms-channel"/>
2383 <function name="tp_text_channel_get_sms_flash ()" link="telepathy-glib-text-channel.html#tp-text-channel-get-sms-flash"/>
2384 <function name="tp_text_channel_get_sms_length_async ()" link="telepathy-glib-text-channel.html#tp-text-channel-get-sms-length-async"/>
2385 <function name="tp_text_channel_get_sms_length_finish ()" link="telepathy-glib-text-channel.html#tp-text-channel-get-sms-length-finish"/>
2386 <function name="The &quot;delivery-reporting-support&quot; property" link="telepathy-glib-text-channel.html#TpTextChannel--delivery-reporting-support"/>
2387 <function name="The &quot;is-sms-channel&quot; property" link="telepathy-glib-text-channel.html#TpTextChannel--is-sms-channel"/>
2388 <function name="The &quot;message-part-support-flags&quot; property" link="telepathy-glib-text-channel.html#TpTextChannel--message-part-support-flags"/>
2389 <function name="The &quot;message-types&quot; property" link="telepathy-glib-text-channel.html#TpTextChannel--message-types"/>
2390 <function name="The &quot;sms-flash&quot; property" link="telepathy-glib-text-channel.html#TpTextChannel--sms-flash"/>
2391 <function name="The &quot;supported-content-types&quot; property" link="telepathy-glib-text-channel.html#TpTextChannel--supported-content-types"/>
2392 <function name="The &quot;message-received&quot; signal" link="telepathy-glib-text-channel.html#TpTextChannel-message-received"/>
2393 <function name="The &quot;message-sent&quot; signal" link="telepathy-glib-text-channel.html#TpTextChannel-message-sent"/>
2394 <function name="The &quot;pending-message-removed&quot; signal" link="telepathy-glib-text-channel.html#TpTextChannel-pending-message-removed"/>
2395 <function name="struct TpFileTransferChannel" link="telepathy-glib-file-transfer-channel.html#TpFileTransferChannel-struct"/>
2396 <function name="struct TpFileTransferChannelClass" link="telepathy-glib-file-transfer-channel.html#TpFileTransferChannelClass"/>
2397 <function name="tp_file_transfer_channel_new ()" link="telepathy-glib-file-transfer-channel.html#tp-file-transfer-channel-new"/>
2398 <function name="TP_FILE_TRANSFER_CHANNEL_FEATURE_CORE" link="telepathy-glib-file-transfer-channel.html#TP-FILE-TRANSFER-CHANNEL-FEATURE-CORE:CAPS"/>
2399 <function name="tp_file_transfer_channel_get_mime_type ()" link="telepathy-glib-file-transfer-channel.html#tp-file-transfer-channel-get-mime-type"/>
2400 <function name="tp_file_transfer_channel_get_date ()" link="telepathy-glib-file-transfer-channel.html#tp-file-transfer-channel-get-date"/>
2401 <function name="tp_file_transfer_channel_get_description ()" link="telepathy-glib-file-transfer-channel.html#tp-file-transfer-channel-get-description"/>
2402 <function name="tp_file_transfer_channel_get_filename ()" link="telepathy-glib-file-transfer-channel.html#tp-file-transfer-channel-get-filename"/>
2403 <function name="tp_file_transfer_channel_get_size ()" link="telepathy-glib-file-transfer-channel.html#tp-file-transfer-channel-get-size"/>
2404 <function name="tp_file_transfer_channel_get_transferred_bytes ()" link="telepathy-glib-file-transfer-channel.html#tp-file-transfer-channel-get-transferred-bytes"/>
2405 <function name="The &quot;date&quot; property" link="telepathy-glib-file-transfer-channel.html#TpFileTransferChannel--date"/>
2406 <function name="The &quot;description&quot; property" link="telepathy-glib-file-transfer-channel.html#TpFileTransferChannel--description"/>
2407 <function name="The &quot;filename&quot; property" link="telepathy-glib-file-transfer-channel.html#TpFileTransferChannel--filename"/>
2408 <function name="The &quot;mime-type&quot; property" link="telepathy-glib-file-transfer-channel.html#TpFileTransferChannel--mime-type"/>
2409 <function name="The &quot;size&quot; property" link="telepathy-glib-file-transfer-channel.html#TpFileTransferChannel--size"/>
2410 <function name="The &quot;transferred-bytes&quot; property" link="telepathy-glib-file-transfer-channel.html#TpFileTransferChannel--transferred-bytes"/>
2411 <function name="TpSvcDBusIntrospectable" link="telepathy-glib-svc-generic.html#TpSvcDBusIntrospectable-struct"/>
2412 <function name="TpSvcDBusIntrospectableClass" link="telepathy-glib-svc-generic.html#TpSvcDBusIntrospectableClass"/>
2413 <function name="TpSvcDBusProperties" link="telepathy-glib-svc-generic.html#TpSvcDBusProperties-struct"/>
2414 <function name="TpSvcDBusPropertiesClass" link="telepathy-glib-svc-generic.html#TpSvcDBusPropertiesClass"/>
2415 <function name="TpSvcPropertiesInterface" link="telepathy-glib-svc-generic.html#TpSvcPropertiesInterface-struct"/>
2416 <function name="TpSvcPropertiesInterfaceClass" link="telepathy-glib-svc-generic.html#TpSvcPropertiesInterfaceClass"/>
2417 <function name="tp_svc_dbus_introspectable_implement_introspect ()" link="telepathy-glib-svc-generic.html#tp-svc-dbus-introspectable-implement-introspect"/>
2418 <function name="tp_svc_dbus_introspectable_introspect_impl ()" link="telepathy-glib-svc-generic.html#tp-svc-dbus-introspectable-introspect-impl"/>
2419 <function name="tp_svc_dbus_introspectable_return_from_introspect ()" link="telepathy-glib-svc-generic.html#tp-svc-dbus-introspectable-return-from-introspect"/>
2420 <function name="tp_svc_dbus_properties_get_all_impl ()" link="telepathy-glib-svc-generic.html#tp-svc-dbus-properties-get-all-impl"/>
2421 <function name="tp_svc_dbus_properties_get_impl ()" link="telepathy-glib-svc-generic.html#tp-svc-dbus-properties-get-impl"/>
2422 <function name="tp_svc_dbus_properties_implement_get ()" link="telepathy-glib-svc-generic.html#tp-svc-dbus-properties-implement-get"/>
2423 <function name="tp_svc_dbus_properties_implement_get_all ()" link="telepathy-glib-svc-generic.html#tp-svc-dbus-properties-implement-get-all"/>
2424 <function name="tp_svc_dbus_properties_implement_set ()" link="telepathy-glib-svc-generic.html#tp-svc-dbus-properties-implement-set"/>
2425 <function name="tp_svc_dbus_properties_return_from_get ()" link="telepathy-glib-svc-generic.html#tp-svc-dbus-properties-return-from-get"/>
2426 <function name="tp_svc_dbus_properties_return_from_get_all ()" link="telepathy-glib-svc-generic.html#tp-svc-dbus-properties-return-from-get-all"/>
2427 <function name="tp_svc_dbus_properties_return_from_set ()" link="telepathy-glib-svc-generic.html#tp-svc-dbus-properties-return-from-set"/>
2428 <function name="tp_svc_dbus_properties_set_impl ()" link="telepathy-glib-svc-generic.html#tp-svc-dbus-properties-set-impl"/>
2429 <function name="tp_svc_dbus_properties_emit_properties_changed ()" link="telepathy-glib-svc-generic.html#tp-svc-dbus-properties-emit-properties-changed"/>
2430 <function name="tp_svc_properties_interface_get_properties_impl ()" link="telepathy-glib-svc-generic.html#tp-svc-properties-interface-get-properties-impl"/>
2431 <function name="tp_svc_properties_interface_return_from_get_properties ()" link="telepathy-glib-svc-generic.html#tp-svc-properties-interface-return-from-get-properties"/>
2432 <function name="tp_svc_properties_interface_implement_get_properties ()" link="telepathy-glib-svc-generic.html#tp-svc-properties-interface-implement-get-properties"/>
2433 <function name="tp_svc_properties_interface_list_properties_impl ()" link="telepathy-glib-svc-generic.html#tp-svc-properties-interface-list-properties-impl"/>
2434 <function name="tp_svc_properties_interface_return_from_list_properties ()" link="telepathy-glib-svc-generic.html#tp-svc-properties-interface-return-from-list-properties"/>
2435 <function name="tp_svc_properties_interface_implement_list_properties ()" link="telepathy-glib-svc-generic.html#tp-svc-properties-interface-implement-list-properties"/>
2436 <function name="tp_svc_properties_interface_set_properties_impl ()" link="telepathy-glib-svc-generic.html#tp-svc-properties-interface-set-properties-impl"/>
2437 <function name="tp_svc_properties_interface_return_from_set_properties ()" link="telepathy-glib-svc-generic.html#tp-svc-properties-interface-return-from-set-properties"/>
2438 <function name="tp_svc_properties_interface_implement_set_properties ()" link="telepathy-glib-svc-generic.html#tp-svc-properties-interface-implement-set-properties"/>
2439 <function name="tp_svc_properties_interface_emit_properties_changed ()" link="telepathy-glib-svc-generic.html#tp-svc-properties-interface-emit-properties-changed"/>
2440 <function name="tp_svc_properties_interface_emit_property_flags_changed ()" link="telepathy-glib-svc-generic.html#tp-svc-properties-interface-emit-property-flags-changed"/>
2441 <function name="The &quot;properties-changed&quot; signal" link="telepathy-glib-svc-generic.html#TpSvcDBusProperties-properties-changed"/>
2442 <function name="The &quot;properties-changed&quot; signal" link="telepathy-glib-svc-generic.html#TpSvcPropertiesInterface-properties-changed"/>
2443 <function name="The &quot;property-flags-changed&quot; signal" link="telepathy-glib-svc-generic.html#TpSvcPropertiesInterface-property-flags-changed"/>
2444 <function name="TpSvcChannel" link="telepathy-glib-svc-channel.html#TpSvcChannel-struct"/>
2445 <function name="TpSvcChannelClass" link="telepathy-glib-svc-channel.html#TpSvcChannelClass"/>
2446 <function name="tp_svc_channel_close_impl ()" link="telepathy-glib-svc-channel.html#tp-svc-channel-close-impl"/>
2447 <function name="tp_svc_channel_implement_close ()" link="telepathy-glib-svc-channel.html#tp-svc-channel-implement-close"/>
2448 <function name="tp_svc_channel_return_from_close ()" link="telepathy-glib-svc-channel.html#tp-svc-channel-return-from-close"/>
2449 <function name="tp_svc_channel_get_channel_type_impl ()" link="telepathy-glib-svc-channel.html#tp-svc-channel-get-channel-type-impl"/>
2450 <function name="tp_svc_channel_implement_get_channel_type ()" link="telepathy-glib-svc-channel.html#tp-svc-channel-implement-get-channel-type"/>
2451 <function name="tp_svc_channel_return_from_get_channel_type ()" link="telepathy-glib-svc-channel.html#tp-svc-channel-return-from-get-channel-type"/>
2452 <function name="tp_svc_channel_get_handle_impl ()" link="telepathy-glib-svc-channel.html#tp-svc-channel-get-handle-impl"/>
2453 <function name="tp_svc_channel_implement_get_handle ()" link="telepathy-glib-svc-channel.html#tp-svc-channel-implement-get-handle"/>
2454 <function name="tp_svc_channel_return_from_get_handle ()" link="telepathy-glib-svc-channel.html#tp-svc-channel-return-from-get-handle"/>
2455 <function name="tp_svc_channel_get_interfaces_impl ()" link="telepathy-glib-svc-channel.html#tp-svc-channel-get-interfaces-impl"/>
2456 <function name="tp_svc_channel_implement_get_interfaces ()" link="telepathy-glib-svc-channel.html#tp-svc-channel-implement-get-interfaces"/>
2457 <function name="tp_svc_channel_return_from_get_interfaces ()" link="telepathy-glib-svc-channel.html#tp-svc-channel-return-from-get-interfaces"/>
2458 <function name="tp_svc_channel_emit_closed ()" link="telepathy-glib-svc-channel.html#tp-svc-channel-emit-closed"/>
2459 <function name="TpSvcChannelInterfaceDestroyable" link="telepathy-glib-svc-channel.html#TpSvcChannelInterfaceDestroyable-struct"/>
2460 <function name="TpSvcChannelInterfaceDestroyableClass" link="telepathy-glib-svc-channel.html#TpSvcChannelInterfaceDestroyableClass"/>
2461 <function name="tp_svc_channel_interface_destroyable_destroy_impl ()" link="telepathy-glib-svc-channel.html#tp-svc-channel-interface-destroyable-destroy-impl"/>
2462 <function name="tp_svc_channel_interface_destroyable_implement_destroy ()" link="telepathy-glib-svc-channel.html#tp-svc-channel-interface-destroyable-implement-destroy"/>
2463 <function name="tp_svc_channel_interface_destroyable_return_from_destroy ()" link="telepathy-glib-svc-channel.html#tp-svc-channel-interface-destroyable-return-from-destroy"/>
2464 <function name="The &quot;closed&quot; signal" link="telepathy-glib-svc-channel.html#TpSvcChannel-closed"/>
2465 <function name="TpSvcChannelInterfaceGroup" link="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-struct"/>
2466 <function name="TpSvcChannelInterfaceGroupClass" link="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroupClass"/>
2467 <function name="tp_svc_channel_interface_group_add_members_impl ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-add-members-impl"/>
2468 <function name="tp_svc_channel_interface_group_implement_add_members ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-implement-add-members"/>
2469 <function name="tp_svc_channel_interface_group_return_from_add_members ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-return-from-add-members"/>
2470 <function name="tp_svc_channel_interface_group_get_all_members_impl ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-get-all-members-impl"/>
2471 <function name="tp_svc_channel_interface_group_implement_get_all_members ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-implement-get-all-members"/>
2472 <function name="tp_svc_channel_interface_group_return_from_get_all_members ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-return-from-get-all-members"/>
2473 <function name="tp_svc_channel_interface_group_get_group_flags_impl ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-get-group-flags-impl"/>
2474 <function name="tp_svc_channel_interface_group_implement_get_group_flags ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-implement-get-group-flags"/>
2475 <function name="tp_svc_channel_interface_group_return_from_get_group_flags ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-return-from-get-group-flags"/>
2476 <function name="tp_svc_channel_interface_group_get_handle_owners_impl ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-get-handle-owners-impl"/>
2477 <function name="tp_svc_channel_interface_group_implement_get_handle_owners ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-implement-get-handle-owners"/>
2478 <function name="tp_svc_channel_interface_group_return_from_get_handle_owners ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-return-from-get-handle-owners"/>
2479 <function name="tp_svc_channel_interface_group_get_local_pending_members_impl ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-get-local-pending-members-impl"/>
2480 <function name="tp_svc_channel_interface_group_implement_get_local_pending_members ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-implement-get-local-pending-members"/>
2481 <function name="tp_svc_channel_interface_group_return_from_get_local_pending_members ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-return-from-get-local-pending-members"/>
2482 <function name="tp_svc_channel_interface_group_get_local_pending_members_with_info_impl ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-get-local-pending-members-with-info-impl"/>
2483 <function name="tp_svc_channel_interface_group_implement_get_local_pending_members_with_info ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-implement-get-local-pending-members-with-info"/>
2484 <function name="tp_svc_channel_interface_group_return_from_get_local_pending_members_with_info ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-return-from-get-local-pending-members-with-info"/>
2485 <function name="tp_svc_channel_interface_group_get_members_impl ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-get-members-impl"/>
2486 <function name="tp_svc_channel_interface_group_implement_get_members ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-implement-get-members"/>
2487 <function name="tp_svc_channel_interface_group_return_from_get_members ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-return-from-get-members"/>
2488 <function name="tp_svc_channel_interface_group_get_remote_pending_members_impl ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-get-remote-pending-members-impl"/>
2489 <function name="tp_svc_channel_interface_group_implement_get_remote_pending_members ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-implement-get-remote-pending-members"/>
2490 <function name="tp_svc_channel_interface_group_return_from_get_remote_pending_members ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-return-from-get-remote-pending-members"/>
2491 <function name="tp_svc_channel_interface_group_get_self_handle_impl ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-get-self-handle-impl"/>
2492 <function name="tp_svc_channel_interface_group_implement_get_self_handle ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-implement-get-self-handle"/>
2493 <function name="tp_svc_channel_interface_group_return_from_get_self_handle ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-return-from-get-self-handle"/>
2494 <function name="tp_svc_channel_interface_group_remove_members_impl ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-remove-members-impl"/>
2495 <function name="tp_svc_channel_interface_group_implement_remove_members ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-implement-remove-members"/>
2496 <function name="tp_svc_channel_interface_group_return_from_remove_members ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-return-from-remove-members"/>
2497 <function name="tp_svc_channel_interface_group_emit_group_flags_changed ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-emit-group-flags-changed"/>
2498 <function name="tp_svc_channel_interface_group_emit_members_changed ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-emit-members-changed"/>
2499 <function name="tp_svc_channel_interface_group_emit_members_changed_detailed ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-emit-members-changed-detailed"/>
2500 <function name="tp_svc_channel_interface_group_implement_remove_members_with_reason ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-implement-remove-members-with-reason"/>
2501 <function name="tp_svc_channel_interface_group_remove_members_with_reason_impl ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-remove-members-with-reason-impl"/>
2502 <function name="tp_svc_channel_interface_group_return_from_remove_members_with_reason ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-return-from-remove-members-with-reason"/>
2503 <function name="tp_svc_channel_interface_group_emit_handle_owners_changed ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-emit-handle-owners-changed"/>
2504 <function name="tp_svc_channel_interface_group_emit_self_handle_changed ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-group-emit-self-handle-changed"/>
2505 <function name="TpSvcChannelInterfaceConference" link="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceConference-struct"/>
2506 <function name="TpSvcChannelInterfaceConferenceClass" link="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceConferenceClass"/>
2507 <function name="tp_svc_channel_interface_conference_emit_channel_merged ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-conference-emit-channel-merged"/>
2508 <function name="tp_svc_channel_interface_conference_emit_channel_removed ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-conference-emit-channel-removed"/>
2509 <function name="The &quot;group-flags-changed&quot; signal" link="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-group-flags-changed"/>
2510 <function name="The &quot;handle-owners-changed&quot; signal" link="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-handle-owners-changed"/>
2511 <function name="The &quot;members-changed&quot; signal" link="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-members-changed"/>
2512 <function name="The &quot;members-changed-detailed&quot; signal" link="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-members-changed-detailed"/>
2513 <function name="The &quot;self-handle-changed&quot; signal" link="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-self-handle-changed"/>
2514 <function name="The &quot;channel-merged&quot; signal" link="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceConference-channel-merged"/>
2515 <function name="The &quot;channel-removed&quot; signal" link="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceConference-channel-removed"/>
2516 <function name="TpSvcChannelTypeContactList" link="telepathy-glib-svc-channel-contactlist.html#TpSvcChannelTypeContactList-struct"/>
2517 <function name="TpSvcChannelTypeContactListClass" link="telepathy-glib-svc-channel-contactlist.html#TpSvcChannelTypeContactListClass"/>
2518 <function name="TpSvcChannelTypeContactSearch" link="telepathy-glib-svc-channel-contactsearch.html#TpSvcChannelTypeContactSearch-struct"/>
2519 <function name="TpSvcChannelTypeContactSearchClass" link="telepathy-glib-svc-channel-contactsearch.html#TpSvcChannelTypeContactSearchClass"/>
2520 <function name="tp_svc_channel_type_contact_search_emit_search_result_received ()" link="telepathy-glib-svc-channel-contactsearch.html#tp-svc-channel-type-contact-search-emit-search-result-received"/>
2521 <function name="tp_svc_channel_type_contact_search_emit_search_state_changed ()" link="telepathy-glib-svc-channel-contactsearch.html#tp-svc-channel-type-contact-search-emit-search-state-changed"/>
2522 <function name="tp_svc_channel_type_contact_search_implement_more ()" link="telepathy-glib-svc-channel-contactsearch.html#tp-svc-channel-type-contact-search-implement-more"/>
2523 <function name="tp_svc_channel_type_contact_search_implement_search ()" link="telepathy-glib-svc-channel-contactsearch.html#tp-svc-channel-type-contact-search-implement-search"/>
2524 <function name="tp_svc_channel_type_contact_search_implement_stop ()" link="telepathy-glib-svc-channel-contactsearch.html#tp-svc-channel-type-contact-search-implement-stop"/>
2525 <function name="tp_svc_channel_type_contact_search_more_impl ()" link="telepathy-glib-svc-channel-contactsearch.html#tp-svc-channel-type-contact-search-more-impl"/>
2526 <function name="tp_svc_channel_type_contact_search_return_from_more ()" link="telepathy-glib-svc-channel-contactsearch.html#tp-svc-channel-type-contact-search-return-from-more"/>
2527 <function name="tp_svc_channel_type_contact_search_return_from_search ()" link="telepathy-glib-svc-channel-contactsearch.html#tp-svc-channel-type-contact-search-return-from-search"/>
2528 <function name="tp_svc_channel_type_contact_search_return_from_stop ()" link="telepathy-glib-svc-channel-contactsearch.html#tp-svc-channel-type-contact-search-return-from-stop"/>
2529 <function name="tp_svc_channel_type_contact_search_search_impl ()" link="telepathy-glib-svc-channel-contactsearch.html#tp-svc-channel-type-contact-search-search-impl"/>
2530 <function name="tp_svc_channel_type_contact_search_stop_impl ()" link="telepathy-glib-svc-channel-contactsearch.html#tp-svc-channel-type-contact-search-stop-impl"/>
2531 <function name="The &quot;search-result-received&quot; signal" link="telepathy-glib-svc-channel-contactsearch.html#TpSvcChannelTypeContactSearch-search-result-received"/>
2532 <function name="The &quot;search-state-changed&quot; signal" link="telepathy-glib-svc-channel-contactsearch.html#TpSvcChannelTypeContactSearch-search-state-changed"/>
2533 <function name="TpSvcChannelTypeText" link="telepathy-glib-svc-channel-text.html#TpSvcChannelTypeText-struct"/>
2534 <function name="TpSvcChannelTypeTextClass" link="telepathy-glib-svc-channel-text.html#TpSvcChannelTypeTextClass"/>
2535 <function name="tp_svc_channel_type_text_acknowledge_pending_messages_impl ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-type-text-acknowledge-pending-messages-impl"/>
2536 <function name="tp_svc_channel_type_text_implement_acknowledge_pending_messages ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-type-text-implement-acknowledge-pending-messages"/>
2537 <function name="tp_svc_channel_type_text_return_from_acknowledge_pending_messages ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-type-text-return-from-acknowledge-pending-messages"/>
2538 <function name="tp_svc_channel_type_text_get_message_types_impl ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-type-text-get-message-types-impl"/>
2539 <function name="tp_svc_channel_type_text_implement_get_message_types ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-type-text-implement-get-message-types"/>
2540 <function name="tp_svc_channel_type_text_return_from_get_message_types ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-type-text-return-from-get-message-types"/>
2541 <function name="tp_svc_channel_type_text_list_pending_messages_impl ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-type-text-list-pending-messages-impl"/>
2542 <function name="tp_svc_channel_type_text_implement_list_pending_messages ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-type-text-implement-list-pending-messages"/>
2543 <function name="tp_svc_channel_type_text_return_from_list_pending_messages ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-type-text-return-from-list-pending-messages"/>
2544 <function name="tp_svc_channel_type_text_send_impl ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-type-text-send-impl"/>
2545 <function name="tp_svc_channel_type_text_implement_send ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-type-text-implement-send"/>
2546 <function name="tp_svc_channel_type_text_return_from_send ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-type-text-return-from-send"/>
2547 <function name="tp_svc_channel_type_text_emit_lost_message ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-type-text-emit-lost-message"/>
2548 <function name="tp_svc_channel_type_text_emit_received ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-type-text-emit-received"/>
2549 <function name="tp_svc_channel_type_text_emit_send_error ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-type-text-emit-send-error"/>
2550 <function name="tp_svc_channel_type_text_emit_sent ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-type-text-emit-sent"/>
2551 <function name="TpSvcChannelInterfaceChatState" link="telepathy-glib-svc-channel-text.html#TpSvcChannelInterfaceChatState-struct"/>
2552 <function name="TpSvcChannelInterfaceChatStateClass" link="telepathy-glib-svc-channel-text.html#TpSvcChannelInterfaceChatStateClass"/>
2553 <function name="tp_svc_channel_interface_chat_state_set_chat_state_impl ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-interface-chat-state-set-chat-state-impl"/>
2554 <function name="tp_svc_channel_interface_chat_state_implement_set_chat_state ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-interface-chat-state-implement-set-chat-state"/>
2555 <function name="tp_svc_channel_interface_chat_state_return_from_set_chat_state ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-interface-chat-state-return-from-set-chat-state"/>
2556 <function name="tp_svc_channel_interface_chat_state_emit_chat_state_changed ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-interface-chat-state-emit-chat-state-changed"/>
2557 <function name="TpSvcChannelInterfaceMessages" link="telepathy-glib-svc-channel-text.html#TpSvcChannelInterfaceMessages-struct"/>
2558 <function name="TpSvcChannelInterfaceMessagesClass" link="telepathy-glib-svc-channel-text.html#TpSvcChannelInterfaceMessagesClass"/>
2559 <function name="tp_svc_channel_interface_messages_emit_message_received ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-interface-messages-emit-message-received"/>
2560 <function name="tp_svc_channel_interface_messages_emit_message_sent ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-interface-messages-emit-message-sent"/>
2561 <function name="tp_svc_channel_interface_messages_emit_pending_messages_removed ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-interface-messages-emit-pending-messages-removed"/>
2562 <function name="tp_svc_channel_interface_messages_get_pending_message_content_impl ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-interface-messages-get-pending-message-content-impl"/>
2563 <function name="tp_svc_channel_interface_messages_implement_get_pending_message_content ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-interface-messages-implement-get-pending-message-content"/>
2564 <function name="tp_svc_channel_interface_messages_implement_send_message ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-interface-messages-implement-send-message"/>
2565 <function name="tp_svc_channel_interface_messages_return_from_get_pending_message_content ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-interface-messages-return-from-get-pending-message-content"/>
2566 <function name="tp_svc_channel_interface_messages_return_from_send_message ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-interface-messages-return-from-send-message"/>
2567 <function name="tp_svc_channel_interface_messages_send_message_impl ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-interface-messages-send-message-impl"/>
2568 <function name="TpSvcChannelInterfacePassword" link="telepathy-glib-svc-channel-text.html#TpSvcChannelInterfacePassword-struct"/>
2569 <function name="TpSvcChannelInterfacePasswordClass" link="telepathy-glib-svc-channel-text.html#TpSvcChannelInterfacePasswordClass"/>
2570 <function name="tp_svc_channel_interface_password_get_password_flags_impl ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-interface-password-get-password-flags-impl"/>
2571 <function name="tp_svc_channel_interface_password_implement_get_password_flags ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-interface-password-implement-get-password-flags"/>
2572 <function name="tp_svc_channel_interface_password_return_from_get_password_flags ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-interface-password-return-from-get-password-flags"/>
2573 <function name="tp_svc_channel_interface_password_provide_password_impl ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-interface-password-provide-password-impl"/>
2574 <function name="tp_svc_channel_interface_password_implement_provide_password ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-interface-password-implement-provide-password"/>
2575 <function name="tp_svc_channel_interface_password_return_from_provide_password ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-interface-password-return-from-provide-password"/>
2576 <function name="tp_svc_channel_interface_password_emit_password_flags_changed ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-interface-password-emit-password-flags-changed"/>
2577 <function name="TpSvcChannelInterfaceSMS" link="telepathy-glib-svc-channel-text.html#TpSvcChannelInterfaceSMS-struct"/>
2578 <function name="TpSvcChannelInterfaceSMSClass" link="telepathy-glib-svc-channel-text.html#TpSvcChannelInterfaceSMSClass"/>
2579 <function name="tp_svc_channel_interface_sms_emit_sms_channel_changed ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-interface-sms-emit-sms-channel-changed"/>
2580 <function name="tp_svc_channel_interface_sms_get_sms_length_impl ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-interface-sms-get-sms-length-impl"/>
2581 <function name="tp_svc_channel_interface_sms_implement_get_sms_length ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-interface-sms-implement-get-sms-length"/>
2582 <function name="tp_svc_channel_interface_sms_return_from_get_sms_length ()" link="telepathy-glib-svc-channel-text.html#tp-svc-channel-interface-sms-return-from-get-sms-length"/>
2583 <function name="The &quot;lost-message&quot; signal" link="telepathy-glib-svc-channel-text.html#TpSvcChannelTypeText-lost-message"/>
2584 <function name="The &quot;received&quot; signal" link="telepathy-glib-svc-channel-text.html#TpSvcChannelTypeText-received"/>
2585 <function name="The &quot;send-error&quot; signal" link="telepathy-glib-svc-channel-text.html#TpSvcChannelTypeText-send-error"/>
2586 <function name="The &quot;sent&quot; signal" link="telepathy-glib-svc-channel-text.html#TpSvcChannelTypeText-sent"/>
2587 <function name="The &quot;chat-state-changed&quot; signal" link="telepathy-glib-svc-channel-text.html#TpSvcChannelInterfaceChatState-chat-state-changed"/>
2588 <function name="The &quot;message-received&quot; signal" link="telepathy-glib-svc-channel-text.html#TpSvcChannelInterfaceMessages-message-received"/>
2589 <function name="The &quot;message-sent&quot; signal" link="telepathy-glib-svc-channel-text.html#TpSvcChannelInterfaceMessages-message-sent"/>
2590 <function name="The &quot;pending-messages-removed&quot; signal" link="telepathy-glib-svc-channel-text.html#TpSvcChannelInterfaceMessages-pending-messages-removed"/>
2591 <function name="The &quot;password-flags-changed&quot; signal" link="telepathy-glib-svc-channel-text.html#TpSvcChannelInterfacePassword-password-flags-changed"/>
2592 <function name="The &quot;s-ms-channel-changed&quot; signal" link="telepathy-glib-svc-channel-text.html#TpSvcChannelInterfaceSMS-s-ms-channel-changed"/>
2593 <function name="TpSvcChannelTypeStreamedMedia" link="telepathy-glib-svc-channel-media.html#TpSvcChannelTypeStreamedMedia-struct"/>
2594 <function name="TpSvcChannelTypeStreamedMediaClass" link="telepathy-glib-svc-channel-media.html#TpSvcChannelTypeStreamedMediaClass"/>
2595 <function name="tp_svc_channel_type_streamed_media_list_streams_impl ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-type-streamed-media-list-streams-impl"/>
2596 <function name="tp_svc_channel_type_streamed_media_implement_list_streams ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-type-streamed-media-implement-list-streams"/>
2597 <function name="tp_svc_channel_type_streamed_media_return_from_list_streams ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-type-streamed-media-return-from-list-streams"/>
2598 <function name="tp_svc_channel_type_streamed_media_remove_streams_impl ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-type-streamed-media-remove-streams-impl"/>
2599 <function name="tp_svc_channel_type_streamed_media_implement_remove_streams ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-type-streamed-media-implement-remove-streams"/>
2600 <function name="tp_svc_channel_type_streamed_media_return_from_remove_streams ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-type-streamed-media-return-from-remove-streams"/>
2601 <function name="tp_svc_channel_type_streamed_media_request_stream_direction_impl ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-type-streamed-media-request-stream-direction-impl"/>
2602 <function name="tp_svc_channel_type_streamed_media_implement_request_stream_direction ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-type-streamed-media-implement-request-stream-direction"/>
2603 <function name="tp_svc_channel_type_streamed_media_return_from_request_stream_direction ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-type-streamed-media-return-from-request-stream-direction"/>
2604 <function name="tp_svc_channel_type_streamed_media_request_streams_impl ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-type-streamed-media-request-streams-impl"/>
2605 <function name="tp_svc_channel_type_streamed_media_implement_request_streams ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-type-streamed-media-implement-request-streams"/>
2606 <function name="tp_svc_channel_type_streamed_media_return_from_request_streams ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-type-streamed-media-return-from-request-streams"/>
2607 <function name="tp_svc_channel_type_streamed_media_emit_stream_added ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-type-streamed-media-emit-stream-added"/>
2608 <function name="tp_svc_channel_type_streamed_media_emit_stream_direction_changed ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-type-streamed-media-emit-stream-direction-changed"/>
2609 <function name="tp_svc_channel_type_streamed_media_emit_stream_error ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-type-streamed-media-emit-stream-error"/>
2610 <function name="tp_svc_channel_type_streamed_media_emit_stream_removed ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-type-streamed-media-emit-stream-removed"/>
2611 <function name="tp_svc_channel_type_streamed_media_emit_stream_state_changed ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-type-streamed-media-emit-stream-state-changed"/>
2612 <function name="TpSvcChannelInterfaceCallState" link="telepathy-glib-svc-channel-media.html#TpSvcChannelInterfaceCallState-struct"/>
2613 <function name="TpSvcChannelInterfaceCallStateClass" link="telepathy-glib-svc-channel-media.html#TpSvcChannelInterfaceCallStateClass"/>
2614 <function name="tp_svc_channel_interface_call_state_emit_call_state_changed ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-call-state-emit-call-state-changed"/>
2615 <function name="tp_svc_channel_interface_call_state_get_call_states_impl ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-call-state-get-call-states-impl"/>
2616 <function name="tp_svc_channel_interface_call_state_implement_get_call_states ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-call-state-implement-get-call-states"/>
2617 <function name="tp_svc_channel_interface_call_state_return_from_get_call_states ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-call-state-return-from-get-call-states"/>
2618 <function name="TpSvcChannelInterfaceDTMF" link="telepathy-glib-svc-channel-media.html#TpSvcChannelInterfaceDTMF-struct"/>
2619 <function name="TpSvcChannelInterfaceDTMFClass" link="telepathy-glib-svc-channel-media.html#TpSvcChannelInterfaceDTMFClass"/>
2620 <function name="tp_svc_channel_interface_dtmf_implement_multiple_tones ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-dtmf-implement-multiple-tones"/>
2621 <function name="tp_svc_channel_interface_dtmf_implement_start_tone ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-dtmf-implement-start-tone"/>
2622 <function name="tp_svc_channel_interface_dtmf_implement_stop_tone ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-dtmf-implement-stop-tone"/>
2623 <function name="tp_svc_channel_interface_dtmf_return_from_multiple_tones ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-dtmf-return-from-multiple-tones"/>
2624 <function name="tp_svc_channel_interface_dtmf_return_from_start_tone ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-dtmf-return-from-start-tone"/>
2625 <function name="tp_svc_channel_interface_dtmf_return_from_stop_tone ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-dtmf-return-from-stop-tone"/>
2626 <function name="tp_svc_channel_interface_dtmf_multiple_tones_impl ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-dtmf-multiple-tones-impl"/>
2627 <function name="tp_svc_channel_interface_dtmf_start_tone_impl ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-dtmf-start-tone-impl"/>
2628 <function name="tp_svc_channel_interface_dtmf_stop_tone_impl ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-dtmf-stop-tone-impl"/>
2629 <function name="tp_svc_channel_interface_dtmf_emit_sending_tones ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-dtmf-emit-sending-tones"/>
2630 <function name="tp_svc_channel_interface_dtmf_emit_stopped_tones ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-dtmf-emit-stopped-tones"/>
2631 <function name="tp_svc_channel_interface_dtmf_emit_tones_deferred ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-dtmf-emit-tones-deferred"/>
2632 <function name="TpSvcChannelInterfaceHold" link="telepathy-glib-svc-channel-media.html#TpSvcChannelInterfaceHold-struct"/>
2633 <function name="TpSvcChannelInterfaceHoldClass" link="telepathy-glib-svc-channel-media.html#TpSvcChannelInterfaceHoldClass"/>
2634 <function name="tp_svc_channel_interface_hold_get_hold_state_impl ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-hold-get-hold-state-impl"/>
2635 <function name="tp_svc_channel_interface_hold_return_from_get_hold_state ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-hold-return-from-get-hold-state"/>
2636 <function name="tp_svc_channel_interface_hold_implement_get_hold_state ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-hold-implement-get-hold-state"/>
2637 <function name="tp_svc_channel_interface_hold_request_hold_impl ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-hold-request-hold-impl"/>
2638 <function name="tp_svc_channel_interface_hold_return_from_request_hold ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-hold-return-from-request-hold"/>
2639 <function name="tp_svc_channel_interface_hold_implement_request_hold ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-hold-implement-request-hold"/>
2640 <function name="tp_svc_channel_interface_hold_emit_hold_state_changed ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-hold-emit-hold-state-changed"/>
2641 <function name="TpSvcChannelInterfaceMediaSignalling" link="telepathy-glib-svc-channel-media.html#TpSvcChannelInterfaceMediaSignalling-struct"/>
2642 <function name="TpSvcChannelInterfaceMediaSignallingClass" link="telepathy-glib-svc-channel-media.html#TpSvcChannelInterfaceMediaSignallingClass"/>
2643 <function name="tp_svc_channel_interface_media_signalling_get_session_handlers_impl ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-media-signalling-get-session-handlers-impl"/>
2644 <function name="tp_svc_channel_interface_media_signalling_implement_get_session_handlers ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-media-signalling-implement-get-session-handlers"/>
2645 <function name="tp_svc_channel_interface_media_signalling_return_from_get_session_handlers ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-media-signalling-return-from-get-session-handlers"/>
2646 <function name="tp_svc_channel_interface_media_signalling_emit_new_session_handler ()" link="telepathy-glib-svc-channel-media.html#tp-svc-channel-interface-media-signalling-emit-new-session-handler"/>
2647 <function name="The &quot;stream-added&quot; signal" link="telepathy-glib-svc-channel-media.html#TpSvcChannelTypeStreamedMedia-stream-added"/>
2648 <function name="The &quot;stream-direction-changed&quot; signal" link="telepathy-glib-svc-channel-media.html#TpSvcChannelTypeStreamedMedia-stream-direction-changed"/>
2649 <function name="The &quot;stream-error&quot; signal" link="telepathy-glib-svc-channel-media.html#TpSvcChannelTypeStreamedMedia-stream-error"/>
2650 <function name="The &quot;stream-removed&quot; signal" link="telepathy-glib-svc-channel-media.html#TpSvcChannelTypeStreamedMedia-stream-removed"/>
2651 <function name="The &quot;stream-state-changed&quot; signal" link="telepathy-glib-svc-channel-media.html#TpSvcChannelTypeStreamedMedia-stream-state-changed"/>
2652 <function name="The &quot;call-state-changed&quot; signal" link="telepathy-glib-svc-channel-media.html#TpSvcChannelInterfaceCallState-call-state-changed"/>
2653 <function name="The &quot;sending-tones&quot; signal" link="telepathy-glib-svc-channel-media.html#TpSvcChannelInterfaceDTMF-sending-tones"/>
2654 <function name="The &quot;stopped-tones&quot; signal" link="telepathy-glib-svc-channel-media.html#TpSvcChannelInterfaceDTMF-stopped-tones"/>
2655 <function name="The &quot;tones-deferred&quot; signal" link="telepathy-glib-svc-channel-media.html#TpSvcChannelInterfaceDTMF-tones-deferred"/>
2656 <function name="The &quot;hold-state-changed&quot; signal" link="telepathy-glib-svc-channel-media.html#TpSvcChannelInterfaceHold-hold-state-changed"/>
2657 <function name="The &quot;new-session-handler&quot; signal" link="telepathy-glib-svc-channel-media.html#TpSvcChannelInterfaceMediaSignalling-new-session-handler"/>
2658 <function name="TpSvcChannelTypeFileTransfer" link="telepathy-glib-svc-channel-file-transfer.html#TpSvcChannelTypeFileTransfer-struct"/>
2659 <function name="TpSvcChannelTypeFileTransferClass" link="telepathy-glib-svc-channel-file-transfer.html#TpSvcChannelTypeFileTransferClass"/>
2660 <function name="tp_svc_channel_type_file_transfer_accept_file_impl ()" link="telepathy-glib-svc-channel-file-transfer.html#tp-svc-channel-type-file-transfer-accept-file-impl"/>
2661 <function name="tp_svc_channel_type_file_transfer_emit_file_transfer_state_changed ()" link="telepathy-glib-svc-channel-file-transfer.html#tp-svc-channel-type-file-transfer-emit-file-transfer-state-changed"/>
2662 <function name="tp_svc_channel_type_file_transfer_emit_initial_offset_defined ()" link="telepathy-glib-svc-channel-file-transfer.html#tp-svc-channel-type-file-transfer-emit-initial-offset-defined"/>
2663 <function name="tp_svc_channel_type_file_transfer_emit_transferred_bytes_changed ()" link="telepathy-glib-svc-channel-file-transfer.html#tp-svc-channel-type-file-transfer-emit-transferred-bytes-changed"/>
2664 <function name="tp_svc_channel_type_file_transfer_emit_uri_defined ()" link="telepathy-glib-svc-channel-file-transfer.html#tp-svc-channel-type-file-transfer-emit-uri-defined"/>
2665 <function name="tp_svc_channel_type_file_transfer_implement_accept_file ()" link="telepathy-glib-svc-channel-file-transfer.html#tp-svc-channel-type-file-transfer-implement-accept-file"/>
2666 <function name="tp_svc_channel_type_file_transfer_implement_provide_file ()" link="telepathy-glib-svc-channel-file-transfer.html#tp-svc-channel-type-file-transfer-implement-provide-file"/>
2667 <function name="tp_svc_channel_type_file_transfer_provide_file_impl ()" link="telepathy-glib-svc-channel-file-transfer.html#tp-svc-channel-type-file-transfer-provide-file-impl"/>
2668 <function name="tp_svc_channel_type_file_transfer_return_from_accept_file ()" link="telepathy-glib-svc-channel-file-transfer.html#tp-svc-channel-type-file-transfer-return-from-accept-file"/>
2669 <function name="tp_svc_channel_type_file_transfer_return_from_provide_file ()" link="telepathy-glib-svc-channel-file-transfer.html#tp-svc-channel-type-file-transfer-return-from-provide-file"/>
2670 <function name="The &quot;file-transfer-state-changed&quot; signal" link="telepathy-glib-svc-channel-file-transfer.html#TpSvcChannelTypeFileTransfer-file-transfer-state-changed"/>
2671 <function name="The &quot;initial-offset-defined&quot; signal" link="telepathy-glib-svc-channel-file-transfer.html#TpSvcChannelTypeFileTransfer-initial-offset-defined"/>
2672 <function name="The &quot;transferred-bytes-changed&quot; signal" link="telepathy-glib-svc-channel-file-transfer.html#TpSvcChannelTypeFileTransfer-transferred-bytes-changed"/>
2673 <function name="The &quot;u-ri-defined&quot; signal" link="telepathy-glib-svc-channel-file-transfer.html#TpSvcChannelTypeFileTransfer-u-ri-defined"/>
2674 <function name="TpSvcChannelTypeTubes" link="telepathy-glib-svc-channel-tubes.html#TpSvcChannelTypeTubes-struct"/>
2675 <function name="TpSvcChannelTypeTubesClass" link="telepathy-glib-svc-channel-tubes.html#TpSvcChannelTypeTubesClass"/>
2676 <function name="tp_svc_channel_type_tubes_accept_d_bus_tube_impl ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-accept-d-bus-tube-impl"/>
2677 <function name="tp_svc_channel_type_tubes_implement_accept_d_bus_tube ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-implement-accept-d-bus-tube"/>
2678 <function name="tp_svc_channel_type_tubes_return_from_accept_d_bus_tube ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-return-from-accept-d-bus-tube"/>
2679 <function name="tp_svc_channel_type_tubes_accept_stream_tube_impl ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-accept-stream-tube-impl"/>
2680 <function name="tp_svc_channel_type_tubes_implement_accept_stream_tube ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-implement-accept-stream-tube"/>
2681 <function name="tp_svc_channel_type_tubes_return_from_accept_stream_tube ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-return-from-accept-stream-tube"/>
2682 <function name="tp_svc_channel_type_tubes_close_tube_impl ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-close-tube-impl"/>
2683 <function name="tp_svc_channel_type_tubes_implement_close_tube ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-implement-close-tube"/>
2684 <function name="tp_svc_channel_type_tubes_return_from_close_tube ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-return-from-close-tube"/>
2685 <function name="tp_svc_channel_type_tubes_get_available_stream_tube_types_impl ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-get-available-stream-tube-types-impl"/>
2686 <function name="tp_svc_channel_type_tubes_implement_get_available_stream_tube_types ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-implement-get-available-stream-tube-types"/>
2687 <function name="tp_svc_channel_type_tubes_return_from_get_available_stream_tube_types ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-return-from-get-available-stream-tube-types"/>
2688 <function name="tp_svc_channel_type_tubes_get_available_tube_types_impl ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-get-available-tube-types-impl"/>
2689 <function name="tp_svc_channel_type_tubes_implement_get_available_tube_types ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-implement-get-available-tube-types"/>
2690 <function name="tp_svc_channel_type_tubes_return_from_get_available_tube_types ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-return-from-get-available-tube-types"/>
2691 <function name="tp_svc_channel_type_tubes_get_d_bus_names_impl ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-get-d-bus-names-impl"/>
2692 <function name="tp_svc_channel_type_tubes_implement_get_d_bus_names ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-implement-get-d-bus-names"/>
2693 <function name="tp_svc_channel_type_tubes_return_from_get_d_bus_names ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-return-from-get-d-bus-names"/>
2694 <function name="tp_svc_channel_type_tubes_get_d_bus_tube_address_impl ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-get-d-bus-tube-address-impl"/>
2695 <function name="tp_svc_channel_type_tubes_implement_get_d_bus_tube_address ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-implement-get-d-bus-tube-address"/>
2696 <function name="tp_svc_channel_type_tubes_return_from_get_d_bus_tube_address ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-return-from-get-d-bus-tube-address"/>
2697 <function name="tp_svc_channel_type_tubes_get_stream_tube_socket_address_impl ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-get-stream-tube-socket-address-impl"/>
2698 <function name="tp_svc_channel_type_tubes_implement_get_stream_tube_socket_address ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-implement-get-stream-tube-socket-address"/>
2699 <function name="tp_svc_channel_type_tubes_return_from_get_stream_tube_socket_address ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-return-from-get-stream-tube-socket-address"/>
2700 <function name="tp_svc_channel_type_tubes_list_tubes_impl ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-list-tubes-impl"/>
2701 <function name="tp_svc_channel_type_tubes_implement_list_tubes ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-implement-list-tubes"/>
2702 <function name="tp_svc_channel_type_tubes_return_from_list_tubes ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-return-from-list-tubes"/>
2703 <function name="tp_svc_channel_type_tubes_offer_d_bus_tube_impl ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-offer-d-bus-tube-impl"/>
2704 <function name="tp_svc_channel_type_tubes_implement_offer_d_bus_tube ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-implement-offer-d-bus-tube"/>
2705 <function name="tp_svc_channel_type_tubes_return_from_offer_d_bus_tube ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-return-from-offer-d-bus-tube"/>
2706 <function name="tp_svc_channel_type_tubes_offer_stream_tube_impl ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-offer-stream-tube-impl"/>
2707 <function name="tp_svc_channel_type_tubes_implement_offer_stream_tube ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-implement-offer-stream-tube"/>
2708 <function name="tp_svc_channel_type_tubes_return_from_offer_stream_tube ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-return-from-offer-stream-tube"/>
2709 <function name="tp_svc_channel_type_tubes_emit_d_bus_names_changed ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-emit-d-bus-names-changed"/>
2710 <function name="tp_svc_channel_type_tubes_emit_new_tube ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-emit-new-tube"/>
2711 <function name="tp_svc_channel_type_tubes_emit_stream_tube_new_connection ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-emit-stream-tube-new-connection"/>
2712 <function name="tp_svc_channel_type_tubes_emit_tube_closed ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-emit-tube-closed"/>
2713 <function name="tp_svc_channel_type_tubes_emit_tube_state_changed ()" link="telepathy-glib-svc-channel-tubes.html#tp-svc-channel-type-tubes-emit-tube-state-changed"/>
2714 <function name="The &quot;d-bus-names-changed&quot; signal" link="telepathy-glib-svc-channel-tubes.html#TpSvcChannelTypeTubes-d-bus-names-changed"/>
2715 <function name="The &quot;new-tube&quot; signal" link="telepathy-glib-svc-channel-tubes.html#TpSvcChannelTypeTubes-new-tube"/>
2716 <function name="The &quot;stream-tube-new-connection&quot; signal" link="telepathy-glib-svc-channel-tubes.html#TpSvcChannelTypeTubes-stream-tube-new-connection"/>
2717 <function name="The &quot;tube-closed&quot; signal" link="telepathy-glib-svc-channel-tubes.html#TpSvcChannelTypeTubes-tube-closed"/>
2718 <function name="The &quot;tube-state-changed&quot; signal" link="telepathy-glib-svc-channel-tubes.html#TpSvcChannelTypeTubes-tube-state-changed"/>
2719 <function name="TpSvcChannelInterfaceTube" link="telepathy-glib-svc-channel-tube.html#TpSvcChannelInterfaceTube-struct"/>
2720 <function name="TpSvcChannelInterfaceTubeClass" link="telepathy-glib-svc-channel-tube.html#TpSvcChannelInterfaceTubeClass"/>
2721 <function name="tp_svc_channel_interface_tube_emit_tube_channel_state_changed ()" link="telepathy-glib-svc-channel-tube.html#tp-svc-channel-interface-tube-emit-tube-channel-state-changed"/>
2722 <function name="TpSvcChannelTypeStreamTube" link="telepathy-glib-svc-channel-tube.html#TpSvcChannelTypeStreamTube-struct"/>
2723 <function name="TpSvcChannelTypeStreamTubeClass" link="telepathy-glib-svc-channel-tube.html#TpSvcChannelTypeStreamTubeClass"/>
2724 <function name="tp_svc_channel_type_stream_tube_offer_impl ()" link="telepathy-glib-svc-channel-tube.html#tp-svc-channel-type-stream-tube-offer-impl"/>
2725 <function name="tp_svc_channel_type_stream_tube_implement_offer ()" link="telepathy-glib-svc-channel-tube.html#tp-svc-channel-type-stream-tube-implement-offer"/>
2726 <function name="tp_svc_channel_type_stream_tube_return_from_offer ()" link="telepathy-glib-svc-channel-tube.html#tp-svc-channel-type-stream-tube-return-from-offer"/>
2727 <function name="tp_svc_channel_type_stream_tube_accept_impl ()" link="telepathy-glib-svc-channel-tube.html#tp-svc-channel-type-stream-tube-accept-impl"/>
2728 <function name="tp_svc_channel_type_stream_tube_implement_accept ()" link="telepathy-glib-svc-channel-tube.html#tp-svc-channel-type-stream-tube-implement-accept"/>
2729 <function name="tp_svc_channel_type_stream_tube_return_from_accept ()" link="telepathy-glib-svc-channel-tube.html#tp-svc-channel-type-stream-tube-return-from-accept"/>
2730 <function name="tp_svc_channel_type_stream_tube_emit_new_remote_connection ()" link="telepathy-glib-svc-channel-tube.html#tp-svc-channel-type-stream-tube-emit-new-remote-connection"/>
2731 <function name="tp_svc_channel_type_stream_tube_emit_new_local_connection ()" link="telepathy-glib-svc-channel-tube.html#tp-svc-channel-type-stream-tube-emit-new-local-connection"/>
2732 <function name="tp_svc_channel_type_stream_tube_emit_connection_closed ()" link="telepathy-glib-svc-channel-tube.html#tp-svc-channel-type-stream-tube-emit-connection-closed"/>
2733 <function name="TpSvcChannelTypeDBusTube" link="telepathy-glib-svc-channel-tube.html#TpSvcChannelTypeDBusTube-struct"/>
2734 <function name="TpSvcChannelTypeDBusTubeClass" link="telepathy-glib-svc-channel-tube.html#TpSvcChannelTypeDBusTubeClass"/>
2735 <function name="tp_svc_channel_type_dbus_tube_offer_impl ()" link="telepathy-glib-svc-channel-tube.html#tp-svc-channel-type-dbus-tube-offer-impl"/>
2736 <function name="tp_svc_channel_type_dbus_tube_implement_offer ()" link="telepathy-glib-svc-channel-tube.html#tp-svc-channel-type-dbus-tube-implement-offer"/>
2737 <function name="tp_svc_channel_type_dbus_tube_return_from_offer ()" link="telepathy-glib-svc-channel-tube.html#tp-svc-channel-type-dbus-tube-return-from-offer"/>
2738 <function name="tp_svc_channel_type_dbus_tube_accept_impl ()" link="telepathy-glib-svc-channel-tube.html#tp-svc-channel-type-dbus-tube-accept-impl"/>
2739 <function name="tp_svc_channel_type_dbus_tube_implement_accept ()" link="telepathy-glib-svc-channel-tube.html#tp-svc-channel-type-dbus-tube-implement-accept"/>
2740 <function name="tp_svc_channel_type_dbus_tube_return_from_accept ()" link="telepathy-glib-svc-channel-tube.html#tp-svc-channel-type-dbus-tube-return-from-accept"/>
2741 <function name="tp_svc_channel_type_dbus_tube_emit_dbus_names_changed ()" link="telepathy-glib-svc-channel-tube.html#tp-svc-channel-type-dbus-tube-emit-dbus-names-changed"/>
2742 <function name="The &quot;tube-channel-state-changed&quot; signal" link="telepathy-glib-svc-channel-tube.html#TpSvcChannelInterfaceTube-tube-channel-state-changed"/>
2743 <function name="The &quot;connection-closed&quot; signal" link="telepathy-glib-svc-channel-tube.html#TpSvcChannelTypeStreamTube-connection-closed"/>
2744 <function name="The &quot;new-local-connection&quot; signal" link="telepathy-glib-svc-channel-tube.html#TpSvcChannelTypeStreamTube-new-local-connection"/>
2745 <function name="The &quot;new-remote-connection&quot; signal" link="telepathy-glib-svc-channel-tube.html#TpSvcChannelTypeStreamTube-new-remote-connection"/>
2746 <function name="The &quot;d-bus-names-changed&quot; signal" link="telepathy-glib-svc-channel-tube.html#TpSvcChannelTypeDBusTube-d-bus-names-changed"/>
2747 <function name="TpSvcChannelTypeRoomList" link="telepathy-glib-svc-channel-roomlist.html#TpSvcChannelTypeRoomList-struct"/>
2748 <function name="TpSvcChannelTypeRoomListClass" link="telepathy-glib-svc-channel-roomlist.html#TpSvcChannelTypeRoomListClass"/>
2749 <function name="tp_svc_channel_type_room_list_get_listing_rooms_impl ()" link="telepathy-glib-svc-channel-roomlist.html#tp-svc-channel-type-room-list-get-listing-rooms-impl"/>
2750 <function name="tp_svc_channel_type_room_list_implement_get_listing_rooms ()" link="telepathy-glib-svc-channel-roomlist.html#tp-svc-channel-type-room-list-implement-get-listing-rooms"/>
2751 <function name="tp_svc_channel_type_room_list_return_from_get_listing_rooms ()" link="telepathy-glib-svc-channel-roomlist.html#tp-svc-channel-type-room-list-return-from-get-listing-rooms"/>
2752 <function name="tp_svc_channel_type_room_list_list_rooms_impl ()" link="telepathy-glib-svc-channel-roomlist.html#tp-svc-channel-type-room-list-list-rooms-impl"/>
2753 <function name="tp_svc_channel_type_room_list_implement_list_rooms ()" link="telepathy-glib-svc-channel-roomlist.html#tp-svc-channel-type-room-list-implement-list-rooms"/>
2754 <function name="tp_svc_channel_type_room_list_return_from_list_rooms ()" link="telepathy-glib-svc-channel-roomlist.html#tp-svc-channel-type-room-list-return-from-list-rooms"/>
2755 <function name="tp_svc_channel_type_room_list_stop_listing_impl ()" link="telepathy-glib-svc-channel-roomlist.html#tp-svc-channel-type-room-list-stop-listing-impl"/>
2756 <function name="tp_svc_channel_type_room_list_implement_stop_listing ()" link="telepathy-glib-svc-channel-roomlist.html#tp-svc-channel-type-room-list-implement-stop-listing"/>
2757 <function name="tp_svc_channel_type_room_list_return_from_stop_listing ()" link="telepathy-glib-svc-channel-roomlist.html#tp-svc-channel-type-room-list-return-from-stop-listing"/>
2758 <function name="tp_svc_channel_type_room_list_emit_got_rooms ()" link="telepathy-glib-svc-channel-roomlist.html#tp-svc-channel-type-room-list-emit-got-rooms"/>
2759 <function name="tp_svc_channel_type_room_list_emit_listing_rooms ()" link="telepathy-glib-svc-channel-roomlist.html#tp-svc-channel-type-room-list-emit-listing-rooms"/>
2760 <function name="The &quot;got-rooms&quot; signal" link="telepathy-glib-svc-channel-roomlist.html#TpSvcChannelTypeRoomList-got-rooms"/>
2761 <function name="The &quot;listing-rooms&quot; signal" link="telepathy-glib-svc-channel-roomlist.html#TpSvcChannelTypeRoomList-listing-rooms"/>
2762 <function name="TpSvcChannelTypeServerAuthentication" link="telepathy-glib-svc-channel-auth.html#TpSvcChannelTypeServerAuthentication-struct"/>
2763 <function name="TpSvcChannelTypeServerAuthenticationClass" link="telepathy-glib-svc-channel-auth.html#TpSvcChannelTypeServerAuthenticationClass"/>
2764 <function name="TpSvcChannelInterfaceSASLAuthentication" link="telepathy-glib-svc-channel-auth.html#TpSvcChannelInterfaceSASLAuthentication-struct"/>
2765 <function name="TpSvcChannelInterfaceSASLAuthenticationClass" link="telepathy-glib-svc-channel-auth.html#TpSvcChannelInterfaceSASLAuthenticationClass"/>
2766 <function name="tp_svc_channel_interface_sasl_authentication_abort_sasl_impl ()" link="telepathy-glib-svc-channel-auth.html#tp-svc-channel-interface-sasl-authentication-abort-sasl-impl"/>
2767 <function name="tp_svc_channel_interface_sasl_authentication_accept_sasl_impl ()" link="telepathy-glib-svc-channel-auth.html#tp-svc-channel-interface-sasl-authentication-accept-sasl-impl"/>
2768 <function name="tp_svc_channel_interface_sasl_authentication_emit_new_challenge ()" link="telepathy-glib-svc-channel-auth.html#tp-svc-channel-interface-sasl-authentication-emit-new-challenge"/>
2769 <function name="tp_svc_channel_interface_sasl_authentication_emit_sasl_status_changed ()" link="telepathy-glib-svc-channel-auth.html#tp-svc-channel-interface-sasl-authentication-emit-sasl-status-changed"/>
2770 <function name="tp_svc_channel_interface_sasl_authentication_implement_abort_sasl ()" link="telepathy-glib-svc-channel-auth.html#tp-svc-channel-interface-sasl-authentication-implement-abort-sasl"/>
2771 <function name="tp_svc_channel_interface_sasl_authentication_implement_accept_sasl ()" link="telepathy-glib-svc-channel-auth.html#tp-svc-channel-interface-sasl-authentication-implement-accept-sasl"/>
2772 <function name="tp_svc_channel_interface_sasl_authentication_implement_respond ()" link="telepathy-glib-svc-channel-auth.html#tp-svc-channel-interface-sasl-authentication-implement-respond"/>
2773 <function name="tp_svc_channel_interface_sasl_authentication_implement_start_mechanism ()" link="telepathy-glib-svc-channel-auth.html#tp-svc-channel-interface-sasl-authentication-implement-start-mechanism"/>
2774 <function name="tp_svc_channel_interface_sasl_authentication_implement_start_mechanism_with_data ()" link="telepathy-glib-svc-channel-auth.html#tp-svc-channel-interface-sasl-authentication-implement-start-mechanism-with-data"/>
2775 <function name="tp_svc_channel_interface_sasl_authentication_respond_impl ()" link="telepathy-glib-svc-channel-auth.html#tp-svc-channel-interface-sasl-authentication-respond-impl"/>
2776 <function name="tp_svc_channel_interface_sasl_authentication_return_from_abort_sasl ()" link="telepathy-glib-svc-channel-auth.html#tp-svc-channel-interface-sasl-authentication-return-from-abort-sasl"/>
2777 <function name="tp_svc_channel_interface_sasl_authentication_return_from_accept_sasl ()" link="telepathy-glib-svc-channel-auth.html#tp-svc-channel-interface-sasl-authentication-return-from-accept-sasl"/>
2778 <function name="tp_svc_channel_interface_sasl_authentication_return_from_respond ()" link="telepathy-glib-svc-channel-auth.html#tp-svc-channel-interface-sasl-authentication-return-from-respond"/>
2779 <function name="tp_svc_channel_interface_sasl_authentication_return_from_start_mechanism ()" link="telepathy-glib-svc-channel-auth.html#tp-svc-channel-interface-sasl-authentication-return-from-start-mechanism"/>
2780 <function name="tp_svc_channel_interface_sasl_authentication_return_from_start_mechanism_with_data ()" link="telepathy-glib-svc-channel-auth.html#tp-svc-channel-interface-sasl-authentication-return-from-start-mechanism-with-data"/>
2781 <function name="tp_svc_channel_interface_sasl_authentication_start_mechanism_impl ()" link="telepathy-glib-svc-channel-auth.html#tp-svc-channel-interface-sasl-authentication-start-mechanism-impl"/>
2782 <function name="tp_svc_channel_interface_sasl_authentication_start_mechanism_with_data_impl ()" link="telepathy-glib-svc-channel-auth.html#tp-svc-channel-interface-sasl-authentication-start-mechanism-with-data-impl"/>
2783 <function name="The &quot;new-challenge&quot; signal" link="telepathy-glib-svc-channel-auth.html#TpSvcChannelInterfaceSASLAuthentication-new-challenge"/>
2784 <function name="The &quot;s-as-lstatus-changed&quot; signal" link="telepathy-glib-svc-channel-auth.html#TpSvcChannelInterfaceSASLAuthentication-s-as-lstatus-changed"/>
2785 <function name="TpSvcChannelInterfaceSecurable" link="telepathy-glib-svc-channel-securable.html#TpSvcChannelInterfaceSecurable-struct"/>
2786 <function name="TpSvcChannelInterfaceSecurableClass" link="telepathy-glib-svc-channel-securable.html#TpSvcChannelInterfaceSecurableClass"/>
2787 <function name="TpSvcDebug" link="telepathy-glib-svc-debug.html#TpSvcDebug-struct"/>
2788 <function name="TpSvcDebugClass" link="telepathy-glib-svc-debug.html#TpSvcDebugClass"/>
2789 <function name="tp_svc_debug_get_messages_impl ()" link="telepathy-glib-svc-debug.html#tp-svc-debug-get-messages-impl"/>
2790 <function name="tp_svc_debug_implement_get_messages ()" link="telepathy-glib-svc-debug.html#tp-svc-debug-implement-get-messages"/>
2791 <function name="tp_svc_debug_return_from_get_messages ()" link="telepathy-glib-svc-debug.html#tp-svc-debug-return-from-get-messages"/>
2792 <function name="tp_svc_debug_emit_new_debug_message ()" link="telepathy-glib-svc-debug.html#tp-svc-debug-emit-new-debug-message"/>
2793 <function name="The &quot;new-debug-message&quot; signal" link="telepathy-glib-svc-debug.html#TpSvcDebug-new-debug-message"/>
2794 <function name="TpSvcConnection" link="telepathy-glib-svc-connection.html#TpSvcConnection-struct"/>
2795 <function name="TpSvcConnectionClass" link="telepathy-glib-svc-connection.html#TpSvcConnectionClass"/>
2796 <function name="tp_svc_connection_connect_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-connect-impl"/>
2797 <function name="tp_svc_connection_implement_connect ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-implement-connect"/>
2798 <function name="tp_svc_connection_return_from_connect ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-return-from-connect"/>
2799 <function name="tp_svc_connection_disconnect_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-disconnect-impl"/>
2800 <function name="tp_svc_connection_implement_disconnect ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-implement-disconnect"/>
2801 <function name="tp_svc_connection_return_from_disconnect ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-return-from-disconnect"/>
2802 <function name="tp_svc_connection_get_interfaces_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-get-interfaces-impl"/>
2803 <function name="tp_svc_connection_implement_get_interfaces ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-implement-get-interfaces"/>
2804 <function name="tp_svc_connection_return_from_get_interfaces ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-return-from-get-interfaces"/>
2805 <function name="tp_svc_connection_get_protocol_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-get-protocol-impl"/>
2806 <function name="tp_svc_connection_implement_get_protocol ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-implement-get-protocol"/>
2807 <function name="tp_svc_connection_return_from_get_protocol ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-return-from-get-protocol"/>
2808 <function name="tp_svc_connection_get_self_handle_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-get-self-handle-impl"/>
2809 <function name="tp_svc_connection_implement_get_self_handle ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-implement-get-self-handle"/>
2810 <function name="tp_svc_connection_return_from_get_self_handle ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-return-from-get-self-handle"/>
2811 <function name="tp_svc_connection_get_status_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-get-status-impl"/>
2812 <function name="tp_svc_connection_implement_get_status ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-implement-get-status"/>
2813 <function name="tp_svc_connection_return_from_get_status ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-return-from-get-status"/>
2814 <function name="tp_svc_connection_hold_handles_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-hold-handles-impl"/>
2815 <function name="tp_svc_connection_implement_hold_handles ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-implement-hold-handles"/>
2816 <function name="tp_svc_connection_return_from_hold_handles ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-return-from-hold-handles"/>
2817 <function name="tp_svc_connection_inspect_handles_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-inspect-handles-impl"/>
2818 <function name="tp_svc_connection_implement_inspect_handles ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-implement-inspect-handles"/>
2819 <function name="tp_svc_connection_return_from_inspect_handles ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-return-from-inspect-handles"/>
2820 <function name="tp_svc_connection_list_channels_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-list-channels-impl"/>
2821 <function name="tp_svc_connection_implement_list_channels ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-implement-list-channels"/>
2822 <function name="tp_svc_connection_return_from_list_channels ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-return-from-list-channels"/>
2823 <function name="tp_svc_connection_release_handles_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-release-handles-impl"/>
2824 <function name="tp_svc_connection_implement_release_handles ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-implement-release-handles"/>
2825 <function name="tp_svc_connection_return_from_release_handles ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-return-from-release-handles"/>
2826 <function name="tp_svc_connection_request_channel_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-request-channel-impl"/>
2827 <function name="tp_svc_connection_implement_request_channel ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-implement-request-channel"/>
2828 <function name="tp_svc_connection_return_from_request_channel ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-return-from-request-channel"/>
2829 <function name="tp_svc_connection_request_handles_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-request-handles-impl"/>
2830 <function name="tp_svc_connection_implement_request_handles ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-implement-request-handles"/>
2831 <function name="tp_svc_connection_return_from_request_handles ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-return-from-request-handles"/>
2832 <function name="tp_svc_connection_emit_new_channel ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-emit-new-channel"/>
2833 <function name="tp_svc_connection_emit_self_handle_changed ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-emit-self-handle-changed"/>
2834 <function name="tp_svc_connection_emit_status_changed ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-emit-status-changed"/>
2835 <function name="tp_svc_connection_emit_connection_error ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-emit-connection-error"/>
2836 <function name="tp_svc_connection_add_client_interest_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-add-client-interest-impl"/>
2837 <function name="tp_svc_connection_implement_add_client_interest ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-implement-add-client-interest"/>
2838 <function name="tp_svc_connection_implement_remove_client_interest ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-implement-remove-client-interest"/>
2839 <function name="tp_svc_connection_remove_client_interest_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-remove-client-interest-impl"/>
2840 <function name="tp_svc_connection_return_from_add_client_interest ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-return-from-add-client-interest"/>
2841 <function name="tp_svc_connection_return_from_remove_client_interest ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-return-from-remove-client-interest"/>
2842 <function name="TpSvcConnectionInterfaceContacts" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceContacts-struct"/>
2843 <function name="TpSvcConnectionInterfaceContactsClass" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceContactsClass"/>
2844 <function name="tp_svc_connection_interface_contacts_get_contact_attributes_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contacts-get-contact-attributes-impl"/>
2845 <function name="tp_svc_connection_interface_contacts_implement_get_contact_attributes ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contacts-implement-get-contact-attributes"/>
2846 <function name="tp_svc_connection_interface_contacts_return_from_get_contact_attributes ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contacts-return-from-get-contact-attributes"/>
2847 <function name="TpSvcConnectionInterfaceRequests" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceRequests-struct"/>
2848 <function name="TpSvcConnectionInterfaceRequestsClass" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceRequestsClass"/>
2849 <function name="tp_svc_connection_interface_requests_create_channel_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-requests-create-channel-impl"/>
2850 <function name="tp_svc_connection_interface_requests_emit_channel_closed ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-requests-emit-channel-closed"/>
2851 <function name="tp_svc_connection_interface_requests_emit_new_channels ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-requests-emit-new-channels"/>
2852 <function name="tp_svc_connection_interface_requests_ensure_channel_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-requests-ensure-channel-impl"/>
2853 <function name="tp_svc_connection_interface_requests_implement_create_channel ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-requests-implement-create-channel"/>
2854 <function name="tp_svc_connection_interface_requests_implement_ensure_channel ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-requests-implement-ensure-channel"/>
2855 <function name="tp_svc_connection_interface_requests_return_from_create_channel ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-requests-return-from-create-channel"/>
2856 <function name="tp_svc_connection_interface_requests_return_from_ensure_channel ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-requests-return-from-ensure-channel"/>
2857 <function name="TpSvcConnectionInterfaceSimplePresence" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceSimplePresence-struct"/>
2858 <function name="TpSvcConnectionInterfaceSimplePresenceClass" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceSimplePresenceClass"/>
2859 <function name="tp_svc_connection_interface_simple_presence_emit_presences_changed ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-emit-presences-changed"/>
2860 <function name="tp_svc_connection_interface_simple_presence_get_presences_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-get-presences-impl"/>
2861 <function name="tp_svc_connection_interface_simple_presence_implement_get_presences ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-implement-get-presences"/>
2862 <function name="tp_svc_connection_interface_simple_presence_implement_set_presence ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-implement-set-presence"/>
2863 <function name="tp_svc_connection_interface_simple_presence_return_from_get_presences ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-return-from-get-presences"/>
2864 <function name="tp_svc_connection_interface_simple_presence_return_from_set_presence ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-return-from-set-presence"/>
2865 <function name="tp_svc_connection_interface_simple_presence_set_presence_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-set-presence-impl"/>
2866 <function name="TpSvcConnectionInterfacePresence" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfacePresence-struct"/>
2867 <function name="TpSvcConnectionInterfacePresenceClass" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfacePresenceClass"/>
2868 <function name="tp_svc_connection_interface_presence_add_status_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-add-status-impl"/>
2869 <function name="tp_svc_connection_interface_presence_implement_add_status ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-implement-add-status"/>
2870 <function name="tp_svc_connection_interface_presence_return_from_add_status ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-return-from-add-status"/>
2871 <function name="tp_svc_connection_interface_presence_clear_status_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-clear-status-impl"/>
2872 <function name="tp_svc_connection_interface_presence_implement_clear_status ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-implement-clear-status"/>
2873 <function name="tp_svc_connection_interface_presence_return_from_clear_status ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-return-from-clear-status"/>
2874 <function name="tp_svc_connection_interface_presence_get_presence_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-get-presence-impl"/>
2875 <function name="tp_svc_connection_interface_presence_implement_get_presence ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-implement-get-presence"/>
2876 <function name="tp_svc_connection_interface_presence_return_from_get_presence ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-return-from-get-presence"/>
2877 <function name="tp_svc_connection_interface_presence_get_statuses_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-get-statuses-impl"/>
2878 <function name="tp_svc_connection_interface_presence_implement_get_statuses ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-implement-get-statuses"/>
2879 <function name="tp_svc_connection_interface_presence_return_from_get_statuses ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-return-from-get-statuses"/>
2880 <function name="tp_svc_connection_interface_presence_remove_status_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-remove-status-impl"/>
2881 <function name="tp_svc_connection_interface_presence_implement_remove_status ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-implement-remove-status"/>
2882 <function name="tp_svc_connection_interface_presence_return_from_remove_status ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-return-from-remove-status"/>
2883 <function name="tp_svc_connection_interface_presence_request_presence_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-request-presence-impl"/>
2884 <function name="tp_svc_connection_interface_presence_implement_request_presence ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-implement-request-presence"/>
2885 <function name="tp_svc_connection_interface_presence_return_from_request_presence ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-return-from-request-presence"/>
2886 <function name="tp_svc_connection_interface_presence_set_last_activity_time_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-set-last-activity-time-impl"/>
2887 <function name="tp_svc_connection_interface_presence_implement_set_last_activity_time ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-implement-set-last-activity-time"/>
2888 <function name="tp_svc_connection_interface_presence_return_from_set_last_activity_time ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-return-from-set-last-activity-time"/>
2889 <function name="tp_svc_connection_interface_presence_set_status_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-set-status-impl"/>
2890 <function name="tp_svc_connection_interface_presence_implement_set_status ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-implement-set-status"/>
2891 <function name="tp_svc_connection_interface_presence_return_from_set_status ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-return-from-set-status"/>
2892 <function name="tp_svc_connection_interface_presence_emit_presence_update ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-emit-presence-update"/>
2893 <function name="TpSvcConnectionInterfaceAvatars" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceAvatars-struct"/>
2894 <function name="TpSvcConnectionInterfaceAvatarsClass" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceAvatarsClass"/>
2895 <function name="tp_svc_connection_interface_avatars_clear_avatar_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-avatars-clear-avatar-impl"/>
2896 <function name="tp_svc_connection_interface_avatars_implement_clear_avatar ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-avatars-implement-clear-avatar"/>
2897 <function name="tp_svc_connection_interface_avatars_return_from_clear_avatar ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-avatars-return-from-clear-avatar"/>
2898 <function name="tp_svc_connection_interface_avatars_get_avatar_requirements_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-avatars-get-avatar-requirements-impl"/>
2899 <function name="tp_svc_connection_interface_avatars_implement_get_avatar_requirements ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-avatars-implement-get-avatar-requirements"/>
2900 <function name="tp_svc_connection_interface_avatars_return_from_get_avatar_requirements ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-avatars-return-from-get-avatar-requirements"/>
2901 <function name="tp_svc_connection_interface_avatars_get_avatar_tokens_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-avatars-get-avatar-tokens-impl"/>
2902 <function name="tp_svc_connection_interface_avatars_implement_get_avatar_tokens ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-avatars-implement-get-avatar-tokens"/>
2903 <function name="tp_svc_connection_interface_avatars_return_from_get_avatar_tokens ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-avatars-return-from-get-avatar-tokens"/>
2904 <function name="tp_svc_connection_interface_avatars_request_avatar_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-avatars-request-avatar-impl"/>
2905 <function name="tp_svc_connection_interface_avatars_implement_request_avatar ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-avatars-implement-request-avatar"/>
2906 <function name="tp_svc_connection_interface_avatars_return_from_request_avatar ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-avatars-return-from-request-avatar"/>
2907 <function name="tp_svc_connection_interface_avatars_set_avatar_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-avatars-set-avatar-impl"/>
2908 <function name="tp_svc_connection_interface_avatars_implement_set_avatar ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-avatars-implement-set-avatar"/>
2909 <function name="tp_svc_connection_interface_avatars_return_from_set_avatar ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-avatars-return-from-set-avatar"/>
2910 <function name="tp_svc_connection_interface_avatars_emit_avatar_updated ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-avatars-emit-avatar-updated"/>
2911 <function name="tp_svc_connection_interface_avatars_emit_avatar_retrieved ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-avatars-emit-avatar-retrieved"/>
2912 <function name="tp_svc_connection_interface_avatars_implement_request_avatars ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-avatars-implement-request-avatars"/>
2913 <function name="tp_svc_connection_interface_avatars_request_avatars_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-avatars-request-avatars-impl"/>
2914 <function name="tp_svc_connection_interface_avatars_return_from_request_avatars ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-avatars-return-from-request-avatars"/>
2915 <function name="tp_svc_connection_interface_avatars_get_known_avatar_tokens_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-avatars-get-known-avatar-tokens-impl"/>
2916 <function name="tp_svc_connection_interface_avatars_implement_get_known_avatar_tokens ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-avatars-implement-get-known-avatar-tokens"/>
2917 <function name="tp_svc_connection_interface_avatars_return_from_get_known_avatar_tokens ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-avatars-return-from-get-known-avatar-tokens"/>
2918 <function name="TpSvcConnectionInterfaceAliasing" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceAliasing-struct"/>
2919 <function name="TpSvcConnectionInterfaceAliasingClass" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceAliasingClass"/>
2920 <function name="tp_svc_connection_interface_aliasing_get_alias_flags_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-aliasing-get-alias-flags-impl"/>
2921 <function name="tp_svc_connection_interface_aliasing_implement_get_alias_flags ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-aliasing-implement-get-alias-flags"/>
2922 <function name="tp_svc_connection_interface_aliasing_return_from_get_alias_flags ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-aliasing-return-from-get-alias-flags"/>
2923 <function name="tp_svc_connection_interface_aliasing_request_aliases_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-aliasing-request-aliases-impl"/>
2924 <function name="tp_svc_connection_interface_aliasing_implement_request_aliases ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-aliasing-implement-request-aliases"/>
2925 <function name="tp_svc_connection_interface_aliasing_return_from_request_aliases ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-aliasing-return-from-request-aliases"/>
2926 <function name="tp_svc_connection_interface_aliasing_get_aliases_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-aliasing-get-aliases-impl"/>
2927 <function name="tp_svc_connection_interface_aliasing_implement_get_aliases ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-aliasing-implement-get-aliases"/>
2928 <function name="tp_svc_connection_interface_aliasing_return_from_get_aliases ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-aliasing-return-from-get-aliases"/>
2929 <function name="tp_svc_connection_interface_aliasing_set_aliases_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-aliasing-set-aliases-impl"/>
2930 <function name="tp_svc_connection_interface_aliasing_implement_set_aliases ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-aliasing-implement-set-aliases"/>
2931 <function name="tp_svc_connection_interface_aliasing_return_from_set_aliases ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-aliasing-return-from-set-aliases"/>
2932 <function name="tp_svc_connection_interface_aliasing_emit_aliases_changed ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-aliasing-emit-aliases-changed"/>
2933 <function name="TpSvcConnectionInterfaceBalance" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceBalance-struct"/>
2934 <function name="TpSvcConnectionInterfaceBalanceClass" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceBalanceClass"/>
2935 <function name="tp_svc_connection_interface_balance_emit_balance_changed ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-balance-emit-balance-changed"/>
2936 <function name="TpSvcConnectionInterfaceCapabilities" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceCapabilities-struct"/>
2937 <function name="TpSvcConnectionInterfaceCapabilitiesClass" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceCapabilitiesClass"/>
2938 <function name="tp_svc_connection_interface_capabilities_advertise_capabilities_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-capabilities-advertise-capabilities-impl"/>
2939 <function name="tp_svc_connection_interface_capabilities_implement_advertise_capabilities ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-capabilities-implement-advertise-capabilities"/>
2940 <function name="tp_svc_connection_interface_capabilities_return_from_advertise_capabilities ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-capabilities-return-from-advertise-capabilities"/>
2941 <function name="tp_svc_connection_interface_capabilities_get_capabilities_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-capabilities-get-capabilities-impl"/>
2942 <function name="tp_svc_connection_interface_capabilities_implement_get_capabilities ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-capabilities-implement-get-capabilities"/>
2943 <function name="tp_svc_connection_interface_capabilities_return_from_get_capabilities ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-capabilities-return-from-get-capabilities"/>
2944 <function name="tp_svc_connection_interface_capabilities_emit_capabilities_changed ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-capabilities-emit-capabilities-changed"/>
2945 <function name="TpSvcConnectionInterfaceContactCapabilities" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceContactCapabilities-struct"/>
2946 <function name="TpSvcConnectionInterfaceContactCapabilitiesClass" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceContactCapabilitiesClass"/>
2947 <function name="tp_svc_connection_interface_contact_capabilities_emit_contact_capabilities_changed ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-capabilities-emit-contact-capabilities-changed"/>
2948 <function name="tp_svc_connection_interface_contact_capabilities_get_contact_capabilities_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-capabilities-get-contact-capabilities-impl"/>
2949 <function name="tp_svc_connection_interface_contact_capabilities_return_from_get_contact_capabilities ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-capabilities-return-from-get-contact-capabilities"/>
2950 <function name="tp_svc_connection_interface_contact_capabilities_implement_get_contact_capabilities ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-capabilities-implement-get-contact-capabilities"/>
2951 <function name="tp_svc_connection_interface_contact_capabilities_update_capabilities_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-capabilities-update-capabilities-impl"/>
2952 <function name="tp_svc_connection_interface_contact_capabilities_return_from_update_capabilities ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-capabilities-return-from-update-capabilities"/>
2953 <function name="tp_svc_connection_interface_contact_capabilities_implement_update_capabilities ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-capabilities-implement-update-capabilities"/>
2954 <function name="TpSvcConnectionInterfaceLocation" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceLocation-struct"/>
2955 <function name="TpSvcConnectionInterfaceLocationClass" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceLocationClass"/>
2956 <function name="tp_svc_connection_interface_location_emit_location_updated ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-location-emit-location-updated"/>
2957 <function name="tp_svc_connection_interface_location_get_locations_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-location-get-locations-impl"/>
2958 <function name="tp_svc_connection_interface_location_return_from_get_locations ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-location-return-from-get-locations"/>
2959 <function name="tp_svc_connection_interface_location_implement_get_locations ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-location-implement-get-locations"/>
2960 <function name="tp_svc_connection_interface_location_request_location_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-location-request-location-impl"/>
2961 <function name="tp_svc_connection_interface_location_return_from_request_location ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-location-return-from-request-location"/>
2962 <function name="tp_svc_connection_interface_location_implement_request_location ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-location-implement-request-location"/>
2963 <function name="tp_svc_connection_interface_location_set_location_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-location-set-location-impl"/>
2964 <function name="tp_svc_connection_interface_location_return_from_set_location ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-location-return-from-set-location"/>
2965 <function name="tp_svc_connection_interface_location_implement_set_location ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-location-implement-set-location"/>
2966 <function name="TpSvcConnectionInterfaceContactInfo" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceContactInfo-struct"/>
2967 <function name="TpSvcConnectionInterfaceContactInfoClass" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceContactInfoClass"/>
2968 <function name="tp_svc_connection_interface_contact_info_emit_contact_info_changed ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-info-emit-contact-info-changed"/>
2969 <function name="tp_svc_connection_interface_contact_info_get_contact_info_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-info-get-contact-info-impl"/>
2970 <function name="tp_svc_connection_interface_contact_info_implement_get_contact_info ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-info-implement-get-contact-info"/>
2971 <function name="tp_svc_connection_interface_contact_info_implement_refresh_contact_info ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-info-implement-refresh-contact-info"/>
2972 <function name="tp_svc_connection_interface_contact_info_implement_request_contact_info ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-info-implement-request-contact-info"/>
2973 <function name="tp_svc_connection_interface_contact_info_implement_set_contact_info ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-info-implement-set-contact-info"/>
2974 <function name="tp_svc_connection_interface_contact_info_refresh_contact_info_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-info-refresh-contact-info-impl"/>
2975 <function name="tp_svc_connection_interface_contact_info_request_contact_info_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-info-request-contact-info-impl"/>
2976 <function name="tp_svc_connection_interface_contact_info_return_from_get_contact_info ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-info-return-from-get-contact-info"/>
2977 <function name="tp_svc_connection_interface_contact_info_return_from_refresh_contact_info ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-info-return-from-refresh-contact-info"/>
2978 <function name="tp_svc_connection_interface_contact_info_return_from_request_contact_info ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-info-return-from-request-contact-info"/>
2979 <function name="tp_svc_connection_interface_contact_info_return_from_set_contact_info ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-info-return-from-set-contact-info"/>
2980 <function name="tp_svc_connection_interface_contact_info_set_contact_info_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-info-set-contact-info-impl"/>
2981 <function name="TpSvcConnectionInterfaceContactBlocking" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceContactBlocking-struct"/>
2982 <function name="TpSvcConnectionInterfaceContactBlockingClass" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceContactBlockingClass"/>
2983 <function name="tp_svc_connection_interface_contact_blocking_block_contacts_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-blocking-block-contacts-impl"/>
2984 <function name="tp_svc_connection_interface_contact_blocking_emit_blocked_contacts_changed ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-blocking-emit-blocked-contacts-changed"/>
2985 <function name="tp_svc_connection_interface_contact_blocking_implement_block_contacts ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-blocking-implement-block-contacts"/>
2986 <function name="tp_svc_connection_interface_contact_blocking_implement_request_blocked_contacts ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-blocking-implement-request-blocked-contacts"/>
2987 <function name="tp_svc_connection_interface_contact_blocking_implement_unblock_contacts ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-blocking-implement-unblock-contacts"/>
2988 <function name="tp_svc_connection_interface_contact_blocking_request_blocked_contacts_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-blocking-request-blocked-contacts-impl"/>
2989 <function name="tp_svc_connection_interface_contact_blocking_return_from_block_contacts ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-blocking-return-from-block-contacts"/>
2990 <function name="tp_svc_connection_interface_contact_blocking_return_from_request_blocked_contacts ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-blocking-return-from-request-blocked-contacts"/>
2991 <function name="tp_svc_connection_interface_contact_blocking_return_from_unblock_contacts ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-blocking-return-from-unblock-contacts"/>
2992 <function name="tp_svc_connection_interface_contact_blocking_unblock_contacts_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-blocking-unblock-contacts-impl"/>
2993 <function name="TpSvcConnectionInterfaceContactGroups" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceContactGroups-struct"/>
2994 <function name="TpSvcConnectionInterfaceContactGroupsClass" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceContactGroupsClass"/>
2995 <function name="tp_svc_connection_interface_contact_groups_add_to_group_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-groups-add-to-group-impl"/>
2996 <function name="tp_svc_connection_interface_contact_groups_emit_group_renamed ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-groups-emit-group-renamed"/>
2997 <function name="tp_svc_connection_interface_contact_groups_emit_groups_changed ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-groups-emit-groups-changed"/>
2998 <function name="tp_svc_connection_interface_contact_groups_emit_groups_created ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-groups-emit-groups-created"/>
2999 <function name="tp_svc_connection_interface_contact_groups_emit_groups_removed ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-groups-emit-groups-removed"/>
3000 <function name="tp_svc_connection_interface_contact_groups_implement_add_to_group ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-groups-implement-add-to-group"/>
3001 <function name="tp_svc_connection_interface_contact_groups_implement_remove_from_group ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-groups-implement-remove-from-group"/>
3002 <function name="tp_svc_connection_interface_contact_groups_implement_remove_group ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-groups-implement-remove-group"/>
3003 <function name="tp_svc_connection_interface_contact_groups_implement_rename_group ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-groups-implement-rename-group"/>
3004 <function name="tp_svc_connection_interface_contact_groups_implement_set_contact_groups ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-groups-implement-set-contact-groups"/>
3005 <function name="tp_svc_connection_interface_contact_groups_implement_set_group_members ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-groups-implement-set-group-members"/>
3006 <function name="tp_svc_connection_interface_contact_groups_remove_from_group_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-groups-remove-from-group-impl"/>
3007 <function name="tp_svc_connection_interface_contact_groups_remove_group_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-groups-remove-group-impl"/>
3008 <function name="tp_svc_connection_interface_contact_groups_rename_group_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-groups-rename-group-impl"/>
3009 <function name="tp_svc_connection_interface_contact_groups_return_from_add_to_group ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-groups-return-from-add-to-group"/>
3010 <function name="tp_svc_connection_interface_contact_groups_return_from_remove_from_group ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-groups-return-from-remove-from-group"/>
3011 <function name="tp_svc_connection_interface_contact_groups_return_from_remove_group ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-groups-return-from-remove-group"/>
3012 <function name="tp_svc_connection_interface_contact_groups_return_from_rename_group ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-groups-return-from-rename-group"/>
3013 <function name="tp_svc_connection_interface_contact_groups_return_from_set_contact_groups ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-groups-return-from-set-contact-groups"/>
3014 <function name="tp_svc_connection_interface_contact_groups_return_from_set_group_members ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-groups-return-from-set-group-members"/>
3015 <function name="tp_svc_connection_interface_contact_groups_set_contact_groups_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-groups-set-contact-groups-impl"/>
3016 <function name="tp_svc_connection_interface_contact_groups_set_group_members_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-groups-set-group-members-impl"/>
3017 <function name="TpSvcConnectionInterfaceContactList" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceContactList-struct"/>
3018 <function name="TpSvcConnectionInterfaceContactListClass" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceContactListClass"/>
3019 <function name="tp_svc_connection_interface_contact_list_authorize_publication_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-list-authorize-publication-impl"/>
3020 <function name="tp_svc_connection_interface_contact_list_emit_contacts_changed ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-list-emit-contacts-changed"/>
3021 <function name="tp_svc_connection_interface_contact_list_emit_contacts_changed_with_id ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-list-emit-contacts-changed-with-id"/>
3022 <function name="tp_svc_connection_interface_contact_list_emit_contact_list_state_changed ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-list-emit-contact-list-state-changed"/>
3023 <function name="tp_svc_connection_interface_contact_list_get_contact_list_attributes_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-list-get-contact-list-attributes-impl"/>
3024 <function name="tp_svc_connection_interface_contact_list_implement_authorize_publication ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-list-implement-authorize-publication"/>
3025 <function name="tp_svc_connection_interface_contact_list_implement_get_contact_list_attributes ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-list-implement-get-contact-list-attributes"/>
3026 <function name="tp_svc_connection_interface_contact_list_implement_remove_contacts ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-list-implement-remove-contacts"/>
3027 <function name="tp_svc_connection_interface_contact_list_implement_request_subscription ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-list-implement-request-subscription"/>
3028 <function name="tp_svc_connection_interface_contact_list_implement_unpublish ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-list-implement-unpublish"/>
3029 <function name="tp_svc_connection_interface_contact_list_implement_unsubscribe ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-list-implement-unsubscribe"/>
3030 <function name="tp_svc_connection_interface_contact_list_remove_contacts_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-list-remove-contacts-impl"/>
3031 <function name="tp_svc_connection_interface_contact_list_request_subscription_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-list-request-subscription-impl"/>
3032 <function name="tp_svc_connection_interface_contact_list_return_from_authorize_publication ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-list-return-from-authorize-publication"/>
3033 <function name="tp_svc_connection_interface_contact_list_return_from_get_contact_list_attributes ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-list-return-from-get-contact-list-attributes"/>
3034 <function name="tp_svc_connection_interface_contact_list_return_from_remove_contacts ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-list-return-from-remove-contacts"/>
3035 <function name="tp_svc_connection_interface_contact_list_return_from_request_subscription ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-list-return-from-request-subscription"/>
3036 <function name="tp_svc_connection_interface_contact_list_return_from_unpublish ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-list-return-from-unpublish"/>
3037 <function name="tp_svc_connection_interface_contact_list_return_from_unsubscribe ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-list-return-from-unsubscribe"/>
3038 <function name="tp_svc_connection_interface_contact_list_unpublish_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-list-unpublish-impl"/>
3039 <function name="tp_svc_connection_interface_contact_list_unsubscribe_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-contact-list-unsubscribe-impl"/>
3040 <function name="TpSvcConnectionInterfaceCellular" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceCellular-struct"/>
3041 <function name="TpSvcConnectionInterfaceCellularClass" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceCellularClass"/>
3042 <function name="tp_svc_connection_interface_cellular_emit_imsi_changed ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-cellular-emit-imsi-changed"/>
3043 <function name="TpSvcConnectionInterfaceClientTypes" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceClientTypes-struct"/>
3044 <function name="TpSvcConnectionInterfaceClientTypesClass" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceClientTypesClass"/>
3045 <function name="tp_svc_connection_interface_client_types_emit_client_types_updated ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-client-types-emit-client-types-updated"/>
3046 <function name="tp_svc_connection_interface_client_types_get_client_types_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-client-types-get-client-types-impl"/>
3047 <function name="tp_svc_connection_interface_client_types_implement_get_client_types ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-client-types-implement-get-client-types"/>
3048 <function name="tp_svc_connection_interface_client_types_implement_request_client_types ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-client-types-implement-request-client-types"/>
3049 <function name="tp_svc_connection_interface_client_types_request_client_types_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-client-types-request-client-types-impl"/>
3050 <function name="tp_svc_connection_interface_client_types_return_from_get_client_types ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-client-types-return-from-get-client-types"/>
3051 <function name="tp_svc_connection_interface_client_types_return_from_request_client_types ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-client-types-return-from-request-client-types"/>
3052 <function name="TpSvcConnectionInterfaceMailNotification" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceMailNotification-struct"/>
3053 <function name="TpSvcConnectionInterfaceMailNotificationClass" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceMailNotificationClass"/>
3054 <function name="tp_svc_connection_interface_mail_notification_emit_mails_received ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-mail-notification-emit-mails-received"/>
3055 <function name="tp_svc_connection_interface_mail_notification_emit_unread_mails_changed ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-mail-notification-emit-unread-mails-changed"/>
3056 <function name="tp_svc_connection_interface_mail_notification_implement_request_inbox_url ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-mail-notification-implement-request-inbox-url"/>
3057 <function name="tp_svc_connection_interface_mail_notification_implement_request_mail_url ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-mail-notification-implement-request-mail-url"/>
3058 <function name="tp_svc_connection_interface_mail_notification_request_inbox_url_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-mail-notification-request-inbox-url-impl"/>
3059 <function name="tp_svc_connection_interface_mail_notification_request_mail_url_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-mail-notification-request-mail-url-impl"/>
3060 <function name="tp_svc_connection_interface_mail_notification_return_from_request_inbox_url ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-mail-notification-return-from-request-inbox-url"/>
3061 <function name="tp_svc_connection_interface_mail_notification_return_from_request_mail_url ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-mail-notification-return-from-request-mail-url"/>
3062 <function name="TpSvcConnectionInterfacePowerSaving" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfacePowerSaving-struct"/>
3063 <function name="TpSvcConnectionInterfacePowerSavingClass" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfacePowerSavingClass"/>
3064 <function name="tp_svc_connection_interface_power_saving_emit_power_saving_changed ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-power-saving-emit-power-saving-changed"/>
3065 <function name="tp_svc_connection_interface_power_saving_implement_set_power_saving ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-power-saving-implement-set-power-saving"/>
3066 <function name="tp_svc_connection_interface_power_saving_return_from_set_power_saving ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-power-saving-return-from-set-power-saving"/>
3067 <function name="tp_svc_connection_interface_power_saving_set_power_saving_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-power-saving-set-power-saving-impl"/>
3068 <function name="The &quot;connection-error&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnection-connection-error"/>
3069 <function name="The &quot;new-channel&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnection-new-channel"/>
3070 <function name="The &quot;self-handle-changed&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnection-self-handle-changed"/>
3071 <function name="The &quot;status-changed&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnection-status-changed"/>
3072 <function name="The &quot;channel-closed&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceRequests-channel-closed"/>
3073 <function name="The &quot;new-channels&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceRequests-new-channels"/>
3074 <function name="The &quot;presences-changed&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceSimplePresence-presences-changed"/>
3075 <function name="The &quot;presence-update&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfacePresence-presence-update"/>
3076 <function name="The &quot;avatar-retrieved&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceAvatars-avatar-retrieved"/>
3077 <function name="The &quot;avatar-updated&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceAvatars-avatar-updated"/>
3078 <function name="The &quot;aliases-changed&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceAliasing-aliases-changed"/>
3079 <function name="The &quot;balance-changed&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceBalance-balance-changed"/>
3080 <function name="The &quot;capabilities-changed&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceCapabilities-capabilities-changed"/>
3081 <function name="The &quot;contact-capabilities-changed&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceContactCapabilities-contact-capabilities-changed"/>
3082 <function name="The &quot;location-updated&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceLocation-location-updated"/>
3083 <function name="The &quot;contact-info-changed&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceContactInfo-contact-info-changed"/>
3084 <function name="The &quot;blocked-contacts-changed&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceContactBlocking-blocked-contacts-changed"/>
3085 <function name="The &quot;group-renamed&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceContactGroups-group-renamed"/>
3086 <function name="The &quot;groups-changed&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceContactGroups-groups-changed"/>
3087 <function name="The &quot;groups-created&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceContactGroups-groups-created"/>
3088 <function name="The &quot;groups-removed&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceContactGroups-groups-removed"/>
3089 <function name="The &quot;contact-list-state-changed&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceContactList-contact-list-state-changed"/>
3090 <function name="The &quot;contacts-changed&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceContactList-contacts-changed"/>
3091 <function name="The &quot;contacts-changed-with-id&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceContactList-contacts-changed-with-id"/>
3092 <function name="The &quot;i-ms-ichanged&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceCellular-i-ms-ichanged"/>
3093 <function name="The &quot;client-types-updated&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceClientTypes-client-types-updated"/>
3094 <function name="The &quot;mails-received&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceMailNotification-mails-received"/>
3095 <function name="The &quot;unread-mails-changed&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceMailNotification-unread-mails-changed"/>
3096 <function name="The &quot;power-saving-changed&quot; signal" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfacePowerSaving-power-saving-changed"/>
3097 <function name="TpSvcConnectionInterfaceAnonymity" link="telepathy-glib-svc-anonymity.html#TpSvcConnectionInterfaceAnonymity-struct"/>
3098 <function name="TpSvcConnectionInterfaceAnonymityClass" link="telepathy-glib-svc-anonymity.html#TpSvcConnectionInterfaceAnonymityClass"/>
3099 <function name="tp_svc_connection_interface_anonymity_emit_anonymity_modes_changed ()" link="telepathy-glib-svc-anonymity.html#tp-svc-connection-interface-anonymity-emit-anonymity-modes-changed"/>
3100 <function name="TpSvcChannelInterfaceAnonymity" link="telepathy-glib-svc-anonymity.html#TpSvcChannelInterfaceAnonymity-struct"/>
3101 <function name="TpSvcChannelInterfaceAnonymityClass" link="telepathy-glib-svc-anonymity.html#TpSvcChannelInterfaceAnonymityClass"/>
3102 <function name="The &quot;anonymity-modes-changed&quot; signal" link="telepathy-glib-svc-anonymity.html#TpSvcConnectionInterfaceAnonymity-anonymity-modes-changed"/>
3103 <function name="TpSvcConnectionInterfaceServicePoint" link="telepathy-glib-svc-service-point.html#TpSvcConnectionInterfaceServicePoint-struct"/>
3104 <function name="TpSvcConnectionInterfaceServicePointClass" link="telepathy-glib-svc-service-point.html#TpSvcConnectionInterfaceServicePointClass"/>
3105 <function name="tp_svc_connection_interface_service_point_emit_service_points_changed ()" link="telepathy-glib-svc-service-point.html#tp-svc-connection-interface-service-point-emit-service-points-changed"/>
3106 <function name="TpSvcChannelInterfaceServicePoint" link="telepathy-glib-svc-service-point.html#TpSvcChannelInterfaceServicePoint-struct"/>
3107 <function name="TpSvcChannelInterfaceServicePointClass" link="telepathy-glib-svc-service-point.html#TpSvcChannelInterfaceServicePointClass"/>
3108 <function name="tp_svc_channel_interface_service_point_emit_service_point_changed ()" link="telepathy-glib-svc-service-point.html#tp-svc-channel-interface-service-point-emit-service-point-changed"/>
3109 <function name="The &quot;service-points-changed&quot; signal" link="telepathy-glib-svc-service-point.html#TpSvcConnectionInterfaceServicePoint-service-points-changed"/>
3110 <function name="The &quot;service-point-changed&quot; signal" link="telepathy-glib-svc-service-point.html#TpSvcChannelInterfaceServicePoint-service-point-changed"/>
3111 <function name="TpSvcMediaSessionHandler" link="telepathy-glib-svc-media-interfaces.html#TpSvcMediaSessionHandler-struct"/>
3112 <function name="TpSvcMediaSessionHandlerClass" link="telepathy-glib-svc-media-interfaces.html#TpSvcMediaSessionHandlerClass"/>
3113 <function name="tp_svc_media_session_handler_error_impl ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-error-impl"/>
3114 <function name="tp_svc_media_session_handler_implement_error ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-implement-error"/>
3115 <function name="tp_svc_media_session_handler_return_from_error ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-return-from-error"/>
3116 <function name="tp_svc_media_session_handler_ready_impl ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-ready-impl"/>
3117 <function name="tp_svc_media_session_handler_implement_ready ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-implement-ready"/>
3118 <function name="tp_svc_media_session_handler_return_from_ready ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-return-from-ready"/>
3119 <function name="tp_svc_media_session_handler_emit_new_stream_handler ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-emit-new-stream-handler"/>
3120 <function name="TpSvcMediaStreamHandler" link="telepathy-glib-svc-media-interfaces.html#TpSvcMediaStreamHandler-struct"/>
3121 <function name="TpSvcMediaStreamHandlerClass" link="telepathy-glib-svc-media-interfaces.html#TpSvcMediaStreamHandlerClass"/>
3122 <function name="tp_svc_media_stream_handler_codec_choice_impl ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-codec-choice-impl"/>
3123 <function name="tp_svc_media_stream_handler_implement_codec_choice ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-implement-codec-choice"/>
3124 <function name="tp_svc_media_stream_handler_return_from_codec_choice ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-return-from-codec-choice"/>
3125 <function name="tp_svc_media_stream_handler_error_impl ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-error-impl"/>
3126 <function name="tp_svc_media_stream_handler_implement_error ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-implement-error"/>
3127 <function name="tp_svc_media_stream_handler_return_from_error ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-return-from-error"/>
3128 <function name="tp_svc_media_stream_handler_native_candidates_prepared_impl ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-native-candidates-prepared-impl"/>
3129 <function name="tp_svc_media_stream_handler_implement_native_candidates_prepared ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-implement-native-candidates-prepared"/>
3130 <function name="tp_svc_media_stream_handler_return_from_native_candidates_prepared ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-return-from-native-candidates-prepared"/>
3131 <function name="tp_svc_media_stream_handler_new_active_candidate_pair_impl ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-new-active-candidate-pair-impl"/>
3132 <function name="tp_svc_media_stream_handler_implement_new_active_candidate_pair ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-implement-new-active-candidate-pair"/>
3133 <function name="tp_svc_media_stream_handler_return_from_new_active_candidate_pair ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-return-from-new-active-candidate-pair"/>
3134 <function name="tp_svc_media_stream_handler_new_native_candidate_impl ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-new-native-candidate-impl"/>
3135 <function name="tp_svc_media_stream_handler_implement_new_native_candidate ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-implement-new-native-candidate"/>
3136 <function name="tp_svc_media_stream_handler_return_from_new_native_candidate ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-return-from-new-native-candidate"/>
3137 <function name="tp_svc_media_stream_handler_ready_impl ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-ready-impl"/>
3138 <function name="tp_svc_media_stream_handler_implement_ready ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-implement-ready"/>
3139 <function name="tp_svc_media_stream_handler_return_from_ready ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-return-from-ready"/>
3140 <function name="tp_svc_media_stream_handler_set_local_codecs_impl ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-set-local-codecs-impl"/>
3141 <function name="tp_svc_media_stream_handler_implement_set_local_codecs ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-implement-set-local-codecs"/>
3142 <function name="tp_svc_media_stream_handler_return_from_set_local_codecs ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-return-from-set-local-codecs"/>
3143 <function name="tp_svc_media_stream_handler_stream_state_impl ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-stream-state-impl"/>
3144 <function name="tp_svc_media_stream_handler_implement_stream_state ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-implement-stream-state"/>
3145 <function name="tp_svc_media_stream_handler_return_from_stream_state ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-return-from-stream-state"/>
3146 <function name="tp_svc_media_stream_handler_supported_codecs_impl ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-supported-codecs-impl"/>
3147 <function name="tp_svc_media_stream_handler_implement_supported_codecs ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-implement-supported-codecs"/>
3148 <function name="tp_svc_media_stream_handler_return_from_supported_codecs ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-return-from-supported-codecs"/>
3149 <function name="tp_svc_media_stream_handler_emit_add_remote_candidate ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-emit-add-remote-candidate"/>
3150 <function name="tp_svc_media_stream_handler_emit_close ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-emit-close"/>
3151 <function name="tp_svc_media_stream_handler_emit_remove_remote_candidate ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-emit-remove-remote-candidate"/>
3152 <function name="tp_svc_media_stream_handler_emit_set_active_candidate_pair ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-emit-set-active-candidate-pair"/>
3153 <function name="tp_svc_media_stream_handler_emit_set_remote_candidate_list ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-emit-set-remote-candidate-list"/>
3154 <function name="tp_svc_media_stream_handler_emit_set_remote_codecs ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-emit-set-remote-codecs"/>
3155 <function name="tp_svc_media_stream_handler_emit_set_stream_playing ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-emit-set-stream-playing"/>
3156 <function name="tp_svc_media_stream_handler_emit_set_stream_sending ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-emit-set-stream-sending"/>
3157 <function name="tp_svc_media_stream_handler_emit_start_telephony_event ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-emit-start-telephony-event"/>
3158 <function name="tp_svc_media_stream_handler_emit_stop_telephony_event ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-emit-stop-telephony-event"/>
3159 <function name="tp_svc_media_stream_handler_emit_set_stream_held ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-emit-set-stream-held"/>
3160 <function name="tp_svc_media_stream_handler_hold_state_impl ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-hold-state-impl"/>
3161 <function name="tp_svc_media_stream_handler_implement_hold_state ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-implement-hold-state"/>
3162 <function name="tp_svc_media_stream_handler_implement_unhold_failure ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-implement-unhold-failure"/>
3163 <function name="tp_svc_media_stream_handler_return_from_hold_state ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-return-from-hold-state"/>
3164 <function name="tp_svc_media_stream_handler_return_from_unhold_failure ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-return-from-unhold-failure"/>
3165 <function name="tp_svc_media_stream_handler_unhold_failure_impl ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-unhold-failure-impl"/>
3166 <function name="tp_svc_media_stream_handler_codecs_updated_impl ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-codecs-updated-impl"/>
3167 <function name="tp_svc_media_stream_handler_implement_codecs_updated ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-implement-codecs-updated"/>
3168 <function name="tp_svc_media_stream_handler_return_from_codecs_updated ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-return-from-codecs-updated"/>
3169 <function name="tp_svc_media_stream_handler_emit_start_named_telephony_event ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-emit-start-named-telephony-event"/>
3170 <function name="tp_svc_media_stream_handler_emit_start_sound_telephony_event ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-emit-start-sound-telephony-event"/>
3171 <function name="tp_svc_media_stream_handler_implement_new_active_transport_pair ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-implement-new-active-transport-pair"/>
3172 <function name="tp_svc_media_stream_handler_new_active_transport_pair_impl ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-new-active-transport-pair-impl"/>
3173 <function name="tp_svc_media_stream_handler_return_from_new_active_transport_pair ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-return-from-new-active-transport-pair"/>
3174 <function name="tp_svc_media_stream_handler_emit_set_remote_feedback_messages ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-emit-set-remote-feedback-messages"/>
3175 <function name="tp_svc_media_stream_handler_emit_set_remote_header_extensions ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-emit-set-remote-header-extensions"/>
3176 <function name="tp_svc_media_stream_handler_implement_supported_feedback_messages ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-implement-supported-feedback-messages"/>
3177 <function name="tp_svc_media_stream_handler_implement_supported_header_extensions ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-implement-supported-header-extensions"/>
3178 <function name="tp_svc_media_stream_handler_return_from_supported_feedback_messages ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-return-from-supported-feedback-messages"/>
3179 <function name="tp_svc_media_stream_handler_return_from_supported_header_extensions ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-return-from-supported-header-extensions"/>
3180 <function name="tp_svc_media_stream_handler_supported_feedback_messages_impl ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-supported-feedback-messages-impl"/>
3181 <function name="tp_svc_media_stream_handler_supported_header_extensions_impl ()" link="telepathy-glib-svc-media-interfaces.html#tp-svc-media-stream-handler-supported-header-extensions-impl"/>
3182 <function name="The &quot;new-stream-handler&quot; signal" link="telepathy-glib-svc-media-interfaces.html#TpSvcMediaSessionHandler-new-stream-handler"/>
3183 <function name="The &quot;add-remote-candidate&quot; signal" link="telepathy-glib-svc-media-interfaces.html#TpSvcMediaStreamHandler-add-remote-candidate"/>
3184 <function name="The &quot;close&quot; signal" link="telepathy-glib-svc-media-interfaces.html#TpSvcMediaStreamHandler-close"/>
3185 <function name="The &quot;remove-remote-candidate&quot; signal" link="telepathy-glib-svc-media-interfaces.html#TpSvcMediaStreamHandler-remove-remote-candidate"/>
3186 <function name="The &quot;set-active-candidate-pair&quot; signal" link="telepathy-glib-svc-media-interfaces.html#TpSvcMediaStreamHandler-set-active-candidate-pair"/>
3187 <function name="The &quot;set-remote-candidate-list&quot; signal" link="telepathy-glib-svc-media-interfaces.html#TpSvcMediaStreamHandler-set-remote-candidate-list"/>
3188 <function name="The &quot;set-remote-codecs&quot; signal" link="telepathy-glib-svc-media-interfaces.html#TpSvcMediaStreamHandler-set-remote-codecs"/>
3189 <function name="The &quot;set-remote-feedback-messages&quot; signal" link="telepathy-glib-svc-media-interfaces.html#TpSvcMediaStreamHandler-set-remote-feedback-messages"/>
3190 <function name="The &quot;set-remote-header-extensions&quot; signal" link="telepathy-glib-svc-media-interfaces.html#TpSvcMediaStreamHandler-set-remote-header-extensions"/>
3191 <function name="The &quot;set-stream-held&quot; signal" link="telepathy-glib-svc-media-interfaces.html#TpSvcMediaStreamHandler-set-stream-held"/>
3192 <function name="The &quot;set-stream-playing&quot; signal" link="telepathy-glib-svc-media-interfaces.html#TpSvcMediaStreamHandler-set-stream-playing"/>
3193 <function name="The &quot;set-stream-sending&quot; signal" link="telepathy-glib-svc-media-interfaces.html#TpSvcMediaStreamHandler-set-stream-sending"/>
3194 <function name="The &quot;start-named-telephony-event&quot; signal" link="telepathy-glib-svc-media-interfaces.html#TpSvcMediaStreamHandler-start-named-telephony-event"/>
3195 <function name="The &quot;start-sound-telephony-event&quot; signal" link="telepathy-glib-svc-media-interfaces.html#TpSvcMediaStreamHandler-start-sound-telephony-event"/>
3196 <function name="The &quot;start-telephony-event&quot; signal" link="telepathy-glib-svc-media-interfaces.html#TpSvcMediaStreamHandler-start-telephony-event"/>
3197 <function name="The &quot;stop-telephony-event&quot; signal" link="telepathy-glib-svc-media-interfaces.html#TpSvcMediaStreamHandler-stop-telephony-event"/>
3198 <function name="TpSvcConnectionManager" link="telepathy-glib-svc-connection-manager.html#TpSvcConnectionManager-struct"/>
3199 <function name="TpSvcConnectionManagerClass" link="telepathy-glib-svc-connection-manager.html#TpSvcConnectionManagerClass"/>
3200 <function name="tp_svc_connection_manager_get_parameters_impl ()" link="telepathy-glib-svc-connection-manager.html#tp-svc-connection-manager-get-parameters-impl"/>
3201 <function name="tp_svc_connection_manager_implement_get_parameters ()" link="telepathy-glib-svc-connection-manager.html#tp-svc-connection-manager-implement-get-parameters"/>
3202 <function name="tp_svc_connection_manager_return_from_get_parameters ()" link="telepathy-glib-svc-connection-manager.html#tp-svc-connection-manager-return-from-get-parameters"/>
3203 <function name="tp_svc_connection_manager_list_protocols_impl ()" link="telepathy-glib-svc-connection-manager.html#tp-svc-connection-manager-list-protocols-impl"/>
3204 <function name="tp_svc_connection_manager_implement_list_protocols ()" link="telepathy-glib-svc-connection-manager.html#tp-svc-connection-manager-implement-list-protocols"/>
3205 <function name="tp_svc_connection_manager_return_from_list_protocols ()" link="telepathy-glib-svc-connection-manager.html#tp-svc-connection-manager-return-from-list-protocols"/>
3206 <function name="tp_svc_connection_manager_request_connection_impl ()" link="telepathy-glib-svc-connection-manager.html#tp-svc-connection-manager-request-connection-impl"/>
3207 <function name="tp_svc_connection_manager_implement_request_connection ()" link="telepathy-glib-svc-connection-manager.html#tp-svc-connection-manager-implement-request-connection"/>
3208 <function name="tp_svc_connection_manager_return_from_request_connection ()" link="telepathy-glib-svc-connection-manager.html#tp-svc-connection-manager-return-from-request-connection"/>
3209 <function name="tp_svc_connection_manager_emit_new_connection ()" link="telepathy-glib-svc-connection-manager.html#tp-svc-connection-manager-emit-new-connection"/>
3210 <function name="The &quot;new-connection&quot; signal" link="telepathy-glib-svc-connection-manager.html#TpSvcConnectionManager-new-connection"/>
3211 <function name="TpSvcProtocol" link="telepathy-glib-svc-protocol.html#TpSvcProtocol-struct"/>
3212 <function name="TpSvcProtocolClass" link="telepathy-glib-svc-protocol.html#TpSvcProtocolClass"/>
3213 <function name="tp_svc_protocol_identify_account_impl ()" link="telepathy-glib-svc-protocol.html#tp-svc-protocol-identify-account-impl"/>
3214 <function name="tp_svc_protocol_implement_identify_account ()" link="telepathy-glib-svc-protocol.html#tp-svc-protocol-implement-identify-account"/>
3215 <function name="tp_svc_protocol_implement_normalize_contact ()" link="telepathy-glib-svc-protocol.html#tp-svc-protocol-implement-normalize-contact"/>
3216 <function name="tp_svc_protocol_normalize_contact_impl ()" link="telepathy-glib-svc-protocol.html#tp-svc-protocol-normalize-contact-impl"/>
3217 <function name="tp_svc_protocol_return_from_identify_account ()" link="telepathy-glib-svc-protocol.html#tp-svc-protocol-return-from-identify-account"/>
3218 <function name="tp_svc_protocol_return_from_normalize_contact ()" link="telepathy-glib-svc-protocol.html#tp-svc-protocol-return-from-normalize-contact"/>
3219 <function name="TpSvcProtocolInterfacePresence" link="telepathy-glib-svc-protocol.html#TpSvcProtocolInterfacePresence-struct"/>
3220 <function name="TpSvcProtocolInterfacePresenceClass" link="telepathy-glib-svc-protocol.html#TpSvcProtocolInterfacePresenceClass"/>
3221 <function name="TpSvcProtocolInterfaceAvatars" link="telepathy-glib-svc-protocol.html#TpSvcProtocolInterfaceAvatars-struct"/>
3222 <function name="TpSvcProtocolInterfaceAvatarsClass" link="telepathy-glib-svc-protocol.html#TpSvcProtocolInterfaceAvatarsClass"/>
3223 <function name="TpSvcAccountManager" link="telepathy-glib-svc-account-manager.html#TpSvcAccountManager-struct"/>
3224 <function name="TpSvcAccountManagerClass" link="telepathy-glib-svc-account-manager.html#TpSvcAccountManagerClass"/>
3225 <function name="tp_svc_account_manager_emit_account_removed ()" link="telepathy-glib-svc-account-manager.html#tp-svc-account-manager-emit-account-removed"/>
3226 <function name="tp_svc_account_manager_emit_account_validity_changed ()" link="telepathy-glib-svc-account-manager.html#tp-svc-account-manager-emit-account-validity-changed"/>
3227 <function name="tp_svc_account_manager_create_account_impl ()" link="telepathy-glib-svc-account-manager.html#tp-svc-account-manager-create-account-impl"/>
3228 <function name="tp_svc_account_manager_return_from_create_account ()" link="telepathy-glib-svc-account-manager.html#tp-svc-account-manager-return-from-create-account"/>
3229 <function name="tp_svc_account_manager_implement_create_account ()" link="telepathy-glib-svc-account-manager.html#tp-svc-account-manager-implement-create-account"/>
3230 <function name="The &quot;account-removed&quot; signal" link="telepathy-glib-svc-account-manager.html#TpSvcAccountManager-account-removed"/>
3231 <function name="The &quot;account-validity-changed&quot; signal" link="telepathy-glib-svc-account-manager.html#TpSvcAccountManager-account-validity-changed"/>
3232 <function name="TpSvcAccount" link="telepathy-glib-svc-account.html#TpSvcAccount-struct"/>
3233 <function name="TpSvcAccountClass" link="telepathy-glib-svc-account.html#TpSvcAccountClass"/>
3234 <function name="tp_svc_account_emit_account_property_changed ()" link="telepathy-glib-svc-account.html#tp-svc-account-emit-account-property-changed"/>
3235 <function name="tp_svc_account_emit_removed ()" link="telepathy-glib-svc-account.html#tp-svc-account-emit-removed"/>
3236 <function name="tp_svc_account_reconnect_impl ()" link="telepathy-glib-svc-account.html#tp-svc-account-reconnect-impl"/>
3237 <function name="tp_svc_account_return_from_reconnect ()" link="telepathy-glib-svc-account.html#tp-svc-account-return-from-reconnect"/>
3238 <function name="tp_svc_account_implement_reconnect ()" link="telepathy-glib-svc-account.html#tp-svc-account-implement-reconnect"/>
3239 <function name="tp_svc_account_remove_impl ()" link="telepathy-glib-svc-account.html#tp-svc-account-remove-impl"/>
3240 <function name="tp_svc_account_return_from_remove ()" link="telepathy-glib-svc-account.html#tp-svc-account-return-from-remove"/>
3241 <function name="tp_svc_account_implement_remove ()" link="telepathy-glib-svc-account.html#tp-svc-account-implement-remove"/>
3242 <function name="tp_svc_account_update_parameters_impl ()" link="telepathy-glib-svc-account.html#tp-svc-account-update-parameters-impl"/>
3243 <function name="tp_svc_account_return_from_update_parameters ()" link="telepathy-glib-svc-account.html#tp-svc-account-return-from-update-parameters"/>
3244 <function name="tp_svc_account_implement_update_parameters ()" link="telepathy-glib-svc-account.html#tp-svc-account-implement-update-parameters"/>
3245 <function name="TpSvcAccountInterfaceAvatar" link="telepathy-glib-svc-account.html#TpSvcAccountInterfaceAvatar-struct"/>
3246 <function name="TpSvcAccountInterfaceAvatarClass" link="telepathy-glib-svc-account.html#TpSvcAccountInterfaceAvatarClass"/>
3247 <function name="tp_svc_account_interface_avatar_emit_avatar_changed ()" link="telepathy-glib-svc-account.html#tp-svc-account-interface-avatar-emit-avatar-changed"/>
3248 <function name="TpSvcAccountInterfaceStorage" link="telepathy-glib-svc-account.html#TpSvcAccountInterfaceStorage-struct"/>
3249 <function name="TpSvcAccountInterfaceStorageClass" link="telepathy-glib-svc-account.html#TpSvcAccountInterfaceStorageClass"/>
3250 <function name="TpSvcAccountInterfaceAddressing" link="telepathy-glib-svc-account.html#TpSvcAccountInterfaceAddressing-struct"/>
3251 <function name="TpSvcAccountInterfaceAddressingClass" link="telepathy-glib-svc-account.html#TpSvcAccountInterfaceAddressingClass"/>
3252 <function name="tp_svc_account_interface_addressing_implement_set_uri_scheme_association ()" link="telepathy-glib-svc-account.html#tp-svc-account-interface-addressing-implement-set-uri-scheme-association"/>
3253 <function name="tp_svc_account_interface_addressing_return_from_set_uri_scheme_association ()" link="telepathy-glib-svc-account.html#tp-svc-account-interface-addressing-return-from-set-uri-scheme-association"/>
3254 <function name="tp_svc_account_interface_addressing_set_uri_scheme_association_impl ()" link="telepathy-glib-svc-account.html#tp-svc-account-interface-addressing-set-uri-scheme-association-impl"/>
3255 <function name="The &quot;account-property-changed&quot; signal" link="telepathy-glib-svc-account.html#TpSvcAccount-account-property-changed"/>
3256 <function name="The &quot;removed&quot; signal" link="telepathy-glib-svc-account.html#TpSvcAccount-removed"/>
3257 <function name="The &quot;avatar-changed&quot; signal" link="telepathy-glib-svc-account.html#TpSvcAccountInterfaceAvatar-avatar-changed"/>
3258 <function name="TpSvcChannelDispatcher" link="telepathy-glib-svc-channel-dispatcher.html#TpSvcChannelDispatcher-struct"/>
3259 <function name="TpSvcChannelDispatcherClass" link="telepathy-glib-svc-channel-dispatcher.html#TpSvcChannelDispatcherClass"/>
3260 <function name="tp_svc_channel_dispatcher_return_from_create_channel ()" link="telepathy-glib-svc-channel-dispatcher.html#tp-svc-channel-dispatcher-return-from-create-channel"/>
3261 <function name="tp_svc_channel_dispatcher_create_channel_impl ()" link="telepathy-glib-svc-channel-dispatcher.html#tp-svc-channel-dispatcher-create-channel-impl"/>
3262 <function name="tp_svc_channel_dispatcher_implement_create_channel ()" link="telepathy-glib-svc-channel-dispatcher.html#tp-svc-channel-dispatcher-implement-create-channel"/>
3263 <function name="tp_svc_channel_dispatcher_return_from_create_channel_with_hints ()" link="telepathy-glib-svc-channel-dispatcher.html#tp-svc-channel-dispatcher-return-from-create-channel-with-hints"/>
3264 <function name="tp_svc_channel_dispatcher_create_channel_with_hints_impl ()" link="telepathy-glib-svc-channel-dispatcher.html#tp-svc-channel-dispatcher-create-channel-with-hints-impl"/>
3265 <function name="tp_svc_channel_dispatcher_implement_create_channel_with_hints ()" link="telepathy-glib-svc-channel-dispatcher.html#tp-svc-channel-dispatcher-implement-create-channel-with-hints"/>
3266 <function name="tp_svc_channel_dispatcher_return_from_ensure_channel ()" link="telepathy-glib-svc-channel-dispatcher.html#tp-svc-channel-dispatcher-return-from-ensure-channel"/>
3267 <function name="tp_svc_channel_dispatcher_ensure_channel_impl ()" link="telepathy-glib-svc-channel-dispatcher.html#tp-svc-channel-dispatcher-ensure-channel-impl"/>
3268 <function name="tp_svc_channel_dispatcher_implement_ensure_channel ()" link="telepathy-glib-svc-channel-dispatcher.html#tp-svc-channel-dispatcher-implement-ensure-channel"/>
3269 <function name="tp_svc_channel_dispatcher_return_from_ensure_channel_with_hints ()" link="telepathy-glib-svc-channel-dispatcher.html#tp-svc-channel-dispatcher-return-from-ensure-channel-with-hints"/>
3270 <function name="tp_svc_channel_dispatcher_ensure_channel_with_hints_impl ()" link="telepathy-glib-svc-channel-dispatcher.html#tp-svc-channel-dispatcher-ensure-channel-with-hints-impl"/>
3271 <function name="tp_svc_channel_dispatcher_implement_ensure_channel_with_hints ()" link="telepathy-glib-svc-channel-dispatcher.html#tp-svc-channel-dispatcher-implement-ensure-channel-with-hints"/>
3272 <function name="tp_svc_channel_dispatcher_delegate_channels_impl ()" link="telepathy-glib-svc-channel-dispatcher.html#tp-svc-channel-dispatcher-delegate-channels-impl"/>
3273 <function name="tp_svc_channel_dispatcher_implement_delegate_channels ()" link="telepathy-glib-svc-channel-dispatcher.html#tp-svc-channel-dispatcher-implement-delegate-channels"/>
3274 <function name="tp_svc_channel_dispatcher_implement_present_channel ()" link="telepathy-glib-svc-channel-dispatcher.html#tp-svc-channel-dispatcher-implement-present-channel"/>
3275 <function name="tp_svc_channel_dispatcher_present_channel_impl ()" link="telepathy-glib-svc-channel-dispatcher.html#tp-svc-channel-dispatcher-present-channel-impl"/>
3276 <function name="tp_svc_channel_dispatcher_return_from_delegate_channels ()" link="telepathy-glib-svc-channel-dispatcher.html#tp-svc-channel-dispatcher-return-from-delegate-channels"/>
3277 <function name="tp_svc_channel_dispatcher_return_from_present_channel ()" link="telepathy-glib-svc-channel-dispatcher.html#tp-svc-channel-dispatcher-return-from-present-channel"/>
3278 <function name="TpSvcChannelDispatcherInterfaceOperationList" link="telepathy-glib-svc-channel-dispatcher.html#TpSvcChannelDispatcherInterfaceOperationList-struct"/>
3279 <function name="TpSvcChannelDispatcherInterfaceOperationListClass" link="telepathy-glib-svc-channel-dispatcher.html#TpSvcChannelDispatcherInterfaceOperationListClass"/>
3280 <function name="tp_svc_channel_dispatcher_interface_operation_list_emit_new_dispatch_operation ()" link="telepathy-glib-svc-channel-dispatcher.html#tp-svc-channel-dispatcher-interface-operation-list-emit-new-dispatch-operation"/>
3281 <function name="tp_svc_channel_dispatcher_interface_operation_list_emit_dispatch_operation_finished ()" link="telepathy-glib-svc-channel-dispatcher.html#tp-svc-channel-dispatcher-interface-operation-list-emit-dispatch-operation-finished"/>
3282 <function name="The &quot;dispatch-operation-finished&quot; signal" link="telepathy-glib-svc-channel-dispatcher.html#TpSvcChannelDispatcherInterfaceOperationList-dispatch-operation-finished"/>
3283 <function name="The &quot;new-dispatch-operation&quot; signal" link="telepathy-glib-svc-channel-dispatcher.html#TpSvcChannelDispatcherInterfaceOperationList-new-dispatch-operation"/>
3284 <function name="TpSvcChannelDispatchOperation" link="telepathy-glib-svc-channel-dispatch-operation.html#TpSvcChannelDispatchOperation-struct"/>
3285 <function name="TpSvcChannelDispatchOperationClass" link="telepathy-glib-svc-channel-dispatch-operation.html#TpSvcChannelDispatchOperationClass"/>
3286 <function name="tp_svc_channel_dispatch_operation_return_from_claim ()" link="telepathy-glib-svc-channel-dispatch-operation.html#tp-svc-channel-dispatch-operation-return-from-claim"/>
3287 <function name="tp_svc_channel_dispatch_operation_claim_impl ()" link="telepathy-glib-svc-channel-dispatch-operation.html#tp-svc-channel-dispatch-operation-claim-impl"/>
3288 <function name="tp_svc_channel_dispatch_operation_implement_claim ()" link="telepathy-glib-svc-channel-dispatch-operation.html#tp-svc-channel-dispatch-operation-implement-claim"/>
3289 <function name="tp_svc_channel_dispatch_operation_return_from_handle_with ()" link="telepathy-glib-svc-channel-dispatch-operation.html#tp-svc-channel-dispatch-operation-return-from-handle-with"/>
3290 <function name="tp_svc_channel_dispatch_operation_handle_with_impl ()" link="telepathy-glib-svc-channel-dispatch-operation.html#tp-svc-channel-dispatch-operation-handle-with-impl"/>
3291 <function name="tp_svc_channel_dispatch_operation_implement_handle_with ()" link="telepathy-glib-svc-channel-dispatch-operation.html#tp-svc-channel-dispatch-operation-implement-handle-with"/>
3292 <function name="tp_svc_channel_dispatch_operation_handle_with_time_impl ()" link="telepathy-glib-svc-channel-dispatch-operation.html#tp-svc-channel-dispatch-operation-handle-with-time-impl"/>
3293 <function name="tp_svc_channel_dispatch_operation_implement_handle_with_time ()" link="telepathy-glib-svc-channel-dispatch-operation.html#tp-svc-channel-dispatch-operation-implement-handle-with-time"/>
3294 <function name="tp_svc_channel_dispatch_operation_return_from_handle_with_time ()" link="telepathy-glib-svc-channel-dispatch-operation.html#tp-svc-channel-dispatch-operation-return-from-handle-with-time"/>
3295 <function name="tp_svc_channel_dispatch_operation_emit_channel_lost ()" link="telepathy-glib-svc-channel-dispatch-operation.html#tp-svc-channel-dispatch-operation-emit-channel-lost"/>
3296 <function name="tp_svc_channel_dispatch_operation_emit_finished ()" link="telepathy-glib-svc-channel-dispatch-operation.html#tp-svc-channel-dispatch-operation-emit-finished"/>
3297 <function name="The &quot;channel-lost&quot; signal" link="telepathy-glib-svc-channel-dispatch-operation.html#TpSvcChannelDispatchOperation-channel-lost"/>
3298 <function name="The &quot;finished&quot; signal" link="telepathy-glib-svc-channel-dispatch-operation.html#TpSvcChannelDispatchOperation-finished"/>
3299 <function name="TpSvcChannelRequest" link="telepathy-glib-svc-channel-request.html#TpSvcChannelRequest-struct"/>
3300 <function name="TpSvcChannelRequestClass" link="telepathy-glib-svc-channel-request.html#TpSvcChannelRequestClass"/>
3301 <function name="tp_svc_channel_request_return_from_proceed ()" link="telepathy-glib-svc-channel-request.html#tp-svc-channel-request-return-from-proceed"/>
3302 <function name="tp_svc_channel_request_proceed_impl ()" link="telepathy-glib-svc-channel-request.html#tp-svc-channel-request-proceed-impl"/>
3303 <function name="tp_svc_channel_request_implement_proceed ()" link="telepathy-glib-svc-channel-request.html#tp-svc-channel-request-implement-proceed"/>
3304 <function name="tp_svc_channel_request_return_from_cancel ()" link="telepathy-glib-svc-channel-request.html#tp-svc-channel-request-return-from-cancel"/>
3305 <function name="tp_svc_channel_request_cancel_impl ()" link="telepathy-glib-svc-channel-request.html#tp-svc-channel-request-cancel-impl"/>
3306 <function name="tp_svc_channel_request_implement_cancel ()" link="telepathy-glib-svc-channel-request.html#tp-svc-channel-request-implement-cancel"/>
3307 <function name="tp_svc_channel_request_emit_failed ()" link="telepathy-glib-svc-channel-request.html#tp-svc-channel-request-emit-failed"/>
3308 <function name="tp_svc_channel_request_emit_succeeded ()" link="telepathy-glib-svc-channel-request.html#tp-svc-channel-request-emit-succeeded"/>
3309 <function name="tp_svc_channel_request_emit_succeeded_with_channel ()" link="telepathy-glib-svc-channel-request.html#tp-svc-channel-request-emit-succeeded-with-channel"/>
3310 <function name="The &quot;failed&quot; signal" link="telepathy-glib-svc-channel-request.html#TpSvcChannelRequest-failed"/>
3311 <function name="The &quot;succeeded&quot; signal" link="telepathy-glib-svc-channel-request.html#TpSvcChannelRequest-succeeded"/>
3312 <function name="The &quot;succeeded-with-channel&quot; signal" link="telepathy-glib-svc-channel-request.html#TpSvcChannelRequest-succeeded-with-channel"/>
3313 <function name="TpSvcClient" link="telepathy-glib-svc-client.html#TpSvcClient-struct"/>
3314 <function name="TpSvcClientClass" link="telepathy-glib-svc-client.html#TpSvcClientClass"/>
3315 <function name="TpSvcClientApprover" link="telepathy-glib-svc-client.html#TpSvcClientApprover-struct"/>
3316 <function name="TpSvcClientApproverClass" link="telepathy-glib-svc-client.html#TpSvcClientApproverClass"/>
3317 <function name="tp_svc_client_approver_return_from_add_dispatch_operation ()" link="telepathy-glib-svc-client.html#tp-svc-client-approver-return-from-add-dispatch-operation"/>
3318 <function name="tp_svc_client_approver_add_dispatch_operation_impl ()" link="telepathy-glib-svc-client.html#tp-svc-client-approver-add-dispatch-operation-impl"/>
3319 <function name="tp_svc_client_approver_implement_add_dispatch_operation ()" link="telepathy-glib-svc-client.html#tp-svc-client-approver-implement-add-dispatch-operation"/>
3320 <function name="TpSvcClientHandler" link="telepathy-glib-svc-client.html#TpSvcClientHandler-struct"/>
3321 <function name="TpSvcClientHandlerClass" link="telepathy-glib-svc-client.html#TpSvcClientHandlerClass"/>
3322 <function name="tp_svc_client_handler_return_from_handle_channels ()" link="telepathy-glib-svc-client.html#tp-svc-client-handler-return-from-handle-channels"/>
3323 <function name="tp_svc_client_handler_handle_channels_impl ()" link="telepathy-glib-svc-client.html#tp-svc-client-handler-handle-channels-impl"/>
3324 <function name="tp_svc_client_handler_implement_handle_channels ()" link="telepathy-glib-svc-client.html#tp-svc-client-handler-implement-handle-channels"/>
3325 <function name="TpSvcClientInterfaceRequests" link="telepathy-glib-svc-client.html#TpSvcClientInterfaceRequests-struct"/>
3326 <function name="TpSvcClientInterfaceRequestsClass" link="telepathy-glib-svc-client.html#TpSvcClientInterfaceRequestsClass"/>
3327 <function name="tp_svc_client_interface_requests_return_from_add_request ()" link="telepathy-glib-svc-client.html#tp-svc-client-interface-requests-return-from-add-request"/>
3328 <function name="tp_svc_client_interface_requests_add_request_impl ()" link="telepathy-glib-svc-client.html#tp-svc-client-interface-requests-add-request-impl"/>
3329 <function name="tp_svc_client_interface_requests_implement_add_request ()" link="telepathy-glib-svc-client.html#tp-svc-client-interface-requests-implement-add-request"/>
3330 <function name="tp_svc_client_interface_requests_return_from_remove_request ()" link="telepathy-glib-svc-client.html#tp-svc-client-interface-requests-return-from-remove-request"/>
3331 <function name="tp_svc_client_interface_requests_remove_request_impl ()" link="telepathy-glib-svc-client.html#tp-svc-client-interface-requests-remove-request-impl"/>
3332 <function name="tp_svc_client_interface_requests_implement_remove_request ()" link="telepathy-glib-svc-client.html#tp-svc-client-interface-requests-implement-remove-request"/>
3333 <function name="TpSvcClientObserver" link="telepathy-glib-svc-client.html#TpSvcClientObserver-struct"/>
3334 <function name="TpSvcClientObserverClass" link="telepathy-glib-svc-client.html#TpSvcClientObserverClass"/>
3335 <function name="tp_svc_client_observer_return_from_observe_channels ()" link="telepathy-glib-svc-client.html#tp-svc-client-observer-return-from-observe-channels"/>
3336 <function name="tp_svc_client_observer_observe_channels_impl ()" link="telepathy-glib-svc-client.html#tp-svc-client-observer-observe-channels-impl"/>
3337 <function name="tp_svc_client_observer_implement_observe_channels ()" link="telepathy-glib-svc-client.html#tp-svc-client-observer-implement-observe-channels"/>
3338 <function name="TpSvcChannelTypeServerTLSConnection" link="telepathy-glib-svc-tls.html#TpSvcChannelTypeServerTLSConnection-struct"/>
3339 <function name="TpSvcChannelTypeServerTLSConnectionClass" link="telepathy-glib-svc-tls.html#TpSvcChannelTypeServerTLSConnectionClass"/>
3340 <function name="TpSvcAuthenticationTLSCertificate" link="telepathy-glib-svc-tls.html#TpSvcAuthenticationTLSCertificate-struct"/>
3341 <function name="TpSvcAuthenticationTLSCertificateClass" link="telepathy-glib-svc-tls.html#TpSvcAuthenticationTLSCertificateClass"/>
3342 <function name="tp_svc_authentication_tls_certificate_accept_impl ()" link="telepathy-glib-svc-tls.html#tp-svc-authentication-tls-certificate-accept-impl"/>
3343 <function name="tp_svc_authentication_tls_certificate_return_from_accept ()" link="telepathy-glib-svc-tls.html#tp-svc-authentication-tls-certificate-return-from-accept"/>
3344 <function name="tp_svc_authentication_tls_certificate_implement_accept ()" link="telepathy-glib-svc-tls.html#tp-svc-authentication-tls-certificate-implement-accept"/>
3345 <function name="tp_svc_authentication_tls_certificate_emit_accepted ()" link="telepathy-glib-svc-tls.html#tp-svc-authentication-tls-certificate-emit-accepted"/>
3346 <function name="tp_svc_authentication_tls_certificate_reject_impl ()" link="telepathy-glib-svc-tls.html#tp-svc-authentication-tls-certificate-reject-impl"/>
3347 <function name="tp_svc_authentication_tls_certificate_return_from_reject ()" link="telepathy-glib-svc-tls.html#tp-svc-authentication-tls-certificate-return-from-reject"/>
3348 <function name="tp_svc_authentication_tls_certificate_implement_reject ()" link="telepathy-glib-svc-tls.html#tp-svc-authentication-tls-certificate-implement-reject"/>
3349 <function name="tp_svc_authentication_tls_certificate_emit_rejected ()" link="telepathy-glib-svc-tls.html#tp-svc-authentication-tls-certificate-emit-rejected"/>
3350 <function name="The &quot;accepted&quot; signal" link="telepathy-glib-svc-tls.html#TpSvcAuthenticationTLSCertificate-accepted"/>
3351 <function name="The &quot;rejected&quot; signal" link="telepathy-glib-svc-tls.html#TpSvcAuthenticationTLSCertificate-rejected"/>
3352 <function name="tp_run_connection_manager ()" link="telepathy-glib-run.html#tp-run-connection-manager"/>
3353 <function name="TpCMParamFilter ()" link="TpBaseConnectionManager.html#TpCMParamFilter"/>
3354 <function name="tp_cm_param_filter_string_nonempty ()" link="TpBaseConnectionManager.html#tp-cm-param-filter-string-nonempty"/>
3355 <function name="tp_cm_param_filter_uint_nonzero ()" link="TpBaseConnectionManager.html#tp-cm-param-filter-uint-nonzero"/>
3356 <function name="TpCMParamSetter ()" link="TpBaseConnectionManager.html#TpCMParamSetter"/>
3357 <function name="tp_cm_param_setter_offset ()" link="TpBaseConnectionManager.html#tp-cm-param-setter-offset"/>
3358 <function name="struct TpCMParamSpec" link="TpBaseConnectionManager.html#TpCMParamSpec"/>
3359 <function name="TpCMProtocolSpec" link="TpBaseConnectionManager.html#TpCMProtocolSpec"/>
3360 <function name="TpBaseConnectionManager" link="TpBaseConnectionManager.html#TpBaseConnectionManager-struct"/>
3361 <function name="struct TpBaseConnectionManagerClass" link="TpBaseConnectionManager.html#TpBaseConnectionManagerClass"/>
3362 <function name="TpBaseConnectionManagerNewConnFunc ()" link="TpBaseConnectionManager.html#TpBaseConnectionManagerNewConnFunc"/>
3363 <function name="tp_base_connection_manager_get_dbus_daemon ()" link="TpBaseConnectionManager.html#tp-base-connection-manager-get-dbus-daemon"/>
3364 <function name="tp_base_connection_manager_register ()" link="TpBaseConnectionManager.html#tp-base-connection-manager-register"/>
3365 <function name="tp_base_connection_manager_add_protocol ()" link="TpBaseConnectionManager.html#tp-base-connection-manager-add-protocol"/>
3366 <function name="The &quot;dbus-daemon&quot; property" link="TpBaseConnectionManager.html#TpBaseConnectionManager--dbus-daemon"/>
3367 <function name="The &quot;interfaces&quot; property" link="TpBaseConnectionManager.html#TpBaseConnectionManager--interfaces"/>
3368 <function name="The &quot;protocols&quot; property" link="TpBaseConnectionManager.html#TpBaseConnectionManager--protocols"/>
3369 <function name="The &quot;no-more-connections&quot; signal" link="TpBaseConnectionManager.html#TpBaseConnectionManager-no-more-connections"/>
3370 <function name="struct TpBaseProtocol" link="telepathy-glib-base-protocol.html#TpBaseProtocol-struct"/>
3371 <function name="tp_base_protocol_get_name ()" link="telepathy-glib-base-protocol.html#tp-base-protocol-get-name"/>
3372 <function name="tp_base_protocol_get_immutable_properties ()" link="telepathy-glib-base-protocol.html#tp-base-protocol-get-immutable-properties"/>
3373 <function name="tp_base_protocol_get_parameters ()" link="telepathy-glib-base-protocol.html#tp-base-protocol-get-parameters"/>
3374 <function name="tp_base_protocol_get_statuses ()" link="telepathy-glib-base-protocol.html#tp-base-protocol-get-statuses"/>
3375 <function name="tp_base_protocol_new_connection ()" link="telepathy-glib-base-protocol.html#tp-base-protocol-new-connection"/>
3376 <function name="struct TpBaseProtocolClass" link="telepathy-glib-base-protocol.html#TpBaseProtocolClass"/>
3377 <function name="TpBaseProtocolGetParametersFunc ()" link="telepathy-glib-base-protocol.html#TpBaseProtocolGetParametersFunc"/>
3378 <function name="TpBaseProtocolNewConnectionFunc ()" link="telepathy-glib-base-protocol.html#TpBaseProtocolNewConnectionFunc"/>
3379 <function name="TpBaseProtocolNormalizeContactFunc ()" link="telepathy-glib-base-protocol.html#TpBaseProtocolNormalizeContactFunc"/>
3380 <function name="TpBaseProtocolIdentifyAccountFunc ()" link="telepathy-glib-base-protocol.html#TpBaseProtocolIdentifyAccountFunc"/>
3381 <function name="TpBaseProtocolGetInterfacesFunc ()" link="telepathy-glib-base-protocol.html#TpBaseProtocolGetInterfacesFunc"/>
3382 <function name="TpBaseProtocolGetConnectionDetailsFunc ()" link="telepathy-glib-base-protocol.html#TpBaseProtocolGetConnectionDetailsFunc"/>
3383 <function name="TpBaseProtocolGetAvatarDetailsFunc ()" link="telepathy-glib-base-protocol.html#TpBaseProtocolGetAvatarDetailsFunc"/>
3384 <function name="The &quot;immutable-properties&quot; property" link="telepathy-glib-base-protocol.html#TpBaseProtocol--immutable-properties"/>
3385 <function name="The &quot;name&quot; property" link="telepathy-glib-base-protocol.html#TpBaseProtocol--name"/>
3386 <function name="TP_INTERNAL_CONNECTION_STATUS_NEW" link="TpBaseConnection.html#TP-INTERNAL-CONNECTION-STATUS-NEW:CAPS"/>
3387 <function name="struct TpBaseConnection" link="TpBaseConnection.html#TpBaseConnection-struct"/>
3388 <function name="struct TpBaseConnectionClass" link="TpBaseConnection.html#TpBaseConnectionClass"/>
3389 <function name="TpBaseConnectionCreateChannelFactoriesImpl ()" link="TpBaseConnection.html#TpBaseConnectionCreateChannelFactoriesImpl"/>
3390 <function name="TpBaseConnectionCreateChannelManagersImpl ()" link="TpBaseConnection.html#TpBaseConnectionCreateChannelManagersImpl"/>
3391 <function name="TpBaseConnectionCreateHandleReposImpl ()" link="TpBaseConnection.html#TpBaseConnectionCreateHandleReposImpl"/>
3392 <function name="TpBaseConnectionGetUniqueConnectionNameImpl ()" link="TpBaseConnection.html#TpBaseConnectionGetUniqueConnectionNameImpl"/>
3393 <function name="TpBaseConnectionProc ()" link="TpBaseConnection.html#TpBaseConnectionProc"/>
3394 <function name="TpBaseConnectionStartConnectingImpl ()" link="TpBaseConnection.html#TpBaseConnectionStartConnectingImpl"/>
3395 <function name="tp_base_connection_get_dbus_daemon ()" link="TpBaseConnection.html#tp-base-connection-get-dbus-daemon"/>
3396 <function name="tp_base_connection_register ()" link="TpBaseConnection.html#tp-base-connection-register"/>
3397 <function name="tp_base_connection_get_handles ()" link="TpBaseConnection.html#tp-base-connection-get-handles"/>
3398 <function name="tp_base_connection_get_self_handle ()" link="TpBaseConnection.html#tp-base-connection-get-self-handle"/>
3399 <function name="tp_base_connection_set_self_handle ()" link="TpBaseConnection.html#tp-base-connection-set-self-handle"/>
3400 <function name="tp_base_connection_change_status ()" link="TpBaseConnection.html#tp-base-connection-change-status"/>
3401 <function name="tp_base_connection_disconnect_with_dbus_error ()" link="TpBaseConnection.html#tp-base-connection-disconnect-with-dbus-error"/>
3402 <function name="tp_base_connection_finish_shutdown ()" link="TpBaseConnection.html#tp-base-connection-finish-shutdown"/>
3403 <function name="tp_base_connection_add_interfaces ()" link="TpBaseConnection.html#tp-base-connection-add-interfaces"/>
3404 <function name="tp_base_connection_dbus_request_handles ()" link="TpBaseConnection.html#tp-base-connection-dbus-request-handles"/>
3405 <function name="TP_BASE_CONNECTION_ERROR_IF_NOT_CONNECTED()" link="TpBaseConnection.html#TP-BASE-CONNECTION-ERROR-IF-NOT-CONNECTED:CAPS"/>
3406 <function name="tp_base_connection_register_with_contacts_mixin ()" link="TpBaseConnection.html#tp-base-connection-register-with-contacts-mixin"/>
3407 <function name="tp_base_connection_add_possible_client_interest ()" link="TpBaseConnection.html#tp-base-connection-add-possible-client-interest"/>
3408 <function name="tp_base_connection_add_client_interest ()" link="TpBaseConnection.html#tp-base-connection-add-client-interest"/>
3409 <function name="struct TpChannelManagerIter" link="TpBaseConnection.html#TpChannelManagerIter"/>
3410 <function name="tp_base_connection_channel_manager_iter_init ()" link="TpBaseConnection.html#tp-base-connection-channel-manager-iter-init"/>
3411 <function name="tp_base_connection_channel_manager_iter_next ()" link="TpBaseConnection.html#tp-base-connection-channel-manager-iter-next"/>
3412 <function name="The &quot;dbus-daemon&quot; property" link="TpBaseConnection.html#TpBaseConnection--dbus-daemon"/>
3413 <function name="The &quot;dbus-status&quot; property" link="TpBaseConnection.html#TpBaseConnection--dbus-status"/>
3414 <function name="The &quot;has-immortal-handles&quot; property" link="TpBaseConnection.html#TpBaseConnection--has-immortal-handles"/>
3415 <function name="The &quot;interfaces&quot; property" link="TpBaseConnection.html#TpBaseConnection--interfaces"/>
3416 <function name="The &quot;protocol&quot; property" link="TpBaseConnection.html#TpBaseConnection--protocol"/>
3417 <function name="The &quot;self-handle&quot; property" link="TpBaseConnection.html#TpBaseConnection--self-handle"/>
3418 <function name="The &quot;clients-interested&quot; signal" link="TpBaseConnection.html#TpBaseConnection-clients-interested"/>
3419 <function name="The &quot;clients-uninterested&quot; signal" link="TpBaseConnection.html#TpBaseConnection-clients-uninterested"/>
3420 <function name="The &quot;shutdown-finished&quot; signal" link="TpBaseConnection.html#TpBaseConnection-shutdown-finished"/>
3421 <function name="TpChannelManagerChannelClassFunc ()" link="TpChannelManager.html#TpChannelManagerChannelClassFunc"/>
3422 <function name="TpChannelManagerForeachChannelClassFunc ()" link="TpChannelManager.html#TpChannelManagerForeachChannelClassFunc"/>
3423 <function name="TpChannelManagerTypeChannelClassFunc ()" link="TpChannelManager.html#TpChannelManagerTypeChannelClassFunc"/>
3424 <function name="TpChannelManagerTypeForeachChannelClassFunc ()" link="TpChannelManager.html#TpChannelManagerTypeForeachChannelClassFunc"/>
3425 <function name="TpChannelManagerForeachChannelFunc ()" link="TpChannelManager.html#TpChannelManagerForeachChannelFunc"/>
3426 <function name="TpChannelManagerRequestFunc ()" link="TpChannelManager.html#TpChannelManagerRequestFunc"/>
3427 <function name="TpChannelManager" link="TpChannelManager.html#TpChannelManager-struct"/>
3428 <function name="struct TpChannelManagerIface" link="TpChannelManager.html#TpChannelManagerIface"/>
3429 <function name="tp_channel_manager_asv_has_unknown_properties ()" link="TpChannelManager.html#tp-channel-manager-asv-has-unknown-properties"/>
3430 <function name="tp_channel_manager_create_channel ()" link="TpChannelManager.html#tp-channel-manager-create-channel"/>
3431 <function name="tp_channel_manager_emit_channel_closed ()" link="TpChannelManager.html#tp-channel-manager-emit-channel-closed"/>
3432 <function name="tp_channel_manager_emit_channel_closed_for_object ()" link="TpChannelManager.html#tp-channel-manager-emit-channel-closed-for-object"/>
3433 <function name="tp_channel_manager_emit_new_channel ()" link="TpChannelManager.html#tp-channel-manager-emit-new-channel"/>
3434 <function name="tp_channel_manager_emit_new_channels ()" link="TpChannelManager.html#tp-channel-manager-emit-new-channels"/>
3435 <function name="tp_channel_manager_emit_request_already_satisfied ()" link="TpChannelManager.html#tp-channel-manager-emit-request-already-satisfied"/>
3436 <function name="tp_channel_manager_emit_request_failed ()" link="TpChannelManager.html#tp-channel-manager-emit-request-failed"/>
3437 <function name="tp_channel_manager_emit_request_failed_printf ()" link="TpChannelManager.html#tp-channel-manager-emit-request-failed-printf"/>
3438 <function name="tp_channel_manager_ensure_channel ()" link="TpChannelManager.html#tp-channel-manager-ensure-channel"/>
3439 <function name="tp_channel_manager_foreach_channel ()" link="TpChannelManager.html#tp-channel-manager-foreach-channel"/>
3440 <function name="tp_channel_manager_foreach_channel_class ()" link="TpChannelManager.html#tp-channel-manager-foreach-channel-class"/>
3441 <function name="tp_channel_manager_type_foreach_channel_class ()" link="TpChannelManager.html#tp-channel-manager-type-foreach-channel-class"/>
3442 <function name="tp_channel_manager_request_channel ()" link="TpChannelManager.html#tp-channel-manager-request-channel"/>
3443 <function name="The &quot;channel-closed&quot; signal" link="TpChannelManager.html#TpChannelManager-channel-closed"/>
3444 <function name="The &quot;new-channels&quot; signal" link="TpChannelManager.html#TpChannelManager-new-channels"/>
3445 <function name="The &quot;request-already-satisfied&quot; signal" link="TpChannelManager.html#TpChannelManager-request-already-satisfied"/>
3446 <function name="The &quot;request-failed&quot; signal" link="TpChannelManager.html#TpChannelManager-request-failed"/>
3447 <function name="struct TpBaseContactList" link="telepathy-glib-base-contact-list.html#TpBaseContactList-struct"/>
3448 <function name="struct TpBaseContactListClass" link="telepathy-glib-base-contact-list.html#TpBaseContactListClass"/>
3449 <function name="tp_base_contact_list_mixin_class_init ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-mixin-class-init"/>
3450 <function name="tp_base_contact_list_mixin_register_with_contacts_mixin ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-mixin-register-with-contacts-mixin"/>
3451 <function name="tp_base_contact_list_mixin_list_iface_init ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-mixin-list-iface-init"/>
3452 <function name="tp_base_contact_list_mixin_groups_iface_init ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-mixin-groups-iface-init"/>
3453 <function name="tp_base_contact_list_mixin_blocking_iface_init ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-mixin-blocking-iface-init"/>
3454 <function name="tp_base_contact_list_get_state ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-get-state"/>
3455 <function name="tp_base_contact_list_get_connection ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-get-connection"/>
3456 <function name="tp_base_contact_list_set_list_pending ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-set-list-pending"/>
3457 <function name="tp_base_contact_list_set_list_failed ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-set-list-failed"/>
3458 <function name="tp_base_contact_list_set_list_received ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-set-list-received"/>
3459 <function name="tp_base_contact_list_contacts_changed ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-contacts-changed"/>
3460 <function name="tp_base_contact_list_one_contact_changed ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-one-contact-changed"/>
3461 <function name="tp_base_contact_list_one_contact_removed ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-one-contact-removed"/>
3462 <function name="TpBaseContactListBooleanFunc ()" link="telepathy-glib-base-contact-list.html#TpBaseContactListBooleanFunc"/>
3463 <function name="tp_base_contact_list_false_func ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-false-func"/>
3464 <function name="tp_base_contact_list_true_func ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-true-func"/>
3465 <function name="tp_base_contact_list_get_contact_list_persists ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-get-contact-list-persists"/>
3466 <function name="TpBaseContactListDupContactsFunc ()" link="telepathy-glib-base-contact-list.html#TpBaseContactListDupContactsFunc"/>
3467 <function name="tp_base_contact_list_dup_contacts ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-dup-contacts"/>
3468 <function name="TpBaseContactListDupStatesFunc ()" link="telepathy-glib-base-contact-list.html#TpBaseContactListDupStatesFunc"/>
3469 <function name="tp_base_contact_list_dup_states ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-dup-states"/>
3470 <function name="TpBaseContactListUIntFunc ()" link="telepathy-glib-base-contact-list.html#TpBaseContactListUIntFunc"/>
3471 <function name="TpBaseContactListAsyncFinishFunc ()" link="telepathy-glib-base-contact-list.html#TpBaseContactListAsyncFinishFunc"/>
3472 <function name="TP_TYPE_MUTABLE_CONTACT_LIST" link="telepathy-glib-base-contact-list.html#TP-TYPE-MUTABLE-CONTACT-LIST:CAPS"/>
3473 <function name="struct TpMutableContactListInterface" link="telepathy-glib-base-contact-list.html#TpMutableContactListInterface"/>
3474 <function name="tp_base_contact_list_can_change_contact_list ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-can-change-contact-list"/>
3475 <function name="tp_base_contact_list_get_request_uses_message ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-get-request-uses-message"/>
3476 <function name="TpBaseContactListRequestSubscriptionFunc ()" link="telepathy-glib-base-contact-list.html#TpBaseContactListRequestSubscriptionFunc"/>
3477 <function name="tp_base_contact_list_request_subscription_async ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-request-subscription-async"/>
3478 <function name="tp_base_contact_list_request_subscription_finish ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-request-subscription-finish"/>
3479 <function name="TpBaseContactListActOnContactsFunc ()" link="telepathy-glib-base-contact-list.html#TpBaseContactListActOnContactsFunc"/>
3480 <function name="tp_base_contact_list_authorize_publication_async ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-authorize-publication-async"/>
3481 <function name="tp_base_contact_list_authorize_publication_finish ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-authorize-publication-finish"/>
3482 <function name="tp_base_contact_list_store_contacts_async ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-store-contacts-async"/>
3483 <function name="tp_base_contact_list_store_contacts_finish ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-store-contacts-finish"/>
3484 <function name="tp_base_contact_list_remove_contacts_async ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-remove-contacts-async"/>
3485 <function name="tp_base_contact_list_remove_contacts_finish ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-remove-contacts-finish"/>
3486 <function name="tp_base_contact_list_unsubscribe_async ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-unsubscribe-async"/>
3487 <function name="tp_base_contact_list_unsubscribe_finish ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-unsubscribe-finish"/>
3488 <function name="tp_base_contact_list_unpublish_async ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-unpublish-async"/>
3489 <function name="tp_base_contact_list_unpublish_finish ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-unpublish-finish"/>
3490 <function name="TP_TYPE_CONTACT_GROUP_LIST" link="telepathy-glib-base-contact-list.html#TP-TYPE-CONTACT-GROUP-LIST:CAPS"/>
3491 <function name="struct TpContactGroupListInterface" link="telepathy-glib-base-contact-list.html#TpContactGroupListInterface"/>
3492 <function name="TpBaseContactListNormalizeFunc ()" link="telepathy-glib-base-contact-list.html#TpBaseContactListNormalizeFunc"/>
3493 <function name="tp_base_contact_list_normalize_group ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-normalize-group"/>
3494 <function name="TpBaseContactListDupContactGroupsFunc ()" link="telepathy-glib-base-contact-list.html#TpBaseContactListDupContactGroupsFunc"/>
3495 <function name="tp_base_contact_list_dup_contact_groups ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-dup-contact-groups"/>
3496 <function name="TpBaseContactListDupGroupsFunc ()" link="telepathy-glib-base-contact-list.html#TpBaseContactListDupGroupsFunc"/>
3497 <function name="tp_base_contact_list_dup_groups ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-dup-groups"/>
3498 <function name="TpBaseContactListDupGroupMembersFunc ()" link="telepathy-glib-base-contact-list.html#TpBaseContactListDupGroupMembersFunc"/>
3499 <function name="tp_base_contact_list_dup_group_members ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-dup-group-members"/>
3500 <function name="tp_base_contact_list_group_renamed ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-group-renamed"/>
3501 <function name="tp_base_contact_list_groups_changed ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-groups-changed"/>
3502 <function name="tp_base_contact_list_one_contact_groups_changed ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-one-contact-groups-changed"/>
3503 <function name="tp_base_contact_list_groups_created ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-groups-created"/>
3504 <function name="tp_base_contact_list_groups_removed ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-groups-removed"/>
3505 <function name="tp_base_contact_list_has_disjoint_groups ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-has-disjoint-groups"/>
3506 <function name="TP_TYPE_MUTABLE_CONTACT_GROUP_LIST" link="telepathy-glib-base-contact-list.html#TP-TYPE-MUTABLE-CONTACT-GROUP-LIST:CAPS"/>
3507 <function name="struct TpMutableContactGroupListInterface" link="telepathy-glib-base-contact-list.html#TpMutableContactGroupListInterface"/>
3508 <function name="TpBaseContactListSetContactGroupsFunc ()" link="telepathy-glib-base-contact-list.html#TpBaseContactListSetContactGroupsFunc"/>
3509 <function name="tp_base_contact_list_set_contact_groups_async ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-set-contact-groups-async"/>
3510 <function name="tp_base_contact_list_set_contact_groups_finish ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-set-contact-groups-finish"/>
3511 <function name="TpBaseContactListGroupContactsFunc ()" link="telepathy-glib-base-contact-list.html#TpBaseContactListGroupContactsFunc"/>
3512 <function name="tp_base_contact_list_add_to_group_async ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-add-to-group-async"/>
3513 <function name="tp_base_contact_list_add_to_group_finish ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-add-to-group-finish"/>
3514 <function name="tp_base_contact_list_remove_from_group_async ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-remove-from-group-async"/>
3515 <function name="tp_base_contact_list_remove_from_group_finish ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-remove-from-group-finish"/>
3516 <function name="tp_base_contact_list_set_group_members_async ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-set-group-members-async"/>
3517 <function name="tp_base_contact_list_set_group_members_finish ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-set-group-members-finish"/>
3518 <function name="TpBaseContactListRemoveGroupFunc ()" link="telepathy-glib-base-contact-list.html#TpBaseContactListRemoveGroupFunc"/>
3519 <function name="tp_base_contact_list_remove_group_async ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-remove-group-async"/>
3520 <function name="tp_base_contact_list_remove_group_finish ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-remove-group-finish"/>
3521 <function name="TpBaseContactListRenameGroupFunc ()" link="telepathy-glib-base-contact-list.html#TpBaseContactListRenameGroupFunc"/>
3522 <function name="tp_base_contact_list_rename_group_async ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-rename-group-async"/>
3523 <function name="tp_base_contact_list_rename_group_finish ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-rename-group-finish"/>
3524 <function name="tp_base_contact_list_get_group_storage ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-get-group-storage"/>
3525 <function name="TP_TYPE_BLOCKABLE_CONTACT_LIST" link="telepathy-glib-base-contact-list.html#TP-TYPE-BLOCKABLE-CONTACT-LIST:CAPS"/>
3526 <function name="struct TpBlockableContactListInterface" link="telepathy-glib-base-contact-list.html#TpBlockableContactListInterface"/>
3527 <function name="TpBaseContactListBlockContactsWithAbuseFunc ()" link="telepathy-glib-base-contact-list.html#TpBaseContactListBlockContactsWithAbuseFunc"/>
3528 <function name="tp_base_contact_list_can_block ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-can-block"/>
3529 <function name="tp_base_contact_list_dup_blocked_contacts ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-dup-blocked-contacts"/>
3530 <function name="tp_base_contact_list_block_contacts_async ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-block-contacts-async"/>
3531 <function name="tp_base_contact_list_block_contacts_finish ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-block-contacts-finish"/>
3532 <function name="tp_base_contact_list_block_contacts_with_abuse_async ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-block-contacts-with-abuse-async"/>
3533 <function name="tp_base_contact_list_block_contacts_with_abuse_finish ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-block-contacts-with-abuse-finish"/>
3534 <function name="tp_base_contact_list_unblock_contacts_async ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-unblock-contacts-async"/>
3535 <function name="tp_base_contact_list_unblock_contacts_finish ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-unblock-contacts-finish"/>
3536 <function name="tp_base_contact_list_contact_blocking_changed ()" link="telepathy-glib-base-contact-list.html#tp-base-contact-list-contact-blocking-changed"/>
3537 <function name="The &quot;connection&quot; property" link="telepathy-glib-base-contact-list.html#TpBaseContactList--connection"/>
3538 <function name="TpContactsMixin" link="telepathy-glib-TpContactsMixin.html#TpContactsMixin"/>
3539 <function name="struct TpContactsMixinClass" link="telepathy-glib-TpContactsMixin.html#TpContactsMixinClass"/>
3540 <function name="tp_contacts_mixin_add_contact_attributes_iface ()" link="telepathy-glib-TpContactsMixin.html#tp-contacts-mixin-add-contact-attributes-iface"/>
3541 <function name="tp_contacts_mixin_class_init ()" link="telepathy-glib-TpContactsMixin.html#tp-contacts-mixin-class-init"/>
3542 <function name="tp_contacts_mixin_finalize ()" link="telepathy-glib-TpContactsMixin.html#tp-contacts-mixin-finalize"/>
3543 <function name="tp_contacts_mixin_iface_init ()" link="telepathy-glib-TpContactsMixin.html#tp-contacts-mixin-iface-init"/>
3544 <function name="tp_contacts_mixin_init ()" link="telepathy-glib-TpContactsMixin.html#tp-contacts-mixin-init"/>
3545 <function name="tp_contacts_mixin_set_contact_attribute ()" link="telepathy-glib-TpContactsMixin.html#tp-contacts-mixin-set-contact-attribute"/>
3546 <function name="tp_contacts_mixin_get_contact_attributes ()" link="telepathy-glib-TpContactsMixin.html#tp-contacts-mixin-get-contact-attributes"/>
3547 <function name="TpContactsMixinFillContactAttributesFunc ()" link="telepathy-glib-TpContactsMixin.html#TpContactsMixinFillContactAttributesFunc"/>
3548 <function name="enum TpDBusPropertiesMixinFlags" link="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinFlags"/>
3549 <function name="TP_TYPE_DBUS_PROPERTIES_MIXIN_FLAGS" link="telepathy-glib-dbus-properties-mixin.html#TP-TYPE-DBUS-PROPERTIES-MIXIN-FLAGS:CAPS"/>
3550 <function name="TpDBusPropertiesMixinIfaceInfo" link="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinIfaceInfo"/>
3551 <function name="TpDBusPropertiesMixinPropInfo" link="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinPropInfo"/>
3552 <function name="tp_svc_interface_set_dbus_properties_info ()" link="telepathy-glib-dbus-properties-mixin.html#tp-svc-interface-set-dbus-properties-info"/>
3553 <function name="TpDBusPropertiesMixinClass" link="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinClass"/>
3554 <function name="TpDBusPropertiesMixinIfaceImpl" link="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinIfaceImpl"/>
3555 <function name="TpDBusPropertiesMixinPropImpl" link="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinPropImpl"/>
3556 <function name="TpDBusPropertiesMixinGetter ()" link="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinGetter"/>
3557 <function name="tp_dbus_properties_mixin_getter_gobject_properties ()" link="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-getter-gobject-properties"/>
3558 <function name="TpDBusPropertiesMixinSetter ()" link="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinSetter"/>
3559 <function name="tp_dbus_properties_mixin_setter_gobject_properties ()" link="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-setter-gobject-properties"/>
3560 <function name="tp_dbus_properties_mixin_class_init ()" link="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-class-init"/>
3561 <function name="tp_dbus_properties_mixin_implement_interface ()" link="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-implement-interface"/>
3562 <function name="tp_dbus_properties_mixin_iface_init ()" link="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-iface-init"/>
3563 <function name="tp_dbus_properties_mixin_get ()" link="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-get"/>
3564 <function name="tp_dbus_properties_mixin_fill_properties_hash ()" link="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-fill-properties-hash"/>
3565 <function name="tp_dbus_properties_mixin_make_properties_hash ()" link="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-make-properties-hash"/>
3566 <function name="TpExportableChannelFunc ()" link="TpExportableChannel.html#TpExportableChannelFunc"/>
3567 <function name="TpExportableChannel" link="TpExportableChannel.html#TpExportableChannel-struct"/>
3568 <function name="struct TpExportableChannelIface" link="TpExportableChannel.html#TpExportableChannelIface"/>
3569 <function name="The &quot;channel-destroyed&quot; property" link="TpExportableChannel.html#TpExportableChannel--channel-destroyed"/>
3570 <function name="The &quot;channel-properties&quot; property" link="TpExportableChannel.html#TpExportableChannel--channel-properties"/>
3571 <function name="The &quot;object-path&quot; property" link="TpExportableChannel.html#TpExportableChannel--object-path"/>
3572 <function name="TpBaseChannel" link="TpBaseChannel.html#TpBaseChannel-struct"/>
3573 <function name="struct TpBaseChannelClass" link="TpBaseChannel.html#TpBaseChannelClass"/>
3574 <function name="TpBaseChannelFillPropertiesFunc ()" link="TpBaseChannel.html#TpBaseChannelFillPropertiesFunc"/>
3575 <function name="TpBaseChannelCloseFunc ()" link="TpBaseChannel.html#TpBaseChannelCloseFunc"/>
3576 <function name="TpBaseChannelGetPathFunc ()" link="TpBaseChannel.html#TpBaseChannelGetPathFunc"/>
3577 <function name="tp_base_channel_register ()" link="TpBaseChannel.html#tp-base-channel-register"/>
3578 <function name="tp_base_channel_close ()" link="TpBaseChannel.html#tp-base-channel-close"/>
3579 <function name="tp_base_channel_destroyed ()" link="TpBaseChannel.html#tp-base-channel-destroyed"/>
3580 <function name="tp_base_channel_reopened ()" link="TpBaseChannel.html#tp-base-channel-reopened"/>
3581 <function name="tp_base_channel_get_object_path ()" link="TpBaseChannel.html#tp-base-channel-get-object-path"/>
3582 <function name="tp_base_channel_get_connection ()" link="TpBaseChannel.html#tp-base-channel-get-connection"/>
3583 <function name="tp_base_channel_get_target_handle ()" link="TpBaseChannel.html#tp-base-channel-get-target-handle"/>
3584 <function name="tp_base_channel_get_initiator ()" link="TpBaseChannel.html#tp-base-channel-get-initiator"/>
3585 <function name="tp_base_channel_is_requested ()" link="TpBaseChannel.html#tp-base-channel-is-requested"/>
3586 <function name="tp_base_channel_is_registered ()" link="TpBaseChannel.html#tp-base-channel-is-registered"/>
3587 <function name="tp_base_channel_is_destroyed ()" link="TpBaseChannel.html#tp-base-channel-is-destroyed"/>
3588 <function name="The &quot;connection&quot; property" link="TpBaseChannel.html#TpBaseChannel--connection"/>
3589 <function name="The &quot;initiator-handle&quot; property" link="TpBaseChannel.html#TpBaseChannel--initiator-handle"/>
3590 <function name="The &quot;initiator-id&quot; property" link="TpBaseChannel.html#TpBaseChannel--initiator-id"/>
3591 <function name="The &quot;interfaces&quot; property" link="TpBaseChannel.html#TpBaseChannel--interfaces"/>
3592 <function name="The &quot;requested&quot; property" link="TpBaseChannel.html#TpBaseChannel--requested"/>
3593 <function name="The &quot;target-id&quot; property" link="TpBaseChannel.html#TpBaseChannel--target-id"/>
3594 <function name="struct TpPresenceStatusOptionalArgumentSpec" link="telepathy-glib-TpPresenceMixin.html#TpPresenceStatusOptionalArgumentSpec"/>
3595 <function name="struct TpPresenceStatusSpec" link="telepathy-glib-TpPresenceMixin.html#TpPresenceStatusSpec"/>
3596 <function name="TpPresenceMixinStatusAvailableFunc ()" link="telepathy-glib-TpPresenceMixin.html#TpPresenceMixinStatusAvailableFunc"/>
3597 <function name="TpPresenceMixinGetContactStatusesFunc ()" link="telepathy-glib-TpPresenceMixin.html#TpPresenceMixinGetContactStatusesFunc"/>
3598 <function name="TpPresenceMixinSetOwnStatusFunc ()" link="telepathy-glib-TpPresenceMixin.html#TpPresenceMixinSetOwnStatusFunc"/>
3599 <function name="TpPresenceMixinGetMaximumStatusMessageLengthFunc ()" link="telepathy-glib-TpPresenceMixin.html#TpPresenceMixinGetMaximumStatusMessageLengthFunc"/>
3600 <function name="struct TpPresenceStatus" link="telepathy-glib-TpPresenceMixin.html#TpPresenceStatus"/>
3601 <function name="tp_presence_status_new ()" link="telepathy-glib-TpPresenceMixin.html#tp-presence-status-new"/>
3602 <function name="tp_presence_status_free ()" link="telepathy-glib-TpPresenceMixin.html#tp-presence-status-free"/>
3603 <function name="TpPresenceMixin" link="telepathy-glib-TpPresenceMixin.html#TpPresenceMixin"/>
3604 <function name="struct TpPresenceMixinClass" link="telepathy-glib-TpPresenceMixin.html#TpPresenceMixinClass"/>
3605 <function name="tp_presence_mixin_class_init ()" link="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-class-init"/>
3606 <function name="tp_presence_mixin_init ()" link="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-init"/>
3607 <function name="tp_presence_mixin_finalize ()" link="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-finalize"/>
3608 <function name="tp_presence_mixin_emit_presence_update ()" link="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-emit-presence-update"/>
3609 <function name="tp_presence_mixin_emit_one_presence_update ()" link="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-emit-one-presence-update"/>
3610 <function name="tp_presence_mixin_iface_init ()" link="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-iface-init"/>
3611 <function name="tp_presence_mixin_simple_presence_iface_init ()" link="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-simple-presence-iface-init"/>
3612 <function name="tp_presence_mixin_simple_presence_init_dbus_properties ()" link="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-simple-presence-init-dbus-properties"/>
3613 <function name="tp_presence_mixin_simple_presence_register_with_contacts_mixin ()" link="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-simple-presence-register-with-contacts-mixin"/>
3614 <function name="TpPropertySignature" link="telepathy-glib-TpPropertiesMixin.html#TpPropertySignature"/>
3615 <function name="TpProperty" link="telepathy-glib-TpPropertiesMixin.html#TpProperty"/>
3616 <function name="TpPropertiesContext" link="telepathy-glib-TpPropertiesMixin.html#TpPropertiesContext"/>
3617 <function name="TpPropertiesSetFunc ()" link="telepathy-glib-TpPropertiesMixin.html#TpPropertiesSetFunc"/>
3618 <function name="struct TpPropertiesMixin" link="telepathy-glib-TpPropertiesMixin.html#TpPropertiesMixin"/>
3619 <function name="struct TpPropertiesMixinClass" link="telepathy-glib-TpPropertiesMixin.html#TpPropertiesMixinClass"/>
3620 <function name="tp_properties_mixin_class_init ()" link="telepathy-glib-TpPropertiesMixin.html#tp-properties-mixin-class-init"/>
3621 <function name="tp_properties_mixin_init ()" link="telepathy-glib-TpPropertiesMixin.html#tp-properties-mixin-init"/>
3622 <function name="tp_properties_mixin_finalize ()" link="telepathy-glib-TpPropertiesMixin.html#tp-properties-mixin-finalize"/>
3623 <function name="tp_properties_mixin_list_properties ()" link="telepathy-glib-TpPropertiesMixin.html#tp-properties-mixin-list-properties"/>
3624 <function name="tp_properties_mixin_get_properties ()" link="telepathy-glib-TpPropertiesMixin.html#tp-properties-mixin-get-properties"/>
3625 <function name="tp_properties_mixin_set_properties ()" link="telepathy-glib-TpPropertiesMixin.html#tp-properties-mixin-set-properties"/>
3626 <function name="tp_properties_mixin_has_property ()" link="telepathy-glib-TpPropertiesMixin.html#tp-properties-mixin-has-property"/>
3627 <function name="tp_properties_context_has ()" link="telepathy-glib-TpPropertiesMixin.html#tp-properties-context-has"/>
3628 <function name="tp_properties_context_has_other_than ()" link="telepathy-glib-TpPropertiesMixin.html#tp-properties-context-has-other-than"/>
3629 <function name="tp_properties_context_get ()" link="telepathy-glib-TpPropertiesMixin.html#tp-properties-context-get"/>
3630 <function name="tp_properties_context_get_value_count ()" link="telepathy-glib-TpPropertiesMixin.html#tp-properties-context-get-value-count"/>
3631 <function name="tp_properties_context_remove ()" link="telepathy-glib-TpPropertiesMixin.html#tp-properties-context-remove"/>
3632 <function name="tp_properties_context_return ()" link="telepathy-glib-TpPropertiesMixin.html#tp-properties-context-return"/>
3633 <function name="tp_properties_context_return_if_done ()" link="telepathy-glib-TpPropertiesMixin.html#tp-properties-context-return-if-done"/>
3634 <function name="tp_properties_mixin_change_value ()" link="telepathy-glib-TpPropertiesMixin.html#tp-properties-mixin-change-value"/>
3635 <function name="tp_properties_mixin_change_flags ()" link="telepathy-glib-TpPropertiesMixin.html#tp-properties-mixin-change-flags"/>
3636 <function name="tp_properties_mixin_emit_changed ()" link="telepathy-glib-TpPropertiesMixin.html#tp-properties-mixin-emit-changed"/>
3637 <function name="tp_properties_mixin_emit_flags ()" link="telepathy-glib-TpPropertiesMixin.html#tp-properties-mixin-emit-flags"/>
3638 <function name="tp_properties_mixin_is_readable ()" link="telepathy-glib-TpPropertiesMixin.html#tp-properties-mixin-is-readable"/>
3639 <function name="tp_properties_mixin_is_writable ()" link="telepathy-glib-TpPropertiesMixin.html#tp-properties-mixin-is-writable"/>
3640 <function name="tp_properties_mixin_iface_init ()" link="telepathy-glib-TpPropertiesMixin.html#tp-properties-mixin-iface-init"/>
3641 <function name="TP_TYPE_PROPERTY_INFO_STRUCT" link="telepathy-glib-TpPropertiesMixin.html#TP-TYPE-PROPERTY-INFO-STRUCT:CAPS"/>
3642 <function name="TP_TYPE_PROPERTY_INFO_LIST" link="telepathy-glib-TpPropertiesMixin.html#TP-TYPE-PROPERTY-INFO-LIST:CAPS"/>
3643 <function name="TP_TYPE_PROPERTY_VALUE_STRUCT" link="telepathy-glib-TpPropertiesMixin.html#TP-TYPE-PROPERTY-VALUE-STRUCT:CAPS"/>
3644 <function name="TP_TYPE_PROPERTY_VALUE_LIST" link="telepathy-glib-TpPropertiesMixin.html#TP-TYPE-PROPERTY-VALUE-LIST:CAPS"/>
3645 <function name="TP_TYPE_PROPERTY_FLAGS_STRUCT" link="telepathy-glib-TpPropertiesMixin.html#TP-TYPE-PROPERTY-FLAGS-STRUCT:CAPS"/>
3646 <function name="TP_TYPE_PROPERTY_FLAGS_LIST" link="telepathy-glib-TpPropertiesMixin.html#TP-TYPE-PROPERTY-FLAGS-LIST:CAPS"/>
3647 <function name="TP_HAS_GROUP_MIXIN()" link="telepathy-glib-TpGroupMixin.html#TP-HAS-GROUP-MIXIN:CAPS"/>
3648 <function name="TP_HAS_GROUP_MIXIN_CLASS()" link="telepathy-glib-TpGroupMixin.html#TP-HAS-GROUP-MIXIN-CLASS:CAPS"/>
3649 <function name="TpGroupMixinAddMemberFunc ()" link="telepathy-glib-TpGroupMixin.html#TpGroupMixinAddMemberFunc"/>
3650 <function name="TpGroupMixinRemMemberFunc ()" link="telepathy-glib-TpGroupMixin.html#TpGroupMixinRemMemberFunc"/>
3651 <function name="TpGroupMixinRemMemberWithReasonFunc ()" link="telepathy-glib-TpGroupMixin.html#TpGroupMixinRemMemberWithReasonFunc"/>
3652 <function name="struct TpGroupMixin" link="telepathy-glib-TpGroupMixin.html#TpGroupMixin"/>
3653 <function name="struct TpGroupMixinClass" link="telepathy-glib-TpGroupMixin.html#TpGroupMixinClass"/>
3654 <function name="tp_group_mixin_class_init ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-class-init"/>
3655 <function name="tp_group_mixin_class_allow_self_removal ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-class-allow-self-removal"/>
3656 <function name="tp_group_mixin_class_set_remove_with_reason_func ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-class-set-remove-with-reason-func"/>
3657 <function name="tp_group_mixin_init ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-init"/>
3658 <function name="tp_group_mixin_finalize ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-finalize"/>
3659 <function name="tp_group_mixin_get_self_handle ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-get-self-handle"/>
3660 <function name="tp_group_mixin_get_group_flags ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-get-group-flags"/>
3661 <function name="tp_group_mixin_add_members ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-add-members"/>
3662 <function name="tp_group_mixin_remove_members ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-remove-members"/>
3663 <function name="tp_group_mixin_remove_members_with_reason ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-remove-members-with-reason"/>
3664 <function name="tp_group_mixin_get_members ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-get-members"/>
3665 <function name="tp_group_mixin_get_local_pending_members ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-get-local-pending-members"/>
3666 <function name="tp_group_mixin_get_local_pending_members_with_info ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-get-local-pending-members-with-info"/>
3667 <function name="tp_group_mixin_get_remote_pending_members ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-get-remote-pending-members"/>
3668 <function name="tp_group_mixin_get_all_members ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-get-all-members"/>
3669 <function name="tp_group_mixin_get_handle_owners ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-get-handle-owners"/>
3670 <function name="tp_group_mixin_change_flags ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-change-flags"/>
3671 <function name="tp_group_mixin_change_members ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-change-members"/>
3672 <function name="tp_group_mixin_change_members_detailed ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-change-members-detailed"/>
3673 <function name="tp_group_mixin_add_handle_owner ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-add-handle-owner"/>
3674 <function name="tp_group_mixin_iface_init ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-iface-init"/>
3675 <function name="tp_group_mixin_add_handle_owners ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-add-handle-owners"/>
3676 <function name="tp_group_mixin_get_dbus_property ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-get-dbus-property"/>
3677 <function name="tp_group_mixin_init_dbus_properties ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-init-dbus-properties"/>
3678 <function name="tp_group_mixin_change_self_handle ()" link="telepathy-glib-TpGroupMixin.html#tp-group-mixin-change-self-handle"/>
3679 <function name="tp_external_group_mixin_iface_init ()" link="telepathy-glib-TpGroupMixin.html#tp-external-group-mixin-iface-init"/>
3680 <function name="tp_external_group_mixin_init ()" link="telepathy-glib-TpGroupMixin.html#tp-external-group-mixin-init"/>
3681 <function name="tp_external_group_mixin_finalize ()" link="telepathy-glib-TpGroupMixin.html#tp-external-group-mixin-finalize"/>
3682 <function name="tp_external_group_mixin_init_dbus_properties ()" link="telepathy-glib-TpGroupMixin.html#tp-external-group-mixin-init-dbus-properties"/>
3683 <function name="tp_external_group_mixin_get_dbus_property ()" link="telepathy-glib-TpGroupMixin.html#tp-external-group-mixin-get-dbus-property"/>
3684 <function name="struct TpMessageMixin" link="telepathy-glib-TpMessageMixin.html#TpMessageMixin"/>
3685 <function name="TpMessageMixinSendImpl ()" link="telepathy-glib-TpMessageMixin.html#TpMessageMixinSendImpl"/>
3686 <function name="tp_message_mixin_finalize ()" link="telepathy-glib-TpMessageMixin.html#tp-message-mixin-finalize"/>
3687 <function name="tp_message_mixin_implement_sending ()" link="telepathy-glib-TpMessageMixin.html#tp-message-mixin-implement-sending"/>
3688 <function name="tp_message_mixin_init ()" link="telepathy-glib-TpMessageMixin.html#tp-message-mixin-init"/>
3689 <function name="tp_message_mixin_init_dbus_properties ()" link="telepathy-glib-TpMessageMixin.html#tp-message-mixin-init-dbus-properties"/>
3690 <function name="tp_message_mixin_messages_iface_init ()" link="telepathy-glib-TpMessageMixin.html#tp-message-mixin-messages-iface-init"/>
3691 <function name="tp_message_mixin_get_dbus_property ()" link="telepathy-glib-TpMessageMixin.html#tp-message-mixin-get-dbus-property"/>
3692 <function name="tp_message_mixin_sent ()" link="telepathy-glib-TpMessageMixin.html#tp-message-mixin-sent"/>
3693 <function name="tp_message_mixin_set_rescued ()" link="telepathy-glib-TpMessageMixin.html#tp-message-mixin-set-rescued"/>
3694 <function name="tp_message_mixin_take_received ()" link="telepathy-glib-TpMessageMixin.html#tp-message-mixin-take-received"/>
3695 <function name="tp_message_mixin_has_pending_messages ()" link="telepathy-glib-TpMessageMixin.html#tp-message-mixin-has-pending-messages"/>
3696 <function name="tp_message_mixin_clear ()" link="telepathy-glib-TpMessageMixin.html#tp-message-mixin-clear"/>
3697 <function name="tp_message_mixin_text_iface_init ()" link="telepathy-glib-TpMessageMixin.html#tp-message-mixin-text-iface-init"/>
3698 <function name="TpMessage" link="TpMessage.html#TpMessage-struct"/>
3699 <function name="tp_message_count_parts ()" link="TpMessage.html#tp-message-count-parts"/>
3700 <function name="tp_message_peek ()" link="TpMessage.html#tp-message-peek"/>
3701 <function name="tp_message_to_text ()" link="TpMessage.html#tp-message-to-text"/>
3702 <function name="tp_message_get_message_type ()" link="TpMessage.html#tp-message-get-message-type"/>
3703 <function name="tp_message_get_received_timestamp ()" link="TpMessage.html#tp-message-get-received-timestamp"/>
3704 <function name="tp_message_get_sent_timestamp ()" link="TpMessage.html#tp-message-get-sent-timestamp"/>
3705 <function name="tp_message_get_specific_to_interface ()" link="TpMessage.html#tp-message-get-specific-to-interface"/>
3706 <function name="tp_message_get_supersedes ()" link="TpMessage.html#tp-message-get-supersedes"/>
3707 <function name="tp_message_get_token ()" link="TpMessage.html#tp-message-get-token"/>
3708 <function name="tp_message_is_delivery_report ()" link="TpMessage.html#tp-message-is-delivery-report"/>
3709 <function name="tp_message_is_rescued ()" link="TpMessage.html#tp-message-is-rescued"/>
3710 <function name="tp_message_is_scrollback ()" link="TpMessage.html#tp-message-is-scrollback"/>
3711 <function name="tp_message_get_pending_message_id ()" link="TpMessage.html#tp-message-get-pending-message-id"/>
3712 <function name="tp_message_is_mutable ()" link="TpMessage.html#tp-message-is-mutable"/>
3713 <function name="tp_message_append_part ()" link="TpMessage.html#tp-message-append-part"/>
3714 <function name="tp_message_delete_key ()" link="TpMessage.html#tp-message-delete-key"/>
3715 <function name="tp_message_delete_part ()" link="TpMessage.html#tp-message-delete-part"/>
3716 <function name="tp_message_set ()" link="TpMessage.html#tp-message-set"/>
3717 <function name="tp_message_set_boolean ()" link="TpMessage.html#tp-message-set-boolean"/>
3718 <function name="tp_message_set_bytes ()" link="TpMessage.html#tp-message-set-bytes"/>
3719 <function name="tp_message_set_int16()" link="TpMessage.html#tp-message-set-int16"/>
3720 <function name="tp_message_set_int32 ()" link="TpMessage.html#tp-message-set-int32"/>
3721 <function name="tp_message_set_int64 ()" link="TpMessage.html#tp-message-set-int64"/>
3722 <function name="tp_message_set_string ()" link="TpMessage.html#tp-message-set-string"/>
3723 <function name="tp_message_set_string_printf ()" link="TpMessage.html#tp-message-set-string-printf"/>
3724 <function name="tp_message_set_uint16()" link="TpMessage.html#tp-message-set-uint16"/>
3725 <function name="tp_message_set_uint32 ()" link="TpMessage.html#tp-message-set-uint32"/>
3726 <function name="tp_message_set_uint64 ()" link="TpMessage.html#tp-message-set-uint64"/>
3727 <function name="tp_message_new ()" link="TpMessage.html#tp-message-new"/>
3728 <function name="tp_message_destroy ()" link="TpMessage.html#tp-message-destroy"/>
3729 <function name="tp_message_ref_handle ()" link="TpMessage.html#tp-message-ref-handle"/>
3730 <function name="tp_message_set_handle ()" link="TpMessage.html#tp-message-set-handle"/>
3731 <function name="tp_message_take_message ()" link="TpMessage.html#tp-message-take-message"/>
3732 <function name="TpCMMessage" link="TpCMMessage.html#TpCMMessage-struct"/>
3733 <function name="tp_cm_message_new ()" link="TpCMMessage.html#tp-cm-message-new"/>
3734 <function name="tp_cm_message_new_text ()" link="TpCMMessage.html#tp-cm-message-new-text"/>
3735 <function name="tp_cm_message_set_message ()" link="TpCMMessage.html#tp-cm-message-set-message"/>
3736 <function name="tp_cm_message_take_message ()" link="TpCMMessage.html#tp-cm-message-take-message"/>
3737 <function name="tp_cm_message_get_sender ()" link="TpCMMessage.html#tp-cm-message-get-sender"/>
3738 <function name="tp_cm_message_set_sender ()" link="TpCMMessage.html#tp-cm-message-set-sender"/>
3739 <function name="TpBasePasswordChannel" link="telepathy-glib-base-password-channel.html#TpBasePasswordChannel-struct"/>
3740 <function name="The &quot;authentication-method&quot; property" link="telepathy-glib-base-password-channel.html#TpBasePasswordChannel--authentication-method"/>
3741 <function name="The &quot;authorization-identity&quot; property" link="telepathy-glib-base-password-channel.html#TpBasePasswordChannel--authorization-identity"/>
3742 <function name="The &quot;available-mechanisms&quot; property" link="telepathy-glib-base-password-channel.html#TpBasePasswordChannel--available-mechanisms"/>
3743 <function name="The &quot;can-try-again&quot; property" link="telepathy-glib-base-password-channel.html#TpBasePasswordChannel--can-try-again"/>
3744 <function name="The &quot;default-realm&quot; property" link="telepathy-glib-base-password-channel.html#TpBasePasswordChannel--default-realm"/>
3745 <function name="The &quot;default-username&quot; property" link="telepathy-glib-base-password-channel.html#TpBasePasswordChannel--default-username"/>
3746 <function name="The &quot;has-initial-data&quot; property" link="telepathy-glib-base-password-channel.html#TpBasePasswordChannel--has-initial-data"/>
3747 <function name="The &quot;may-save-response&quot; property" link="telepathy-glib-base-password-channel.html#TpBasePasswordChannel--may-save-response"/>
3748 <function name="The &quot;sasl-error&quot; property" link="telepathy-glib-base-password-channel.html#TpBasePasswordChannel--sasl-error"/>
3749 <function name="The &quot;sasl-error-details&quot; property" link="telepathy-glib-base-password-channel.html#TpBasePasswordChannel--sasl-error-details"/>
3750 <function name="The &quot;sasl-status&quot; property" link="telepathy-glib-base-password-channel.html#TpBasePasswordChannel--sasl-status"/>
3751 <function name="The &quot;finished&quot; signal" link="telepathy-glib-base-password-channel.html#TpBasePasswordChannel-finished"/>
3752 <function name="TpSimplePasswordManager" link="telepathy-glib-simple-password-manager.html#TpSimplePasswordManager-struct"/>
3753 <function name="tp_simple_password_manager_new ()" link="telepathy-glib-simple-password-manager.html#tp-simple-password-manager-new"/>
3754 <function name="tp_simple_password_manager_prompt_async ()" link="telepathy-glib-simple-password-manager.html#tp-simple-password-manager-prompt-async"/>
3755 <function name="tp_simple_password_manager_prompt_finish ()" link="telepathy-glib-simple-password-manager.html#tp-simple-password-manager-prompt-finish"/>
3756 <function name="tp_simple_password_manager_prompt_for_channel_async ()" link="telepathy-glib-simple-password-manager.html#tp-simple-password-manager-prompt-for-channel-async"/>
3757 <function name="tp_simple_password_manager_prompt_for_channel_finish ()" link="telepathy-glib-simple-password-manager.html#tp-simple-password-manager-prompt-for-channel-finish"/>
3758 <function name="The &quot;connection&quot; property" link="telepathy-glib-simple-password-manager.html#TpSimplePasswordManager--connection"/>
3759 <function name="TpBaseClient" link="telepathy-glib-base-client.html#TpBaseClient-struct"/>
3760 <function name="struct TpBaseClientClass" link="telepathy-glib-base-client.html#TpBaseClientClass"/>
3761 <function name="tp_base_client_add_observer_filter ()" link="telepathy-glib-base-client.html#tp-base-client-add-observer-filter"/>
3762 <function name="tp_base_client_take_observer_filter ()" link="telepathy-glib-base-client.html#tp-base-client-take-observer-filter"/>
3763 <function name="tp_base_client_set_observer_recover ()" link="telepathy-glib-base-client.html#tp-base-client-set-observer-recover"/>
3764 <function name="tp_base_client_set_observer_delay_approvers ()" link="telepathy-glib-base-client.html#tp-base-client-set-observer-delay-approvers"/>
3765 <function name="TpBaseClientClassObserveChannelsImpl ()" link="telepathy-glib-base-client.html#TpBaseClientClassObserveChannelsImpl"/>
3766 <function name="tp_base_client_implement_observe_channels ()" link="telepathy-glib-base-client.html#tp-base-client-implement-observe-channels"/>
3767 <function name="tp_base_client_add_approver_filter ()" link="telepathy-glib-base-client.html#tp-base-client-add-approver-filter"/>
3768 <function name="tp_base_client_take_approver_filter ()" link="telepathy-glib-base-client.html#tp-base-client-take-approver-filter"/>
3769 <function name="TpBaseClientClassAddDispatchOperationImpl ()" link="telepathy-glib-base-client.html#TpBaseClientClassAddDispatchOperationImpl"/>
3770 <function name="tp_base_client_implement_add_dispatch_operation ()" link="telepathy-glib-base-client.html#tp-base-client-implement-add-dispatch-operation"/>
3771 <function name="tp_base_client_add_handler_capabilities ()" link="telepathy-glib-base-client.html#tp-base-client-add-handler-capabilities"/>
3772 <function name="tp_base_client_add_handler_capabilities_varargs ()" link="telepathy-glib-base-client.html#tp-base-client-add-handler-capabilities-varargs"/>
3773 <function name="tp_base_client_add_handler_capability ()" link="telepathy-glib-base-client.html#tp-base-client-add-handler-capability"/>
3774 <function name="tp_base_client_add_handler_filter ()" link="telepathy-glib-base-client.html#tp-base-client-add-handler-filter"/>
3775 <function name="tp_base_client_take_handler_filter ()" link="telepathy-glib-base-client.html#tp-base-client-take-handler-filter"/>
3776 <function name="tp_base_client_be_a_handler ()" link="telepathy-glib-base-client.html#tp-base-client-be-a-handler"/>
3777 <function name="TpBaseClientClassHandleChannelsImpl ()" link="telepathy-glib-base-client.html#TpBaseClientClassHandleChannelsImpl"/>
3778 <function name="tp_base_client_implement_handle_channels ()" link="telepathy-glib-base-client.html#tp-base-client-implement-handle-channels"/>
3779 <function name="tp_base_client_add_account_features ()" link="telepathy-glib-base-client.html#tp-base-client-add-account-features"/>
3780 <function name="tp_base_client_add_account_features_varargs ()" link="telepathy-glib-base-client.html#tp-base-client-add-account-features-varargs"/>
3781 <function name="tp_base_client_add_connection_features ()" link="telepathy-glib-base-client.html#tp-base-client-add-connection-features"/>
3782 <function name="tp_base_client_add_connection_features_varargs ()" link="telepathy-glib-base-client.html#tp-base-client-add-connection-features-varargs"/>
3783 <function name="tp_base_client_add_channel_features ()" link="telepathy-glib-base-client.html#tp-base-client-add-channel-features"/>
3784 <function name="tp_base_client_add_channel_features_varargs ()" link="telepathy-glib-base-client.html#tp-base-client-add-channel-features-varargs"/>
3785 <function name="tp_base_client_get_handled_channels ()" link="telepathy-glib-base-client.html#tp-base-client-get-handled-channels"/>
3786 <function name="tp_base_client_is_handling_channel ()" link="telepathy-glib-base-client.html#tp-base-client-is-handling-channel"/>
3787 <function name="tp_base_client_delegate_channels_async ()" link="telepathy-glib-base-client.html#tp-base-client-delegate-channels-async"/>
3788 <function name="tp_base_client_delegate_channels_finish ()" link="telepathy-glib-base-client.html#tp-base-client-delegate-channels-finish"/>
3789 <function name="TpBaseClientDelegatedChannelsCb ()" link="telepathy-glib-base-client.html#TpBaseClientDelegatedChannelsCb"/>
3790 <function name="tp_base_client_set_delegated_channels_callback ()" link="telepathy-glib-base-client.html#tp-base-client-set-delegated-channels-callback"/>
3791 <function name="tp_channel_dispatcher_present_channel_async ()" link="telepathy-glib-base-client.html#tp-channel-dispatcher-present-channel-async"/>
3792 <function name="tp_channel_dispatcher_present_channel_finish ()" link="telepathy-glib-base-client.html#tp-channel-dispatcher-present-channel-finish"/>
3793 <function name="tp_base_client_get_pending_requests ()" link="telepathy-glib-base-client.html#tp-base-client-get-pending-requests"/>
3794 <function name="tp_base_client_set_handler_bypass_approval ()" link="telepathy-glib-base-client.html#tp-base-client-set-handler-bypass-approval"/>
3795 <function name="tp_base_client_set_handler_request_notification ()" link="telepathy-glib-base-client.html#tp-base-client-set-handler-request-notification"/>
3796 <function name="tp_base_client_register ()" link="telepathy-glib-base-client.html#tp-base-client-register"/>
3797 <function name="tp_base_client_unregister ()" link="telepathy-glib-base-client.html#tp-base-client-unregister"/>
3798 <function name="tp_base_client_get_bus_name ()" link="telepathy-glib-base-client.html#tp-base-client-get-bus-name"/>
3799 <function name="tp_base_client_get_object_path ()" link="telepathy-glib-base-client.html#tp-base-client-get-object-path"/>
3800 <function name="tp_base_client_get_dbus_daemon ()" link="telepathy-glib-base-client.html#tp-base-client-get-dbus-daemon"/>
3801 <function name="tp_base_client_get_name ()" link="telepathy-glib-base-client.html#tp-base-client-get-name"/>
3802 <function name="tp_base_client_get_uniquify_name ()" link="telepathy-glib-base-client.html#tp-base-client-get-uniquify-name"/>
3803 <function name="tp_base_client_get_account_manager ()" link="telepathy-glib-base-client.html#tp-base-client-get-account-manager"/>
3804 <function name="tp_base_client_set_channel_factory ()" link="telepathy-glib-base-client.html#tp-base-client-set-channel-factory"/>
3805 <function name="tp_base_client_get_channel_factory ()" link="telepathy-glib-base-client.html#tp-base-client-get-channel-factory"/>
3806 <function name="The &quot;account-manager&quot; property" link="telepathy-glib-base-client.html#TpBaseClient--account-manager"/>
3807 <function name="The &quot;channel-factory&quot; property" link="telepathy-glib-base-client.html#TpBaseClient--channel-factory"/>
3808 <function name="The &quot;dbus-daemon&quot; property" link="telepathy-glib-base-client.html#TpBaseClient--dbus-daemon"/>
3809 <function name="The &quot;factory&quot; property" link="telepathy-glib-base-client.html#TpBaseClient--factory"/>
3810 <function name="The &quot;name&quot; property" link="telepathy-glib-base-client.html#TpBaseClient--name"/>
3811 <function name="The &quot;uniquify-name&quot; property" link="telepathy-glib-base-client.html#TpBaseClient--uniquify-name"/>
3812 <function name="The &quot;request-added&quot; signal" link="telepathy-glib-base-client.html#TpBaseClient-request-added"/>
3813 <function name="The &quot;request-removed&quot; signal" link="telepathy-glib-base-client.html#TpBaseClient-request-removed"/>
3814 <function name="TpObserveChannelsContext" link="telepathy-glib-observe-channels-context.html#TpObserveChannelsContext-struct"/>
3815 <function name="tp_observe_channels_context_accept ()" link="telepathy-glib-observe-channels-context.html#tp-observe-channels-context-accept"/>
3816 <function name="tp_observe_channels_context_delay ()" link="telepathy-glib-observe-channels-context.html#tp-observe-channels-context-delay"/>
3817 <function name="tp_observe_channels_context_fail ()" link="telepathy-glib-observe-channels-context.html#tp-observe-channels-context-fail"/>
3818 <function name="tp_observe_channels_context_is_recovering ()" link="telepathy-glib-observe-channels-context.html#tp-observe-channels-context-is-recovering"/>
3819 <function name="tp_observe_channels_context_get_requests ()" link="telepathy-glib-observe-channels-context.html#tp-observe-channels-context-get-requests"/>
3820 <function name="The &quot;account&quot; property" link="telepathy-glib-observe-channels-context.html#TpObserveChannelsContext--account"/>
3821 <function name="The &quot;channels&quot; property" link="telepathy-glib-observe-channels-context.html#TpObserveChannelsContext--channels"/>
3822 <function name="The &quot;connection&quot; property" link="telepathy-glib-observe-channels-context.html#TpObserveChannelsContext--connection"/>
3823 <function name="The &quot;dbus-context&quot; property" link="telepathy-glib-observe-channels-context.html#TpObserveChannelsContext--dbus-context"/>
3824 <function name="The &quot;dispatch-operation&quot; property" link="telepathy-glib-observe-channels-context.html#TpObserveChannelsContext--dispatch-operation"/>
3825 <function name="The &quot;observer-info&quot; property" link="telepathy-glib-observe-channels-context.html#TpObserveChannelsContext--observer-info"/>
3826 <function name="The &quot;requests&quot; property" link="telepathy-glib-observe-channels-context.html#TpObserveChannelsContext--requests"/>
3827 <function name="TpAddDispatchOperationContext" link="telepathy-glib-add-dispatch-operation-context.html#TpAddDispatchOperationContext-struct"/>
3828 <function name="tp_add_dispatch_operation_context_accept ()" link="telepathy-glib-add-dispatch-operation-context.html#tp-add-dispatch-operation-context-accept"/>
3829 <function name="tp_add_dispatch_operation_context_delay ()" link="telepathy-glib-add-dispatch-operation-context.html#tp-add-dispatch-operation-context-delay"/>
3830 <function name="tp_add_dispatch_operation_context_fail ()" link="telepathy-glib-add-dispatch-operation-context.html#tp-add-dispatch-operation-context-fail"/>
3831 <function name="The &quot;account&quot; property" link="telepathy-glib-add-dispatch-operation-context.html#TpAddDispatchOperationContext--account"/>
3832 <function name="The &quot;channels&quot; property" link="telepathy-glib-add-dispatch-operation-context.html#TpAddDispatchOperationContext--channels"/>
3833 <function name="The &quot;connection&quot; property" link="telepathy-glib-add-dispatch-operation-context.html#TpAddDispatchOperationContext--connection"/>
3834 <function name="The &quot;dbus-context&quot; property" link="telepathy-glib-add-dispatch-operation-context.html#TpAddDispatchOperationContext--dbus-context"/>
3835 <function name="The &quot;dispatch-operation&quot; property" link="telepathy-glib-add-dispatch-operation-context.html#TpAddDispatchOperationContext--dispatch-operation"/>
3836 <function name="TpHandleChannelsContext" link="telepathy-glib-handle-channels-context.html#TpHandleChannelsContext-struct"/>
3837 <function name="tp_handle_channels_context_accept ()" link="telepathy-glib-handle-channels-context.html#tp-handle-channels-context-accept"/>
3838 <function name="tp_handle_channels_context_delay ()" link="telepathy-glib-handle-channels-context.html#tp-handle-channels-context-delay"/>
3839 <function name="tp_handle_channels_context_fail ()" link="telepathy-glib-handle-channels-context.html#tp-handle-channels-context-fail"/>
3840 <function name="tp_handle_channels_context_get_handler_info ()" link="telepathy-glib-handle-channels-context.html#tp-handle-channels-context-get-handler-info"/>
3841 <function name="tp_handle_channels_context_get_requests ()" link="telepathy-glib-handle-channels-context.html#tp-handle-channels-context-get-requests"/>
3842 <function name="The &quot;account&quot; property" link="telepathy-glib-handle-channels-context.html#TpHandleChannelsContext--account"/>
3843 <function name="The &quot;channels&quot; property" link="telepathy-glib-handle-channels-context.html#TpHandleChannelsContext--channels"/>
3844 <function name="The &quot;connection&quot; property" link="telepathy-glib-handle-channels-context.html#TpHandleChannelsContext--connection"/>
3845 <function name="The &quot;dbus-context&quot; property" link="telepathy-glib-handle-channels-context.html#TpHandleChannelsContext--dbus-context"/>
3846 <function name="The &quot;handler-info&quot; property" link="telepathy-glib-handle-channels-context.html#TpHandleChannelsContext--handler-info"/>
3847 <function name="The &quot;requests-satisfied&quot; property" link="telepathy-glib-handle-channels-context.html#TpHandleChannelsContext--requests-satisfied"/>
3848 <function name="The &quot;user-action-time&quot; property" link="telepathy-glib-handle-channels-context.html#TpHandleChannelsContext--user-action-time"/>
3849 <function name="The &quot;done&quot; signal" link="telepathy-glib-handle-channels-context.html#TpHandleChannelsContext-done"/>
3850 <function name="TpSimpleObserver" link="telepathy-glib-simple-observer.html#TpSimpleObserver-struct"/>
3851 <function name="TpSimpleObserverObserveChannelsImpl ()" link="telepathy-glib-simple-observer.html#TpSimpleObserverObserveChannelsImpl"/>
3852 <function name="tp_simple_observer_new ()" link="telepathy-glib-simple-observer.html#tp-simple-observer-new"/>
3853 <function name="tp_simple_observer_new_with_am ()" link="telepathy-glib-simple-observer.html#tp-simple-observer-new-with-am"/>
3854 <function name="tp_simple_observer_new_with_factory ()" link="telepathy-glib-simple-observer.html#tp-simple-observer-new-with-factory"/>
3855 <function name="The &quot;callback&quot; property" link="telepathy-glib-simple-observer.html#TpSimpleObserver--callback"/>
3856 <function name="The &quot;destroy&quot; property" link="telepathy-glib-simple-observer.html#TpSimpleObserver--destroy"/>
3857 <function name="The &quot;recover&quot; property" link="telepathy-glib-simple-observer.html#TpSimpleObserver--recover"/>
3858 <function name="The &quot;user-data&quot; property" link="telepathy-glib-simple-observer.html#TpSimpleObserver--user-data"/>
3859 <function name="TpSimpleApprover" link="telepathy-glib-simple-approver.html#TpSimpleApprover-struct"/>
3860 <function name="TpSimpleApproverAddDispatchOperationImpl ()" link="telepathy-glib-simple-approver.html#TpSimpleApproverAddDispatchOperationImpl"/>
3861 <function name="tp_simple_approver_new ()" link="telepathy-glib-simple-approver.html#tp-simple-approver-new"/>
3862 <function name="tp_simple_approver_new_with_am ()" link="telepathy-glib-simple-approver.html#tp-simple-approver-new-with-am"/>
3863 <function name="tp_simple_approver_new_with_factory ()" link="telepathy-glib-simple-approver.html#tp-simple-approver-new-with-factory"/>
3864 <function name="The &quot;callback&quot; property" link="telepathy-glib-simple-approver.html#TpSimpleApprover--callback"/>
3865 <function name="The &quot;destroy&quot; property" link="telepathy-glib-simple-approver.html#TpSimpleApprover--destroy"/>
3866 <function name="The &quot;user-data&quot; property" link="telepathy-glib-simple-approver.html#TpSimpleApprover--user-data"/>
3867 <function name="TpSimpleHandler" link="telepathy-glib-simple-handler.html#TpSimpleHandler-struct"/>
3868 <function name="TpSimpleHandlerHandleChannelsImpl ()" link="telepathy-glib-simple-handler.html#TpSimpleHandlerHandleChannelsImpl"/>
3869 <function name="tp_simple_handler_new ()" link="telepathy-glib-simple-handler.html#tp-simple-handler-new"/>
3870 <function name="tp_simple_handler_new_with_am ()" link="telepathy-glib-simple-handler.html#tp-simple-handler-new-with-am"/>
3871 <function name="tp_simple_handler_new_with_factory ()" link="telepathy-glib-simple-handler.html#tp-simple-handler-new-with-factory"/>
3872 <function name="The &quot;bypass-approval&quot; property" link="telepathy-glib-simple-handler.html#TpSimpleHandler--bypass-approval"/>
3873 <function name="The &quot;callback&quot; property" link="telepathy-glib-simple-handler.html#TpSimpleHandler--callback"/>
3874 <function name="The &quot;destroy&quot; property" link="telepathy-glib-simple-handler.html#TpSimpleHandler--destroy"/>
3875 <function name="The &quot;requests&quot; property" link="telepathy-glib-simple-handler.html#TpSimpleHandler--requests"/>
3876 <function name="The &quot;user-data&quot; property" link="telepathy-glib-simple-handler.html#TpSimpleHandler--user-data"/>
3877 <function name="struct TpDTMFPlayer" link="telepathy-glib-dtmf.html#TpDTMFPlayer-struct"/>
3878 <function name="tp_dtmf_player_new ()" link="telepathy-glib-dtmf.html#tp-dtmf-player-new"/>
3879 <function name="tp_dtmf_player_play ()" link="telepathy-glib-dtmf.html#tp-dtmf-player-play"/>
3880 <function name="tp_dtmf_player_cancel ()" link="telepathy-glib-dtmf.html#tp-dtmf-player-cancel"/>
3881 <function name="tp_dtmf_player_is_active ()" link="telepathy-glib-dtmf.html#tp-dtmf-player-is-active"/>
3882 <function name="The &quot;finished&quot; signal" link="telepathy-glib-dtmf.html#TpDTMFPlayer-finished"/>
3883 <function name="The &quot;started-tone&quot; signal" link="telepathy-glib-dtmf.html#TpDTMFPlayer-started-tone"/>
3884 <function name="The &quot;stopped-tone&quot; signal" link="telepathy-glib-dtmf.html#TpDTMFPlayer-stopped-tone"/>
3885 <function name="The &quot;tones-deferred&quot; signal" link="telepathy-glib-dtmf.html#TpDTMFPlayer-tones-deferred"/>
3886 <function name="TpHandleRepoIface" link="telepathy-glib-handle-repo.html#TpHandleRepoIface-struct"/>
3887 <function name="TpHandleRepoIfaceClass" link="telepathy-glib-handle-repo.html#TpHandleRepoIfaceClass"/>
3888 <function name="tp_handle_is_valid ()" link="telepathy-glib-handle-repo.html#tp-handle-is-valid"/>
3889 <function name="tp_handles_are_valid ()" link="telepathy-glib-handle-repo.html#tp-handles-are-valid"/>
3890 <function name="tp_handles_supported_and_valid ()" link="telepathy-glib-handle-repo.html#tp-handles-supported-and-valid"/>
3891 <function name="tp_handle_ref ()" link="telepathy-glib-handle-repo.html#tp-handle-ref"/>
3892 <function name="tp_handles_ref ()" link="telepathy-glib-handle-repo.html#tp-handles-ref"/>
3893 <function name="tp_handle_unref ()" link="telepathy-glib-handle-repo.html#tp-handle-unref"/>
3894 <function name="tp_handles_unref ()" link="telepathy-glib-handle-repo.html#tp-handles-unref"/>
3895 <function name="tp_handle_client_hold ()" link="telepathy-glib-handle-repo.html#tp-handle-client-hold"/>
3896 <function name="tp_handles_client_hold ()" link="telepathy-glib-handle-repo.html#tp-handles-client-hold"/>
3897 <function name="tp_handle_client_release ()" link="telepathy-glib-handle-repo.html#tp-handle-client-release"/>
3898 <function name="tp_handles_client_release ()" link="telepathy-glib-handle-repo.html#tp-handles-client-release"/>
3899 <function name="tp_handle_inspect ()" link="telepathy-glib-handle-repo.html#tp-handle-inspect"/>
3900 <function name="tp_handle_set_qdata ()" link="telepathy-glib-handle-repo.html#tp-handle-set-qdata"/>
3901 <function name="tp_handle_get_qdata ()" link="telepathy-glib-handle-repo.html#tp-handle-get-qdata"/>
3902 <function name="tp_handle_ensure ()" link="telepathy-glib-handle-repo.html#tp-handle-ensure"/>
3903 <function name="tp_handle_lookup ()" link="telepathy-glib-handle-repo.html#tp-handle-lookup"/>
3904 <function name="TpHandleSet" link="telepathy-glib-handle-repo.html#TpHandleSet-struct"/>
3905 <function name="TP_TYPE_HANDLE_SET" link="telepathy-glib-handle-repo.html#TP-TYPE-HANDLE-SET:CAPS"/>
3906 <function name="TpHandleSetMemberFunc ()" link="telepathy-glib-handle-repo.html#TpHandleSetMemberFunc"/>
3907 <function name="tp_handle_set_new ()" link="telepathy-glib-handle-repo.html#tp-handle-set-new"/>
3908 <function name="tp_handle_set_new_containing ()" link="telepathy-glib-handle-repo.html#tp-handle-set-new-containing"/>
3909 <function name="tp_handle_set_new_from_array ()" link="telepathy-glib-handle-repo.html#tp-handle-set-new-from-array"/>
3910 <function name="tp_handle_set_new_from_intset ()" link="telepathy-glib-handle-repo.html#tp-handle-set-new-from-intset"/>
3911 <function name="tp_handle_set_copy ()" link="telepathy-glib-handle-repo.html#tp-handle-set-copy"/>
3912 <function name="tp_handle_set_clear ()" link="telepathy-glib-handle-repo.html#tp-handle-set-clear"/>
3913 <function name="tp_handle_set_destroy ()" link="telepathy-glib-handle-repo.html#tp-handle-set-destroy"/>
3914 <function name="tp_handle_set_peek ()" link="telepathy-glib-handle-repo.html#tp-handle-set-peek"/>
3915 <function name="tp_handle_set_add ()" link="telepathy-glib-handle-repo.html#tp-handle-set-add"/>
3916 <function name="tp_handle_set_remove ()" link="telepathy-glib-handle-repo.html#tp-handle-set-remove"/>
3917 <function name="tp_handle_set_is_member ()" link="telepathy-glib-handle-repo.html#tp-handle-set-is-member"/>
3918 <function name="tp_handle_set_foreach ()" link="telepathy-glib-handle-repo.html#tp-handle-set-foreach"/>
3919 <function name="tp_handle_set_is_empty ()" link="telepathy-glib-handle-repo.html#tp-handle-set-is-empty"/>
3920 <function name="tp_handle_set_size ()" link="telepathy-glib-handle-repo.html#tp-handle-set-size"/>
3921 <function name="tp_handle_set_to_array ()" link="telepathy-glib-handle-repo.html#tp-handle-set-to-array"/>
3922 <function name="tp_handle_set_to_identifier_map ()" link="telepathy-glib-handle-repo.html#tp-handle-set-to-identifier-map"/>
3923 <function name="tp_handle_set_update ()" link="telepathy-glib-handle-repo.html#tp-handle-set-update"/>
3924 <function name="tp_handle_set_difference_update ()" link="telepathy-glib-handle-repo.html#tp-handle-set-difference-update"/>
3925 <function name="tp_handle_set_dump ()" link="telepathy-glib-handle-repo.html#tp-handle-set-dump"/>
3926 <function name="The &quot;handle-type&quot; property" link="telepathy-glib-handle-repo.html#TpHandleRepoIface--handle-type"/>
3927 <function name="tp_static_handle_repo_new ()" link="TpStaticHandleRepo.html#tp-static-handle-repo-new"/>
3928 <function name="TpStaticHandleRepo" link="TpStaticHandleRepo.html#TpStaticHandleRepo-struct"/>
3929 <function name="TpStaticHandleRepoClass" link="TpStaticHandleRepo.html#TpStaticHandleRepoClass"/>
3930 <function name="The &quot;handle-names&quot; property" link="TpStaticHandleRepo.html#TpStaticHandleRepo--handle-names"/>
3931 <function name="TpDynamicHandleRepo" link="TpDynamicHandleRepo.html#TpDynamicHandleRepo-struct"/>
3932 <function name="TpDynamicHandleRepoClass" link="TpDynamicHandleRepo.html#TpDynamicHandleRepoClass"/>
3933 <function name="tp_dynamic_handle_repo_lookup_exact ()" link="TpDynamicHandleRepo.html#tp-dynamic-handle-repo-lookup-exact"/>
3934 <function name="tp_dynamic_handle_repo_new ()" link="TpDynamicHandleRepo.html#tp-dynamic-handle-repo-new"/>
3935 <function name="TpDynamicHandleRepoNormalizeFunc ()" link="TpDynamicHandleRepo.html#TpDynamicHandleRepoNormalizeFunc"/>
3936 <function name="The &quot;default-normalize-context&quot; property" link="TpDynamicHandleRepo.html#TpDynamicHandleRepo--default-normalize-context"/>
3937 <function name="The &quot;normalize-function&quot; property" link="TpDynamicHandleRepo.html#TpDynamicHandleRepo--normalize-function"/>
3938 <function name="tp_verify()" link="telepathy-glib-util.html#tp-verify"/>
3939 <function name="tp_verify_true()" link="telepathy-glib-util.html#tp-verify-true"/>
3940 <function name="tp_verify_statement()" link="telepathy-glib-util.html#tp-verify-statement"/>
3941 <function name="tp_g_hash_table_update ()" link="telepathy-glib-util.html#tp-g-hash-table-update"/>
3942 <function name="tp_g_ptr_array_contains ()" link="telepathy-glib-util.html#tp-g-ptr-array-contains"/>
3943 <function name="tp_g_ptr_array_extend ()" link="telepathy-glib-util.html#tp-g-ptr-array-extend"/>
3944 <function name="tp_g_value_slice_new ()" link="telepathy-glib-util.html#tp-g-value-slice-new"/>
3945 <function name="tp_g_value_slice_new_boolean ()" link="telepathy-glib-util.html#tp-g-value-slice-new-boolean"/>
3946 <function name="tp_g_value_slice_new_boxed ()" link="telepathy-glib-util.html#tp-g-value-slice-new-boxed"/>
3947 <function name="tp_g_value_slice_new_static_boxed ()" link="telepathy-glib-util.html#tp-g-value-slice-new-static-boxed"/>
3948 <function name="tp_g_value_slice_new_take_boxed ()" link="telepathy-glib-util.html#tp-g-value-slice-new-take-boxed"/>
3949 <function name="tp_g_value_slice_new_double ()" link="telepathy-glib-util.html#tp-g-value-slice-new-double"/>
3950 <function name="tp_g_value_slice_new_int ()" link="telepathy-glib-util.html#tp-g-value-slice-new-int"/>
3951 <function name="tp_g_value_slice_new_int64 ()" link="telepathy-glib-util.html#tp-g-value-slice-new-int64"/>
3952 <function name="tp_g_value_slice_new_string ()" link="telepathy-glib-util.html#tp-g-value-slice-new-string"/>
3953 <function name="tp_g_value_slice_new_static_string ()" link="telepathy-glib-util.html#tp-g-value-slice-new-static-string"/>
3954 <function name="tp_g_value_slice_new_take_string ()" link="telepathy-glib-util.html#tp-g-value-slice-new-take-string"/>
3955 <function name="tp_g_value_slice_new_uint ()" link="telepathy-glib-util.html#tp-g-value-slice-new-uint"/>
3956 <function name="tp_g_value_slice_new_uint64 ()" link="telepathy-glib-util.html#tp-g-value-slice-new-uint64"/>
3957 <function name="tp_g_value_slice_new_byte ()" link="telepathy-glib-util.html#tp-g-value-slice-new-byte"/>
3958 <function name="tp_g_value_slice_free ()" link="telepathy-glib-util.html#tp-g-value-slice-free"/>
3959 <function name="tp_g_value_slice_dup ()" link="telepathy-glib-util.html#tp-g-value-slice-dup"/>
3960 <function name="tp_str_empty ()" link="telepathy-glib-util.html#tp-str-empty"/>
3961 <function name="tp_strdiff ()" link="telepathy-glib-util.html#tp-strdiff"/>
3962 <function name="tp_mixin_offset_cast ()" link="telepathy-glib-util.html#tp-mixin-offset-cast"/>
3963 <function name="tp_mixin_class_get_offset ()" link="telepathy-glib-util.html#tp-mixin-class-get-offset"/>
3964 <function name="tp_mixin_instance_get_offset ()" link="telepathy-glib-util.html#tp-mixin-instance-get-offset"/>
3965 <function name="tp_escape_as_identifier ()" link="telepathy-glib-util.html#tp-escape-as-identifier"/>
3966 <function name="tp_strv_contains ()" link="telepathy-glib-util.html#tp-strv-contains"/>
3967 <function name="tp_g_key_file_get_int64 ()" link="telepathy-glib-util.html#tp-g-key-file-get-int64"/>
3968 <function name="tp_g_key_file_get_uint64 ()" link="telepathy-glib-util.html#tp-g-key-file-get-uint64"/>
3969 <function name="tp_g_signal_connect_object ()" link="telepathy-glib-util.html#tp-g-signal-connect-object"/>
3970 <function name="tp_value_array_build ()" link="telepathy-glib-util.html#tp-value-array-build"/>
3971 <function name="tp_value_array_unpack ()" link="telepathy-glib-util.html#tp-value-array-unpack"/>
3972 <function name="TpWeakRef" link="telepathy-glib-util.html#TpWeakRef"/>
3973 <function name="tp_weak_ref_new ()" link="telepathy-glib-util.html#tp-weak-ref-new"/>
3974 <function name="tp_weak_ref_dup_object ()" link="telepathy-glib-util.html#tp-weak-ref-dup-object"/>
3975 <function name="tp_weak_ref_get_user_data ()" link="telepathy-glib-util.html#tp-weak-ref-get-user-data"/>
3976 <function name="tp_weak_ref_destroy ()" link="telepathy-glib-util.html#tp-weak-ref-destroy"/>
3977 <function name="tp_clear_pointer()" link="telepathy-glib-util.html#tp-clear-pointer"/>
3978 <function name="tp_clear_object()" link="telepathy-glib-util.html#tp-clear-object"/>
3979 <function name="tp_clear_boxed()" link="telepathy-glib-util.html#tp-clear-boxed"/>
3980 <function name="tp_simple_async_report_success_in_idle ()" link="telepathy-glib-util.html#tp-simple-async-report-success-in-idle"/>
3981 <function name="tp_user_action_time_from_x11 ()" link="telepathy-glib-util.html#tp-user-action-time-from-x11"/>
3982 <function name="tp_user_action_time_should_present ()" link="telepathy-glib-util.html#tp-user-action-time-should-present"/>
3983 <function name="tp_utf8_make_valid ()" link="telepathy-glib-util.html#tp-utf8-make-valid"/>
3984 <function name="tp_g_socket_address_from_variant ()" link="telepathy-glib-gnio-util.html#tp-g-socket-address-from-variant"/>
3985 <function name="tp_address_variant_from_g_socket_address ()" link="telepathy-glib-gnio-util.html#tp-address-variant-from-g-socket-address"/>
3986 <function name="tp_unix_connection_receive_credentials_with_byte ()" link="telepathy-glib-gnio-util.html#tp-unix-connection-receive-credentials-with-byte"/>
3987 <function name="tp_unix_connection_send_credentials_with_byte ()" link="telepathy-glib-gnio-util.html#tp-unix-connection-send-credentials-with-byte"/>
3988 <function name="tp_debug_set_flags ()" link="telepathy-glib-debug.html#tp-debug-set-flags"/>
3989 <function name="tp_debug_set_persistent ()" link="telepathy-glib-debug.html#tp-debug-set-persistent"/>
3990 <function name="tp_debug_divert_messages ()" link="telepathy-glib-debug.html#tp-debug-divert-messages"/>
3991 <function name="tp_debug_timestamped_log_handler ()" link="telepathy-glib-debug.html#tp-debug-timestamped-log-handler"/>
3992 <function name="tp_debug_set_flags_from_string ()" link="telepathy-glib-debug.html#tp-debug-set-flags-from-string"/>
3993 <function name="tp_debug_set_flags_from_env ()" link="telepathy-glib-debug.html#tp-debug-set-flags-from-env"/>
3994 <function name="tp_debug_set_all_flags ()" link="telepathy-glib-debug.html#tp-debug-set-all-flags"/>
3995 <function name="struct TpDebugSender" link="telepathy-glib-debug-sender.html#TpDebugSender-struct"/>
3996 <function name="tp_debug_sender_dup ()" link="telepathy-glib-debug-sender.html#tp-debug-sender-dup"/>
3997 <function name="tp_debug_sender_add_message ()" link="telepathy-glib-debug-sender.html#tp-debug-sender-add-message"/>
3998 <function name="tp_debug_sender_add_message_vprintf ()" link="telepathy-glib-debug-sender.html#tp-debug-sender-add-message-vprintf"/>
3999 <function name="tp_debug_sender_add_message_printf ()" link="telepathy-glib-debug-sender.html#tp-debug-sender-add-message-printf"/>
4000 <function name="tp_debug_sender_log_handler ()" link="telepathy-glib-debug-sender.html#tp-debug-sender-log-handler"/>
4001 <function name="tp_debug_sender_set_timestamps ()" link="telepathy-glib-debug-sender.html#tp-debug-sender-set-timestamps"/>
4002 <function name="The &quot;enabled&quot; property" link="telepathy-glib-debug-sender.html#TpDebugSender--enabled"/>
4003 <function name="TpIntset" link="TpIntset.html#TpIntset-struct"/>
4004 <function name="TP_TYPE_INTSET" link="TpIntset.html#TP-TYPE-INTSET:CAPS"/>
4005 <function name="TpIntFunc ()" link="TpIntset.html#TpIntFunc"/>
4006 <function name="tp_intset_sized_new ()" link="TpIntset.html#tp-intset-sized-new"/>
4007 <function name="tp_intset_new ()" link="TpIntset.html#tp-intset-new"/>
4008 <function name="tp_intset_new_containing ()" link="TpIntset.html#tp-intset-new-containing"/>
4009 <function name="tp_intset_destroy ()" link="TpIntset.html#tp-intset-destroy"/>
4010 <function name="tp_intset_clear ()" link="TpIntset.html#tp-intset-clear"/>
4011 <function name="tp_intset_add ()" link="TpIntset.html#tp-intset-add"/>
4012 <function name="tp_intset_remove ()" link="TpIntset.html#tp-intset-remove"/>
4013 <function name="tp_intset_is_member ()" link="TpIntset.html#tp-intset-is-member"/>
4014 <function name="tp_intset_foreach ()" link="TpIntset.html#tp-intset-foreach"/>
4015 <function name="tp_intset_to_array ()" link="TpIntset.html#tp-intset-to-array"/>
4016 <function name="tp_intset_from_array ()" link="TpIntset.html#tp-intset-from-array"/>
4017 <function name="tp_intset_is_empty ()" link="TpIntset.html#tp-intset-is-empty"/>
4018 <function name="tp_intset_size ()" link="TpIntset.html#tp-intset-size"/>
4019 <function name="tp_intset_is_equal ()" link="TpIntset.html#tp-intset-is-equal"/>
4020 <function name="tp_intset_copy ()" link="TpIntset.html#tp-intset-copy"/>
4021 <function name="tp_intset_intersection ()" link="TpIntset.html#tp-intset-intersection"/>
4022 <function name="tp_intset_union ()" link="TpIntset.html#tp-intset-union"/>
4023 <function name="tp_intset_union_update ()" link="TpIntset.html#tp-intset-union-update"/>
4024 <function name="tp_intset_difference ()" link="TpIntset.html#tp-intset-difference"/>
4025 <function name="tp_intset_difference_update ()" link="TpIntset.html#tp-intset-difference-update"/>
4026 <function name="tp_intset_symmetric_difference ()" link="TpIntset.html#tp-intset-symmetric-difference"/>
4027 <function name="tp_intset_dump ()" link="TpIntset.html#tp-intset-dump"/>
4028 <function name="TpIntsetFastIter" link="TpIntset.html#TpIntsetFastIter"/>
4029 <function name="tp_intset_fast_iter_init ()" link="TpIntset.html#tp-intset-fast-iter-init"/>
4030 <function name="tp_intset_fast_iter_next ()" link="TpIntset.html#tp-intset-fast-iter-next"/>
4031 <function name="TP_INTSET_ITER_INIT()" link="TpIntset.html#TP-INTSET-ITER-INIT:CAPS"/>
4032 <function name="TpIntsetIter" link="TpIntset.html#TpIntsetIter"/>
4033 <function name="tp_intset_iter_init ()" link="TpIntset.html#tp-intset-iter-init"/>
4034 <function name="tp_intset_iter_next ()" link="TpIntset.html#tp-intset-iter-next"/>
4035 <function name="tp_intset_iter_reset ()" link="TpIntset.html#tp-intset-iter-reset"/>
4036 <function name="TpHeap" link="telepathy-glib-TpHeap.html#TpHeap"/>
4037 <function name="tp_heap_new ()" link="telepathy-glib-TpHeap.html#tp-heap-new"/>
4038 <function name="tp_heap_destroy ()" link="telepathy-glib-TpHeap.html#tp-heap-destroy"/>
4039 <function name="tp_heap_clear ()" link="telepathy-glib-TpHeap.html#tp-heap-clear"/>
4040 <function name="tp_heap_add ()" link="telepathy-glib-TpHeap.html#tp-heap-add"/>
4041 <function name="tp_heap_remove ()" link="telepathy-glib-TpHeap.html#tp-heap-remove"/>
4042 <function name="tp_heap_peek_first ()" link="telepathy-glib-TpHeap.html#tp-heap-peek-first"/>
4043 <function name="tp_heap_extract_first ()" link="telepathy-glib-TpHeap.html#tp-heap-extract-first"/>
4044 <function name="tp_heap_size ()" link="telepathy-glib-TpHeap.html#tp-heap-size"/>
4045 <function name="TpChannelFactoryIfaceForeachImpl ()" link="TpChannelFactoryIface.html#TpChannelFactoryIfaceForeachImpl"/>
4046 <function name="TpChannelFactoryIfaceProc ()" link="TpChannelFactoryIface.html#TpChannelFactoryIfaceProc"/>
4047 <function name="TpChannelFactoryIfaceRequestImpl ()" link="TpChannelFactoryIface.html#TpChannelFactoryIfaceRequestImpl"/>
4048 <function name="enum TpChannelFactoryRequestStatus" link="TpChannelFactoryIface.html#TpChannelFactoryRequestStatus"/>
4049 <function name="TpChannelFactoryIface" link="TpChannelFactoryIface.html#TpChannelFactoryIface-struct"/>
4050 <function name="struct TpChannelFactoryIfaceClass" link="TpChannelFactoryIface.html#TpChannelFactoryIfaceClass"/>
4051 <function name="tp_channel_factory_iface_close_all ()" link="TpChannelFactoryIface.html#tp-channel-factory-iface-close-all"/>
4052 <function name="tp_channel_factory_iface_connecting ()" link="TpChannelFactoryIface.html#tp-channel-factory-iface-connecting"/>
4053 <function name="tp_channel_factory_iface_connected ()" link="TpChannelFactoryIface.html#tp-channel-factory-iface-connected"/>
4054 <function name="tp_channel_factory_iface_disconnected ()" link="TpChannelFactoryIface.html#tp-channel-factory-iface-disconnected"/>
4055 <function name="tp_channel_factory_iface_foreach ()" link="TpChannelFactoryIface.html#tp-channel-factory-iface-foreach"/>
4056 <function name="tp_channel_factory_iface_request ()" link="TpChannelFactoryIface.html#tp-channel-factory-iface-request"/>
4057 <function name="tp_channel_factory_iface_emit_new_channel ()" link="TpChannelFactoryIface.html#tp-channel-factory-iface-emit-new-channel"/>
4058 <function name="tp_channel_factory_iface_emit_channel_error ()" link="TpChannelFactoryIface.html#tp-channel-factory-iface-emit-channel-error"/>
4059 <function name="The &quot;channel-error&quot; signal" link="TpChannelFactoryIface.html#TpChannelFactoryIface-channel-error"/>
4060 <function name="The &quot;new-channel&quot; signal" link="TpChannelFactoryIface.html#TpChannelFactoryIface-new-channel"/>
4061 <function name="TP_ANSI_RESET" link="telepathy-glib-debug-ansi.html#TP-ANSI-RESET:CAPS"/>
4062 <function name="TP_ANSI_BOLD_ON" link="telepathy-glib-debug-ansi.html#TP-ANSI-BOLD-ON:CAPS"/>
4063 <function name="TP_ANSI_INVERSE_ON" link="telepathy-glib-debug-ansi.html#TP-ANSI-INVERSE-ON:CAPS"/>
4064 <function name="TP_ANSI_BOLD_OFF" link="telepathy-glib-debug-ansi.html#TP-ANSI-BOLD-OFF:CAPS"/>
4065 <function name="TP_ANSI_FG_BLACK" link="telepathy-glib-debug-ansi.html#TP-ANSI-FG-BLACK:CAPS"/>
4066 <function name="TP_ANSI_FG_RED" link="telepathy-glib-debug-ansi.html#TP-ANSI-FG-RED:CAPS"/>
4067 <function name="TP_ANSI_FG_GREEN" link="telepathy-glib-debug-ansi.html#TP-ANSI-FG-GREEN:CAPS"/>
4068 <function name="TP_ANSI_FG_YELLOW" link="telepathy-glib-debug-ansi.html#TP-ANSI-FG-YELLOW:CAPS"/>
4069 <function name="TP_ANSI_FG_BLUE" link="telepathy-glib-debug-ansi.html#TP-ANSI-FG-BLUE:CAPS"/>
4070 <function name="TP_ANSI_FG_MAGENTA" link="telepathy-glib-debug-ansi.html#TP-ANSI-FG-MAGENTA:CAPS"/>
4071 <function name="TP_ANSI_FG_CYAN" link="telepathy-glib-debug-ansi.html#TP-ANSI-FG-CYAN:CAPS"/>
4072 <function name="TP_ANSI_FG_WHITE" link="telepathy-glib-debug-ansi.html#TP-ANSI-FG-WHITE:CAPS"/>
4073 <function name="TP_ANSI_BG_RED" link="telepathy-glib-debug-ansi.html#TP-ANSI-BG-RED:CAPS"/>
4074 <function name="TP_ANSI_BG_GREEN" link="telepathy-glib-debug-ansi.html#TP-ANSI-BG-GREEN:CAPS"/>
4075 <function name="TP_ANSI_BG_YELLOW" link="telepathy-glib-debug-ansi.html#TP-ANSI-BG-YELLOW:CAPS"/>
4076 <function name="TP_ANSI_BG_BLUE" link="telepathy-glib-debug-ansi.html#TP-ANSI-BG-BLUE:CAPS"/>
4077 <function name="TP_ANSI_BG_MAGENTA" link="telepathy-glib-debug-ansi.html#TP-ANSI-BG-MAGENTA:CAPS"/>
4078 <function name="TP_ANSI_BG_CYAN" link="telepathy-glib-debug-ansi.html#TP-ANSI-BG-CYAN:CAPS"/>
4079 <function name="TP_ANSI_BG_WHITE" link="telepathy-glib-debug-ansi.html#TP-ANSI-BG-WHITE:CAPS"/>
4080 <function name="TpTextMixin" link="telepathy-glib-TpTextMixin.html#TpTextMixin"/>
4081 <function name="struct TpTextMixinClass" link="telepathy-glib-TpTextMixin.html#TpTextMixinClass"/>
4082 <function name="tp_text_mixin_class_get_offset_quark ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-class-get-offset-quark"/>
4083 <function name="tp_text_mixin_get_offset_quark ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-get-offset-quark"/>
4084 <function name="tp_text_mixin_class_init ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-class-init"/>
4085 <function name="tp_text_mixin_init ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-init"/>
4086 <function name="tp_text_mixin_set_message_types ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-set-message-types"/>
4087 <function name="tp_text_mixin_finalize ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-finalize"/>
4088 <function name="tp_text_mixin_receive_with_flags ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-receive-with-flags"/>
4089 <function name="tp_text_mixin_receive ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-receive"/>
4090 <function name="tp_text_mixin_acknowledge_pending_messages ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-acknowledge-pending-messages"/>
4091 <function name="tp_text_mixin_list_pending_messages ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-list-pending-messages"/>
4092 <function name="tp_text_mixin_get_message_types ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-get-message-types"/>
4093 <function name="tp_text_mixin_clear ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-clear"/>
4094 <function name="tp_text_mixin_has_pending_messages ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-has-pending-messages"/>
4095 <function name="tp_text_mixin_set_rescued ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-set-rescued"/>
4096 <function name="tp_text_mixin_iface_init ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-iface-init"/>
4097 </functions>
4098 </book>
4343 <sub name="TpContactSearchResult" link="telepathy-glib-contact-search-result.html"/>
4444 <sub name="TpChannel" link="telepathy-glib-channel.html"/>
4545 <sub name="Group and Conference interfaces on Channels" link="telepathy-glib-channel-group.html"/>
46 <sub name="Room-related interfaces on Channels" link="telepathy-glib-channel-room.html"/>
4647 <sub name="Text channels" link="telepathy-glib-channel-text.html"/>
4748 <sub name="Media channels" link="telepathy-glib-channel-media.html"/>
4849 <sub name="File transfer" link="telepathy-glib-channel-file-transfer.html"/>
6364 <sub name="TpAccountChannelRequest" link="telepathy-glib-account-channel-request.html"/>
6465 <sub name="TpStreamTubeChannel" link="telepathy-glib-stream-tube-channel.html"/>
6566 <sub name="TpStreamTubeConnection" link="telepathy-glib-stream-tube-connection.html"/>
67 <sub name="TpDBusTubeChannel" link="telepathy-glib-dbus-tube-channel.html"/>
6668 <sub name="TpClientChannelFactoryInterface" link="telepathy-glib-client-channel-factory.html"/>
6769 <sub name="TpBasicProxyFactory" link="telepathy-glib-basic-proxy-factory.html"/>
6870 <sub name="TpAutomaticProxyFactory" link="telepathy-glib-automatic-proxy-factory.html"/>
7880 <sub name="Generic service-side interfaces" link="telepathy-glib-svc-generic.html"/>
7981 <sub name="Service-side Channel base interface" link="telepathy-glib-svc-channel.html"/>
8082 <sub name="Service-side Channel Group and Conference interfaces" link="telepathy-glib-svc-channel-group.html"/>
83 <sub name="Service-side room interfaces" link="telepathy-glib-svc-channel-room.html"/>
8184 <sub name="Contact List channels" link="telepathy-glib-svc-channel-contactlist.html"/>
8285 <sub name="Contact Search channels" link="telepathy-glib-svc-channel-contactsearch.html"/>
8386 <sub name="Text channels" link="telepathy-glib-svc-channel-text.html"/>
116119 <sub name="TpBaseChannel" link="TpBaseChannel.html"/>
117120 <sub name="TpPresenceMixin" link="telepathy-glib-TpPresenceMixin.html"/>
118121 <sub name="TpPropertiesMixin" link="telepathy-glib-TpPropertiesMixin.html"/>
122 <sub name="TpBaseRoomConfig" link="TpBaseRoomConfig.html"/>
119123 <sub name="TpGroupMixin" link="telepathy-glib-TpGroupMixin.html"/>
120124 <sub name="TpMessageMixin" link="telepathy-glib-TpMessageMixin.html"/>
121125 <sub name="TpMessage" link="TpMessage.html"/>
174178 <keyword type="function" name="tp_proxy_get_invalidated ()" link="telepathy-glib-proxy.html#tp-proxy-get-invalidated" since="0.7.17"/>
175179 <keyword type="function" name="tp_proxy_dbus_error_to_gerror ()" link="telepathy-glib-proxy.html#tp-proxy-dbus-error-to-gerror" since="0.7.24"/>
176180 <keyword type="macro" name="TP_DBUS_ERRORS" link="telepathy-glib-proxy.html#TP-DBUS-ERRORS:CAPS" since="0.7.1"/>
177 <keyword type="enum" name="enum TpDBusError" link="telepathy-glib-proxy.html#TpDBusError" since="0.7.1"/>
181 <keyword type="enum" name="enum TpDBusError" link="telepathy-glib-proxy.html#TpDBusError-enum"/>
178182 <keyword type="macro" name="NUM_TP_DBUS_ERRORS" link="telepathy-glib-proxy.html#NUM-TP-DBUS-ERRORS:CAPS" since="0.7.1"/>
179183 <keyword type="macro" name="TP_TYPE_DBUS_ERROR" link="telepathy-glib-proxy.html#TP-TYPE-DBUS-ERROR:CAPS" since="0.11.5"/>
180184 <keyword type="property" name="The &quot;bus-name&quot; property" link="telepathy-glib-proxy.html#TpProxy--bus-name"/>
221225 <keyword type="function" name="tp_dbus_g_method_return_not_implemented ()" link="telepathy-glib-dbus.html#tp-dbus-g-method-return-not-implemented"/>
222226 <keyword type="function" name="tp_get_bus ()" link="telepathy-glib-dbus.html#tp-get-bus" deprecated=""/>
223227 <keyword type="function" name="tp_get_bus_proxy ()" link="telepathy-glib-dbus.html#tp-get-bus-proxy" deprecated="0.7.26: Use tp_dbus_daemon_dup() in new code."/>
224 <keyword type="enum" name="enum TpDBusNameType" link="telepathy-glib-dbus.html#TpDBusNameType" since="0.7.1"/>
228 <keyword type="enum" name="enum TpDBusNameType" link="telepathy-glib-dbus.html#TpDBusNameType-enum"/>
225229 <keyword type="macro" name="TP_TYPE_DBUS_NAME_TYPE" link="telepathy-glib-dbus.html#TP-TYPE-DBUS-NAME-TYPE:CAPS" since="0.11.5"/>
226230 <keyword type="function" name="tp_dbus_check_valid_bus_name ()" link="telepathy-glib-dbus.html#tp-dbus-check-valid-bus-name" since="0.7.1"/>
227231 <keyword type="function" name="tp_dbus_check_valid_interface_name ()" link="telepathy-glib-dbus.html#tp-dbus-check-valid-interface-name" since="0.7.1"/>
485489 <keyword type="macro" name="TP_IFACE_QUARK_CHANNEL_INTERFACE_HOLD" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-HOLD:CAPS"/>
486490 <keyword type="macro" name="TP_IFACE_CHANNEL_INTERFACE_PASSWORD" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-PASSWORD:CAPS"/>
487491 <keyword type="macro" name="TP_IFACE_QUARK_CHANNEL_INTERFACE_PASSWORD" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-PASSWORD:CAPS"/>
492 <keyword type="macro" name="TP_IFACE_CHANNEL_INTERFACE_ROOM" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-ROOM:CAPS"/>
493 <keyword type="macro" name="TP_IFACE_QUARK_CHANNEL_INTERFACE_ROOM" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-ROOM:CAPS"/>
494 <keyword type="macro" name="TP_IFACE_CHANNEL_INTERFACE_ROOM_CONFIG" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-ROOM-CONFIG:CAPS"/>
495 <keyword type="macro" name="TP_IFACE_QUARK_CHANNEL_INTERFACE_ROOM_CONFIG" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-ROOM-CONFIG:CAPS"/>
488496 <keyword type="macro" name="TP_IFACE_CHANNEL_INTERFACE_SASL_AUTHENTICATION" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-SASL-AUTHENTICATION:CAPS"/>
489497 <keyword type="macro" name="TP_IFACE_QUARK_CHANNEL_INTERFACE_SASL_AUTHENTICATION" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-SASL-AUTHENTICATION:CAPS"/>
490498 <keyword type="macro" name="TP_IFACE_CHANNEL_INTERFACE_SECURABLE" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-SECURABLE:CAPS"/>
491499 <keyword type="macro" name="TP_IFACE_QUARK_CHANNEL_INTERFACE_SECURABLE" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-SECURABLE:CAPS"/>
492500 <keyword type="macro" name="TP_IFACE_CHANNEL_INTERFACE_SMS" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-SMS:CAPS"/>
493501 <keyword type="macro" name="TP_IFACE_QUARK_CHANNEL_INTERFACE_SMS" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-SMS:CAPS"/>
502 <keyword type="macro" name="TP_IFACE_CHANNEL_INTERFACE_SUBJECT" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-SUBJECT:CAPS"/>
503 <keyword type="macro" name="TP_IFACE_QUARK_CHANNEL_INTERFACE_SUBJECT" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-SUBJECT:CAPS"/>
494504 <keyword type="macro" name="TP_IFACE_CHANNEL_INTERFACE_MEDIA_SIGNALLING" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-MEDIA-SIGNALLING:CAPS"/>
495505 <keyword type="macro" name="TP_IFACE_QUARK_CHANNEL_INTERFACE_MEDIA_SIGNALLING" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CHANNEL-INTERFACE-MEDIA-SIGNALLING:CAPS"/>
496506 <keyword type="macro" name="TP_IFACE_CHANNEL_INTERFACE_MESSAGES" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-INTERFACE-MESSAGES:CAPS"/>
584594 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_GROUP_HANDLE_OWNERS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-GROUP-HANDLE-OWNERS:CAPS"/>
585595 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_GROUP_LOCAL_PENDING_MEMBERS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-GROUP-LOCAL-PENDING-MEMBERS:CAPS"/>
586596 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_GROUP_MEMBERS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-GROUP-MEMBERS:CAPS"/>
597 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_GROUP_MEMBER_IDENTIFIERS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-GROUP-MEMBER-IDENTIFIERS:CAPS"/>
587598 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_GROUP_REMOTE_PENDING_MEMBERS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-GROUP-REMOTE-PENDING-MEMBERS:CAPS"/>
588599 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_GROUP_SELF_HANDLE" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-GROUP-SELF-HANDLE:CAPS"/>
589600 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_MESSAGES_DELIVERY_REPORTING_SUPPORT" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-MESSAGES-DELIVERY-REPORTING-SUPPORT:CAPS"/>
591602 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_MESSAGES_MESSAGE_TYPES" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-MESSAGES-MESSAGE-TYPES:CAPS"/>
592603 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_MESSAGES_PENDING_MESSAGES" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-MESSAGES-PENDING-MESSAGES:CAPS"/>
593604 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_MESSAGES_SUPPORTED_CONTENT_TYPES" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-MESSAGES-SUPPORTED-CONTENT-TYPES:CAPS"/>
605 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_ANONYMOUS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-ANONYMOUS:CAPS"/>
606 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_CAN_UPDATE_CONFIGURATION" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-CAN-UPDATE-CONFIGURATION:CAPS"/>
607 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_CONFIGURATION_RETRIEVED" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-CONFIGURATION-RETRIEVED:CAPS"/>
608 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_DESCRIPTION" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-DESCRIPTION:CAPS"/>
609 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_INVITEONLY" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-INVITEONLY:CAPS"/>
610 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_LIMIT" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-LIMIT:CAPS"/>
611 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_MODERATED" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-MODERATED:CAPS"/>
612 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_MUTABLE_PROPERTIES" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-MUTABLE-PROPERTIES:CAPS"/>
613 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_PASSWORD" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-PASSWORD:CAPS"/>
614 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_PASSWORD_PROTECTED" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-PASSWORD-PROTECTED:CAPS"/>
615 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_PERSISTENT" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-PERSISTENT:CAPS"/>
616 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_PRIVATE" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-PRIVATE:CAPS"/>
617 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_TITLE" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-CONFIG-TITLE:CAPS"/>
618 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_ROOM_ROOM_NAME" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-ROOM-NAME:CAPS"/>
619 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_ROOM_SERVER" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-ROOM-SERVER:CAPS"/>
594620 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_SASL_AUTHENTICATION_AUTHORIZATION_IDENTITY" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SASL-AUTHENTICATION-AUTHORIZATION-IDENTITY:CAPS"/>
595621 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_SASL_AUTHENTICATION_AVAILABLE_MECHANISMS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SASL-AUTHENTICATION-AVAILABLE-MECHANISMS:CAPS"/>
596622 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_SASL_AUTHENTICATION_CAN_TRY_AGAIN" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SASL-AUTHENTICATION-CAN-TRY-AGAIN:CAPS"/>
607633 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_SERVICE_POINT_INITIAL_SERVICE_POINT" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SERVICE-POINT-INITIAL-SERVICE-POINT:CAPS"/>
608634 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_SMS_FLASH" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SMS-FLASH:CAPS"/>
609635 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_SMS_SMS_CHANNEL" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SMS-SMS-CHANNEL:CAPS"/>
636 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_SUBJECT_ACTOR" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SUBJECT-ACTOR:CAPS"/>
637 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_SUBJECT_ACTOR_HANDLE" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SUBJECT-ACTOR-HANDLE:CAPS"/>
638 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_SUBJECT_CAN_SET" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SUBJECT-CAN-SET:CAPS"/>
639 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_SUBJECT_SUBJECT" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SUBJECT-SUBJECT:CAPS"/>
640 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_SUBJECT_TIMESTAMP" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-SUBJECT-TIMESTAMP:CAPS"/>
610641 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_TUBE_PARAMETERS" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-TUBE-PARAMETERS:CAPS"/>
611642 <keyword type="macro" name="TP_PROP_CHANNEL_INTERFACE_TUBE_STATE" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-INTERFACE-TUBE-STATE:CAPS"/>
612643 <keyword type="macro" name="TP_PROP_CHANNEL_TYPE_SERVER_AUTHENTICATION_AUTHENTICATION_METHOD" link="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TYPE-SERVER-AUTHENTICATION-AUTHENTICATION-METHOD:CAPS"/>
846877 <keyword type="macro" name="TP_ERROR_PREFIX" link="telepathy-glib-errors.html#TP-ERROR-PREFIX:CAPS" since="0.7.1"/>
847878 <keyword type="macro" name="TP_ERROR" link="telepathy-glib-errors.html#TP-ERROR:CAPS" since="0.11.7"/>
848879 <keyword type="macro" name="TP_TYPE_ERROR" link="telepathy-glib-errors.html#TP-TYPE-ERROR:CAPS"/>
849 <keyword type="enum" name="enum TpError" link="telepathy-glib-errors.html#TpError"/>
880 <keyword type="enum" name="enum TpError" link="telepathy-glib-errors.html#TpError-enum"/>
850881 <keyword type="function" name="tp_g_set_error_invalid_handle_type ()" link="telepathy-glib-errors.html#tp-g-set-error-invalid-handle-type"/>
851882 <keyword type="function" name="tp_g_set_error_unsupported_handle_type ()" link="telepathy-glib-errors.html#tp-g-set-error-unsupported-handle-type"/>
852883 <keyword type="function" name="tp_error_get_dbus_name ()" link="telepathy-glib-errors.html#tp-error-get-dbus-name" since="0.7.31"/>
900931 <keyword type="macro" name="TP_ERROR_STR_SOFTWARE_UPGRADE_REQUIRED" link="telepathy-glib-errors.html#TP-ERROR-STR-SOFTWARE-UPGRADE-REQUIRED:CAPS"/>
901932 <keyword type="macro" name="TP_ERROR_STR_EMERGENCY_CALLS_NOT_SUPPORTED" link="telepathy-glib-errors.html#TP-ERROR-STR-EMERGENCY-CALLS-NOT-SUPPORTED:CAPS"/>
902933 <keyword type="macro" name="TP_ERROR_STR_INSUFFICIENT_BALANCE" link="telepathy-glib-errors.html#TP-ERROR-STR-INSUFFICIENT-BALANCE:CAPS"/>
934 <keyword type="macro" name="TP_ERROR_STR_MEDIA_CODECS_INCOMPATIBLE" link="telepathy-glib-errors.html#TP-ERROR-STR-MEDIA-CODECS-INCOMPATIBLE:CAPS"/>
935 <keyword type="macro" name="TP_ERROR_STR_MEDIA_UNSUPPORTED_TYPE" link="telepathy-glib-errors.html#TP-ERROR-STR-MEDIA-UNSUPPORTED-TYPE:CAPS"/>
936 <keyword type="macro" name="TP_ERROR_STR_MEDIA_STREAMING_ERROR" link="telepathy-glib-errors.html#TP-ERROR-STR-MEDIA-STREAMING-ERROR:CAPS"/>
903937 <keyword type="function" name="tp_dbus_specialized_value_slice_new ()" link="telepathy-glib-gtypes.html#tp-dbus-specialized-value-slice-new"/>
904938 <keyword type="macro" name="TP_TYPE_UCHAR_ARRAY" link="telepathy-glib-gtypes.html#TP-TYPE-UCHAR-ARRAY:CAPS" since="0.11.1"/>
905939 <keyword type="macro" name="TP_ARRAY_TYPE_OBJECT_PATH_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-OBJECT-PATH-LIST:CAPS" since="0.7.34"/>
10491083 <keyword type="function" name="TpConnectionManagerWhenReadyCb ()" link="telepathy-glib-connection-manager.html#TpConnectionManagerWhenReadyCb"/>
10501084 <keyword type="function" name="tp_connection_manager_call_when_ready ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-call-when-ready" since="0.7.26"/>
10511085 <keyword type="function" name="tp_connection_manager_is_ready ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-is-ready" since="0.7.26"/>
1052 <keyword type="enum" name="enum TpCMInfoSource" link="telepathy-glib-connection-manager.html#TpCMInfoSource" since="0.7.1"/>
1086 <keyword type="enum" name="enum TpCMInfoSource" link="telepathy-glib-connection-manager.html#TpCMInfoSource-enum"/>
10531087 <keyword type="macro" name="TP_TYPE_CM_INFO_SOURCE" link="telepathy-glib-connection-manager.html#TP-TYPE-CM-INFO-SOURCE:CAPS" since="0.11.5"/>
10541088 <keyword type="function" name="tp_connection_manager_get_info_source ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-get-info-source" since="0.7.26"/>
10551089 <keyword type="function" name="tp_connection_manager_activate ()" link="telepathy-glib-connection-manager.html#tp-connection-manager-activate" since="0.7.1"/>
11121146 <keyword type="function" name="tp_protocol_get_icon_name ()" link="telepathy-glib-protocol.html#tp-protocol-get-icon-name" since="0.11.11"/>
11131147 <keyword type="function" name="tp_protocol_get_vcard_field ()" link="telepathy-glib-protocol.html#tp-protocol-get-vcard-field" since="0.11.11"/>
11141148 <keyword type="function" name="tp_protocol_get_authentication_types ()" link="telepathy-glib-protocol.html#tp-protocol-get-authentication-types" since="0.13.9"/>
1149 <keyword type="function" name="tp_protocol_get_avatar_requirements ()" link="telepathy-glib-protocol.html#tp-protocol-get-avatar-requirements" since="0.15.6"/>
11151150 <keyword type="function" name="tp_cli_protocol_call_identify_account ()" link="telepathy-glib-protocol.html#tp-cli-protocol-call-identify-account"/>
11161151 <keyword type="function" name="tp_cli_protocol_call_normalize_contact ()" link="telepathy-glib-protocol.html#tp-cli-protocol-call-normalize-contact"/>
11171152 <keyword type="function" name="tp_cli_protocol_callback_for_identify_account ()" link="telepathy-glib-protocol.html#tp-cli-protocol-callback-for-identify-account"/>
11181153 <keyword type="function" name="tp_cli_protocol_callback_for_normalize_contact ()" link="telepathy-glib-protocol.html#tp-cli-protocol-callback-for-normalize-contact"/>
11191154 <keyword type="property" name="The &quot;authentication-types&quot; property" link="telepathy-glib-protocol.html#TpProtocol--authentication-types"/>
1155 <keyword type="property" name="The &quot;avatar-requirements&quot; property" link="telepathy-glib-protocol.html#TpProtocol--avatar-requirements"/>
11201156 <keyword type="property" name="The &quot;capabilities&quot; property" link="telepathy-glib-protocol.html#TpProtocol--capabilities"/>
11211157 <keyword type="property" name="The &quot;english-name&quot; property" link="telepathy-glib-protocol.html#TpProtocol--english-name"/>
11221158 <keyword type="property" name="The &quot;icon-name&quot; property" link="telepathy-glib-protocol.html#TpProtocol--icon-name"/>
12931329 <keyword type="signal" name="The &quot;groups-created&quot; signal" link="telepathy-glib-connection.html#TpConnection-groups-created"/>
12941330 <keyword type="signal" name="The &quot;groups-removed&quot; signal" link="telepathy-glib-connection.html#TpConnection-groups-removed"/>
12951331 <keyword type="struct" name="TpContact" link="telepathy-glib-contact.html#TpContact-struct"/>
1296 <keyword type="enum" name="enum TpContactFeature" link="telepathy-glib-contact.html#TpContactFeature" since="0.7.18"/>
1332 <keyword type="enum" name="enum TpContactFeature" link="telepathy-glib-contact.html#TpContactFeature-enum"/>
12971333 <keyword type="macro" name="TP_CONTACT_FEATURE_INVALID" link="telepathy-glib-contact.html#TP-CONTACT-FEATURE-INVALID:CAPS" since="0.15.5"/>
12981334 <keyword type="macro" name="NUM_TP_CONTACT_FEATURES" link="telepathy-glib-contact.html#NUM-TP-CONTACT-FEATURES:CAPS" since="0.7.18"/>
12991335 <keyword type="macro" name="TP_TYPE_CONTACT_FEATURE" link="telepathy-glib-contact.html#TP-TYPE-CONTACT-FEATURE:CAPS" since="0.11.5"/>
15951631 <keyword type="function" name="tp_channel_init_known_interfaces ()" link="telepathy-glib-channel.html#tp-channel-init-known-interfaces" since="0.7.6"/>
15961632 <keyword type="function" name="tp_channel_is_ready ()" link="telepathy-glib-channel.html#tp-channel-is-ready" since="0.7.12"/>
15971633 <keyword type="macro" name="TP_CHANNEL_FEATURE_CORE" link="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-CORE:CAPS" since="0.11.3"/>
1634 <keyword type="macro" name="TP_CHANNEL_FEATURE_CONTACTS" link="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-CONTACTS:CAPS" since="0.15.6"/>
15981635 <keyword type="function" name="tp_channel_borrow_connection ()" link="telepathy-glib-channel.html#tp-channel-borrow-connection" since="0.7.12"/>
15991636 <keyword type="function" name="tp_channel_borrow_immutable_properties ()" link="telepathy-glib-channel.html#tp-channel-borrow-immutable-properties"/>
16001637 <keyword type="function" name="tp_channel_get_channel_type ()" link="telepathy-glib-channel.html#tp-channel-get-channel-type" since="0.7.12"/>
16011638 <keyword type="function" name="tp_channel_get_channel_type_id ()" link="telepathy-glib-channel.html#tp-channel-get-channel-type-id" since="0.7.12"/>
16021639 <keyword type="function" name="tp_channel_get_handle ()" link="telepathy-glib-channel.html#tp-channel-get-handle" since="0.7.12"/>
16031640 <keyword type="function" name="tp_channel_get_identifier ()" link="telepathy-glib-channel.html#tp-channel-get-identifier" since="0.7.21"/>
1641 <keyword type="function" name="tp_channel_get_target_contact ()" link="telepathy-glib-channel.html#tp-channel-get-target-contact" since="0.15.6"/>
16041642 <keyword type="function" name="tp_channel_get_requested ()" link="telepathy-glib-channel.html#tp-channel-get-requested" since="0.11.15"/>
16051643 <keyword type="function" name="tp_channel_get_initiator_handle ()" link="telepathy-glib-channel.html#tp-channel-get-initiator-handle" since="0.11.15"/>
16061644 <keyword type="function" name="tp_channel_get_initiator_identifier ()" link="telepathy-glib-channel.html#tp-channel-get-initiator-identifier" since="0.11.15"/>
1645 <keyword type="function" name="tp_channel_get_initiator_contact ()" link="telepathy-glib-channel.html#tp-channel-get-initiator-contact" since="0.15.6"/>
16071646 <keyword type="function" name="tp_channel_join_async ()" link="telepathy-glib-channel.html#tp-channel-join-async" since="0.15.5"/>
16081647 <keyword type="function" name="tp_channel_join_finish ()" link="telepathy-glib-channel.html#tp-channel-join-finish" since="0.15.5"/>
16091648 <keyword type="function" name="tp_channel_leave_async ()" link="telepathy-glib-channel.html#tp-channel-leave-async" since="0.13.10"/>
16171656 <keyword type="macro" name="TP_CHANNEL_FEATURE_GROUP" link="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-GROUP:CAPS" since="0.11.3"/>
16181657 <keyword type="function" name="tp_channel_group_get_flags ()" link="telepathy-glib-channel.html#tp-channel-group-get-flags" since="0.7.12"/>
16191658 <keyword type="function" name="tp_channel_group_get_handle_owner ()" link="telepathy-glib-channel.html#tp-channel-group-get-handle-owner" since="0.7.12"/>
1659 <keyword type="function" name="tp_channel_group_get_contact_owner ()" link="telepathy-glib-channel.html#tp-channel-group-get-contact-owner" since="0.15.6"/>
16201660 <keyword type="function" name="tp_channel_group_get_self_handle ()" link="telepathy-glib-channel.html#tp-channel-group-get-self-handle" since="0.7.12"/>
1661 <keyword type="function" name="tp_channel_group_get_self_contact ()" link="telepathy-glib-channel.html#tp-channel-group-get-self-contact" since="0.15.6"/>
1662 <keyword type="function" name="tp_channel_group_get_members ()" link="telepathy-glib-channel.html#tp-channel-group-get-members" since="0.7.12"/>
1663 <keyword type="function" name="tp_channel_group_dup_members_contacts ()" link="telepathy-glib-channel.html#tp-channel-group-dup-members-contacts" since="0.15.6"/>
16211664 <keyword type="function" name="tp_channel_group_get_local_pending ()" link="telepathy-glib-channel.html#tp-channel-group-get-local-pending" since="0.7.12"/>
1622 <keyword type="function" name="tp_channel_group_get_members ()" link="telepathy-glib-channel.html#tp-channel-group-get-members" since="0.7.12"/>
1665 <keyword type="function" name="tp_channel_group_dup_local_pending_contacts ()" link="telepathy-glib-channel.html#tp-channel-group-dup-local-pending-contacts" since="0.15.6"/>
16231666 <keyword type="function" name="tp_channel_group_get_remote_pending ()" link="telepathy-glib-channel.html#tp-channel-group-get-remote-pending" since="0.7.12"/>
1667 <keyword type="function" name="tp_channel_group_dup_remote_pending_contacts ()" link="telepathy-glib-channel.html#tp-channel-group-dup-remote-pending-contacts" since="0.15.6"/>
16241668 <keyword type="function" name="tp_channel_group_get_local_pending_info ()" link="telepathy-glib-channel.html#tp-channel-group-get-local-pending-info" since="0.7.12"/>
1669 <keyword type="function" name="tp_channel_group_get_local_pending_contact_info ()" link="telepathy-glib-channel.html#tp-channel-group-get-local-pending-contact-info" since="0.15.6"/>
16251670 <keyword type="macro" name="TP_ERRORS_REMOVED_FROM_GROUP" link="telepathy-glib-channel.html#TP-ERRORS-REMOVED-FROM-GROUP:CAPS" since="0.7.1"/>
16261671 <keyword type="macro" name="TP_CHANNEL_FEATURE_PASSWORD" link="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-PASSWORD:CAPS" since="0.15.2"/>
16271672 <keyword type="function" name="tp_channel_password_needed ()" link="telepathy-glib-channel.html#tp-channel-password-needed" since="0.15.2"/>
16481693 <keyword type="property" name="The &quot;channel-ready&quot; property" link="telepathy-glib-channel.html#TpChannel--channel-ready"/>
16491694 <keyword type="property" name="The &quot;connection&quot; property" link="telepathy-glib-channel.html#TpChannel--connection"/>
16501695 <keyword type="property" name="The &quot;group-flags&quot; property" link="telepathy-glib-channel.html#TpChannel--group-flags"/>
1696 <keyword type="property" name="The &quot;group-self-contact&quot; property" link="telepathy-glib-channel.html#TpChannel--group-self-contact"/>
16511697 <keyword type="property" name="The &quot;group-self-handle&quot; property" link="telepathy-glib-channel.html#TpChannel--group-self-handle"/>
16521698 <keyword type="property" name="The &quot;identifier&quot; property" link="telepathy-glib-channel.html#TpChannel--identifier"/>
1699 <keyword type="property" name="The &quot;initiator-contact&quot; property" link="telepathy-glib-channel.html#TpChannel--initiator-contact"/>
16531700 <keyword type="property" name="The &quot;initiator-handle&quot; property" link="telepathy-glib-channel.html#TpChannel--initiator-handle"/>
16541701 <keyword type="property" name="The &quot;initiator-identifier&quot; property" link="telepathy-glib-channel.html#TpChannel--initiator-identifier"/>
16551702 <keyword type="property" name="The &quot;password-needed&quot; property" link="telepathy-glib-channel.html#TpChannel--password-needed"/>
16561703 <keyword type="property" name="The &quot;requested&quot; property" link="telepathy-glib-channel.html#TpChannel--requested"/>
1704 <keyword type="property" name="The &quot;target-contact&quot; property" link="telepathy-glib-channel.html#TpChannel--target-contact"/>
16571705 <keyword type="signal" name="The &quot;chat-state-changed&quot; signal" link="telepathy-glib-channel.html#TpChannel-chat-state-changed"/>
1706 <keyword type="signal" name="The &quot;group-contacts-changed&quot; signal" link="telepathy-glib-channel.html#TpChannel-group-contacts-changed"/>
16581707 <keyword type="signal" name="The &quot;group-flags-changed&quot; signal" link="telepathy-glib-channel.html#TpChannel-group-flags-changed"/>
16591708 <keyword type="signal" name="The &quot;group-members-changed&quot; signal" link="telepathy-glib-channel.html#TpChannel-group-members-changed"/>
16601709 <keyword type="signal" name="The &quot;group-members-changed-detailed&quot; signal" link="telepathy-glib-channel.html#TpChannel-group-members-changed-detailed"/>
17011750 <keyword type="function" name="tp_cli_channel_interface_group_connect_to_self_handle_changed ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-connect-to-self-handle-changed"/>
17021751 <keyword type="function" name="tp_cli_channel_interface_group_signal_callback_handle_owners_changed ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-signal-callback-handle-owners-changed"/>
17031752 <keyword type="function" name="tp_cli_channel_interface_group_signal_callback_self_handle_changed ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-signal-callback-self-handle-changed"/>
1753 <keyword type="function" name="tp_cli_channel_interface_group_connect_to_handle_owners_changed_detailed ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-connect-to-handle-owners-changed-detailed"/>
1754 <keyword type="function" name="tp_cli_channel_interface_group_connect_to_self_contact_changed ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-connect-to-self-contact-changed"/>
1755 <keyword type="function" name="tp_cli_channel_interface_group_signal_callback_handle_owners_changed_detailed ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-signal-callback-handle-owners-changed-detailed"/>
1756 <keyword type="function" name="tp_cli_channel_interface_group_signal_callback_self_contact_changed ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-group-signal-callback-self-contact-changed"/>
1757 <keyword type="function" name="tp_svc_channel_interface_group_emit_handle_owners_changed_detailed ()" link="telepathy-glib-channel-group.html#tp-svc-channel-interface-group-emit-handle-owners-changed-detailed"/>
1758 <keyword type="function" name="tp_svc_channel_interface_group_emit_self_contact_changed ()" link="telepathy-glib-channel-group.html#tp-svc-channel-interface-group-emit-self-contact-changed"/>
17041759 <keyword type="function" name="tp_cli_channel_interface_conference_connect_to_channel_merged ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-conference-connect-to-channel-merged"/>
17051760 <keyword type="function" name="tp_cli_channel_interface_conference_connect_to_channel_removed ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-conference-connect-to-channel-removed"/>
17061761 <keyword type="function" name="tp_cli_channel_interface_conference_signal_callback_channel_merged ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-conference-signal-callback-channel-merged"/>
17071762 <keyword type="function" name="tp_cli_channel_interface_conference_signal_callback_channel_removed ()" link="telepathy-glib-channel-group.html#tp-cli-channel-interface-conference-signal-callback-channel-removed"/>
1763 <keyword type="function" name="tp_cli_channel_interface_room_config_call_update_configuration ()" link="telepathy-glib-channel-room.html#tp-cli-channel-interface-room-config-call-update-configuration"/>
1764 <keyword type="function" name="tp_cli_channel_interface_room_config_callback_for_update_configuration ()" link="telepathy-glib-channel-room.html#tp-cli-channel-interface-room-config-callback-for-update-configuration"/>
1765 <keyword type="function" name="tp_cli_channel_interface_subject_call_set_subject ()" link="telepathy-glib-channel-room.html#tp-cli-channel-interface-subject-call-set-subject"/>
1766 <keyword type="function" name="tp_cli_channel_interface_subject_callback_for_set_subject ()" link="telepathy-glib-channel-room.html#tp-cli-channel-interface-subject-callback-for-set-subject"/>
17081767 <keyword type="function" name="tp_cli_channel_type_text_run_acknowledge_pending_messages ()" link="telepathy-glib-channel-text.html#tp-cli-channel-type-text-run-acknowledge-pending-messages" deprecated=""/>
17091768 <keyword type="function" name="tp_cli_channel_type_text_run_get_message_types ()" link="telepathy-glib-channel-text.html#tp-cli-channel-type-text-run-get-message-types" deprecated="Consulting MessageTypes is preferred."/>
17101769 <keyword type="function" name="tp_cli_channel_type_text_run_list_pending_messages ()" link="telepathy-glib-channel-text.html#tp-cli-channel-type-text-run-list-pending-messages" deprecated="Consulting PendingMessages is preferred."/>
20392098 <keyword type="function" name="tp_account_manager_enable_restart ()" link="telepathy-glib-account-manager.html#tp-account-manager-enable-restart"/>
20402099 <keyword type="macro" name="TP_ACCOUNT_MANAGER_FEATURE_CORE" link="telepathy-glib-account-manager.html#TP-ACCOUNT-MANAGER-FEATURE-CORE:CAPS" since="0.9.0"/>
20412100 <keyword type="function" name="tp_account_manager_is_prepared ()" link="telepathy-glib-account-manager.html#tp-account-manager-is-prepared" since="0.9.0"/>
2042 <keyword type="function" name="tp_account_manager_prepare_async ()" link="telepathy-glib-account-manager.html#tp-account-manager-prepare-async" since="0.9.0"/>
2043 <keyword type="function" name="tp_account_manager_prepare_finish ()" link="telepathy-glib-account-manager.html#tp-account-manager-prepare-finish" since="0.9.0"/>
2101 <keyword type="function" name="tp_account_manager_prepare_async ()" link="telepathy-glib-account-manager.html#tp-account-manager-prepare-async" deprecated="since 0.15.6, use tp_proxy_prepare_async() instead." since="0.9.0"/>
2102 <keyword type="function" name="tp_account_manager_prepare_finish ()" link="telepathy-glib-account-manager.html#tp-account-manager-prepare-finish" deprecated="since 0.15.6, use tp_proxy_prepare_finish() instead." since="0.9.0"/>
20442103 <keyword type="function" name="tp_cli_account_manager_callback_for_create_account ()" link="telepathy-glib-account-manager.html#tp-cli-account-manager-callback-for-create-account"/>
20452104 <keyword type="function" name="tp_cli_account_manager_call_create_account ()" link="telepathy-glib-account-manager.html#tp-cli-account-manager-call-create-account"/>
20462105 <keyword type="function" name="tp_cli_account_manager_signal_callback_account_removed ()" link="telepathy-glib-account-manager.html#tp-cli-account-manager-signal-callback-account-removed"/>
21082167 <keyword type="macro" name="TP_ACCOUNT_FEATURE_CORE" link="telepathy-glib-account.html#TP-ACCOUNT-FEATURE-CORE:CAPS" since="0.9.0"/>
21092168 <keyword type="macro" name="TP_ACCOUNT_FEATURE_CONNECTION" link="telepathy-glib-account.html#TP-ACCOUNT-FEATURE-CONNECTION:CAPS" since="0.15.5"/>
21102169 <keyword type="function" name="tp_account_is_prepared ()" link="telepathy-glib-account.html#tp-account-is-prepared" since="0.9.0"/>
2111 <keyword type="function" name="tp_account_prepare_async ()" link="telepathy-glib-account.html#tp-account-prepare-async" since="0.9.0"/>
2112 <keyword type="function" name="tp_account_prepare_finish ()" link="telepathy-glib-account.html#tp-account-prepare-finish" since="0.9.0"/>
2170 <keyword type="function" name="tp_account_prepare_async ()" link="telepathy-glib-account.html#tp-account-prepare-async" deprecated="since 0.15.6, use tp_proxy_prepare_async() instead." since="0.9.0"/>
2171 <keyword type="function" name="tp_account_prepare_finish ()" link="telepathy-glib-account.html#tp-account-prepare-finish" deprecated="since 0.15.6, use tp_proxy_prepare_finish() instead." since="0.9.0"/>
21132172 <keyword type="macro" name="TP_ACCOUNT_FEATURE_ADDRESSING" link="telepathy-glib-account.html#TP-ACCOUNT-FEATURE-ADDRESSING:CAPS" since="0.13.8"/>
21142173 <keyword type="function" name="tp_account_get_uri_schemes ()" link="telepathy-glib-account.html#tp-account-get-uri-schemes" since="0.13.8"/>
21152174 <keyword type="function" name="tp_account_associated_with_uri_scheme ()" link="telepathy-glib-account.html#tp-account-associated-with-uri-scheme" since="0.13.8"/>
23162375 <keyword type="property" name="The &quot;contact&quot; property" link="telepathy-glib-stream-tube-connection.html#TpStreamTubeConnection--contact"/>
23172376 <keyword type="property" name="The &quot;socket-connection&quot; property" link="telepathy-glib-stream-tube-connection.html#TpStreamTubeConnection--socket-connection"/>
23182377 <keyword type="signal" name="The &quot;closed&quot; signal" link="telepathy-glib-stream-tube-connection.html#TpStreamTubeConnection-closed"/>
2378 <keyword type="struct" name="struct TpDBusTubeChannel" link="telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel-struct"/>
2379 <keyword type="struct" name="struct TpDBusTubeChannelClass" link="telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannelClass" since="0.15.6"/>
2380 <keyword type="function" name="tp_dbus_tube_channel_get_parameters ()" link="telepathy-glib-dbus-tube-channel.html#tp-dbus-tube-channel-get-parameters" since="0.15.6"/>
2381 <keyword type="function" name="tp_dbus_tube_channel_get_service_name ()" link="telepathy-glib-dbus-tube-channel.html#tp-dbus-tube-channel-get-service-name" since="0.15.6"/>
2382 <keyword type="property" name="The &quot;parameters&quot; property" link="telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel--parameters"/>
2383 <keyword type="property" name="The &quot;service-name&quot; property" link="telepathy-glib-dbus-tube-channel.html#TpDBusTubeChannel--service-name"/>
23192384 <keyword type="struct" name="TpClientChannelFactory" link="telepathy-glib-client-channel-factory.html#TpClientChannelFactory-struct"/>
23202385 <keyword type="struct" name="struct TpClientChannelFactoryInterface" link="telepathy-glib-client-channel-factory.html#TpClientChannelFactoryInterface" since="0.13.2"/>
23212386 <keyword type="function" name="tp_client_channel_factory_create_channel ()" link="telepathy-glib-client-channel-factory.html#tp-client-channel-factory-create-channel" since="0.13.2"/>
25082573 <keyword type="function" name="tp_svc_channel_interface_conference_emit_channel_removed ()" link="telepathy-glib-svc-channel-group.html#tp-svc-channel-interface-conference-emit-channel-removed"/>
25092574 <keyword type="signal" name="The &quot;group-flags-changed&quot; signal" link="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-group-flags-changed"/>
25102575 <keyword type="signal" name="The &quot;handle-owners-changed&quot; signal" link="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-handle-owners-changed"/>
2576 <keyword type="signal" name="The &quot;handle-owners-changed-detailed&quot; signal" link="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-handle-owners-changed-detailed"/>
25112577 <keyword type="signal" name="The &quot;members-changed&quot; signal" link="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-members-changed"/>
25122578 <keyword type="signal" name="The &quot;members-changed-detailed&quot; signal" link="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-members-changed-detailed"/>
2579 <keyword type="signal" name="The &quot;self-contact-changed&quot; signal" link="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-self-contact-changed"/>
25132580 <keyword type="signal" name="The &quot;self-handle-changed&quot; signal" link="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceGroup-self-handle-changed"/>
25142581 <keyword type="signal" name="The &quot;channel-merged&quot; signal" link="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceConference-channel-merged"/>
25152582 <keyword type="signal" name="The &quot;channel-removed&quot; signal" link="telepathy-glib-svc-channel-group.html#TpSvcChannelInterfaceConference-channel-removed"/>
2583 <keyword type="struct" name="TpSvcChannelInterfaceRoom" link="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceRoom-struct"/>
2584 <keyword type="struct" name="TpSvcChannelInterfaceRoomClass" link="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceRoomClass"/>
2585 <keyword type="struct" name="TpSvcChannelInterfaceRoomConfig" link="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceRoomConfig-struct"/>
2586 <keyword type="struct" name="TpSvcChannelInterfaceRoomConfigClass" link="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceRoomConfigClass"/>
2587 <keyword type="function" name="tp_svc_channel_interface_room_config_implement_update_configuration ()" link="telepathy-glib-svc-channel-room.html#tp-svc-channel-interface-room-config-implement-update-configuration"/>
2588 <keyword type="function" name="tp_svc_channel_interface_room_config_return_from_update_configuration ()" link="telepathy-glib-svc-channel-room.html#tp-svc-channel-interface-room-config-return-from-update-configuration"/>
2589 <keyword type="function" name="tp_svc_channel_interface_room_config_update_configuration_impl ()" link="telepathy-glib-svc-channel-room.html#tp-svc-channel-interface-room-config-update-configuration-impl"/>
2590 <keyword type="struct" name="TpSvcChannelInterfaceSubject" link="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceSubject-struct"/>
2591 <keyword type="struct" name="TpSvcChannelInterfaceSubjectClass" link="telepathy-glib-svc-channel-room.html#TpSvcChannelInterfaceSubjectClass"/>
2592 <keyword type="function" name="tp_svc_channel_interface_subject_implement_set_subject ()" link="telepathy-glib-svc-channel-room.html#tp-svc-channel-interface-subject-implement-set-subject"/>
2593 <keyword type="function" name="tp_svc_channel_interface_subject_return_from_set_subject ()" link="telepathy-glib-svc-channel-room.html#tp-svc-channel-interface-subject-return-from-set-subject"/>
2594 <keyword type="function" name="tp_svc_channel_interface_subject_set_subject_impl ()" link="telepathy-glib-svc-channel-room.html#tp-svc-channel-interface-subject-set-subject-impl"/>
25162595 <keyword type="struct" name="TpSvcChannelTypeContactList" link="telepathy-glib-svc-channel-contactlist.html#TpSvcChannelTypeContactList-struct"/>
25172596 <keyword type="struct" name="TpSvcChannelTypeContactListClass" link="telepathy-glib-svc-channel-contactlist.html#TpSvcChannelTypeContactListClass"/>
25182597 <keyword type="struct" name="TpSvcChannelTypeContactSearch" link="telepathy-glib-svc-channel-contactsearch.html#TpSvcChannelTypeContactSearch-struct"/>
35453624 <keyword type="function" name="tp_contacts_mixin_set_contact_attribute ()" link="telepathy-glib-TpContactsMixin.html#tp-contacts-mixin-set-contact-attribute" since="0.7.14"/>
35463625 <keyword type="function" name="tp_contacts_mixin_get_contact_attributes ()" link="telepathy-glib-TpContactsMixin.html#tp-contacts-mixin-get-contact-attributes"/>
35473626 <keyword type="function" name="TpContactsMixinFillContactAttributesFunc ()" link="telepathy-glib-TpContactsMixin.html#TpContactsMixinFillContactAttributesFunc"/>
3548 <keyword type="enum" name="enum TpDBusPropertiesMixinFlags" link="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinFlags" since="0.7.3"/>
3627 <keyword type="enum" name="enum TpDBusPropertiesMixinFlags" link="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinFlags-enum"/>
35493628 <keyword type="macro" name="TP_TYPE_DBUS_PROPERTIES_MIXIN_FLAGS" link="telepathy-glib-dbus-properties-mixin.html#TP-TYPE-DBUS-PROPERTIES-MIXIN-FLAGS:CAPS" since="0.11.5"/>
35503629 <keyword type="struct" name="TpDBusPropertiesMixinIfaceInfo" link="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinIfaceInfo" since="0.7.3"/>
35513630 <keyword type="struct" name="TpDBusPropertiesMixinPropInfo" link="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinPropInfo" since="0.7.3"/>
35523631 <keyword type="function" name="tp_svc_interface_set_dbus_properties_info ()" link="telepathy-glib-dbus-properties-mixin.html#tp-svc-interface-set-dbus-properties-info" since="0.7.3"/>
3632 <keyword type="function" name="tp_svc_interface_get_dbus_properties_info ()" link="telepathy-glib-dbus-properties-mixin.html#tp-svc-interface-get-dbus-properties-info" since="0.15.8"/>
35533633 <keyword type="struct" name="TpDBusPropertiesMixinClass" link="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinClass" since="0.7.3"/>
35543634 <keyword type="struct" name="TpDBusPropertiesMixinIfaceImpl" link="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinIfaceImpl" since="0.7.3"/>
35553635 <keyword type="struct" name="TpDBusPropertiesMixinPropImpl" link="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinPropImpl" since="0.7.3"/>
35613641 <keyword type="function" name="tp_dbus_properties_mixin_implement_interface ()" link="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-implement-interface"/>
35623642 <keyword type="function" name="tp_dbus_properties_mixin_iface_init ()" link="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-iface-init"/>
35633643 <keyword type="function" name="tp_dbus_properties_mixin_get ()" link="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-get" since="0.7.13"/>
3644 <keyword type="function" name="tp_dbus_properties_mixin_set ()" link="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-set" since="0.15.8"/>
35643645 <keyword type="function" name="tp_dbus_properties_mixin_fill_properties_hash ()" link="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-fill-properties-hash" since="0.11.11"/>
35653646 <keyword type="function" name="tp_dbus_properties_mixin_make_properties_hash ()" link="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-make-properties-hash"/>
3647 <keyword type="function" name="tp_dbus_properties_mixin_emit_properties_changed ()" link="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-emit-properties-changed" since="0.15.6"/>
3648 <keyword type="function" name="tp_dbus_properties_mixin_emit_properties_changed_varargs ()" link="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-emit-properties-changed-varargs" since="0.15.6"/>
35663649 <keyword type="function" name="TpExportableChannelFunc ()" link="TpExportableChannel.html#TpExportableChannelFunc"/>
35673650 <keyword type="struct" name="TpExportableChannel" link="TpExportableChannel.html#TpExportableChannel-struct"/>
35683651 <keyword type="struct" name="struct TpExportableChannelIface" link="TpExportableChannel.html#TpExportableChannelIface"/>
36443727 <keyword type="macro" name="TP_TYPE_PROPERTY_VALUE_LIST" link="telepathy-glib-TpPropertiesMixin.html#TP-TYPE-PROPERTY-VALUE-LIST:CAPS"/>
36453728 <keyword type="macro" name="TP_TYPE_PROPERTY_FLAGS_STRUCT" link="telepathy-glib-TpPropertiesMixin.html#TP-TYPE-PROPERTY-FLAGS-STRUCT:CAPS"/>
36463729 <keyword type="macro" name="TP_TYPE_PROPERTY_FLAGS_LIST" link="telepathy-glib-TpPropertiesMixin.html#TP-TYPE-PROPERTY-FLAGS-LIST:CAPS"/>
3730 <keyword type="struct" name="TpBaseRoomConfig" link="TpBaseRoomConfig.html#TpBaseRoomConfig-struct"/>
3731 <keyword type="struct" name="struct TpBaseRoomConfigClass" link="TpBaseRoomConfig.html#TpBaseRoomConfigClass"/>
3732 <keyword type="function" name="TpBaseRoomConfigUpdateAsync ()" link="TpBaseRoomConfig.html#TpBaseRoomConfigUpdateAsync"/>
3733 <keyword type="function" name="TpBaseRoomConfigUpdateFinish ()" link="TpBaseRoomConfig.html#TpBaseRoomConfigUpdateFinish"/>
3734 <keyword type="function" name="tp_base_room_config_register_class ()" link="TpBaseRoomConfig.html#tp-base-room-config-register-class"/>
3735 <keyword type="function" name="tp_base_room_config_iface_init ()" link="TpBaseRoomConfig.html#tp-base-room-config-iface-init"/>
3736 <keyword type="enum" name="enum TpBaseRoomConfigProperty" link="TpBaseRoomConfig.html#TpBaseRoomConfigProperty-enum"/>
3737 <keyword type="macro" name="TP_TYPE_BASE_ROOM_CONFIG_PROPERTY" link="TpBaseRoomConfig.html#TP-TYPE-BASE-ROOM-CONFIG-PROPERTY:CAPS"/>
3738 <keyword type="function" name="tp_base_room_config_dup_channel ()" link="TpBaseRoomConfig.html#tp-base-room-config-dup-channel"/>
3739 <keyword type="function" name="tp_base_room_config_set_can_update_configuration ()" link="TpBaseRoomConfig.html#tp-base-room-config-set-can-update-configuration"/>
3740 <keyword type="function" name="tp_base_room_config_set_property_mutable ()" link="TpBaseRoomConfig.html#tp-base-room-config-set-property-mutable"/>
3741 <keyword type="function" name="tp_base_room_config_emit_properties_changed ()" link="TpBaseRoomConfig.html#tp-base-room-config-emit-properties-changed"/>
3742 <keyword type="function" name="tp_base_room_config_set_retrieved ()" link="TpBaseRoomConfig.html#tp-base-room-config-set-retrieved"/>
3743 <keyword type="property" name="The &quot;anonymous&quot; property" link="TpBaseRoomConfig.html#TpBaseRoomConfig--anonymous"/>
3744 <keyword type="property" name="The &quot;can-update-configuration&quot; property" link="TpBaseRoomConfig.html#TpBaseRoomConfig--can-update-configuration"/>
3745 <keyword type="property" name="The &quot;channel&quot; property" link="TpBaseRoomConfig.html#TpBaseRoomConfig--channel"/>
3746 <keyword type="property" name="The &quot;configuration-retrieved&quot; property" link="TpBaseRoomConfig.html#TpBaseRoomConfig--configuration-retrieved"/>
3747 <keyword type="property" name="The &quot;description&quot; property" link="TpBaseRoomConfig.html#TpBaseRoomConfig--description"/>
3748 <keyword type="property" name="The &quot;invite-only&quot; property" link="TpBaseRoomConfig.html#TpBaseRoomConfig--invite-only"/>
3749 <keyword type="property" name="The &quot;limit&quot; property" link="TpBaseRoomConfig.html#TpBaseRoomConfig--limit"/>
3750 <keyword type="property" name="The &quot;moderated&quot; property" link="TpBaseRoomConfig.html#TpBaseRoomConfig--moderated"/>
3751 <keyword type="property" name="The &quot;mutable-properties&quot; property" link="TpBaseRoomConfig.html#TpBaseRoomConfig--mutable-properties"/>
3752 <keyword type="property" name="The &quot;password&quot; property" link="TpBaseRoomConfig.html#TpBaseRoomConfig--password"/>
3753 <keyword type="property" name="The &quot;password-protected&quot; property" link="TpBaseRoomConfig.html#TpBaseRoomConfig--password-protected"/>
3754 <keyword type="property" name="The &quot;persistent&quot; property" link="TpBaseRoomConfig.html#TpBaseRoomConfig--persistent"/>
3755 <keyword type="property" name="The &quot;private&quot; property" link="TpBaseRoomConfig.html#TpBaseRoomConfig--private"/>
3756 <keyword type="property" name="The &quot;title&quot; property" link="TpBaseRoomConfig.html#TpBaseRoomConfig--title"/>
36473757 <keyword type="macro" name="TP_HAS_GROUP_MIXIN()" link="telepathy-glib-TpGroupMixin.html#TP-HAS-GROUP-MIXIN:CAPS" since="0.13.9"/>
36483758 <keyword type="macro" name="TP_HAS_GROUP_MIXIN_CLASS()" link="telepathy-glib-TpGroupMixin.html#TP-HAS-GROUP-MIXIN-CLASS:CAPS" since="0.13.9"/>
36493759 <keyword type="function" name="TpGroupMixinAddMemberFunc ()" link="telepathy-glib-TpGroupMixin.html#TpGroupMixinAddMemberFunc"/>
44354545 <keyword type="constant" name="TP_ERROR_EMERGENCY_CALLS_NOT_SUPPORTED" link="telepathy-glib-errors.html#TP-ERROR-EMERGENCY-CALLS-NOT-SUPPORTED:CAPS"/>
44364546 <keyword type="constant" name="TP_ERROR_SOFTWARE_UPGRADE_REQUIRED" link="telepathy-glib-errors.html#TP-ERROR-SOFTWARE-UPGRADE-REQUIRED:CAPS"/>
44374547 <keyword type="constant" name="TP_ERROR_INSUFFICIENT_BALANCE" link="telepathy-glib-errors.html#TP-ERROR-INSUFFICIENT-BALANCE:CAPS"/>
4548 <keyword type="constant" name="TP_ERROR_MEDIA_CODECS_INCOMPATIBLE" link="telepathy-glib-errors.html#TP-ERROR-MEDIA-CODECS-INCOMPATIBLE:CAPS"/>
4549 <keyword type="constant" name="TP_ERROR_MEDIA_UNSUPPORTED_TYPE" link="telepathy-glib-errors.html#TP-ERROR-MEDIA-UNSUPPORTED-TYPE:CAPS"/>
4550 <keyword type="constant" name="TP_ERROR_MEDIA_STREAMING_ERROR" link="telepathy-glib-errors.html#TP-ERROR-MEDIA-STREAMING-ERROR:CAPS"/>
44384551 <keyword type="constant" name="TP_CHANNEL_CONTACT_SEARCH_STATE_NOT_STARTED" link="telepathy-glib-gtypes.html#TP-CHANNEL-CONTACT-SEARCH-STATE-NOT-STARTED:CAPS"/>
44394552 <keyword type="constant" name="TP_CHANNEL_CONTACT_SEARCH_STATE_IN_PROGRESS" link="telepathy-glib-gtypes.html#TP-CHANNEL-CONTACT-SEARCH-STATE-IN-PROGRESS:CAPS"/>
44404553 <keyword type="constant" name="TP_CHANNEL_CONTACT_SEARCH_STATE_MORE_AVAILABLE" link="telepathy-glib-gtypes.html#TP-CHANNEL-CONTACT-SEARCH-STATE-MORE-AVAILABLE:CAPS"/>
44554568 <keyword type="constant" name="TP_CONTACT_FEATURE_CONTACT_GROUPS" link="telepathy-glib-contact.html#TP-CONTACT-FEATURE-CONTACT-GROUPS:CAPS"/>
44564569 <keyword type="constant" name="TP_DBUS_PROPERTIES_MIXIN_FLAG_READ" link="telepathy-glib-dbus-properties-mixin.html#TP-DBUS-PROPERTIES-MIXIN-FLAG-READ:CAPS"/>
44574570 <keyword type="constant" name="TP_DBUS_PROPERTIES_MIXIN_FLAG_WRITE" link="telepathy-glib-dbus-properties-mixin.html#TP-DBUS-PROPERTIES-MIXIN-FLAG-WRITE:CAPS"/>
4571 <keyword type="constant" name="TP_DBUS_PROPERTIES_MIXIN_FLAG_EMITS_CHANGED" link="telepathy-glib-dbus-properties-mixin.html#TP-DBUS-PROPERTIES-MIXIN-FLAG-EMITS-CHANGED:CAPS"/>
4572 <keyword type="constant" name="TP_DBUS_PROPERTIES_MIXIN_FLAG_EMITS_INVALIDATED" link="telepathy-glib-dbus-properties-mixin.html#TP-DBUS-PROPERTIES-MIXIN-FLAG-EMITS-INVALIDATED:CAPS"/>
4573 <keyword type="constant" name="TP_BASE_ROOM_CONFIG_ANONYMOUS" link="TpBaseRoomConfig.html#TP-BASE-ROOM-CONFIG-ANONYMOUS:CAPS"/>
4574 <keyword type="constant" name="TP_BASE_ROOM_CONFIG_INVITE_ONLY" link="TpBaseRoomConfig.html#TP-BASE-ROOM-CONFIG-INVITE-ONLY:CAPS"/>
4575 <keyword type="constant" name="TP_BASE_ROOM_CONFIG_LIMIT" link="TpBaseRoomConfig.html#TP-BASE-ROOM-CONFIG-LIMIT:CAPS"/>
4576 <keyword type="constant" name="TP_BASE_ROOM_CONFIG_MODERATED" link="TpBaseRoomConfig.html#TP-BASE-ROOM-CONFIG-MODERATED:CAPS"/>
4577 <keyword type="constant" name="TP_BASE_ROOM_CONFIG_TITLE" link="TpBaseRoomConfig.html#TP-BASE-ROOM-CONFIG-TITLE:CAPS"/>
4578 <keyword type="constant" name="TP_BASE_ROOM_CONFIG_DESCRIPTION" link="TpBaseRoomConfig.html#TP-BASE-ROOM-CONFIG-DESCRIPTION:CAPS"/>
4579 <keyword type="constant" name="TP_BASE_ROOM_CONFIG_PERSISTENT" link="TpBaseRoomConfig.html#TP-BASE-ROOM-CONFIG-PERSISTENT:CAPS"/>
4580 <keyword type="constant" name="TP_BASE_ROOM_CONFIG_PRIVATE" link="TpBaseRoomConfig.html#TP-BASE-ROOM-CONFIG-PRIVATE:CAPS"/>
4581 <keyword type="constant" name="TP_BASE_ROOM_CONFIG_PASSWORD_PROTECTED" link="TpBaseRoomConfig.html#TP-BASE-ROOM-CONFIG-PASSWORD-PROTECTED:CAPS"/>
4582 <keyword type="constant" name="TP_BASE_ROOM_CONFIG_PASSWORD" link="TpBaseRoomConfig.html#TP-BASE-ROOM-CONFIG-PASSWORD:CAPS"/>
4583 <keyword type="constant" name="TP_NUM_BASE_ROOM_CONFIG_PROPERTIES" link="TpBaseRoomConfig.html#TP-NUM-BASE-ROOM-CONFIG-PROPERTIES:CAPS"/>
44584584 <keyword type="constant" name="TP_CHANNEL_FACTORY_REQUEST_STATUS_NOT_IMPLEMENTED" link="TpChannelFactoryIface.html#TP-CHANNEL-FACTORY-REQUEST-STATUS-NOT-IMPLEMENTED:CAPS"/>
44594585 <keyword type="constant" name="TP_CHANNEL_FACTORY_REQUEST_STATUS_NOT_AVAILABLE" link="TpChannelFactoryIface.html#TP-CHANNEL-FACTORY-REQUEST-STATUS-NOT-AVAILABLE:CAPS"/>
44604586 <keyword type="constant" name="TP_CHANNEL_FACTORY_REQUEST_STATUS_INVALID_HANDLE" link="TpChannelFactoryIface.html#TP-CHANNEL-FACTORY-REQUEST-STATUS-INVALID-HANDLE:CAPS"/>
5757 <xi:include href="xml/contact-search-result.xml"/>
5858 <xi:include href="xml/channel.xml"/>
5959 <xi:include href="xml/channel-group.xml"/>
60 <xi:include href="xml/channel-room.xml"/>
6061 <xi:include href="xml/channel-text.xml"/>
6162 <xi:include href="xml/channel-media.xml"/>
6263 <xi:include href="xml/channel-file-transfer.xml"/>
7778 <xi:include href="xml/account-channel-request.xml"/>
7879 <xi:include href="xml/stream-tube-channel.xml"/>
7980 <xi:include href="xml/stream-tube-connection.xml"/>
81 <xi:include href="xml/dbus-tube-channel.xml"/>
8082 <xi:include href="xml/client-channel-factory.xml"/>
8183 <xi:include href="xml/basic-proxy-factory.xml"/>
8284 <xi:include href="xml/automatic-proxy-factory.xml"/>
9496 <xi:include href="xml/svc-generic.xml"/>
9597 <xi:include href="xml/svc-channel.xml"/>
9698 <xi:include href="xml/svc-channel-group.xml"/>
99 <xi:include href="xml/svc-channel-room.xml"/>
97100 <xi:include href="xml/svc-channel-contactlist.xml"/>
98101 <xi:include href="xml/svc-channel-contactsearch.xml"/>
99102 <xi:include href="xml/svc-channel-text.xml"/>
133136 <xi:include href="xml/base-channel.xml"/>
134137 <xi:include href="xml/presence-mixin.xml"/>
135138 <xi:include href="xml/properties-mixin.xml"/>
139 <xi:include href="xml/base-room-config.xml"/>
136140 <xi:include href="xml/group-mixin.xml"/>
137141 <xi:include href="xml/message-mixin.xml"/>
138142 <xi:include href="xml/message.xml"/>
477477 TP_SVC_CHANNEL_INTERFACE_SMS_GET_CLASS
478478 TP_SVC_CHANNEL_INTERFACE_SMS
479479 TP_IS_SVC_CHANNEL_INTERFACE_SMS
480 </SECTION>
481
482 <SECTION>
483 <INCLUDE>telepathy-glib/svc-channel.h</INCLUDE>
484 <TITLE>svc-channel-room</TITLE>
485 <FILE>svc-channel-room</FILE>
486 <SUBSECTION>
487 TpSvcChannelInterfaceRoom
488 TpSvcChannelInterfaceRoomClass
489 <SUBSECTION Standard>
490 tp_svc_channel_interface_room_get_type
491 TP_TYPE_SVC_CHANNEL_INTERFACE_ROOM
492 TP_SVC_CHANNEL_INTERFACE_ROOM
493 TP_SVC_CHANNEL_INTERFACE_ROOM_GET_CLASS
494 TP_IS_SVC_CHANNEL_INTERFACE_ROOM
495 <SUBSECTION>
496 TpSvcChannelInterfaceRoomConfig
497 TpSvcChannelInterfaceRoomConfigClass
498 tp_svc_channel_interface_room_config_implement_update_configuration
499 tp_svc_channel_interface_room_config_return_from_update_configuration
500 tp_svc_channel_interface_room_config_update_configuration_impl
501 <SUBSECTION Standard>
502 tp_svc_channel_interface_room_config_get_type
503 TP_TYPE_SVC_CHANNEL_INTERFACE_ROOM_CONFIG
504 TP_SVC_CHANNEL_INTERFACE_ROOM_CONFIG
505 TP_SVC_CHANNEL_INTERFACE_ROOM_CONFIG_GET_CLASS
506 TP_IS_SVC_CHANNEL_INTERFACE_ROOM_CONFIG
507 <SUBSECTION>
508 TpSvcChannelInterfaceSubject
509 TpSvcChannelInterfaceSubjectClass
510 tp_svc_channel_interface_subject_implement_set_subject
511 tp_svc_channel_interface_subject_return_from_set_subject
512 tp_svc_channel_interface_subject_set_subject_impl
513 <SUBSECTION Standard>
514 tp_svc_channel_interface_subject_get_type
515 TP_TYPE_SVC_CHANNEL_INTERFACE_SUBJECT
516 TP_SVC_CHANNEL_INTERFACE_SUBJECT
517 TP_SVC_CHANNEL_INTERFACE_SUBJECT_GET_CLASS
518 TP_IS_SVC_CHANNEL_INTERFACE_SUBJECT
480519 </SECTION>
481520
482521 <SECTION>
18081847 </SECTION>
18091848
18101849 <SECTION>
1850 <FILE>base-room-config</FILE>
1851 <INCLUDE>telepathy-glib/base-room-config.h</INCLUDE>
1852 <TITLE>TpBaseRoomConfig</TITLE>
1853 TpBaseRoomConfig
1854 TpBaseRoomConfigClass
1855 TpBaseRoomConfigUpdateAsync
1856 TpBaseRoomConfigUpdateFinish
1857 tp_base_room_config_register_class
1858 tp_base_room_config_iface_init
1859 <SUBSECTION>
1860 TpBaseRoomConfigProperty
1861 TP_TYPE_BASE_ROOM_CONFIG_PROPERTY
1862 <SUBSECTION>
1863 tp_base_room_config_dup_channel
1864 tp_base_room_config_set_can_update_configuration
1865 tp_base_room_config_set_property_mutable
1866 tp_base_room_config_emit_properties_changed
1867 tp_base_room_config_set_retrieved
1868 <SUBSECTION Standard>
1869 TP_BASE_ROOM_CONFIG
1870 TP_BASE_ROOM_CONFIG_CLASS
1871 TP_BASE_ROOM_CONFIG_GET_CLASS
1872 TP_IS_BASE_ROOM_CONFIG
1873 TP_IS_BASE_ROOM_CONFIG_CLASS
1874 TP_TYPE_BASE_ROOM_CONFIG
1875 tp_base_room_config_get_type
1876 tp_base_room_config_property_get_type
1877 <SUBSECTION Private>
1878 TpBaseRoomConfigPrivate
1879 </SECTION>
1880
1881 <SECTION>
18111882 <INCLUDE>telepathy-glib/contacts-mixin.h</INCLUDE>
18121883 <FILE>contacts-mixin</FILE>
18131884
21492220 TpDBusPropertiesMixinIfaceInfo
21502221 TpDBusPropertiesMixinPropInfo
21512222 tp_svc_interface_set_dbus_properties_info
2223 tp_svc_interface_get_dbus_properties_info
21522224 <SUBSECTION>
21532225 TpDBusPropertiesMixinClass
21542226 TpDBusPropertiesMixinIfaceImpl
21612233 tp_dbus_properties_mixin_implement_interface
21622234 tp_dbus_properties_mixin_iface_init
21632235 tp_dbus_properties_mixin_get
2236 tp_dbus_properties_mixin_set
21642237 tp_dbus_properties_mixin_fill_properties_hash
21652238 tp_dbus_properties_mixin_make_properties_hash
2239 tp_dbus_properties_mixin_emit_properties_changed
2240 tp_dbus_properties_mixin_emit_properties_changed_varargs
21662241 <SUBSECTION Standard>
21672242 tp_dbus_properties_mixin_flags_get_type
21682243 </SECTION>
22282303 TP_ERROR_STR_SOFTWARE_UPGRADE_REQUIRED
22292304 TP_ERROR_STR_EMERGENCY_CALLS_NOT_SUPPORTED
22302305 TP_ERROR_STR_INSUFFICIENT_BALANCE
2306 TP_ERROR_STR_MEDIA_CODECS_INCOMPATIBLE
2307 TP_ERROR_STR_MEDIA_UNSUPPORTED_TYPE
2308 TP_ERROR_STR_MEDIA_STREAMING_ERROR
22312309 <SUBSECTION Standard>
22322310 tp_error_get_type
22332311 tp_errors_quark
26002678 TP_IFACE_QUARK_CHANNEL_INTERFACE_HOLD
26012679 TP_IFACE_CHANNEL_INTERFACE_PASSWORD
26022680 TP_IFACE_QUARK_CHANNEL_INTERFACE_PASSWORD
2681 TP_IFACE_CHANNEL_INTERFACE_ROOM
2682 TP_IFACE_QUARK_CHANNEL_INTERFACE_ROOM
2683 TP_IFACE_CHANNEL_INTERFACE_ROOM_CONFIG
2684 TP_IFACE_QUARK_CHANNEL_INTERFACE_ROOM_CONFIG
26032685 TP_IFACE_CHANNEL_INTERFACE_SASL_AUTHENTICATION
26042686 TP_IFACE_QUARK_CHANNEL_INTERFACE_SASL_AUTHENTICATION
26052687 TP_IFACE_CHANNEL_INTERFACE_SECURABLE
26062688 TP_IFACE_QUARK_CHANNEL_INTERFACE_SECURABLE
26072689 TP_IFACE_CHANNEL_INTERFACE_SMS
26082690 TP_IFACE_QUARK_CHANNEL_INTERFACE_SMS
2691 TP_IFACE_CHANNEL_INTERFACE_SUBJECT
2692 TP_IFACE_QUARK_CHANNEL_INTERFACE_SUBJECT
26092693 TP_IFACE_CHANNEL_INTERFACE_MEDIA_SIGNALLING
26102694 TP_IFACE_QUARK_CHANNEL_INTERFACE_MEDIA_SIGNALLING
26112695 TP_IFACE_CHANNEL_INTERFACE_MESSAGES
26992783 TP_PROP_CHANNEL_INTERFACE_GROUP_HANDLE_OWNERS
27002784 TP_PROP_CHANNEL_INTERFACE_GROUP_LOCAL_PENDING_MEMBERS
27012785 TP_PROP_CHANNEL_INTERFACE_GROUP_MEMBERS
2786 TP_PROP_CHANNEL_INTERFACE_GROUP_MEMBER_IDENTIFIERS
27022787 TP_PROP_CHANNEL_INTERFACE_GROUP_REMOTE_PENDING_MEMBERS
27032788 TP_PROP_CHANNEL_INTERFACE_GROUP_SELF_HANDLE
27042789 TP_PROP_CHANNEL_INTERFACE_MESSAGES_DELIVERY_REPORTING_SUPPORT
27062791 TP_PROP_CHANNEL_INTERFACE_MESSAGES_MESSAGE_TYPES
27072792 TP_PROP_CHANNEL_INTERFACE_MESSAGES_PENDING_MESSAGES
27082793 TP_PROP_CHANNEL_INTERFACE_MESSAGES_SUPPORTED_CONTENT_TYPES
2794 TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_ANONYMOUS
2795 TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_CAN_UPDATE_CONFIGURATION
2796 TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_CONFIGURATION_RETRIEVED
2797 TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_DESCRIPTION
2798 TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_INVITEONLY
2799 TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_LIMIT
2800 TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_MODERATED
2801 TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_MUTABLE_PROPERTIES
2802 TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_PASSWORD
2803 TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_PASSWORD_PROTECTED
2804 TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_PERSISTENT
2805 TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_PRIVATE
2806 TP_PROP_CHANNEL_INTERFACE_ROOM_CONFIG_TITLE
2807 TP_PROP_CHANNEL_INTERFACE_ROOM_ROOM_NAME
2808 TP_PROP_CHANNEL_INTERFACE_ROOM_SERVER
27092809 TP_PROP_CHANNEL_INTERFACE_SASL_AUTHENTICATION_AUTHORIZATION_IDENTITY
27102810 TP_PROP_CHANNEL_INTERFACE_SASL_AUTHENTICATION_AVAILABLE_MECHANISMS
27112811 TP_PROP_CHANNEL_INTERFACE_SASL_AUTHENTICATION_CAN_TRY_AGAIN
27222822 TP_PROP_CHANNEL_INTERFACE_SERVICE_POINT_INITIAL_SERVICE_POINT
27232823 TP_PROP_CHANNEL_INTERFACE_SMS_FLASH
27242824 TP_PROP_CHANNEL_INTERFACE_SMS_SMS_CHANNEL
2825 TP_PROP_CHANNEL_INTERFACE_SUBJECT_ACTOR
2826 TP_PROP_CHANNEL_INTERFACE_SUBJECT_ACTOR_HANDLE
2827 TP_PROP_CHANNEL_INTERFACE_SUBJECT_CAN_SET
2828 TP_PROP_CHANNEL_INTERFACE_SUBJECT_SUBJECT
2829 TP_PROP_CHANNEL_INTERFACE_SUBJECT_TIMESTAMP
27252830 TP_PROP_CHANNEL_INTERFACE_TUBE_PARAMETERS
27262831 TP_PROP_CHANNEL_INTERFACE_TUBE_STATE
27272832 TP_PROP_CHANNEL_TYPE_SERVER_AUTHENTICATION_AUTHENTICATION_METHOD
28822987 tp_iface_quark_channel_interface_media_signalling
28832988 tp_iface_quark_channel_interface_messages
28842989 tp_iface_quark_channel_interface_password
2990 tp_iface_quark_channel_interface_room
2991 tp_iface_quark_channel_interface_room_config
28852992 tp_iface_quark_channel_interface_sasl_authentication
28862993 tp_iface_quark_channel_interface_securable
28872994 tp_iface_quark_channel_interface_sms
2995 tp_iface_quark_channel_interface_subject
28882996 tp_iface_quark_channel_type_contact_list
28892997 tp_iface_quark_channel_type_contact_search
28902998 tp_iface_quark_channel_type_file_transfer
30673175 tp_channel_is_ready
30683176 <SUBSECTION>
30693177 TP_CHANNEL_FEATURE_CORE
3178 TP_CHANNEL_FEATURE_CONTACTS
30703179 tp_channel_borrow_connection
30713180 tp_channel_borrow_immutable_properties
30723181 tp_channel_get_channel_type
30733182 tp_channel_get_channel_type_id
30743183 tp_channel_get_handle
30753184 tp_channel_get_identifier
3185 tp_channel_get_target_contact
30763186 tp_channel_get_requested
30773187 tp_channel_get_initiator_handle
30783188 tp_channel_get_initiator_identifier
3189 tp_channel_get_initiator_contact
30793190 tp_channel_join_async
30803191 tp_channel_join_finish
30813192 tp_channel_leave_async
30883199 tp_channel_get_feature_quark_chat_states
30893200 tp_channel_get_feature_quark_core
30903201 tp_channel_get_feature_quark_group
3202 tp_channel_get_feature_quark_contacts
30913203 tp_channel_get_feature_quark_password
30923204 <SUBSECTION>
30933205 TP_CHANNEL_FEATURE_CHAT_STATES
30963208 TP_CHANNEL_FEATURE_GROUP
30973209 tp_channel_group_get_flags
30983210 tp_channel_group_get_handle_owner
3211 tp_channel_group_get_contact_owner
30993212 tp_channel_group_get_self_handle
3213 tp_channel_group_get_self_contact
3214 tp_channel_group_get_members
3215 tp_channel_group_dup_members_contacts
31003216 tp_channel_group_get_local_pending
3101 tp_channel_group_get_members
3217 tp_channel_group_dup_local_pending_contacts
31023218 tp_channel_group_get_remote_pending
3219 tp_channel_group_dup_remote_pending_contacts
31033220 tp_channel_group_get_local_pending_info
3221 tp_channel_group_get_local_pending_contact_info
31043222 TP_ERRORS_REMOVED_FROM_GROUP
31053223 <SUBSECTION>
31063224 TP_CHANNEL_FEATURE_PASSWORD
31843302 tp_cli_channel_interface_group_connect_to_self_handle_changed
31853303 tp_cli_channel_interface_group_signal_callback_handle_owners_changed
31863304 tp_cli_channel_interface_group_signal_callback_self_handle_changed
3305 tp_cli_channel_interface_group_connect_to_handle_owners_changed_detailed
3306 tp_cli_channel_interface_group_connect_to_self_contact_changed
3307 tp_cli_channel_interface_group_signal_callback_handle_owners_changed_detailed
3308 tp_cli_channel_interface_group_signal_callback_self_contact_changed
3309 tp_svc_channel_interface_group_emit_handle_owners_changed_detailed
3310 tp_svc_channel_interface_group_emit_self_contact_changed
3311
31873312 <SUBSECTION>
31883313 tp_cli_channel_interface_conference_connect_to_channel_merged
31893314 tp_cli_channel_interface_conference_connect_to_channel_removed
32493374 tp_cli_channel_interface_sms_call_get_sms_length
32503375 tp_cli_channel_interface_sms_callback_for_get_sms_length
32513376 tp_cli_channel_interface_sms_run_get_sms_length
3377 </SECTION>
3378
3379 <SECTION>
3380 <FILE>channel-room</FILE>
3381 <TITLE>channel-room</TITLE>
3382 <INCLUDE>telepathy-glib/channel.h</INCLUDE>
3383 <SUBSECTION>
3384 tp_cli_channel_interface_room_config_call_update_configuration
3385 tp_cli_channel_interface_room_config_callback_for_update_configuration
3386 <SUBSECTION>
3387 tp_cli_channel_interface_subject_call_set_subject
3388 tp_cli_channel_interface_subject_callback_for_set_subject
32523389 </SECTION>
32533390
32543391 <SECTION>
51825319 tp_protocol_get_icon_name
51835320 tp_protocol_get_vcard_field
51845321 tp_protocol_get_authentication_types
5322 tp_protocol_get_avatar_requirements
51855323 <SUBSECTION>
51865324 tp_cli_protocol_call_identify_account
51875325 tp_cli_protocol_call_normalize_contact
54835621 </SECTION>
54845622
54855623 <SECTION>
5624 <FILE>dbus-tube-channel</FILE>
5625 <TITLE>dbus-tube-channel</TITLE>
5626 <INCLUDE>telepathy-glib/dbus-tube-channel.h</INCLUDE>
5627 <SUBSECTION>
5628 TpDBusTubeChannel
5629 TpDBusTubeChannelClass
5630 tp_dbus_tube_channel_get_parameters
5631 tp_dbus_tube_channel_get_service_name
5632 <SUBSECTION Standard>
5633 TP_IS_DBUS_TUBE_CHANNEL
5634 TP_IS_DBUS_TUBE_CHANNEL_CLASS
5635 TP_DBUS_TUBE_CHANNEL
5636 TP_DBUS_TUBE_CHANNEL_CLASS
5637 TP_DBUS_TUBE_CHANNEL_GET_CLASS
5638 TP_TYPE_DBUS_TUBE_CHANNEL
5639 tp_dbus_tube_channel_get_type
5640 TpDBusTubeChannelPrivate
5641 </SECTION>
5642
5643 <SECTION>
54865644 <FILE>client-channel-factory</FILE>
54875645 <TITLE>client-channel-factory</TITLE>
54885646 <INCLUDE>telepathy-glib/client-channel-factory.h</INCLUDE>
0 tp_account_channel_request_get_type
1 tp_account_get_type
2 tp_account_manager_get_type
3 tp_add_dispatch_operation_context_get_type
4 tp_automatic_client_factory_get_type
5 tp_automatic_proxy_factory_get_type
6 tp_avatar_requirements_get_type
7 tp_base_channel_get_type
8 tp_base_client_get_type
9 tp_base_connection_get_type
10 tp_base_connection_manager_get_type
11 tp_base_contact_list_get_type
12 tp_base_password_channel_get_type
13 tp_base_protocol_get_type
14 tp_base_room_config_get_type
15 tp_base_room_config_property_get_type
16 tp_basic_proxy_factory_get_type
17 tp_blockable_contact_list_get_type
18 tp_capabilities_get_type
19 tp_channel_dispatch_operation_get_type
20 tp_channel_dispatcher_get_type
21 tp_channel_factory_iface_get_type
22 tp_channel_get_type
23 tp_channel_iface_get_type
24 tp_channel_manager_get_type
25 tp_channel_request_get_type
26 tp_client_channel_factory_get_type
27 tp_client_get_type
28 tp_client_message_get_type
29 tp_cm_info_source_get_type
30 tp_cm_message_get_type
31 tp_connection_get_type
32 tp_connection_manager_get_type
33 tp_connection_manager_param_get_type
34 tp_connection_manager_protocol_get_type
35 tp_contact_feature_get_type
36 tp_contact_get_type
37 tp_contact_group_list_get_type
38 tp_contact_info_field_get_type
39 tp_contact_info_field_spec_get_type
40 tp_contact_info_list_get_type
41 tp_contact_info_spec_list_get_type
42 tp_contact_search_get_type
43 tp_contact_search_result_get_type
44 tp_dbus_daemon_get_type
45 tp_dbus_error_get_type
46 tp_dbus_name_type_get_type
47 tp_dbus_properties_mixin_flags_get_type
48 tp_dbus_tube_channel_get_type
49 tp_debug_sender_get_type
50 tp_dtmf_player_get_type
51 tp_dynamic_handle_repo_get_type
52 tp_error_get_type
53 tp_exportable_channel_get_type
54 tp_file_transfer_channel_get_type
55 tp_handle_channels_context_get_type
56 tp_handle_repo_iface_get_type
57 tp_handle_set_get_type
58 tp_intset_get_type
59 tp_media_session_handler_get_type
60 tp_media_stream_handler_get_type
61 tp_message_get_type
62 tp_mutable_contact_group_list_get_type
63 tp_mutable_contact_list_get_type
64 tp_observe_channels_context_get_type
65 tp_protocol_get_type
66 tp_proxy_get_type
67 tp_signalled_message_get_type
68 tp_simple_approver_get_type
69 tp_simple_client_factory_get_type
70 tp_simple_handler_get_type
71 tp_simple_observer_get_type
72 tp_simple_password_manager_get_type
73 tp_static_handle_repo_get_type
74 tp_stream_tube_channel_get_type
75 tp_stream_tube_connection_get_type
76 tp_svc_account_get_type
77 tp_svc_account_interface_addressing_get_type
78 tp_svc_account_interface_avatar_get_type
79 tp_svc_account_interface_storage_get_type
80 tp_svc_account_manager_get_type
81 tp_svc_authentication_tls_certificate_get_type
82 tp_svc_channel_dispatch_operation_get_type
83 tp_svc_channel_dispatcher_get_type
84 tp_svc_channel_dispatcher_interface_operation_list_get_type
85 tp_svc_channel_get_type
86 tp_svc_channel_interface_anonymity_get_type
87 tp_svc_channel_interface_call_state_get_type
88 tp_svc_channel_interface_chat_state_get_type
89 tp_svc_channel_interface_conference_get_type
90 tp_svc_channel_interface_destroyable_get_type
91 tp_svc_channel_interface_dtmf_get_type
92 tp_svc_channel_interface_group_get_type
93 tp_svc_channel_interface_hold_get_type
94 tp_svc_channel_interface_media_signalling_get_type
95 tp_svc_channel_interface_messages_get_type
96 tp_svc_channel_interface_password_get_type
97 tp_svc_channel_interface_room_config_get_type
98 tp_svc_channel_interface_room_get_type
99 tp_svc_channel_interface_sasl_authentication_get_type
100 tp_svc_channel_interface_securable_get_type
101 tp_svc_channel_interface_service_point_get_type
102 tp_svc_channel_interface_sms_get_type
103 tp_svc_channel_interface_subject_get_type
104 tp_svc_channel_interface_tube_get_type
105 tp_svc_channel_request_get_type
106 tp_svc_channel_type_contact_list_get_type
107 tp_svc_channel_type_contact_search_get_type
108 tp_svc_channel_type_dbus_tube_get_type
109 tp_svc_channel_type_file_transfer_get_type
110 tp_svc_channel_type_room_list_get_type
111 tp_svc_channel_type_server_authentication_get_type
112 tp_svc_channel_type_server_tls_connection_get_type
113 tp_svc_channel_type_stream_tube_get_type
114 tp_svc_channel_type_streamed_media_get_type
115 tp_svc_channel_type_text_get_type
116 tp_svc_channel_type_tubes_get_type
117 tp_svc_client_approver_get_type
118 tp_svc_client_get_type
119 tp_svc_client_handler_get_type
120 tp_svc_client_interface_requests_get_type
121 tp_svc_client_observer_get_type
122 tp_svc_connection_get_type
123 tp_svc_connection_interface_aliasing_get_type
124 tp_svc_connection_interface_anonymity_get_type
125 tp_svc_connection_interface_avatars_get_type
126 tp_svc_connection_interface_balance_get_type
127 tp_svc_connection_interface_capabilities_get_type
128 tp_svc_connection_interface_cellular_get_type
129 tp_svc_connection_interface_client_types_get_type
130 tp_svc_connection_interface_contact_blocking_get_type
131 tp_svc_connection_interface_contact_capabilities_get_type
132 tp_svc_connection_interface_contact_groups_get_type
133 tp_svc_connection_interface_contact_info_get_type
134 tp_svc_connection_interface_contact_list_get_type
135 tp_svc_connection_interface_contacts_get_type
136 tp_svc_connection_interface_location_get_type
137 tp_svc_connection_interface_mail_notification_get_type
138 tp_svc_connection_interface_power_saving_get_type
139 tp_svc_connection_interface_presence_get_type
140 tp_svc_connection_interface_requests_get_type
141 tp_svc_connection_interface_service_point_get_type
142 tp_svc_connection_interface_simple_presence_get_type
143 tp_svc_connection_manager_get_type
144 tp_svc_dbus_introspectable_get_type
145 tp_svc_dbus_properties_get_type
146 tp_svc_debug_get_type
147 tp_svc_media_session_handler_get_type
148 tp_svc_media_stream_handler_get_type
149 tp_svc_properties_interface_get_type
150 tp_svc_protocol_get_type
151 tp_svc_protocol_interface_avatars_get_type
152 tp_svc_protocol_interface_presence_get_type
153 tp_text_channel_get_type
141141 GLIB_MKENUMS = @GLIB_MKENUMS@
142142 GREP = @GREP@
143143 GTKDOC_CHECK = @GTKDOC_CHECK@
144 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
145 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
144146 GTKDOC_MKPDF = @GTKDOC_MKPDF@
145147 GTKDOC_REBASE = @GTKDOC_REBASE@
146148 HAVE_VALA = @HAVE_VALA@
0 SUBDIRS = stream-tubes python
0 SUBDIRS = stream-tubes python js
11
22 EXAMPLES =
33
286286 GLIB_MKENUMS = @GLIB_MKENUMS@
287287 GREP = @GREP@
288288 GTKDOC_CHECK = @GTKDOC_CHECK@
289 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
290 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
289291 GTKDOC_MKPDF = @GTKDOC_MKPDF@
290292 GTKDOC_REBASE = @GTKDOC_REBASE@
291293 HAVE_VALA = @HAVE_VALA@
405407 top_build_prefix = @top_build_prefix@
406408 top_builddir = @top_builddir@
407409 top_srcdir = @top_srcdir@
408 SUBDIRS = stream-tubes python
410 SUBDIRS = stream-tubes python js
409411 EXAMPLES = telepathy-example-inspect-channel \
410412 telepathy-example-inspect-connection \
411413 telepathy-example-inspect-contact telepathy-example-inspect-cm \
0 EXTRA_DIST = \
1 contact-list.js
0 # Makefile.in generated by automake 1.11.1 from Makefile.am.
1 # @configure_input@
2
3 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
4 # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
5 # Inc.
6 # This Makefile.in is free software; the Free Software Foundation
7 # gives unlimited permission to copy and/or distribute it,
8 # with or without modifications, as long as this notice is preserved.
9
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
12 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13 # PARTICULAR PURPOSE.
14
15 @SET_MAKE@
16 VPATH = @srcdir@
17 pkgdatadir = $(datadir)/@PACKAGE@
18 pkgincludedir = $(includedir)/@PACKAGE@
19 pkglibdir = $(libdir)/@PACKAGE@
20 pkglibexecdir = $(libexecdir)/@PACKAGE@
21 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
22 install_sh_DATA = $(install_sh) -c -m 644
23 install_sh_PROGRAM = $(install_sh) -c
24 install_sh_SCRIPT = $(install_sh) -c
25 INSTALL_HEADER = $(INSTALL_DATA)
26 transform = $(program_transform_name)
27 NORMAL_INSTALL = :
28 PRE_INSTALL = :
29 POST_INSTALL = :
30 NORMAL_UNINSTALL = :
31 PRE_UNINSTALL = :
32 POST_UNINSTALL = :
33 build_triplet = @build@
34 host_triplet = @host@
35 subdir = examples/client/js
36 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
37 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
38 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
39 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/introspection.m4 \
40 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/linker.m4 \
41 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
42 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
43 $(top_srcdir)/m4/tp-compiler-flag.m4 \
44 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
45 $(top_srcdir)/m4/tp-linker-flag.m4 $(top_srcdir)/configure.ac
46 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
47 $(ACLOCAL_M4)
48 mkinstalldirs = $(install_sh) -d
49 CONFIG_HEADER = $(top_builddir)/config.h
50 CONFIG_CLEAN_FILES =
51 CONFIG_CLEAN_VPATH_FILES =
52 AM_V_GEN = $(am__v_GEN_$(V))
53 am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
54 am__v_GEN_0 = @echo " GEN " $@;
55 AM_V_at = $(am__v_at_$(V))
56 am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
57 am__v_at_0 = @
58 SOURCES =
59 DIST_SOURCES =
60 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
61 ACLOCAL = @ACLOCAL@
62 AMTAR = @AMTAR@
63 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
64 AR = @AR@
65 AUTOCONF = @AUTOCONF@
66 AUTOHEADER = @AUTOHEADER@
67 AUTOMAKE = @AUTOMAKE@
68 AWK = @AWK@
69 CC = @CC@
70 CCDEPMODE = @CCDEPMODE@
71 CFLAGS = @CFLAGS@
72 COVERAGE_CFLAGS = @COVERAGE_CFLAGS@
73 CPP = @CPP@
74 CPPFLAGS = @CPPFLAGS@
75 CXX = @CXX@
76 CXXCPP = @CXXCPP@
77 CXXDEPMODE = @CXXDEPMODE@
78 CXXFLAGS = @CXXFLAGS@
79 CYGPATH_W = @CYGPATH_W@
80 DBUS_CFLAGS = @DBUS_CFLAGS@
81 DBUS_LIBS = @DBUS_LIBS@
82 DEFS = @DEFS@
83 DEPDIR = @DEPDIR@
84 DLLTOOL = @DLLTOOL@
85 DSYMUTIL = @DSYMUTIL@
86 DUMPBIN = @DUMPBIN@
87 ECHO_C = @ECHO_C@
88 ECHO_N = @ECHO_N@
89 ECHO_T = @ECHO_T@
90 EGREP = @EGREP@
91 ENABLE_CODING_STYLE_CHECKS = @ENABLE_CODING_STYLE_CHECKS@
92 ENABLE_DOC_CHECKS = @ENABLE_DOC_CHECKS@
93 ERROR_CFLAGS = @ERROR_CFLAGS@
94 EXEEXT = @EXEEXT@
95 FGREP = @FGREP@
96 GIO_UNIX_CFLAGS = @GIO_UNIX_CFLAGS@
97 GIO_UNIX_LIBS = @GIO_UNIX_LIBS@
98 GLIB_CFLAGS = @GLIB_CFLAGS@
99 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
100 GLIB_LIBS = @GLIB_LIBS@
101 GLIB_MKENUMS = @GLIB_MKENUMS@
102 GREP = @GREP@
103 GTKDOC_CHECK = @GTKDOC_CHECK@
104 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
105 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
106 GTKDOC_MKPDF = @GTKDOC_MKPDF@
107 GTKDOC_REBASE = @GTKDOC_REBASE@
108 HAVE_VALA = @HAVE_VALA@
109 HTML_DIR = @HTML_DIR@
110 INSTALL = @INSTALL@
111 INSTALL_DATA = @INSTALL_DATA@
112 INSTALL_PROGRAM = @INSTALL_PROGRAM@
113 INSTALL_SCRIPT = @INSTALL_SCRIPT@
114 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
115 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
116 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
117 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
118 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
119 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
120 LD = @LD@
121 LDFLAGS = @LDFLAGS@
122 LIBOBJS = @LIBOBJS@
123 LIBS = @LIBS@
124 LIBTOOL = @LIBTOOL@
125 LIPO = @LIPO@
126 LN_S = @LN_S@
127 LTLIBOBJS = @LTLIBOBJS@
128 LT_AGE = @LT_AGE@
129 LT_CURRENT = @LT_CURRENT@
130 LT_REVISION = @LT_REVISION@
131 MAKEINFO = @MAKEINFO@
132 MANIFEST_TOOL = @MANIFEST_TOOL@
133 MKDIR_P = @MKDIR_P@
134 NM = @NM@
135 NMEDIT = @NMEDIT@
136 OBJDUMP = @OBJDUMP@
137 OBJEXT = @OBJEXT@
138 OTOOL = @OTOOL@
139 OTOOL64 = @OTOOL64@
140 PACKAGE = @PACKAGE@
141 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
142 PACKAGE_NAME = @PACKAGE_NAME@
143 PACKAGE_STRING = @PACKAGE_STRING@
144 PACKAGE_TARNAME = @PACKAGE_TARNAME@
145 PACKAGE_URL = @PACKAGE_URL@
146 PACKAGE_VERSION = @PACKAGE_VERSION@
147 PATH_SEPARATOR = @PATH_SEPARATOR@
148 PKG_CONFIG = @PKG_CONFIG@
149 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
150 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
151 PYTHON = @PYTHON@
152 PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
153 PYTHON_PLATFORM = @PYTHON_PLATFORM@
154 PYTHON_PREFIX = @PYTHON_PREFIX@
155 PYTHON_VERSION = @PYTHON_VERSION@
156 RANLIB = @RANLIB@
157 SED = @SED@
158 SET_MAKE = @SET_MAKE@
159 SHELL = @SHELL@
160 STRIP = @STRIP@
161 TP_GLIB_CFLAGS = @TP_GLIB_CFLAGS@
162 VALAC = @VALAC@
163 VALAFLAGS = @VALAFLAGS@
164 VAPIGEN = @VAPIGEN@
165 VERSION = @VERSION@
166 VERSION_SCRIPT_ARG = @VERSION_SCRIPT_ARG@
167 XSLTPROC = @XSLTPROC@
168 abs_builddir = @abs_builddir@
169 abs_srcdir = @abs_srcdir@
170 abs_top_builddir = @abs_top_builddir@
171 abs_top_srcdir = @abs_top_srcdir@
172 ac_ct_AR = @ac_ct_AR@
173 ac_ct_CC = @ac_ct_CC@
174 ac_ct_CXX = @ac_ct_CXX@
175 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
176 am__include = @am__include@
177 am__leading_dot = @am__leading_dot@
178 am__quote = @am__quote@
179 am__tar = @am__tar@
180 am__untar = @am__untar@
181 bindir = @bindir@
182 build = @build@
183 build_alias = @build_alias@
184 build_cpu = @build_cpu@
185 build_os = @build_os@
186 build_vendor = @build_vendor@
187 builddir = @builddir@
188 datadir = @datadir@
189 datarootdir = @datarootdir@
190 docdir = @docdir@
191 dvidir = @dvidir@
192 exec_prefix = @exec_prefix@
193 host = @host@
194 host_alias = @host_alias@
195 host_cpu = @host_cpu@
196 host_os = @host_os@
197 host_vendor = @host_vendor@
198 htmldir = @htmldir@
199 includedir = @includedir@
200 infodir = @infodir@
201 install_sh = @install_sh@
202 libdir = @libdir@
203 libexecdir = @libexecdir@
204 localedir = @localedir@
205 localstatedir = @localstatedir@
206 mandir = @mandir@
207 mkdir_p = @mkdir_p@
208 oldincludedir = @oldincludedir@
209 pdfdir = @pdfdir@
210 pkgpyexecdir = @pkgpyexecdir@
211 pkgpythondir = @pkgpythondir@
212 prefix = @prefix@
213 program_transform_name = @program_transform_name@
214 psdir = @psdir@
215 pyexecdir = @pyexecdir@
216 pythondir = @pythondir@
217 sbindir = @sbindir@
218 sharedstatedir = @sharedstatedir@
219 srcdir = @srcdir@
220 sysconfdir = @sysconfdir@
221 target_alias = @target_alias@
222 top_build_prefix = @top_build_prefix@
223 top_builddir = @top_builddir@
224 top_srcdir = @top_srcdir@
225 EXTRA_DIST = \
226 contact-list.js
227
228 all: all-am
229
230 .SUFFIXES:
231 $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
232 @for dep in $?; do \
233 case '$(am__configure_deps)' in \
234 *$$dep*) \
235 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
236 && { if test -f $@; then exit 0; else break; fi; }; \
237 exit 1;; \
238 esac; \
239 done; \
240 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/client/js/Makefile'; \
241 $(am__cd) $(top_srcdir) && \
242 $(AUTOMAKE) --gnu examples/client/js/Makefile
243 .PRECIOUS: Makefile
244 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
245 @case '$?' in \
246 *config.status*) \
247 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
248 *) \
249 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
250 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
251 esac;
252
253 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
254 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
255
256 $(top_srcdir)/configure: $(am__configure_deps)
257 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
258 $(ACLOCAL_M4): $(am__aclocal_m4_deps)
259 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
260 $(am__aclocal_m4_deps):
261
262 mostlyclean-libtool:
263 -rm -f *.lo
264
265 clean-libtool:
266 -rm -rf .libs _libs
267 tags: TAGS
268 TAGS:
269
270 ctags: CTAGS
271 CTAGS:
272
273
274 distdir: $(DISTFILES)
275 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
276 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
277 list='$(DISTFILES)'; \
278 dist_files=`for file in $$list; do echo $$file; done | \
279 sed -e "s|^$$srcdirstrip/||;t" \
280 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
281 case $$dist_files in \
282 */*) $(MKDIR_P) `echo "$$dist_files" | \
283 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
284 sort -u` ;; \
285 esac; \
286 for file in $$dist_files; do \
287 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
288 if test -d $$d/$$file; then \
289 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
290 if test -d "$(distdir)/$$file"; then \
291 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
292 fi; \
293 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
294 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
295 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
296 fi; \
297 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
298 else \
299 test -f "$(distdir)/$$file" \
300 || cp -p $$d/$$file "$(distdir)/$$file" \
301 || exit 1; \
302 fi; \
303 done
304 check-am: all-am
305 check: check-am
306 all-am: Makefile
307 installdirs:
308 install: install-am
309 install-exec: install-exec-am
310 install-data: install-data-am
311 uninstall: uninstall-am
312
313 install-am: all-am
314 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
315
316 installcheck: installcheck-am
317 install-strip:
318 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
319 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
320 `test -z '$(STRIP)' || \
321 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
322 mostlyclean-generic:
323
324 clean-generic:
325
326 distclean-generic:
327 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
328 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
329
330 maintainer-clean-generic:
331 @echo "This command is intended for maintainers to use"
332 @echo "it deletes files that may require special tools to rebuild."
333 clean: clean-am
334
335 clean-am: clean-generic clean-libtool mostlyclean-am
336
337 distclean: distclean-am
338 -rm -f Makefile
339 distclean-am: clean-am distclean-generic
340
341 dvi: dvi-am
342
343 dvi-am:
344
345 html: html-am
346
347 html-am:
348
349 info: info-am
350
351 info-am:
352
353 install-data-am:
354
355 install-dvi: install-dvi-am
356
357 install-dvi-am:
358
359 install-exec-am:
360
361 install-html: install-html-am
362
363 install-html-am:
364
365 install-info: install-info-am
366
367 install-info-am:
368
369 install-man:
370
371 install-pdf: install-pdf-am
372
373 install-pdf-am:
374
375 install-ps: install-ps-am
376
377 install-ps-am:
378
379 installcheck-am:
380
381 maintainer-clean: maintainer-clean-am
382 -rm -f Makefile
383 maintainer-clean-am: distclean-am maintainer-clean-generic
384
385 mostlyclean: mostlyclean-am
386
387 mostlyclean-am: mostlyclean-generic mostlyclean-libtool
388
389 pdf: pdf-am
390
391 pdf-am:
392
393 ps: ps-am
394
395 ps-am:
396
397 uninstall-am:
398
399 .MAKE: install-am install-strip
400
401 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
402 distclean distclean-generic distclean-libtool distdir dvi \
403 dvi-am html html-am info info-am install install-am \
404 install-data install-data-am install-dvi install-dvi-am \
405 install-exec install-exec-am install-html install-html-am \
406 install-info install-info-am install-man install-pdf \
407 install-pdf-am install-ps install-ps-am install-strip \
408 installcheck installcheck-am installdirs maintainer-clean \
409 maintainer-clean-generic mostlyclean mostlyclean-generic \
410 mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
411
412
413 # Tell versions [3.59,3.63) of GNU make to not export all variables.
414 # Otherwise a system limit (for SysV at least) may be exceeded.
415 .NOEXPORT:
0 #! /usr/bin/gjs
1
2 const Tp = imports.gi.TelepathyGLib;
3 const Mainloop = imports.mainloop;
4
5 let manager = Tp.AccountManager.dup();
6 let factory = manager.get_factory();
7 factory.add_account_features([Tp.Account.get_feature_quark_connection()]);
8 factory.add_connection_features([Tp.Connection.get_feature_quark_contact_list()]);
9 factory.add_contact_features([Tp.ContactFeature.CONTACT_GROUPS]);
10
11 manager.prepare_async(null, function(self, result) {
12 manager.prepare_finish(result);
13
14 let accounts = manager.get_valid_accounts();
15 for (let i = 0; i < accounts.length; i++) {
16 let connection = accounts[i].get_connection();
17
18 if (connection != null &&
19 connection.get_contact_list_state() == Tp.ContactListState.SUCCESS) {
20
21 let contacts = connection.dup_contact_list();
22 for (let j = 0; j < contacts.length; j++) {
23 let contact = contacts[j];
24 // poor man's printf...
25 print (contact.get_identifier() + ' (' + contact.get_contact_groups() + ')');
26 }
27 }
28 }
29 Mainloop.quit('example');
30 });
31
32 Mainloop.run('example');
00 EXTRA_DIST = \
1 contact-list.py \
12 ensure-channel.py \
23 text-handler.py
101101 GLIB_MKENUMS = @GLIB_MKENUMS@
102102 GREP = @GREP@
103103 GTKDOC_CHECK = @GTKDOC_CHECK@
104 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
105 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
104106 GTKDOC_MKPDF = @GTKDOC_MKPDF@
105107 GTKDOC_REBASE = @GTKDOC_REBASE@
106108 HAVE_VALA = @HAVE_VALA@
221223 top_builddir = @top_builddir@
222224 top_srcdir = @top_srcdir@
223225 EXTRA_DIST = \
226 contact-list.py \
224227 ensure-channel.py \
225228 text-handler.py
226229
0 #!/usr/bin/env python
1
2 import os
3 from gi.repository import GObject
4 GObject.threads_init()
5
6 from gi.repository import TelepathyGLib as Tp
7
8 def manager_prepared_cb(manager, result, loop):
9 manager.prepare_finish(result)
10
11 for account in manager.get_valid_accounts():
12 connection = account.get_connection()
13
14 # Verify account is online and received its contact list. If state is not
15 # SUCCESS this means we didn't received the roster from server yet and
16 # we would have to wait for the "notify:contact-list-state" signal. */
17 if connection is not None and \
18 connection.get_contact_list_state() == Tp.ContactListState.SUCCESS:
19 contacts = connection.dup_contact_list()
20 for contact in contacts:
21 print "%s (%s)" % (contact.get_identifier(), contact.get_contact_groups())
22 loop.quit()
23
24 if __name__ == '__main__':
25 Tp.debug_set_flags(os.getenv('EXAMPLE_DEBUG', ''))
26
27 loop = GObject.MainLoop()
28 manager = Tp.AccountManager.dup()
29 factory = manager.get_factory()
30 factory.add_account_features([Tp.Account.get_feature_quark_connection()])
31 factory.add_connection_features([Tp.Connection.get_feature_quark_contact_list()])
32 factory.add_contact_features([Tp.ContactFeature.CONTACT_GROUPS])
33
34 manager.prepare_async(None, manager_prepared_cb, loop)
35 loop.run()
00 #!/usr/bin/env python
11 import sys
22
3 import gobject
4 gobject.threads_init()
3 from gi.repository import GObject
4 GObject.threads_init()
55
66 from gi.repository import TelepathyGLib
77
6060 # FIXME: for some reason TelepathyGLib.USER_ACTION_TIME_CURRENT_TIME is
6161 # not defined (bgo #639206)
6262
63 main_loop = gobject.MainLoop()
63 main_loop = GObject.MainLoop()
6464
6565 request.ensure_channel_async("", None, ensure_channel_cb, main_loop)
6666
00 #!/usr/bin/env python
11
2 import gobject
3 gobject.threads_init()
2 from gi.repository import GObject
3 GObject.threads_init()
44
55 from gi.repository import TelepathyGLib
66
6363
6464 handler.register()
6565
66 main_loop = gobject.MainLoop()
66 main_loop = GObject.MainLoop()
6767 main_loop.run()
139139 GLIB_MKENUMS = @GLIB_MKENUMS@
140140 GREP = @GREP@
141141 GTKDOC_CHECK = @GTKDOC_CHECK@
142 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
143 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
142144 GTKDOC_MKPDF = @GTKDOC_MKPDF@
143145 GTKDOC_REBASE = @GTKDOC_REBASE@
144146 HAVE_VALA = @HAVE_VALA@
141141 GLIB_MKENUMS = @GLIB_MKENUMS@
142142 GREP = @GREP@
143143 GTKDOC_CHECK = @GTKDOC_CHECK@
144 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
145 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
144146 GTKDOC_MKPDF = @GTKDOC_MKPDF@
145147 GTKDOC_REBASE = @GTKDOC_REBASE@
146148 HAVE_VALA = @HAVE_VALA@
177177 GLIB_MKENUMS = @GLIB_MKENUMS@
178178 GREP = @GREP@
179179 GTKDOC_CHECK = @GTKDOC_CHECK@
180 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
181 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
180182 GTKDOC_MKPDF = @GTKDOC_MKPDF@
181183 GTKDOC_REBASE = @GTKDOC_REBASE@
182184 HAVE_VALA = @HAVE_VALA@
177177 GLIB_MKENUMS = @GLIB_MKENUMS@
178178 GREP = @GREP@
179179 GTKDOC_CHECK = @GTKDOC_CHECK@
180 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
181 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
180182 GTKDOC_MKPDF = @GTKDOC_MKPDF@
181183 GTKDOC_REBASE = @GTKDOC_REBASE@
182184 HAVE_VALA = @HAVE_VALA@
177177 GLIB_MKENUMS = @GLIB_MKENUMS@
178178 GREP = @GREP@
179179 GTKDOC_CHECK = @GTKDOC_CHECK@
180 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
181 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
180182 GTKDOC_MKPDF = @GTKDOC_MKPDF@
181183 GTKDOC_REBASE = @GTKDOC_REBASE@
182184 HAVE_VALA = @HAVE_VALA@
175175 GLIB_MKENUMS = @GLIB_MKENUMS@
176176 GREP = @GREP@
177177 GTKDOC_CHECK = @GTKDOC_CHECK@
178 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
179 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
178180 GTKDOC_MKPDF = @GTKDOC_MKPDF@
179181 GTKDOC_REBASE = @GTKDOC_REBASE@
180182 HAVE_VALA = @HAVE_VALA@
168168 GLIB_MKENUMS = @GLIB_MKENUMS@
169169 GREP = @GREP@
170170 GTKDOC_CHECK = @GTKDOC_CHECK@
171 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
172 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
171173 GTKDOC_MKPDF = @GTKDOC_MKPDF@
172174 GTKDOC_REBASE = @GTKDOC_REBASE@
173175 HAVE_VALA = @HAVE_VALA@
167167 GLIB_MKENUMS = @GLIB_MKENUMS@
168168 GREP = @GREP@
169169 GTKDOC_CHECK = @GTKDOC_CHECK@
170 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
171 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
170172 GTKDOC_MKPDF = @GTKDOC_MKPDF@
171173 GTKDOC_REBASE = @GTKDOC_REBASE@
172174 HAVE_VALA = @HAVE_VALA@
126126 --subclass-assert=TP_IS_CONNECTION \
127127 --iface-quark-prefix=EXAMPLE_IFACE_QUARK \
128128 --tp-proxy-api=0.7.6 \
129 --generate-reentrant \
130129 $< Example_Cli _gen/cli-connection
131130
132131 _gen/svc-connection.c _gen/svc-connection.h: _gen/connection.xml \
148148 GLIB_MKENUMS = @GLIB_MKENUMS@
149149 GREP = @GREP@
150150 GTKDOC_CHECK = @GTKDOC_CHECK@
151 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
152 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
151153 GTKDOC_MKPDF = @GTKDOC_MKPDF@
152154 GTKDOC_REBASE = @GTKDOC_REBASE@
153155 HAVE_VALA = @HAVE_VALA@
693695 --subclass-assert=TP_IS_CONNECTION \
694696 --iface-quark-prefix=EXAMPLE_IFACE_QUARK \
695697 --tp-proxy-api=0.7.6 \
696 --generate-reentrant \
697698 $< Example_Cli _gen/cli-connection
698699
699700 _gen/svc-connection.c _gen/svc-connection.h: _gen/connection.xml \
141141 GLIB_MKENUMS = @GLIB_MKENUMS@
142142 GREP = @GREP@
143143 GTKDOC_CHECK = @GTKDOC_CHECK@
144 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
145 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
144146 GTKDOC_MKPDF = @GTKDOC_MKPDF@
145147 GTKDOC_REBASE = @GTKDOC_REBASE@
146148 HAVE_VALA = @HAVE_VALA@
177177 GLIB_MKENUMS = @GLIB_MKENUMS@
178178 GREP = @GREP@
179179 GTKDOC_CHECK = @GTKDOC_CHECK@
180 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
181 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
180182 GTKDOC_MKPDF = @GTKDOC_MKPDF@
181183 GTKDOC_REBASE = @GTKDOC_REBASE@
182184 HAVE_VALA = @HAVE_VALA@
216216
217217 self->priv->call_state = FUTURE_CALL_STATE_UNKNOWN; /* set in constructed */
218218 self->priv->call_flags = 0;
219 self->priv->call_state_reason = tp_value_array_build (3,
219 self->priv->call_state_reason = tp_value_array_build (4,
220220 G_TYPE_UINT, 0, /* actor */
221221 G_TYPE_UINT, FUTURE_CALL_STATE_CHANGE_REASON_UNKNOWN,
222 G_TYPE_STRING, "",
222223 G_TYPE_STRING, "",
223224 G_TYPE_INVALID);
224225 self->priv->call_state_details = tp_asv_new (
269270 /* This is an incoming call, so the self-handle is locally
270271 * pending, to indicate that we need to answer. */
271272 example_call_channel_set_state (self,
272 FUTURE_CALL_STATE_PENDING_RECEIVER, 0, self->priv->handle,
273 FUTURE_CALL_STATE_RINGING, 0, self->priv->handle,
273274 FUTURE_CALL_STATE_CHANGE_REASON_USER_REQUESTED, "",
274275 NULL);
275276 }
558559 * remove peers on call termination or not. For now this example does. */
559560 g_array_append_val (au, self->priv->handle);
560561 future_svc_channel_type_call_emit_call_members_changed (self,
561 empty_uu_map, au);
562 empty_uu_map, au, self->priv->call_state_reason);
562563 g_hash_table_unref (empty_uu_map);
563564 g_array_free (au, TRUE);
564565
964965 static void
965966 streams_removed_cb (ExampleCallContent *content,
966967 const GPtrArray *stream_paths G_GNUC_UNUSED,
968 const GArray *reason G_GNUC_UNUSED,
967969 ExampleCallChannel *self)
968970 {
969971 gchar *path, *name;
979981 g_hash_table_remove (self->priv->contents, name);
980982
981983 future_svc_call_content_emit_removed (content);
982 future_svc_channel_type_call_emit_content_removed (self, path);
984 future_svc_channel_type_call_emit_content_removed (self, path,
985 self->priv->call_state_reason);
983986 g_free (path);
984987 g_free (name);
985988
10281031
10291032 /* otherwise, we're waiting for a response from the contact, which now
10301033 * arrives */
1031 g_assert (self->priv->call_state == FUTURE_CALL_STATE_PENDING_RECEIVER);
1034 g_assert_cmpuint (self->priv->call_state, ==, FUTURE_CALL_STATE_RINGING);
10321035
10331036 g_message ("SIGNALLING: receive: contact answered our call");
10341037
10791082
10801083 /* otherwise, we're waiting for a response from the contact, which now
10811084 * arrives */
1082 g_assert (self->priv->call_state == FUTURE_CALL_STATE_PENDING_RECEIVER);
1085 g_assert_cmpuint (self->priv->call_state, ==, FUTURE_CALL_STATE_RINGING);
10831086
10841087 g_message ("SIGNALLING: receive: call terminated: <user-is-busy/>");
10851088
12011204 g_hash_table_insert (uu_map, GUINT_TO_POINTER (self->priv->handle),
12021205 GUINT_TO_POINTER (self->priv->peer_flags));
12031206 future_svc_channel_type_call_emit_call_members_changed (self,
1204 uu_map, empty_au);
1207 uu_map, empty_au, self->priv->call_state_reason);
12051208 g_hash_table_unref (uu_map);
12061209 g_array_free (empty_au, TRUE);
12071210
12391242 {
12401243 g_message ("SIGNALLING: send: new streamed media call");
12411244 example_call_channel_set_state (self,
1242 FUTURE_CALL_STATE_PENDING_RECEIVER, 0,
1245 FUTURE_CALL_STATE_RINGING, 0,
12431246 tp_base_connection_get_self_handle (self->priv->conn),
12441247 FUTURE_CALL_STATE_CHANGE_REASON_USER_REQUESTED, "",
12451248 NULL);
12651268 goto finally;
12661269 }
12671270
1268 if (self->priv->call_state != FUTURE_CALL_STATE_PENDING_RECEIVER)
1271 if (self->priv->call_state != FUTURE_CALL_STATE_RINGING)
12691272 {
12701273 g_set_error (&error, TP_ERRORS, TP_ERROR_NOT_AVAILABLE,
12711274 "Ringing() makes no sense now that we're not pending receiver");
12741277
12751278 g_message ("SIGNALLING: send: ring, ring!");
12761279
1277 example_call_channel_set_state (self, FUTURE_CALL_STATE_PENDING_RECEIVER,
1280 example_call_channel_set_state (self, FUTURE_CALL_STATE_RINGING,
12781281 self->priv->call_flags | FUTURE_CALL_FLAG_LOCALLY_RINGING,
12791282 tp_base_connection_get_self_handle (self->priv->conn),
12801283 FUTURE_CALL_STATE_CHANGE_REASON_USER_REQUESTED, "", NULL);
12991302 GHashTableIter iter;
13001303 gpointer v;
13011304
1302 g_assert (self->priv->call_state == FUTURE_CALL_STATE_PENDING_RECEIVER);
1305 g_assert_cmpint (self->priv->call_state, ==, FUTURE_CALL_STATE_RINGING);
13031306
13041307 g_message ("SIGNALLING: send: Accepting incoming call from %s",
13051308 tp_handle_inspect (contact_repo, self->priv->handle));
13621365 }
13631366 else
13641367 {
1365 if (self->priv->call_state == FUTURE_CALL_STATE_PENDING_RECEIVER)
1368 if (self->priv->call_state == FUTURE_CALL_STATE_RINGING)
13661369 {
13671370 accept_incoming_call (self);
13681371 future_svc_channel_type_call_return_from_accept (context);
336336 {
337337 GPtrArray *paths;
338338 gchar *path;
339 GValueArray *reason;
339340
340341 g_return_if_fail (EXAMPLE_IS_CALL_CONTENT (self));
341342 g_return_if_fail (EXAMPLE_IS_CALL_STREAM (stream));
346347 NULL);
347348 paths = g_ptr_array_sized_new (1);
348349 g_ptr_array_add (paths, path);
349 future_svc_call_content_emit_streams_removed (self, paths);
350 reason = tp_value_array_build (4,
351 G_TYPE_UINT, 0,
352 G_TYPE_UINT, FUTURE_CALL_STATE_CHANGE_REASON_UNKNOWN,
353 G_TYPE_STRING, "",
354 G_TYPE_STRING, "",
355 G_TYPE_INVALID);
356 future_svc_call_content_emit_streams_removed (self, paths, reason);
350357 g_free (path);
351358 g_ptr_array_free (paths, TRUE);
359 g_value_array_free (reason);
352360
353361 g_object_unref (self->priv->stream);
354362 self->priv->stream = NULL;
366366 void
367367 example_call_stream_accept_proposed_direction (ExampleCallStream *self)
368368 {
369 GValueArray *reason;
370
369371 if (self->priv->removed ||
370372 self->priv->local_sending_state != FUTURE_SENDING_STATE_PENDING_SEND)
371373 return;
374376 self->priv->object_path);
375377
376378 self->priv->local_sending_state = FUTURE_SENDING_STATE_SENDING;
379 reason = tp_value_array_build (4,
380 G_TYPE_UINT, 0,
381 G_TYPE_UINT, FUTURE_CALL_STATE_CHANGE_REASON_UNKNOWN,
382 G_TYPE_STRING, "",
383 G_TYPE_STRING, "",
384 G_TYPE_INVALID);
377385 future_svc_call_stream_emit_local_sending_state_changed (self,
378 self->priv->local_sending_state);
386 self->priv->local_sending_state, reason);
387 g_value_array_free (reason);
379388 }
380389
381390 void
383392 {
384393 GHashTable *updated_members;
385394 GArray *removed_members;
395 GValueArray *reason;
386396
387397 if (self->priv->removed ||
388398 self->priv->remote_sending_state != FUTURE_SENDING_STATE_PENDING_SEND)
397407 removed_members = g_array_sized_new (FALSE, FALSE, sizeof (guint), 0);
398408 g_hash_table_insert (updated_members, GUINT_TO_POINTER (self->priv->handle),
399409 GUINT_TO_POINTER (FUTURE_SENDING_STATE_SENDING));
410 reason = tp_value_array_build (4,
411 G_TYPE_UINT, 0,
412 G_TYPE_UINT, FUTURE_CALL_STATE_CHANGE_REASON_UNKNOWN,
413 G_TYPE_STRING, "",
414 G_TYPE_STRING, "",
415 G_TYPE_INVALID);
400416 future_svc_call_stream_emit_remote_members_changed (self, updated_members,
401 removed_members);
417 removed_members, reason);
402418 g_hash_table_unref (updated_members);
403419 g_array_free (removed_members, TRUE);
420 g_value_array_free (reason);
404421 }
405422
406423 static gboolean
415432 gboolean want_to_send, gboolean want_to_receive)
416433 {
417434 GHashTable *updated_members = g_hash_table_new (NULL, NULL);
435 GValueArray *reason = tp_value_array_build (4,
436 G_TYPE_UINT, 0,
437 G_TYPE_UINT, FUTURE_CALL_STATE_CHANGE_REASON_UNKNOWN,
438 G_TYPE_STRING, "",
439 G_TYPE_STRING, "",
440 G_TYPE_INVALID);
418441
419442 if (want_to_send)
420443 {
431454 self->priv->object_path);
432455 self->priv->local_sending_state = FUTURE_SENDING_STATE_SENDING;
433456 future_svc_call_stream_emit_local_sending_state_changed (self,
434 self->priv->local_sending_state);
457 self->priv->local_sending_state, reason);
435458 }
436459 }
437460 else
444467 self->priv->object_path);
445468 self->priv->local_sending_state = FUTURE_SENDING_STATE_NONE;
446469 future_svc_call_stream_emit_local_sending_state_changed (self,
447 self->priv->local_sending_state);
470 self->priv->local_sending_state, reason);
448471 }
449472 else if (self->priv->local_sending_state ==
450473 FUTURE_SENDING_STATE_PENDING_SEND)
453476 self->priv->object_path);
454477 self->priv->local_sending_state = FUTURE_SENDING_STATE_NONE;
455478 future_svc_call_stream_emit_local_sending_state_changed (self,
456 self->priv->local_sending_state);
479 self->priv->local_sending_state, reason);
457480 }
458481 }
459482
495518 sizeof (guint), 0);
496519
497520 future_svc_call_stream_emit_remote_members_changed (self,
498 updated_members, removed_members);
521 updated_members, removed_members, reason);
499522
500523 g_array_free (removed_members, TRUE);
501524 }
502525
503526 g_hash_table_unref (updated_members);
527 g_value_array_free (reason);
504528 }
505529
506530 /* The remote user wants to change the direction of this stream according
511535 gboolean remote_send)
512536 {
513537 GHashTable *updated_members = g_hash_table_new (NULL, NULL);
514
538 GValueArray *reason = tp_value_array_build (4,
539 G_TYPE_UINT, 0,
540 G_TYPE_UINT, FUTURE_CALL_STATE_CHANGE_REASON_UNKNOWN,
541 G_TYPE_STRING, "",
542 G_TYPE_STRING, "",
543 G_TYPE_INVALID);
515544 /* In some protocols, streams cannot be neither sending nor receiving, so
516545 * if a stream is set to TP_MEDIA_STREAM_DIRECTION_NONE, this is equivalent
517546 * to removing it. (This is true in XMPP, for instance.)
530559 /* ask the user for permission */
531560 self->priv->local_sending_state = FUTURE_SENDING_STATE_PENDING_SEND;
532561 future_svc_call_stream_emit_local_sending_state_changed (self,
533 self->priv->local_sending_state);
562 self->priv->local_sending_state, reason);
534563 }
535564 else
536565 {
551580 self->priv->object_path);
552581 self->priv->local_sending_state = FUTURE_SENDING_STATE_NONE;
553582 future_svc_call_stream_emit_local_sending_state_changed (self,
554 self->priv->local_sending_state);
583 self->priv->local_sending_state, reason);
555584 }
556585 else if (self->priv->local_sending_state ==
557586 FUTURE_SENDING_STATE_PENDING_SEND)
558587 {
559588 self->priv->local_sending_state = FUTURE_SENDING_STATE_NONE;
560589 future_svc_call_stream_emit_local_sending_state_changed (self,
561 self->priv->local_sending_state);
590 self->priv->local_sending_state, reason);
562591 }
563592 else
564593 {
612641 sizeof (guint), 0);
613642
614643 future_svc_call_stream_emit_remote_members_changed (self,
615 updated_members, removed_members);
644 updated_members, removed_members, reason);
616645
617646 g_array_free (removed_members, TRUE);
618647 }
619648
620649 g_hash_table_unref (updated_members);
650 g_value_array_free (reason);
621651 }
622652
623653 static void
145145 GLIB_MKENUMS = @GLIB_MKENUMS@
146146 GREP = @GREP@
147147 GTKDOC_CHECK = @GTKDOC_CHECK@
148 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
149 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
148150 GTKDOC_MKPDF = @GTKDOC_MKPDF@
149151 GTKDOC_REBASE = @GTKDOC_REBASE@
150152 HAVE_VALA = @HAVE_VALA@
33
44 <tp:title>Miscellaneous extensions from the future</tp:title>
55
6 <xi:include href="../spec/Call_Content_Codec_Offer.xml"/>
76 <xi:include href="../spec/Call_Stream_Endpoint.xml"/>
87
98 </tp:spec>
44 ####################################
55
66 if GTK_DOC_USE_LIBTOOL
7 GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
8 GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
7 GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
8 GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
99 GTKDOC_RUN = $(LIBTOOL) --mode=execute
1010 else
11 GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
12 GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
11 GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
12 GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
1313 GTKDOC_RUN =
1414 endif
1515
2929 $(DOC_MODULE)-overrides.txt
3030
3131 EXTRA_DIST = \
32 $(HTML_IMAGES) \
3233 $(SETUP_FILES)
3334
34 DOC_STAMPS=setup-build.stamp scan-build.stamp tmpl-build.stamp sgml-build.stamp \
35 DOC_STAMPS=setup-build.stamp scan-build.stamp sgml-build.stamp \
3536 html-build.stamp pdf-build.stamp \
36 setup.stamp tmpl.stamp sgml.stamp html.stamp pdf.stamp
37 sgml.stamp html.stamp pdf.stamp
3738
3839 SCANOBJ_FILES = \
3940 $(DOC_MODULE).args \
7475
7576 setup-build.stamp:
7677 -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
77 echo 'gtk-doc: Preparing build'; \
78 files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
79 if test "x$$files" != "x" ; then \
80 for file in $$files ; do \
81 test -f $(abs_srcdir)/$$file && \
82 cp -p $(abs_srcdir)/$$file $(abs_builddir)/; \
83 done \
84 fi; \
85 test -f $(abs_srcdir)/tmpl && \
86 cp -rp $(abs_srcdir)/tmpl $(abs_builddir)/; \
78 echo ' DOC Preparing build'; \
79 files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
80 if test "x$$files" != "x" ; then \
81 for file in $$files ; do \
82 test -f $(abs_srcdir)/$$file && \
83 cp -pu $(abs_srcdir)/$$file $(abs_builddir)/ || true; \
84 done; \
85 fi; \
8786 fi
8887 @touch setup-build.stamp
8988
9089
91 setup.stamp: setup-build.stamp
92 @true
93
94
9590 #### scan ####
9691
9792 scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
98 @echo 'gtk-doc: Scanning header files'
93 @echo ' DOC Scanning header files'
9994 @_source_dir='' ; \
10095 for i in $(DOC_SOURCE_DIR) ; do \
10196 _source_dir="$${_source_dir} --source-dir=$$i" ; \
10297 done ; \
10398 gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
10499 @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
105 CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) ; \
100 echo " DOC Introspecting gobjects"; \
101 scanobj_options=""; \
102 gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \
103 if test "$(?)" = "0"; then \
104 if test "x$(V)" = "x1"; then \
105 scanobj_options="--verbose"; \
106 fi; \
107 fi; \
108 CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \
109 gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \
106110 else \
107111 for i in $(SCANOBJ_FILES) ; do \
108 test -f $$i || touch $$i ; \
112 test -f $$i || touch $$i ; \
109113 done \
110114 fi
111115 @touch scan-build.stamp
113117 $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
114118 @true
115119
116 #### templates ####
117
118 tmpl-build.stamp: setup.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
119 @echo 'gtk-doc: Rebuilding template files'
120 @gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
121 @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
122 if test -w $(abs_srcdir) ; then \
123 cp -rp $(abs_builddir)/tmpl $(abs_srcdir)/; \
124 fi \
125 fi
126 @touch tmpl-build.stamp
127
128 tmpl.stamp: tmpl-build.stamp
129 @true
130
131 $(srcdir)/tmpl/*.sgml:
132 @true
133
134120 #### xml ####
135121
136 sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
137 @echo 'gtk-doc: Building XML'
138 @-chmod -R u+w $(srcdir)
122 sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files)
123 @echo ' DOC Building XML'
139124 @_source_dir='' ; \
140125 for i in $(DOC_SOURCE_DIR) ; do \
141126 _source_dir="$${_source_dir} --source-dir=$$i" ; \
149134 #### html ####
150135
151136 html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
152 @echo 'gtk-doc: Building HTML'
137 @echo ' DOC Building HTML'
153138 @rm -rf html
154139 @mkdir html
155140 @mkhtml_options=""; \
141 gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \
142 if test "$(?)" = "0"; then \
143 if test "x$(V)" = "x1"; then \
144 mkhtml_options="$$mkhtml_options --verbose"; \
145 fi; \
146 fi; \
156147 gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \
157148 if test "$(?)" = "0"; then \
158 mkhtml_options=--path="$(abs_srcdir)"; \
149 mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \
159150 fi; \
160151 cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
161152 -@test "x$(HTML_IMAGES)" = "x" || \
167158 cp $(abs_builddir)/$$file $(abs_builddir)/html; \
168159 fi; \
169160 done;
170 @echo 'gtk-doc: Fixing cross-references'
161 @echo ' DOC Fixing cross-references'
171162 @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
172163 @touch html-build.stamp
173164
174165 #### pdf ####
175166
176167 pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
177 @echo 'gtk-doc: Building PDF'
178 @rm -rf $(DOC_MODULE).pdf
179 @mkpdf_imgdirs=""; \
168 @echo ' DOC Building PDF'
169 @rm -f $(DOC_MODULE).pdf
170 @mkpdf_options=""; \
171 gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \
172 if test "$(?)" = "0"; then \
173 if test "x$(V)" = "x1"; then \
174 mkpdf_options="$$mkpdf_options --verbose"; \
175 fi; \
176 fi; \
180177 if test "x$(HTML_IMAGES)" != "x"; then \
181178 for img in $(HTML_IMAGES); do \
182179 part=`dirname $$img`; \
183 echo $$mkpdf_imgdirs | grep >/dev/null "\-\-imgdir=$$part "; \
180 echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \
184181 if test $$? != 0; then \
185 mkpdf_imgdirs="$$mkpdf_imgdirs --imgdir=$$part"; \
182 mkpdf_options="$$mkpdf_options --imgdir=$$part"; \
186183 fi; \
187184 done; \
188185 fi; \
189 gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_imgdirs $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
186 gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
190187 @touch pdf-build.stamp
191188
192189 ##############
193190
194191 clean-local:
195 rm -f *~ *.bak
196 rm -rf .libs
192 @rm -f *~ *.bak
193 @rm -rf .libs
197194
198195 distclean-local:
199 rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
196 @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
200197 $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
201 if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
198 @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
202199 rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \
203 rm -rf tmpl; \
204200 fi
205201
206202 maintainer-clean-local: clean
207 rm -rf xml html
203 @rm -rf xml html
208204
209205 install-data-local:
210 @installfiles=`echo $(srcdir)/html/*`; \
211 if test "$$installfiles" = '$(srcdir)/html/*'; \
212 then echo '-- Nothing to install' ; \
206 @installfiles=`echo $(builddir)/html/*`; \
207 if test "$$installfiles" = '$(builddir)/html/*'; \
208 then echo 1>&2 'Nothing to install' ; \
213209 else \
214210 if test -n "$(DOC_MODULE_VERSION)"; then \
215211 installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
218214 fi; \
219215 $(mkinstalldirs) $${installdir} ; \
220216 for i in $$installfiles; do \
221 echo '-- Installing '$$i ; \
217 echo ' $(INSTALL_DATA) '$$i ; \
222218 $(INSTALL_DATA) $$i $${installdir}; \
223219 done; \
224220 if test -n "$(DOC_MODULE_VERSION)"; then \
225221 mv -f $${installdir}/$(DOC_MODULE).devhelp2 \
226222 $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \
227 mv -f $${installdir}/$(DOC_MODULE).devhelp \
228 $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp; \
229223 fi; \
230224 $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \
231225 fi
250244 endif
251245
252246 dist-hook: dist-check-gtkdoc dist-hook-local
253 mkdir $(distdir)/tmpl
254 mkdir $(distdir)/html
255 -cp $(build)/tmpl/*.sgml $(distdir)/tmpl
256 cp $(builddir)/html/* $(distdir)/html
257 -cp $(builddir)/$(DOC_MODULE).pdf $(distdir)/
258 -cp $(build)/$(DOC_MODULE).types $(distdir)/
259 -cp $(build)/$(DOC_MODULE)-sections.txt $(distdir)/
260 cd $(distdir) && rm -f $(DISTCLEANFILES)
261 $(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html
247 @mkdir $(distdir)/html
248 @cp ./html/* $(distdir)/html
249 @-cp ./$(DOC_MODULE).pdf $(distdir)/
250 @-cp ./$(DOC_MODULE).types $(distdir)/
251 @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/
252 @cd $(distdir) && rm -f $(DISTCLEANFILES)
253 @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html
262254
263255 .PHONY : dist-hook-local docs
6868 # compiler: $LTCC
6969 # compiler flags: $LTCFLAGS
7070 # linker: $LD (gnu? $with_gnu_ld)
71 # $progname: (GNU libtool) 2.4 Debian-2.4-2
71 # $progname: (GNU libtool) 2.4 Debian-2.4-4
7272 # automake: $automake_version
7373 # autoconf: $autoconf_version
7474 #
7878
7979 PROGRAM=libtool
8080 PACKAGE=libtool
81 VERSION="2.4 Debian-2.4-2"
81 VERSION="2.4 Debian-2.4-4"
8282 TIMESTAMP=""
8383 package_revision=1.3293
8484
101101 GLIB_MKENUMS = @GLIB_MKENUMS@
102102 GREP = @GREP@
103103 GTKDOC_CHECK = @GTKDOC_CHECK@
104 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
105 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
104106 GTKDOC_MKPDF = @GTKDOC_MKPDF@
105107 GTKDOC_REBASE = @GTKDOC_REBASE@
106108 HAVE_VALA = @HAVE_VALA@
55 dnl GTK_DOC_CHECK([minimum-gtk-doc-version])
66 AC_DEFUN([GTK_DOC_CHECK],
77 [
8 AC_REQUIRE([PKG_PROG_PKG_CONFIG])
89 AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
910 AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
1011
3233 AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))],
3334 [PKG_CHECK_EXISTS([gtk-doc >= $1],,
3435 AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))])
36 PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0)
3537 fi
3638
3739 AC_MSG_CHECKING([whether to build gtk-doc documentation])
2424 details.</p>
2525
2626 <p>The current account manager is defined to be the process that owns
27 the well-known bus name org.freedesktop.Telepathy.AccountManager on
27 the well-known bus name <tt>org.freedesktop.Telepathy.AccountManager</tt> on
2828 the session bus. This process must export an
29 /org/freedesktop/Telepathy/AccountManager object with the
29 <tt>/org/freedesktop/Telepathy/AccountManager</tt> object with the
3030 AccountManager interface.</p>
31
32 <p>Until a mechanism exists for making a reasonable automatic choice
33 of AccountManager implementation, implementations SHOULD NOT
34 register as an activatable service for the AccountManager's
35 well-known bus name. Instead, it is RECOMMENDED that some component
36 of the user's session will select and activate a particular
37 implementation, and that other Telepathy-enabled programs can
38 detect whether Telepathy is in use by checking whether the
39 AccountManager's well-known name is in use at runtime.</p>
4031 </tp:docstring>
4132 <tp:added version="0.17.2"/>
4233
274265 <tp:possible-errors>
275266 <tp:error name="org.freedesktop.Telepathy.Error.NotImplemented">
276267 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
277 <p>The Connection_Manager is not installed or does not
278 implement the given Protocol, or one of the properties in the
279 Properties argument is unsupported.</p>
268 <p>The <var>Connection_Manager</var> is not installed or does not
269 implement the given <var>Protocol</var>.</p>
280270 </tp:docstring>
281271 </tp:error>
282272 <tp:error name="org.freedesktop.Telepathy.Error.InvalidArgument">
283273 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
284 <p>The Parameters provided omit a required parameter
285 or provide unsupported parameter, or the type of one
286 of the Parameters or Properties is inappropriate.</p>
274 <p>The <var>Parameters</var> provided were unacceptable: they might
275 omit a
276 <tp:value-ref type='Conn_Mgr_Param_Flags'>Required</tp:value-ref>
277 parameter, include an unsupported parameter, or have a value of
278 the wrong type.</p>
287279 </tp:docstring>
288280 </tp:error>
289281 </tp:possible-errors>
1919 02110-1301, USA.</p>
2020 </tp:license>
2121
22 <interface name="org.freedesktop.Telepathy.Call.Content.DRAFT"
22 <interface name="org.freedesktop.Telepathy.Call1.Content"
2323 tp:causes-havoc="experimental">
2424 <tp:added version="0.19.0">(draft 1)</tp:added>
25 <tp:requires
26 interface="org.freedesktop.Telepathy.Call1.Interface.Mute"/>
2527
2628 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
2729 This object represents one Content inside a <tp:dbus-ref
28 namespace="ofdT.Channel.Type">Call.DRAFT</tp:dbus-ref>. For
30 namespace="ofdT.Channel.Type">Call1</tp:dbus-ref>. For
2931 example, in an audio/video call there would be one audio content
3032 and one video content. Each content has one or more <tp:dbus-ref
31 namespace="ofdT.Call">Stream.DRAFT</tp:dbus-ref> objects which
33 namespace="ofdT.Call1">Stream</tp:dbus-ref> objects which
3234 represent the actual transport to one or more remote contacts.
3335 </tp:docstring>
34
35 <tp:enum name="Content_Removal_Reason" type="u">
36 <tp:added version="0.21.2"/>
37 <tp:docstring>
38 A representation of the reason for a content to be removed,
39 which may be used by simple clients, or used as a fallback
40 when the DBus_Reason is not understood. This enum will be
41 extended with future reasons as and when appropriate, so
42 clients SHOULD keep up to date with its values, but also be
43 happy to fallback to the Unknown value when an unknown value
44 is encountered.
45 </tp:docstring>
46
47 <tp:enumvalue suffix="Unknown" value="0">
48 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
49 We just don't know. Unknown values of this enum SHOULD also be
50 treated like this.
51 </tp:docstring>
52 </tp:enumvalue>
53
54 <tp:enumvalue suffix="User_Requested" value="1">
55 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
56 <p>The local user requests that this content is removed
57 from the call.</p>
58 </tp:docstring>
59 </tp:enumvalue>
60
61 <tp:enumvalue suffix="Error" value="2">
62 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
63 <p>There is an error with the content which means that it
64 has to be removed from the call.</p>
65 </tp:docstring>
66 </tp:enumvalue>
67
68 <tp:enumvalue suffix="Unsupported" value="3">
69 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
70 <p>Some aspect of the content is unsupported so has to be
71 removed from the call.</p>
72 </tp:docstring>
73 </tp:enumvalue>
74 </tp:enum>
7536
7637 <method name="Remove" tp:name-for-bindings="Remove">
7738 <tp:changed version="0.21.2">previously there were no
7839 arguments</tp:changed>
7940 <tp:docstring>
80 Remove the content from the call.
81 </tp:docstring>
82
83 <arg direction="in" name="Reason" type="u"
84 tp:type="Content_Removal_Reason">
85 <tp:docstring>
86 A generic hangup reason.
87 </tp:docstring>
88 </arg>
89
90 <arg direction="in" name="Detailed_Removal_Reason" type="s"
91 tp:type="DBus_Error_Name">
92 <tp:docstring>
93 A more specific reason for the content removal, if one is
94 available, or an empty string.
95 </tp:docstring>
96 </arg>
97
98 <arg direction="in" name="Message" type="s">
99 <tp:docstring>
100 A human-readable message for the reason of removing the
101 content, such as "Fatal streaming failure" or "no codec
102 intersection". This property can be left empty if no reason
103 is to be given.
104 </tp:docstring>
105 </arg>
41 Remove the content from the call. This will cause
42 <tp:member-ref>Removed</tp:member-ref>((self_handle,
43 <tp:value-ref type="Call_State_Change_Reason">User_Requested</tp:value-ref>, "", "")) to be
44 emitted.
45 </tp:docstring>
10646
10747 <tp:possible-errors>
10848 <tp:error name="org.freedesktop.Telepathy.Error.NetworkError" />
11959 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
12060 <p>Emitted when the content is removed from the call. This
12161 is the same as the <tp:dbus-ref
122 namespace="ofdT.Channel.Type">Call.DRAFT.ContentRemoved</tp:dbus-ref>
62 namespace="ofdT.Channel.Type">Call1.ContentRemoved</tp:dbus-ref>
12363 signal.</p>
12464 </tp:docstring>
12565 </signal>
12969 <tp:added version="0.19.11"/>
13070 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
13171 <p>Extra interfaces provided by this content, such as <tp:dbus-ref
132 namespace="ofdT.Call">Content.Interface.Media.DRAFT</tp:dbus-ref> or
133 <tp:dbus-ref namespace="ofdT.Call">Content.Interface.Mute.DRAFT</tp:dbus-ref>.
72 namespace="ofdT.Call1">Content.Interface.Media</tp:dbus-ref>,
73 <tp:dbus-ref namespace="ofdT.Channel">Interface.Hold</tp:dbus-ref> or
74 <tp:dbus-ref namespace="ofdT.Call1">Interface.Mute</tp:dbus-ref>.
13475 This SHOULD NOT include the Content interface itself, and cannot
13576 change once the content has been created.</p>
13677 </tp:docstring>
163104 The disposition of this content, which defines whether to
164105 automatically start sending data on the streams when
165106 <tp:dbus-ref
166 namespace="ofdT.Channel.Type">Call.DRAFT</tp:dbus-ref> is
107 namespace="ofdT.Channel.Type.Call1">Accept</tp:dbus-ref> is
167108 called on the channel.
168109 </tp:docstring>
169110
170111 <tp:enumvalue suffix="None" value="0">
171112 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
172 The content has no specific disposition
113 The content has no specific disposition.
173114 </tp:docstring>
174115 </tp:enumvalue>
175116
177118 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
178119 <p>The content was initially part of the call. When
179120 <tp:dbus-ref
180 namespace="ofdT.Channel.Type.Call.DRAFT">Accept</tp:dbus-ref>
121 namespace="ofdT.Channel.Type.Call1">Accept</tp:dbus-ref>
181122 is called on the channel, all streams of this content with
182123 <tp:dbus-ref
183 namespace="ofdT.Call.Stream.DRAFT">LocalSendingState</tp:dbus-ref>
184 set to <tp:type>Sending_State</tp:type>_Pending_Send will be
185 moved to <tp:type>Sending_State</tp:type>_Sending as if
124 namespace="ofdT.Call1.Stream">LocalSendingState</tp:dbus-ref>
125 set to <tp:value-ref type="Sending_State">Pending_Send</tp:value-ref> will be
126 moved to <tp:value-ref type="Sending_State">Sending</tp:value-ref> as if
186127 <tp:dbus-ref
187 namespace="ofdT.Call.Stream.DRAFT">SetSending</tp:dbus-ref>
128 namespace="ofdT.Call1.Stream">SetSending</tp:dbus-ref>
188129 (True) had been called.</p>
189130 </tp:docstring>
190131 </tp:enumvalue>
207148 <arg name="Streams" type="ao">
208149 <tp:docstring>
209150 The <tp:dbus-ref
210 namespace="ofdT.Call">Stream.DRAFT</tp:dbus-ref>s which were
151 namespace="ofdT.Call1">Stream</tp:dbus-ref>s which were
211152 added.
212153 </tp:docstring>
213154 </arg>
220161 <p>Emitted when streams are removed from a call</p>
221162 </tp:docstring>
222163 <arg name="Streams" type="ao">
223 <tp:docstring>
224 The <tp:dbus-ref
225 namespace="ofdT.Call">Stream.DRAFT</tp:dbus-ref>s which were
226 removed.
227 </tp:docstring>
228 </arg>
164 <tp:docstring>
165 The <tp:dbus-ref
166 namespace="ofdT.Call1">Stream</tp:dbus-ref>s which were
167 removed.
168 </tp:docstring>
169 </arg>
170 <arg name="Reason" type="(uuss)" tp:type="Call_State_Reason">
171 <tp:docstring>
172 Why the content was removed.
173 </tp:docstring>
174 </arg>
229175 </signal>
230176
231177 <property name="Streams" tp:name-for-bindings="Streams"
232178 type="ao" access="read">
233179 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
234 <p>The list of <tp:dbus-ref namespace="ofdT.Call"
235 >Stream.DRAFT</tp:dbus-ref> objects that exist in this
180 <p>The list of <tp:dbus-ref namespace="ofdT.Call1"
181 >Stream</tp:dbus-ref> objects that exist in this
236182 content.</p>
237183
238184 <tp:rationale>
+0
-87
spec/Call_Content_Codec_Offer.xml less more
0 <?xml version="1.0" ?>
1 <node name="/Call_Content_Codec_Offer"
2 xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
3 <tp:copyright>Copyright © 2009-2010 Collabora Ltd.</tp:copyright>
4 <tp:copyright>Copyright © 2009-2010 Nokia Corporation</tp:copyright>
5 <tp:license xmlns="http://www.w3.org/1999/xhtml">
6 <p>This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.</p>
10
11 <p>This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.</p>
15
16 <p>You should have received a copy of the GNU Lesser General Public
17 License along with this library; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 02110-1301, USA.</p>
20 </tp:license>
21
22 <interface name="org.freedesktop.Telepathy.Call.Content.CodecOffer.DRAFT"
23 tp:causes-havoc="experimental">
24 <tp:added version="0.19.0">(draft 1)</tp:added>
25
26 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
27 This object represents an offer of a Codec payload mapping.
28 </tp:docstring>
29
30 <method name="Accept" tp:name-for-bindings="Accept">
31 <arg name="Codecs" direction="in"
32 type="a(usuua{ss})" tp:type="Codec[]">
33 <tp:docstring>
34 The local codec mapping to send to the remote contacts and
35 to use in the <tp:dbus-ref
36 namespace="ofdT.Call">Content.DRAFT</tp:dbus-ref>.
37 </tp:docstring>
38 </arg>
39 <tp:docstring>
40 Accept the updated Codec mapping and update the local mapping.
41 </tp:docstring>
42 <tp:possible-errors>
43 <tp:error name="org.freedesktop.Telepathy.Error.InvalidArgument">
44 <tp:docstring>
45 The codecs given as the argument are invalid in some way.
46 </tp:docstring>
47 </tp:error>
48 </tp:possible-errors>
49 </method>
50
51 <method name="Reject" tp:name-for-bindings="Reject">
52 <tp:docstring>
53 Reject the proposed update to the codecs
54 FIXME add error codes and strings here
55 </tp:docstring>
56 </method>
57
58 <property name="Interfaces" tp:name-for-bindings="Interfaces"
59 type="as" tp:type="DBus_Interface[]" access="read" tp:immutable="yes">
60 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
61 <p>Extra interfaces provided by this codec offer. This SHOULD
62 NOT include the CodecOffer interface itself, and cannot change
63 once the content has been created.</p>
64 </tp:docstring>
65 </property>
66
67 <property name="RemoteContactCodecs"
68 tp:name-for-bindings="Remote_Contact_Codecs"
69 type="a(usuua{ss})" tp:type="Codec[]" access="read"
70 tp:immutable="yes">
71 <tp:docstring>
72 A list of codecs the remote contact supports.
73 </tp:docstring>
74 </property>
75
76 <property name="RemoteContact" tp:name-for-bindings="Remote_Contact"
77 type="u" tp:type="Contact_Handle" access="read" tp:immutable="yes">
78 <tp:docstring>
79 The contact handle that this codec offer applies to.
80 </tp:docstring>
81 </property>
82
83
84 </interface>
85 </node>
86 <!-- vim:set sw=2 sts=2 et ft=xml: -->
1919 02110-1301, USA.</p>
2020 </tp:license>
2121
22 <interface name="org.freedesktop.Telepathy.Call.Content.Interface.Media.DRAFT"
22 <interface
23 name="org.freedesktop.Telepathy.Call1.Content.Interface.Media"
2324 tp:causes-havoc="experimental">
24 <tp:added version="0.19.0">(draft 1)</tp:added>
25 <tp:requires interface="org.freedesktop.Telepathy.Call.Content.DRAFT"/>
25 <tp:added version="0.23.4">(draft 2)</tp:added>
26 <tp:requires interface="org.freedesktop.Telepathy.Call1.Content"/>
2627
2728 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
2829 <p>Interface to use by a software implementation of media
2930 streaming. The reason behind splitting the members of this
3031 interface out from the main <tp:dbus-ref
31 namespace="ofdT.Call">Content.DRAFT</tp:dbus-ref> interface is
32 namespace="ofdT.Call1">Content</tp:dbus-ref> interface is
3233 that the software is not necessarily what controls the
3334 media. An example of this is in GSM phones, where the CM just
3435 tells the phone to dial a number and it does the audio routing
3536 in a device specific hardware way and the CM does not need
3637 to concern itself with codecs.</p>
3738
38 <h4>Codec negotiation</h4>
39 <h4>Codec Negotiation</h4>
3940
4041 <p>When a new <tp:dbus-ref
41 namespace="ofdT.Channel.Type">Call.DRAFT</tp:dbus-ref> channel
42 appears, whether it was requested or not, a <tp:dbus-ref
43 namespace="ofdT.Call.Content">CodecOffer.DRAFT</tp:dbus-ref>
44 will either be waiting in the
45 <tp:member-ref>CodecOffer</tp:member-ref> property, or will
42 namespace="ofdT.Channel.Type">Call1</tp:dbus-ref> channel
43 appears (whether it was requested or not) a <tp:dbus-ref
44 namespace="ofdT.Call1.Content">MediaDescription</tp:dbus-ref>
45 object will either be waiting in the
46 <tp:member-ref>MediaDescriptionOffer</tp:member-ref> property, or will
4647 appear at some point via the
47 <tp:member-ref>NewCodecOffer</tp:member-ref> signal.</p>
48
49 <p>The <tp:dbus-ref
50 namespace="ofdT.Call.Content.CodecOffer.DRAFT">RemoteContactCodecs</tp:dbus-ref>
51 property on the codec offer lists the codecs which are
52 supported by the remote contact, and so will determine the
53 codecs that should be proposed by the local user's streaming
54 implementation. An empty list means all codecs can be proposed.</p>
55
56 <p>For incoming calls on protocols where codecs are proposed when
57 starting the call (for example, <a
58 href="http://xmpp.org/extensions/xep-0166.html">Jingle</a>),
59 the <tp:dbus-ref
60 namespace="ofdT.Call.Content.CodecOffer.DRAFT">RemoteContactCodecs</tp:dbus-ref>
61 will contain information on the codecs that have already been
62 proposed by the remote contact, otherwise the codec map will
63 be the empty list.</p>
64
65 <p>The streaming implementation should look at the remote codec
66 map and the codecs known by the local user and call
48 <tp:member-ref>NewMediaDescriptionOffer</tp:member-ref> signal.</p>
49
50 <p>If nothing is known about the remote side's Media capabilities
51 (e.g. outgoing SIP/XMPP call), this <tp:dbus-ref namespace="ofdT.Call1.Content"
52 >MediaDescription</tp:dbus-ref> will pop up with {<tp:dbus-ref
53 namespace="ofdT.Call1.Content.MediaDescription"
54 >HasRemoteInformation</tp:dbus-ref> = false, <tp:dbus-ref
55 namespace="ofdT.Call1.Content.MediaDescription"
56 >FurtherNegotiationRequired</tp:dbus-ref> = true}, and the local
57 user's streaming implementation SHOULD call
58 <tp:dbus-ref namespace="ofdT.Call1.Content.MediaDescription"
59 >Accept</tp:dbus-ref>,
60 with a description of all supported codecs and other features.
61 The CM will then send this information to the remote side (and
62 <tp:member-ref>LocalMediaDescriptionChanged</tp:member-ref> will fire
63 with details of the description passed into <tp:dbus-ref
64 namespace="ofdT.Call1.Content.MediaDescription"
65 >Accept</tp:dbus-ref> for debugging purposes).
66 </p>
67 <p>When the remote codecs and other content information are available
68 (e.g. Remote user replies to initial offer, or sends a new offer of
69 their own, a new <tp:dbus-ref namespace="ofdT.Call1.Content"
70 >MediaDescription</tp:dbus-ref> will appear, with {<tp:dbus-ref
71 namespace="ofdT.Call1.Content.MediaDescription"
72 >HasRemoteInformation</tp:dbus-ref> = true, <tp:dbus-ref
73 namespace="ofdT.Call1.Content.MediaDescription"
74 >FurtherNegotiationRequired</tp:dbus-ref> = false},
75 and the <tp:dbus-ref
76 namespace="ofdT.Call1.Content.MediaDescription"
77 >Codecs</tp:dbus-ref>
78 property on the description offer set to the codecs which are
79 supported by the remote contact. The local user's streaming
80 implementation SHOULD then call Accept, with a description
81 that is compatible with the one one in the offer. After the codec
82 set is accepted, both
83 <tp:member-ref>LocalMediaDescriptionChanged</tp:member-ref> and
84 <tp:member-ref>RemoteMediaDescriptionsChanged</tp:member-ref>
85 will fire to signal their respective changes, to aid with debugging.
86 Note that if <tp:dbus-ref namespace="ofdT.Call1.Content.MediaDescription"
87 >Accept</tp:dbus-ref> is called, with <tp:dbus-ref
88 namespace="ofdT.Call1.Content.MediaDescription"
89 >FurtherNegotiationRequired</tp:dbus-ref> set to false,
90 the CM should be able to rely on the fact that the
91 description passed into Accept is compatible with the one in the
92 offer, and the description passed into Accept will not be signalled to
93 the remote side.
94 </p>
95
96 <h4>Changing codecs mid-call</h4>
97
98 <p>To update the codecs in the local (and optionally remote) media
99 descriptions mid-call, the
100 <tp:member-ref>UpdateLocalMediaDescription</tp:member-ref> method
101 should be called with details of the new codec list. If this is
102 accepted, then
103 <tp:member-ref>LocalMediaDescriptionChanged</tp:member-ref>
104 will be emitted with the new codec set.
105 </p>
106 <p> If parameters requiring negotiation are changed, then the
67107 <tp:dbus-ref
68 namespace="ofdT.Call.Content">CodecOffer.DRAFT.Accept</tp:dbus-ref>
69 on the intersection of these two codec lists.</p>
70
71 <p>This means that in practice, outgoing calls will have a codec
72 offer pop up with no information in the <tp:dbus-ref
73 namespace="ofdT.Call.Content.CodecOffer.DRAFT">RemoteContactCodecs</tp:dbus-ref>,
74 so the local user will call <tp:dbus-ref
75 namespace="ofdT.Call.Content.CodecOffer.DRAFT">Accept</tp:dbus-ref>
76 with the list of all codecs supported. If this codec offer is
77 accepted, then <tp:member-ref>CodecsChanged</tp:member-ref>
78 will fire with the details of the codecs passed into
79 <tp:dbus-ref
80 namespace="ofdT.Call.Content.CodecOffer.DRAFT">Accept</tp:dbus-ref>. If
81 the call is incoming, then the <tp:dbus-ref
82 namespace="ofdT.Call.Content.CodecOffer.DRAFT">RemoteContactCodecs</tp:dbus-ref>
83 will contain details of the remote contact's codecs and the
84 local user will call <tp:dbus-ref
85 namespace="ofdT.Call.Content.CodecOffer.DRAFT">Accept</tp:dbus-ref>
86 with the codecs that both sides understand. After the codec
87 set is accepted, <tp:member-ref>CodecsChanged</tp:member-ref>
88 will fire to signal this change.</p>
89
90 <h4>Protocols without codec negotiation</h4>
91
92 <p>For protocols where the codecs are not negotiable, instead of
93 popping up the initial content's <tp:dbus-ref
94 namespace="ofdT.Call.Content">CodecOffer.DRAFT</tp:dbus-ref>
95 object with an empty <tp:dbus-ref
96 namespace="ofdT.Call.Content.CodecOffer.DRAFT">RemoteContactCodecs</tp:dbus-ref>,
97 the CM should set the supported codec values to known codec
98 values in the said object's codec map.</p>
99
100 <h4>Changing codecs mid-call</h4>
101
102 <p>To update the codec list used mid-call, the
103 <tp:member-ref>UpdateCodecs</tp:member-ref> method should be
104 called with details of the new codec list. If this is
105 accepted, then <tp:member-ref>CodecsChanged</tp:member-ref>
106 will be emitted with the new codec set.</p>
108 namespace="ofdT.Call1.Content.MediaDescription"
109 >FurtherNegotiationRequired</tp:dbus-ref> property should be set to
110 TRUE, and the new media description should
111 only be used once they come in a new MediaDescriptionOffer
112 </p>
107113
108114 <p>If the other side decides to update his or her codec list
109115 during a call, a new <tp:dbus-ref
110 namespace="ofdT.Call.Content">CodecOffer.DRAFT</tp:dbus-ref>
116 namespace="ofdT.Call1.Content">MediaDescription</tp:dbus-ref>
111117 object will appear through
112 <tp:member-ref>NewCodecOffer</tp:member-ref> which should be
118 <tp:member-ref>NewMediaDescriptionOffer</tp:member-ref> which should be
113119 acted on as documented above.</p>
114120
121 <h4>Protocols without negotiation</h4>
122
123 <p>For protocols where the codecs are not negotiable, the initial content's <tp:dbus-ref
124 namespace="ofdT.Call1.Content">MediaDescription</tp:dbus-ref>
125 object will appear with <tp:dbus-ref
126 namespace="ofdT.Call1.Content.MediaDescription"
127 >HasRemoteInformation</tp:dbus-ref>,
128 set to true and the known supported codec values in <tp:dbus-ref
129 namespace="ofdT.Call1.Content.MediaDescription"
130 >Codecs</tp:dbus-ref>.
131 </p>
115132 </tp:docstring>
116133
117134 <tp:struct name="Codec" array-name="Codec_List">
139156 Number of channels of the codec if applicable, otherwise 0.
140157 </tp:docstring>
141158 </tp:member>
159 <tp:member name="Updated" type="b">
160 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
161 This should be set to true in calls to <tp:dbus-ref
162 namespace="ofdT.Call1.Content.MediaDescription"
163 >Accept</tp:dbus-ref> and
164 <tp:member-ref>UpdateLocalMediaDescription</tp:member-ref> if this
165 codec has changed in a way that needs to be signalled over the
166 network. If it is set to false, the CM is allowed ignore any
167 differences between the current parameters and the previous ones
168 <tp:rationale>
169 This mechanism may be used to save bandwidth and avoid the CM
170 having to calculate diffs against previous versions of this
171 struct, which can lead to false-positives (e.g. redundant ptime
172 updates).
173 </tp:rationale>
174 </tp:docstring>
175 </tp:member>
142176 <tp:member name="Parameters" type="a{ss}" tp:type="String_String_Map">
143177 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
144178 Extra parameters for this codec.
155189 A contact handle.
156190 </tp:docstring>
157191 </tp:member>
158 <tp:member name="Codecs" type="a(usuua{ss})" tp:type="Codec[]">
192 <tp:member name="Codecs" type="a(usuuba{ss})" tp:type="Codec[]">
159193 <tp:docstring>
160194 The codecs that the contact supports.
161195 </tp:docstring>
162196 </tp:member>
163197 </tp:mapping>
164198
165 <tp:struct name="Codec_Offering">
166 <tp:docstring>
167 A codec offer and its corresponding remote contact codec map.
168 </tp:docstring>
169 <tp:member name="Codec_Offer" type="o">
170 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
171 The object path to the <tp:dbus-ref namespace="ofdT.Call.Content"
172 >CodecOffer.DRAFT</tp:dbus-ref>
199 <tp:mapping name="Contact_Media_Description_Properties_Map">
200 <tp:member name="Remote_Contact" type="u" tp:type="Handle">
201 <tp:docstring>
202 The remote contact this description refers to or 0. This matches the
203 <tp:dbus-ref namespace="ofdT.Call1.Content.MediaDescription"
204 >RemoteContact</tp:dbus-ref> property on
205 <tp:dbus-ref namespace="ofdT.Call1.Content"
206 >MediaDescription</tp:dbus-ref>
207 </tp:docstring>
208 </tp:member>
209 <tp:member name="Media_Description_Properties" type="a{sv}"
210 tp:type="Media_Description_Properties">
211 <tp:docstring>
212 The properties of the description
213 </tp:docstring>
214 </tp:member>
215 </tp:mapping>
216
217 <tp:struct name="Media_Description_Offer">
218 <tp:docstring>
219 The remote description offer and its information
220 </tp:docstring>
221 <tp:member name="Media_Description" type="o">
222 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
223 The object path to the <tp:dbus-ref namespace="ofdT.Call1.Content"
224 >MediaDescription</tp:dbus-ref>
173225 </tp:docstring>
174226 </tp:member>
175227 <tp:member name="Remote_Contact" type="u" tp:type="Contact_Handle">
176228 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
177 The contact handle that this codec offer applies to.
178 </tp:docstring>
179 </tp:member>
180 <tp:member name="Remote_Contact_Codecs" type="a(usuua{ss})"
181 tp:type="Codec[]">
182 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
183 The <tp:dbus-ref namespace="ofdT.Call.Content"
184 >CodecOffer.DRAFT.RemoteContactCodecs</tp:dbus-ref> property
185 of the codec offer.
229 The contact handle that this description applies to.
230 </tp:docstring>
231 </tp:member>
232 <tp:member name="Properties" type="a{sv}"
233 tp:type="Media_Description_Properties">
234 <tp:docstring>
235 The immutable properties of all interfaces of the codec description.
236
237 <tp:rationale>
238 Having all the codec description properties here saves a D-Bus
239 round-trip - it shouldn't be necessary to get the properties from the
240 MediaDescription object, in practice.
241 </tp:rationale>
186242 </tp:docstring>
187243 </tp:member>
188244 </tp:struct>
189245
190 <signal name="CodecsChanged" tp:name-for-bindings="Codecs_Changed">
191 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
192 <p>Emitted when the codecs in use change.</p>
193
194 <p>As well as acting as change notification for the
195 <tp:member-ref>ContactCodecMap</tp:member-ref>, emission of this
196 signal implies that the <tp:member-ref>CodecOffer</tp:member-ref>
197 property has changed to <code>('/', {})</code>.</p>
198 </tp:docstring>
199 <arg name="Updated_Codecs" type="a{ua(usuua{ss})}"
200 tp:type="Contact_Codec_Map">
201 <tp:docstring>
202 A map from contact to his or her codecs. Each pair in this
203 map is added to the
204 <tp:member-ref>ContactCodecMap</tp:member-ref> property,
205 replacing any previous pair with that key.
206 </tp:docstring>
207 </arg>
208 <arg name="Removed_Contacts" type="au" tp:type="Contact_Handle[]">
209 <tp:docstring>
210 A list of keys which were removed from the
211 <tp:member-ref>ContactCodecMap</tp:member-ref>, probably because
212 those contacts left the call.
213 </tp:docstring>
214 </arg>
215 </signal>
216
217 <method name="UpdateCodecs" tp:name-for-bindings="Update_Codecs">
218 <tp:docstring>
219 Update the local codec mapping. This method should only be
220 used during an existing call to update the codec mapping.
221 </tp:docstring>
222 <arg name="Codecs" direction="in"
223 type="a(usuua{ss})" tp:type="Codec[]">
224 <tp:docstring>
225 The codecs now supported by the local user.
246 <method name="UpdateLocalMediaDescription"
247 tp:name-for-bindings="Update_Local_Media_Description">
248 <tp:docstring>
249 Update the local codec mapping and other interfaces of the
250 MediaDescription. This method should only be
251 used during an existing call to update the local media description.
252 This may trigger a re-negotiation which may result in new
253 new MediaDescriptionOffers if the "FurtherNegotiationRequired"
254 property is TRUE.
255 Otherwise, only parameters which strictly describe the media being sent
256 can be changed.
257 </tp:docstring>
258 <arg name="Remote_Contact" type="u" tp:type="Handle" direction="in">
259 <tp:docstring>
260 The remote contact that this description should be negotiated with
261 (or 0 to mean "negotiate this with everyone"). Note that encoding
262 the same video multiple times is often needlessly expensive, so
263 differences in MediaDescriptions negotiated with different parties
264 in the call should be limited to payloading parameters if possible.
265 </tp:docstring>
266 </arg>
267 <arg name="MediaDescription" direction="in" type="a{sv}"
268 tp:type="Media_Description_Properties">
269 <tp:docstring>
270 The updated media description that the local side wants to use.
226271 </tp:docstring>
227272 </arg>
228273 <tp:possible-errors>
229 <tp:error name="org.freedesktop.Telepathy.Error.NotAvailable">
274 <tp:error name="org.freedesktop.Telepathy.Error.NotImplemented">
230275 <tp:docstring>
231 Raised when a <tp:dbus-ref
232 namespace="ofdT.Call.Content">CodecOffer.DRAFT</tp:dbus-ref>
233 object exists and is referred to in the
234 <tp:member-ref>CodecOffer</tp:member-ref> property which
235 should be used instead of calling this method, or before
236 the content's initial <tp:dbus-ref
237 namespace="ofdT.Call.Content">CodecOffer.DRAFT</tp:dbus-ref>
238 object has appeared.
276 The protocol does not support changing the codecs mid-call.
239277 </tp:docstring>
240278 </tp:error>
241 </tp:possible-errors>
279 <tp:error name="org.freedesktop.Telepathy.Error.InvalidArgument">
280 <tp:docstring>
281 The description given is invalid in some way.
282 </tp:docstring>
283 </tp:error>
284 </tp:possible-errors>
242285 </method>
243286
244 <property name="ContactCodecMap" tp:name-for-bindings="Contact_Codec_Map"
245 type="a{ua(usuua{ss})}" tp:type="Contact_Codec_Map" access="read">
246 <tp:docstring>
247 <p>A map from contact handles (including the local user's own handle)
248 to the codecs supported by that contact.</p>
287 <property name="RemoteMediaDescriptions"
288 tp:name-for-bindings="Remote_Media_Descriptions"
289 type="a{ua{sv}}"
290 tp:type="Contact_Media_Description_Properties_Map" access="read">
291 <tp:docstring>
292 <p>A map from contact handles to descriptions supported by that
293 contact.</p>
294
295 <p>Keys of this map will appear in at most one <tp:dbus-ref
296 namespace="ofdT.Call1.Stream">RemoteMembers</tp:dbus-ref>.
297 See <tp:dbus-ref namespace="ofdT.Call1.Content.MediaDescription"
298 >RemoteContact</tp:dbus-ref> for more details on how to map between
299 MediaDescriptions and Streams.</p>
300 </tp:docstring>
301 </property>
302
303 <property name="LocalMediaDescriptions"
304 tp:name-for-bindings="Local_Media_Descriptions"
305 type="a{ua{sv}}"
306 tp:type="Contact_Media_Description_Properties_Map" access="read">
307 <tp:docstring>
308 <p>A map from contact handles to the descriptions the local side
309 responsed with.</p> </tp:docstring>
310 </property>
311
312 <signal name="NewMediaDescriptionOffer"
313 tp:name-for-bindings="New_Media_Description_Offer">
314 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
315 <p>Emitted when a new <tp:dbus-ref namespace="ofdT.Call1.Content"
316 >MediaDescription</tp:dbus-ref> appears. The streaming
317 >implementation MUST respond by calling the
318 <tp:dbus-ref namespace="ofdT.Call1.Content.MediaDescription"
319 >Accept</tp:dbus-ref> or <tp:dbus-ref
320 namespace="ofdT.Call1.Content.MediaDescription"
321 >Reject</tp:dbus-ref> method on the description object appeared.</p>
322
323 <p>Emission of this signal indicates that the
324 <tp:member-ref>MediaDescriptionOffer</tp:member-ref> property has
325 changed to
326 <code>(Description, Contact, MediaDescriptionProperties)</code>.</p>
327
328 <p>When the MediaDescriptionOffer has been dealt with then
329 <tp:dbus-ref namespace="ofdT.Call1.Content.Interface.Media"
330 >MediaDescriptionOfferDone</tp:dbus-ref> must be emitted
331 before <tp:dbus-ref
332 namespace="ofdT.Call1.Content.Interface.Media"
333 >NewMediaDescriptionOffer</tp:dbus-ref> is emitted again.
334 </p>
335
336 </tp:docstring>
337 <arg name="Media_Description" type="o">
338 <tp:docstring>
339 The object path of the new media description. This replaces any
340 previous media description.
341 </tp:docstring>
342 </arg>
343 <arg name="Contact" type="u">
344 <tp:docstring>
345 The remote contact the media description belongs to.
346 </tp:docstring>
347 </arg>
348 <arg name="Properties" type="a{sv}"
349 tp:type="Media_Description_Properties">
350 <tp:docstring>
351 The immutable properties of the remote media description.
352
353 <tp:rationale>
354 Having all the MediaDescription properties here saves a D-Bus
355 round-trip - it shouldn't be necessary to get the properties from the
356 MediaDescription object, in practice.
357 </tp:rationale>
358 </tp:docstring>
359 </arg>
360 </signal>
361
362 <signal name="MediaDescriptionOfferDone"
363 tp:name-for-bindings="Media_Description_Offer_Done">
364 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
365 <p>Emitted when a <tp:dbus-ref namespace="ofdT.Call1.Content"
366 >MediaDescription</tp:dbus-ref> has been handled. </p>
367 <p>Emission of this signal indicates that the
368 <tp:member-ref>MediaDescriptionOffer</tp:member-ref> property has
369 changed to
370 <code>("/", 0, {})</code>.</p>
371 </tp:docstring>
372 </signal>
373
374
375 <signal name="LocalMediaDescriptionChanged"
376 tp:name-for-bindings="Local_Media_Description_Changed">
377
378 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
379 <p>Change notification for
380 <tp:dbus-ref namespace="ofdT.Call1.Content.Interface.Media"
381 >LocalMediaDescriptions</tp:dbus-ref>
382 </p>
383 </tp:docstring>
384
385 <arg name="Remote_Contact" type="u" tp:type="Handle">
386 <tp:docstring>
387 The remote contact that this description was negotiated with
388 (or 0 to mean "negotiated with everyone").
389 </tp:docstring>
390 </arg>
391
392 <arg name="Updated_Media_Description" type="a{sv}"
393 tp:type="Media_Description_Properties">
394 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
395 <p>The local content description that was updated</p>
396 </tp:docstring>
397 </arg>
398 </signal>
399
400 <signal name="RemoteMediaDescriptionsChanged"
401 tp:name-for-bindings="Remote_Media_Descriptions_Changed">
402
403 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
404 <p>Change notification for
405 <tp:dbus-ref namespace="ofdT.Call1.Content.Interface.Media"
406 >RemoteMediaDescriptions</tp:dbus-ref>
407 </p>
408 </tp:docstring>
409
410 <arg name="Updated_Media_Descriptions" type="a{ua{sv}}"
411 tp:type="Contact_Media_Description_Properties_Map">
412 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
413 <p>The remote content descriptions that were updated</p>
414 </tp:docstring>
415 </arg>
416 </signal>
417
418 <signal name="MediaDescriptionsRemoved"
419 tp:name-for-bindings="Media_Descriptions_Removed">
420
421 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
422 <p>Removal notification for
423 <tp:dbus-ref namespace="ofdT.Call1.Content.Interface.Media"
424 >RemoteMediaDescriptions</tp:dbus-ref>
425 and
426 <tp:dbus-ref namespace="ofdT.Call1.Content.Interface.Media"
427 >LocalMediaDescriptions</tp:dbus-ref>
428 </p>
429 </tp:docstring>
430
431 <arg name="Removed_Media_Descriptions" type="au"
432 tp:type="Contact_Handle[]">
433 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
434 <p>The local and remote content descriptions that are no longer part
435 of this content</p>
436 </tp:docstring>
437 </arg>
438 </signal>
439
440 <property name="MediaDescriptionOffer"
441 tp:name-for-bindings="Media_Description_Offer"
442 type="(oua{sv})" tp:type="Media_Description_Offer" access="read">
443 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
444 <p>The object path to the current
445 <tp:dbus-ref namespace="ofdT.Call1.Content"
446 >MediaDescription</tp:dbus-ref> object, its
447 <tp:dbus-ref namespace="ofdT.Call1.Content.MediaDescription"
448 >RemoteContact</tp:dbus-ref> and
449 a mapping of the MediaDescriptions properties.
450 If the object path is "/" then there isn't an outstanding
451 content description, and the mapping MUST be empty.</p>
452
453 <tp:rationale>
454 Having all <tp:dbus-ref
455 namespace="ofdT.Call1.Content">MediaDescription</tp:dbus-ref>
456 properties here saves a D-Bus round-trip - it shouldn't be
457 necessary to get these properties from the Content MediaDescription
458 object, in practice.
459 </tp:rationale>
249460
250461 <p>Change notification is via the
251 <tp:member-ref>CodecsChanged</tp:member-ref> signal.</p>
252 </tp:docstring>
253 </property>
254
255 <signal name="NewCodecOffer" tp:name-for-bindings="New_Codec_Offer">
256 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
257 <p>Emitted when a new <tp:dbus-ref namespace="ofdT.Call.Content"
258 >CodecOffer.DRAFT</tp:dbus-ref> appears. The streaming
259 implementation MUST respond by calling the <tp:dbus-ref
260 namespace="ofdT.Call.Content.CodecOffer.DRAFT"
261 >Accept</tp:dbus-ref> or <tp:dbus-ref
262 namespace="ofdT.Call.Content.CodecOffer.DRAFT"
263 >Reject</tp:dbus-ref> method on the codec offer object.</p>
264
265 <p>Emission of this signal indicates that the
266 <tp:member-ref>CodecOffer</tp:member-ref> property has changed to
267 <code>(Contact, Offer, Codecs)</code>.</p>
268 </tp:docstring>
269 <arg name="Contact" type="u">
270 <tp:docstring>
271 The contact the codec offer belongs to.
272 </tp:docstring>
273 </arg>
274 <arg name="Offer" type="o">
275 <tp:docstring>
276 The object path of the new codec offer. This replaces any previous
277 codec offer.
278 </tp:docstring>
279 </arg>
280 <arg name="Codecs" type="a(usuua{ss})" tp:type="Codec[]">
281 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
282 <p>The <tp:dbus-ref namespace="ofdT.Call.Content"
283 >CodecOffer.DRAFT.RemoteContactCodecs</tp:dbus-ref> property
284 of the codec offer.</p>
285
286 <tp:rationale>
287 Having the <tp:dbus-ref
288 namespace="ofdT.Call.Content.CodecOffer.DRAFT">RemoteContactCodecs</tp:dbus-ref>
289 property here saves a D-Bus round-trip - it shouldn't be
290 necessary to get the property from the CodecOffer object, in
291 practice.
292 </tp:rationale>
293 </tp:docstring>
294 </arg>
295 </signal>
296
297 <property name="CodecOffer" tp:name-for-bindings="Codec_Offer"
298 type="(oua(usuua{ss}))" tp:type="Codec_Offering" access="read">
299 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
300 <p>The object path to the current
301 <tp:dbus-ref namespace="ofdT.Call.Content"
302 >CodecOffer.DRAFT</tp:dbus-ref> object, its
303 <tp:dbus-ref namespace="ofdT.Call.Content"
304 >CodecOffer.DRAFT.RemoteContact</tp:dbus-ref> and
305 <tp:dbus-ref namespace="ofdT.Call.Content"
306 >CodecOffer.DRAFT.RemoteContactCodecs</tp:dbus-ref> properties.
307 If the object path is "/" then there isn't an outstanding
308 codec offer, and the mapping MUST be empty.</p>
309
310 <tp:rationale>
311 Having the <tp:dbus-ref
312 namespace="ofdT.Call.Content.CodecOffer.DRAFT"
313 >RemoteContact</tp:dbus-ref> and
314 <tp:dbus-ref namespace="ofdT.Call.Content.CodecOffer.DRAFT"
315 >RemoteContactCodecs</tp:dbus-ref>
316 properties here saves a D-Bus round-trip - it shouldn't be
317 necessary to get these properties from the CodecOffer object, in
318 practice.
319 </tp:rationale>
320
321 <p>Change notification is via the
322 <tp:member-ref>NewCodecOffer</tp:member-ref> (which replaces the
323 value of this property with a new codec offer), and
324 <tp:member-ref>CodecsChanged</tp:member-ref> (which implies that
325 there is no longer any active codec offer) signals.</p>
462 <tp:member-ref>NewMediaDescriptionOffer</tp:member-ref> and
463 <tp:member-ref>MediaDescriptionOfferDone</tp:member-ref> signals.
464 </p>
326465 </tp:docstring>
327466 </property>
328467
361500 <p>The packetization method in use for this content.</p>
362501 </tp:docstring>
363502 </property>
503
504 <signal name="DTMFChangeRequested"
505 tp:name-for-bindings="DTMF_Change_Requested">
506 <tp:docstring>
507 Used by the CM to relay instructions from <tp:dbus-ref
508 namespace="ofdT">Channel.Interface.DTMF</tp:dbus-ref> to the streaming
509 implementation. If any contact in this call supports the
510 telephone-event codec in their MediaDescription, this event should be
511 sent as outlined in RFC 4733. Otherwise, it should be sent as an
512 audible tone.
513 </tp:docstring>
514 <arg name="Event" type="y" tp:type="DTMF_Event">
515 <tp:docstring>
516 The event to send (or stop sending).
517 </tp:docstring>
518 </arg>
519 <arg name="State" type="u" tp:type="Sending_State">
520 <tp:docstring>
521 Either <tp:value-ref type="Sending_State">Pending_Send</tp:value-ref> or
522 <tp:value-ref type="Sending_State">Pending_Stop_Sending</tp:value-ref>.
523 </tp:docstring>
524 </arg>
525 </signal>
526
527 <method name="AcknowledgeDTMFChange"
528 tp:name-for-bindings="Acknowledge_DTMF_Change">
529 <tp:docstring>
530 Called by the streaming implementation in response to
531 <tp:member-ref>DTMFChangeRequested</tp:member-ref> to confirm that it
532 has started or stopped sending the event in question.
533 </tp:docstring>
534 <arg name="Event" type="y" tp:type="DTMF_Event" direction="in">
535 <tp:docstring>
536 The event referred to in the corresponding
537 <tp:member-ref>DTMFChangeRequested</tp:member-ref> signal.
538 </tp:docstring>
539 </arg>
540 <arg name="State" type="u" tp:type="Sending_State" direction="in">
541 <tp:docstring>
542 Either <tp:value-ref type="Sending_State">Sending</tp:value-ref> or
543 <tp:value-ref type="Sending_State">None</tp:value-ref>.
544 </tp:docstring>
545 </arg>
546 </method>
547
548 <property name="CurrentDTMFEvent"
549 tp:name-for-bindings="Current_DTMF_Event" type="y" tp:type="DTMF_Event"
550 access="read">
551 <tp:docstring>
552 The currently requested DTMF event (for state-recoverability of
553 <tp:member-ref>DTMFChangeRequested</tp:member-ref>). Should be ignored
554 if <tp:member-ref>CurrentDTMFState</tp:member-ref> is None.
555 </tp:docstring>
556 </property>
557
558 <property name="CurrentDTMFState"
559 tp:name-for-bindings="Current_DTMF_State" type="u" tp:type="Sending_State"
560 access="read">
561 <tp:docstring>
562 The current DTMF state (for state-recoverability of
563 <tp:member-ref>DTMFChangeRequested</tp:member-ref>).
564 </tp:docstring>
565 </property>
566
567 <method name="Fail" tp:name-for-bindings="Fail">
568 <tp:docstring>
569 Signal an unrecoverable error for this content, and remove it.
570 </tp:docstring>
571 <arg direction="in" name="Reason" type="(uuss)"
572 tp:type="Call_State_Reason">
573 <tp:docstring>
574 A reason struct describing the error.
575 </tp:docstring>
576 </arg>
577 </method>
364578 </interface>
365579 </node>
366580 <!-- vim:set sw=2 sts=2 et ft=xml: -->
+0
-85
spec/Call_Content_Interface_Mute.xml less more
0 <?xml version="1.0" ?>
1 <node name="/Call_Content_Interface_Mute" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
2 <tp:copyright> Copyright © 2005-2010 Nokia Corporation </tp:copyright>
3 <tp:copyright> Copyright © 2005-2010 Collabora Ltd </tp:copyright>
4 <tp:license xmlns="http://www.w3.org/1999/xhtml">
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with this library; if not, write to the Free Software
17 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 </tp:license>
19
20 <interface name="org.freedesktop.Telepathy.Call.Content.Interface.Mute.DRAFT" tp:causes-havoc="experimental">
21 <tp:added version="0.19.6">(draft version, not API-stable)</tp:added>
22 <tp:requires interface="org.freedesktop.Telepathy.Call.Content.DRAFT"/>
23
24 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
25 <p>Interface for calls which may be muted. This only makes sense
26 for channels where audio or video is streaming between members.</p>
27
28 <p>Muting a call content indicates that the user does not wish to send
29 outgoing audio or video.</p>
30
31 <p>Although it's client's responsibility to actually mute the microphone
32 or turn off the camera, using this interface the client can also
33 inform the CM and other clients of that fact.</p>
34
35 <tp:rationale>
36 For some protocols, the fact that the content is muted needs
37 to be transmitted to the peer; for others, the notification
38 to the peer is only informational (eg. XMPP), and some
39 protocols may have no notion of muting at all.
40 </tp:rationale>
41 </tp:docstring>
42
43 <signal name="MuteStateChanged" tp:name-for-bindings="Mute_State_Changed">
44 <tp:docstring>
45 Emitted to indicate that the mute state has changed for this call content.
46 This may occur as a consequence of the client calling
47 <tp:member-ref>SetMuted</tp:member-ref>, or as an indication that another
48 client has (un)muted the content.
49 </tp:docstring>
50 <arg name="MuteState" type="b">
51 <tp:docstring>
52 True if the content is now muted.
53 </tp:docstring>
54 </arg>
55 </signal>
56
57 <property name="MuteState" type="b"
58 access="read" tp:name-for-bindings="Mute_State">
59 <tp:docstring>
60 True if the content is muted.
61 </tp:docstring>
62 </property>
63
64 <method name="SetMuted" tp:name-for-bindings="Set_Muted">
65 <tp:changed version="0.21.2">renamed from SetMuted to Mute</tp:changed>
66 <tp:changed version="0.21.3">renamed back from Mute to SetMuted</tp:changed>
67 <arg direction="in" name="Muted" type="b">
68 <tp:docstring>
69 True if the client has muted the content.
70 </tp:docstring>
71 </arg>
72 <tp:docstring>
73 <p>Inform the CM that the call content has been muted or unmuted by
74 the client.</p>
75
76 <p>It is the client's responsibility to actually mute or unmute the
77 microphone or camera used for the content. However, the client
78 MUST call this whenever it mutes or unmutes the content.</p>
79 </tp:docstring>
80 </method>
81
82 </interface>
83 </node>
84 <!-- vim:set sw=2 sts=2 et ft=xml: -->
1919 02110-1301, USA.</p>
2020 </tp:license>
2121
22 <interface name="org.freedesktop.Telepathy.Call.Content.Interface.VideoControl.DRAFT"
22 <interface name="org.freedesktop.Telepathy.Call1.Content.Interface.VideoControl"
2323 tp:causes-havoc="experimental">
2424 <tp:added version="0.21.10">(draft 1)</tp:added>
25 <tp:requires interface="org.freedesktop.Telepathy.Call.Content.Interface.Media.DRAFT"/>
25 <tp:requires interface="org.freedesktop.Telepathy.Call1.Content.Interface.Media"/>
2626
2727 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
2828 <p>An interface that allows the connection manager to control the video
0 <?xml version="1.0" ?>
1 <node name="/Call_Content_Media_Description"
2 xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
3 <tp:copyright>Copyright © 2009-2010 Collabora Ltd.</tp:copyright>
4 <tp:copyright>Copyright © 2009-2010 Nokia Corporation</tp:copyright>
5 <tp:license xmlns="http://www.w3.org/1999/xhtml">
6 <p>This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.</p>
10
11 <p>This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.</p>
15
16 <p>You should have received a copy of the GNU Lesser General Public
17 License along with this library; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 02110-1301, USA.</p>
20 </tp:license>
21
22 <interface name="org.freedesktop.Telepathy.Call1.Content.MediaDescription"
23 tp:causes-havoc="experimental">
24 <tp:added version="0.23.4">(draft 1)</tp:added>
25
26 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
27 This object represents a remote Description Offer to which the local
28 streaming implementation should reply with its local Description.
29
30 This is intended as a temporary transactional object for use with <tp:dbus-ref
31 namespace="ofdT.Call1">Content.Interface.Media</tp:dbus-ref>.
32 There will always be 0 or 1 MediaDescription object per Content.
33 In most cases, this object will stay alive until you call either
34 <tp:member-ref>Accept</tp:member-ref> or
35 <tp:member-ref>Reject</tp:member-ref>, and then disappear.
36 There are some cases (e.g. an endpoint being removed from the call)
37 where a MediaDescription object will disappear before you have had a
38 chance to either Accept or Reject it.
39 </tp:docstring>
40
41 <method name="Accept" tp:name-for-bindings="Accept">
42 <arg name="Local_Media_Description" direction="in"
43 type="a{sv}" tp:type="Media_Description_Properties">
44 <tp:docstring>
45 The local description to send to the remote contacts and
46 to use in the <tp:dbus-ref
47 namespace="ofdT.Call1">Content</tp:dbus-ref>.
48 </tp:docstring>
49 </arg>
50 <tp:docstring>
51 Accepts the updated Description and update the corresponding
52 local description. If FurtherNegotiationRequired is True,
53 calling this method will generally cause a network round-trip
54 and a new MediaDescription to be offered (hopefully with
55 FurtherNegotiationRequired set to False).
56 </tp:docstring>
57 <tp:possible-errors>
58 <tp:error name="org.freedesktop.Telepathy.Error.InvalidArgument">
59 <tp:docstring>
60 The description given is invalid in some way.
61 </tp:docstring>
62 </tp:error>
63 </tp:possible-errors>
64 </method>
65
66 <method name="Reject" tp:name-for-bindings="Reject">
67 <tp:docstring>
68 Reject the proposed update to the remote description.
69 </tp:docstring>
70 <arg name="Reason" type="(uuss)" tp:type="Call_State_Reason"
71 direction="out">
72 <tp:docstring>
73 A structured reason for the rejection.
74 </tp:docstring>
75 </arg>
76 </method>
77
78 <property name="Interfaces" tp:name-for-bindings="Interfaces"
79 type="as" tp:type="DBus_Interface[]" access="read" tp:immutable="yes">
80 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
81 <p>Extra interfaces provided by this media description. This SHOULD
82 NOT include the Description interface itself.</p>
83 </tp:docstring>
84 </property>
85
86 <property name="FurtherNegotiationRequired"
87 tp:name-for-bindings="Further_Negotiation_Required" type="b"
88 access="read" tp:immutable="yes">
89 <tp:docstring xmlns="http://www.w3.org/1999/xhtml" >
90 <p> If this is set to True by the CM in a MediaDescriptionOffer, it
91 means "This is an offer under the SDP Offer/Answer model. Whatever
92 you accept this offer with is what I will send to the other side in
93 my answer."
94
95 If this is set to False by the CM then it means "This is an Answer
96 under the SDP Offer/Answer model, and if it remains False in the
97 Accept(), no further codec negotiation needs to happen."
98
99 If this is set to True by the streaming implementation (e.g. in an
100 Accept or UpdateLocalMediaDescription call) then a new SDP
101 Offer/Answer round-trip will be initiated.
102 </p>
103 </tp:docstring>
104 </property>
105
106 <property name="HasRemoteInformation"
107 tp:name-for-bindings="Has_Remote_Information" type="b"
108 access="read" tp:immutable="yes">
109 <tp:docstring xmlns="http://www.w3.org/1999/xhtml" >
110 <p> True if this offer contains information from the remote side:
111 If False then the Accept response solely depends on the
112 capabilities and preferences of the local side.
113
114 In most protocols this property will be False for the initial
115 DescriptionOffer on an outgoing call.
116 </p>
117 </tp:docstring>
118 </property>
119
120 <property name="Codecs"
121 tp:name-for-bindings="Codecs"
122 type="a(usuuba{ss})" tp:type="Codec[]" access="read"
123 tp:immutable="yes">
124 <tp:docstring>
125 A list of codecs the remote contact supports. When used with
126 <tp:member-ref>Accept</tp:member-ref>, it means the locally supported
127 codecs.
128 </tp:docstring>
129 </property>
130
131 <property name="RemoteContact" tp:name-for-bindings="Remote_Contact"
132 type="u" tp:type="Contact_Handle" access="read" tp:immutable="yes">
133 <tp:docstring>
134 The contact handle that this description applies to.
135
136 This property can be used as an opaque identifier, and searched for in
137 <tp:dbus-ref namespace="ofdT.Call1.Stream"
138 >RemoteMembers</tp:dbus-ref> for each Stream in this Content, to
139 determine which Stream this MediaDescription applies to. If multiple
140 MediaDescriptions apply to the same Stream, the
141 <tp:member-ref>SSRCs</tp:member-ref> property should be used to
142 separate media before decoding.
143
144 If this property is 0, this MediaDescription applies to all streams,
145 so the above matching method is unneccesary (e.g. in conference calls
146 with a mixer, media from all participants is mixed into one stream).
147
148 When calling Accept or UpdateLocalMediaDescription, this should always
149 be set to 0, or omitted, because it is assumed that you send the same
150 MediaDescription to everyone (Encoding a stream separately for each
151 contact in a call is inefficient, and should be avoided).
152 </tp:docstring>
153 </property>
154
155 <tp:mapping name="Contact_SSRCs_Map">
156 <tp:member name="Contact" type="u" tp:type="Handle">
157 <tp:docstring>
158 The remote contact these SSRCs belong to or 0.
159 </tp:docstring>
160 </tp:member>
161 <tp:member name="SSRCs" type="au">
162 <tp:docstring>
163 The list of Synchronisation Sources.
164 </tp:docstring>
165 </tp:member>
166 </tp:mapping>
167
168 <property name="SSRCs" tp:name-for-bindings="SSRCs"
169 type="a{uau}" tp:type="Contact_SSRCs_Map" access="read" tp:immutable="yes">
170 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
171 <p>A map from Handle to list of Synchronisation Sources, as defined by
172 RFC 3550.</p>
173
174 <p>Some protocols require the negotiation of SSRC identifiers for RTP
175 streams. If this is the case, then MediaDescription offers will appear
176 with this property set. The streaming implementation should then call
177 <tp:member-ref>Accept</tp:member-ref> with a map from 0 to a
178 list containing a single SSRC (which does not collide with these,
179 or any previously seen SSRCs). If a new MediaDescription offer
180 appears with an SSRC the same as one in <tp:dbus-ref
181 namespace="ofdT.Call1.Content.Interface.Media"
182 >LocalMediaDescriptions</tp:dbus-ref>, then the streaming
183 implementation should pick a new SSRC to resolve the collision.</p>
184
185 <p>It is expected that this list will normally be at most one element long,
186 but it is kept as a list for extensibility. The concatenation of all
187 SSRCs associated with a Stream should contain no duplicate entries. If
188 there are collisions, then it is the responsibility of the protocol
189 implementation to resolve them and generate new offers.</p>
190
191 <p>If this property is omitted, then the streaming implementation can
192 assume that there is only one MediaDescription per Stream.</p>
193
194 <p>If there is a single multicast Call Stream with multiple
195 Remote Members, and all members are forced to use the same
196 MediaDescription, this map can be used by the streaming implementation
197 to determine which video sources belong to which contacts (e.g. in
198 order to put a name under each face in the call)</p>
199 </tp:docstring>
200 </property>
201
202 <tp:mapping name="Media_Description_Properties">
203 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
204 <p>
205 A mapping containing all properties that define the information from a
206 <tp:dbus-ref
207 namespace="ofdT.Call1.Content"
208 >MediaDescription</tp:dbus-ref> and its interfaces.
209 </p>
210
211 <p>
212 If <tp:dbus-ref namespace="ofdT.Call1.Content.MediaDescription"
213 >HasRemoteInformation</tp:dbus-ref> is True, then this mapping
214 will always contains at least
215 <tp:dbus-ref namespace="ofdT.Call1.Content.MediaDescription"
216 >Codecs</tp:dbus-ref>
217 </p>
218 </tp:docstring>
219
220 <tp:member name="Media_Description_Property"
221 type="s" tp:type="DBus_Qualified_Member">
222 <tp:docstring>
223 A D-Bus interface name, followed by a dot and a D-Bus property name.
224 </tp:docstring>
225 </tp:member>
226 <tp:member name="Media_Description_Property_Value" type="v">
227 <tp:docstring>
228 The value of the property
229 </tp:docstring>
230 </tp:member>
231 </tp:mapping>
232
233 </interface>
234 </node>
235 <!-- vim:set sw=2 sts=2 et ft=xml: -->
0 <?xml version="1.0" ?>
1 <node name="/Call_Content_Media_Description_Interface_RTCP_Extended_Reports" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
2 <tp:copyright> Copyright © 2005-2010 Nokia Corporation </tp:copyright>
3 <tp:copyright> Copyright © 2005-2010 Collabora Ltd </tp:copyright>
4 <tp:license xmlns="http://www.w3.org/1999/xhtml">
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with this library; if not, write to the Free Software
17 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 </tp:license>
19
20 <interface name="org.freedesktop.Telepathy.Call1.Content.MediaDescription.Interface.RTCPExtendedReports"
21 tp:causes-havoc="experimental">
22 <tp:added version="0.23.4">(draft version, not API-stable)</tp:added>
23 <tp:requires
24 interface="org.freedesktop.Telepathy.Call1.Content.MediaDescription"/>
25
26 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
27 <p>This codec offer interface provides a method of signalling for
28 RTCP extended reports, documented by <em>RTP Control Protocol
29 Extended Reports (RTCP XR)</em> (RFC 3611). CMs should ignore
30 all RTCP Extended Report parameters that are not listed
31 in this spec at the time of implementation. More parameters can be
32 added to the spec as required.</p>
33
34 <p>For more details on what RTCP extended reports can do and how
35 to use them, one should refer to
36 <a href="http://www.faqs.org/rfcs/rfc3611.html">RFC 3611</a>.</p>
37
38 </tp:docstring>
39
40 <property access="read" type="u" name="LossRLEMaxSize" tp:name-for-bindings="Loss_RLE_Max_Size">
41 <tp:docstring>
42 If non-zero, enable Loss Run Length Encoded Report Blocks. The value
43 of this integer represents the max-size of report blocks, as specified
44 in RFC 3611 section 5.1. MAXUINT32 is used to indicate that there is
45 no limit.
46 </tp:docstring>
47 </property>
48 <property access="read" type="u" name="DuplicateRLEMaxSize" tp:name-for-bindings="Duplicate_RLE_Max_Size">
49 <tp:docstring>
50 If non-zero, enable Duplicate Run-Length-Encoded Report Blocks. The
51 value of this integer represents the max-size of report blocks, as
52 specified in RFC 3611 section 5.1. MAXUINT32 is used to indicate that
53 there is no limit.
54 </tp:docstring>
55 </property>
56 <property access="read" type="u" name="PacketReceiptTimesMaxSize" tp:name-for-bindings="Packet_Receipt_Times_Max_Size">
57 <tp:docstring>
58 If non-zero, enable Packet Receipt Times Report Blocks. The
59 value of this integer represents the max-size of report blocks, as
60 specified in RFC 3611 section 5.1. MAXUINT32 is used to indicate that
61 there is no limit.
62 </tp:docstring>
63 </property>
64 <property access="read" type="u" name="DLRRMaxSize" tp:name-for-bindings="DLRR_Max_Size">
65 <tp:docstring>
66 If non-zero, enable Receiver Reference Time and Delay since Last
67 Receiver Report Blocks (for estimating Round Trip Times between
68 non-senders and other parties in the call. The value of this integer
69 represents the max-size of report blocks, as specified in RFC 3611
70 section 5.1. MAXUINT32 is used to indicate that there is no limit.
71 </tp:docstring>
72 </property>
73 <property access="read" type="u" tp:type="RCPT_XR_RTT_Mode"
74 name="RTTMode" tp:name-for-bindings="RTT_Mode">
75 <tp:docstring>
76 Who is allowed to send Delay since Last Receiver Reports.
77 </tp:docstring>
78 </property>
79
80 <property access="read" type="u" tp:type="RTCP_XR_Statistics_Flags"
81 name="StatisticsFlags" tp:name-for-bindings="Statistics_Flags">
82 <tp:docstring>
83 Which fields SHOULD be included in the statistics summary
84 report blocks that are sent, and whether to send VoIP Metrics Report
85 Blocks. There can be zero or more flags
86 set.
87 </tp:docstring>
88 </property>
89
90 <property access="read" type="b" name="EnableMetrics" tp:name-for-bindings="Enable_Metrics">
91 <tp:docstring>
92 Whether to enable VoIP Metrics Report Blocks. These blocks are of a
93 fixed size.
94 </tp:docstring>
95 </property>
96
97 <tp:flags name="RTCP_XR_Statistics_Flags" type="u">
98 <tp:flag suffix="Loss" value="1">
99 <tp:docstring>
100 Loss report flag, as defined in RFC3611 section 4.6.
101 </tp:docstring>
102 </tp:flag>
103 <tp:flag suffix="Duplicate" value="2">
104 <tp:docstring>
105 Duplicate report flag, as defined in RFC3611 section 4.6.
106 </tp:docstring>
107 </tp:flag>
108 <tp:flag suffix="Jitter" value="4">
109 <tp:docstring>
110 Jitter flag, as defined in RFC3611 section 4.6.
111 </tp:docstring>
112 </tp:flag>
113 <tp:flag suffix="TTL" value="8">
114 <tp:docstring>
115 First bit of TTL or Hop Limit flag, as defined in RFC3611 section
116 4.6.
117 </tp:docstring>
118 </tp:flag>
119 <tp:flag suffix="HL" value="16">
120 <tp:docstring>
121 Second bit of TTL or Hop Limit flag, as defined in RFC3611 section
122 4.6.
123 </tp:docstring>
124 </tp:flag>
125 </tp:flags>
126
127 <tp:enum name="RCPT_XR_RTT_Mode" type="u">
128 <tp:enumvalue suffix="All" value="0">
129 <tp:docstring>
130 Both RTP data senders and data receivers MAY send DLRR
131 blocks.
132 </tp:docstring>
133 </tp:enumvalue>
134 <tp:enumvalue suffix="Sender" value="1">
135 <tp:docstring>
136 Only active RTP senders MAY send DLRR blocks, i.e., non RTP
137 senders SHALL NOT send DLRR blocks.
138 </tp:docstring>
139 </tp:enumvalue>
140 </tp:enum>
141
142 </interface>
143 </node>
144 <!-- vim:set sw=2 sts=2 et ft=xml: -->
0 <?xml version="1.0" ?>
1 <node name="/Call_Content_Media_Description_Interface_RTCP_Feedback" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
2 <tp:copyright> Copyright © 2005-2010 Nokia Corporation </tp:copyright>
3 <tp:copyright> Copyright © 2005-2010 Collabora Ltd </tp:copyright>
4 <tp:license xmlns="http://www.w3.org/1999/xhtml">
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with this library; if not, write to the Free Software
17 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 </tp:license>
19
20 <interface name="org.freedesktop.Telepathy.Call1.Content.MediaDescription.Interface.RTCPFeedback"
21 tp:causes-havoc="experimental">
22 <tp:added version="0.23.4">(draft version, not API-stable)</tp:added>
23 <tp:requires interface="org.freedesktop.Telepathy.Call1.Content.MediaDescription"/>
24
25 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
26 <p>This codec offer interface provides a method of signalling
27 support for RTCP feedback, documented by <em>Extended RTP
28 Profile for Real-time Transport Control Protocol (RTCP)-Based
29 Feedback (RTP/AVPF)</em> (RFC 4585).</p>
30
31 <p>The codec identifiers used in the description of the Feedback Messages
32 sent in the <tp:dbus-ref
33 namespace="ofdT.Call1.Content.MediaDescription">Accept</tp:dbus-ref>'s
34 should match those used for the RemoteCodecs in the same Accept call.
35 </p>
36
37 <p>For more details on what RTCP Feedback can do and how to use
38 it, one should refer to
39 <a href="http://www.faqs.org/rfcs/rfc4585.html">RFC 4585</a>.</p>
40
41 </tp:docstring>
42
43 <property name="FeedbackMessages" type="a{u(ua(sss))}"
44 tp:type="RTCP_Feedback_Message_Map"
45 access="read" tp:name-for-bindings="Feedback_Messages">
46 <tp:docstring>
47 A map of remote feedback codec properties that are supported.
48 </tp:docstring>
49 </property>
50
51 <property name="DoesAVPF" type="b"
52 access="read" tp:name-for-bindings="Does_AVPF">
53 <tp:docstring>
54 True if the remote contact supports Audio-Visual Profile
55 Feedback (AVPF), otherwise False.
56 </tp:docstring>
57 </property>
58 </interface>
59 </node>
60 <!-- vim:set sw=2 sts=2 et ft=xml: -->
0 <?xml version="1.0" ?>
1 <node name="/Call_Content_Media_Description_Interface_RTP_Header_Extensions" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
2 <tp:copyright> Copyright © 2005-2010 Nokia Corporation </tp:copyright>
3 <tp:copyright> Copyright © 2005-2010 Collabora Ltd </tp:copyright>
4 <tp:license xmlns="http://www.w3.org/1999/xhtml">
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with this library; if not, write to the Free Software
17 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 </tp:license>
19
20 <interface name="org.freedesktop.Telepathy.Call1.Content.MediaDescription.Interface.RTPHeaderExtensions"
21 tp:causes-havoc="experimental">
22 <tp:added version="0.23.4">(draft version, not API-stable)</tp:added>
23 <tp:requires interface="org.freedesktop.Telepathy.Call1.Content.MediaDescription"/>
24
25 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
26 <p>This media description interface provides a method of signalling
27 support for RTP Header Extensions, documented by
28 <em>A General Mechanism for RTP Header Extensions (RFC 5285)</em>.</p>
29
30 <p>For more details on the General Mechanism for RTP Header Extensions
31 and how to use them, one should refer to
32 <a href="http://www.faqs.org/rfcs/rfc5285.html">RFC 5285</a>.</p>
33
34 </tp:docstring>
35
36 <tp:struct name="RTP_Header_Extension"
37 array-name="RTP_Header_Extensions_List">
38 <tp:docstring>
39 A struct defining a RTP Header extension.
40 </tp:docstring>
41 <tp:member type="u" name="ID">
42 <tp:docstring>
43 Identifier to be negotiated.
44 </tp:docstring>
45 </tp:member>
46 <tp:member type="u" tp:type="Media_Stream_Direction" name="Direction">
47 <tp:docstring>
48 Direction in which the Header Extension is negotiated.
49 </tp:docstring>
50 </tp:member>
51 <tp:member type="s" name="URI">
52 <tp:docstring>
53 URI defining the extension.
54 </tp:docstring>
55 </tp:member>
56 <tp:member type="s" name="Parameters">
57 <tp:docstring>
58 Feedback parameters as a string. Format is defined in the relevant RFC.
59 </tp:docstring>
60 </tp:member>
61 </tp:struct>
62
63 <property name="HeaderExtensions" type="a(uuss)"
64 tp:type="RTP_Header_Extension[]"
65 access="read" tp:name-for-bindings="Header_Extensions">
66 <tp:docstring>
67 A list of remote header extensions which are supported.
68 </tp:docstring>
69 </property>
70 </interface>
71 </node>
72 <!-- vim:set sw=2 sts=2 et ft=xml: -->
0 <?xml version="1.0" ?>
1 <node name="/Call_Interface_Mute" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
2 <tp:copyright> Copyright © 2005-2010 Nokia Corporation </tp:copyright>
3 <tp:copyright> Copyright © 2005-2010 Collabora Ltd </tp:copyright>
4 <tp:license xmlns="http://www.w3.org/1999/xhtml">
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with this library; if not, write to the Free Software
17 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 </tp:license>
19
20 <interface name="org.freedesktop.Telepathy.Call1.Interface.Mute" tp:causes-havoc="experimental">
21 <tp:added version="0.19.6">(draft version, not API-stable)</tp:added>
22 <tp:xor-requires interface="org.freedesktop.Telepathy.Channel.Type.Call1"/>
23 <tp:xor-requires interface="org.freedesktop.Telepathy.Call1.Content"/>
24 <tp:xor-requires interface="org.freedesktop.Telepathy.Call1.Stream"/>
25
26 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
27 <p>Interface for calls which may be muted. This only makes sense
28 for channels where audio or video is streaming between members.</p>
29
30 <p>Muting a call content indicates that the user does not wish to send
31 outgoing audio or video.</p>
32
33 <p>It should always be possible to mute an entire call. It is sometimes
34 also possible to mute individual Contents (e.g. to prevent background
35 noise from disturbing other participants, but remain visible on
36 webcam) or to mute individual streams (e.g. to "whisper" to other call
37 participants)</p>
38
39 <tp:rationale>
40 For some protocols, the fact that the content is muted needs
41 to be transmitted to the peer; for others, the notification
42 to the peer is only informational (eg. XMPP), and some
43 protocols may have no notion of muting at all.
44 </tp:rationale>
45 </tp:docstring>
46
47 <tp:enum name="Local_Mute_State" type="u">
48 <tp:docstring>
49 The mute state of (at least part of) the call. See
50 <tp:member-ref>LocalMuteState</tp:member-ref> for more details.
51 </tp:docstring>
52
53 <tp:enumvalue value="0" suffix="Unmuted">
54 <tp:docstring>
55 All streams are unmuted (the call is active). New channels SHOULD
56 have this mute state.
57 </tp:docstring>
58 </tp:enumvalue>
59
60 <tp:enumvalue value="1" suffix="Muted">
61 <tp:docstring>
62 All streams are Muted.
63 </tp:docstring>
64 </tp:enumvalue>
65
66 <tp:enumvalue value="2" suffix="Pending_Mute">
67 <tp:docstring>
68 The connection manager is attempting to move to state Muted, but
69 has not yet completed that operation. It is unspecified whether
70 any, all or none of the streams making up the channel are muted.
71 Examining the Mute state of Call Contents (if applicable) may
72 provide more useful information.
73 </tp:docstring>
74 </tp:enumvalue>
75
76 <tp:enumvalue value="3" suffix="Pending_Unmute">
77 <tp:docstring>
78 The connection manager is attempting to move to state Unmuted, but
79 has not yet completed that operation. It is unspecified whether
80 any, all or none of the streams making up the channel are muted.
81 Examining the Mute state of Call Contents or Streams may
82 provide more useful information.
83 </tp:docstring>
84 </tp:enumvalue>
85
86 <tp:enumvalue value="4" suffix="Partially_Muted">
87 <tp:docstring>
88 Some of the constituent Streams are Muted. This state only makes
89 sense on Call Channels or Contents.
90 Examining the Mute state of Call Contents or Streams should
91 provide more useful information.
92 </tp:docstring>
93 </tp:enumvalue>
94 </tp:enum>
95
96 <signal name="MuteStateChanged" tp:name-for-bindings="Mute_State_Changed">
97 <tp:docstring>
98 Emitted to indicate that the mute state has changed for this call content.
99 This may occur as a consequence of the client calling
100 <tp:member-ref>RequestMuted</tp:member-ref>, or as an indication that another
101 client has (un)muted the content.
102 </tp:docstring>
103 <arg name="MuteState" type="u" tp:type="Local_Mute_State">
104 <tp:docstring>
105 The new mute state.
106 </tp:docstring>
107 </arg>
108 </signal>
109
110 <property name="LocalMuteState" type="u" tp:type="Local_Mute_State"
111 access="read" tp:name-for-bindings="Local_Mute_State">
112 <tp:docstring>
113 The current mute state of this part of the call. New
114 <tp:dbus-ref namespace="ofdT.Call1">Content</tp:dbus-ref>s should
115 inherit the value of this property from the parent
116 <tp:dbus-ref namespace="ofdT.Channel.Type">Call1</tp:dbus-ref>.
117 Similarly, <tp:dbus-ref namespace="ofdT.Call1">Stream</tp:dbus-ref>s
118 should inherit it from the parent <tp:dbus-ref
119 namespace="ofdT.Call1">Content</tp:dbus-ref>.
120 </tp:docstring>
121 </property>
122
123 <method name="RequestMuted" tp:name-for-bindings="Request_Muted">
124 <tp:changed version="0.21.2">renamed from SetMuted to Mute</tp:changed>
125 <tp:changed version="0.21.3">renamed back from Mute to SetMuted</tp:changed>
126 <arg direction="in" name="Muted" type="b">
127 <tp:docstring>
128 True if the client wishes to mute the Content or Call.
129 </tp:docstring>
130 </arg>
131 <tp:docstring>
132 <p>Inform the CM that the Call, Content or Stream should be muted or
133 unmuted.</p>
134
135 <p>The CM will tell the streaming implementation to Mute Streams as
136 required, and emit <tp:member-ref>MuteStateChanged</tp:member-ref>
137 when done.</p>
138 </tp:docstring>
139 </method>
140
141 </interface>
142 </node>
143 <!-- vim:set sw=2 sts=2 et ft=xml: -->
1919 02110-1301, USA.</p>
2020 </tp:license>
2121
22 <interface name="org.freedesktop.Telepathy.Call.Stream.DRAFT"
22 <interface name="org.freedesktop.Telepathy.Call1.Stream"
2323 tp:causes-havoc="experimental">
2424 <tp:added version="0.19.0">(draft 1)</tp:added>
2525
2626 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
2727 One stream inside a <tp:dbus-ref
28 namespace="ofdT.Call">Content.DRAFT</tp:dbus-ref>.
28 namespace="ofdT.Call1">Content</tp:dbus-ref>. A stream is
29 a single flow of packets to and from a single remote endpoint.
30 If your call connects to multiple people, you could have
31 multiple streams.
2932 </tp:docstring>
3033
3134 <method name="SetSending" tp:name-for-bindings="Set_Sending">
3841 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
3942 <p>If True, the
4043 <tp:member-ref>LocalSendingState</tp:member-ref> should
41 change to <tp:type>Sending_State</tp:type>_Sending, if it isn't
44 change to <tp:value-ref type="Sending_State">Sending</tp:value-ref>, if it isn't
4245 already.</p>
4346
4447 <p>If False, the
4548 <tp:member-ref>LocalSendingState</tp:member-ref> should
46 change to <tp:type>Sending_State</tp:type>_None, if it isn't
49 change to <tp:value-ref type="Sending_State">None</tp:value-ref>, if it isn't
4750 already.</p>
4851 </tp:docstring>
4952 </arg>
5053
5154 <tp:possible-errors>
5255 <tp:error name="org.freedesktop.Telepathy.Error.NotImplemented" />
56 <tp:error name="org.freedesktop.Telepathy.Error.NotYet">
57 <tp:docstring>If the call has not been accepted yet, calling
58 SetSending(True) is an error. See
59 <tp:member-ref>LocalSendingState</tp:member-ref> for details.
60 </tp:docstring>
61 </tp:error>
5362 </tp:possible-errors>
5463 </method>
5564
115124 property, as a result of the contact leaving this stream
116125 </tp:docstring>
117126 </arg>
127 <arg name="Reason" type="(uuss)" tp:type="Call_State_Reason">
128 <tp:docstring>
129 A structured reason for the change.
130 </tp:docstring>
131 </arg>
118132 </signal>
119133
120134 <signal name="LocalSendingStateChanged"
127141 <tp:docstring>
128142 The new value of
129143 <tp:member-ref>LocalSendingState</tp:member-ref>.
144 </tp:docstring>
145 </arg>
146
147 <arg name="Reason" type="(uuss)" tp:type="Call_State_Reason">
148 <tp:docstring>
149 A structured reason for the change.
130150 </tp:docstring>
131151 </arg>
132152 </signal>
183203 <tp:added version="0.19.11"/>
184204 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
185205 <p>Extra interfaces provided by this stream, such as <tp:dbus-ref
186 namespace="ofdT.Call">Stream.Interface.Media.DRAFT</tp:dbus-ref>.
206 namespace="ofdT.Call1">Stream.Interface.Media</tp:dbus-ref>.
187207 This SHOULD NOT include the Stream interface itself, and cannot
188208 change once the stream has been created.</p>
189209 </tp:docstring>
193213 type="a{uu}" access="read" tp:type="Contact_Sending_State_Map">
194214 <tp:changed version="0.21.2">renamed from Senders</tp:changed>
195215 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
196 <p>A map from remote contacts to their sending state. The
197 local user's sending state is shown in
198 <tp:member-ref>LocalSendingState</tp:member-ref>.</p>
199
200 <p><tp:type>Sending_State</tp:type>_Pending_Send indicates
201 that another contact has asked the local user to send
202 media.</p>
203
204 <p>Other contacts' handles in this map indicate whether they are
205 sending media to the contacts in this stream.
206 Sending_State_Pending_Send indicates contacts who are not sending but
207 have been asked to do so.</p>
216 <p>A map from remote contacts to their sending state.</p>
217
218 <p>Media sent to this stream will be sent to all members listed here.
219 All members listed here will also appear in <tp:dbus-ref
220 namespace="ofdT.Channel.Type.Call1">CallMembers</tp:dbus-ref>,
221 and each CallMembers member will be listed in at most one Stream per
222 Content. Therefore, to hide things from a member of the
223 call, UIs only need to mute one Stream per Content.</p>
224
225 <p>Contacts' handles in this map indicate whether they are
226 sending media to this stream. Sending_State_Pending_Send indicates
227 contacts who are not sending but have been asked to do so. The
228 local user's sending state is shown in <tp:member-ref
229 >LocalSendingState</tp:member-ref>.</p>
230
231 <p>This mapping is also used by the streaming implementation to map
232 from <tp:dbus-ref namespace="ofdT.Call1.Content"
233 >MediaDescription</tp:dbus-ref>s to Streams. In this use-case,
234 all of the senders in this stream will be represented in
235 <tp:dbus-ref namespace="ofdT.Call1.Content.Interface.Media"
236 >RemoteMediaDescriptions</tp:dbus-ref>. This use-case should not
237 affect anything that does not handle media streaming.</p>
208238 </tp:docstring>
209239 </property>
210240
227257 special-cased.
228258 </tp:rationale>
229259
230 <p>A value of <tp:type>Sending_State</tp:type>_Pending_Send for
260 <p>A value of <tp:value-ref type="Sending_State">Pending_Send</tp:value-ref> for
231261 this property indicates that the other side requested the
232 local user start sending media, which can be done by calling
233 <tp:member-ref>SetSending</tp:member-ref>. When a call is
234 accepted, all initial contents with streams that have a
235 local sending state of
236 <tp:type>Sending_State</tp:type>_Pending_Send are
237 automatically set to sending. For example, on an incoming
238 call it means you need to <tp:dbus-ref
239 namespace="ofdT.Channel.Type.Call.DRAFT">Accept</tp:dbus-ref>
240 to start the actual call, on an outgoing call it might mean
241 you need to call <tp:dbus-ref
242 namespace="ofdT.Channel.Type.Call.DRAFT">Accept</tp:dbus-ref>
243 before actually starting the call.</p>
262 local user start sending media (which can be done by calling either
263 <tp:member-ref>SetSending</tp:member-ref> or <tp:dbus-ref
264 namespace="ofdT.Channel.Type.Call1">Accept</tp:dbus-ref>).</p>
265
266 <p>When <tp:dbus-ref
267 namespace="ofdT.Channel.Type.Call1">Accept</tp:dbus-ref> is
268 called, all streams with a local sending state of
269 <tp:value-ref type="Sending_State">Pending_Send</tp:value-ref> and the associated
270 <tp:dbus-ref namespace="ofdT.Call1.Content"
271 >Disposition</tp:dbus-ref> set to
272 <tp:value-ref type="Call_Content_Disposition">Initial</tp:value-ref> are
273 automatically set to sending.</p>
244274 </tp:docstring>
245275 </property>
246276
1919 02110-1301, USA.</p>
2020 </tp:license>
2121
22 <interface name="org.freedesktop.Telepathy.Call.Stream.Endpoint.DRAFT"
22 <interface name="org.freedesktop.Telepathy.Call1.Stream.Endpoint"
2323 tp:causes-havoc="experimental">
2424 <tp:added version="0.19.0">(draft 1)</tp:added>
2525
9191 </arg>
9292 </signal>
9393
94 <signal name="CandidateSelected"
95 tp:name-for-bindings="Candidate_Selected">
96 <tp:docstring>
97 Emitted when a candidate is selected for use in the stream.
98 </tp:docstring>
99 <arg name="Candidate"
94 <tp:struct name="Candidate_Pair" array-name="Candidate_Pair_List">
95 <tp:docstring>A Pair of candidates.</tp:docstring>
96 <tp:member name="Local" type="(usua{sv})" tp:type="Candidate">
97 <tp:docstring>The local candidate.</tp:docstring>
98 </tp:member>
99 <tp:member name="Remote" type="(usua{sv})" tp:type="Candidate">
100 <tp:docstring>The remote candidate.</tp:docstring>
101 </tp:member>
102 </tp:struct>
103
104 <signal name="CandidatePairSelected"
105 tp:name-for-bindings="Candidate_Pair_Selected">
106 <tp:docstring>
107 Emitted when a candidate is selected for use in the stream by the
108 controlling side of an ICE session.
109 The controlled side should call
110 <tp:member-ref>AcceptSelectedCandidatePair</tp:member-ref> or
111 <tp:member-ref>RejectSelectedCandidatePair</tp:member-ref> when
112 connectivity checks have either succeeded or failed for this candidate
113 pair. See also: <tp:member-ref>SelectedCandidatePairs</tp:member-ref>.
114 </tp:docstring>
115 <arg name="Local_Candidate"
100116 type="(usua{sv})" tp:type="Candidate">
101117 <tp:docstring>
102 The candidate that has been selected.
118 The local candidate that has been selected.
119 </tp:docstring>
120 </arg>
121 <arg name="Remote_Candidate"
122 type="(usua{sv})" tp:type="Candidate">
123 <tp:docstring>
124 The remote candidate that has been selected.
103125 </tp:docstring>
104126 </arg>
105127 </signal>
106128
107 <property name="SelectedCandidate"
108 tp:name-for-bindings="Selected_Candidate"
109 type="(usua{sv})" tp:type="Candidate" access="read">
110 <tp:docstring>
111 The candidate that has been selected for use to stream packets
112 to the remote contact. Change notification is given via the
113 the <tp:member-ref>CandidateSelected</tp:member-ref> signal.
114 </tp:docstring>
115 </property>
116
117 <method name="SetSelectedCandidate"
118 tp:name-for-bindings="Set_Selected_Candidate">
119 <tp:docstring>
120 Set the value of
121 <tp:member-ref>CandidateSelected</tp:member-ref>.
122 </tp:docstring>
123 <arg name="Candidate"
124 type="(usua{sv})" tp:type="Candidate" direction="in">
125 <tp:docstring>
126 The candidate that has been selected.
129 <property name="SelectedCandidatePairs"
130 tp:name-for-bindings="Selected_Candidate_Pairs"
131 type="a((usua{sv})(usua{sv}))" tp:type="Candidate_Pair[]"
132 access="read">
133 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
134 <p>The candidates that have been selected for use to stream packets
135 to the remote contact for each component of the stream.
136 Change notification is given via the
137 the <tp:member-ref>CandidatePairSelected</tp:member-ref> signal.</p>
138
139 <p>Note to client implementors (from <a
140 href="http://tools.ietf.org/html/rfc5245#section-9.2.2.3">RFC 5245
141 section 9.2.2.3</a>):</p>
142
143 <blockquote>
144 <p>If at least one of the pairs is In-Progress, the agent SHOULD wait
145 for those checks to complete, and as each completes, redo the
146 processing in this section until there are no losing pairs.</p>
147 </blockquote>
148
149 <p>Also note that some or all of the local candidates in this list may
150 represent a peer-reflexive candidate that do not appear in
151 <tp:dbus-ref namespace="ofdT.Call1.Stream.Interface.Media"
152 >LocalCandidates</tp:dbus-ref>.</p>
153
154 <p>See <a href='http://tools.ietf.org/html/rfc5245#appendix-B.6'>RFC
155 5245 Appendix B.6.</a> for more details about why this is.</p>
156 </tp:docstring>
157 </property>
158
159 <method name="SetSelectedCandidatePair"
160 tp:name-for-bindings="Set_Selected_Candidate_Pair">
161 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
162 <p>Update the entry in
163 <tp:member-ref>SelectedCandidatePairs</tp:member-ref>
164 for a particular component, and signal it to the remote side.</p>
165
166 <p>This method should only be called by the controlling side of an
167 ICE session. See <tp:member-ref>CandidatePairSelected</tp:member-ref>
168 for details.</p>
169
170 <tp:rationale>
171 <p>In the SDP offer/answer model, this signalling will take place as
172 generating an updated offer.
173 Note that updates may be queued up until information about all
174 components of all streams is gathered.</p>
175 </tp:rationale>
176 </tp:docstring>
177 <arg name="Local_Candidate"
178 type="(usua{sv})" tp:type="Candidate" direction="in">
179 <tp:docstring>
180 The local candidate that has been selected.
181 </tp:docstring>
182 </arg>
183 <arg name="Remote_Candidate"
184 type="(usua{sv})" tp:type="Candidate" direction="in">
185 <tp:docstring>
186 The remote candidate that has been selected.
127187 </tp:docstring>
128188 </arg>
129189 <tp:possible-errors>
131191 </tp:possible-errors>
132192 </method>
133193
134 <property name="StreamState" tp:name-for-bindings="Stream_State"
135 type="u" tp:type="Media_Stream_State"
194 <tp:enum name="Stream_Endpoint_State" type="u">
195 <tp:docstring>
196 Represents the state of ICE negotiation for a single component of a
197 stream to an endpoint.
198 </tp:docstring>
199 <tp:enumvalue suffix="Connecting" value="0">
200 <tp:docstring>
201 Candidate gathering and connectivity checks are in progress.
202 </tp:docstring>
203 </tp:enumvalue>
204 <tp:enumvalue suffix="Provisionally_Connected" value="1">
205 <tp:docstring>
206 The streaming implementation has found at least one working
207 candidate pair. It is possible to send media at this point, but the
208 controlling side has yet to negotiate the final candidates for use
209 in this call.
210 </tp:docstring>
211 </tp:enumvalue>
212 <tp:enumvalue suffix="Fully_Connected" value="2">
213 <tp:docstring>
214 This component of the stream is connected, and an updated offer has
215 been sent and accepted (finalising the candidates to be used for the
216 call). This should be set by the CM in response to
217 <tp:member-ref>AcceptSelectedCandidatePair</tp:member-ref>.
218 </tp:docstring>
219 </tp:enumvalue>
220 <tp:enumvalue suffix="Exhausted_Candidates" value="3">
221 <tp:docstring>
222 The streaming implementation has tried connecting to all of the
223 available candidates and none of them have connected. This is
224 distinct from Failed, because the CM might be able to provide more
225 candidates later (more likely in XMPP than SIP).
226 </tp:docstring>
227 </tp:enumvalue>
228 <tp:enumvalue suffix="Failed" value="4">
229 <tp:docstring>
230 The CM and streaming implementation are in agreement that it is
231 impossible to connect to this endpoint. This value should only be
232 set by the CM.
233 </tp:docstring>
234 </tp:enumvalue>
235 </tp:enum>
236
237 <tp:mapping name="Component_State_Map">
238 <tp:member name="Component" type="u" tp:type="Stream_Component"/>
239 <tp:member name="State" type="u" tp:type="Stream_Endpoint_State"/>
240 </tp:mapping>
241
242 <property name="EndpointState" tp:name-for-bindings="Endpoint_State"
243 type="a{uu}" tp:type="Component_State_Map"
136244 access="read">
137245 <tp:docstring>
138 The stream state of the endpoint.
139 </tp:docstring>
140 </property>
141
142 <signal name="StreamStateChanged"
143 tp:name-for-bindings="Stream_State_Changed">
144 <tp:docstring>
145 Emitted when the <tp:member-ref>StreamState</tp:member-ref>
246 The state of ICE negotiation with this Endpoint for each component of
247 the stream.
248 </tp:docstring>
249 </property>
250
251 <signal name="EndpointStateChanged"
252 tp:name-for-bindings="Endpoint_State_Changed">
253 <tp:docstring>
254 Emitted when the <tp:member-ref>EndpointState</tp:member-ref>
146255 property changes.
147256 </tp:docstring>
148 <arg name="state" type="u" tp:type="Media_Stream_State">
149 <tp:docstring>
150 The new <tp:member-ref>StreamState</tp:member-ref> value.
257 <arg name="Component" type="u" tp:type="Stream_Component">
258 <tp:docstring>
259 The component whose state has changed.
260 </tp:docstring>
261 </arg>
262 <arg name="State" type="u" tp:type="Stream_Endpoint_State">
263 <tp:docstring>
264 The new state of this component.
151265 </tp:docstring>
152266 </arg>
153267 </signal>
154268
155 <method name="SetStreamState"
156 tp:name-for-bindings="Set_Stream_State">
157 <tp:docstring>
158 Change the <tp:member-ref>StreamState</tp:member-ref> of the
269 <method name="SetEndpointState"
270 tp:name-for-bindings="Set_Endpoint_State">
271 <tp:docstring>
272 Change the <tp:member-ref>EndpointState</tp:member-ref> of the
159273 endpoint.
160274 </tp:docstring>
161 <arg direction="in" name="State" type="u" tp:type="Media_Stream_State">
162 <tp:docstring>
163 The requested stream state.
275 <arg direction="in" name="Component" type="u" tp:type="Stream_Component">
276 <tp:docstring>
277 The component whose state needs updating.
278 </tp:docstring>
279 </arg>
280 <arg direction="in" name="State" type="u" tp:type="Stream_Endpoint_State">
281 <tp:docstring>
282 The new state of this component.
164283 </tp:docstring>
165284 </arg>
166285 <tp:possible-errors>
169288 </tp:possible-errors>
170289 </method>
171290
291 <method name="AcceptSelectedCandidatePair"
292 tp:name-for-bindings="Accept_Selected_Candidate_Pair">
293 <tp:docstring>
294 Called in response to
295 <tp:member-ref>CandidatePairSelected</tp:member-ref> if/when this
296 candidate pair is known to have passed its connectivity checks.
297 </tp:docstring>
298 <arg name="Local_Candidate"
299 type="(usua{sv})" tp:type="Candidate" direction="in">
300 <tp:docstring>
301 The local candidate that has been selected.
302 </tp:docstring>
303 </arg>
304 <arg name="Remote_Candidate"
305 type="(usua{sv})" tp:type="Candidate" direction="in">
306 <tp:docstring>
307 The remote candidate that has been selected.
308 </tp:docstring>
309 </arg>
310 <tp:possible-errors>
311 <tp:error name="org.freedesktop.Telepathy.Error.InvalidArgument"/>
312 </tp:possible-errors>
313 </method>
314
315 <method name="RejectSelectedCandidatePair"
316 tp:name-for-bindings="Reject_Selected_Candidate_Pair">
317 <tp:docstring>
318 Called in response to
319 <tp:member-ref>CandidatePairSelected</tp:member-ref> if/when this
320 candidate pair is known to have failed its connectivity checks.
321 </tp:docstring>
322 <arg name="Local_Candidate"
323 type="(usua{sv})" tp:type="Candidate" direction="in">
324 <tp:docstring>
325 The local candidate that has been selected.
326 </tp:docstring>
327 </arg>
328 <arg name="Remote_Candidate"
329 type="(usua{sv})" tp:type="Candidate" direction="in">
330 <tp:docstring>
331 The remote candidate that has been selected.
332 </tp:docstring>
333 </arg>
334 <tp:possible-errors>
335 <tp:error name="org.freedesktop.Telepathy.Error.InvalidArgument"/>
336 </tp:possible-errors>
337 </method>
338
172339 <property name="Transport" tp:name-for-bindings="Transport"
173340 type="u" tp:type="Stream_Transport_Type" access="read">
174341 <tp:docstring>
175342 The transport type for the stream endpoint.
343 </tp:docstring>
344 </property>
345
346 <property name="Controlling" tp:name-for-bindings="Controlling"
347 type="b" access="read">
348 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
349 <p>
350 The local side is taking the controlling role (as defined by ICE RFC
351 5245). Change notification is given via the
352 <tp:member-ref>ControllingChanged</tp:member-ref> signal.</p>
353
354 <tp:rationale>In ICE, the Caller is normally in controlling mode (and
355 the Callee in controlled-mode), except if the Caller is doing ICE-Lite,
356 in which case it's reversed. The Controlling side is responsible for
357 selecting nominated pairs, and generating updated offers upon
358 conclusion of ICE.</tp:rationale>
359 </tp:docstring>
360 </property>
361
362 <method name="SetControlling"
363 tp:name-for-bindings="Set_Controlling">
364 <tp:docstring>
365 Set whether the local side is taking the Controlling role. Note that
366 if there are multiple endpoints (e.g. SIP call forking) it may be the
367 case that all endpoints need to have the same controlling/controlled
368 orientation.
369 </tp:docstring>
370 <arg name="Controlling" type="b" direction="in">
371 <tp:docstring>
372 The new value of <tp:member-ref>Controlling</tp:member-ref>.
373 </tp:docstring>
374 </arg>
375 </method>
376
377 <signal name="ControllingChanged"
378 tp:name-for-bindings="Controlling_Changed">
379 <tp:docstring>
380 The value of <tp:member-ref>Controlling</tp:member-ref> has changed.
381 </tp:docstring>
382 <arg name="Controlling" type="b">
383 <tp:docstring>
384 The new value of <tp:member-ref>Controlling</tp:member-ref>.
385 </tp:docstring>
386 </arg>
387 </signal>
388
389 <property name="IsICELite" tp:name-for-bindings="Is_ICE_Lite"
390 type="b" access="read">
391 <tp:docstring>
392 The Remote side is an ICE Lite endpoint. (The local side is assumed to
393 always be an ICE Full implementation.)
176394 </tp:docstring>
177395 </property>
178396
1919 02110-1301, USA.</p>
2020 </tp:license>
2121
22 <interface name="org.freedesktop.Telepathy.Call.Stream.Interface.Media.DRAFT"
22 <interface name="org.freedesktop.Telepathy.Call1.Stream.Interface.Media"
2323 tp:causes-havoc="experimental">
2424 <tp:added version="0.19.0">(draft 1)</tp:added>
25 <tp:requires interface="org.freedesktop.Telepathy.Call.Stream.DRAFT"/>
25 <tp:requires interface="org.freedesktop.Telepathy.Call1.Stream"/>
2626
2727 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
28 [FIXME]
28 <p>This interface deals with how to connect a stream to an
29 endpoint. It contains all that is required to describe the
30 local endpoint, to succesfully establish a connection. While a
31 call is established, one may try to connect to multiple remote
32 endpoints at the same time. This is called forking in the SIP
33 jargon. Informations related to the connections are on the
34 <tp:dbus-ref
35 namespace="ofdT.Call1.Stream">Endpoint</tp:dbus-ref>
36 objects. Once the call is established, there MUST be a single
37 endpoint left.</p>
2938
3039 <h4>ICE restarts</h4>
3140
32 <p>If the <tp:dbus-ref
33 namespace="ofdT.Call.Stream.Endpoint.DRAFT">RemoteCredentialsSet</tp:dbus-ref>
34 signal is fired during a call once it has been called before
35 whilst setting up the call for initial use, and the
36 credentials have changed, then there has been an ICE
37 restart. In such a case, the CM SHOULD also empty the remote
38 candidate list in the <tp:dbus-ref
39 namespace="ofdT.Call.Stream">Endpoint.DRAFT</tp:dbus-ref>.</p>
40
41 <p>If the CM does an ICE restart, then the
42 <tp:member-ref>PleaseRestartICE</tp:member-ref> signal is
43 emitted and the streaming implementation should then call
44 <tp:member-ref>SetCredentials</tp:member-ref> again.</p>
41 <p>If the CM wants to do an ICE restart, then the
42 <tp:member-ref>ICERestartPending</tp:member-ref> property is set,
43 and the <tp:member-ref>ICERestartRequested</tp:member-ref> signal is
44 emitted. The streaming implementation should then call
45 <tp:member-ref>SetCredentials</tp:member-ref> again. This will trigger
46 the actual ICE restart, and cause
47 <tp:member-ref>LocalCandidates</tp:member-ref> to be cleared.</p>
4548
4649 <p>For more information on ICE restarts see
4750 <a href="http://tools.ietf.org/html/rfc5245#section-9.1.1.1">RFC 5245
4851 section 9.1.1.1</a></p>
4952 </tp:docstring>
5053
54 <tp:enum type="u" name="Stream_Flow_State">
55 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
56 The type of <tp:member-ref>SendingState</tp:member-ref>
57 and <tp:member-ref>ReceivingState</tp:member-ref>.
58 </tp:docstring>
59 <tp:enumvalue suffix="Stopped" value="0">
60 <tp:docstring>
61 No data is flowing (or expected to be flowing) at this time.
62 </tp:docstring>
63 </tp:enumvalue>
64 <tp:enumvalue suffix="Pending_Start" value="1">
65 <tp:docstring>
66 The streaming implementation has been told to start or receiving,
67 but has not yet indicated that it is doing so.
68 </tp:docstring>
69 </tp:enumvalue>
70 <tp:enumvalue suffix="Pending_Stop" value="2">
71 <tp:docstring>
72 The streaming implementation has been told to stop sending or
73 receiving data, but it has not yet indicated that it has done so.
74 </tp:docstring>
75 </tp:enumvalue>
76 <tp:enumvalue suffix="Started" value="3">
77 <tp:docstring>
78 The streaming implementation is successfully sending or receiving
79 data, and everything is going swimmingly.
80 </tp:docstring>
81 </tp:enumvalue>
82 <tp:enumvalue suffix="Pending_Pause" value="4">
83 <tp:docstring>
84 The streaming implementation has been told to pause sending or
85 displaying data, but it has not yet indicated that it has done so.
86 </tp:docstring>
87 </tp:enumvalue>
88 <tp:enumvalue suffix="Paused" value="5">
89 <tp:docstring>
90 The streaming implementation has successfully paused either sending or
91 displaying data, and the local user's privacy or peace-and-quiet is
92 protected.
93 </tp:docstring>
94 </tp:enumvalue>
95 </tp:enum>
96
97 <property name="SendingState" tp:name-for-bindings="Sending_State"
98 type="u" tp:type="Stream_Flow_State" access="read">
99 <tp:docstring>
100 Indicates whether the streaming implementation is/should be sending
101 media for this stream. The streaming implementation should be able to
102 rely on reading this value and listening to
103 <tp:member-ref>SendingStateChanged</tp:member-ref> to
104 determine whether it should be sending media or not. It should not
105 need to listen to the Mute/Hold interfaces on the Call/Content.
106 Feedback on success should be given via
107 <tp:member-ref>CompleteSendingStateChange</tp:member-ref>. Failures
108 should be reported via <tp:member-ref>ReportSendingFailure</tp:member-ref>.
109 </tp:docstring>
110 </property>
111
112 <signal name="SendingStateChanged"
113 tp:name-for-bindings="Sending_State_Changed">
114 <tp:docstring>
115 Change notification for <tp:member-ref>SendingState</tp:member-ref>.
116 Note that this information is duplicated onto the Stream interface, so
117 that UIs can ignore the Media interface, and streaming implementations
118 can ignore everything but the media interface.
119 </tp:docstring>
120 <arg name="State" type="u" tp:type="Stream_Flow_State">
121 <tp:docstring>
122 The new value of SendingState.
123 </tp:docstring>
124 </arg>
125 </signal>
126
127 <method name="CompleteSendingStateChange"
128 tp:name-for-bindings="Complete_Sending_State_Change">
129 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
130 <p>Called in response to
131 <tp:member-ref>SendingStateChanged</tp:member-ref>(Pending_*, *) to
132 indicate that the media state has successfully progressed from
133 Pending_{Start, Stop, Pause} to the corresponding non-pending
134 state.</p>
135 </tp:docstring>
136 <arg name="State" type="u" tp:type="Stream_Flow_State" direction="in">
137 <tp:docstring>
138 The new (non-pending) value of SendingState.
139 </tp:docstring>
140 </arg>
141 <tp:possible-errors>
142 <tp:error name="org.freedesktop.Telepathy.Error.InvalidArgument">
143 <tp:docstring>
144 The state change made no sense, and was ignored by the CM. The
145 most likely cause for this is a race-condition between the CM
146 emitting a new state change and the streaming implementation
147 responding to the previous state change.
148 </tp:docstring>
149 </tp:error>
150 </tp:possible-errors>
151 </method>
152
153 <method name="ReportSendingFailure"
154 tp:name-for-bindings="Report_Sending_Failure">
155 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
156 Can be called at any point to indicate a failure in the outgoing
157 portion of the stream.
158 </tp:docstring>
159 <arg name="Reason" type="u" tp:type="Call_State_Change_Reason"
160 direction="in"/>
161 <arg name="Error" type="s" tp:type="DBus_Error_Name" direction="in"/>
162 <arg name="Message" type="s" direction="in"/>
163 </method>
164
165 <property name="ReceivingState" tp:name-for-bindings="Receiving_State"
166 type="u" tp:type="Stream_Flow_State" access="read">
167 <tp:docstring>
168 The counterpart of <tp:member-ref>SendingState</tp:member-ref>.
169 Indicates whether the streaming implementation is/should be expecting
170 to receive media for this stream. The CM should only tell the
171 streaming implementation to stop receiving if it has been told to put
172 the stream on hold, or the stream has been removed from the call.
173 </tp:docstring>
174 </property>
175
176 <signal name="ReceivingStateChanged"
177 tp:name-for-bindings="Receiving_State_Changed">
178 <tp:docstring>
179 Change notification for <tp:member-ref>ReceivingState</tp:member-ref>.
180 </tp:docstring>
181 <arg name="State" type="u" tp:type="Stream_Flow_State">
182 <tp:docstring>
183 The new value of ReceivingState.
184 </tp:docstring>
185 </arg>
186 </signal>
187
188 <method name="CompleteReceivingStateChange"
189 tp:name-for-bindings="Complete_Receiving_State_Change">
190 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
191 <p>Called in response to
192 <tp:member-ref>ReceivingStateChanged</tp:member-ref>(Pending_*, *) to
193 indicate that the media state has successfully progressed from
194 Pending_{Start, Stop, Pause} to the corresponding non-pending
195 state.</p>
196 </tp:docstring>
197 <arg name="State" type="u" tp:type="Stream_Flow_State" direction="in">
198 <tp:docstring>
199 The new (non-pending) value of ReceivingState.
200 </tp:docstring>
201 </arg>
202 <tp:possible-errors>
203 <tp:error name="org.freedesktop.Telepathy.Error.InvalidArgument">
204 <tp:docstring>
205 The state change made no sense, and was ignored by the CM. The
206 most likely cause for this is a race-condition between the CM
207 emitting a new state change and the streaming implementation
208 responding to the previous state change.
209 </tp:docstring>
210 </tp:error>
211 </tp:possible-errors>
212 </method>
213
214 <method name="ReportReceivingFailure"
215 tp:name-for-bindings="Report_Receiving_Failure">
216 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
217 Can be called at any point to indicate a failure in the outgoing
218 portion of the stream.
219 </tp:docstring>
220 <arg name="Reason" type="u" tp:type="Call_State_Change_Reason"
221 direction="in"/>
222 <arg name="Error" type="s" tp:type="DBus_Error_Name" direction="in"/>
223 <arg name="Message" type="s" direction="in"/>
224 </method>
225
51226 <method name="SetCredentials" tp:name-for-bindings="Set_Credentials">
52227 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
53228 <p>Used to set the username fragment and password for streams that have
64239 </tp:docstring>
65240 </arg>
66241 </method>
242
243 <tp:enum type="u" name="Call_Stream_Candidate_Type">
244 <tp:docstring>
245 The network topology that an IP candidate represents. This can
246 sometimes be used to infer what kind of performance characteristics
247 (latency, bandwith, etc) can be expected of connections made to this
248 candidate.
249 </tp:docstring>
250 <tp:enumvalue suffix="None" value="0">
251 <tp:docstring>
252 This is not an IP candidate. This is a reserved value, and should
253 not be seen on the bus.
254 </tp:docstring>
255 </tp:enumvalue>
256 <tp:enumvalue suffix="Host" value="1">
257 <tp:docstring>
258 This candidate represents a direct connection to the host, as its
259 address is taken directly the host's IP stack.
260 </tp:docstring>
261 </tp:enumvalue>
262 <tp:enumvalue suffix="Server_Reflexive" value="2">
263 <tp:docstring>
264 This candidate probably represents a connection to the host through
265 a NAT device, as its address was discovered by sending a binding
266 request to a STUN server or similar.
267 </tp:docstring>
268 </tp:enumvalue>
269 <tp:enumvalue suffix="Peer_Reflexive" value="3">
270 <tp:docstring>
271 This candidate probably represents a good route between the host and
272 its peer, as its address was discovered by sending a STUN binding
273 request to one of the candidates advertised by the peer.
274 </tp:docstring>
275 </tp:enumvalue>
276 <tp:enumvalue suffix="Relay" value="4">
277 <tp:docstring>
278 This candidate represents the address of a relay server (usually
279 somewhere on the public internet). This candidate is the most likely
280 to work, but all media will go via a relay server, so latency is
281 likely to be higher than other types of candidate.
282 </tp:docstring>
283 </tp:enumvalue>
284 <tp:enumvalue suffix="Multicast" value="5">
285 <tp:docstring>
286 This candidate represents a Multicast group. This value should only
287 appear if the Stream's <tp:member-ref>Transport</tp:member-ref> is
288 set to Multicast.
289 </tp:docstring>
290 </tp:enumvalue>
291 </tp:enum>
292
67293
68294 <tp:mapping name="Candidate_Info">
69295 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
72298 used:</p>
73299
74300 <dl>
75 <dt>Type (u)</dt>
76 <dd>type of candidate (host, srflx, prflx, relay)</dd>
77
78 <dt>Foundation (s)</dt>
79 <dd>the foundation of this candiate</dd>
80
81 <dt>Protocol (u) </dt>
82 <dd>Underlying protocol of the candidate (udp, tcp) </dd>
83
84 <dt>Priority (u) </dt>
85 <dd>Priority of the candidate </dd>
86
87 <dt>BaseIP (u) </dt>
88 <dd>Base IP of this candidate </dd>
89
90 <dt>Username (s) </dt>
301 <dt><code>type</code> - u</dt>
302 <dd>The type of candidate
303 (<tp:type>Call_Stream_Candidate_Type</tp:type>)</dd>
304
305 <dt><code>foundation</code> - s</dt>
306 <dd>The foundation of this candidate</dd>
307
308 <dt><code>protocol</code> - u</dt>
309 <dd>Underlying protocol of the candidate
310 (<tp:type>Media_Stream_Base_Proto</tp:type>) </dd>
311
312 <dt><code>priority</code> - u</dt>
313 <dd>Priority of the candidate (should be a number between 0 and
314 65535). Most ICE implementations will prefer the highest priority
315 candidate pair that manages to connect. For backwards
316 compatibility with non-ICE SIP clients, the lowest priority
317 candidate may be sent as a raw UDP fallback candidate.
318 It is recommended that a relay candidate is used as the lowest
319 priority candidate if possible. If both IPv4 and IPv6 raw udp
320 fallback candidates are available, they should be set to the
321 same priority and advertised to the CM at the same time. The CM
322 will decide which to advertise to the remote end.</dd>
323
324 <dt><code>base-ip</code> - s</dt>
325 <dd>The underlying Host address where media sent to this
326 (non-host-type) candidate will eventually arrive.</dd>
327
328 <dt><code>base-port</code> - u</dt>
329 <dd>The underlying Host port where media sent to this
330 (non-host-type) candidate will eventually arrive.</dd>
331
332 <dt><code>username</code> - s</dt>
91333 <dd>Username of this candidate
92334 (only if credentials are per candidate)</dd>
93335
94 <dt>Password (s) </dt>
336 <dt><code>password</code> - s</dt>
95337 <dd>Password of this candidate
96338 (only if credentials are per candidate)</dd>
97339
98 <dt>RawUDPFallback (b) </dt>
99 <dd>Indicate whether this candidate may be used to provide a UDP
100 fallback</dd>
340 <dt><code>ttl</code> - u</dt>
341 <dd>The TTL mandated for RTP/RTCP packets sent to a multicast group
342 (only valid for Multicast Streams)</dd>
101343 </dl>
102344 </tp:docstring>
103345 <tp:member name="Key" type="s">
155397 <tp:docstring>
156398 Add candidates to the
157399 <tp:member-ref>LocalCandidates</tp:member-ref> property and
158 signal them to the remote contact(s).
400 signal them to the remote contact(s). Note that connection managers
401 MAY delay the sending of candidates until
402 <tp:member-ref>FinishInitialCandidates</tp:member-ref> is called.
159403 </tp:docstring>
160404 <arg name="Candidates" direction="in"
161405 type="a(usua{sv})" tp:type="Candidate[]">
165409 </arg>
166410 </method>
167411
168 <method name="CandidatesPrepared"
169 tp:name-for-bindings="Candidates_Prepared">
412 <method name="FinishInitialCandidates"
413 tp:name-for-bindings="Finish_Initial_Candidates">
170414 <tp:docstring>
171415 This indicates to the CM that the initial batch of candidates
172 has been added.
416 has been added, and should now be processed/sent to the remote side.
417 <tp:rationale>
418 Protocols supporting Raw UDP SHOULD wait for FinishInitialCandidates,
419 and then set the lowest priority candidate as the Raw UDP candidate.
420 </tp:rationale>
173421 </tp:docstring>
174422 </method>
175423
189437 Raw UDP, with or without STUN. All streaming clients are assumed to
190438 support this transport, so there is no handler capability token for
191439 it in the <tp:dbus-ref namespace="ofdT.Channel.Type"
192 >Call.DRAFT</tp:dbus-ref> interface.
440 >Call1</tp:dbus-ref> interface.
193441 [This corresponds to "none" or "stun" in the old Media.StreamHandler
194442 interface.]
195443 </tp:docstring>
276524 <property name="LocalCredentials" tp:name-for-bindings="Local_Credentials"
277525 type="(ss)" tp:type="Stream_Credentials" access="read">
278526 <tp:docstring>
279 [FIXME]. Change notification is via the
527 The local credentials are sent to the remote site over the
528 signalling protocol. They are used in ICE to make sure that
529 the connectivity checks come from the right peer. Change
530 notification is via the
280531 <tp:member-ref>LocalCredentialsChanged</tp:member-ref> signal.
532
533 This property will be a pair of empty strings if ICE has not yet been
534 started.
281535 </tp:docstring>
282536 </property>
283537
286540 <tp:changed version="0.21.2">renamed from LocalCredentailsSet</tp:changed>
287541 <tp:docstring>
288542 Emitted when the value of
289 <tp:member-ref>LocalCredentials</tp:member-ref> changes.
543 <tp:member-ref>LocalCredentials</tp:member-ref> changes to a non-empty
544 value. This should only happen when the streaming implementation calls
545 <tp:member-ref>SetCredentials</tp:member-ref>, so this signal is
546 mostly useful for debugging.
290547 </tp:docstring>
291548 <arg name="Username" type="s" />
292549 <arg name="Password" type="s" />
332589 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
333590 <p>A list of mappings describing TURN or Google relay servers
334591 available for the client to use in its candidate gathering, as
335 determined from the protocol. Map keys are:</p>
592 determined from the protocol. Well-known map keys are:</p>
336593
337594 <dl>
338595 <dt><code>ip</code> - s</dt>
365622 <dd>The UDP or TCP port of the relay server as an ASCII unsigned
366623 integer</dd>
367624
625 <dt><code>unique-id</code> - s</dt>
626 <dd>A string identifying the relay server. If two RelayInfo entries
627 have the same unique-id, but different <code>type</code>s, there
628 is usually little point in connecting to both. Use
629 <code>priority</code> to determine which version to prefer in this
630 case. Can also be used by the streaming implementation to avoid
631 connecting to the same relay multiple times if relaying is
632 required for both audio and video.</dd>
633
634 <dt><code>priority</code> - u</dt>
635 <dd>A number determining which version of a server to prefer (if
636 multiple are present with the same <code>unique-id</code>,
637 the one with the highest priority should be used, or the streaming
638 implementation should use the one whose <code>type</code> has the
639 most desirable properties)</dd>
640
368641 <dt><code>username</code> - s</dt>
369642 <dd>The username to use</dd>
370643
450723 <property name="Endpoints" tp:name-for-bindings="Endpoints"
451724 type="ao" access="read">
452725 <tp:docstring>
453 <p>The list of <tp:dbus-ref namespace="ofdT.Call.Stream"
454 >Endpoint.DRAFT</tp:dbus-ref> objects that exist for this
726 <p>The list of <tp:dbus-ref namespace="ofdT.Call1.Stream"
727 >Endpoint</tp:dbus-ref> objects that exist for this
455728 stream.</p>
456729
457730 <p>Change notification is via the
459732 </tp:docstring>
460733 </property>
461734
462 <signal name="PleaseRestartICE"
463 tp:name-for-bindings="Please_Restart_ICE">
464 <tp:docstring>
465 Emitted when the CM does an ICE restart to notify the
466 streaming implementation that it should call
735 <signal name="ICERestartRequested"
736 tp:name-for-bindings="ICE_Restart_Requested">
737 <tp:docstring>
738 Emitted when the remote side requests an ICE restart (e.g. third party
739 call control, when the remote endpoint changes). The streaming
740 implementation should call
467741 <tp:member-ref>SetCredentials</tp:member-ref> again.
468742 </tp:docstring>
469743 </signal>
744
745 <property name="ICERestartPending"
746 tp:name-for-bindings="ICE_Restart_Pending" access="read" type="b">
747 <tp:docstring>
748 State recovery for <tp:member-ref>ICERestartRequested</tp:member-ref>.
749 Set when the signal is emitted, and unset when
750 <tp:member-ref>SetCredentials</tp:member-ref> is called.
751 Useful for debugging.
752 </tp:docstring>
753 </property>
754
755 <method name="Fail" tp:name-for-bindings="Fail">
756 <tp:docstring>
757 Signal an unrecoverable error for this stream, and remove it. If all
758 streams are removed from a content, then it will also be removed.
759 </tp:docstring>
760 <arg direction="in" name="Reason" type="(uuss)"
761 tp:type="Call_State_Reason">
762 <tp:docstring>
763 A structured reason for stream removal.
764 </tp:docstring>
765 </arg>
766 </method>
470767 </interface>
471768 </node>
472769 <!-- vim:set sw=2 sts=2 et ft=xml: -->
2020 <interface name="org.freedesktop.Telepathy.Channel.Interface.DTMF">
2121 <tp:xor-requires>
2222 <tp:requires interface="org.freedesktop.Telepathy.Channel.Type.StreamedMedia"/>
23 <tp:requires interface="org.freedesktop.Telepathy.Channel.Type.Call.DRAFT"/>
23 <tp:requires interface="org.freedesktop.Telepathy.Channel.Type.Call1"/>
2424 </tp:xor-requires>
2525 <tp:changed version="0.19.6">The <tp:type>Stream_ID</tp:type>s in this
2626 interface should now be ignored by CMs. This is primarily to allow this
2727 interface to be used with <tp:dbus-ref
28 namespace='ofdT.Channel.Type'>Call.DRAFT</tp:dbus-ref>
28 namespace='ofdT.Channel.Type'>Call1</tp:dbus-ref>
2929 channels.</tp:changed>
3030
3131 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
333333 </tp:docstring>
334334 <tp:added version="0.17.6">This signal should not be relied on
335335 unless Channel_Group_Flag_Properties is present.</tp:added>
336 <tp:deprecated version="0.23.4">Clients should listen to
337 <tp:member-ref>HandleOwnersChangedDetailed</tp:member-ref> instead to
338 get the new identifiers as well.
339 </tp:deprecated>
336340
337341 <arg name="Added" type="a{uu}" tp:type="Handle_Owner_Map">
338342 <tp:docstring>
347351 The channel-specific handles that were removed from the keys of the
348352 HandleOwners property, as a result of the contact leaving this group
349353 in a previous <tp:member-ref>MembersChanged</tp:member-ref> signal
354 </tp:docstring>
355 </arg>
356 </signal>
357
358 <signal name="HandleOwnersChangedDetailed"
359 tp:name-for-bindings="Handle_Owners_Changed_Detailed">
360 <tp:docstring>
361 <p>Emitted whenever the <tp:member-ref>HandleOwners</tp:member-ref>
362 property changes.</p>
363
364 <p>Clients can assume this signal is emitted by the Connection Manager
365 if the <tp:member-ref>MemberIdentifiers</tp:member-ref> property exists
366 </p>
367 </tp:docstring>
368 <tp:added version="0.23.4"/>
369
370 <arg name="Added" type="a{uu}" tp:type="Handle_Owner_Map">
371 <tp:docstring>
372 A map from channel-specific handles to their owners, in which the
373 keys include all the handles that were added to the keys of the
374 HandleOwners property, and all the handles in that property whose
375 owner has changed
376 </tp:docstring>
377 </arg>
378 <arg name="Removed" type="au" tp:type="Contact_Handle[]">
379 <tp:docstring>
380 The channel-specific handles that were removed from the keys of the
381 HandleOwners property, as a result of the contact leaving this group
382 in a previous <tp:member-ref>MembersChanged</tp:member-ref> signal
383 </tp:docstring>
384 </arg>
385 <arg name="Identifiers" type="a{us}" tp:type="Handle_Identifier_Map">
386 <tp:docstring>
387 The string identifiers for handles mentioned in this signal, to
388 give clients the minimal information necessary to create contacts
389 without waiting for round-trips. Connection managers MUST include at
390 least the identifiers for all handles in the Added map, and MAY
391 include those from Removed array.
350392 </tp:docstring>
351393 </arg>
352394 </signal>
518560 </tp:docstring>
519561 <tp:added version="0.17.6">This signal should not be relied on
520562 unless Channel_Group_Flag_Properties is present.</tp:added>
563 <tp:deprecated version="0.23.4">Clients should listen to
564 <tp:member-ref>SelfContactChanged</tp:member-ref> instead to get the new
565 identifier as well.
566 </tp:deprecated>
521567
522568 <arg type="u" tp:type="Contact_Handle" name="Self_Handle">
523569 <tp:docstring>
524570 The new value of the SelfHandle property.
571 </tp:docstring>
572 </arg>
573 </signal>
574
575 <signal name="SelfContactChanged" tp:name-for-bindings="Self_Contact_Changed">
576 <tp:docstring>
577 <p>Emitted whenever the <tp:member-ref>SelfHandle</tp:member-ref> property
578 changes.</p>
579
580 <p>Clients can assume this signal is emitted by the Connection Manager
581 if the <tp:member-ref>MemberIdentifiers</tp:member-ref> property exists.
582 </p>
583 </tp:docstring>
584 <tp:added version="0.23.4"/>
585
586 <arg type="u" tp:type="Contact_Handle" name="Self_Handle">
587 <tp:docstring>
588 The new value of the SelfHandle property.
589 </tp:docstring>
590 </arg>
591 <arg type="s" name="Self_ID">
592 <tp:docstring>
593 The new value of the SelfHandle property's identifier.
525594 </tp:docstring>
526595 </arg>
527596 </signal>
542611 <tp:added version="0.17.6">For backwards compatibility,
543612 clients should fall back to calling GetSelfHandle if
544613 Channel_Group_Flag_Properties is not present.</tp:added>
614 </property>
615
616 <property name="MemberIdentifiers" type="a{us}" tp:type="Handle_Identifier_Map"
617 access="read" tp:name-for-bindings="Member_Identifiers">
618 <tp:docstring>
619 The string identifiers for handles mentioned in this channel, to
620 give clients the minimal information necessary to create contacts
621 without waiting for round-trips. Connection managers MUST include at
622 least the identifiers for
623 <tp:member-ref>SelfHandle</tp:member-ref>,
624 <tp:member-ref>Members</tp:member-ref>,
625 <tp:member-ref>LocalPendingMembers</tp:member-ref> (and their actors if
626 any),
627 <tp:member-ref>RemotePendingMembers</tp:member-ref> and
628 <tp:member-ref>HandleOwners</tp:member-ref>.
629 </tp:docstring>
630 <tp:added version="0.23.4"/>
545631 </property>
546632
547633 <method name="GetSelfHandle" tp:name-for-bindings="Get_Self_Handle">
2121 <interface name="org.freedesktop.Telepathy.Channel.Interface.Hold">
2222 <tp:xor-requires>
2323 <tp:requires interface="org.freedesktop.Telepathy.Channel.Type.StreamedMedia"/>
24 <tp:requires interface="org.freedesktop.Telepathy.Channel.Type.Call.DRAFT"/>
24 <tp:requires interface="org.freedesktop.Telepathy.Channel.Type.Call1"/>
25 <tp:requires interface="org.freedesktop.Telepathy.Call1.Content"/>
2526 </tp:xor-requires>
2627 <tp:changed version="0.17.4">first API-stable version</tp:changed>
2728
3031 This only makes sense for channels where
3132 you are streaming media to or from the members. (To see whether the
3233 other participant has put you on hold, see <tp:dbus-ref
33 namespace="org.freedesktop.Telepathy.Channel.Interface">CallState</tp:dbus-ref>.)</p>
34 namespace="org.freedesktop.Telepathy.Channel.Interface"
35 >CallState</tp:dbus-ref>.)</p>
3436
3537 <p>If you place a channel on hold, this indicates that you do not wish
3638 to be sent media streams by any of its members and will be ignoring
3941 an actively used channel (e.g. in a GSM or PBX call, it will be
4042 necessary to place an active call on hold before you can start
4143 another call).</p>
44
45 <p>This can also be used for putting a single Content on hold, if the
46 protocol supports it (This interface is in the Channel namespace for
47 historical reasons).</p>
4248 </tp:docstring>
4349
4450 <method name="GetHoldState" tp:name-for-bindings="Get_Hold_State">
106112 The connection manager is attempting to move to state Held, but
107113 has not yet completed that operation. It is unspecified whether
108114 any, all or none of the streams making up the channel are on hold.
115 Examining the Hold state of Call Contents (if applicable) may
116 provide more useful information.
109117 </tp:docstring>
110118 </tp:enumvalue>
111119
112120 <tp:enumvalue value="3" suffix="Pending_Unhold">
113121 <tp:docstring>
114 The connection manager is attempting to move to state Held, but
122 The connection manager is attempting to move to state Unheld, but
115123 has not yet completed that operation. It is unspecified whether
116124 any, all or none of the streams making up the channel are on hold.
125 Examining the Hold state of Call Contents (if applicable) may
126 provide more useful information.
117127 </tp:docstring>
118128 </tp:enumvalue>
119129 </tp:enum>
2020 <interface name="org.freedesktop.Telepathy.Channel.Interface.MediaSignalling">
2121 <tp:requires interface="org.freedesktop.Telepathy.Channel"/>
2222 <tp:requires interface="org.freedesktop.Telepathy.Channel.Type.StreamedMedia"/>
23 <tp:changed version="0.24.0">The old-style Telepathy properties,
24 deprecated since March 2009, have been removed.</tp:changed>
2325
2426 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
2527 <p>An interface for signalling a channel containing synchronised media
103105 </tp:docstring>
104106 </signal>
105107
106 <tp:property name="nat-traversal" type="s">
107 <tp:deprecated version="0.17.22">Use the <tp:dbus-ref
108 namespace="org.freedesktop.Telepathy.Media.StreamHandler">NATTraversal</tp:dbus-ref>
109 property on the Media.StreamHandler, if available; use this
110 as a fallback.</tp:deprecated>
111 <tp:docstring>
112 A string indicating the NAT traversal techniques employed by the
113 streams within this channel if they do not have a <tp:dbus-ref
114 namespace="org.freedesktop.Telepathy.Media.StreamHandler">NATTraversal</tp:dbus-ref>
115 property. The possible values are the same as for the NATTraversal
116 property on the streams.
117 </tp:docstring>
118 </tp:property>
119
120 <tp:property name="stun-server" type="s">
121 <tp:deprecated version="0.17.22">Use the <tp:dbus-ref
122 namespace="org.freedesktop.Telepathy.Media.StreamHandler">STUNServers</tp:dbus-ref>
123 property on the Media.StreamHandler, if available; use this
124 as a fallback.</tp:deprecated>
125 <tp:docstring>
126 The IP address or hostname of the STUN server to use for NAT traversal
127 if the individual streams do not specify one.
128 </tp:docstring>
129 </tp:property>
130
131 <tp:property name="stun-port" type="q">
132 <tp:deprecated version="0.17.22">Use the <tp:dbus-ref
133 namespace="org.freedesktop.Telepathy.Media.StreamHandler">STUNServers</tp:dbus-ref>
134 property on the Media.StreamHandler, if available; use this
135 as a fallback.</tp:deprecated>
136 <tp:docstring>
137 The UDP port number to use on the provided STUN server.
138 </tp:docstring>
139 </tp:property>
140
141 <tp:property name="gtalk-p2p-relay-token" type="s">
142 <tp:deprecated version="0.17.22">XMPP connection managers
143 supporting the Google Talk relay server SHOULD make the necessary
144 HTTP requests to find a username and password, and use those
145 to populate the <tp:dbus-ref
146 namespace="org.freedesktop.Telepathy.Media.StreamHandler">RelayInfo</tp:dbus-ref>
147 property on the Media.StreamHandler.</tp:deprecated>
148 <tp:docstring>
149 The authentication token for use with the Google Talk peer-to-peer relay
150 server.
151 </tp:docstring>
152 </tp:property>
153
154108 <tp:hct name="gtalk-p2p">
155109 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
156110 <p>The client can implement streaming for streams whose <tp:dbus-ref
598598
599599 <dt>supersedes (s – <tp:type>Protocol_Message_Token</tp:type>)</dt>
600600 <dd>If present, this message supersedes a previous message,
601 identified by its <tt>protocol-token</tt> or
602 <tt>message-token</tt> header. The user interface MAY, for
603 example, choose to replace the superseded message with this
604 message, or grey out the superseded message.
601 identified by its <tt>message-token</tt> header. The user
602 interface MAY, for example, choose to replace the superseded
603 message with this message, or grey out the superseded message.
605604
606605 <tp:rationale>Skype, for example, allows the user to amend
607606 messages they have already sent (to correct typos,
608607 etc.).</tp:rationale>
609 </dd>
608
609 Connection Managers SHOULD represent repeatedly edited messages
610 in the following form:
611 <pre>
612 message {token = a};
613 message {token = b, supersedes = a};
614 message {token = c, supersedes = a};
615 </pre>
616
617 <tp:rationale>The alternative form is:
618 <pre>
619 message {token = a};
620 message {token = b, supersedes = a};
621 message {token = c, supersedes = b};
622 </pre>
623 but it is more difficult to implement in UIs/loggers, and it
624 breaks irrecoverably if message b is lost. If a CM is forced
625 to use this form, it should be tested extensively for
626 interoperability with existing clients.
627 </tp:rationale>
628
629 Clients should deal gracefully if the original message gets
630 lost, but one or more corrections to it get through:
631 <pre>
632 message {token = x} gets lost;
633 message {token = y, supersedes = x};
634 message {token = z, supersedes = x};
635 </pre>
636
637 <tp:rationale>This is the form that CMs will use to mean "I know
638 that this message was edited, but I don't know what it
639 originally said." It is often in the interests of the
640 remote side for message x to be lost (e.g. to hide
641 embarassing mistakes or sensitive information) so it might not
642 be possible to retrieve it (even on protocols with reliable
643 message-delivery guarantees).</tp:rationale></dd>
644
645 <dt>original-message-sent (x - <tp:type>Unix_Timestamp64</tp:type>)</dt>
646 <dd>The <tt>message-sent</tt> header of the message that this
647 one supersedes.
648 This key should only be present if <tt>supersedes</tt> is also
649 present. It MAY be used as a hint to help clients locate the
650 original message in its logs. If present, comparing the tuple
651 (original-message-sent, supersedes) with (message-sent,
652 message-token) SHOULD be enough to uniquely
653 identify the original message.</dd>
654
655 <dt>original-message-received (x - <tp:type>Unix_Timestamp64</tp:type>)</dt>
656 <dd>The <tt>message-received</tt> header of the message that this
657 one supersedes.
658 This key should only be present if <tt>supersedes</tt> is also
659 present. It MAY be used as a hint in a similar way to
660 <tt>original-message-sent</tt>.</dd>
610661
611662 <dt>pending-message-id (u - <tp:type>Message_ID</tp:type>)</dt>
612663 <dd>The incoming message ID. This MUST NOT be present on outgoing
9951046 recipient. If a delivery failure is detected later, this is
9961047 signalled by receiving a message whose <code>message-type</code>
9971048 header maps to
998 <tp:type>Channel_Text_Message_Type</tp:type>_Delivery_Report.
1049 <tp:value-ref type="Channel_Text_Message_Type">Delivery_Report</tp:value-ref>.
9991050 Similarly, if delivery is detected to have been successful
10001051 (which is not possible in all protocols), a successful delivery
10011052 report will be signalled.</p>
00 <?xml version="1.0" ?>
11 <node name="/Channel_Interface_Password" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
22 <tp:copyright>
3 Copyright © 2005-2009 Collabora Limited
3 Copyright © 2005-2011 Collabora Limited
44 Copyright © 2005-2009 Nokia Corporation
55 Copyright © 2006 INdT
66 </tp:copyright>
8989 </method>
9090 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
9191 <p>Interface for channels that may have a password set that users need
92 to provide before being able to join, or may be able to view or change
93 once they have joined the channel.</p>
92 to provide before being able to join. The
93 <tp:member-ref>GetPasswordFlags</tp:member-ref> method and the
94 associated <tp:member-ref>PasswordFlagsChanged</tp:member-ref>
95 signal indicate whether the user must now provide a password to join
96 the channel.</p>
9497
95 <p>The <tp:member-ref>GetPasswordFlags</tp:member-ref> method and the
96 associated <tp:member-ref>PasswordFlagsChanged</tp:member-ref>
97 signal indicate whether the channel has a password, whether the user
98 must now provide it to join, and whether it can be viewed or changed
99 by the user.</p>
98 <p>Once the user has joined the channel, the current
99 password-protectedness of the room can be checked (and possibly
100 modified) using the <tp:dbus-ref
101 namespace='ofdT.Channel.Interface'>RoomConfig1</tp:dbus-ref>
102 interface, if implemented.</p>
100103 </tp:docstring>
101104 </interface>
102105 </node>
2020 02110-1301, USA.</p>
2121 </tp:license>
2222
23 <interface name="org.freedesktop.Telepathy.Channel.Interface.Room.DRAFT"
24 tp:causes-havoc="experimental">
23 <interface name="org.freedesktop.Telepathy.Channel.Interface.Room2">
2524 <tp:requires interface="org.freedesktop.Telepathy.Channel"/>
26 <tp:added version="0.19.11">(draft 1)</tp:added>
25 <tp:added version="0.24.0">(version 2)</tp:added>
2726
2827 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
2928 <p>Different IM protocols use a variety of ways to name chat rooms. The
3938 href="http://xmpp.org/extensions/xep-0045.html#createroom-unique"><acronym
4039 title="XMPP Extension Protocol">XEP</acronym>-0045 §10.1.4
4140 <q>Requesting a Unique Room Name</q></a> defines a protocol for
42 requesting a unique, opaque room name on the server.</p>
41 requesting a unique, opaque room name on the server. Note that
42 this interface is not restricted to Text channels, and can
43 also be used on Call channels.</p>
4344
4445 <p>This interface intends to support and differentiate these mechanisms
4546 more clearly than the <tp:dbus-ref
6061 <tp:dbus-ref
6162 namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref>
6263 = <code>"#telepathy"</code>,
63 <tp:member-ref>RoomID</tp:member-ref> = <code>"#telepathy"</code>,
64 <tp:member-ref>RoomName</tp:member-ref> = <code>"#telepathy"</code>,
6465 <tp:member-ref>Server</tp:member-ref> = <code>""</code>, indicating
6566 that the room has a human-readable identifier, and is not confined to
6667 a particular server on the network.
8182 <tp:dbus-ref
8283 namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref>
8384 = <code>"0xdeadbeef"</code>,
84 <tp:member-ref>RoomID</tp:member-ref> = <code>""</code>,
85 <tp:member-ref>RoomName</tp:member-ref> = <code>""</code>,
8586 <tp:member-ref>Server</tp:member-ref> = <code>""</code>, indicating
8687 that the room has an identifier but no human-readable name.
8788 </li>
9091 <tp:dbus-ref
9192 namespace="org.freedesktop.Telepathy.Channel">TargetHandleType</tp:dbus-ref>
9293 = <code>None</code>,
93 <tp:member-ref>RoomID</tp:member-ref> = <code>""</code>,
94 <tp:member-ref>RoomName</tp:member-ref> = <code>""</code>,
9495 <tp:member-ref>Server</tp:member-ref> = <code>""</code>, indicating
9596 that the room has neither an identifier (so it cannot be re-joined
9697 later) nor a human-readable name.
104105 <tp:dbus-ref
105106 namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref>
106107 = <code>"jdev@conference.jabber.org"</code>,
107 <tp:member-ref>RoomID</tp:member-ref> = <code>"jdev"</code>,
108 <tp:member-ref>RoomName</tp:member-ref> = <code>"jdev"</code>,
108109 <tp:member-ref>Server</tp:member-ref> = <code>"conference.jabber.org"</code>.
109110 </li>
110111
115116 <tp:dbus-ref
116117 namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref>
117118 = <code>"private-chat-11111x1x-11xx-111x-1111-111x1xx11x11@groupchat.google.com"</code>,
118 <tp:member-ref>RoomID</tp:member-ref> = <code>""</code>,
119 <tp:member-ref>RoomName</tp:member-ref> = <code>""</code>,
119120 <tp:member-ref>Server</tp:member-ref> =
120121 <code>"groupchat.google.com"</code>, indicating that the room has a
121122 persistent identifier, no human-readable name, and is hosted by a
130131 <tp:dbus-ref
131132 namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref>
132133 = <code>"lrcgsnthzvwm@conference.jabber.org"</code>,
133 <tp:member-ref>RoomID</tp:member-ref> = <code>""</code>,
134 <tp:member-ref>RoomName</tp:member-ref> = <code>""</code>,
134135 <tp:member-ref>Server</tp:member-ref> =
135136 <code>"conference.jabber.org"</code>, indicating that the room has a
136137 persistent identifier, no human-readable name, and is hosted by a
164165 >TargetHandle</tp:dbus-ref>.</p>
165166
166167 <p>If, like IRC, the room identifiers are also human-readable, the
167 RCCs should also include RoomID in <var>Allowed_Properties</var>:</p>
168 RCCs should also include RoomName in <var>Allowed_Properties</var>:</p>
168169
169170 <blockquote>
170171 <pre>
178179 >TargetID</tp:dbus-ref>,
179180 ...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel"
180181 >TargetHandle</tp:dbus-ref>,
181 ...<tp:member-ref>RoomID</tp:member-ref>
182 ...<tp:member-ref>RoomName</tp:member-ref>
182183 ]
183184 ),
184185
186187 >ChannelType</tp:dbus-ref>: ...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Type"
187188 >Text</tp:dbus-ref>
188189 },
189 Allowed = [ ...<tp:member-ref>RoomID</tp:member-ref>,
190 Allowed = [ ...<tp:member-ref>RoomName</tp:member-ref>,
190191 ]
191192 )</pre></blockquote>
192193
193 <p>Requests may specify the RoomID in place of
194 <p>Requests may specify the RoomName in place of
194195 <tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref> or
195196 <tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetHandle</tp:dbus-ref>
196 . Note how <tp:member-ref>RoomID</tp:member-ref> appears
197 . Note how <tp:member-ref>RoomName</tp:member-ref> appears
197198 in <var>Allowed_Properties</var> of a different RCC because
198199 when <tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel"
199200 >TargetHandleType</tp:dbus-ref> is omitted (or is None), both
201202 >TargetHandle</tp:dbus-ref> and
202203 <tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel"
203204 >TargetID</tp:dbus-ref> must also be omitted.
204 <tp:member-ref>RoomID</tp:member-ref> is allowed in conjuction
205 <tp:member-ref>RoomName</tp:member-ref> is allowed in conjuction
205206 with
206207 <tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref> or
207208 <tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetHandle</tp:dbus-ref>
220221 fallback conference server is specified on jabber connections in
221222 gabble.</p>
222223
223 <p>If the protocol supports unnamed rooms, <tp:member-ref>RoomID</tp:member-ref>
224 <p>If the protocol supports unnamed rooms, <tp:member-ref>RoomName</tp:member-ref>
224225 should be fixed to the empty string, and
225226 <tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetHandleType</tp:dbus-ref>
226227 should be None:</p>
232233 >Text</tp:dbus-ref>,
233234 ...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel"
234235 >TargetHandleType</tp:dbus-ref>: None,
235 ...<tp:member-ref>RoomID</tp:member-ref>: "",
236 ...<tp:member-ref>RoomName</tp:member-ref>: "",
236237 },
237238 Allowed = [ ]
238239 )</pre></blockquote>
241242
242243 <p>When explicitly joining a room, the CM cannot know whether the room
243244 ID is unique or not. As a result, if this is the case, adding an
244 empty string <tp:member-ref>RoomID</tp:member-ref> into the channel
245 empty string <tp:member-ref>RoomName</tp:member-ref> into the channel
245246 request will ensure the CM knows. For example:</p>
246247
247248 <blockquote>
249250 { ...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">ChannelType</tp:dbus-ref>: ...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Type">Text</tp:dbus-ref>,
250251 ...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetHandleType</tp:dbus-ref>: Room,
251252 ...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref>: "qwerasdfzxcv@conference.jabber.org",
252 ...<tp:member-ref>RoomID</tp:member-ref>: ""
253 ...<tp:member-ref>RoomName</tp:member-ref>: ""
253254 }</pre></blockquote>
254255
255 <p>If <tp:member-ref>RoomID</tp:member-ref> features in
256 <p>If <tp:member-ref>RoomName</tp:member-ref> features in
256257 <var>Allowed_Properties</var> then the only value allowed in conjunction
257258 with <tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref>
258259 or <tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetHandle</tp:dbus-ref>
259260 is the empty string. Requests with conflicting
260261 <tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref>
261 and <tp:member-ref>RoomID</tp:member-ref> properties
262 and <tp:member-ref>RoomName</tp:member-ref> properties
262263 will fail with InvalidArgument.</p>
263264
264265 <p>To create a XEP-0045 §10.1.4 uniquely-named room channel
268269 <blockquote>
269270 <pre>
270271 { ...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">ChannelType</tp:dbus-ref>: ...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Type">Text</tp:dbus-ref>,
271 ...<tp:member-ref>RoomID</tp:member-ref>: ""
272 ...<tp:member-ref>RoomName</tp:member-ref>: ""
272273 ...<tp:member-ref>Server</tp:member-ref>: "conference.jabber.org"
273274 }</pre>
274275 </blockquote>
281282 { ...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">ChannelType</tp:dbus-ref>: ...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Type">Text</tp:dbus-ref>,
282283 ...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetHandleType</tp:dbus-ref>: Room,
283284 ...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref>: "kajsdhkajshdfjkshdfjkhs@conference.jabber.org",
284 ...<tp:member-ref>RoomID</tp:member-ref>: ""
285 ...<tp:member-ref>RoomName</tp:member-ref>: ""
285286 ...<tp:member-ref>Server</tp:member-ref>: "conference.jabber.org"
286287 }</pre>
287288 </blockquote>
288289
289290 <p>The CM will have received the unique room name (kajsdhkajshdfjkshdfjkhs)
290291 and then created a room with such a name on the said server. The empty
291 <tp:member-ref>RoomID</tp:member-ref> property shows that the room name
292 <tp:member-ref>RoomName</tp:member-ref> property shows that the room name
292293 is not human-readable.</p>
293294
294295 </tp:docstring>
295296
296 <property name="RoomID" tp:name-for-bindings="Room_ID" type="s"
297 access="read">
297 <property name="RoomName" tp:name-for-bindings="Room_Name" type="s"
298 access="read" tp:immutable="yes" tp:requestable="yes">
298299 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
299300 <p>The human-readable identifier of a chat room. Note that if
300301 non-empty, this property (and perhaps also
302303 a channel request to join the room. XMPP MUCs have a room name
303304 concept which is more like a topic, except more
304305 persistent. This D-Bus property is <strong>not</strong> this
305 XMPP room name, but the bit before the @ in the room jid.</p>
306 XMPP room name, but the bit before the @ in the room jid; see
307 <tp:dbus-ref
308 namespace='ofdT.Channel.Interface'>RoomConfig1.Title</tp:dbus-ref>
309 for that concept.</p>
306310
307311 <p>This property cannot change during the lifetime of the channel. It
308312 should appear in the <var>Allowed_Properties</var> of a
313317 </property>
314318
315319 <property name="Server" tp:name-for-bindings="Server" type="s"
316 access="read">
320 access="read" tp:immutable="yes" tp:requestable="yes">
317321 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
318322 <p>For protocols with a concept of chatrooms on multiple servers with
319323 different DNS names (like XMPP), the DNS name of the server hosting
327331 and only if non-empty values are supported.</p>
328332 </tp:docstring>
329333 </property>
330
331 <tp:struct name="Room_Subject">
332 <tp:docstring>
333 A struct representing the subject of a room channel.
334 </tp:docstring>
335 <tp:member type="s" name="Subject">
336 <tp:docstring>
337 A human-readable description of the current subject of
338 conversation in the channel, similar to /topic in IRC.
339 </tp:docstring>
340 </tp:member>
341 <tp:member type="s" name="Actor">
342 <tp:docstring>
343 A normalized contact ID representing who last modified the
344 subject, or the empty string if it is not known.
345 </tp:docstring>
346 </tp:member>
347 <tp:member type="x" tp:type="Unix_Timestamp64" name="Timestamp">
348 <tp:docstring>
349 A unix timestamp indicating when the subject was last modified.
350 </tp:docstring>
351 </tp:member>
352 </tp:struct>
353
354 <property name="Subject" tp:name-for-bindings="Subject"
355 type="(ssx)" tp:type="Room_Subject" access="read">
356 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
357 <p>The subject on the room such as the topic in an IRC channel,
358 or the room name in XMPP MUCs. In protocols which do not support
359 subjects (like MSN), this property should be ("", "", 0).</p>
360
361 <tp:rationale>This property replaces the subject, subject-contact, and
362 subject-timestamp Telepathy properties of Text channels, as Telepathy
363 properties are soon to be deprecated completely.</tp:rationale>
364
365 <p>This property may change during the lifetime of the channel and
366 MUST not be included in a channel request.</p>
367 </tp:docstring>
368 </property>
369
370334 </interface>
371335 </node>
372336 <!-- vim:set sw=2 sts=2 et ft=xml: -->
0 <?xml version="1.0" ?>
1 <node name="/Channel_Interface_Room_Config"
2 xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
3
4 <tp:copyright>Copyright © 2011 Collabora Ltd.</tp:copyright>
5 <tp:license xmlns="http://www.w3.org/1999/xhtml">
6 <p>This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.</p>
10
11 <p>This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.</p>
15
16 <p>You should have received a copy of the GNU Lesser General Public
17 License along with this library; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 02110-1301, USA.</p>
20 </tp:license>
21
22 <interface name="org.freedesktop.Telepathy.Channel.Interface.RoomConfig1">
23 <tp:added version="0.24.0">version 1. This replaces the old-school
24 Telepathy properties on <tp:dbus-ref
25 namespace='ofdT.Channel.Type'>Text</tp:dbus-ref>.</tp:added>
26 <tp:requires interface='org.freedesktop.Telepathy.Channel.Interface.Room2'/>
27 <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal"
28 value="true"/>
29
30 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
31 <p>Represents the configuration of a chatroom, some aspects of which may
32 be modifiable by the user, depending on their priviledges. This
33 corresponds to the room configuration on XMPP, and various channel mode
34 flags on IRC.</p>
35
36 <p>The “topic” (on IRC) or “subject” (on XMPP) is not part of this
37 interface; it can be found on the <tp:dbus-ref
38 namespace='ofdT.Channel.Interface'>Subject2</tp:dbus-ref>
39 interface.</p>
40 </tp:docstring>
41
42 <property name="Anonymous" tp:name-for-bindings="Anonymous" type="b" access="read">
43 <tp:docstring>
44 <code>True</code> if people may join the channel without other members being made
45 aware of their identity.
46 </tp:docstring>
47 </property>
48 <property name="InviteOnly" tp:name-for-bindings="InviteOnly" type="b" access="read">
49 <tp:docstring>
50 <code>True</code> if people may not join the channel until they have been invited.
51 </tp:docstring>
52 </property>
53 <property name="Limit" tp:name-for-bindings="Limit" type="u" access="read">
54 <tp:docstring>
55 The limit to the number of members; or <tt>0</tt> if there is no limit.
56 </tp:docstring>
57 </property>
58 <property name="Moderated" tp:name-for-bindings="Moderated" type="b" access="read">
59 <tp:docstring>
60 <code>True</code> if channel membership is not sufficient to allow participation.
61 </tp:docstring>
62 </property>
63 <property name="Title" tp:name-for-bindings="Title" type="s" access="read">
64 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
65 A human-visible name for the channel, if it differs from <tp:dbus-ref
66 namespace='ofdT.Channel.Interface'>Room2.RoomName</tp:dbus-ref>; the
67 empty string, otherwise.
68
69 <tp:rationale>
70 <p>On XMPP, this represents the <code>muc#roomconfig_roomname</code>
71 field of the <a
72 href='http://xmpp.org/extensions/xep-0045.html#registrar-formtype-owner'><code>muc#roomconfig</code></a>
73 form. So for <code>jdev@conference.jabber.org</code>, for example:</p>
74
75 <ul>
76 <li><tp:dbus-ref
77 namespace='ofdT.Channel.Interface'>Room2.RoomName</tp:dbus-ref>
78 = <code>"jdev"</code>;</li>
79 <li><tp:dbus-ref
80 namespace='ofdT.Channel.Interface'>Room2.Server</tp:dbus-ref>
81 = <code>"conference.jabber.org"</code>;</li>
82 <li><tp:member-ref>Title</tp:member-ref> = <code>"General Jabber
83 development discussion"</code>.</li>
84 </ul>
85
86 <p>XEP-0045 is awful.</p>
87 </tp:rationale>
88 </tp:docstring>
89 </property>
90 <property name="Description" tp:name-for-bindings="Description" type="s" access="read">
91 <tp:docstring>
92 A human-readable description of the channel's overall purpose; if any.
93 </tp:docstring>
94 </property>
95 <property name="Persistent" tp:name-for-bindings="Persistent" type="b" access="read">
96 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
97 <code>True</code> if the channel will remain in existence on the server after all
98 members have left it.
99 </tp:docstring>
100 </property>
101 <property name="Private" tp:name-for-bindings="Private" type="b" access="read">
102 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
103 <code>True</code> if the channel is not visible to non-members.
104 </tp:docstring>
105 </property>
106
107 <property name="PasswordProtected" type="b" access="read"
108 tp:name-for-bindings="Password_Protected">
109 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
110 <code>True</code> if contacts joining this channel must provide a
111 password to be granted entry. Note that this property does not
112 indicate that a password is required <em>right now</em>; see the
113 <tp:dbus-ref namespace='ofdT.Channel.Interface'>Password</tp:dbus-ref>
114 interface for the API used to provide a password while joining a room.
115 </tp:docstring>
116 </property>
117
118 <property name="Password" tp:name-for-bindings="Password" type="s" access="read">
119 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
120 If <tp:member-ref>PasswordProtected</tp:member-ref> is
121 <code>True</code>, the password required to enter the channel, if
122 known. If the password is unknown, or
123 <tp:member-ref>PasswordProtected</tp:member-ref> is
124 <code>False</code>, the empty string.
125
126 <tp:rationale>
127 On XMPP—bless its cotton socks!—non-owners of a MUC cannot see its
128 current password, even if they just provided the password in order to
129 join the room…
130 </tp:rationale>
131 </tp:docstring>
132 </property>
133
134 <property name="CanUpdateConfiguration" type="b" access="read"
135 tp:name-for-bindings="Can_Update_Configuration">
136 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
137 If <code>True</code>, the user may call
138 <tp:member-ref>UpdateConfiguration</tp:member-ref> to change the values
139 of the properties listed in
140 <tp:member-ref>MutableProperties</tp:member-ref>.
141 </tp:docstring>
142 </property>
143
144 <property name="MutableProperties" type="as" access="read"
145 tp:name-for-bindings="Mutable_Properties">
146 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
147 <p>A list of (unqualified) property names on this interface which may
148 be modified using <tp:member-ref>UpdateConfiguration</tp:member-ref>
149 (if <tp:member-ref>CanUpdateConfiguration</tp:member-ref> is
150 <code>True</code>). Properties not listed here cannot be
151 modified.</p>
152
153 <p>For example, IRC does not have the concept of joining a room without
154 other participants knowing your true identity; so on IRC the
155 <tp:member-ref>Anonymous</tp:member-ref> property will always be
156 <code>False</code>, and
157 <tp:member-ref>MutableProperties</tp:member-ref> will not include
158 <code>"Anonymous"</code>.</p>
159 </tp:docstring>
160 </property>
161
162 <property name="ConfigurationRetrieved" type="b" access="read"
163 tp:name-for-bindings="Configuration_Retrieved">
164 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
165 <p><code>True</code> once the initial room configuration has been
166 retrieved, or <code>False</code> otherwise. On some services, this
167 may take some time after you've joined a room to fetch the
168 configuration. Once this property changes to <code>True</code>, the
169 other properties on this interface can be assumed to be accurate;
170 this property MUST not change to <code>False</code> after it becomes
171 <code>True</code>.</p>
172
173 <tp:rationale>
174 <p>An application's “configure this room” dialog might choose to
175 display a spinner while this property is <code>False</code>, rather
176 than allowing the user to edit probably-inaccurate
177 configuration.</p>
178 </tp:rationale>
179 </tp:docstring>
180 </property>
181
182 <method name="UpdateConfiguration" tp:name-for-bindings="Update_Configuration">
183 <arg direction="in" name="Properties" type="a{sv}">
184 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
185 <p>
186 The new values of one or more properties on this interface, which
187 must be listed in
188 <tp:member-ref>MutableProperties</tp:member-ref>. For
189 instance, to set up a channel for discussing top-secret corporate
190 merge plans, this parameter might be:
191 </p>
192
193 <blockquote>
194 <pre>{
195 'Private': True,
196 'InviteOnly': True,
197 'Description': "The first rule of #inteltakeover is: do not talk about #inteltakeover",
198 }</pre></blockquote>
199 </tp:docstring>
200 </arg>
201 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
202 <p>If <tp:member-ref>CanUpdateConfiguration</tp:member-ref> is
203 <code>True</code>, modifies the current values of one or more
204 room properties. This method SHOULD NOT return until the change has
205 been accepted or declined by the server.</p>
206
207 <p>Note that the server may ostensibly accept the changes (thus
208 allowing this method to return success) but signal different values;
209 for example, the server might truncate
210 <tp:member-ref>Title</tp:member-ref> to some maximum length. Callers
211 SHOULD continue to listen for the <code>PropertiesChanged</code>
212 signal, and trust the values it signals over those provided to this
213 method.</p>
214 </tp:docstring>
215
216 <tp:error name="org.freedesktop.Telepathy.Error.PermissionDenied">
217 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
218 The user is not allowed to reconfigure this room.
219 </tp:docstring>
220 </tp:error>
221
222 <tp:error name="org.freedesktop.Telepathy.Error.InvalidArgument">
223 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
224 One or more of the specified properties is unknown, or ill-typed.
225 </tp:docstring>
226 </tp:error>
227
228 <tp:error name="org.freedesktop.Telepathy.Error.NotImplemented">
229 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
230 One or more of the specified properties cannot be modified on this
231 protocol.
232 </tp:docstring>
233 </tp:error>
234
235 <tp:error name="org.freedesktop.Telepathy.Error.NotAvailable">
236 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
237 The room's current configuration has not yet been retrieved, so we
238 cannot update it just yet. The application might like to try again
239 once the <tp:member-ref>ConfigurationRetrieved</tp:member-ref>
240 property becomes <code>True</code>.
241 </tp:docstring>
242 </tp:error>
243 </method>
244
245 </interface>
246 </node>
247 <!-- vim:set sw=2 sts=2 et ft=xml: -->
4949 { ...<tp:dbus-ref namespace='ofdT.Channel'>ChannelType</tp:dbus-ref>:
5050 ...<tp:dbus-ref namespace='ofdT.Channel.Type'>Text</tp:dbus-ref>,<br/>
5151   ...<tp:dbus-ref namespace='ofdT.Channel'>TargetHandleType</tp:dbus-ref>:
52 <tp:type>Handle_Type</tp:type>_Contact,<br/>
52 <tp:value-ref type="Handle_Type">Contact</tp:value-ref>,<br/>
5353   ...<tp:dbus-ref namespace='ofdT.Channel.Interface'>SMS.Flash</tp:dbus-ref>:
5454 True,<br/>
5555 }</code></blockquote>
7373 ({ ...<tp:dbus-ref namespace='ofdT.Channel'>ChannelType</tp:dbus-ref>:
7474 ...<tp:dbus-ref namespace='ofdT.Channel.Type'>Text</tp:dbus-ref>,<br/>
7575    ...<tp:dbus-ref namespace='ofdT.Channel'>TargetHandleType</tp:dbus-ref>:
76 <tp:type>Handle_Type</tp:type>_Contact,<br/>
76 <tp:value-ref type="Handle_Type">Contact</tp:value-ref>,<br/>
7777  },<br/>
7878  [ ...<tp:dbus-ref namespace='ofdT.Channel'>TargetHandle</tp:dbus-ref>,
7979 ...<tp:dbus-ref namespace='ofdT.Channel'>TargetID</tp:dbus-ref> ]),<br/>
8181 ({ ...<tp:dbus-ref namespace='ofdT.Channel'>ChannelType</tp:dbus-ref>:
8282 ...<tp:dbus-ref namespace='ofdT.Channel.Type'>Text</tp:dbus-ref>,<br/>
8383    ...<tp:dbus-ref namespace='ofdT.Channel'>TargetHandleType</tp:dbus-ref>:
84 <tp:type>Handle_Type</tp:type>_Contact,<br/>
84 <tp:value-ref type="Handle_Type">Contact</tp:value-ref>,<br/>
8585    ...<tp:member-ref>SMSChannel</tp:member-ref>: True,<br/>
8686  },<br/>
8787  [ ...<tp:dbus-ref namespace='ofdT.Channel'>TargetHandle</tp:dbus-ref>,
0 <?xml version="1.0" ?>
1 <node name="/Channel_Interface_Subject"
2 xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
3
4 <tp:copyright>Copyright © 2010–2011 Collabora Ltd.</tp:copyright>
5 <tp:license xmlns="http://www.w3.org/1999/xhtml">
6 <p>This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.</p>
10
11 <p>This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.</p>
15
16 <p>You should have received a copy of the GNU Lesser General Public
17 License along with this library; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 02110-1301, USA.</p>
20 </tp:license>
21
22 <interface name="org.freedesktop.Telepathy.Channel.Interface.Subject2">
23 <tp:requires interface="org.freedesktop.Telepathy.Channel"/>
24 <tp:added version="0.24.0">(version 2)</tp:added>
25 <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal"
26 value="true"/>
27
28 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
29 <p>An interface channels can implement to support subjects. Most
30 of the time this will be implemented by channels implementing
31 the <tp:dbus-ref
32 namespace="ofdT.Channel.Interface">Room2</tp:dbus-ref>
33 interface, but some protocols support subjects in 1-to-1 chats
34 (such as Skype). Note that this interface is not restricted to
35 Text channels, and can also be used on Call channels.</p>
36 </tp:docstring>
37
38 <method name="SetSubject" tp:name-for-bindings="Set_Subject">
39 <arg direction="in" type="s" name="Subject">
40 <tp:docstring>The new subject.</tp:docstring>
41 </arg>
42 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
43 <p>Set the room's subject. Clients SHOULD look at the subject
44 flags before calling this method as the user might not have
45 permission to set the subject.</p>
46
47 <p>A successful return of this method indicates a successful
48 change in subject, but clients should still listen for changes
49 to the <tp:member-ref>Subject</tp:member-ref> property for
50 further changes by other users or the server.</p>
51 </tp:docstring>
52 <tp:possible-errors>
53 <tp:error name="org.freedesktop.Telepathy.Error.NotImplemented"/>
54 <tp:error name="org.freedesktop.Telepathy.Error.PermissionDenied"/>
55 </tp:possible-errors>
56 </method>
57
58 <property name="Subject" tp:name-for-bindings="Subject"
59 type="s" access="read">
60 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
61 <p>The human-readable subject on the channel such as the topic
62 in an IRC channel, or the room name in XMPP MUCs.</p>
63
64 <tp:rationale>This property replaces the subject Telepathy
65 property of Text channels, as Telepathy properties are soon to
66 be deprecated completely.</tp:rationale>
67
68 <p>This property may change during the lifetime of the channel and
69 MUST not be included in a channel request.</p>
70 </tp:docstring>
71 </property>
72
73 <property name="Actor" tp:name-for-bindings="Actor"
74 type="s" access="read">
75 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
76 <p>The normalized contact ID representing who last modified
77 the subject, or the empty string if it is not known.</p>
78
79 <tp:rationale>This property replaces the subject-contact
80 Telepathy property of Text channels, as Telepathy properties
81 are soon to be deprecated completely.</tp:rationale>
82 </tp:docstring>
83 </property>
84
85 <property name="ActorHandle" tp:name-for-bindings="Actor_Handle"
86 type="u" tp:type="Contact_Handle" access="read">
87 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
88 <p>The handle corresponding to <tp:member-ref>Actor</tp:member-ref>.</p>
89 </tp:docstring>
90 </property>
91
92 <property name="Timestamp" tp:name-for-bindings="Timestamp"
93 type="x" tp:type="Unix_Timestamp64" access="read">
94 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
95 <p>A unix timestamp indicating when the subject was last
96 modified.</p>
97
98 <tp:rationale>This property replaces the subject-timestamp
99 Telepathy property of Text channels, as Telepathy properties
100 are soon to be deprecated completely.</tp:rationale>
101 </tp:docstring>
102 </property>
103
104 <property name="CanSet" tp:name-for-bindings="Can_Set"
105 type="b" access="read">
106 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
107 <p>TRUE if the <tp:member-ref>Subject</tp:member-ref> property
108 can be set by the user by calling
109 <tp:member-ref>SetSubject</tp:member-ref>, otherwise
110 FALSE.</p>
111
112 <p>If implementations are unsure of what this value should be
113 it SHOULD still be set to what it believes the value
114 is. As a result, clients should be aware that
115 <tp:member-ref>SetSubject</tp:member-ref> can still fail
116 even with this property set to TRUE.</p>
117
118 <tp:rationale>In XMPP it is impossible to know whether an
119 occupant can set the subject as XMPP server implementations
120 are wildly inconsistent.</tp:rationale>
121 </tp:docstring>
122 </property>
123
124 </interface>
125 </node>
126 <!-- vim:set sw=2 sts=2 et ft=xml: -->
217217 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
218218 <p>A dictionary of metadata provided by the channel
219219 requester, which the handler and other clients MAY choose to
220 interpret. Currently no standard keys are defined; clients MAY
220 interpret. Clients MAY
221221 choose to use platform-specific keys for their own purposes, but MUST
222222 ignore unknown keys and MUST cope with expected keys being
223223 missing. Clients SHOULD namespace hint names by having them
248248 namespace="ofdT.Client.Interface.Requests">AddRequest</tp:dbus-ref>
249249 by the <tp:dbus-ref
250250 namespace="org.freedesktop.Telepathy">ChannelDispatcher</tp:dbus-ref>.</p>
251 <p>The following standardised hints are defined:</p>
252
253 <dl>
254 <dt>org.freedesktop.Telepathy.ChannelRequest.DelegateToPreferredHandler - b</dt>
255 <dd>If present and True the client currently handling the channel
256 SHOULD pass the channel to the
257 <tp:member-ref>PreferredHandler</tp:member-ref> using
258 <tp:dbus-ref namespace="ofdT.ChannelDispatcher">DelegateChannels</tp:dbus-ref>.
259
260 <tp:rationale>
261 This hint allows the user to request a channel in their
262 preferred client in a situation where there are two chat
263 handlers (for example: requesting a channel in Empathy which is
264 currently being handled by gnome-shell).
265 </tp:rationale>
266
267 If the channel is currently unhandled, clients SHOULD ignore this
268 hint.
269
270 <tp:rationale>
271 It is assumed that Mission Control will correctly delegate an
272 unhandled channel to the preferred Handler. This allows
273 requesting clients to always include this hint in their channel
274 request.
275 </tp:rationale>
276
277 The Handler should check each
278 <tp:dbus-ref namespace="ofdT">ChannelRequest</tp:dbus-ref>
279 of the Requests_Satisfied parameter of
280 <tp:dbus-ref namespace="ofdT.Client.Handler">HandleChannels</tp:dbus-ref>
281 for the hint. The first request containing the hint SHOULD be used
282 and all further hints SHOULD be ignored.
283
284 <tp:rationale>
285 This covers the very unlikely case where
286 <tp:dbus-ref namespace="ofdT.Client.Handler">HandleChannels</tp:dbus-ref>
287 satisfies two separate requests which have different
288 <tp:member-ref>PreferredHandler</tp:member-ref>s.
289 </tp:rationale>
290 </dd>
291 </dl>
292
251293 </tp:docstring>
252294 </property>
253295
1616 License along with this library; if not, write to the Free Software
1717 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
1818 </tp:license>
19 <interface name="org.freedesktop.Telepathy.Channel.Type.Call.DRAFT"
19 <interface name="org.freedesktop.Telepathy.Channel.Type.Call1"
2020 tp:causes-havoc="experimental">
2121 <tp:added version="0.19.0">(draft 1)</tp:added>
2222
2323 <tp:requires interface="org.freedesktop.Telepathy.Channel"/>
24 <tp:requires
25 interface="org.freedesktop.Telepathy.Call1.Interface.Mute"/>
2426 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
2527 <p>A channel type for making audio and video calls. Call
2628 channels supersede the old <tp:dbus-ref
5153
5254 <h4>Contents</h4>
5355
54 <p><tp:dbus-ref namespace="ofdT.Call">Content.DRAFT</tp:dbus-ref>
56 <p><tp:dbus-ref namespace="ofdT.Call1">Content</tp:dbus-ref>
5557 objects represent the actual media that forms the Call (for
5658 example an audio content and a video content). Calls always
5759 have one or more Content objects associated with them. As a
6163 as the Requestable Channel Classes will document.</p>
6264
6365 <p><tp:dbus-ref
64 namespace="ofdT.Call">Content.DRAFT</tp:dbus-ref> objects have
66 namespace="ofdT.Call1">Content</tp:dbus-ref> objects have
6567 one or more stream associated with them. More information on
6668 these streams and how to maniuplate them can be found on the
67 <tp:dbus-ref namespace="ofdT.Call">Content.DRAFT</tp:dbus-ref>
69 <tp:dbus-ref namespace="ofdT.Call1">Content</tp:dbus-ref>
6870 interface page.</p>
6971
7072 <h4>Outgoing calls</h4>
7678 <pre>
7779 <tp:dbus-ref namespace="ofdT.Connection.Interface.Requests">CreateChannel</tp:dbus-ref>({
7880 ...<tp:dbus-ref namespace="ofdT.Channel">ChannelType</tp:dbus-ref>: ...<tp:dbus-ref
79 namespace="ofdT.Channel.Type">Call.DRAFT</tp:dbus-ref>,
81 namespace="ofdT.Channel.Type">Call1</tp:dbus-ref>,
8082 ...<tp:dbus-ref namespace="ofdT.Channel">TargetHandleType</tp:dbus-ref>: Contact,
8183 ...<tp:dbus-ref namespace="ofdT.Channel">TargetID</tp:dbus-ref>: 'foo@example.com',
8284 ...<tp:member-ref>InitialAudio</tp:member-ref>: True,
99101
100102 <p>After a new Call channel is requested, the
101103 <tp:member-ref>CallState</tp:member-ref> property will be
102 <tp:type>Call_State</tp:type>_Pending_Initiator. As the local
104 <tp:value-ref type="Call_State">Pending_Initiator</tp:value-ref>. As the local
103105 user is the initiator, the call must be accepted by the handler
104106 by calling the <tp:member-ref>Accept</tp:member-ref> method.
105107 At this point, <tp:member-ref>CallState</tp:member-ref> changes
106 to <tp:type>Call_State</tp:type>_Pending_Receiver which signifies
107 that the call is ringing, waiting for the remote contact to
108 accept the call. All changes to
109 <tp:member-ref>CallState</tp:member-ref> property are signalled
110 using the <tp:member-ref>CallStateChanged</tp:member-ref>
111 signal.</p>
108 to <tp:value-ref type="Call_State">Initialising</tp:value-ref>, which signifies
109 that the call is waiting for the network to do
110 something. When the CM has information indicating that the remote contact has been
111 notified about the call (or immediately if the network is known not to convey such
112 information) it should also change to
113 <tp:value-ref type="Call_State">Ringing</tp:value-ref>. All changes to
114 the <tp:member-ref>CallState</tp:member-ref> property are signalled using
115 the <tp:member-ref>CallStateChanged</tp:member-ref> signal.</p>
112116
113117 <p>When the call is accepted by the remote contact, the
114118 <tp:member-ref>CallStateChanged</tp:member-ref> signal fires
115119 again to show that <tp:member-ref>CallState</tp:member-ref> =
116 <tp:type>Call_State</tp:type>_Accepted.</p>
120 <tp:value-ref type="Call_State">Accepted</tp:value-ref>.</p>
117121
118122 <p>At this point <a
119123 href="http://telepathy.freedesktop.org/doc/telepathy-farstream/">telepathy-farstream</a>
120124 will signal that a pad is available for the handler to show
121 in the user interface.</p>
125 in the user interface. Once media is correctly flowing in both
126 directions, the state will change to
127 <tp:value-ref type="Call_State">Active</tp:value-ref>, to inform the user that they
128 have a correctly working call there is nothing amiss.</p>
122129
123130 <h5>Missed calls</h5>
124131
128135 not do this and rely on the call initiator terminating the call.
129136 A missed call is shown in a Call channel by the
130137 <tp:member-ref>CallState</tp:member-ref> property changing to
131 <tp:type>Call_State</tp:type>_Ended, and the
138 <tp:value-ref type="Call_State">Ended</tp:value-ref>, and the
132139 <tp:member-ref>CallStateReason</tp:member-ref> property changing
133140 to (remote contact,
134 <tp:type>Call_State_Change_Reason</tp:type>_No_Answer, "").</p>
141 <tp:value-ref type="Call_State_Change_Reason">No_Answer</tp:value-ref>, "").</p>
135142
136143 <h5>Rejected calls</h5>
137144
139146 talking to the local user, he or she can reject his or her
140147 incoming call. This will be shown in the Call channel by
141148 <tp:member-ref>CallState</tp:member-ref> changing to
142 <tp:type>Call_State</tp:type>_Ended and the
149 <tp:value-ref type="Call_State">Ended</tp:value-ref> and the
143150 <tp:member-ref>CallStateReason</tp:member-ref> property
144151 changing to (remote contact,
145 <tp:type>Call_State</tp:type>_Change_Reason_User_Requested,
152 <tp:value-ref type="Call_State_Change_Reason">User_Requested</tp:value-ref>,
146153 "org.freedesktop.Telepathy.Error.Rejected").</p>
147154
148155 <h4>Incoming calls</h4>
158165 /org/freedesktop/Telepathy/Connection/foo/bar/foo_40bar_2ecom/CallChannel,
159166 {
160167 ...<tp:dbus-ref namespace="ofdT.Channel">ChannelType</tp:dbus-ref>: ...<tp:dbus-ref
161 namespace="ofdT.Channel.Type">Call.DRAFT</tp:dbus-ref>,
168 namespace="ofdT.Channel.Type">Call1</tp:dbus-ref>,
162169 ...<tp:dbus-ref namespace="ofdT.Channel">TargetHandleType</tp:dbus-ref>: Contact,
163170 ...<tp:dbus-ref namespace="ofdT.Channel">TargetID</tp:dbus-ref>: 'foo@example.com',
164171 ...<tp:dbus-ref namespace="ofdT.Channel">TargetHandle</tp:dbus-ref>: 42,
185192 The new channel should also be given to telepathy-farstream to
186193 work out how the two participants will connect together.
187194 telepathy-farstream will call the appropriate methods on the call's
188 <tp:dbus-ref namespace="ofdT.Call">Content.DRAFT</tp:dbus-ref>s
195 <tp:dbus-ref namespace="ofdT.Call1">Content</tp:dbus-ref>s
189196 to negotiate codecs and transports.</p>
190197
191198 <p>To pick up the call, the handler should call
192199 <tp:member-ref>Accept</tp:member-ref>. The
193200 <tp:member-ref>CallState</tp:member-ref> property changes to
194 <tp:type>Call_State</tp:type>_Accepted and once media is
201 <tp:value-ref type="Call_State">Accepted</tp:value-ref> and once media is
195202 being transferred, telepathy-farstream will notify the
196203 handler of a new pad to be shown to the local user in the
197 UI</p>
204 UI. Once media is correctly flowing in both directions, the state will
205 change to <tp:value-ref type="Call_State">Active</tp:value-ref>, to inform the user
206 that they have a correctly working call there is nothing amiss.</p>
198207
199208 <p>To reject the call, the handler should call the
200209 <tp:member-ref>Hangup</tp:member-ref> method. The
201210 <tp:member-ref>CallState</tp:member-ref> property will change to
202 <tp:type>Call_State</tp:type>_Ended and the
211 <tp:value-ref type="Call_State">Ended</tp:value-ref> and the
203212 <tp:member-ref>CallStateReason</tp:member-ref> property will
204213 change to (self handle,
205 <tp:type>Call_State_Change_Reason</tp:type>_User_Requested,
214 <tp:value-ref type="Call_State_Change_Reason">User_Requested</tp:value-ref>,
206215 "org.freedesktop.Telepathy.Error.Rejected").</p>
207216
208217 <h4>Ongoing calls</h4>
220229
221230 <blockquote>
222231 <pre><tp:member-ref>AddContent</tp:member-ref>("video",
223 <tp:type>Media_Stream_Type</tp:type>_Video)</pre>
232 <tp:value-ref type="Media_Stream_Type">Video</tp:value-ref>)</pre>
224233 </blockquote>
225234
226235 <p>Assuming no errors, the new video content will be added to
231240
232241 <p>A similar method is used for removing contents from a call,
233242 except that the <tp:dbus-ref
234 namespace="ofdT.Call.Content.DRAFT">Remove</tp:dbus-ref> method
243 namespace="ofdT.Call1.Content">Remove</tp:dbus-ref> method
235244 is on the <tp:dbus-ref
236 namespace="ofdT.Call">Content.DRAFT</tp:dbus-ref> object.</p>
245 namespace="ofdT.Call1">Content</tp:dbus-ref> object.</p>
237246
238247 <h5>Ending the call</h5>
239248
240249 <p>To end the call, the handler should call the
241250 <tp:member-ref>Hangup</tp:member-ref> method. The
242251 <tp:member-ref>CallState</tp:member-ref> property will change to
243 <tp:type>Call_State</tp:type>_Ended and
252 <tp:value-ref type="Call_State">Ended</tp:value-ref> and
244253 <tp:member-ref>CallStateReason</tp:member-ref> will change
245254 to (self handle,
246 <tp:type>Call_State_Change_Reason</tp:type>_User_Requested,
255 <tp:value-ref type="Call_State_Change_Reason">User_Requested</tp:value-ref>,
247256 "org.freedesktop.Telepathy.Error.Cancelled").</p>
248257
249258 <p>If the other participant hangs up first then the
250259 <tp:member-ref>CallState</tp:member-ref> property will change to
251 <tp:type>Call_State</tp:type>_Ended and
260 <tp:value-ref type="Call_State">Ended</tp:value-ref> and
252261 <tp:member-ref>CallStateReason</tp:member-ref> will change
253262 to (remote contact,
254 <tp:type>Call_State_Change_Reason</tp:type>_User_Requested,
263 <tp:value-ref type="Call_State_Change_Reason">User_Requested</tp:value-ref>,
255264 "org.freedesktop.Telepathy.Error.Terminated").</p>
256265
257266 <h4>Multi-party calls</h4>
258
259 [TODO]
260
261 <h4>Call states</h4>
262
263 <p>There are many combinations of the
264 <tp:member-ref>CallState</tp:member-ref> and
265 <tp:member-ref>CallStateReason</tp:member-ref> properties which
266 mean different things. Here is a table to try to make these
267 meanings clearer:</p>
268
269 <table>
270 <tr>
271 <th rowspan="2"><tp:dbus-ref namespace="ofdT.Channel">Requested</tp:dbus-ref></th>
272 <th rowspan="2"><tp:member-ref>CallState</tp:member-ref></th>
273 <th colspan="3"><tp:member-ref>CallStateReason</tp:member-ref></th>
274 <th rowspan="2">Meaning</th>
275 </tr>
276 <tr>
277 <th>Actor</th>
278 <th>Reason</th>
279 <th>DBus_Reason</th>
280 </tr>
281 <!-- Pending_Initiator -->
282 <tr>
283 <td>True</td>
284 <td><tp:type>Call_State</tp:type>_Pending_Initiator</td>
285 <td>Self handle</td>
286 <td><tp:type>Call_State_Change_Reason</tp:type>_User_Requested</td>
287 <td>""</td>
288 <td>The outgoing call channel is waiting for the local user to call <tp:member-ref>Accept</tp:member-ref>.</td>
289 </tr>
290 <!-- Pending_Receiver -->
291 <tr>
292 <td>True</td>
293 <td><tp:type>Call_State</tp:type>_Pending_Receiver</td>
294 <td>Self handle</td>
295 <td><tp:type>Call_State_Change_Reason</tp:type>_User_Requested</td>
296 <td>""</td>
297 <td>The outgoing call is waiting for the remote contact to pick up the call.</td>
298 </tr>
299 <tr>
300 <td>False</td>
301 <td><tp:type>Call_State</tp:type>_Pending_Receiver</td>
302 <td>0</td>
303 <td><tp:type>Call_State_Change_Reason</tp:type>_Unknown</td>
304 <td>""</td>
305 <td>The incoming call is waiting for the local user to call <tp:member-ref>Accept</tp:member-ref> on the call.</td>
306 </tr>
307 <!-- Accepted -->
308 <tr>
309 <td>True</td>
310 <td><tp:type>Call_State</tp:type>_Accepted</td>
311 <td>Remote contact handle</td>
312 <td><tp:type>Call_State_Change_Reason</tp:type>_User_Requested</td>
313 <td>""</td>
314 <td>The remote contact accepted the outgoing call.</td>
315 </tr>
316 <tr>
317 <td>False</td>
318 <td><tp:type>Call_State</tp:type>_Accepted</td>
319 <td>Self handle</td>
320 <td><tp:type>Call_State_Change_Reason</tp:type>_User_Requested</td>
321 <td>""</td>
322 <td>The local user accepted the incoming call.</td>
323 </tr>
324 <!-- Ended -->
325 <tr>
326 <td>True or False</td>
327 <td><tp:type>Call_State</tp:type>_Ended</td>
328 <td>Self handle</td>
329 <td><tp:type>Call_State_Change_Reason</tp:type>_User_Requested</td>
330 <td><tp:error-ref>Cancelled</tp:error-ref></td>
331 <td>The local user hung up the incoming or outgoing call.</td>
332 </tr>
333 <tr>
334 <td>True or False</td>
335 <td><tp:type>Call_State</tp:type>_Ended</td>
336 <td>Remote contact handle</td>
337 <td><tp:type>Call_State_Change_Reason</tp:type>_User_Requested</td>
338 <td><tp:error-ref>Terminated</tp:error-ref></td>
339 <td>The remote contact hung up the incoming or outgoing call.</td>
340 </tr>
341 <tr>
342 <td>True</td>
343 <td><tp:type>Call_State</tp:type>_Ended</td>
344 <td>Remote contact handle</td>
345 <td><tp:type>Call_State_Change_Reason</tp:type>_No_Answer</td>
346 <td>""</td>
347 <td>The outgoing call was not picked up and the call ended.</td>
348 </tr>
349 <tr>
350 <td>False</td>
351 <td><tp:type>Call_State</tp:type>_Ended</td>
352 <td>Remote contact handle</td>
353 <td><tp:type>Call_State_Change_Reason</tp:type>_User_Requested</td>
354 <td><tp:error-ref>PickedUpElsewhere</tp:error-ref></td>
355 <td>The incoming call was ended because it was picked up elsewhere.</td>
356 </tr>
357 </table>
358267
359268 <h4>Requestable channel classes</h4>
360269
361270 <p>The <tp:dbus-ref
362271 namespace="ofdT.Connection.Interface.Requests">RequestableChannelClasses</tp:dbus-ref>
363272 for <tp:dbus-ref
364 namespace="ofdT.Channel.Type">Call.DRAFT</tp:dbus-ref> channels
273 namespace="ofdT.Channel.Type">Call1</tp:dbus-ref> channels
365274 can be:</p>
366275
367276 <blockquote>
368277 <pre>
369 [( Fixed = { ...<tp:dbus-ref namespace="ofdT.Channel">ChannelType</tp:dbus-ref>: ...<tp:dbus-ref namespace="ofdT.Channel.Type">Call.DRAFT</tp:dbus-ref>,
278 [( Fixed = { ...<tp:dbus-ref namespace="ofdT.Channel">ChannelType</tp:dbus-ref>: ...<tp:dbus-ref namespace="ofdT.Channel.Type">Call1</tp:dbus-ref>,
370279 ...<tp:dbus-ref namespace="ofdT.Channel">TargetHandleType</tp:dbus-ref>: Contact,
371280 ...<tp:member-ref>InitialVideo</tp:member-ref>: True
372281 },
375284 ...<tp:member-ref>InitialAudioName</tp:member-ref>
376285 ]
377286 ),
378 ( Fixed = { ...<tp:dbus-ref namespace="ofdT.Channel">ChannelType</tp:dbus-ref>: ...<tp:dbus-ref namespace="ofdT.Channel.Type">Call.DRAFT</tp:dbus-ref>,
287 ( Fixed = { ...<tp:dbus-ref namespace="ofdT.Channel">ChannelType</tp:dbus-ref>: ...<tp:dbus-ref namespace="ofdT.Channel.Type">Call1</tp:dbus-ref>,
379288 ...<tp:dbus-ref namespace="ofdT.Channel">TargetHandleType</tp:dbus-ref>: Contact,
380289 ...<tp:member-ref>InitialAudio</tp:member-ref>: True
381290 },
392301 class, and vice versa for CMs without audio support.</p>
393302
394303 <p>Handlers should not close <tp:dbus-ref
395 namespace="ofdT.Channel.Type">Call.DRAFT</tp:dbus-ref> channels
304 namespace="ofdT.Channel.Type">Call1</tp:dbus-ref> channels
396305 without first calling <tp:member-ref>Hangup</tp:member-ref> on
397306 the channel. If a Call handler crashes, the <tp:dbus-ref
398307 namespace="ofdT">ChannelDispatcher</tp:dbus-ref> will call
399308 <tp:dbus-ref namespace="ofdT.Channel">Close</tp:dbus-ref> on the
400309 channel which SHOULD also imply a call to
401 <tp:member-ref>Hangup</tp:member-ref>(<tp:type>Call_State_Change_Reason</tp:type>_User_Requested,
310 <tp:member-ref>Hangup</tp:member-ref>(<tp:value-ref type="Call_State_Change_Reason">User_Requested</tp:value-ref>,
402311 "org.freedesktop.Telepathy.Error.Terminated", "") before
403312 actually closing the channel.</p>
404313
414323 channel's <tp:dbus-ref namespace="ofdT.Channel">Requested</tp:dbus-ref>
415324 property is False, and
416325 the <tp:member-ref>CallState</tp:member-ref> is
417 <tp:type>Call_State</tp:type>_Pending_Receiver (an incoming
418 call waiting on the local user to pick up). While this is
419 the case, this method SHOULD change the
420 <tp:member-ref>CallFlags</tp:member-ref> to include
421 <tp:type>Call_Flags</tp:type>_Locally_Ringing, and notify the
326 <tp:value-ref type="Call_State">Ringing</tp:value-ref> (an incoming
327 call is ready and waiting for the user to be notified). Calling this method
328 SHOULD set <tp:member-ref>CallFlags</tp:member-ref>' bit
329 <tp:value-ref type="Call_Flags">Locally_Ringing</tp:value-ref>, and notify the
422330 remote contact that the local user has been alerted (if the
423 protocol implements this); repeated calls to this method
331 protocol supports this); repeated calls to this method
424332 SHOULD succeed, but have no further effect.</p>
425333
426334 <p>In all other states, this method SHOULD fail with the error
437345 <tp:error name="org.freedesktop.Telepathy.Error.NotAvailable">
438346 <tp:docstring>
439347 The call is no longer in state
440 <tp:type>Call_State</tp:type>_Pending_Receiver.
348 <tp:value-ref type="Call_State">Ringing</tp:value-ref>.
441349 </tp:docstring>
442350 </tp:error>
443351 </tp:possible-errors>
444352 </method>
445353
354 <method name="SetQueued" tp:name-for-bindings="Set_Queued">
355 <tp:changed version="0.21.2">renamed from Ringing</tp:changed>
356 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
357 <p>Notifies the CM that the local user is already in a call, so this
358 call has been put in a call-waiting style queue.</p>
359
360 <p>This method is only useful if the
361 channel's <tp:dbus-ref namespace="ofdT.Channel">Requested</tp:dbus-ref>
362 property is False, and
363 the <tp:member-ref>CallState</tp:member-ref> is
364 <tp:value-ref type="Call_State">Initialising</tp:value-ref> or
365 <tp:value-ref type="Call_State">Ringing</tp:value-ref>. Calling this method
366 SHOULD set <tp:member-ref>CallFlags</tp:member-ref>' bit
367 <tp:value-ref type="Call_Flags">Locally_Queued</tp:value-ref>, and notify the
368 remote contact that the call is in a queue (if the
369 protocol supports this); repeated calls to this method
370 SHOULD succeed, but have no further effect.</p>
371
372 <p>Locally_Queued is a little like Locally_Held, but applies to calls that have not
373 been Accepted (the Locally_Queued flag should be unset by the CM when Accept
374 is called). It should also be set in response to the state of the
375 world, rather than in response to user action.</p>
376 </tp:docstring>
377
378 <tp:possible-errors>
379 <tp:error name="org.freedesktop.Telepathy.Error.InvalidArgument">
380 <tp:docstring>
381 The call was <tp:dbus-ref namespace="ofdT.Channel"
382 >Requested</tp:dbus-ref>, so ringing does not make sense.
383 </tp:docstring>
384 </tp:error>
385 <tp:error name="org.freedesktop.Telepathy.Error.NotAvailable">
386 <tp:docstring>
387 The call is no longer in state
388 <tp:value-ref type="Call_State">Initialising</tp:value-ref> or _Ringing.
389 </tp:docstring>
390 </tp:error>
391 </tp:possible-errors>
392 </method>
393
446394 <method name="Accept" tp:name-for-bindings="Accept">
447395 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
448396 <p>For incoming calls in state
449 <tp:type>Call_State</tp:type>_Pending_Receiver, accept the
450 incoming call; this changes the
451 <tp:member-ref>CallState</tp:member-ref> to
452 <tp:type>Call_State</tp:type>_Accepted.</p>
397 <tp:value-ref type="Call_State">Ringing</tp:value-ref>, accept the incoming call.
398 This changes the <tp:member-ref>CallState</tp:member-ref> to
399 <tp:value-ref type="Call_State">Accepted</tp:value-ref>.</p>
453400
454401 <p>For outgoing calls in state
455 <tp:type>Call_State</tp:type>_Pending_Initiator, actually
402 <tp:value-ref type="Call_State">Pending_Initiator</tp:value-ref>, actually
456403 call the remote contact; this changes the
457404 <tp:member-ref>CallState</tp:member-ref> to
458 <tp:type>Call_State</tp:type>_Pending_Receiver.</p>
405 <tp:value-ref type="Call_State">Initialising</tp:value-ref>.</p>
459406
460407 <p>Otherwise, this method SHOULD fail with the error NotAvailable.</p>
461408
463410 client (user interface) is handling the channel.</p>
464411
465412 <p>When this method is called, for each <tp:dbus-ref
466 namespace="ofdT.Call" >Content.DRAFT</tp:dbus-ref> whose
467 <tp:dbus-ref namespace="ofdT.Call.Content.DRAFT"
413 namespace="ofdT.Call1" >Content</tp:dbus-ref> whose
414 <tp:dbus-ref namespace="ofdT.Call1.Content"
468415 >Disposition</tp:dbus-ref> is
469 <tp:type>Call_Content_Disposition</tp:type>_Initial, any
416 <tp:value-ref type="Call_Content_Disposition">Initial</tp:value-ref>, any
470417 streams where the <tp:dbus-ref
471 namespace="ofdT.Call.Stream.DRAFT">LocalSendingState</tp:dbus-ref>
472 is <tp:type>Sending_State</tp:type>_Pending_Send will be
473 moved to <tp:type>Sending_State</tp:type>_Sending as if
474 <tp:dbus-ref namespace="ofdT.Call.Stream.DRAFT"
418 namespace="ofdT.Call1.Stream">LocalSendingState</tp:dbus-ref>
419 is <tp:value-ref type="Sending_State">Pending_Send</tp:value-ref> will be
420 moved to <tp:value-ref type="Sending_State">Sending</tp:value-ref> as if
421 <tp:dbus-ref namespace="ofdT.Call1.Stream"
475422 >SetSending</tp:dbus-ref>(True) had been called.</p>
476423 </tp:docstring>
477424
530477 <method name="AddContent" tp:name-for-bindings="Add_Content">
531478 <tp:docstring>
532479 Request that a new <tp:dbus-ref
533 namespace="ofdT.Call">Content.DRAFT</tp:dbus-ref> of type
534 Content_Type is added to the Call. Handlers should check the
480 namespace="ofdT.Call1">Content</tp:dbus-ref> of type
481 Content_Type is added to the Call1. Handlers should check the
535482 value of the <tp:member-ref>MutableContents</tp:member-ref>
536483 property before trying to add another content as it might not
537484 be allowed.
568515 <tp:docstring>
569516 Path to the newly-created <tp:dbus-ref
570517 namespace="org.freedesktop.Telepathy"
571 >Call.Content.DRAFT</tp:dbus-ref> object.
518 >Call1.Content</tp:dbus-ref> object.
572519 </tp:docstring>
573520 </arg>
574521
582529 <tp:docstring>
583530 The media stream type requested is not implemented by the
584531 CM.
532 </tp:docstring>
533 </tp:error>
534 <tp:error name="org.freedesktop.Telepathy.Error.Media.UnsupportedType">
535 <tp:docstring>
536 The media stream type requested is not supported by either the
537 local or remote side.
585538 </tp:docstring>
586539 </tp:error>
587540 <tp:error name="org.freedesktop.Telepathy.Error.NotCapable">
599552 <signal name="ContentAdded"
600553 tp:name-for-bindings="Content_Added">
601554 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
602 <p>Emitted when a new <tp:dbus-ref namespace="ofdT.Call"
603 >Content.DRAFT</tp:dbus-ref> is added to the call.</p>
555 <p>Emitted when a new <tp:dbus-ref namespace="ofdT.Call1"
556 >Content</tp:dbus-ref> is added to the call.</p>
604557 </tp:docstring>
605558 <arg name="Content" type="o">
606559 <tp:docstring>
607 Path to the newly-created <tp:dbus-ref namespace="ofdT.Call"
608 >Content.DRAFT</tp:dbus-ref> object.
560 Path to the newly-created <tp:dbus-ref namespace="ofdT.Call1"
561 >Content</tp:dbus-ref> object.
609562 </tp:docstring>
610563 </arg>
611564 </signal>
612565
613566 <signal name="ContentRemoved" tp:name-for-bindings="Content_Removed">
614567 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
615 <p>Emitted when a <tp:dbus-ref namespace="ofdT.Call"
616 >Content.DRAFT</tp:dbus-ref> is removed from the call.</p>
568 <p>Emitted when a <tp:dbus-ref namespace="ofdT.Call1"
569 >Content</tp:dbus-ref> is removed from the call.</p>
617570 </tp:docstring>
618571 <arg name="Content" type="o">
619572 <tp:docstring>
620 The <tp:dbus-ref namespace="ofdT.Call"
621 >Content.DRAFT</tp:dbus-ref> which was removed.
573 The <tp:dbus-ref namespace="ofdT.Call1"
574 >Content</tp:dbus-ref> which was removed.
575 </tp:docstring>
576 </arg>
577 <arg name="Reason" type="(uuss)" tp:type="Call_State_Reason">
578 <tp:docstring>
579 Why the content was removed.
622580 </tp:docstring>
623581 </arg>
624582 </signal>
627585 tp:name-for-bindings="Contents">
628586 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
629587 <p>The list of <tp:dbus-ref
630 namespace="ofdT.Call">Content.DRAFT</tp:dbus-ref> objects that
588 namespace="ofdT.Call1">Content</tp:dbus-ref> objects that
631589 are part of this call. Change notification is via the
632590 <tp:member-ref>ContentAdded</tp:member-ref> and
633591 <tp:member-ref>ContentRemoved</tp:member-ref> signals.
642600 <p>The allowed transitions are:</p>
643601
644602 <ul>
645 <li>Pending_Initiator → Pending_Receiver (for outgoing calls,
603 <li>Pending_Initiator → Initialising (for outgoing calls,
646604 when <tp:member-ref>Accept</tp:member-ref> is called)</li>
647 <li>Pending_Receiver → Accepted (for incoming calls, when
648 <tp:member-ref>Accept</tp:member-ref> is called; for outgoing
649 calls to a contact, when the remote contact accepts the call;
650 for joining a conference call, when the local user successfully
651 joins the conference)</li>
652 <li>Accepted → Pending_Receiver (when transferred to another
653 contact)</li>
654 <li>any state → Ended (when the call is terminated normally, or
655 when an error occurs)</li>
605 <li>Initialising → Ringing (for outgoing calls, when
606 the remote client indicates that the user has been notified about
607 the call. If the network is known not to provide feedback about whether
608 the remote side is ringing, then the call should immediately be
609 set to Ringing.</li>
610 <li>Initialising → Ringing (for incoming calls, when e.g. the
611 implementation has been initialised far enough that it is sensible
612 to notify the user about the call (to reduce the probability that
613 the user will pick up the call and have it immediately fail).
614 The UI should then alert the user about the call, and call
615 <tp:member-ref>SetRinging</tp:member-ref>)</li>
616 <li>Ringing → Accepted (for outgoing calls to a contact,
617 when the remote contact accepts the call; for incoming calls, when
618 <tp:member-ref>Accept</tp:member-ref> is called.)</li>
619 <li>Accepted → Active (when the local user successfully
620 joins the call/conference, and media is known to be flowing
621 successfully; also, when temporary connection problems are
622 resolved (See below)). If the network is known not to provide
623 feedback about when the call is properly connected, the call
624 should immediately be set to Active.</li>
625 <li>Active → Accepted (when there are temporary connection problems
626 that the CM is aware of and able to recover from)</li>
627 <li>any state → Ended (when the call is terminated
628 normally, or when an error occurs that the CM is unable to recover
629 from)</li>
656630 </ul>
657631
658632 <p>Clients MAY consider unknown values from this enum to be an
660634 specification is declared to be stable.</p>
661635 </tp:docstring>
662636
663 <tp:enumvalue suffix="Unknown" value = "0">
637 <tp:enumvalue suffix="Unknown" value="0">
664638 <tp:docstring>
665639 The call state is not known. This call state MUST NOT appear as a
666640 value of the <tp:member-ref>CallState</tp:member-ref> property, but
668642 unknown.
669643 </tp:docstring>
670644 </tp:enumvalue>
671 <tp:enumvalue suffix="Pending_Initiator" value = "1">
645 <tp:enumvalue suffix="Pending_Initiator" value="1">
672646 <tp:docstring>
673647 The initiator of the call hasn't accepted the call yet. This state
674648 only makes sense for outgoing calls, where it means that the local
677651 called.
678652 </tp:docstring>
679653 </tp:enumvalue>
680 <tp:enumvalue suffix="Pending_Receiver" value = "2">
681 <tp:docstring>
682 The receiver (the contact being called) hasn't accepted the call yet.
683 </tp:docstring>
684 </tp:enumvalue>
685 <tp:enumvalue suffix="Accepted" value = "3">
686 <tp:docstring>
687 The contact being called has accepted the call.
688 </tp:docstring>
689 </tp:enumvalue>
690 <tp:enumvalue suffix="Ended" value = "4">
654 <tp:enumvalue suffix="Initialising" value="2">
655 <tp:docstring>
656 Progress has been made in placing the call, but the
657 contact has not been made aware of the call yet. This corresponds to SIP's
658 status code 183 Session Progress, and should be used for the period
659 where the CM is waiting for the streaming implementation to
660 initialise (before sending the initial INVITE or equivalent) and when the
661 outgoing call has reached a gateway or ICE negotiation is pending.
662 UIs should not produce a dialtone or start ringing if the call is in
663 this state.
664 </tp:docstring>
665 </tp:enumvalue>
666 <tp:enumvalue suffix="Ringing" value="3">
667 <tp:docstring>
668 In the outgoing case: at least one called user has been alerted
669 about the call (a SIP 180 (Ringing) packet or equivalent has been
670 received) but none have answered, so the call cannot go to Accepted
671 (use <tp:value-ref type="Call_Member_Flags">Ringing</tp:value-ref> to determine which
672 members have been informed and which haven't, if you care). UIs
673 SHOULD produce a dialtone for outgoing calls in this state.
674
675 In the incoming case, the local user should be informed of the call
676 as soon as the call reaches this state (and
677 <tp:member-ref>SetRinging</tp:member-ref> should be called
678 to inform the CM that this has happened, so that it can relay this
679 fact to the caller using a SIP 180 (Ringing) packet or equivalent).
680 </tp:docstring>
681 </tp:enumvalue>
682 <tp:enumvalue suffix="Accepted" value="4">
683 <tp:docstring>
684 The contact being called has accepted the call, but the call is not
685 in the Active state (The most common reason for this is that the
686 streaming implementation hasn't connected yet).
687 </tp:docstring>
688 </tp:enumvalue>
689 <tp:enumvalue suffix="Active" value="5">
690 <tp:docstring>
691 The contact being called has accepted the call, and discourse between
692 at least two parties should now be possible.
693 </tp:docstring>
694 </tp:enumvalue>
695 <tp:enumvalue suffix="Ended" value="6">
691696 <tp:docstring>
692697 The call has ended, either via normal termination or an error.
693698 </tp:docstring>
696701
697702 <tp:flags name="Call_Flags" value-prefix="Call_Flag" type="u">
698703 <tp:docstring>
699 A set of flags representing the status of the call as a whole,
700 providing more specific information than the
701 <tp:member-ref>CallState</tp:member-ref>. Many of these flags only make
702 sense in a particular state.
703 </tp:docstring>
704
705 <tp:flag suffix="Locally_Ringing" value="1">
706 <tp:docstring>
707 The local contact has been alerted about the call but has not
708 responded; if possible, the remote contact(s) have been informed of
709 this fact. This flag only makes sense on incoming calls in
710 state <tp:type>Call_State</tp:type>_Pending_Receiver. It SHOULD
711 be set when <tp:member-ref>SetRinging</tp:member-ref> is
712 called successfully, and unset when the state changes.
713 </tp:docstring>
714 </tp:flag>
715
716 <tp:flag suffix="Queued" value="2">
717 <tp:docstring>
718 The contact is temporarily unavailable, and the call has been placed
719 in a queue (e.g. 182 Queued in SIP, or call-waiting in telephony).
720 This flag only makes sense on outgoing 1-1 calls in
721 state <tp:type>Call_State</tp:type>_Pending_Receiver. It SHOULD be
722 set or unset according to informational messages from other
723 contacts.
724 </tp:docstring>
725 </tp:flag>
726
727 <tp:flag suffix="Locally_Held" value="4">
704 A set of flags representing additional information than is available
705 in <tp:member-ref>CallState</tp:member-ref>. Many of these flags only make
706 sense in a particular (or may explain why a call is in a specific
707 state).
708 </tp:docstring>
709 <tp:flag suffix="Locally_Held" value="1">
728710 <tp:docstring>
729711 The call has been put on hold by the local user, e.g. using
730712 the <tp:dbus-ref namespace="ofdT.Channel.Interface"
731713 >Hold</tp:dbus-ref> interface. This flag SHOULD only be set
732714 if there is at least one Content, and all Contents are
733 locally held; it makes sense on calls in state
734 <tp:type>Call_State</tp:type>_Pending_Receiver
735 or <tp:type>Call_State</tp:type>_Accepted.
715 locally held.
736716
737717 <tp:rationale>
738718 Otherwise, in transient situations where some but not all contents
740720 is on hold, which could lead to the user saying something they'll
741721 regret, while under the impression that the other contacts can't
742722 hear them!
723
724 This flag exists as a simplified proxy for <tp:dbus-ref
725 namespace="ofdT.Channel.Interface.Hold"
726 >HoldStateChanged</tp:dbus-ref>,
727 to reduce the number of signals that need to be
728 listened to by a simple UI.
743729 </tp:rationale>
744730 </tp:docstring>
745731 </tp:flag>
746732
747 <tp:flag suffix="Forwarded" value="8">
733 <tp:flag suffix="Locally_Muted" value="2">
734 <tp:docstring>
735 The call has been muted by the local user, e.g. using the
736 <tp:dbus-ref namespace="ofdT.Call1.Interface"
737 >Mute</tp:dbus-ref> interface. This flag SHOULD only
738 be set if there is at least one Content, and all Contents
739 are locally muted (for the same reason as Locally_Held).
740
741 <tp:rationale>
742 This flag exists to provide a simplified verson of <tp:dbus-ref
743 namespace="ofdT.Call1.Interface.Mute"
744 >MuteStateChanged</tp:dbus-ref>,
745 to reduce the number of signals that need to be
746 listened to by a simple UI.
747 </tp:rationale>
748 </tp:docstring>
749 </tp:flag>
750
751 <tp:flag suffix="Locally_Ringing" value="4">
752 <tp:docstring>
753 This flag exists for observability of the
754 <tp:member-ref>SetRinging</tp:member-ref> method (e.g. so that
755 loggers can tell whether the call got as far as alerting the user,
756 or whether something went wrong before then). It should be set when
757 the SetRinging is called, and unset when the call leaves
758 <tp:value-ref type="Call_State">Ringing</tp:value-ref>.
759 </tp:docstring>
760 </tp:flag>
761
762 <tp:flag suffix="Locally_Queued" value="8">
763 <tp:docstring>
764 This flag exists for observability of the
765 <tp:member-ref>SetQueued</tp:member-ref> method. It should be set
766 when the SetQueued is called, and unset when the call leaves
767 <tp:value-ref type="Call_State">Ringing</tp:value-ref>.
768 </tp:docstring>
769 </tp:flag>
770
771 <tp:flag suffix="Forwarded" value="16">
748772 <tp:docstring>
749773 The initiator of the call originally called a contact other than the
750774 current recipient of the call, but the call was then forwarded or
751 diverted. This flag only makes sense on outgoing calls, in state
752 <tp:type>Call_State</tp:type>_Pending_Receiver or
753 <tp:type>Call_State</tp:type>_Accepted. It SHOULD be set or unset
754 according to informational messages from other contacts.
755 </tp:docstring>
756 </tp:flag>
757
758 <tp:flag suffix="In_Progress" value="16">
759 <tp:docstring>
760 Progress has been made in placing the outgoing call, but the
761 contact may not have been made aware of the call yet
762 (so the Ringing state is not appropriate). This corresponds to SIP's
763 status code 183 Session Progress, and could be used when the
764 outgoing call has reached a gateway, for instance.
765 This flag only makes sense on outgoing calls in state
766 <tp:type>Call_State</tp:type>_Pending_Receiver, and SHOULD be set
767 or unset according to informational messages from servers, gateways
768 and other infrastructure.
775 diverted. This flag only makes sense on outgoing calls. It SHOULD be
776 set or unset according to informational messages from other
777 contacts.
769778 </tp:docstring>
770779 </tp:flag>
771780
786795 </tp:docstring>
787796 </tp:flag>
788797
789 <tp:flag suffix="Muted" value="64">
790 <tp:docstring>
791 The call has been muted by the local user, e.g. using the
792 <tp:dbus-ref namespace="ofdT.Call.Content.Interface"
793 >Mute.DRAFT</tp:dbus-ref> interface. This flag SHOULD only
794 be set if there is at least one Content, and all Contents
795 are locally muted; it makes sense on calls in state
796 <tp:type>Call_State</tp:type>_Pending_Receiver or
797 <tp:type>Call_State</tp:type>_Accepted.
798 </tp:docstring>
799 </tp:flag>
800798 </tp:flags>
801799
802800 <property name="CallStateDetails"
814812 <dd>An optional human-readable message sent when the call was ended,
815813 corresponding to the Message argument to the
816814 <tp:member-ref>Hangup</tp:member-ref> method. This is only
817 applicable when the call state is <tp:type>Call_State</tp:type>_Ended.
815 applicable when the call state is <tp:value-ref type="Call_State">Ended</tp:value-ref>.
818816 <tp:rationale>
819817 XMPP Jingle can send such messages.
820818 </tp:rationale>
823821 <dt>queue-message - s</dt>
824822 <dd>An optional human-readable message sent when the local contact
825823 is being held in a queue. This is only applicable when
826 <tp:type>Call_Flags</tp:type>_Queued is in the call flags.
824 <tp:value-ref type="Call_Flags">Locally_Queued</tp:value-ref> is in the call flags.
827825 <tp:rationale>
828826 SIP 182 notifications can have human-readable messages attached.
829827 </tp:rationale>
834832 <tp:member-ref>CallStateReason</tp:member-ref>. This will not
835833 normally be localized or suitable for display to users, and is only
836834 applicable when the call state is
837 <tp:type>Call_State</tp:type>_Ended.</dd>
835 <tp:value-ref type="Call_State">Ended</tp:value-ref>.</dd>
838836
839837 <dt>balance-required - i</dt>
840838 <dd>Optionally included when a call cannot be connected because
897895 </tp:docstring>
898896 </tp:enumvalue>
899897
900 <tp:enumvalue suffix="User_Requested" value="1">
898 <tp:enumvalue suffix="Progress_Made" value="1">
899 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
900 Situation normal. Progress has been made in the setup/teardown of
901 the call (and it didn't require any user interaction).
902 </tp:docstring>
903 </tp:enumvalue>
904
905 <tp:enumvalue suffix="User_Requested" value="2">
901906 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
902907 <p>The change was requested by the contact indicated by the Actor
903908 member of a <tp:type>Call_State_Reason</tp:type> struct.</p>
912917 </tp:docstring>
913918 </tp:enumvalue>
914919
915 <tp:enumvalue suffix="Forwarded" value="2">
920 <tp:enumvalue suffix="Forwarded" value="3">
916921 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
917922 <p>The call was forwarded. If known, the handle of the contact
918923 the call was forwarded to will be indicated by the Actor member
920925 </tp:docstring>
921926 </tp:enumvalue>
922927
923 <tp:enumvalue suffix="No_Answer" value="3">
928 <tp:enumvalue suffix="Rejected" value="4">
924929 <tp:added version="0.21.2"/>
925930 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
926931 <p>The <tp:member-ref>CallState</tp:member-ref> changed from
927 <tp:type>Call_State</tp:type>_Pending_Receiver to
928 <tp:type>Call_State</tp:type>_Ended because the initiator
932 <tp:value-ref type="Call_State">Ringing</tp:value-ref> or
933 <tp:value-ref type="Call_State">Ended</tp:value-ref> (or a content's direction
934 changed) because it was rejected by the remote user.</p>
935 <p>Corresponds to <tp:error-ref>Rejected</tp:error-ref></p>
936 </tp:docstring>
937 </tp:enumvalue>
938
939 <tp:enumvalue suffix="No_Answer" value="5">
940 <tp:added version="0.21.2"/>
941 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
942 <p>The <tp:member-ref>CallState</tp:member-ref> changed from
943 <tp:value-ref type="Call_State">Ringing</tp:value-ref> or
944 <tp:value-ref type="Call_State">Ended</tp:value-ref> because the initiator
929945 ended the call before the receiver accepted it. With an
930946 incoming call this state change reason signifies a missed
931 call.</p>
947 call, or one that was picked up elsewhere before it was
948 picked up here.</p>
949 <p>Corresponds to <tp:error-ref>NoAnswer</tp:error-ref> or
950 <tp:error-ref>PickedUpElsewhere</tp:error-ref></p>
951 </tp:docstring>
952 </tp:enumvalue>
953
954 <tp:enumvalue suffix="Invalid_Contact" value="6">
955 <tp:added version="0.21.2"/>
956 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
957 <p>The <tp:member-ref>CallState</tp:member-ref> changed because one
958 of the addresses does not exist on the network.</p>
959 <p>Corresponds to <tp:error-ref>DoesNotExist</tp:error-ref></p>
960 </tp:docstring>
961 </tp:enumvalue>
962
963 <tp:enumvalue suffix="Permission_Denied" value="7">
964 <tp:added version="0.21.2"/>
965 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
966 <p>The <tp:member-ref>CallState</tp:member-ref> changed because the
967 local user is not authorised.</p>
968 <p>Corresponds to <tp:error-ref>PermissionDenied</tp:error-ref> or
969 <tp:error-ref>InsufficientBalance</tp:error-ref>
970 </p>
971 </tp:docstring>
972 </tp:enumvalue>
973
974 <tp:enumvalue suffix="Busy" value="8">
975 <tp:added version="0.21.2"/>
976 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
977 <p>The <tp:member-ref>CallState</tp:member-ref> changed from
978 <tp:value-ref type="Call_State">Ringing</tp:value-ref>
979 <tp:value-ref type="Call_State">Ended</tp:value-ref> because the receiver is busy
980 (e.g. is already engaged in another call, and has not placed the
981 initiator in a call-waiting queue).</p>
982 <p>Corresponds to <tp:error-ref>Busy</tp:error-ref></p>
983 </tp:docstring>
984 </tp:enumvalue>
985
986 <tp:enumvalue suffix="Internal_Error" value="9">
987 <tp:added version="0.21.2"/>
988 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
989 <p>There has been an unexpected error in either the CM or some other
990 local component.</p>
991 <p>Corresponds to <tp:error-ref>Confused</tp:error-ref> or
992 <tp:error-ref>Media.StreamingError</tp:error-ref>
993 </p>
994 </tp:docstring>
995 </tp:enumvalue>
996
997 <tp:enumvalue suffix="Service_Error" value="10">
998 <tp:added version="0.21.2"/>
999 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
1000 <p>There has been an unexpected error in the server or some other
1001 remote component.</p>
1002 <p>Corresponds to
1003 <tp:error-ref>ServiceConfused</tp:error-ref>
1004 </p>
1005 </tp:docstring>
1006 </tp:enumvalue>
1007
1008 <tp:enumvalue suffix="Network_Error" value="11">
1009 <tp:added version="0.21.2"/>
1010 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
1011 <p>There has been a network error related to the CM or the
1012 signalling part of the call (compare and contrast:
1013 Streaming_Error).</p>
1014 <p>Corresponds to
1015 <tp:error-ref>NetworkError</tp:error-ref></p>
1016 </tp:docstring>
1017 </tp:enumvalue>
1018
1019 <tp:enumvalue suffix="Media_Error" value="12">
1020 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
1021 <p>Some aspect of the content is unsupported so has to be
1022 removed from the call.</p>
1023 <p>Corresponds to <tp:error-ref>Media.UnsupportedType</tp:error-ref>
1024 or <tp:error-ref>Media.CodecsIncompatible</tp:error-ref>
1025 </p>
1026 </tp:docstring>
1027 </tp:enumvalue>
1028
1029 <tp:enumvalue suffix="Connectivity_Error" value="13">
1030 <tp:docstring>
1031 <p>It was not possible for the streaming implementation to connect
1032 to any of the users participating in this call or content.</p>
1033 <p>Corresponds to <tp:error-ref>ConnectionFailed</tp:error-ref> or
1034 <tp:error-ref>ConnectionLost</tp:error-ref></p>
9321035 </tp:docstring>
9331036 </tp:enumvalue>
9341037 </tp:enum>
9511054 <tp:docstring>
9521055 The reason, chosen from a limited set of possibilities defined by
9531056 the Telepathy specification. If
954 <tp:type>Call_State_Change_Reason</tp:type>_User_Requested then
1057 <tp:value-ref type="Call_State_Change_Reason">User_Requested</tp:value-ref> then
9551058 the Actor member will dictate whether it was the local user or
9561059 a remote contact responsible.
9571060 </tp:docstring>
9771080 </tp:rationale>
9781081 </tp:docstring>
9791082 </tp:member>
1083
1084 <tp:member type="s" name="Message">
1085 <tp:docstring>
1086 An optional debug message, to expediate debugging the potentially
1087 many processes involved in a call. This may be communicated across
1088 the network in protocols that support doing so, but it is not
1089 essential.
1090 </tp:docstring>
1091 </tp:member>
9801092 </tp:struct>
9811093
9821094 <property name="CallStateReason" tp:name-for-bindings="Call_State_Reason"
983 type="(uus)" access="read" tp:type="Call_State_Reason">
1095 type="(uuss)" access="read" tp:type="Call_State_Reason">
9841096 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
9851097 <p>The reason for the last change to the
9861098 <tp:member-ref>CallState</tp:member-ref> and/or
10141126 </tp:docstring>
10151127 </arg>
10161128
1017 <arg name="Call_State_Reason" type="(uus)" tp:type="Call_State_Reason">
1129 <arg name="Call_State_Reason" type="(uuss)" tp:type="Call_State_Reason">
10181130 <tp:docstring>
10191131 The new value of the <tp:member-ref>CallStateReason</tp:member-ref>
10201132 property.
10441156
10451157 <p>If this is False, the handler is responsible for doing the actual
10461158 media streaming for at least some contents itself. Those contents
1047 will have the <tp:dbus-ref namespace="ofdT.Call.Content.Interface"
1048 >Media.DRAFT</tp:dbus-ref> interface, to communicate the necessary
1159 will have the <tp:dbus-ref namespace="ofdT.Call1.Content.Interface"
1160 >Media</tp:dbus-ref> interface, to communicate the necessary
10491161 information to a streaming implementation. Connection managers SHOULD
10501162 operate like this, if possible.</p>
10511163
10761188 </tp:rationale>
10771189 </tp:docstring>
10781190
1079 <tp:flag suffix="Ringing" value = "1">
1191 <tp:flag suffix="Ringing" value="1">
10801192 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
10811193 <p>The remote contact's client has told us that the contact has been
10821194 alerted about the call but has not responded.</p>
10891201 </tp:docstring>
10901202 </tp:flag>
10911203
1092 <tp:flag suffix="Held" value = "2">
1204 <tp:flag suffix="Held" value="2">
10931205 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
10941206 <p>The call member has put this call on hold.</p>
10951207
11011213 </tp:docstring>
11021214 </tp:flag>
11031215
1104 <tp:flag suffix="Conference_Host" value="4">
1216 <tp:flag suffix="Muted" value="4">
1217 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
1218 <p>The call member has muted their participation in this call. Note
1219 that many protocols will not signal this flag, so clients should
1220 not rely on it being set.</p>
1221
1222 <tp:rationale>
1223 <p>This is a flag per member, not a flag for the call as a whole,
1224 because in conference calls, any member could mute their own
1225 streams.</p>
1226 </tp:rationale>
1227 </tp:docstring>
1228 </tp:flag>
1229
1230 <tp:flag suffix="Conference_Host" value="8">
11051231 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
11061232 This contact has merged this call into a conference. Note that GSM
11071233 provides a notification when the remote party merges a call into a
11451271 from <tp:member-ref>CallMembers</tp:member-ref>.
11461272 </tp:docstring>
11471273 </arg>
1274 <arg name="Reason" type="(uuss)" tp:type="Call_State_Reason">
1275 <tp:docstring>
1276 A structured reason for the change.
1277 </tp:docstring>
1278 </arg>
11481279 </signal>
11491280
11501281 <property name="CallMembers" tp:name-for-bindings="Call_Members"
11751306 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
11761307 <p>If set on a requested channel, this indicates the transport that
11771308 should be used for this call. Where not applicable, this property
1178 is defined to be <tp:type>Stream_Transport_Type</tp:type>_Unknown,
1309 is defined to be <tp:value-ref type="Stream_Transport_Type">Unknown</tp:value-ref>,
11791310 in particular, on CMs with hardware streaming.</p>
11801311
11811312 <tp:rationale>
11941325 the connection manager should immediately attempt to establish an
11951326 audio stream to the remote contact, making it unnecessary for the
11961327 client to call <tp:dbus-ref
1197 namespace="ofdT.Channel.Type.Call.DRAFT">AddContent</tp:dbus-ref>.</p>
1328 namespace="ofdT.Channel.Type.Call1">AddContent</tp:dbus-ref>.</p>
11981329
11991330 <p>If this property, or InitialVideo, is passed to EnsureChannel
12001331 (as opposed to CreateChannel), the connection manager SHOULD ignore
12091340 <p>If True on an unrequested (incoming) channel, this indicates that
12101341 the remote contact initially requested an audio stream; this does
12111342 not imply that that audio stream is still active (as indicated by
1212 <tp:dbus-ref namespace="ofdT.Channel.Type.Call.DRAFT"
1343 <tp:dbus-ref namespace="ofdT.Channel.Type.Call1"
12131344 >Contents</tp:dbus-ref>).</p>
12141345
12151346 <p>The name of this new content can be decided by using the
13301461 must be requested at the start of the call if video is desired.
13311462 User interfaces may use this pseudo-capability as a hint to
13321463 display separate "Audio call" and "Video call" buttons, rather
1333 than a single "Call" button with the option to add and remove
1464 than a single "Call1" button with the option to add and remove
13341465 video once the call has started for contacts without this flag.
13351466 </p>
13361467 </tp:rationale>
13521483 <tp:hct name="gtalk-p2p">
13531484 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
13541485 <p>The client can implement streaming for streams whose <tp:dbus-ref
1355 namespace="ofdT.Call.Stream.Interface.Media.DRAFT">Transport</tp:dbus-ref>
1356 property is <tp:type>Stream_Transport_Type</tp:type>_GTalk_P2P.</p>
1486 namespace="ofdT.Call1.Stream.Interface.Media">Transport</tp:dbus-ref>
1487 property is <tp:value-ref type="Stream_Transport_Type">GTalk_P2P</tp:value-ref>.</p>
13571488 </tp:docstring>
13581489 </tp:hct>
13591490
13601491 <tp:hct name="ice">
13611492 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
13621493 <p>The client can implement streaming for streams whose <tp:dbus-ref
1363 namespace="ofdT.Call.Stream.Interface.Media.DRAFT">Transport</tp:dbus-ref>
1364 property is <tp:type>Stream_Transport_Type</tp:type>_ICE.</p>
1494 namespace="ofdT.Call1.Stream.Interface.Media">Transport</tp:dbus-ref>
1495 property is <tp:value-ref type="Stream_Transport_Type">ICE</tp:value-ref>.</p>
13651496 </tp:docstring>
13661497 </tp:hct>
13671498
13681499 <tp:hct name="wlm-2009">
13691500 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
13701501 <p>The client can implement streaming for streams whose <tp:dbus-ref
1371 namespace="ofdT.Call.Stream.Interface.Media.DRAFT">Transport</tp:dbus-ref>
1372 property is <tp:type>Stream_Transport_Type</tp:type>_WLM_2009.</p>
1502 namespace="ofdT.Call1.Stream.Interface.Media">Transport</tp:dbus-ref>
1503 property is <tp:value-ref type="Stream_Transport_Type">WLM_2009</tp:value-ref>.</p>
13731504 </tp:docstring>
13741505 </tp:hct>
13751506
13761507 <tp:hct name="shm">
13771508 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
13781509 <p>The client can implement streaming for streams whose <tp:dbus-ref
1379 namespace="ofdT.Call.Stream.Interface.Media.DRAFT">Transport</tp:dbus-ref>
1380 property is <tp:type>Stream_Transport_Type</tp:type>_SHM.</p>
1510 namespace="ofdT.Call1.Stream.Interface.Media">Transport</tp:dbus-ref>
1511 property is <tp:value-ref type="Stream_Transport_Type">SHM</tp:value-ref>.</p>
13811512 </tp:docstring>
13821513 </tp:hct>
13831514
14121543 property:</p>
14131544
14141545 <ul>
1415 <li><code>org.freedesktop.Telepathy.Channel.Type.Call.DRAFT/audio</code></li>
1416 <li><code>org.freedesktop.Telepathy.Channel.Type.Call.DRAFT/audio/speex</code></li>
1417 <li><code>org.freedesktop.Telepathy.Channel.Type.Call.DRAFT/video</code></li>
1418 <li><code>org.freedesktop.Telepathy.Channel.Type.Call.DRAFT/video/theora</code></li>
1419 <li><code>org.freedesktop.Telepathy.Channel.Type.Call.DRAFT/video/h264</code></li>
1546 <li><code>org.freedesktop.Telepathy.Channel.Type.Call1/audio</code></li>
1547 <li><code>org.freedesktop.Telepathy.Channel.Type.Call1/audio/speex</code></li>
1548 <li><code>org.freedesktop.Telepathy.Channel.Type.Call1/video</code></li>
1549 <li><code>org.freedesktop.Telepathy.Channel.Type.Call1/video/theora</code></li>
1550 <li><code>org.freedesktop.Telepathy.Channel.Type.Call1/video/h264</code></li>
14201551 </ul>
14211552
14221553 <p>Clients MAY have media signalling abilities without explicitly
9595 </property>
9696
9797 <property name="ContentType" type="s" access="read"
98 tp:name-for-bindings="Content_Type">
98 tp:name-for-bindings="Content_Type" tp:immutable="yes" tp:requestable="yes">
9999 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
100100 <p>The file's MIME type. This cannot change once the channel has
101101 been created.</p>
108108 </property>
109109
110110 <property name="Filename" type="s" access="read"
111 tp:name-for-bindings="Filename">
111 tp:name-for-bindings="Filename" tp:immutable="yes" tp:requestable="yes">
112112 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
113113 <p>The name of the file on the sender's side. This is therefore given
114114 as a suggested filename for the receiver. This cannot change
125125 </property>
126126
127127 <property name="Size" type="t" access="read"
128 tp:name-for-bindings="Size">
128 tp:name-for-bindings="Size" tp:immutable="yes" tp:requestable="yes">
129129 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
130130 <p>The size of the file. If this property is set, then the file
131131 transfer is guaranteed to be this size. This cannot change once
144144 </property>
145145
146146 <property name="ContentHashType" type="u" tp:type="File_Hash_Type"
147 access="read" tp:name-for-bindings="Content_Hash_Type">
147 access="read" tp:name-for-bindings="Content_Hash_Type" tp:immutable="yes"
148 tp:requestable="yes">
148149 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
149150 <p>The type of the <tp:member-ref>ContentHash</tp:member-ref> property.</p>
150151
167168 </property>
168169
169170 <property name="ContentHash" type="s" access="read"
170 tp:name-for-bindings="Content_Hash">
171 tp:name-for-bindings="Content_Hash" tp:immutable="yes"
172 tp:requestable="yes">
171173 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
172174 <p>Hash of the contents of the file transfer, of type described
173175 in the value of the <tp:member-ref>ContentHashType</tp:member-ref>
183185 </property>
184186
185187 <property name="Description" type="s" access="read"
186 tp:name-for-bindings="Description">
188 tp:name-for-bindings="Description" tp:immutable="yes" tp:requestable="yes">
187189 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
188190 <p>Description of the file transfer. This cannot change once the
189191 channel has been created.</p>
196198 </property>
197199
198200 <property name="Date" type="x" access="read"
199 tp:type="Unix_Timestamp64" tp:name-for-bindings="Date">
201 tp:type="Unix_Timestamp64" tp:name-for-bindings="Date" tp:immutable="yes"
202 tp:requestable="yes">
200203 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
201204 <p>The last modification time of the file being transferred. This
202205 cannot change once the channel has been created</p>
209212
210213 <property name="AvailableSocketTypes" type="a{uau}"
211214 tp:type="Supported_Socket_Map" access="read"
212 tp:name-for-bindings="Available_Socket_Types">
215 tp:name-for-bindings="Available_Socket_Types"
216 tp:immutable="yes" tp:requestable="yes">
213217 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
214218 <p>A mapping from address types (members of Socket_Address_Type) to
215219 arrays of access-control type (members of Socket_Access_Control)
242246 </property>
243247
244248 <property name="InitialOffset" type="t" access="read"
245 tp:name-for-bindings="Initial_Offset">
249 tp:name-for-bindings="Initial_Offset" tp:requestable="yes">
246250 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
247251 <p>The offset in bytes from where the file should be sent. This MUST
248252 be respected by both the receiver and the sender after the state
275279
276280 <p>For incoming file transfers, this property MAY be set by the channel
277281 handler before calling <tp:member-ref>AcceptFile</tp:member-ref> to
278 inform observers where the incoming file will be saved.
282 inform observers where the incoming file will be saved. If set by an
283 approver, the handler MUST save the file to that location.
279284 Setting this property once <tp:member-ref>AcceptFile</tp:member-ref>
280285 has been called MUST fail. Once this property has been set
281286 <tp:member-ref>URIDefined</tp:member-ref> is emitted.</p>
8585 <dt>subject (s)</dt>
8686 <dd>The current subject of conversation in the room (as would
8787 be returned by getting the string part of the <tp:dbus-ref
88 namespace="org.freedesktop.Telepathy.Channel.Interface.Room.DRAFT"
88 namespace="org.freedesktop.Telepathy.Channel.Interface.Subject2"
8989 >Subject</tp:dbus-ref> property)</dd>
9090
9191 <dt>members (u)</dt>
100100 <dt>room-id (s)</dt>
101101 <dd>The human-readable identifier of a chat room (as would be
102102 returned by getting the <tp:dbus-ref
103 namespace="org.freedesktop.Telepathy.Channel.Interface.Room.DRAFT"
104 >RoomID</tp:dbus-ref> property)</dd>
103 namespace="org.freedesktop.Telepathy.Channel.Interface.Room2"
104 >RoomName</tp:dbus-ref> property)</dd>
105105
106106 <dt>server (s)</dt>
107107 <dd>The DNS name of the server hosting these channels (as would be
108108 returned by getting the <tp:dbus-ref
109 namespace="org.freedesktop.Telepathy.Channel.Interface.Room.DRAFT"
109 namespace="org.freedesktop.Telepathy.Channel.Interface.Room2"
110110 >Server</tp:dbus-ref> property)</dd>
111111 </dl>
112112 </tp:docstring>
2323 interface="org.freedesktop.Telepathy.Channel.Interface.Messages"/>
2424 <tp:changed version="0.21.5">The Messages interface is now
2525 mandatory</tp:changed>
26 <tp:changed version="0.24.0">This interface used to have a bunch of
27 clunky <tp:dbus-ref
28 namespace='org.freedesktop'>Telepathy.Properties</tp:dbus-ref>. They have
29 been removed in favour of D-Bus properties on the <tp:dbus-ref
30 namespace='ofdT.Channel.Interface'>Room2</tp:dbus-ref>, <tp:dbus-ref
31 namespace='ofdT.Channel.Interface'>Subject2</tp:dbus-ref> and
32 <tp:dbus-ref namespace='ofdT.Channel.Interface'>RoomConfig1</tp:dbus-ref>
33 interfaces.</tp:changed>
2634
2735 <tp:simple-type name="Message_ID" type="u" array-name="Message_ID_List">
2836 <tp:docstring>
429437 </tp:flag>
430438 </tp:flags>
431439
432 <tp:property name="anonymous" type="b">
433 <tp:docstring>
434 True if people may join the channel without other members being made
435 aware of their identity.
436 </tp:docstring>
437 </tp:property>
438 <tp:property name="invite-only" type="b">
439 <tp:docstring>
440 True if people may not join the channel until they have been invited.
441 </tp:docstring>
442 </tp:property>
443 <tp:property name="limit" type="u">
444 <tp:docstring>
445 The limit to the number of members, if limited is true.
446 </tp:docstring>
447 </tp:property>
448 <tp:property name="limited" type="b">
449 <tp:docstring>
450 True if there is a limit to the number of channel members.
451 </tp:docstring>
452 </tp:property>
453 <tp:property name="moderated" type="b">
454 <tp:docstring>
455 True if channel membership is not sufficient to allow participation.
456 </tp:docstring>
457 </tp:property>
458 <tp:property name="name" type="s">
459 <tp:docstring>
460 A human-visible name for the channel, if it differs from the channel's
461 <tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref>.
462 </tp:docstring>
463 </tp:property>
464 <tp:property name="description" type="s">
465 <tp:docstring>
466 A human-readable description of the channel's overall purpose.
467 </tp:docstring>
468 </tp:property>
469 <tp:property name="password" type="s">
470 <tp:docstring>
471 The password required to enter the channel if password-required is true.
472 </tp:docstring>
473 </tp:property>
474 <tp:property name="password-required" type="b">
475 <tp:docstring>
476 True if a password must be provided to enter the channel.
477 </tp:docstring>
478 </tp:property>
479 <tp:property name="persistent" type="b">
480 <tp:docstring>
481 True if the channel will remain in existence on the server after all
482 members have left it.
483 </tp:docstring>
484 </tp:property>
485 <tp:property name="private" type="b">
486 <tp:docstring>
487 True if the channel is not visible to non-members.
488 </tp:docstring>
489 </tp:property>
490 <tp:property name="subject" type="s">
491 <tp:docstring>
492 A human-readable description of the current subject of conversation in
493 the channel, similar to /topic in IRC. This is equivalent to the
494 <tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Interface.Room.DRAFT"
495 >Subject</tp:dbus-ref> property in the Room interface which will replace
496 this Telepathy property.
497 </tp:docstring>
498 </tp:property>
499 <tp:property name="subject-contact" type="u" tp:type="Contact_Handle">
500 <tp:docstring>
501 A contact handle representing who last modified the subject, or 0
502 if it isn't known. This is equivalent to the
503 <tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Interface.Room.DRAFT"
504 >Subject</tp:dbus-ref> property in the Room interface which will replace
505 this Telepathy property.
506 </tp:docstring>
507 </tp:property>
508 <tp:property name="subject-timestamp" type="u" tp:type="Unix_Timestamp">
509 <tp:docstring>
510 A unix timestamp indicating when the subject was last modified.
511 This is equivalent to the
512 <tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Interface.Room.DRAFT"
513 >Subject</tp:dbus-ref> property in the Room interface which will replace
514 this Telepathy property.
515 </tp:docstring>
516 </tp:property>
517
518440 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
519441 <p>A channel type for sending and receiving messages. This channel type
520442 is primarily used for textual messages, but can also be used for
554476 <p>Simple one-to-one chats (such as streams of private messages in
555477 XMPP or IRC) should be represented by a Text channel whose
556478 <tp:dbus-ref namespace="ofdT.Channel">TargetHandleType</tp:dbus-ref>
557 is <tp:type>Handle_Type</tp:type>_Contact. The expected way to
558 request such a channel is to set the ChannelType, TargetHandleType,
559 and either TargetHandle or TargetID in a call to EnsureChannel.</p>
479 is <tp:value-ref type="Handle_Type">Contact</tp:value-ref>. The
480 expected way to request such a channel is to set the <tp:dbus-ref
481 namespace='ofdT.Channel'>ChannelType</tp:dbus-ref>, <tp:dbus-ref
482 namespace='ofdT.Channel'>TargetHandleType</tp:dbus-ref>,
483 and either <tp:dbus-ref
484 namespace='ofdT.Channel'>TargetHandle</tp:dbus-ref> or <tp:dbus-ref
485 namespace='ofdT.Channel'>TargetID</tp:dbus-ref> in a call to
486 <tp:dbus-ref
487 namespace='ofdT.ChannelDispatcher'>EnsureChannel</tp:dbus-ref>.</p>
560488
561489 <p>Named chat rooms whose identity can be saved and used again later
562490 (IRC channels, Jabber MUCs) are expected to be represented by Text
563 channels with <tp:type>Handle_Type</tp:type>_Room and the <tp:dbus-ref
564 namespace="ofdT.Channel.Interface">Group</tp:dbus-ref>
491 channels with <tp:dbus-ref
492 namespace="ofdT.Channel">TargetHandleType</tp:dbus-ref> =
493 <tp:value-ref type="Handle_Type">Room</tp:value-ref> and the
494 <tp:dbus-ref namespace="ofdT.Channel.Interface">Group</tp:dbus-ref>
565495 interface. In protocols where a chatroom can be used as a continuation
566496 of one or more one-to-one chats, these channels should also have the
567497 <tp:dbus-ref namespace="ofdT.Channel.Interface">Conference</tp:dbus-ref>
570500 <p>Unnamed, transient chat rooms which cannot be rejoined by their
571501 unique identifier (e.g. a conversation on MSN which has, or once had,
572502 three or more participants) are expected to be represented by Text
573 channels with Handle_Type_None (and hence TargetHandle 0), the
503 channels with <tp:dbus-ref
504 namespace="ofdT.Channel">TargetHandleType</tp:dbus-ref> = <tp:value-ref
505 type="Handle_Type">None</tp:value-ref> (and hence <tp:dbus-ref
506 namespace="ofdT.Channel">TargetHandle</tp:dbus-ref> = 0),
574507 <tp:dbus-ref namespace="ofdT.Channel.Interface">Group</tp:dbus-ref>
575508 interface, and optionally the
576509 <tp:dbus-ref namespace="ofdT.Channel.Interface">Conference</tp:dbus-ref>
579512 <p>On protocols like MSN where a conversation with a user is actually
580513 just a nameless chat room starting with exactly two members, to which
581514 more members can be invited, the initial one-to-one conversation
582 SHOULD be represented with Handle_Type_Contact. If a third participant
515 SHOULD be represented with <tp:dbus-ref
516 namespace="ofdT.Channel">TargetHandleType</tp:dbus-ref> =
517 <tp:value-ref type="Handle_Type">Contact</tp:value-ref>. If a third
518 participant
583519 joins or is invited, this SHOULD be represented by signalling
584520 a new <tp:dbus-ref
585521 namespace="ofdT.Channel.Interface">Conference</tp:dbus-ref> channel
605541 <tp:dbus-ref
606542 namespace="ofdT.Connection.Interface.Requests">NewChannels</tp:dbus-ref>
607543 signal. The new channel should resemble the old channel, but have
608 Requested = FALSE regardless of its previous value; the InitiatorHandle
609 and InitiatorID should correspond to the sender of one of the pending
544 <tp:dbus-ref namespace='ofdT.Channel'>Requested</tp:dbus-ref> = FALSE
545 regardless of its previous value; the <tp:dbus-ref
546 namespace='ofdT.Channel'>InitiatorHandle</tp:dbus-ref>
547 and <tp:dbus-ref namespace='ofdT.Channel'>InitiatorID</tp:dbus-ref>
548 should correspond to the sender of one of the pending
610549 messages.</p>
611550
612551 <tp:rationale>
662601 eventually need a distinction between Close and Destroy.</p>
663602 </tp:rationale>
664603
604 <p>Opaquely-named rejoinable chatrooms (such as Skype rooms) are
605 represented using the properties in the <tp:dbus-ref
606 namespace="ofdT.Channel.Interface">Room2</tp:dbus-ref>
607 interface. Instructions and examples of how to request
608 such channels are given in said interface's description.</p>
609
665610 </tp:docstring>
666611 </interface>
667612 </node>
9191 the group with the self handle as the actor, and
9292 <tp:type>Channel_Group_Change_Reason</tp:type> <code>No_Answer</code> or
9393 <code>Busy</code>, as appropriate. For <tp:dbus-ref
94 namespace='ofdT.Channel.Type'>Call.DRAFT</tp:dbus-ref> channels, the
94 namespace='ofdT.Channel.Type'>Call1</tp:dbus-ref> channels, the
9595 <tp:type>Call_State_Change_Reason</tp:type> <code>Forwarded</code>
9696 should be used.</p>
9797 </tp:docstring>
88 Account_Manager_Interface_Hidden.xml \
99 Authentication_TLS_Certificate.xml \
1010 Call_Content.xml \
11 Call_Content_Codec_Offer.xml \
1211 Call_Content_Interface_Media.xml \
13 Call_Content_Interface_Mute.xml \
1412 Call_Content_Interface_Video_Control.xml \
13 Call_Content_Media_Description.xml \
14 Call_Content_Media_Description_Interface_RTCP_Extended_Reports.xml \
15 Call_Content_Media_Description_Interface_RTCP_Feedback.xml \
16 Call_Content_Media_Description_Interface_RTP_Header_Extensions.xml \
17 Call_Interface_Mute.xml \
1518 Call_Stream.xml \
1619 Call_Stream_Endpoint.xml \
1720 Call_Stream_Interface_Media.xml \
3740 Channel_Interface_Messages.xml \
3841 Channel_Interface_Password.xml \
3942 Channel_Interface_Room.xml \
43 Channel_Interface_Room_Config.xml \
4044 Channel_Interface_SASL_Authentication.xml \
4145 Channel_Interface_SMS.xml \
4246 Channel_Interface_Securable.xml \
4347 Channel_Interface_Service_Point.xml \
4448 Channel_Interface_Splittable.xml \
49 Channel_Interface_Subject.xml \
4550 Channel_Interface_Transfer.xml \
4651 Channel_Interface_Tube.xml \
4752 Channel_Request.xml \
101101 GLIB_MKENUMS = @GLIB_MKENUMS@
102102 GREP = @GREP@
103103 GTKDOC_CHECK = @GTKDOC_CHECK@
104 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
105 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
104106 GTKDOC_MKPDF = @GTKDOC_MKPDF@
105107 GTKDOC_REBASE = @GTKDOC_REBASE@
106108 HAVE_VALA = @HAVE_VALA@
231233 Account_Manager_Interface_Hidden.xml \
232234 Authentication_TLS_Certificate.xml \
233235 Call_Content.xml \
234 Call_Content_Codec_Offer.xml \
235236 Call_Content_Interface_Media.xml \
236 Call_Content_Interface_Mute.xml \
237237 Call_Content_Interface_Video_Control.xml \
238 Call_Content_Media_Description.xml \
239 Call_Content_Media_Description_Interface_RTCP_Extended_Reports.xml \
240 Call_Content_Media_Description_Interface_RTCP_Feedback.xml \
241 Call_Content_Media_Description_Interface_RTP_Header_Extensions.xml \
242 Call_Interface_Mute.xml \
238243 Call_Stream.xml \
239244 Call_Stream_Endpoint.xml \
240245 Call_Stream_Interface_Media.xml \
260265 Channel_Interface_Messages.xml \
261266 Channel_Interface_Password.xml \
262267 Channel_Interface_Room.xml \
268 Channel_Interface_Room_Config.xml \
263269 Channel_Interface_SASL_Authentication.xml \
264270 Channel_Interface_SMS.xml \
265271 Channel_Interface_Securable.xml \
266272 Channel_Interface_Service_Point.xml \
267273 Channel_Interface_Splittable.xml \
274 Channel_Interface_Subject.xml \
268275 Channel_Interface_Transfer.xml \
269276 Channel_Interface_Tube.xml \
270277 Channel_Request.xml \
722722
723723 <tp:struct name="RTCP_Feedback_Message_Properties">
724724 <tp:added version="0.22.1"/>
725 <tp:changed version="0.23.4">This struct is also used by Call, but
726 in call, the CM should know about RTP profiles, and never use MAXUINT
727 as a default value, because it complicates things unnecessarily.
728 </tp:changed>
725729 <tp:member type="u" name="RTCPMinimumInterval">
726730 <tp:docstring>
727731 The minimum interval between two regular RTCP packets in
728732 milliseconds for this content. If no special value is desired, one
729733 should put MAXUINT (0xFFFFFFFF).
734
735 Implementors and users of Call's <tp:dbus-ref
736 namespace="ofdT.Call1.Content.MediaDescription.Interface"
737 >RTCPFeedback</tp:dbus-ref> should not use the MAXUINT default.
738 Instead, in RTP/AVP, the default should be 5000 (5 seconds).
739 If using the RTP/AVPF profile, it can be set to a lower value,
740 the default being 0.
730741 </tp:docstring>
731742 </tp:member>
732743 <tp:member type="a(sss)" tp:type="RTCP_Feedback_Message[]"
1818 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</p>
1919 </tp:license>
2020 <interface name="org.freedesktop.Telepathy.Properties">
21 <tp:deprecated version="0.24.0">All uses of this interface have been
22 expunged, and it may now be laid to rest.</tp:deprecated>
2123
2224 <tp:struct name="Property_Spec" array-name="Property_Spec_List">
2325 <tp:docstring>A struct (property ID, property name, D-Bus signature,
22 xmlns:xi="http://www.w3.org/2001/XInclude">
33
44 <tp:title>Telepathy D-Bus Interface Specification</tp:title>
5 <tp:version>0.23.2</tp:version>
5 <tp:version>0.24.0</tp:version>
66
77 <tp:copyright>Copyright © 2005-2011 Collabora Limited</tp:copyright>
88 <tp:copyright>Copyright © 2005-2011 Nokia Corporation</tp:copyright>
164164 <xi:include href="Channel_Interface_Group.xml"/>
165165 <xi:include href="Channel_Interface_Password.xml"/>
166166 <xi:include href="Channel_Interface_Room.xml"/>
167 <xi:include href="Channel_Interface_Room_Config.xml"/>
167168 <xi:include href="Channel_Interface_SASL_Authentication.xml"/>
168169 <xi:include href="Channel_Interface_Credentials_Storage.xml"/>
169170 <xi:include href="Channel_Interface_Securable.xml"/>
170171 <xi:include href="Channel_Interface_Service_Point.xml"/>
172 <xi:include href="Channel_Interface_Subject.xml"/>
171173 <xi:include href="Channel_Interface_Tube.xml"/>
172174
173175 <tp:section name="Text-specific interfaces">
190192 namespace='ofdT.Channel.Interface'>Hold</tp:dbus-ref> and
191193 <tp:dbus-ref namespace="ofdT.Channel.Interface">DTMF</tp:dbus-ref>
192194 interfaces, which may also appear on <tp:dbus-ref
193 namespace='ofdT.Channel.Type'>Call.DRAFT</tp:dbus-ref> channels.</p>
195 namespace='ofdT.Channel.Type'>Call1</tp:dbus-ref> channels.</p>
194196 </tp:docstring>
195197
196198 <xi:include href="Channel_Interface_Call_State.xml"/>
205207 chat rooms. They are primarily intended for <tp:dbus-ref
206208 namespace='ofdT.Channel.Type'>Text</tp:dbus-ref>, <tp:dbus-ref
207209 namespace='ofdT.Channel.Type'>StreamedMedia</tp:dbus-ref> and
208 <tp:dbus-ref namespace='ofdT.Channel.Type'>Call.DRAFT</tp:dbus-ref>
210 <tp:dbus-ref namespace='ofdT.Channel.Type'>Call1</tp:dbus-ref>
209211 channels, but may also appear on other types of channel.</p>
210212 </tp:docstring>
211213
235237 <tp:section name="Calls">
236238 <xi:include href="Call_Content.xml"/>
237239 <xi:include href="Call_Content_Interface_Media.xml"/>
238 <xi:include href="Call_Content_Interface_Mute.xml"/>
240 <xi:include href="Call_Interface_Mute.xml"/>
239241 <xi:include href="Call_Content_Interface_Video_Control.xml"/>
240 <xi:include href="Call_Content_Codec_Offer.xml"/>
242 <xi:include href="Call_Content_Media_Description.xml"/>
243 <xi:include href="Call_Content_Media_Description_Interface_RTP_Header_Extensions.xml"/>
244 <xi:include href="Call_Content_Media_Description_Interface_RTCP_Feedback.xml"/>
245 <xi:include
246 href="Call_Content_Media_Description_Interface_RTCP_Extended_Reports.xml"/>
241247 <xi:include href="Call_Stream.xml"/>
242248 <xi:include href="Call_Stream_Interface_Media.xml"/>
243249 <xi:include href="Call_Stream_Endpoint.xml"/>
385385 </tp:docstring>
386386 </tp:error>
387387
388 <tp:error name="Media.Codecs Incompatible">
389 <tp:added version="0.23.4"/>
390 <tp:docstring>
391 Raised when the local streaming implementation has no codecs in common
392 with the remote side.
393
394 <tp:rationale>
395 This corresponds to
396 <tp:value-ref type="Call_State_Change_Reason">Media_Error</tp:value-ref>.
397 </tp:rationale>
398 </tp:docstring>
399 </tp:error>
400
401 <tp:error name="Media.Unsupported Type">
402 <tp:added version="0.23.4"/>
403 <tp:docstring>
404 The media stream type requested is not supported by either the
405 local or remote side.
406
407 <tp:rationale>
408 This corresponds to
409 <tp:value-ref type="Call_State_Change_Reason">Media_Error</tp:value-ref>.
410 </tp:rationale>
411 </tp:docstring>
412 </tp:error>
413
414 <tp:error name="Media.Streaming Error">
415 <tp:added version="0.23.4"/>
416 <tp:docstring>
417 Raised when the call's streaming implementation has some kind of internal
418 error.
419
420 <tp:rationale>
421 This corresponds to
422 <tp:value-ref type="Call_State_Change_Reason">Internal_Error</tp:value-ref>.
423 </tp:rationale>
424 </tp:docstring>
425 </tp:error>
426
388427 <tp:error name="Connection Refused">
389428 <tp:docstring>
390429 Raised when a connection is refused.
494533 <tp:added version="0.21.2"/>
495534 <tp:docstring>
496535 Raised when an incoming or outgoing <tp:dbus-ref
497 namespace="ofdT.Channel.Type">Call.DRAFT</tp:dbus-ref> is
536 namespace="ofdT.Channel.Type">Call1</tp:dbus-ref> is
498537 rejected by the the receiver.
499538 </tp:docstring>
500539 </tp:error>
536575 errors bad-format, invalid-xml, etc., which can't happen unless
537576 the local (or remote) XMPP implementation is faulty. This is
538577 also analogous to
539 <tp:type>Media_Stream_Error</tp:type>_Invalid_CM_Behavior,
578 <tp:value-ref type="Media_Stream_Error">Invalid_CM_Behavior</tp:value-ref>,
540579 <code>TP_DBUS_ERROR_INCONSISTENT</code> in telepathy-glib, and
541580 <code>TELEPATHY_QT4_ERROR_INCONSISTENT</code> in telepathy-qt4.
542581 </tp:rationale>
588627 to place a call or send a message.</p>
589628
590629 <p>The key 'balance-required' MAY be included in
591 <tp:dbus-ref namespace="ofdT.Channel.Type.Call.DRAFT">CallStateDetails</tp:dbus-ref>
630 <tp:dbus-ref namespace="ofdT.Channel.Type.Call1">CallStateDetails</tp:dbus-ref>
592631 or a delivery report's <tp:type>Message_Part</tp:type>
593632 (with the same units and scale as
594633 <tp:dbus-ref namespace="ofdT.Connection.Interface.Balance">AccountBalance</tp:dbus-ref>)
2121
2222 <interface name="org.freedesktop.Telepathy.Foo.DRAFT"
2323 tp:causes-havoc="experimental">
24 <tp:added version="0.21.UNRELEASED">(draft 1)</tp:added>
24 <tp:added version="0.UNRELEASED">(draft 1)</tp:added>
2525
2626 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
2727 <p>Foo.</p>
3434 base-connection-manager.h \
3535 base-password-channel.h \
3636 base-protocol.h \
37 base-room-config.h \
3738 basic-proxy-factory.h \
3839 channel.h \
3940 channel-iface.h \
5960 dbus.h \
6061 dbus-daemon.h \
6162 dbus-properties-mixin.h \
63 dbus-tube-channel.h \
6264 defs.h \
6365 debug.h \
6466 debug-sender.h \
161163 base-password-channel.c \
162164 base-protocol-internal.h \
163165 base-protocol.c \
166 base-room-config.c \
164167 basic-proxy-factory.c \
165168 capabilities.c \
166169 capabilities-internal.h \
167170 channel.c \
171 channel-contacts.c \
168172 channel-group.c \
169173 channel-internal.h \
170174 channel-dispatcher.c \
200204 dbus-daemon.c \
201205 dbus-internal.h \
202206 dbus-properties-mixin.c \
207 dbus-tube-channel.c \
203208 debug.c \
204209 debug-sender.c \
205210 deprecated-internal.h \
106106 automatic-client-factory.lo automatic-proxy-factory.lo \
107107 add-dispatch-operation-context.lo base-channel.lo \
108108 base-client.lo base-connection.lo base-connection-manager.lo \
109 base-password-channel.lo base-protocol.lo \
109 base-password-channel.lo base-protocol.lo base-room-config.lo \
110110 basic-proxy-factory.lo capabilities.lo channel.lo \
111 channel-group.lo channel-dispatcher.lo \
111 channel-contacts.lo channel-group.lo channel-dispatcher.lo \
112112 channel-dispatch-operation.lo channel-manager.lo \
113113 channel-request.lo client.lo client-channel-factory.lo \
114114 client-message.lo connection.lo connection-avatars.lo \
117117 contact-list-channel.lo contact-operations.lo \
118118 contact-search.lo contact-search-result.lo \
119119 base-contact-list.lo cm-message.lo contacts-mixin.lo dbus.lo \
120 dbus-daemon.lo dbus-properties-mixin.lo debug.lo \
121 debug-sender.lo dtmf.lo interfaces.lo errors.lo \
120 dbus-daemon.lo dbus-properties-mixin.lo dbus-tube-channel.lo \
121 debug.lo debug-sender.lo dtmf.lo interfaces.lo errors.lo \
122122 exportable-channel.lo file-transfer-channel.lo gnio-util.lo \
123123 group-mixin.lo gtypes.lo handle.lo handle-channels-context.lo \
124124 handle-repo.lo handle-repo-dynamic.lo handle-repo-static.lo \
231231 GLIB_MKENUMS = @GLIB_MKENUMS@
232232 GREP = @GREP@
233233 GTKDOC_CHECK = @GTKDOC_CHECK@
234 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
235 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
234236 GTKDOC_MKPDF = @GTKDOC_MKPDF@
235237 GTKDOC_REBASE = @GTKDOC_REBASE@
236238 HAVE_VALA = @HAVE_VALA@
383385 base-connection-manager.h \
384386 base-password-channel.h \
385387 base-protocol.h \
388 base-room-config.h \
386389 basic-proxy-factory.h \
387390 channel.h \
388391 channel-iface.h \
408411 dbus.h \
409412 dbus-daemon.h \
410413 dbus-properties-mixin.h \
414 dbus-tube-channel.h \
411415 defs.h \
412416 debug.h \
413417 debug-sender.h \
498502 base-password-channel.c \
499503 base-protocol-internal.h \
500504 base-protocol.c \
505 base-room-config.c \
501506 basic-proxy-factory.c \
502507 capabilities.c \
503508 capabilities-internal.h \
504509 channel.c \
510 channel-contacts.c \
505511 channel-group.c \
506512 channel-internal.h \
507513 channel-dispatcher.c \
537543 dbus-daemon.c \
538544 dbus-internal.h \
539545 dbus-properties-mixin.c \
546 dbus-tube-channel.c \
540547 debug.c \
541548 debug-sender.c \
542549 deprecated-internal.h \
684691 versions/0.15.2.abi \
685692 versions/0.15.3.abi \
686693 versions/0.15.5.abi \
694 versions/0.15.6.abi \
695 versions/0.15.8.abi \
687696 $(NULL)
688697
689698
734743 $(nodist_geninclude_HEADERS) \
735744 _gen/stable-spec.xml \
736745 _gen/spec-stamp \
737 _gen/stable-stamp
746 _gen/stable-stamp \
747 _gen/reentrant-methods.list
738748
739749 nodist_geninclude_HEADERS = \
740750 _gen/error-str.h \
821831 kludge.xsl \
822832 $(NULL)
823833
834
835 # /!\ Order matters, see https://bugzilla.gnome.org/show_bug.cgi?id=660629
824836 @HAVE_INTROSPECTION_TRUE@INTROSPECTION_FILES = \
825837 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/proxy.c _gen/proxy-introspectable.h \
826838 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/account.c $(srcdir)/account.h \
838850 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/connection-manager.c $(srcdir)/connection-manager.h \
839851 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/channel.c $(srcdir)/channel.h \
840852 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/channel-group.c \
853 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/channel-contacts.c \
841854 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/handle.c $(srcdir)/handle.h \
842855 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/handle-channels-context.c $(srcdir)/handle-channels-context.h \
843856 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/dbus-daemon.c $(srcdir)/dbus-daemon.h \
868881 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/base-connection.c $(srcdir)/base-connection.h \
869882 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/handle-repo.c $(srcdir)/handle-repo.h $(srcdir)/handle-set.c \
870883 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/stream-tube-channel.c $(srcdir)/stream-tube-channel.h \
884 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/dbus-tube-channel.c $(srcdir)/dbus-tube-channel.h \
871885 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/stream-tube-connection.c $(srcdir)/stream-tube-connection.h \
872886 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/text-channel.c $(srcdir)/text-channel.h \
873887 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/file-transfer-channel.c $(srcdir)/file-transfer-channel.h \
9871001 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base-contact-list.Plo@am__quote@
9881002 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base-password-channel.Plo@am__quote@
9891003 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base-protocol.Plo@am__quote@
1004 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base-room-config.Plo@am__quote@
9901005 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basic-proxy-factory.Plo@am__quote@
9911006 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/capabilities.Plo@am__quote@
1007 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/channel-contacts.Plo@am__quote@
9921008 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/channel-dispatch-operation.Plo@am__quote@
9931009 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/channel-dispatcher.Plo@am__quote@
9941010 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/channel-factory-iface.Plo@am__quote@
10151031 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/contacts-mixin.Plo@am__quote@
10161032 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus-daemon.Plo@am__quote@
10171033 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus-properties-mixin.Plo@am__quote@
1034 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus-tube-channel.Plo@am__quote@
10181035 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus.Plo@am__quote@
10191036 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debug-sender.Plo@am__quote@
10201037 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debug.Plo@am__quote@
16311648 _gen/stable-spec.xml: stable-interfaces.xml _gen/stable-stamp $(tools_dir)/xincludator.py
16321649 $(AM_V_GEN)$(PYTHON) $(tools_dir)/xincludator.py $< > $@
16331650
1651 # Grab a list of re-entrant tp_cli_*_run_* methods we are committed to
1652 # generating for backwards compatibility.
1653 _gen/reentrant-methods.list: $(top_srcdir)/docs/reference/telepathy-glib-sections.txt
1654 $(AM_V_GEN)$(GREP) 'tp_cli_.*_run_.*' $< > $@
1655
16341656 # Things generated from the whole spec at once
16351657
16361658 _gen/gtypes.h _gen/gtypes-body.h: _gen/stable-spec.xml \
17001722 $< Tp_Svc_
17011723
17021724 _gen/tp-cli-%-body.h _gen/tp-cli-%.h: _gen/tp-spec-%.xml \
1725 _gen/reentrant-methods.list \
17031726 $(tools_dir)/glib-client-gen.py \
17041727 codegen.am
17051728 $(AM_V_GEN)set -e; \
17071730 subclass_assert= ; \
17081731 case $* in \
17091732 generic) \
1710 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
17111733 ;; \
17121734 account-manager) \
17131735 subclass=--subclass=TpAccountManager; \
17201742 channel) \
17211743 subclass=--subclass=TpChannel; \
17221744 subclass_assert=--subclass-assert=TP_IS_CHANNEL; \
1723 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
17241745 ;; \
17251746 channel-dispatcher) \
17261747 subclass=--subclass=TpChannelDispatcher; \
17411762 connection-manager) \
17421763 subclass=--subclass=TpConnectionManager; \
17431764 subclass_assert=--subclass-assert=TP_IS_CONNECTION_MANAGER \
1744 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
17451765 ;; \
17461766 connection) \
17471767 subclass=--subclass=TpConnection; \
17481768 subclass_assert=--subclass-assert=TP_IS_CONNECTION; \
1749 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
17501769 ;; \
17511770 media-session-handler) \
17521771 subclass=--subclass=TpMediaSessionHandler; \
17531772 subclass_assert=--subclass-assert=TP_IS_MEDIA_SESSION_HANDLER; \
1754 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
17551773 ;; \
17561774 media-stream-handler) \
17571775 subclass=--subclass=TpMediaStreamHandler; \
17581776 subclass_assert=--subclass-assert=TP_IS_MEDIA_STREAM_HANDLER; \
1759 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
17601777 ;; \
17611778 dbus-daemon) \
17621779 subclass=--subclass=TpDBusDaemon; \
17631780 subclass_assert=--subclass-assert=TP_IS_DBUS_DAEMON; \
1764 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
17651781 ;; \
17661782 esac; \
17671783 $(PYTHON) $(tools_dir)/glib-client-gen.py \
17701786 --iface-quark-prefix=TP_IFACE_QUARK \
17711787 --tp-proxy-api=0.7.6 \
17721788 --deprecation-attribute=_TP_GNUC_DEPRECATED \
1773 $$maybe_reentrant \
1789 --deprecate-reentrant=TP_DISABLE_DEPRECATED \
1790 --generate-reentrant=_gen/reentrant-methods.list \
17741791 $< Tp_Cli _gen/tp-cli-$*
17751792
17761793 # vim:set ft=automake:
7474 versions/0.15.2.abi \
7575 versions/0.15.3.abi \
7676 versions/0.15.5.abi \
77 versions/0.15.6.abi \
78 versions/0.15.8.abi \
7779 $(NULL)
7880
7981 # The quoting here is unnecessary but harmless, and has the useful side-effect
13391339 * tp_proxy_prepare_async() with the same arguments.
13401340 *
13411341 * Since: 0.9.0
1342 * Deprecated: since 0.15.6, use tp_proxy_prepare_async() instead.
13421343 */
13431344 void
13441345 tp_account_manager_prepare_async (TpAccountManager *manager,
13601361 * Returns: %TRUE if the preparation was successful, otherwise %FALSE
13611362 *
13621363 * Since: 0.9.0
1364 * Deprecated: since 0.15.6, use tp_proxy_prepare_finish() instead.
13631365 */
13641366 gboolean
13651367 tp_account_manager_prepare_finish (TpAccountManager *manager,
106106 GQuark feature);
107107
108108 void tp_account_manager_prepare_async (TpAccountManager *manager,
109 const GQuark *features, GAsyncReadyCallback callback, gpointer user_data);
109 const GQuark *features,
110 GAsyncReadyCallback callback,
111 gpointer user_data) _TP_GNUC_DEPRECATED_FOR (tp_proxy_prepare_async);
110112
111113 gboolean tp_account_manager_prepare_finish (TpAccountManager *manager,
112 GAsyncResult *result, GError **error);
114 GAsyncResult *result,
115 GError **error) _TP_GNUC_DEPRECATED_FOR (tp_proxy_prepare_finish);
113116
114117 void tp_account_manager_enable_restart (TpAccountManager *manager);
115118
34123412 * tp_proxy_prepare_async() with the same arguments.
34133413 *
34143414 * Since: 0.9.0
3415 * Deprecated: since 0.15.6, use tp_proxy_prepare_async() instead.
34153416 */
34163417 void
34173418 tp_account_prepare_async (TpAccount *account,
34333434 * Returns: %TRUE if the preparation was successful, otherwise %FALSE
34343435 *
34353436 * Since: 0.9.0
3437 * Deprecated: since 0.15.6, use tp_proxy_prepare_finish() instead.
34363438 */
34373439 gboolean
34383440 tp_account_prepare_finish (TpAccount *account,
213213
214214 gboolean tp_account_is_prepared (TpAccount *account, GQuark feature);
215215
216 void tp_account_prepare_async (TpAccount *account, const GQuark *features,
217 GAsyncReadyCallback callback, gpointer user_data);
218
219 gboolean tp_account_prepare_finish (TpAccount *account, GAsyncResult *result,
220 GError **error);
216 void tp_account_prepare_async (TpAccount *account,
217 const GQuark *features,
218 GAsyncReadyCallback callback,
219 gpointer user_data) _TP_GNUC_DEPRECATED_FOR (tp_proxy_prepare_async);
220
221 gboolean tp_account_prepare_finish (TpAccount *account,
222 GAsyncResult *result,
223 GError **error) _TP_GNUC_DEPRECATED_FOR (tp_proxy_prepare_finish);
221224
222225 void tp_account_set_avatar_async (TpAccount *self,
223226 const guchar *avatar,
2525 G_BEGIN_DECLS
2626
2727 TpTextChannel *_tp_text_channel_new_with_factory (
28 TpSimpleClientFactory *factory, TpConnection *conn,
29 const gchar *object_path, const GHashTable *immutable_properties,
28 TpSimpleClientFactory *factory,
29 TpConnection *conn,
30 const gchar *object_path,
31 const GHashTable *immutable_properties,
3032 GError **error);
3133
3234 TpStreamTubeChannel *_tp_stream_tube_channel_new_with_factory (
3335 TpSimpleClientFactory *factory,
34 TpConnection *conn, const gchar *object_path,
35 const GHashTable *immutable_properties, GError **error);
36 TpConnection *conn,
37 const gchar *object_path,
38 const GHashTable *immutable_properties,
39 GError **error);
40
41 TpDBusTubeChannel *_tp_dbus_tube_channel_new_with_factory (
42 TpSimpleClientFactory *factory,
43 TpConnection *conn,
44 const gchar *object_path,
45 const GHashTable *immutable_properties,
46 GError **error);
3647
3748 TpFileTransferChannel *_tp_file_transfer_channel_new_with_factory (
3849 TpSimpleClientFactory *factory,
39 TpConnection *conn, const gchar *object_path,
40 const GHashTable *immutable_properties, GError **error);
50 TpConnection *conn,
51 const gchar *object_path,
52 const GHashTable *immutable_properties,
53 GError **error);
4154
4255 G_END_DECLS
4356
3333 * <listitem>
3434 * <para>a #TpStreamTubeChannel, if the channel is of type
3535 * %TP_IFACE_CHANNEL_TYPE_STREAM_TUBE;</para>
36 * </listitem>
37 * <listitem>
38 * <para>a #TpDBusTubeChannel, if the channel is of type
39 * %TP_IFACE_CHANNEL_TYPE_DBUS_TUBE;</para>
3640 * </listitem>
3741 * <listitem>
3842 * <para>a #TpTextChannel, if the channel is of type
121125 return (TpChannel *) _tp_stream_tube_channel_new_with_factory (self, conn,
122126 object_path, properties, error);
123127 }
128 else if (!tp_strdiff (chan_type, TP_IFACE_CHANNEL_TYPE_DBUS_TUBE))
129 {
130 return (TpChannel *) _tp_dbus_tube_channel_new_with_factory (self, conn,
131 object_path, properties, error);
132 }
124133 else if (!tp_strdiff (chan_type, TP_IFACE_CHANNEL_TYPE_TEXT))
125134 {
126135 const gchar * const * interfaces;
2020 #ifndef __TP_AUTOMATIC_CLIENT_FACTORY_H__
2121 #define __TP_AUTOMATIC_CLIENT_FACTORY_H__
2222
23 #include <telepathy-glib/dbus-tube-channel.h>
2324 #include <telepathy-glib/file-transfer-channel.h>
2425 #include <telepathy-glib/simple-client-factory.h>
2526 #include <telepathy-glib/stream-tube-channel.h>
377377 {
378378 TpBaseChannelClass *klass = TP_BASE_CHANNEL_GET_CLASS (chan);
379379
380 g_return_if_fail (klass->close != NULL);
381
380382 if (!tp_base_channel_is_destroyed (chan))
381383 klass->close (chan);
382384 }
501501 };
502502
503503 static void
504 tp_base_contact_list_contacts_changed_internal (TpBaseContactList *self,
505 TpHandleSet *changed, TpHandleSet *removed, gboolean is_initial_roster);
506
507 static void
504508 tp_base_contact_list_init (TpBaseContactList *self)
505509 {
506510 self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, TP_TYPE_BASE_CONTACT_LIST,
18851889 g_free (tmp);
18861890 }
18871891
1888 tp_base_contact_list_contacts_changed (self, contacts, NULL);
1892 tp_base_contact_list_contacts_changed_internal (self, contacts, NULL, TRUE);
18891893
18901894 if (tp_base_contact_list_can_block (self))
18911895 {
20192023 TpHandleSet *changed,
20202024 TpHandleSet *removed)
20212025 {
2026 tp_base_contact_list_contacts_changed_internal (self, changed, removed,
2027 FALSE);
2028 }
2029
2030 static void
2031 tp_base_contact_list_contacts_changed_internal (TpBaseContactList *self,
2032 TpHandleSet *changed,
2033 TpHandleSet *removed,
2034 gboolean is_initial_roster)
2035 {
20222036 GHashTable *changes;
20232037 GHashTable *change_ids;
20242038 GArray *removals;
20252039 GHashTable *removal_ids;
20262040 TpIntsetFastIter iter;
2027 TpIntset *pub, *sub_rp, *unpub, *unsub, *store;
2041 TpIntset *pub, *sub, *sub_rp, *unpub, *unsub, *store;
20282042 GObject *sub_chan, *pub_chan, *stored_chan;
20292043 TpHandle self_handle;
20302044 TpHandle contact;
20532067 pub = tp_intset_new ();
20542068 unpub = tp_intset_new ();
20552069 unsub = tp_intset_new ();
2070 sub = tp_intset_new ();
20562071 sub_rp = tp_intset_new ();
20572072 store = tp_intset_new ();
20582073
21492164 break;
21502165
21512166 case TP_SUBSCRIPTION_STATE_YES:
2167 if (is_initial_roster)
2168 {
2169 tp_intset_add (sub, contact);
2170 }
2171 else
21522172 {
21532173 /* If our subscription request was accepted, the actor is the
21542174 * other guy accepting */
2155 TpIntset *sub = tp_intset_new_containing (contact);
2175 TpIntset *sub_approved = tp_intset_new_containing (contact);
21562176
21572177 tp_group_mixin_change_members (sub_chan, "",
2158 sub, NULL, NULL, NULL, contact,
2178 sub_approved, NULL, NULL, NULL, contact,
21592179 TP_CHANNEL_GROUP_CHANGE_REASON_NONE);
2160 tp_intset_destroy (sub);
2180 tp_intset_destroy (sub_approved);
21612181 }
2182
21622183 break;
21632184
21642185 default:
22142235 tp_group_mixin_change_members (pub_chan, "",
22152236 pub, NULL, NULL, NULL, self_handle, TP_CHANNEL_GROUP_CHANGE_REASON_NONE);
22162237
2238 /* sub is the set of contacts with subscribe=Yes while retrieving the
2239 * initial roster. We don't know if the contacts were already in the roster
2240 * or if they were added while we were offline, so the actor is 0.
2241 * Having all the initial contacts grouped together means we emit a single
2242 * MembersChanged and one MembersChangedDetailed for the whole roster. */
2243 tp_group_mixin_change_members (sub_chan, "", sub, NULL, NULL, NULL, 0,
2244 TP_CHANNEL_GROUP_CHANGE_REASON_NONE);
2245
22172246 /* sub_rp is the set of contacts changing to subscribe=Ask, which was
22182247 * presumably our idea. */
22192248 tp_group_mixin_change_members (sub_chan, "", NULL, NULL, NULL, sub_rp,
22492278 tp_intset_destroy (unpub);
22502279 tp_intset_destroy (unsub);
22512280 tp_intset_destroy (sub_rp);
2281 tp_intset_destroy (sub);
22522282 tp_intset_destroy (store);
22532283
22542284 g_hash_table_unref (changes);
0 /*
1 * base-room-config.c - Channel.Interface.RoomConfig1 implementation
2 * Copyright ©2011 Collabora Ltd.
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18
19 #include <telepathy-glib/base-room-config.h>
20
21 #include <telepathy-glib/dbus-properties-mixin.h>
22 #include <telepathy-glib/dbus.h>
23 #include <telepathy-glib/interfaces.h>
24 #include <telepathy-glib/svc-channel.h>
25 #include <telepathy-glib/util.h>
26
27 #define DEBUG_FLAG TP_DEBUG_ROOM_CONFIG
28 #include "debug-internal.h"
29 #include "util-internal.h"
30
31 /**
32 * SECTION:base-room-config
33 * @title: TpBaseRoomConfig
34 * @short_description: implements the RoomConfig interface for chat rooms.
35 *
36 * This class implements the #TpSvcChannelInterfaceRoomConfig interface on
37 * multi-user chat room channels. CMs are expected to subclass this base class
38 * to implement the protocol-specific details of changing room configuration.
39 * Then, in the connection manager's subclass of #TpBaseChannel for multi-user
40 * chats:
41 *
42 * <itemizedlist>
43 * <listitem>
44 * <para>in #G_DEFINE_TYPE_WITH_CODE, implement
45 * #TP_TYPE_SVC_CHANNEL_INTERFACE_ROOM_CONFIG using
46 * tp_base_room_config_iface_init():</para>
47 * |[
48 * G_DEFINE_TYPE_WITH_CODE (MyMucChannel, my_muc_channel,
49 * TP_TYPE_BASE_CHANNEL,
50 * // ...
51 * G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_CHANNEL_INTERFACE_ROOM_CONFIG,
52 * tp_base_room_config_iface_init);
53 * // ...
54 * )
55 * ]|
56 * </listitem>
57 * <listitem>
58 * <para>in the <function>class_init</function> method, call
59 * tp_base_room_config_register_class():</para>
60 * |[
61 * static void
62 * my_muc_channel_class_init (MyMucChannelClass *klass)
63 * {
64 * // ...
65 * tp_base_room_config_register_class (TP_BASE_CHANNEL_CLASS (klass));
66 * // ...
67 * }
68 * ]|
69 * </listitem>
70 * <listitem>
71 * <para>include %TP_IFACE_CHANNEL_INTERFACE_ROOM_CONFIG in
72 * #TpBaseChannelClass.interfaces.</para>
73 * </listitem>
74 * </itemizedlist>
75 *
76 * If this protocol supports modifying some aspects of the room's
77 * configuration, the subclass should call
78 * tp_base_room_config_set_property_mutable() to mark appropriate properties as
79 * potentially-modifiable, call
80 * tp_base_room_config_set_can_update_configuration() to indicate whether the
81 * local user has permission to modify those properties at present, and
82 * implement #TpBaseRoomConfigClass.update_async. When updates to properties
83 * are received from the network, they should be updated on this object using
84 * g_object_set():
85 *
86 * |[
87 * g_object_self (room_config,
88 * "description", "A place to bury strangers",
89 * "private", TRUE,
90 * NULL);
91 * tp_base_room_config_emit_properties_changed (room_config);
92 * ]|
93 *
94 * On joining the room, once the entire room configuration has been retrieved
95 * from the network, the CM should call tp_base_room_config_set_retrieved().
96 *
97 * Since: 0.15.8
98 */
99
100 /**
101 * TpBaseRoomConfigClass:
102 * @update_async: begins a request to modify the room's configuration.
103 * @update_finish: completes a call to @update_async; the default
104 * implementation may be used if @update_async uses #GSimpleAsyncResult
105 *
106 * Class structure for #TpBaseRoomConfig. By default, @update_async is %NULL,
107 * indicating that updating room configuration is not implemented; subclasses
108 * should override it if they wish to support updating room configuration.
109 */
110
111 /**
112 * TpBaseRoomConfig:
113 *
114 * An object representing the configuration of a multi-user chat room.
115 *
116 * There are no public fields.
117 */
118
119 /**
120 * TpBaseRoomConfigUpdateAsync:
121 * @self: a #TpBaseRoomConfig
122 * @validated_properties: a mapping from #TpBaseRoomConfigProperty to #GValue,
123 * whose types have already been validated. The function should not modify
124 * this hash table.
125 * @callback: a callback to call on success, failure or disconnection
126 * @user_data: user data for the callback
127 *
128 * Signature for a function to begin a network request to update the room
129 * configuration. It is guaranteed that @validated_properties will only contain
130 * properties which were marked as mutable when the D-Bus method invocation
131 * arrived.
132 *
133 * Note that #TpBaseRoomConfig will take care of applying the property updates
134 * to itself if the operation succeeds.
135 */
136
137 /**
138 * TpBaseRoomConfigUpdateFinish:
139 * @self: a #TpBaseRoomConfig
140 * @result: the result passed to the callback
141 * @error: used to return an error if %FALSE is returned.
142 *
143 * Signature for a function to complete a call to a corresponding
144 * implementation of #TpBaseRoomConfigUpdateAsync.
145 *
146 * Returns: %TRUE if the room configuration update was accepted by the server;
147 * %FALSE, with @error set, otherwise.
148 */
149
150 /**
151 * TpBaseRoomConfigProperty:
152 * @TP_BASE_ROOM_CONFIG_ANONYMOUS: corresponds to #TpBaseRoomConfig:anonymous
153 * @TP_BASE_ROOM_CONFIG_INVITE_ONLY: corresponds to #TpBaseRoomConfig:invite-only
154 * @TP_BASE_ROOM_CONFIG_LIMIT: corresponds to #TpBaseRoomConfig:limit
155 * @TP_BASE_ROOM_CONFIG_MODERATED: corresponds to #TpBaseRoomConfig:moderated
156 * @TP_BASE_ROOM_CONFIG_TITLE: corresponds to #TpBaseRoomConfig:title
157 * @TP_BASE_ROOM_CONFIG_DESCRIPTION: corresponds to #TpBaseRoomConfig:description
158 * @TP_BASE_ROOM_CONFIG_PERSISTENT: corresponds to #TpBaseRoomConfig:persistent
159 * @TP_BASE_ROOM_CONFIG_PRIVATE: corresponds to #TpBaseRoomConfig:private
160 * @TP_BASE_ROOM_CONFIG_PASSWORD_PROTECTED: corresponds to #TpBaseRoomConfig:password-protected
161 * @TP_BASE_ROOM_CONFIG_PASSWORD: corresponds to #TpBaseRoomConfig:password
162 * @TP_NUM_BASE_ROOM_CONFIG_PROPERTIES: the number of configuration properties
163 * currently defined.
164 *
165 * An enumeration of room configuration fields, corresponding to GObject
166 * properties and, in turn, to D-Bus properties.
167 */
168
169 /**
170 * TP_TYPE_BASE_ROOM_CONFIG_PROPERTY:
171 *
172 * The #GEnumClass type of #TpBaseRoomConfigProperty. (The nicknames are chosen
173 * to correspond to unqualified D-Bus property names.)
174 */
175
176 struct _TpBaseRoomConfigPrivate {
177 TpBaseChannel *channel;
178
179 gboolean anonymous;
180 gboolean invite_only;
181 guint32 limit;
182 gboolean moderated;
183 gchar *title;
184 gchar *description;
185 gboolean persistent;
186 gboolean private;
187 gboolean password_protected;
188 gchar *password;
189
190 gboolean can_update_configuration;
191 TpIntset *mutable_properties;
192 gboolean configuration_retrieved;
193
194 /* Contains elements of TpBaseRoomConfigProperty which are known to have
195 * changed since we last emitted PropertiesChanged.
196 */
197 TpIntset *changed_properties;
198 /* These two properties are not elements of TpBaseRoomConfigProperty; we
199 * track 'em separately.
200 */
201 gboolean can_update_configuration_changed;
202 gboolean mutable_properties_changed;
203
204 /* Details of a pending update, or both NULL if no call to
205 * UpdateConfiguration is in progress.
206 */
207 DBusGMethodInvocation *update_configuration_ctx;
208 GHashTable *validated_properties;
209 };
210
211 enum {
212 PROP_CHANNEL = 42,
213
214 /* D-Bus properties */
215 PROP_ANONYMOUS,
216 PROP_INVITE_ONLY,
217 PROP_LIMIT,
218 PROP_MODERATED,
219 PROP_TITLE,
220 PROP_DESCRIPTION,
221 PROP_PERSISTENT,
222 PROP_PRIVATE,
223 PROP_PASSWORD_PROTECTED,
224 PROP_PASSWORD,
225
226 PROP_CAN_UPDATE_CONFIGURATION,
227 PROP_MUTABLE_PROPERTIES,
228 PROP_CONFIGURATION_RETRIEVED,
229 };
230
231 G_DEFINE_TYPE (TpBaseRoomConfig, tp_base_room_config, G_TYPE_OBJECT)
232
233 static gboolean tp_base_room_config_update_finish (
234 TpBaseRoomConfig *self,
235 GAsyncResult *result,
236 GError **error);
237
238 static void
239 tp_base_room_config_init (TpBaseRoomConfig *self)
240 {
241 TpBaseRoomConfigPrivate *priv;
242
243 self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, TP_TYPE_BASE_ROOM_CONFIG,
244 TpBaseRoomConfigPrivate);
245 priv = self->priv;
246
247 priv->mutable_properties = tp_intset_new ();
248 priv->changed_properties = tp_intset_new ();
249 }
250
251 static void
252 add_properties_from_intset (
253 GPtrArray *property_names,
254 TpIntset *properties)
255 {
256 TpIntsetFastIter iter;
257 guint i;
258
259 tp_intset_fast_iter_init (&iter, properties);
260 while (tp_intset_fast_iter_next (&iter, &i))
261 {
262 const gchar *property_name = _tp_enum_to_nick (
263 TP_TYPE_BASE_ROOM_CONFIG_PROPERTY, i);
264
265 g_assert (property_name != NULL);
266 g_ptr_array_add (property_names, (gchar *) property_name);
267 }
268 }
269
270 static void
271 tp_base_room_config_get_property (
272 GObject *object,
273 guint property_id,
274 GValue *value,
275 GParamSpec *pspec)
276 {
277 TpBaseRoomConfig *self = TP_BASE_ROOM_CONFIG (object);
278 TpBaseRoomConfigPrivate *priv = self->priv;
279
280 switch (property_id)
281 {
282 case PROP_CHANNEL:
283 g_value_set_object (value, priv->channel);
284 break;
285 case PROP_ANONYMOUS:
286 g_value_set_boolean (value, priv->anonymous);
287 break;
288 case PROP_INVITE_ONLY:
289 g_value_set_boolean (value, priv->invite_only);
290 break;
291 case PROP_LIMIT:
292 g_value_set_uint (value, priv->limit);
293 break;
294 case PROP_MODERATED:
295 g_value_set_boolean (value, priv->moderated);
296 break;
297 case PROP_TITLE:
298 g_value_set_string (value, priv->title);
299 break;
300 case PROP_DESCRIPTION:
301 g_value_set_string (value, priv->description);
302 break;
303 case PROP_PERSISTENT:
304 g_value_set_boolean (value, priv->persistent);
305 break;
306 case PROP_PRIVATE:
307 g_value_set_boolean (value, priv->private);
308 break;
309 case PROP_PASSWORD_PROTECTED:
310 g_value_set_boolean (value, priv->password_protected);
311 break;
312 case PROP_PASSWORD:
313 g_value_set_string (value, priv->password);
314 break;
315 case PROP_CAN_UPDATE_CONFIGURATION:
316 g_value_set_boolean (value, priv->can_update_configuration);
317 break;
318 case PROP_MUTABLE_PROPERTIES:
319 {
320 GPtrArray *property_names = g_ptr_array_new ();
321
322 add_properties_from_intset (property_names, priv->mutable_properties);
323 g_ptr_array_add (property_names, NULL);
324 g_value_take_boxed (value,
325 g_strdupv ((gchar **) property_names->pdata));
326 g_ptr_array_free (property_names, TRUE);
327 break;
328 }
329 case PROP_CONFIGURATION_RETRIEVED:
330 g_value_set_boolean (value, priv->configuration_retrieved);
331 break;
332 default:
333 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
334 }
335 }
336
337 static void
338 channel_died_cb (
339 gpointer data,
340 GObject *deceased_channel)
341 {
342 TpBaseRoomConfig *self = TP_BASE_ROOM_CONFIG (data);
343 TpBaseRoomConfigPrivate *priv = self->priv;
344
345 DEBUG ("(TpBaseChannel *)%p associated with (TpBaseRoomConfig *)%p died",
346 deceased_channel, self);
347 priv->channel = NULL;
348 }
349
350 static void
351 tp_base_room_config_set_property (
352 GObject *object,
353 guint property_id,
354 const GValue *value,
355 GParamSpec *pspec)
356 {
357 TpBaseRoomConfig *self = TP_BASE_ROOM_CONFIG (object);
358 TpBaseRoomConfigPrivate *priv = self->priv;
359
360 switch (property_id)
361 {
362 case PROP_CHANNEL:
363 g_assert (priv->channel == NULL);
364 priv->channel = g_value_get_object (value);
365 g_assert (priv->channel != NULL);
366 g_object_weak_ref (G_OBJECT (priv->channel), channel_died_cb, self);
367 DEBUG ("associated (TpBaseChannel *)%p with (TpBaseRoomConfig *)%p",
368 priv->channel, self);
369 break;
370
371 /* We track changed-ness of all the configuration field-flavoured properties in
372 * priv->changed_properties. The setters can be mechanically generated: we need
373 * the property name in uppercase to build PROP_FOO and TP_BASE_ROOM_CONFIG_FOO,
374 * and in lowercase to assign to priv->foo.
375 */
376 #define CASE_BOOL(uppercase, lowercase) \
377 case PROP_ ## uppercase: \
378 { \
379 gboolean lowercase = g_value_get_boolean (value); \
380 if (!priv->lowercase != !lowercase) \
381 tp_intset_add (priv->changed_properties, \
382 TP_BASE_ROOM_CONFIG_ ## uppercase); \
383 priv->lowercase = lowercase; \
384 break; \
385 }
386 #define CASE_STRING(uppercase, lowercase) \
387 case PROP_ ## uppercase: \
388 { \
389 gchar *lowercase = g_value_dup_string (value); \
390 if (tp_strdiff (priv->lowercase, lowercase)) \
391 tp_intset_add (priv->changed_properties, \
392 TP_BASE_ROOM_CONFIG_ ## uppercase); \
393 g_free (priv->lowercase); \
394 priv->lowercase = lowercase; \
395 break; \
396 }
397 CASE_BOOL (ANONYMOUS, anonymous)
398 CASE_BOOL (INVITE_ONLY, invite_only)
399 /* LIMIT is the only non-string or -boolean property, so there's no macro for
400 * it. It's interspersed with the others because they're in the same order as
401 * in the spec.
402 */
403 case PROP_LIMIT:
404 {
405 guint limit = g_value_get_uint (value);
406
407 if (limit != priv->limit)
408 tp_intset_add (priv->changed_properties,
409 TP_BASE_ROOM_CONFIG_LIMIT);
410
411 priv->limit = limit;
412 break;
413 }
414 CASE_BOOL (MODERATED, moderated)
415 CASE_STRING (TITLE, title);
416 CASE_STRING (DESCRIPTION, description)
417 CASE_BOOL (PERSISTENT, persistent)
418 CASE_BOOL (PRIVATE, private)
419 CASE_BOOL (PASSWORD_PROTECTED, password_protected)
420 CASE_STRING (PASSWORD, password)
421 #undef CASE_BOOL
422 #undef CASE_STRING
423
424 /* This is not a member of TpBaseRoomConfigProperty, so we track its
425 * changed-ness separately.
426 */
427 case PROP_CAN_UPDATE_CONFIGURATION:
428 {
429 gboolean can_update_configuration = g_value_get_boolean (value);
430
431 if (!priv->can_update_configuration != !can_update_configuration)
432 priv->can_update_configuration_changed = TRUE;
433
434 priv->can_update_configuration = can_update_configuration;
435 break;
436 }
437 default:
438 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
439 }
440 }
441
442 /* This quark is used to attach a pointer to this object to its parent
443 * TpBaseChannel, so we can recover ourself in D-Bus method invocations
444 * and property lookups.
445 */
446 static GQuark find_myself_q = 0;
447
448 static TpBaseRoomConfig *
449 find_myself (GObject *parent)
450 {
451 TpBaseRoomConfig *self = g_object_get_qdata (parent, find_myself_q);
452
453 DEBUG ("retrieved %p from channel %p", self, parent);
454
455 g_return_val_if_fail (TP_IS_BASE_CHANNEL (parent), NULL);
456 g_return_val_if_fail (self != NULL, NULL);
457 g_return_val_if_fail (TP_IS_BASE_ROOM_CONFIG (self), NULL);
458
459 return self;
460 }
461
462 static void
463 tp_base_room_config_constructed (GObject *object)
464 {
465 TpBaseRoomConfig *self = TP_BASE_ROOM_CONFIG (object);
466 TpBaseRoomConfigPrivate *priv = self->priv;
467 GObjectClass *parent_class = tp_base_room_config_parent_class;
468
469 if (parent_class->constructed != NULL)
470 parent_class->constructed (object);
471
472 g_assert (priv->channel != NULL);
473 g_assert (find_myself_q != 0);
474 g_object_set_qdata (G_OBJECT (priv->channel), find_myself_q, self);
475 }
476
477 static void
478 tp_base_room_config_dispose (GObject *object)
479 {
480 TpBaseRoomConfig *self = TP_BASE_ROOM_CONFIG (object);
481 GObjectClass *parent_class = tp_base_room_config_parent_class;
482 TpBaseRoomConfigPrivate *priv = self->priv;
483
484 if (priv->channel != NULL)
485 {
486 g_object_set_qdata (G_OBJECT (priv->channel), find_myself_q, NULL);
487 g_object_weak_unref (G_OBJECT (priv->channel), channel_died_cb, self);
488 priv->channel = NULL;
489 }
490
491 if (parent_class->dispose != NULL)
492 parent_class->dispose (object);
493 }
494
495 static void
496 tp_base_room_config_finalize (GObject *object)
497 {
498 TpBaseRoomConfig *self = TP_BASE_ROOM_CONFIG (object);
499 GObjectClass *parent_class = tp_base_room_config_parent_class;
500 TpBaseRoomConfigPrivate *priv = self->priv;
501
502 g_free (priv->title);
503 g_free (priv->description);
504 g_free (priv->password);
505 tp_intset_destroy (priv->mutable_properties);
506 tp_intset_destroy (priv->changed_properties);
507
508 if (priv->update_configuration_ctx != NULL)
509 {
510 CRITICAL ("finalizing (TpBaseRoomConfig *) %p with a pending "
511 "UpdateConfiguration() call; this should not be possible",
512 object);
513 }
514 g_warn_if_fail (priv->validated_properties == NULL);
515
516 if (parent_class->finalize != NULL)
517 parent_class->finalize (object);
518 }
519
520 static void
521 tp_base_room_config_class_init (TpBaseRoomConfigClass *klass)
522 {
523 GObjectClass *object_class = G_OBJECT_CLASS (klass);
524 GParamSpec *param_spec;
525
526 object_class->get_property = tp_base_room_config_get_property;
527 object_class->set_property = tp_base_room_config_set_property;
528 object_class->constructed = tp_base_room_config_constructed;
529 object_class->dispose = tp_base_room_config_dispose;
530 object_class->finalize = tp_base_room_config_finalize;
531
532 g_type_class_add_private (klass, sizeof (TpBaseRoomConfigPrivate));
533 find_myself_q = g_quark_from_static_string ("TpBaseRoomConfig pointer");
534
535 klass->update_finish = tp_base_room_config_update_finish;
536
537 param_spec = g_param_spec_object ("channel", "Channel",
538 "Parent TpBaseChannel",
539 TP_TYPE_BASE_CHANNEL,
540 G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
541 g_object_class_install_property (object_class, PROP_CHANNEL, param_spec);
542
543 /* D-Bus properties. */
544 param_spec = g_param_spec_boolean ("anonymous", "Anonymous",
545 "True if people may join the channel without other members being made "
546 "aware of their identity.",
547 FALSE,
548 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
549 g_object_class_install_property (object_class, PROP_ANONYMOUS, param_spec);
550
551 param_spec = g_param_spec_boolean ("invite-only", "InviteOnly",
552 "True if people may not join the channel until they have been invited.",
553 FALSE,
554 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
555 g_object_class_install_property (object_class, PROP_INVITE_ONLY, param_spec);
556
557 param_spec = g_param_spec_uint ("limit", "Limit",
558 "The limit to the number of members; or 0 if there is no limit.",
559 0, G_MAXUINT32, 0,
560 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
561 g_object_class_install_property (object_class, PROP_LIMIT, param_spec);
562
563 param_spec = g_param_spec_boolean ("moderated", "Moderated",
564 "True if channel membership is not sufficient to allow participation.",
565 FALSE,
566 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
567 g_object_class_install_property (object_class, PROP_MODERATED, param_spec);
568
569 param_spec = g_param_spec_string ("title", "Title",
570 "A human-visible name for the channel, if it differs from "
571 "Room.DRAFT.RoomName; the empty string, otherwise.",
572 "",
573 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
574 g_object_class_install_property (object_class, PROP_TITLE, param_spec);
575
576 param_spec = g_param_spec_string ("description", "Description",
577 "A human-readable description of the channel's overall purpose; if any.",
578 "",
579 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
580 g_object_class_install_property (object_class, PROP_DESCRIPTION, param_spec);
581
582 param_spec = g_param_spec_boolean ("persistent", "Persistent",
583 "True if the channel will remain in existence on the server after all "
584 "members have left it.",
585 FALSE,
586 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
587 g_object_class_install_property (object_class, PROP_PERSISTENT, param_spec);
588
589 param_spec = g_param_spec_boolean ("private", "Private",
590 "True if the channel is not visible to non-members.",
591 FALSE,
592 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
593 g_object_class_install_property (object_class, PROP_PRIVATE, param_spec);
594
595 param_spec = g_param_spec_boolean ("password-protected", "PasswordProtected",
596 "True if contacts joining this channel must provide a password to be "
597 "granted entry.",
598 FALSE,
599 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
600 g_object_class_install_property (object_class, PROP_PASSWORD_PROTECTED,
601 param_spec);
602
603 param_spec = g_param_spec_string ("password", "Password",
604 "If PasswordProtected is True, the password required to enter the "
605 "channel, if known. If the password is unknown, or PasswordProtected "
606 "is False, the empty string.",
607 "",
608 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
609 g_object_class_install_property (object_class, PROP_PASSWORD, param_spec);
610
611 param_spec = g_param_spec_boolean ("can-update-configuration",
612 "CanUpdateConfiguration",
613 "If True, the user may call UpdateConfiguration to change the values of "
614 "the properties listed in MutableProperties.",
615 FALSE,
616 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
617 g_object_class_install_property (object_class, PROP_CAN_UPDATE_CONFIGURATION,
618 param_spec);
619
620 param_spec = g_param_spec_boxed ("mutable-properties", "MutableProperties",
621 "A list of (unqualified) property names on this interface which may be "
622 "modified using UpdateConfiguration (if CanUpdateConfiguration is "
623 "True). Properties not listed here cannot be modified.",
624 G_TYPE_STRV,
625 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
626 g_object_class_install_property (object_class, PROP_MUTABLE_PROPERTIES,
627 param_spec);
628
629 param_spec = g_param_spec_boolean ("configuration-retrieved",
630 "ConfigurationRetrieved",
631 "Becomes True once the room config has been fetched from the network",
632 FALSE,
633 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
634 g_object_class_install_property (object_class, PROP_CONFIGURATION_RETRIEVED,
635 param_spec);
636 }
637
638 /* room_config_getter:
639 *
640 * This is basically an indirected version of
641 * tp_dbus_properties_mixin_getter_gobject_properties to cope with this GObject
642 * not actually being the exported D-Bus object.
643 */
644 static void
645 room_config_getter (
646 GObject *object,
647 GQuark iface,
648 GQuark name,
649 GValue *value,
650 gpointer getter_data)
651 {
652 TpBaseRoomConfig *self = find_myself (object);
653
654 g_return_if_fail (self != NULL);
655
656 g_object_get_property ((GObject *) self, getter_data, value);
657 }
658
659 /* The TpBaseRoomConfigProperty enum is used to index into this array: be
660 * careful! */
661 static TpDBusPropertiesMixinPropImpl room_config_properties[] = {
662 /* Configuration */
663 { "Anonymous", "anonymous", NULL, },
664 { "InviteOnly", "invite-only", NULL },
665 { "Limit", "limit", NULL },
666 { "Moderated", "moderated", NULL },
667 { "Title", "title", NULL },
668 { "Description", "description", NULL },
669 { "Persistent", "persistent", NULL },
670 { "Private", "private", NULL },
671 { "PasswordProtected", "password-protected", NULL },
672 { "Password", "password", NULL },
673
674 /* Meta-data */
675 { "CanUpdateConfiguration", "can-update-configuration", NULL },
676 { "MutableProperties", "mutable-properties", NULL },
677 { "ConfigurationRetrieved", "configuration-retrieved", NULL },
678
679 { NULL }
680 };
681
682 /**
683 * tp_base_room_config_register_class:
684 * @base_channel_class: the class structure for a subclass of #TpBaseChannel
685 * which uses this object to implement #TP_SVC_CHANNEL_INTERFACE_ROOM_CONFIG
686 *
687 * Registers that D-Bus properties for the RoomConfig1 interface should be
688 * handled by a #TpBaseRoomConfig object associated with instances of
689 * @base_channel_class.
690 *
691 * @base_channel_class must implement #TP_SVC_CHANNEL_INTERFACE_ROOM_CONFIG
692 * using tp_base_room_config_iface_init(), and instances of @base_channel_class
693 * must construct an instance of #TpBaseRoomConfig, passing themself as
694 * #TpBaseRoomConfig:channel.
695 */
696 void
697 tp_base_room_config_register_class (
698 TpBaseChannelClass *base_channel_class)
699 {
700 GObjectClass *cls = G_OBJECT_CLASS (base_channel_class);
701
702 tp_dbus_properties_mixin_implement_interface (cls,
703 TP_IFACE_QUARK_CHANNEL_INTERFACE_ROOM_CONFIG,
704 room_config_getter, NULL, room_config_properties);
705 }
706
707 /* This is almost copy-pasta from _tp_dbus_properties_mixin_find_prop_impl,
708 * except this operates on the IfaceInfo structure…
709 */
710 static TpDBusPropertiesMixinPropInfo *
711 find_prop_info (
712 TpDBusPropertiesMixinIfaceInfo *iface_info,
713 const gchar *property_name)
714 {
715 GQuark prop_quark = g_quark_try_string (property_name);
716 TpDBusPropertiesMixinPropInfo *prop_info;
717
718 if (prop_quark == 0)
719 return NULL;
720
721 for (prop_info = iface_info->props;
722 prop_info->name != 0;
723 prop_info++)
724 {
725 if (prop_info->name == prop_quark)
726 return prop_info;
727 }
728
729 return NULL;
730 }
731
732 static gboolean
733 validate_property_type (
734 const gchar *property_name,
735 const GValue *value,
736 GError **error)
737 {
738 static TpDBusPropertiesMixinIfaceInfo *iface_info = NULL;
739 TpDBusPropertiesMixinPropInfo *prop_info;
740
741 if (G_UNLIKELY (iface_info == NULL))
742 iface_info = tp_svc_interface_get_dbus_properties_info (
743 TP_TYPE_SVC_CHANNEL_INTERFACE_ROOM_CONFIG);
744
745 g_return_val_if_fail (iface_info != NULL, FALSE);
746
747 /* If we recognise the property name, but it's not registered with
748 * TpDBusPropertiesMixin, then something is really screw-y.
749 */
750 prop_info = find_prop_info (iface_info, property_name);
751 g_return_val_if_fail (prop_info != NULL, FALSE);
752
753 /* TODO: transform types just like TpDBusPropertiesMixin does. We only
754 * have one property that isn't a boolean or a string, so this is not a
755 * pressing concern, and it would be nice to be able to reuse more of
756 * TpDBusPropertiesMixin's validation code.
757 */
758 if (!G_VALUE_HOLDS (value, prop_info->type))
759 {
760 g_set_error (error, TP_ERROR, TP_ERROR_INVALID_ARGUMENT,
761 "'%s' has type '%s', not '%s'", property_name,
762 prop_info->dbus_signature, G_VALUE_TYPE_NAME (value));
763 return FALSE;
764 }
765
766 return TRUE;
767 }
768
769 static gboolean
770 validate_property (
771 TpBaseRoomConfig *self,
772 GHashTable *validated_properties,
773 const gchar *property_name,
774 GValue *value,
775 GError **error)
776 {
777 TpBaseRoomConfigPrivate *priv = self->priv;
778 gint property_id;
779
780 if (!_tp_enum_from_nick (TP_TYPE_BASE_ROOM_CONFIG_PROPERTY,
781 property_name, &property_id))
782 {
783 g_set_error (error, TP_ERROR, TP_ERROR_INVALID_ARGUMENT,
784 "'%s' is not a known RoomConfig property.", property_name);
785 return FALSE;
786 }
787
788 if (!tp_intset_is_member (priv->mutable_properties, property_id))
789 {
790 g_set_error (error, TP_ERROR, TP_ERROR_NOT_IMPLEMENTED,
791 "'%s' cannot be changed on this protocol", property_name);
792 return FALSE;
793 }
794
795 if (!validate_property_type (property_name, value, error))
796 return FALSE;
797
798 g_hash_table_insert (validated_properties,
799 GUINT_TO_POINTER (property_id), tp_g_value_slice_dup (value));
800 return TRUE;
801 }
802
803 /*
804 * validate_properties:
805 * @self: it's me!
806 * @properties: a mapping from unqualified property names (gchar *) to
807 * corresponding new values (GValue *).
808 * @error: set to a TP_ERROR if validation fails.
809 *
810 * Validates the names and types and mutability of @properties.
811 *
812 * Returns: a mapping from TpBaseRoomConfigProperty elements to corresponding
813 * new values (GValue *).
814 */
815 static GHashTable *
816 validate_properties (
817 TpBaseRoomConfig *self,
818 GHashTable *properties,
819 GError **error)
820 {
821 GHashTable *validated_properties = g_hash_table_new_full (
822 NULL, NULL, NULL, (GDestroyNotify) tp_g_value_slice_free);
823 GHashTableIter iter;
824 gpointer k, v;
825
826 g_hash_table_iter_init (&iter, properties);
827 while (g_hash_table_iter_next (&iter, &k, &v))
828 {
829 if (!validate_property (self, validated_properties, k, v, error))
830 {
831 g_hash_table_unref (validated_properties);
832 return NULL;
833 }
834 }
835
836 return validated_properties;
837 }
838
839 static void
840 update_cb (
841 GObject *source,
842 GAsyncResult *result,
843 gpointer user_data)
844 {
845 TpBaseRoomConfig *self = TP_BASE_ROOM_CONFIG (source);
846 TpBaseRoomConfigPrivate *priv = self->priv;
847 GError *error = NULL;
848
849 g_return_if_fail (priv->update_configuration_ctx != NULL);
850 g_return_if_fail (priv->validated_properties != NULL);
851 /* We took a ref to the channel before calling out to application code; it
852 * shouldn't have died in the meantime.
853 */
854 g_return_if_fail (priv->channel != NULL);
855
856 if (TP_BASE_ROOM_CONFIG_GET_CLASS (self)->update_finish (
857 self, result, &error))
858 {
859 GHashTableIter iter;
860 gpointer k, v;
861
862 g_hash_table_iter_init (&iter, priv->validated_properties);
863 while (g_hash_table_iter_next (&iter, &k, &v))
864 {
865 TpBaseRoomConfigProperty property_id = GPOINTER_TO_UINT (k);
866 GValue *value = v;
867 const gchar *g_property_name;
868
869 g_assert_cmpuint (property_id, <, TP_NUM_BASE_ROOM_CONFIG_PROPERTIES);
870 g_property_name = room_config_properties[property_id].getter_data;
871 g_assert_cmpstr (NULL, !=, g_property_name);
872
873 g_object_set_property ((GObject *) self, g_property_name, value);
874 }
875
876 tp_base_room_config_emit_properties_changed (self);
877 tp_svc_channel_interface_room_config_return_from_update_configuration (
878 priv->update_configuration_ctx);
879 }
880 else
881 {
882 dbus_g_method_return_error (priv->update_configuration_ctx, error);
883 g_clear_error (&error);
884 }
885
886 priv->update_configuration_ctx = NULL;
887 tp_clear_pointer (&priv->validated_properties, g_hash_table_unref);
888 g_object_unref (priv->channel);
889 }
890
891 static gboolean
892 tp_base_room_config_update_finish (
893 TpBaseRoomConfig *self,
894 GAsyncResult *result,
895 GError **error)
896 {
897 gpointer source_tag = TP_BASE_ROOM_CONFIG_GET_CLASS (self)->update_async;
898
899 _tp_implement_finish_void (self, source_tag);
900 }
901
902 static void
903 tp_base_room_config_update_configuration (
904 TpSvcChannelInterfaceRoomConfig *iface,
905 GHashTable *properties,
906 DBusGMethodInvocation *context)
907 {
908 TpBaseRoomConfig *self = find_myself ((GObject *) iface);
909 TpBaseChannel *channel = TP_BASE_CHANNEL (iface);
910 TpBaseRoomConfigPrivate *priv;
911 TpBaseRoomConfigUpdateAsync update_async;
912 GError *error = NULL;
913
914 if (self == NULL)
915 {
916 g_set_error (&error, TP_ERROR, TP_ERROR_CONFUSED,
917 "Internal error: couldn't find TpBaseRoomConfig object "
918 "attached to (TpBaseChannel *) %p at %s",
919 iface,
920 tp_base_channel_get_object_path (channel));
921
922 CRITICAL ("%s", error->message);
923 goto err;
924 }
925
926 priv = self->priv;
927 update_async = TP_BASE_ROOM_CONFIG_GET_CLASS (self)->update_async;
928
929 if (update_async == NULL)
930 {
931 g_set_error (&error, TP_ERROR, TP_ERROR_NOT_IMPLEMENTED,
932 "This protocol does not implement updating the room configuration");
933 goto err;
934 }
935
936 if (priv->update_configuration_ctx != NULL)
937 {
938 g_set_error (&error, TP_ERROR, TP_ERROR_NOT_AVAILABLE,
939 "Another UpdateConfiguration() call is still in progress");
940 goto err;
941 }
942
943 /* If update_configuration_ctx == NULL, then validated_properties should be,
944 * too.
945 */
946 g_warn_if_fail (priv->validated_properties == NULL);
947
948 if (!priv->can_update_configuration)
949 {
950 g_set_error (&error, TP_ERROR, TP_ERROR_PERMISSION_DENIED,
951 "The user doesn't have permission to modify this room's "
952 "configuration (maybe they're not an op/admin/owner?)");
953 goto err;
954 }
955
956 if (g_hash_table_size (properties) == 0)
957 {
958 tp_svc_channel_interface_room_config_return_from_update_configuration (
959 context);
960 return;
961 }
962
963 priv->validated_properties = validate_properties (self, properties, &error);
964
965 if (priv->validated_properties == NULL)
966 goto err;
967
968 priv->update_configuration_ctx = context;
969 /* We ensure our channel stays alive for the duration of the call. This is
970 * mainly as a convenience to the subclass, which would probably like
971 * tp_base_room_config_get_channel() to work reliably.
972 *
973 * If the DBusGMethodInvocation kept the object alive, we wouldn't need this.
974 */
975 g_object_ref (priv->channel);
976 /* This means the CM could modify validated_properties if it wanted. This is
977 * good in some ways: it means it can further sanitize the values if it
978 * wants, for instance. But I guess it's also possible for the CM to mess up.
979 */
980 update_async (self, priv->validated_properties, update_cb, NULL);
981 return;
982
983 err:
984 dbus_g_method_return_error (context, error);
985 g_clear_error (&error);
986 }
987
988 /**
989 * tp_base_room_config_iface_init:
990 * @g_iface: a pointer to a #TpSvcChannelInterfaceRoomConfigClass structure
991 * @iface_data: ignored
992 *
993 * Pass this as the second argument to G_IMPLEMENT_INTERFACE() when defining a
994 * #TpBaseChannel subclass to declare that TP_SVC_CHANNEL_INTERFACE_ROOM_CONFIG
995 * is implemented using this class. The #TpBaseChannel subclass must also call
996 * tp_base_room_config_register_class() in its class_init function, and
997 * construct a #TpBaseRoomConfig object for each instance.
998 */
999 void
1000 tp_base_room_config_iface_init (
1001 gpointer g_iface,
1002 gpointer iface_data)
1003 {
1004 #define IMPLEMENT(x) tp_svc_channel_interface_room_config_implement_##x (\
1005 g_iface, tp_base_room_config_##x)
1006 IMPLEMENT (update_configuration);
1007 #undef IMPLEMENT
1008 }
1009
1010 /**
1011 * tp_base_room_config_dup_channel:
1012 * @self: a #TpBaseChannel
1013 *
1014 * Returns the channel to which @self is attached.
1015 *
1016 * Returns: (transfer full): the #TpBaseChannel:channel property.
1017 */
1018 TpBaseChannel *
1019 tp_base_room_config_dup_channel (
1020 TpBaseRoomConfig *self)
1021 {
1022 g_return_val_if_fail (TP_IS_BASE_ROOM_CONFIG (self), NULL);
1023 g_return_val_if_fail (self->priv->channel != NULL, NULL);
1024
1025 return g_object_ref (self->priv->channel);
1026 }
1027
1028 /**
1029 * tp_base_room_config_set_can_update_configuration:
1030 * @self: a #TpBaseRoomConfig object.
1031 * @can_update_configuration: %TRUE if the local user has permission to modify
1032 * properties marked as mutable.
1033 *
1034 * Specify whether or not the local user currently has permission to modify the
1035 * room configuration.
1036 *
1037 * Changes made by calling this function are not signalled over D-Bus until
1038 * tp_base_room_config_emit_properties_changed() is next called.
1039 */
1040 void
1041 tp_base_room_config_set_can_update_configuration (
1042 TpBaseRoomConfig *self,
1043 gboolean can_update_configuration)
1044 {
1045 g_return_if_fail (TP_IS_BASE_ROOM_CONFIG (self));
1046
1047 g_object_set (self,
1048 "can-update-configuration", can_update_configuration,
1049 NULL);
1050 }
1051
1052 /**
1053 * tp_base_room_config_set_property_mutable:
1054 * @self: a #TpBaseRoomConfig object.
1055 * @property_id: a property identifier (not including
1056 * %TP_NUM_BASE_ROOM_CONFIG_PROPERTIES)
1057 * @is_mutable: %TRUE if it is possible for Telepathy clients to modify
1058 * @property_id when #TpBaseRoomConfig:can-update-configuration is %TRUE.
1059 *
1060 * Specify whether it is possible for room members to modify the value of
1061 * @property_id (possibly dependent on them having channel-operator powers), or
1062 * whether @property_id's value is an intrinsic fact about the protocol.
1063 *
1064 * For example, on IRC it is impossible to configure a channel to hide the
1065 * identities of participants from others, so %TP_BASE_ROOM_CONFIG_ANONYMOUS
1066 * should be marked as immutable on IRC; whereas channel operators can mark
1067 * rooms as invite-only, so %TP_BASE_ROOM_CONFIG_INVITE_ONLY should be marked as
1068 * mutable on IRC.
1069 *
1070 * By default, all properties are considered immutable.
1071 *
1072 * Call tp_base_room_config_set_can_update_configuration() to specify whether or
1073 * not it is currently possible for the local user to alter properties marked
1074 * as mutable.
1075 *
1076 * Changes made by calling this function are not signalled over D-Bus until
1077 * tp_base_room_config_emit_properties_changed() is next called.
1078 */
1079 void
1080 tp_base_room_config_set_property_mutable (
1081 TpBaseRoomConfig *self,
1082 TpBaseRoomConfigProperty property_id,
1083 gboolean is_mutable)
1084 {
1085 TpBaseRoomConfigPrivate *priv = self->priv;
1086 gboolean changed = FALSE;
1087
1088 g_return_if_fail (TP_IS_BASE_ROOM_CONFIG (self));
1089 g_return_if_fail (property_id < TP_NUM_BASE_ROOM_CONFIG_PROPERTIES);
1090
1091 /* Grr. Damn _add and _remove functions for being asymmetrical. */
1092 if (!is_mutable)
1093 {
1094 changed = tp_intset_remove (priv->mutable_properties, property_id);
1095 }
1096 else if (!tp_intset_is_member (priv->mutable_properties, property_id))
1097 {
1098 tp_intset_add (priv->mutable_properties, property_id);
1099 changed = TRUE;
1100 }
1101
1102 if (changed)
1103 {
1104 g_object_notify ((GObject *) self, "mutable-properties");
1105 priv->mutable_properties_changed = TRUE;
1106 }
1107 }
1108
1109 /**
1110 * tp_base_room_config_emit_properties_changed:
1111 * @self: a #TpBaseRoomConfig object.
1112 *
1113 * Signal the new values of properties which have been modified since the last
1114 * call to this method, if any. This includes changes made by calling
1115 * tp_base_room_config_set_can_update_configuration() and
1116 * tp_base_room_config_set_property_mutable(), as well as changes to any of the
1117 * (writeable) GObject properties on this object.
1118 */
1119 void
1120 tp_base_room_config_emit_properties_changed (
1121 TpBaseRoomConfig *self)
1122 {
1123 TpBaseRoomConfigPrivate *priv;
1124
1125 g_return_if_fail (TP_IS_BASE_ROOM_CONFIG (self));
1126 priv = self->priv;
1127
1128 if (priv->channel == NULL)
1129 {
1130 CRITICAL ("the channel associated with (TpBaseRoomConfig *)%p has died",
1131 self);
1132 g_return_if_reached ();
1133 }
1134 else
1135 {
1136 GPtrArray *changed = g_ptr_array_new ();
1137
1138 add_properties_from_intset (changed, priv->changed_properties);
1139 tp_intset_clear (priv->changed_properties);
1140
1141 if (priv->mutable_properties_changed)
1142 {
1143 g_ptr_array_add (changed, "MutableProperties");
1144 priv->mutable_properties_changed = FALSE;
1145 }
1146
1147 if (priv->can_update_configuration_changed)
1148 {
1149 g_ptr_array_add (changed, "CanUpdateConfiguration");
1150 priv->can_update_configuration_changed = FALSE;
1151 }
1152
1153 if (changed->len > 0)
1154 {
1155 g_ptr_array_add (changed, NULL);
1156 DEBUG ("emitting PropertiesChanged for %s",
1157 g_strjoinv (", ", (gchar **) changed->pdata));
1158 tp_dbus_properties_mixin_emit_properties_changed (
1159 G_OBJECT (priv->channel),
1160 TP_IFACE_CHANNEL_INTERFACE_ROOM_CONFIG,
1161 (const gchar * const *) changed->pdata);
1162 }
1163
1164 g_ptr_array_unref (changed);
1165 }
1166 }
1167
1168 /**
1169 * tp_base_room_config_set_retrieved:
1170 * @self: a #TpBaseRoomConfig object
1171 *
1172 * Signal that the room's configuration has been retrieved, as well as
1173 * signalling any queued property changes. This function should be called once
1174 * all properties have been set to meaningful values.
1175 *
1176 * It is safe to call this function more than once; second and subsequent calls
1177 * are equivalent to calling tp_base_room_config_emit_properties_changed().
1178 */
1179 void
1180 tp_base_room_config_set_retrieved (
1181 TpBaseRoomConfig *self)
1182 {
1183 TpBaseRoomConfigPrivate *priv;
1184
1185 g_return_if_fail (TP_IS_BASE_ROOM_CONFIG (self));
1186 priv = self->priv;
1187
1188 if (priv->channel == NULL)
1189 {
1190 CRITICAL ("the channel associated with (TpBaseRoomConfig *)%p has died",
1191 self);
1192 g_return_if_reached ();
1193 }
1194
1195 /* Flush any pending property changes */
1196 tp_base_room_config_emit_properties_changed (self);
1197
1198 if (!priv->configuration_retrieved)
1199 {
1200 priv->configuration_retrieved = TRUE;
1201 tp_dbus_properties_mixin_emit_properties_changed_varargs (
1202 G_OBJECT (priv->channel),
1203 TP_IFACE_CHANNEL_INTERFACE_ROOM_CONFIG,
1204 "ConfigurationRetrieved", NULL);
1205 }
1206 }
0 /*
1 * base-room-config.h - header for Channel.I.RoomConfig1 implementation
2 * Copyright ©2011 Collabora Ltd.
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18
19 #ifndef TP_BASE_ROOM_CONFIG_H
20 #define TP_BASE_ROOM_CONFIG_H
21
22 #include <glib-object.h>
23 #include <telepathy-glib/base-channel.h>
24 #include <telepathy-glib/_gen/genums.h>
25
26 typedef struct _TpBaseRoomConfig TpBaseRoomConfig;
27 typedef struct _TpBaseRoomConfigClass TpBaseRoomConfigClass;
28 typedef struct _TpBaseRoomConfigPrivate TpBaseRoomConfigPrivate;
29
30 typedef void (*TpBaseRoomConfigUpdateAsync) (
31 TpBaseRoomConfig *self,
32 GHashTable *validated_properties,
33 GAsyncReadyCallback callback,
34 gpointer user_data);
35 typedef gboolean (*TpBaseRoomConfigUpdateFinish) (
36 TpBaseRoomConfig *self,
37 GAsyncResult *result,
38 GError **error);
39
40 struct _TpBaseRoomConfigClass {
41 /*< private >*/
42 GObjectClass parent_class;
43
44 /*< public >*/
45 TpBaseRoomConfigUpdateAsync update_async;
46 TpBaseRoomConfigUpdateFinish update_finish;
47 };
48
49 struct _TpBaseRoomConfig {
50 /*< private >*/
51 GObject parent;
52 TpBaseRoomConfigPrivate *priv;
53 };
54
55 /* By an astonishing coincidence, the nicknames for this enum are the names of
56 * corresponding D-Bus properties.
57 */
58 typedef enum {
59 TP_BASE_ROOM_CONFIG_ANONYMOUS = 0, /*< nick=Anonymous >*/
60 TP_BASE_ROOM_CONFIG_INVITE_ONLY, /*< nick=InviteOnly >*/
61 TP_BASE_ROOM_CONFIG_LIMIT, /*< nick=Limit >*/
62 TP_BASE_ROOM_CONFIG_MODERATED, /*< nick=Moderated >*/
63 TP_BASE_ROOM_CONFIG_TITLE, /*< nick=Title >*/
64 TP_BASE_ROOM_CONFIG_DESCRIPTION, /*< nick=Description >*/
65 TP_BASE_ROOM_CONFIG_PERSISTENT, /*< nick=Persistent >*/
66 TP_BASE_ROOM_CONFIG_PRIVATE, /*< nick=Private >*/
67 TP_BASE_ROOM_CONFIG_PASSWORD_PROTECTED, /*< nick=PasswordProtected >*/
68 TP_BASE_ROOM_CONFIG_PASSWORD, /*< nick=Password >*/
69
70 TP_NUM_BASE_ROOM_CONFIG_PROPERTIES /*< skip >*/
71 } TpBaseRoomConfigProperty;
72
73 GType tp_base_room_config_get_type (void);
74
75 #define TP_TYPE_BASE_ROOM_CONFIG \
76 (tp_base_room_config_get_type ())
77 #define TP_BASE_ROOM_CONFIG(obj) \
78 (G_TYPE_CHECK_INSTANCE_CAST((obj), TP_TYPE_BASE_ROOM_CONFIG, TpBaseRoomConfig))
79 #define TP_BASE_ROOM_CONFIG_CLASS(klass) \
80 (G_TYPE_CHECK_CLASS_CAST((klass), TP_TYPE_BASE_ROOM_CONFIG,\
81 TpBaseRoomConfigClass))
82 #define TP_IS_BASE_ROOM_CONFIG(obj) \
83 (G_TYPE_CHECK_INSTANCE_TYPE((obj), TP_TYPE_BASE_ROOM_CONFIG))
84 #define TP_IS_BASE_ROOM_CONFIG_CLASS(klass) \
85 (G_TYPE_CHECK_CLASS_TYPE((klass), TP_TYPE_BASE_ROOM_CONFIG))
86 #define TP_BASE_ROOM_CONFIG_GET_CLASS(obj) \
87 (G_TYPE_INSTANCE_GET_CLASS ((obj), TP_TYPE_BASE_ROOM_CONFIG, \
88 TpBaseRoomConfigClass))
89
90 void tp_base_room_config_register_class (
91 TpBaseChannelClass *base_channel_class);
92 void tp_base_room_config_iface_init (
93 gpointer g_iface,
94 gpointer iface_data);
95
96 TpBaseChannel *tp_base_room_config_dup_channel (
97 TpBaseRoomConfig *self);
98
99 void tp_base_room_config_set_can_update_configuration (
100 TpBaseRoomConfig *self,
101 gboolean can_update_configuration);
102
103 void tp_base_room_config_set_property_mutable (
104 TpBaseRoomConfig *self,
105 TpBaseRoomConfigProperty property_id,
106 gboolean is_mutable);
107
108 void tp_base_room_config_emit_properties_changed (
109 TpBaseRoomConfig *self);
110
111 void tp_base_room_config_set_retrieved (
112 TpBaseRoomConfig *self);
113
114 /* TYPE MACROS */
115
116 #endif /* TP_BASE_ROOM_CONFIG_H */
0 /*
1 * channel-contacts.c - proxy for a Telepathy channel (contacts feature)
2 *
3 * Copyright (C) 2011 Collabora Ltd. <http://www.collabora.co.uk/>
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 */
19
20 #include "telepathy-glib/channel-internal.h"
21
22 #include <telepathy-glib/gtypes.h>
23 #include <telepathy-glib/proxy.h>
24 #include <telepathy-glib/simple-client-factory.h>
25 #include <telepathy-glib/util.h>
26
27 #define DEBUG_FLAG TP_DEBUG_GROUPS
28 #include "telepathy-glib/connection-internal.h"
29 #include "telepathy-glib/debug-internal.h"
30 #include "telepathy-glib/util-internal.h"
31
32 static GArray *
33 dup_handle_array (const GArray *source)
34 {
35 GArray *target;
36
37 target = g_array_sized_new (FALSE, FALSE, sizeof (TpHandle), source->len);
38 g_array_append_vals (target, source->data, source->len);
39
40 return target;
41 }
42
43 static TpContact *
44 dup_contact (TpChannel *self,
45 TpHandle handle,
46 GHashTable *identifiers)
47 {
48 const gchar *id;
49
50 if (handle == 0)
51 return NULL;
52
53 id = g_hash_table_lookup (identifiers, GUINT_TO_POINTER (handle));
54 if (id == NULL)
55 {
56 DEBUG ("Missing identifier for handle %u - broken CM", handle);
57 return NULL;
58 }
59
60 return tp_simple_client_factory_ensure_contact (
61 tp_proxy_get_factory (self->priv->connection), self->priv->connection,
62 handle, id);
63 }
64
65 static GPtrArray *
66 dup_contact_array (TpChannel *self,
67 const GArray *handles,
68 GHashTable *identifiers)
69 {
70 GPtrArray *array;
71 guint i;
72
73 array = _tp_g_ptr_array_new_full (handles->len, g_object_unref);
74
75 for (i = 0; i < handles->len; i++)
76 {
77 TpHandle handle = g_array_index (handles, TpHandle, i);
78 TpContact *contact = dup_contact (self, handle, identifiers);
79
80 if (contact != NULL)
81 g_ptr_array_add (array, contact);
82 }
83
84 return array;
85 }
86
87 static GHashTable *
88 dup_contacts_table (TpChannel *self,
89 TpIntset *source,
90 GHashTable *identifiers)
91 {
92 GHashTable *target;
93 TpIntsetFastIter iter;
94 TpHandle handle;
95
96 target = g_hash_table_new_full (NULL, NULL, NULL, g_object_unref);
97
98 tp_intset_fast_iter_init (&iter, source);
99 while (tp_intset_fast_iter_next (&iter, &handle))
100 {
101 TpContact *contact = dup_contact (self, handle, identifiers);
102
103 if (contact != NULL)
104 g_hash_table_insert (target, GUINT_TO_POINTER (handle), contact);
105 }
106
107 return target;
108 }
109
110 static GHashTable *
111 dup_owners_table (TpChannel *self,
112 GHashTable *source,
113 GHashTable *identifiers)
114 {
115 GHashTable *target;
116 GHashTableIter iter;
117 gpointer key, value;
118
119 target = g_hash_table_new_full (NULL, NULL, NULL, g_object_unref);
120
121 g_hash_table_iter_init (&iter, source);
122 while (g_hash_table_iter_next (&iter, &key, &value))
123 {
124 TpHandle owner_handle = GPOINTER_TO_UINT (value);
125 TpContact *contact = dup_contact (self, owner_handle, identifiers);
126
127 g_hash_table_insert (target, key, contact);
128 }
129
130 return target;
131 }
132
133 void
134 _tp_channel_contacts_init (TpChannel *self)
135 {
136 /* Create TpContact objects if we have them for free */
137
138 if (!tp_connection_has_immortal_handles (self->priv->connection))
139 {
140 self->priv->cm_too_old_for_contacts = TRUE;
141 return;
142 }
143
144 g_assert (self->priv->target_contact == NULL);
145 g_assert (self->priv->initiator_contact == NULL);
146
147 if (self->priv->handle != 0 && self->priv->identifier != NULL &&
148 self->priv->handle_type == TP_HANDLE_TYPE_CONTACT)
149 {
150 self->priv->target_contact = tp_simple_client_factory_ensure_contact (
151 tp_proxy_get_factory (self->priv->connection), self->priv->connection,
152 self->priv->handle, self->priv->identifier);
153 }
154
155 if (tp_channel_get_initiator_handle (self) != 0 &&
156 !tp_str_empty (tp_channel_get_initiator_identifier (self)))
157 {
158 self->priv->initiator_contact = tp_simple_client_factory_ensure_contact (
159 tp_proxy_get_factory (self->priv->connection), self->priv->connection,
160 tp_channel_get_initiator_handle (self),
161 tp_channel_get_initiator_identifier (self));
162 }
163 }
164
165 void
166 _tp_channel_contacts_group_init (TpChannel *self,
167 GHashTable *identifiers)
168 {
169 GHashTableIter iter;
170 gpointer value;
171
172 /* Create TpContact objects if we have them for free */
173
174 if (!tp_connection_has_immortal_handles (self->priv->connection) ||
175 identifiers == NULL)
176 {
177 self->priv->cm_too_old_for_contacts = TRUE;
178 return;
179 }
180
181 g_assert (self->priv->group_self_contact == NULL);
182 g_assert (self->priv->group_members_contacts == NULL);
183 g_assert (self->priv->group_local_pending_contacts == NULL);
184 g_assert (self->priv->group_remote_pending_contacts == NULL);
185 g_assert (self->priv->group_contact_owners == NULL);
186
187 self->priv->group_self_contact = dup_contact (self,
188 self->priv->group_self_handle, identifiers);
189
190 self->priv->group_members_contacts = dup_contacts_table (self,
191 self->priv->group_members, identifiers);
192
193 self->priv->group_local_pending_contacts = dup_contacts_table (self,
194 self->priv->group_local_pending, identifiers);
195
196 self->priv->group_remote_pending_contacts = dup_contacts_table (self,
197 self->priv->group_remote_pending, identifiers);
198
199 self->priv->group_contact_owners = dup_owners_table (self,
200 self->priv->group_handle_owners, identifiers);
201
202 if (self->priv->group_local_pending_info != NULL)
203 {
204 g_hash_table_iter_init (&iter, self->priv->group_local_pending_info);
205 while (g_hash_table_iter_next (&iter, NULL, &value))
206 {
207 LocalPendingInfo *info = value;
208
209 info->actor_contact = dup_contact (self, info->actor, identifiers);
210 }
211 }
212 }
213
214 typedef struct
215 {
216 GSimpleAsyncResult *result;
217 GPtrArray *contacts;
218 GPtrArray *ids;
219 GArray *handles;
220 } ContactsQueueItem;
221
222 static ContactsQueueItem *
223 contacts_queue_item_new (GPtrArray *contacts,
224 GPtrArray *ids,
225 GArray *handles)
226 {
227 ContactsQueueItem *item;
228
229 item = g_slice_new (ContactsQueueItem);
230 item->contacts = contacts != NULL ? g_ptr_array_ref (contacts) : NULL;
231 item->ids = ids != NULL ? g_ptr_array_ref (ids) : NULL;
232 item->handles = handles != NULL ? g_array_ref (handles) : NULL;
233 item->result = NULL;
234
235 return item;
236 }
237
238 static void
239 contacts_queue_item_free (ContactsQueueItem *item)
240 {
241 tp_clear_pointer (&item->contacts, g_ptr_array_unref);
242 tp_clear_pointer (&item->ids, g_ptr_array_unref);
243 tp_clear_pointer (&item->handles, g_array_unref);
244 g_clear_object (&item->result);
245
246 g_slice_free (ContactsQueueItem, item);
247 }
248
249 static void process_contacts_queue (TpChannel *self);
250
251 static void
252 contacts_queue_head_ready (TpChannel *self,
253 const GError *error)
254 {
255 ContactsQueueItem *item;
256
257 item = g_queue_pop_head (self->priv->contacts_queue);
258
259 if (error != NULL)
260 {
261 DEBUG ("Error preparing channel contacts queue item: %s", error->message);
262 g_simple_async_result_set_from_error (item->result, error);
263 }
264 g_simple_async_result_complete (item->result);
265
266 process_contacts_queue (self);
267
268 contacts_queue_item_free (item);
269 }
270
271 static void
272 contacts_queue_item_upgraded_cb (TpConnection *connection,
273 guint n_contacts,
274 TpContact * const *contacts,
275 const GError *error,
276 gpointer user_data,
277 GObject *weak_object)
278 {
279 TpChannel *self = (TpChannel *) weak_object;
280
281 contacts_queue_head_ready (self, error);
282 }
283
284 static void
285 contacts_queue_item_set_contacts (ContactsQueueItem *item,
286 guint n_contacts,
287 TpContact * const *contacts)
288 {
289 guint i;
290
291 g_assert (item->contacts == NULL);
292 item->contacts = _tp_g_ptr_array_new_full (n_contacts, g_object_unref);
293 for (i = 0; i < n_contacts; i++)
294 g_ptr_array_add (item->contacts, g_object_ref (contacts[i]));
295 }
296
297 static void
298 contacts_queue_item_by_id_cb (TpConnection *connection,
299 guint n_contacts,
300 TpContact * const *contacts,
301 const gchar * const *requested_ids,
302 GHashTable *failed_id_errors,
303 const GError *error,
304 gpointer user_data,
305 GObject *weak_object)
306 {
307 TpChannel *self = (TpChannel *) weak_object;
308 ContactsQueueItem *item = user_data;
309
310 contacts_queue_item_set_contacts (item, n_contacts, contacts);
311 contacts_queue_head_ready (self, error);
312 }
313
314 static void
315 contacts_queue_item_by_handle_cb (TpConnection *connection,
316 guint n_contacts,
317 TpContact * const *contacts,
318 guint n_failed,
319 const TpHandle *failed,
320 const GError *error,
321 gpointer user_data,
322 GObject *weak_object)
323 {
324 TpChannel *self = (TpChannel *) weak_object;
325 ContactsQueueItem *item = user_data;
326
327 contacts_queue_item_set_contacts (item, n_contacts, contacts);
328 contacts_queue_head_ready (self, error);
329 }
330
331 static gboolean
332 contacts_queue_item_idle_cb (gpointer user_data)
333 {
334 TpChannel *self = user_data;
335
336 contacts_queue_head_ready (self, NULL);
337
338 return FALSE;
339 }
340
341 static void
342 process_contacts_queue (TpChannel *self)
343 {
344 ContactsQueueItem *item;
345 GArray *features;
346 const GError *error = NULL;
347
348 item = g_queue_peek_head (self->priv->contacts_queue);
349 if (item == NULL)
350 return;
351
352 /* self can't die while there are queued items because item->result keeps a
353 * ref to it. But it could have been invalidated. */
354 error = tp_proxy_get_invalidated (self);
355 if (error != NULL)
356 {
357 g_object_ref (self);
358 while ((item = g_queue_pop_head (self->priv->contacts_queue)) != NULL)
359 {
360 g_simple_async_result_set_from_error (item->result, error);
361 g_simple_async_result_complete (item->result);
362 contacts_queue_item_free (item);
363 }
364 g_object_unref (self);
365
366 return;
367 }
368
369 features = tp_simple_client_factory_dup_contact_features (
370 tp_proxy_get_factory (self->priv->connection), self->priv->connection);
371
372 if (item->contacts != NULL && item->contacts->len > 0)
373 {
374 g_assert (item->ids == NULL);
375 g_assert (item->handles == NULL);
376
377 tp_connection_upgrade_contacts (self->priv->connection,
378 item->contacts->len, (TpContact **) item->contacts->pdata,
379 features->len, (TpContactFeature *) features->data,
380 contacts_queue_item_upgraded_cb,
381 item, NULL,
382 (GObject *) self);
383 }
384 else if (item->ids != NULL && item->ids->len > 0)
385 {
386 g_assert (item->contacts == NULL);
387 g_assert (item->handles == NULL);
388
389 tp_connection_get_contacts_by_id (self->priv->connection,
390 item->ids->len, (const gchar * const*) item->ids->pdata,
391 features->len, (TpContactFeature *) features->data,
392 contacts_queue_item_by_id_cb,
393 item, NULL,
394 (GObject *) self);
395 }
396 else if (item->handles != NULL && item->handles->len > 0)
397 {
398 g_assert (item->contacts == NULL);
399 g_assert (item->ids == NULL);
400
401 tp_connection_get_contacts_by_handle (self->priv->connection,
402 item->handles->len, (TpHandle *) item->handles->data,
403 features->len, (TpContactFeature *) features->data,
404 contacts_queue_item_by_handle_cb,
405 item, NULL,
406 (GObject *) self);
407 }
408 else
409 {
410 /* It can happen there is no contact to prepare, and can still be useful
411 * in order to not reorder some events.
412 * We have to use an idle though, to guarantee callback is never called
413 * without reentering mainloop first. */
414 g_idle_add (contacts_queue_item_idle_cb, self);
415 }
416
417 g_array_unref (features);
418 }
419
420 static void
421 contacts_queue_item (TpChannel *self,
422 ContactsQueueItem *item,
423 GAsyncReadyCallback callback,
424 gpointer user_data)
425 {
426 item->result = g_simple_async_result_new ((GObject *) self,
427 callback, user_data, contacts_queue_item);
428
429 g_simple_async_result_set_op_res_gpointer (item->result, item, NULL);
430
431 g_queue_push_tail (self->priv->contacts_queue, item);
432
433 /* If this is the only item in the queue, we can process it right away */
434 if (self->priv->contacts_queue->length == 1)
435 process_contacts_queue (self);
436 }
437
438 void
439 _tp_channel_contacts_queue_prepare_async (TpChannel *self,
440 GPtrArray *contacts,
441 GAsyncReadyCallback callback,
442 gpointer user_data)
443 {
444 ContactsQueueItem *item;
445
446 item = contacts_queue_item_new (contacts, NULL, NULL);
447 contacts_queue_item (self, item, callback, user_data);
448 }
449
450 void
451 _tp_channel_contacts_queue_prepare_by_id_async (TpChannel *self,
452 GPtrArray *ids,
453 GAsyncReadyCallback callback,
454 gpointer user_data)
455 {
456 ContactsQueueItem *item;
457
458 item = contacts_queue_item_new (NULL, ids, NULL);
459 contacts_queue_item (self, item, callback, user_data);
460 }
461
462 void
463 _tp_channel_contacts_queue_prepare_by_handle_async (TpChannel *self,
464 GArray *handles,
465 GAsyncReadyCallback callback,
466 gpointer user_data)
467 {
468 ContactsQueueItem *item;
469
470 item = contacts_queue_item_new (NULL, NULL, handles);
471 contacts_queue_item (self, item, callback, user_data);
472 }
473
474 gboolean
475 _tp_channel_contacts_queue_prepare_finish (TpChannel *self,
476 GAsyncResult *result,
477 GPtrArray **contacts,
478 GError **error)
479 {
480 GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result);
481 ContactsQueueItem *item;
482
483 item = g_simple_async_result_get_op_res_gpointer (simple);
484
485 if (contacts != NULL)
486 *contacts = g_ptr_array_ref (item->contacts);
487
488 if (g_simple_async_result_propagate_error (simple, error))
489 return FALSE;
490
491 g_return_val_if_fail (g_simple_async_result_is_valid (result,
492 G_OBJECT (self), contacts_queue_item), FALSE);
493
494 return TRUE;
495 }
496
497 typedef struct
498 {
499 GPtrArray *added;
500 GArray *removed;
501 GPtrArray *local_pending;
502 GPtrArray *remote_pending;
503 TpContact *actor;
504 GHashTable *details;
505 } MembersChangedData;
506
507 static void
508 members_changed_data_free (MembersChangedData *data)
509 {
510 tp_clear_pointer (&data->added, g_ptr_array_unref);
511 tp_clear_pointer (&data->removed, g_array_unref);
512 tp_clear_pointer (&data->local_pending, g_ptr_array_unref);
513 tp_clear_pointer (&data->remote_pending, g_ptr_array_unref);
514 g_clear_object (&data->actor);
515 tp_clear_pointer (&data->details, g_hash_table_unref);
516
517 g_slice_free (MembersChangedData, data);
518 }
519
520 static void
521 members_changed_prepared_cb (GObject *object,
522 GAsyncResult *result,
523 gpointer user_data)
524 {
525 TpChannel *self = (TpChannel *) object;
526 MembersChangedData *data = user_data;
527 GPtrArray *removed;
528 guint i;
529
530 _tp_channel_contacts_queue_prepare_finish (self, result, NULL, NULL);
531
532 /* For removed contacts, we have only handles because we are supposed to
533 * already know them. So we have to search them in our tables, construct an
534 * array of removed contacts and then remove them from our tables */
535 removed = _tp_g_ptr_array_new_full (data->removed->len, g_object_unref);
536 for (i = 0; i < data->removed->len; i++)
537 {
538 TpHandle handle = g_array_index (data->removed, TpHandle, i);
539 gpointer key = GUINT_TO_POINTER (handle);
540 TpContact *contact;
541
542 contact = g_hash_table_lookup (self->priv->group_members_contacts, key);
543 if (contact == NULL)
544 contact = g_hash_table_lookup (
545 self->priv->group_local_pending_contacts, key);
546 if (contact == NULL)
547 contact = g_hash_table_lookup (
548 self->priv->group_remote_pending_contacts, key);
549
550 if (contact == NULL)
551 {
552 DEBUG ("Handle %u removed but not found in our tables - broken CM",
553 handle);
554 continue;
555 }
556
557 g_ptr_array_add (removed, g_object_ref (contact));
558
559 g_hash_table_remove (self->priv->group_members_contacts, key);
560 g_hash_table_remove (self->priv->group_local_pending_contacts, key);
561 g_hash_table_remove (self->priv->group_remote_pending_contacts, key);
562 }
563
564 for (i = 0; i < data->added->len; i++)
565 {
566 TpContact *contact = g_ptr_array_index (data->added, i);
567 gpointer key = GUINT_TO_POINTER (tp_contact_get_handle (contact));
568
569 g_hash_table_insert (self->priv->group_members_contacts, key,
570 g_object_ref (contact));
571 g_hash_table_remove (self->priv->group_local_pending_contacts, key);
572 g_hash_table_remove (self->priv->group_remote_pending_contacts, key);
573 }
574
575 for (i = 0; i < data->local_pending->len; i++)
576 {
577 TpContact *contact = g_ptr_array_index (data->local_pending, i);
578 gpointer key = GUINT_TO_POINTER (tp_contact_get_handle (contact));
579
580 g_hash_table_remove (self->priv->group_members_contacts, key);
581 g_hash_table_insert (self->priv->group_local_pending_contacts, key,
582 g_object_ref (contact));
583 g_hash_table_remove (self->priv->group_remote_pending_contacts, key);
584
585 if (data->actor != NULL)
586 {
587 LocalPendingInfo *info;
588
589 info = g_hash_table_lookup (self->priv->group_local_pending_info, key);
590 if (info != NULL)
591 info->actor_contact = g_object_ref (data->actor);
592 }
593 }
594
595 for (i = 0; i < data->remote_pending->len; i++)
596 {
597 TpContact *contact = g_ptr_array_index (data->remote_pending, i);
598 gpointer key = GUINT_TO_POINTER (tp_contact_get_handle (contact));
599
600 g_hash_table_remove (self->priv->group_members_contacts, key);
601 g_hash_table_remove (self->priv->group_local_pending_contacts, key);
602 g_hash_table_insert (self->priv->group_remote_pending_contacts, key,
603 g_object_ref (contact));
604 }
605
606 g_signal_emit_by_name (self, "group-contacts-changed", data->added,
607 removed, data->local_pending, data->remote_pending, data->actor,
608 data->details);
609
610 g_ptr_array_unref (removed);
611 members_changed_data_free (data);
612 }
613
614 void
615 _tp_channel_contacts_members_changed (TpChannel *self,
616 const GArray *added,
617 const GArray *removed,
618 const GArray *local_pending,
619 const GArray *remote_pending,
620 guint actor,
621 GHashTable *details)
622 {
623 MembersChangedData *data;
624 GPtrArray *contacts;
625 GHashTable *ids;
626
627 if (self->priv->cm_too_old_for_contacts)
628 return;
629
630 ids = tp_asv_get_boxed (details, "contact-ids",
631 TP_HASH_TYPE_HANDLE_IDENTIFIER_MAP);
632 if (ids == NULL)
633 {
634 DEBUG ("CM did not give identifiers, can't create TpContact");
635 return;
636 }
637
638 g_assert (self->priv->group_members_contacts != NULL);
639 g_assert (self->priv->group_local_pending_contacts != NULL);
640 g_assert (self->priv->group_remote_pending_contacts != NULL);
641
642 /* Ensure all TpContact, and push to a queue. This is to ensure that signals
643 * does not get reordered while we prepare them. */
644 data = g_slice_new (MembersChangedData);
645 data->added = dup_contact_array (self, added, ids);
646 data->removed = dup_handle_array (removed);
647 data->local_pending = dup_contact_array (self, local_pending, ids);
648 data->remote_pending = dup_contact_array (self, remote_pending, ids);
649 data->actor = dup_contact (self, actor, ids);
650 data->details = g_hash_table_ref (details);
651
652 contacts = g_ptr_array_new ();
653 tp_g_ptr_array_extend (contacts, data->added);
654 tp_g_ptr_array_extend (contacts, data->local_pending);
655 tp_g_ptr_array_extend (contacts, data->remote_pending);
656 if (data->actor != NULL)
657 g_ptr_array_add (contacts, data->actor);
658
659 _tp_channel_contacts_queue_prepare_async (self, contacts,
660 members_changed_prepared_cb, data);
661
662 g_ptr_array_unref (contacts);
663 }
664
665 typedef struct
666 {
667 GHashTable *added;
668 GArray *removed;
669 } HandleOwnersChangedData;
670
671 static void
672 handle_owners_changed_data_free (HandleOwnersChangedData *data)
673 {
674 tp_clear_pointer (&data->added, g_hash_table_unref);
675 tp_clear_pointer (&data->removed, g_array_unref);
676
677 g_slice_free (HandleOwnersChangedData, data);
678 }
679
680 static void
681 handle_owners_changed_prepared_cb (GObject *object,
682 GAsyncResult *result,
683 gpointer user_data)
684 {
685 TpChannel *self = (TpChannel *) object;
686 HandleOwnersChangedData *data = user_data;
687 guint i;
688
689 _tp_channel_contacts_queue_prepare_finish (self, result, NULL, NULL);
690
691 for (i = 0; i < data->removed->len; i++)
692 {
693 g_hash_table_remove (self->priv->group_contact_owners,
694 GUINT_TO_POINTER (g_array_index (data->removed, TpHandle, i)));
695 }
696
697 tp_g_hash_table_update (self->priv->group_contact_owners, data->added, NULL,
698 g_object_ref);
699
700 handle_owners_changed_data_free (data);
701 }
702
703 void
704 _tp_channel_contacts_handle_owners_changed (TpChannel *self,
705 GHashTable *added,
706 const GArray *removed,
707 GHashTable *identifiers)
708 {
709 HandleOwnersChangedData *data;
710 GPtrArray *contacts;
711
712 if (self->priv->cm_too_old_for_contacts)
713 return;
714
715 g_assert (self->priv->group_contact_owners != NULL);
716
717 data = g_slice_new (HandleOwnersChangedData);
718 data->added = dup_owners_table (self, added, identifiers);
719 data->removed = dup_handle_array (removed);
720
721 contacts = _tp_contacts_from_values (data->added);
722
723 _tp_channel_contacts_queue_prepare_async (self, contacts,
724 handle_owners_changed_prepared_cb, data);
725
726 g_ptr_array_unref (contacts);
727 }
728
729 static void
730 self_contact_changed_prepared_cb (GObject *object,
731 GAsyncResult *result,
732 gpointer user_data)
733 {
734 TpChannel *self = (TpChannel *) object;
735 TpContact *contact = user_data;
736
737 _tp_channel_contacts_queue_prepare_finish (self, result, NULL, NULL);
738
739 g_clear_object (&self->priv->group_self_contact);
740 self->priv->group_self_contact = contact;
741
742 g_object_notify ((GObject *) self, "group-self-contact");
743 }
744
745 void
746 _tp_channel_contacts_self_contact_changed (TpChannel *self,
747 guint self_handle,
748 const gchar *identifier)
749 {
750 TpContact *contact;
751 GPtrArray *contacts;
752
753 if (self->priv->cm_too_old_for_contacts)
754 return;
755
756 contacts = g_ptr_array_new_with_free_func (g_object_unref);
757 contact = tp_simple_client_factory_ensure_contact (
758 tp_proxy_get_factory (self->priv->connection), self->priv->connection,
759 self_handle, identifier);
760 g_ptr_array_add (contacts, g_object_ref (contact));
761
762 _tp_channel_contacts_queue_prepare_async (self, contacts,
763 self_contact_changed_prepared_cb, contact);
764
765 g_ptr_array_unref (contacts);
766 }
767
768 /**
769 * tp_channel_get_target_contact:
770 * @self: a channel
771 *
772 * <!-- -->
773 *
774 * Returns: (transfer none): the value of #TpChannel:target-contact
775 * Since: 0.15.6
776 */
777 TpContact *
778 tp_channel_get_target_contact (TpChannel *self)
779 {
780 g_return_val_if_fail (TP_IS_CHANNEL (self), NULL);
781
782 return self->priv->target_contact;
783 }
784
785 /**
786 * tp_channel_get_initiator_contact:
787 * @self: a channel
788 *
789 * <!-- -->
790 *
791 * Returns: (transfer none): the value of #TpChannel:initiator-contact
792 * Since: 0.15.6
793 */
794 TpContact *
795 tp_channel_get_initiator_contact (TpChannel *self)
796 {
797 g_return_val_if_fail (TP_IS_CHANNEL (self), NULL);
798
799 return self->priv->initiator_contact;
800 }
801
802 /**
803 * tp_channel_group_get_self_contact:
804 * @self: a channel
805 *
806 * <!-- -->
807 *
808 * Returns: (transfer none): the value of #TpChannel:group-self-contact
809 * Since: 0.15.6
810 */
811 TpContact *
812 tp_channel_group_get_self_contact (TpChannel *self)
813 {
814 g_return_val_if_fail (TP_IS_CHANNEL (self), NULL);
815
816 return self->priv->group_self_contact;
817 }
818
819 /**
820 * tp_channel_group_dup_members_contacts:
821 * @self: a channel
822 *
823 * If @self is a group and the %TP_CHANNEL_FEATURE_CONTACTS feature has been
824 * prepared, return a #GPtrArray containing its members.
825 *
826 * If @self is a group but %TP_CHANNEL_FEATURE_CONTACTS has not been prepared,
827 * the result may either be a set of members, or %NULL.
828 *
829 * If @self is not a group, return %NULL.
830 *
831 * Returns: (transfer container) (type GLib.PtrArray) (element-type TelepathyGLib.Contact):
832 * a new #GPtrArray of #TpContact, free it with g_ptr_array_unref(), or %NULL.
833 *
834 * Since: 0.15.6
835 */
836 GPtrArray *
837 tp_channel_group_dup_members_contacts (TpChannel *self)
838 {
839 g_return_val_if_fail (TP_IS_CHANNEL (self), NULL);
840
841 return _tp_contacts_from_values (self->priv->group_members_contacts);
842 }
843
844 /**
845 * tp_channel_group_dup_local_pending_contacts:
846 * @self: a channel
847 *
848 * If @self is a group and the %TP_CHANNEL_FEATURE_CONTACTS feature has been
849 * prepared, return a #GPtrArray containing its local-pending members.
850 *
851 * If @self is a group but %TP_CHANNEL_FEATURE_CONTACTS has not been prepared,
852 * the result may either be a set of local-pending members, or %NULL.
853 *
854 * If @self is not a group, return %NULL.
855 *
856 * Returns: (transfer container) (type GLib.PtrArray) (element-type TelepathyGLib.Contact):
857 * a new #GPtrArray of #TpContact, free it with g_ptr_array_unref(), or %NULL.
858 *
859 * Since: 0.15.6
860 */
861 GPtrArray *
862 tp_channel_group_dup_local_pending_contacts (TpChannel *self)
863 {
864 g_return_val_if_fail (TP_IS_CHANNEL (self), NULL);
865
866 return _tp_contacts_from_values (self->priv->group_local_pending_contacts);
867 }
868
869 /**
870 * tp_channel_group_dup_remote_pending_contacts:
871 * @self: a channel
872 *
873 * If @self is a group and the %TP_CHANNEL_FEATURE_CONTACTS feature has been
874 * prepared, return a #GPtrArray containing its remote-pending members.
875 *
876 * If @self is a group but %TP_CHANNEL_FEATURE_CONTACTS has not been prepared,
877 * the result may either be a set of remote-pending members, or %NULL.
878 *
879 * If @self is not a group, return %NULL.
880 *
881 * Returns: (transfer container) (type GLib.PtrArray) (element-type TelepathyGLib.Contact):
882 * a new #GPtrArray of #TpContact, free it with g_ptr_array_unref(), or %NULL.
883 *
884 * Since: 0.15.6
885 */
886 GPtrArray *
887 tp_channel_group_dup_remote_pending_contacts (TpChannel *self)
888 {
889 g_return_val_if_fail (TP_IS_CHANNEL (self), NULL);
890
891 return _tp_contacts_from_values (self->priv->group_remote_pending_contacts);
892 }
893
894 /**
895 * tp_channel_group_get_local_pending_contact_info:
896 * @self: a channel
897 * @local_pending: the #TpContact of a local-pending contact about whom more
898 * information is needed
899 * @actor: (out) (allow-none) (transfer none): either %NULL or a location to
900 * return the contact who requested the change
901 * @reason: (out) (allow-none): either %NULL or a location to return the reason
902 * for the change
903 * @message: (out) (allow-none) (transfer none): either %NULL or a location to
904 * return the
905 * user-supplied message
906 *
907 * If @local_pending is actually a local-pending contact,
908 * write additional information into @actor, @reason and @message and return
909 * %TRUE. The contact and message are not referenced or copied, and can only be
910 * assumed to remain valid until the main loop is re-entered.
911 *
912 * If @local_pending is not the handle of a local-pending contact,
913 * write %NULL into @actor, %TP_CHANNEL_GROUP_CHANGE_REASON_NONE into @reason
914 * and "" into @message, and return %FALSE.
915 *
916 * Returns: %TRUE if the contact is in fact local-pending
917 * Since: 0.15.6
918 */
919 gboolean
920 tp_channel_group_get_local_pending_contact_info (TpChannel *self,
921 TpContact *local_pending,
922 TpContact **actor,
923 TpChannelGroupChangeReason *reason,
924 const gchar **message)
925 {
926 gboolean ret = FALSE;
927 TpContact *a = NULL;
928 TpChannelGroupChangeReason r = TP_CHANNEL_GROUP_CHANGE_REASON_NONE;
929 const gchar *m = "";
930
931 g_return_val_if_fail (TP_IS_CHANNEL (self), FALSE);
932 g_return_val_if_fail (TP_IS_CONTACT (local_pending), FALSE);
933 g_return_val_if_fail (tp_contact_get_connection (local_pending) ==
934 self->priv->connection, FALSE);
935
936 if (self->priv->group_local_pending != NULL)
937 {
938 TpHandle handle = tp_contact_get_handle (local_pending);
939
940 /* it could conceivably be someone who is local-pending */
941
942 ret = tp_intset_is_member (self->priv->group_local_pending, handle);
943
944 if (ret && self->priv->group_local_pending_info != NULL)
945 {
946 /* we might even have information about them */
947 LocalPendingInfo *info = g_hash_table_lookup (
948 self->priv->group_local_pending_info,
949 GUINT_TO_POINTER (handle));
950
951 if (info != NULL)
952 {
953 a = info->actor_contact;
954 r = info->reason;
955
956 if (info->message != NULL)
957 m = info->message;
958 }
959 /* else we have no info, which means (NULL, NONE, NULL) */
960 }
961 }
962
963 if (actor != NULL)
964 *actor = a;
965
966 if (message != NULL)
967 *message = m;
968
969 if (reason != NULL)
970 *reason = r;
971
972 return ret;
973 }
974
975 /**
976 * tp_channel_group_get_contact_owner:
977 * @self: a channel
978 * @contact: a contact which is a member of this channel
979 *
980 * Synopsis (see below for further explanation):
981 *
982 * - if @self is not a group or @contact is not a member of this channel,
983 * result is undefined;
984 * - if %TP_CHANNEL_FEATURE_CONTACTS has not yet been prepared, result is
985 * undefined;
986 * - if @self does not have flags that include
987 * %TP_CHANNEL_GROUP_FLAG_PROPERTIES,
988 * result is undefined;
989 * - if @contact is channel-specific and its globally valid "owner" is known,
990 * return that owner;
991 * - if @contact is channel-specific and its globally valid "owner" is unknown,
992 * return %NULL;
993 * - if @contact is globally valid, return @contact itself
994 *
995 * Some channels (those with flags that include
996 * %TP_CHANNEL_GROUP_FLAG_CHANNEL_SPECIFIC_HANDLES) have a concept of
997 * "channel-specific contacts". These are contacts that only have meaning within
998 * the context of the channel - for instance, in XMPP Multi-User Chat,
999 * participants in a chatroom are identified by an in-room JID consisting
1000 * of the JID of the chatroom plus a local nickname.
1001 *
1002 * Depending on the protocol and configuration, it might be possible to find
1003 * out what globally valid contact (i.e. a contact that you could add to
1004 * your contact list) "owns" a channel-specific contact. For instance, in
1005 * most XMPP MUC chatrooms, normal users cannot see what global JID
1006 * corresponds to an in-room JID, but moderators can.
1007 *
1008 * This is further complicated by the fact that channels with channel-specific
1009 * contacts can sometimes have members with globally valid contacts (for
1010 * instance, if you invite someone to an XMPP MUC using their globally valid
1011 * JID, you would expect to see the contact representing that JID in the
1012 * Group's remote-pending set).
1013 *
1014 * Returns: (transfer none): the global contact that owns the given contact,
1015 * or %NULL.
1016 * Since: 0.15.6
1017 */
1018 TpContact *
1019 tp_channel_group_get_contact_owner (TpChannel *self,
1020 TpContact *contact)
1021 {
1022 TpHandle handle;
1023 gpointer value;
1024
1025 g_return_val_if_fail (TP_IS_CHANNEL (self), NULL);
1026 g_return_val_if_fail (TP_IS_CONTACT (contact), NULL);
1027 g_return_val_if_fail (tp_contact_get_connection (contact) ==
1028 self->priv->connection, NULL);
1029
1030 if (self->priv->group_contact_owners == NULL)
1031 {
1032 /* undefined result - pretending it's global is probably as good as
1033 * any other behaviour, since we can't know either way */
1034 return contact;
1035 }
1036
1037 handle = tp_contact_get_handle (contact);
1038
1039 if (g_hash_table_lookup_extended (self->priv->group_contact_owners,
1040 GUINT_TO_POINTER (handle), NULL, &value))
1041 {
1042 /* channel-specific, value is either owner or NULL if unknown */
1043 return value;
1044 }
1045 else
1046 {
1047 /* either already globally valid, or not a member */
1048 return contact;
1049 }
1050 }
1051
1052 static void
1053 contacts_prepared_cb (GObject *object,
1054 GAsyncResult *res,
1055 gpointer user_data)
1056 {
1057 TpChannel *self = (TpChannel *) object;
1058 GSimpleAsyncResult *result = user_data;
1059 GError *error = NULL;
1060
1061 if (!_tp_channel_contacts_queue_prepare_finish (self, res, NULL, &error))
1062 g_simple_async_result_take_error (result, error);
1063
1064 g_simple_async_result_complete (result);
1065 }
1066
1067 static void
1068 append_contacts (GPtrArray *contacts,
1069 GHashTable *table)
1070 {
1071 GHashTableIter iter;
1072 gpointer value;
1073
1074 if (table == NULL)
1075 return;
1076
1077 g_hash_table_iter_init (&iter, table);
1078 while (g_hash_table_iter_next (&iter, NULL, &value))
1079 g_ptr_array_add (contacts, value);
1080 }
1081
1082 void
1083 _tp_channel_contacts_prepare_async (TpProxy *proxy,
1084 const TpProxyFeature *feature,
1085 GAsyncReadyCallback callback,
1086 gpointer user_data)
1087 {
1088 TpChannel *self = (TpChannel *) proxy;
1089 GSimpleAsyncResult *result;
1090 GHashTableIter iter;
1091 gpointer value;
1092 GPtrArray *contacts;
1093
1094 if (self->priv->cm_too_old_for_contacts)
1095 {
1096 g_simple_async_report_error_in_idle ((GObject *) self, callback,
1097 user_data, TP_ERRORS, TP_ERROR_SOFTWARE_UPGRADE_REQUIRED,
1098 "The Connection Manager does not implement the required telepathy "
1099 "specification (>= 0.23.4) to prepare TP_CHANNEL_FEATURE_CONTACTS.");
1100 return;
1101 }
1102
1103 result = g_simple_async_result_new ((GObject *) self, callback, user_data,
1104 _tp_channel_contacts_prepare_async);
1105
1106 contacts = g_ptr_array_new ();
1107
1108 /* Collect all the TpContacts we have for this channel */
1109 if (self->priv->target_contact != NULL)
1110 g_ptr_array_add (contacts, self->priv->target_contact);
1111
1112 if (self->priv->initiator_contact != NULL)
1113 g_ptr_array_add (contacts, self->priv->initiator_contact);
1114
1115 if (self->priv->group_self_contact != NULL)
1116 g_ptr_array_add (contacts, self->priv->group_self_contact);
1117
1118 append_contacts (contacts, self->priv->group_members_contacts);
1119 append_contacts (contacts, self->priv->group_local_pending_contacts);
1120 append_contacts (contacts, self->priv->group_remote_pending_contacts);
1121 append_contacts (contacts, self->priv->group_contact_owners);
1122
1123 if (self->priv->group_local_pending_info != NULL)
1124 {
1125 g_hash_table_iter_init (&iter, self->priv->group_local_pending_info);
1126 while (g_hash_table_iter_next (&iter, NULL, &value))
1127 {
1128 LocalPendingInfo *info = value;
1129
1130 if (info->actor_contact != NULL)
1131 g_ptr_array_add (contacts, info->actor_contact);
1132 }
1133 }
1134
1135 _tp_channel_contacts_queue_prepare_async (self, contacts,
1136 contacts_prepared_cb, result);
1137
1138 g_ptr_array_unref (contacts);
1139 }
6262 local_pending_info_free (LocalPendingInfo *info)
6363 {
6464 g_free (info->message);
65 g_clear_object (&info->actor_contact);
6566 g_slice_free (LocalPendingInfo, info);
6667 }
6768
421422
422423
423424 static void
425 tp_channel_group_self_contact_changed_cb (TpChannel *self,
426 guint self_handle,
427 const gchar *identifier,
428 gpointer user_data,
429 GObject *weak_object)
430 {
431 tp_channel_group_self_handle_changed_cb (self, self_handle, user_data,
432 weak_object);
433
434 _tp_channel_contacts_self_contact_changed (self, self_handle,
435 identifier);
436 }
437
438
439 static void
424440 tp_channel_got_self_handle_0_16_cb (TpChannel *self,
425441 guint self_handle,
426442 const GError *error,
730746 }
731747 else
732748 {
733 GHashTable *handle_owners;
749 GHashTable *table;
734750 GArray *arr;
735751
736752 DEBUG ("Received %u group properties", g_hash_table_size (asv));
778794 tp_asv_get_boxed (asv, "LocalPendingMembers",
779795 TP_ARRAY_TYPE_LOCAL_PENDING_INFO_LIST));
780796
781 handle_owners = tp_asv_get_boxed (asv, "HandleOwners",
797 table = tp_asv_get_boxed (asv, "HandleOwners",
782798 TP_HASH_TYPE_HANDLE_OWNER_MAP);
783799
784800 self->priv->group_handle_owners = g_hash_table_new (g_direct_hash,
785801 g_direct_equal);
786802
787 if (handle_owners != NULL)
803 if (table != NULL)
788804 tp_g_hash_table_update (self->priv->group_handle_owners,
789 handle_owners, NULL, NULL);
805 table, NULL, NULL);
806
807 table = tp_asv_get_boxed (asv, "MemberIdentifiers",
808 TP_HASH_TYPE_HANDLE_IDENTIFIER_MAP);
809
810 /* If CM implements MemberIdentifiers property, assume it also emits
811 * SelfContactChanged and HandleOwnersChangedDetailed */
812 if (table != NULL)
813 {
814 tp_proxy_signal_connection_disconnect (
815 self->priv->self_handle_changed_sig);
816 tp_proxy_signal_connection_disconnect (
817 self->priv->handle_owners_changed_sig);
818 }
819 else
820 {
821 tp_proxy_signal_connection_disconnect (
822 self->priv->self_contact_changed_sig);
823 tp_proxy_signal_connection_disconnect (
824 self->priv->handle_owners_changed_detailed_sig);
825 }
826
827 self->priv->self_handle_changed_sig = NULL;
828 self->priv->self_contact_changed_sig = NULL;
829 self->priv->handle_owners_changed_sig = NULL;
830 self->priv->handle_owners_changed_detailed_sig = NULL;
831
832 _tp_channel_contacts_group_init (self, table);
790833
791834 goto OUT;
792835 }
814857 g_queue_push_tail (self->priv->introspect_needed,
815858 _tp_channel_glpmwi_0_16);
816859
860 self->priv->cm_too_old_for_contacts = TRUE;
861
817862 OUT:
818863
819864 g_queue_push_tail (self->priv->introspect_needed,
10831128 added, removed, local_pending, remote_pending, actor, reason);
10841129 g_signal_emit_by_name (self, "group-members-changed-detailed", added,
10851130 removed, local_pending, remote_pending, details);
1131
1132 _tp_channel_contacts_members_changed (self, added, removed,
1133 local_pending, remote_pending, actor, details);
10861134 }
10871135
10881136
11831231 }
11841232 }
11851233
1234
1235 static void
1236 tp_channel_handle_owners_changed_detailed_cb (TpChannel *self,
1237 GHashTable *added,
1238 const GArray *removed,
1239 GHashTable *identifiers,
1240 gpointer user_data,
1241 GObject *weak_object)
1242 {
1243 tp_channel_handle_owners_changed_cb (self, added, removed, user_data,
1244 weak_object);
1245
1246 _tp_channel_contacts_handle_owners_changed (self, added, removed,
1247 identifiers);
1248 }
1249
1250
11861251 #define IMMUTABLE_FLAGS \
11871252 (TP_CHANNEL_GROUP_FLAG_PROPERTIES | \
11881253 TP_CHANNEL_GROUP_FLAG_MEMBERS_CHANGED_DETAILED)
12831348 if (sc == NULL)
12841349 DIE ("GroupFlagsChanged");
12851350
1286 sc = tp_cli_channel_interface_group_connect_to_self_handle_changed (self,
1287 tp_channel_group_self_handle_changed_cb, NULL, NULL, NULL, &error);
1288
1289 if (sc == NULL)
1351 priv->self_handle_changed_sig =
1352 tp_cli_channel_interface_group_connect_to_self_handle_changed (self,
1353 tp_channel_group_self_handle_changed_cb, NULL, NULL, NULL, &error);
1354
1355 if (priv->self_handle_changed_sig == NULL)
12901356 DIE ("SelfHandleChanged");
12911357
1292 sc = tp_cli_channel_interface_group_connect_to_handle_owners_changed (self,
1293 tp_channel_handle_owners_changed_cb, NULL, NULL, NULL, &error);
1294
1295 if (sc == NULL)
1358 priv->self_contact_changed_sig =
1359 tp_cli_channel_interface_group_connect_to_self_contact_changed (self,
1360 tp_channel_group_self_contact_changed_cb, NULL, NULL, NULL, &error);
1361
1362 if (priv->self_contact_changed_sig == NULL)
1363 DIE ("SelfContactChanged");
1364
1365 priv->handle_owners_changed_sig =
1366 tp_cli_channel_interface_group_connect_to_handle_owners_changed (self,
1367 tp_channel_handle_owners_changed_cb, NULL, NULL, NULL, &error);
1368
1369 if (priv->handle_owners_changed_sig == NULL)
12961370 DIE ("HandleOwnersChanged");
1371
1372 priv->handle_owners_changed_detailed_sig =
1373 tp_cli_channel_interface_group_connect_to_handle_owners_changed_detailed (
1374 self, tp_channel_handle_owners_changed_detailed_cb, NULL, NULL, NULL,
1375 &error);
1376
1377 if (priv->handle_owners_changed_detailed_sig == NULL)
1378 DIE ("HandleOwnersChangedDetailed");
12971379
12981380 /* First try the 0.17 API (properties). If this fails we'll fall back */
12991381 tp_cli_dbus_properties_call_get_all (self, -1,
2828 typedef void (*TpChannelProc) (TpChannel *self);
2929
3030 typedef struct {
31 TpContact *actor_contact;
3132 TpHandle actor;
3233 TpChannelGroupChangeReason reason;
3334 gchar *message;
5354 */
5455 TpProxySignalConnection *members_changed_sig;
5556 TpProxySignalConnection *members_changed_detailed_sig;
57 TpProxySignalConnection *self_handle_changed_sig;
58 TpProxySignalConnection *self_contact_changed_sig;
59 TpProxySignalConnection *handle_owners_changed_sig;
60 TpProxySignalConnection *handle_owners_changed_detailed_sig;
5661
5762 TpHandle group_self_handle;
5863 TpChannelGroupFlags group_flags;
6772 GError *group_remove_error /* implicitly zero-initialized */ ;
6873 /* guint => guint, NULL if not discovered yet */
6974 GHashTable *group_handle_owners;
75
76 /* reffed TpContact */
77 TpContact *target_contact;
78 TpContact *initiator_contact;
79 TpContact *group_self_contact;
80 /* TpHandle -> reffed TpContact */
81 GHashTable *group_members_contacts;
82 GHashTable *group_local_pending_contacts;
83 GHashTable *group_remote_pending_contacts;
84 GHashTable *group_contact_owners;
85 gboolean cm_too_old_for_contacts;
86
87 GQueue *contacts_queue;
7088
7189 /* NULL, or TpHandle => TpChannelChatState;
7290 * if non-NULL, we're watching for ChatStateChanged */
96114
97115 void _tp_channel_get_group_properties (TpChannel *self);
98116
117 /* channel-contacts.c internals */
118
119 void _tp_channel_contacts_init (TpChannel *self);
120 void _tp_channel_contacts_group_init (TpChannel *self, GHashTable *identifiers);
121 void _tp_channel_contacts_members_changed (TpChannel *self,
122 const GArray *added, const GArray *removed, const GArray *local_pending,
123 const GArray *remote_pending, guint actor, GHashTable *details);
124 void _tp_channel_contacts_handle_owners_changed (TpChannel *self,
125 GHashTable *added, const GArray *removed, GHashTable *identifiers);
126 void _tp_channel_contacts_self_contact_changed (TpChannel *self,
127 guint self_handle, const gchar *identifier);
128 void _tp_channel_contacts_prepare_async (TpProxy *proxy,
129 const TpProxyFeature *feature,
130 GAsyncReadyCallback callback,
131 gpointer user_data);
132
133 void _tp_channel_contacts_queue_prepare_async (TpChannel *self,
134 GPtrArray *contacts,
135 GAsyncReadyCallback callback,
136 gpointer user_data);
137 void _tp_channel_contacts_queue_prepare_by_id_async (TpChannel *self,
138 GPtrArray *ids,
139 GAsyncReadyCallback callback,
140 gpointer user_data);
141 void _tp_channel_contacts_queue_prepare_by_handle_async (TpChannel *self,
142 GArray *handles,
143 GAsyncReadyCallback callback,
144 gpointer user_data);
145 gboolean _tp_channel_contacts_queue_prepare_finish (TpChannel *self,
146 GAsyncResult *result,
147 GPtrArray **contacts,
148 GError **error);
149
99150 G_END_DECLS
100151
101152 #endif
101101 PROP_INITIATOR_HANDLE,
102102 PROP_INITIATOR_IDENTIFIER,
103103 PROP_PASSWORD_NEEDED,
104 PROP_TARGET_CONTACT,
105 PROP_INITIATOR_CONTACT,
106 PROP_GROUP_SELF_CONTACT,
104107 N_PROPS
105108 };
106109
108111 SIGNAL_GROUP_FLAGS_CHANGED,
109112 SIGNAL_GROUP_MEMBERS_CHANGED,
110113 SIGNAL_GROUP_MEMBERS_CHANGED_DETAILED,
114 SIGNAL_GROUP_CONTACTS_CHANGED,
111115 SIGNAL_CHAT_STATE_CHANGED,
112116 N_SIGNALS
113117 };
182186 tp_channel_get_feature_quark_group (void)
183187 {
184188 return g_quark_from_static_string ("tp-channel-feature-group");
189 }
190
191 /**
192 * TP_CHANNEL_FEATURE_CONTACTS:
193 *
194 * Expands to a call to a function that returns a quark representing the
195 * Contacts features of a TpChannel.
196 *
197 * When this feature is prepared, the #TpContact objects of this channel are
198 * guaranteed to have all of the features previously passed to
199 * tp_simple_client_factory_add_contact_features() prepared.
200 *
201 * On older connection managers, this feature may fail to prepare.
202 *
203 * One can ask for a feature to be prepared using the
204 * tp_proxy_prepare_async() function, and waiting for it to callback.
205 *
206 * Since: 0.15.6
207 */
208
209 GQuark
210 tp_channel_get_feature_quark_contacts (void)
211 {
212 return g_quark_from_static_string ("tp-channel-feature-contacts");
185213 }
186214
187215 /**
454482 case PROP_PASSWORD_NEEDED:
455483 g_value_set_boolean (value, tp_channel_password_needed (self));
456484 break;
485 case PROP_TARGET_CONTACT:
486 g_value_set_object (value, tp_channel_get_target_contact (self));
487 break;
488 case PROP_INITIATOR_CONTACT:
489 g_value_set_object (value, tp_channel_get_initiator_contact (self));
490 break;
491 case PROP_GROUP_SELF_CONTACT:
492 g_value_set_object (value, tp_channel_group_get_self_contact (self));
493 break;
457494 default:
458495 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
459496 break;
11571194 }
11581195
11591196 static void
1197 _tp_channel_create_contacts (TpChannel *self)
1198 {
1199 _tp_channel_contacts_init (self);
1200 _tp_channel_continue_introspection (self);
1201 }
1202
1203 static void
11601204 tp_channel_closed_cb (TpChannel *self,
11611205 gpointer user_data,
11621206 GObject *weak_object)
12641308 /* this does nothing if we already know the channel type */
12651309 g_queue_push_tail (self->priv->introspect_needed,
12661310 _tp_channel_get_channel_type);
1311
1312 g_queue_push_tail (self->priv->introspect_needed,
1313 _tp_channel_create_contacts);
12671314
12681315 /* This makes a call unless (a) we already know the Interfaces by now, and
12691316 * (b) priv->exists is TRUE (i.e. either GetAll, GetHandle or GetChannelType
12951342 self->priv->handle = 0;
12961343 self->priv->channel_properties = g_hash_table_new_full (g_str_hash,
12971344 g_str_equal, g_free, (GDestroyNotify) tp_g_value_slice_free);
1345 self->priv->contacts_queue = g_queue_new ();
12981346 }
12991347
13001348 static void
13131361
13141362 self->priv->conn_invalidated_id = 0;
13151363
1316 tp_clear_object (&self->priv->connection);
1364 g_clear_object (&self->priv->connection);
1365 g_clear_object (&self->priv->target_contact);
1366 g_clear_object (&self->priv->initiator_contact);
1367 g_clear_object (&self->priv->group_self_contact);
1368 tp_clear_pointer (&self->priv->group_members_contacts,
1369 g_hash_table_unref);
1370 tp_clear_pointer (&self->priv->group_local_pending_contacts,
1371 g_hash_table_unref);
1372 tp_clear_pointer (&self->priv->group_remote_pending_contacts,
1373 g_hash_table_unref);
1374 tp_clear_pointer (&self->priv->group_contact_owners,
1375 g_hash_table_unref);
13171376
13181377 finally:
13191378 ((GObjectClass *) tp_channel_parent_class)->dispose (object);
13351394 tp_clear_pointer (&self->priv->introspect_needed, g_queue_free);
13361395 tp_clear_pointer (&self->priv->chat_states, g_hash_table_unref);
13371396 tp_clear_pointer (&self->priv->channel_properties, g_hash_table_unref);
1397 tp_clear_pointer (&self->priv->contacts_queue, g_queue_free);
13381398
13391399 g_free (self->priv->identifier);
13401400
14111471 enum {
14121472 FEAT_CORE,
14131473 FEAT_GROUP,
1474 FEAT_CONTACTS,
14141475 FEAT_CHAT_STATES,
14151476 FEAT_PASSWORD,
14161477 N_FEAT
14301491 features[FEAT_CORE].core = TRUE;
14311492
14321493 features[FEAT_GROUP].name = TP_CHANNEL_FEATURE_GROUP;
1494
1495 features[FEAT_CONTACTS].name = TP_CHANNEL_FEATURE_CONTACTS;
1496 features[FEAT_CONTACTS].prepare_async =
1497 _tp_channel_contacts_prepare_async;
14331498
14341499 features[FEAT_CHAT_STATES].name = TP_CHANNEL_FEATURE_CHAT_STATES;
14351500 features[FEAT_CHAT_STATES].prepare_async =
17991864 NULL, NULL,
18001865 _tp_marshal_VOID__UINT_UINT,
18011866 G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT);
1802 }
1803
1867
1868 /**
1869 * TpChannel:target-contact:
1870 *
1871 * If this channel is for communication with a single contact (that is,
1872 * #TpChannelIface:handle-type is %TP_HANDLE_TYPE_CONTACT), then a #TpContact
1873 * representing the remote contact. For chat rooms, contact search channels and
1874 * other channels without a single remote contact, %NULL.
1875 *
1876 * This is not guaranteed to be set until tp_proxy_prepare_async() has
1877 * finished preparing %TP_CHANNEL_FEATURE_CONTACTS; until then, it may be
1878 * %NULL.
1879 *
1880 * Since: 0.15.6
1881 */
1882 param_spec = g_param_spec_object ("target-contact", "Target Contact",
1883 "The channel's target contact", TP_TYPE_CONTACT,
1884 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
1885 g_object_class_install_property (object_class, PROP_TARGET_CONTACT,
1886 param_spec);
1887
1888 /**
1889 * TpChannel:initiator-contact:
1890 *
1891 * The #TpContact of the initiator of this channel, or %NULL if there is no
1892 * particular initiator.
1893 *
1894 * If the channel was initiated by a remote contact, this represents
1895 * that contact, and #TpChannel:requested will be %FALSE. For instance,
1896 * for an incoming call this property indicates the caller, and for a
1897 * chatroom invitation this property indicates who sent the invitation.
1898 *
1899 * If the channel was requested by the local user, #TpChannel:requested
1900 * will be %TRUE, and this property may be the #TpChannel:group-self-contact
1901 * or #TpConnection:self-contact.
1902 *
1903 * If the channel appeared for some other reason (for instance as a
1904 * side-effect of connecting to the server), this property may be %NULL.
1905 *
1906 * This is not guaranteed to be set until tp_proxy_prepare_async() has
1907 * finished preparing %TP_CHANNEL_FEATURE_CONTACTS; until then, it may be
1908 * %NULL.
1909 *
1910 * Since: 0.15.6
1911 */
1912 param_spec = g_param_spec_object ("initiator-contact", "Initiator Contact",
1913 "Undefined if not a group", TP_TYPE_CONTACT,
1914 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
1915 g_object_class_install_property (object_class, PROP_INITIATOR_CONTACT,
1916 param_spec);
1917
1918 /**
1919 * TpChannel:group-self-contact:
1920 *
1921 * If this channel is a group and %TP_CHANNEL_FEATURE_CONTACTS has been
1922 * prepared, and the user is a member of the group, the #TpContact
1923 * representing them in this group.
1924 *
1925 * Otherwise, the result may be either a contact representing the user,
1926 * or %NULL.
1927 *
1928 * Change notification is via notify::group-self-contact.
1929 *
1930 * Since: 0.15.6
1931 */
1932 param_spec = g_param_spec_object ("group-self-contact", "Group.SelfHandle",
1933 "Undefined if not a group", TP_TYPE_CONTACT,
1934 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
1935 g_object_class_install_property (object_class, PROP_GROUP_SELF_CONTACT,
1936 param_spec);
1937
1938 /**
1939 * TpChannel::group-contacts-changed:
1940 * @self: a channel
1941 * @added: (type GLib.PtrArray) (element-type TelepathyGLib.Contact):
1942 * a #GPtrArray of #TpContact containing the full members added
1943 * @removed: (type GLib.PtrArray) (element-type TelepathyGLib.Contact):
1944 * a #GPtrArray of #TpContact containing the members (full, local-pending or
1945 * remote-pending) removed
1946 * @local_pending: (type GLib.PtrArray) (element-type TelepathyGLib.Contact):
1947 * a #GPtrArray of #TpContact containing the local-pending members added
1948 * @remote_pending: (type GLib.PtrArray) (element-type TelepathyGLib.Contact):
1949 * a #GPtrArray of #TpContact containing the remote-pending members added
1950 * @actor: a #TpContact for the "actor" handle in @details
1951 * @details: (type GLib.HashTable) (element-type utf8 GObject.Value):
1952 * a #GHashTable mapping (gchar *) to #GValue containing details
1953 * about the change, as described in the specification of the
1954 * MembersChangedDetailed signal.
1955 *
1956 * Emitted when the group members change in a Group channel.
1957 *
1958 * This is not guaranteed to be emitted until tp_proxy_prepare_async() has
1959 * finished preparing %TP_CHANNEL_FEATURE_CONTACTS; until then, it may be
1960 * omitted.
1961 *
1962 * Since: 0.15.6
1963 */
1964 signals[SIGNAL_GROUP_CONTACTS_CHANGED] = g_signal_new (
1965 "group-contacts-changed", G_OBJECT_CLASS_TYPE (klass),
1966 G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
1967 0,
1968 NULL, NULL,
1969 _tp_marshal_VOID__BOXED_BOXED_BOXED_BOXED_OBJECT_BOXED,
1970 G_TYPE_NONE, 6,
1971 G_TYPE_PTR_ARRAY, G_TYPE_PTR_ARRAY, G_TYPE_PTR_ARRAY, G_TYPE_PTR_ARRAY,
1972 TP_TYPE_CONTACT, TP_HASH_TYPE_STRING_VARIANT_MAP);
1973 }
18041974
18051975 /**
18061976 * tp_channel_new_from_properties:
127127 tp_channel_get_feature_quark_group ()
128128 GQuark tp_channel_get_feature_quark_group (void) G_GNUC_CONST;
129129
130 #define TP_CHANNEL_FEATURE_CONTACTS \
131 tp_channel_get_feature_quark_contacts ()
132 GQuark tp_channel_get_feature_quark_contacts (void) G_GNUC_CONST;
133
134 TpContact *tp_channel_get_target_contact (TpChannel *self);
135 TpContact *tp_channel_get_initiator_contact (TpChannel *self);
136 TpContact *tp_channel_group_get_self_contact (TpChannel *self);
137 GPtrArray *tp_channel_group_dup_members_contacts (TpChannel *self);
138 GPtrArray *tp_channel_group_dup_local_pending_contacts (TpChannel *self);
139 GPtrArray *tp_channel_group_dup_remote_pending_contacts (TpChannel *self);
140 gboolean tp_channel_group_get_local_pending_contact_info (TpChannel *self,
141 TpContact *local_pending, TpContact **actor,
142 TpChannelGroupChangeReason *reason, const gchar **message);
143 TpContact *tp_channel_group_get_contact_owner (TpChannel *self,
144 TpContact *contact);
145
130146 #define TP_CHANNEL_FEATURE_CHAT_STATES \
131147 tp_channel_get_feature_quark_chat_states ()
132148 GQuark tp_channel_get_feature_quark_chat_states (void) G_GNUC_CONST;
2828 <xi:include href="../spec/Channel_Interface_Media_Signalling.xml"/>
2929 <xi:include href="../spec/Channel_Interface_Messages.xml"/>
3030 <xi:include href="../spec/Channel_Interface_Password.xml"/>
31 <xi:include href="../spec/Channel_Interface_Room.xml"/>
32 <xi:include href="../spec/Channel_Interface_Room_Config.xml"/>
3133 <xi:include href="../spec/Channel_Interface_SASL_Authentication.xml"/>
3234 <xi:include href="../spec/Channel_Interface_Securable.xml"/>
3335 <xi:include href="../spec/Channel_Interface_Service_Point.xml"/>
36 <xi:include href="../spec/Channel_Interface_Subject.xml"/>
3437 <xi:include href="../spec/Channel_Interface_SMS.xml"/>
3538 <xi:include href="../spec/Channel_Interface_Tube.xml"/>
3639
55
66 <xi:include href="../spec/Client.xml"/>
77 <xi:include href="../spec/Client_Observer.xml"/>
8 <xi:include href="../spec/Client_Approver.xml"/>r
8 <xi:include href="../spec/Client_Approver.xml"/>
99 <xi:include href="../spec/Client_Handler.xml"/>
1010 <xi:include href="../spec/Client_Interface_Requests.xml"/>
1111
2828 $(nodist_geninclude_HEADERS) \
2929 _gen/stable-spec.xml \
3030 _gen/spec-stamp \
31 _gen/stable-stamp
31 _gen/stable-stamp \
32 _gen/reentrant-methods.list
3233
3334 nodist_geninclude_HEADERS = \
3435 _gen/error-str.h \
123124 _gen/stable-spec.xml: stable-interfaces.xml _gen/stable-stamp $(tools_dir)/xincludator.py
124125 $(AM_V_GEN)$(PYTHON) $(tools_dir)/xincludator.py $< > $@
125126
127 # Grab a list of re-entrant tp_cli_*_run_* methods we are committed to
128 # generating for backwards compatibility.
129 _gen/reentrant-methods.list: $(top_srcdir)/docs/reference/telepathy-glib-sections.txt
130 $(AM_V_GEN)$(GREP) 'tp_cli_.*_run_.*' $< > $@
131
126132 # Things generated from the whole spec at once
127133
128134 _gen/gtypes.h _gen/gtypes-body.h: _gen/stable-spec.xml \
192198 $< Tp_Svc_
193199
194200 _gen/tp-cli-%-body.h _gen/tp-cli-%.h: _gen/tp-spec-%.xml \
201 _gen/reentrant-methods.list \
195202 $(tools_dir)/glib-client-gen.py \
196203 codegen.am
197204 $(AM_V_GEN)set -e; \
199206 subclass_assert= ; \
200207 case $* in \
201208 generic) \
202 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
203209 ;; \
204210 account-manager) \
205211 subclass=--subclass=TpAccountManager; \
212218 channel) \
213219 subclass=--subclass=TpChannel; \
214220 subclass_assert=--subclass-assert=TP_IS_CHANNEL; \
215 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
216221 ;; \
217222 channel-dispatcher) \
218223 subclass=--subclass=TpChannelDispatcher; \
233238 connection-manager) \
234239 subclass=--subclass=TpConnectionManager; \
235240 subclass_assert=--subclass-assert=TP_IS_CONNECTION_MANAGER \
236 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
237241 ;; \
238242 connection) \
239243 subclass=--subclass=TpConnection; \
240244 subclass_assert=--subclass-assert=TP_IS_CONNECTION; \
241 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
242245 ;; \
243246 media-session-handler) \
244247 subclass=--subclass=TpMediaSessionHandler; \
245248 subclass_assert=--subclass-assert=TP_IS_MEDIA_SESSION_HANDLER; \
246 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
247249 ;; \
248250 media-stream-handler) \
249251 subclass=--subclass=TpMediaStreamHandler; \
250252 subclass_assert=--subclass-assert=TP_IS_MEDIA_STREAM_HANDLER; \
251 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
252253 ;; \
253254 dbus-daemon) \
254255 subclass=--subclass=TpDBusDaemon; \
255256 subclass_assert=--subclass-assert=TP_IS_DBUS_DAEMON; \
256 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
257257 ;; \
258258 esac; \
259259 $(PYTHON) $(tools_dir)/glib-client-gen.py \
262262 --iface-quark-prefix=TP_IFACE_QUARK \
263263 --tp-proxy-api=0.7.6 \
264264 --deprecation-attribute=_TP_GNUC_DEPRECATED \
265 $$maybe_reentrant \
265 --deprecate-reentrant=TP_DISABLE_DEPRECATED \
266 --generate-reentrant=_gen/reentrant-methods.list \
266267 $< Tp_Cli _gen/tp-cli-$*
267268
268269 # vim:set ft=automake:
265265
266266 /* Give the contact ref to the table */
267267 g_hash_table_insert (self->priv->roster, key, contact);
268 }
269
270 /* emit initial set if roster is not empty */
271 if (g_hash_table_size (self->priv->roster) != 0)
272 {
273 GPtrArray *added;
274 GPtrArray *removed;
275
276 added = tp_connection_dup_contact_list (self);
277 removed = g_ptr_array_new ();
278 g_signal_emit_by_name (self, "contact-list-changed", added, removed);
279 g_ptr_array_unref (added);
280 g_ptr_array_unref (removed);
268281 }
269282
270283 self->priv->contact_list_state = TP_CONTACT_LIST_STATE_SUCCESS;
763776 result = g_simple_async_result_new ((GObject *) self, callback, user_data, \
764777 tp_connection_##method##_async); \
765778 \
766 tp_cli_connection_interface_contact_list_call_##method (self, -1, \
767 handles, ##__VA_ARGS__, generic_callback, result, g_object_unref, NULL); \
779 tp_cli_connection_interface_contact_list_call_##method (self, -1, handles, \
780 ##__VA_ARGS__, generic_callback, result, g_object_unref, NULL); \
768781 g_array_unref (handles); \
769782 } G_STMT_END
770783
11051118 tp_connection_##method##_async); \
11061119 \
11071120 tp_cli_connection_interface_contact_groups_call_##method (self, -1, \
1108 group, handles, generic_callback, result, g_object_unref, NULL); \
1121 group, handles, generic_callback, result, g_object_unref, NULL); \
11091122 g_array_unref (handles); \
11101123 } G_STMT_END
11111124
9292 TpProxyPendingCall *introspection_call;
9393
9494 unsigned ready:1;
95 unsigned ready_enough_for_contacts:1;
9596 unsigned has_immortal_handles:1;
9697 unsigned tracking_aliases_changed:1;
9798 unsigned tracking_avatar_updated:1;
691691
692692 g_assert (self->priv->contact_attribute_interfaces == NULL);
693693 self->priv->contact_attribute_interfaces = arr;
694 self->priv->ready_enough_for_contacts = TRUE;
694695
695696 tp_connection_continue_introspection (self);
696697 }
788789 }
789790
790791 static void
792 get_self_contact (TpConnection *self)
793 {
794 TpSimpleClientFactory *factory;
795 GArray *features;
796
797 factory = tp_proxy_get_factory (self);
798 features = tp_simple_client_factory_dup_contact_features (factory, self);
799
800 /* FIXME: We should use tp_simple_client_factory_ensure_contact(), but that would
801 * require immortal-handles and spec change to give the self identifier. */
802 /* This relies on the special case in tp_connection_get_contacts_by_handle()
803 * which makes it start working slightly early. */
804 tp_connection_get_contacts_by_handle (self,
805 1, &self->priv->last_known_self_handle,
806 features->len, (TpContactFeature *) features->data,
807 tp_connection_got_self_contact_cb, NULL, NULL, NULL);
808
809 g_array_unref (features);
810 }
811
812 static void
813 introspect_self_contact (TpConnection *self)
814 {
815 self->priv->introspecting_self_contact = TRUE;
816 get_self_contact (self);
817 }
818
819 static void
791820 got_self_handle (TpConnection *self,
792821 guint self_handle,
793822 const GError *error,
814843 }
815844
816845 self->priv->last_known_self_handle = self_handle;
817 self->priv->introspecting_self_contact = TRUE;
818 /* This relies on the special case in tp_connection_get_contacts_by_handle()
819 * which makes it start working slightly early. */
820 tp_connection_get_contacts_by_handle (self, 1, &self_handle, 0, NULL,
821 tp_connection_got_self_contact_cb, NULL, NULL, NULL);
846 self->priv->introspect_needed = g_list_append (self->priv->introspect_needed,
847 introspect_self_contact);
848 tp_connection_continue_introspection (self);
822849 }
823850
824851 static void
835862
836863 DEBUG ("SelfHandleChanged to %u, I wonder what that means?", self_handle);
837864 self->priv->last_known_self_handle = self_handle;
838 tp_connection_get_contacts_by_handle (self, 1, &self_handle, 0, NULL,
839 tp_connection_got_self_contact_cb, NULL, NULL, NULL);
840 }
841
842 static void
843 get_self_handle (TpConnection *self)
865 get_self_contact (self);
866 }
867
868 static void
869 introspect_self_handle (TpConnection *self)
844870 {
845871 if (!self->priv->introspecting_after_connected)
846872 {
874900 {
875901 self->priv->introspect_needed = g_list_append (
876902 self->priv->introspect_needed, introspect_contacts);
903 }
904 else
905 {
906 self->priv->ready_enough_for_contacts = TRUE;
877907 }
878908 }
879909
904934 }
905935
906936 g_assert (self->priv->introspect_needed == NULL);
907 self->priv->introspect_needed = g_list_append (self->priv->introspect_needed,
908 get_self_handle);
909937
910938 if (interfaces != NULL)
911939 tp_connection_add_interfaces_from_introspection (self, interfaces);
940
941 self->priv->introspect_needed = g_list_append (self->priv->introspect_needed,
942 introspect_self_handle);
912943
913944 /* FIXME: give subclasses a chance to influence the definition of "ready"
914945 * now that we have our interfaces? */
12761307 if (status == TP_CONNECTION_STATUS_CONNECTED)
12771308 {
12781309 self->priv->introspecting_after_connected = TRUE;
1279
12801310 self->priv->last_known_self_handle = self_handle;
1281 self->priv->introspecting_self_contact = TRUE;
1282
1283 /* This relies on the special case in tp_connection_get_contacts_by_handle()
1284 * which makes it start working slightly early. */
1285 tp_connection_get_contacts_by_handle (self, 1, &self_handle, 0, NULL,
1286 tp_connection_got_self_contact_cb, NULL, NULL, NULL);
1287
1288 /* tp_connection_got_self_contact_cb will resume the introspection */
1311
1312 self->priv->introspect_needed = g_list_append (
1313 self->priv->introspect_needed, introspect_self_contact);
12891314 }
12901315 else
12911316 {
12921317 tp_connection_status_changed (self, status,
12931318 TP_CONNECTION_STATUS_REASON_NONE_SPECIFIED);
1294
1295 tp_connection_continue_introspection (self);
12961319 }
12971320
1321 tp_connection_continue_introspection (self);
12981322 return;
12991323 }
13001324 else if (error != NULL)
14241448
14251449 tp_clear_pointer (&self->priv->balance_currency, g_free);
14261450 tp_clear_pointer (&self->priv->balance_uri, g_free);
1451 tp_clear_pointer (&self->priv->cm_name, g_free);
1452 tp_clear_pointer (&self->priv->proto_name, g_free);
14271453
14281454 ((GObjectClass *) tp_connection_parent_class)->finalize (object);
14291455 }
16761702 * If the local user's unique identifier changes (for instance by using
16771703 * /nick on IRC), this property will change to a different #TpContact object
16781704 * representing the new identifier, and #GObject::notify will be emitted.
1705 *
1706 * The #TpContact object is guaranteed to have all of the features previously
1707 * passed to tp_simple_client_factory_add_contact_features() prepared.
16791708 *
16801709 * To wait for a non-%NULL self-contact (and other properties), call
16811710 * tp_proxy_prepare_async() with the feature
20812110 * desired features prepared. See
20822111 * tp_simple_client_factory_add_contact_features() to define which features
20832112 * needs to be prepared.
2113 *
2114 * This signal is also emitted for the initial set of contacts once retrieved.
20842115 *
20852116 * For this signal to be emitted, you must first call
20862117 * tp_proxy_prepare_async() with the feature
30373068 else
30383069 {
30393070 /* no detailed error, but we *have* been invalidated - guess one based
3040 * on the invalidation reason, and don't give any details */
3071 * on the invalidation reason */
30413072
30423073 if (details != NULL)
30433074 {
30443075 if (self->priv->connection_error_details == NULL)
3045 self->priv->connection_error_details = g_hash_table_new (
3046 g_str_hash, g_str_equal);
3047
3048 g_assert (g_hash_table_size (self->priv->connection_error_details)
3049 == 0);
3076 {
3077 self->priv->connection_error_details = tp_asv_new (
3078 "debug-message", G_TYPE_STRING, proxy->invalidated->message,
3079 NULL);
3080 }
30503081
30513082 *details = self->priv->connection_error_details;
30523083 }
2222
2323 #define DEBUG_FLAG TP_DEBUG_CONTACTS
2424 #include "telepathy-glib/debug-internal.h"
25 #include "telepathy-glib/util-internal.h"
26
27 static void
28 generic_callback (TpConnection *self,
29 const GError *error,
30 gpointer user_data,
31 GObject *weak_object)
32 {
33 GSimpleAsyncResult *result = user_data;
34
35 if (error != NULL)
36 {
37 DEBUG ("Operation failed: %s", error->message);
38 g_simple_async_result_set_from_error (result, error);
39 }
40
41 /* tp_cli callbacks can potentially be called in a re-entrant way,
42 * so we can't necessarily complete @result without using an idle. */
43 g_simple_async_result_complete_in_idle (result);
44 }
45
46 /* Small macro trick because DBus method is remove_contacts and in this
47 * TpContact helper API we removed the redundant _contacts. */
48 #define tp_contact_remove_contacts_async tp_contact_remove_async
49
50 #define contact_list_generic_async(method, ...) \
51 G_STMT_START { \
52 GSimpleAsyncResult *result; \
53 TpHandle handle; \
54 GArray *handles; \
55 \
56 g_return_if_fail (TP_IS_CONTACT (self)); \
57 \
58 handle = tp_contact_get_handle (self); \
59 handles = g_array_new (FALSE, FALSE, sizeof (TpHandle)); \
60 g_array_append_val (handles, handle); \
61 \
62 result = g_simple_async_result_new ((GObject *) self, callback, user_data, \
63 tp_contact_##method##_async); \
64 \
65 tp_cli_connection_interface_contact_list_call_##method ( \
66 tp_contact_get_connection (self), -1, handles, ##__VA_ARGS__, \
67 generic_callback, result, g_object_unref, NULL); \
68 g_array_unref (handles); \
69 } G_STMT_END
70
71 #define generic_finish(method) \
72 _tp_implement_finish_void (self, tp_contact_##method##_async);
2573
2674 /**
2775 * tp_contact_request_subscription_async:
4189 GAsyncReadyCallback callback,
4290 gpointer user_data)
4391 {
44 tp_connection_request_subscription_async (tp_contact_get_connection (self),
45 1, &self, message, callback, user_data);
92 contact_list_generic_async (request_subscription, message);
4693 }
4794
4895 /**
62109 GAsyncResult *result,
63110 GError **error)
64111 {
65 return tp_connection_request_subscription_finish (
66 tp_contact_get_connection (self), result, error);
112 generic_finish (request_subscription);
67113 }
68114
69115 /**
82128 GAsyncReadyCallback callback,
83129 gpointer user_data)
84130 {
85 tp_connection_authorize_publication_async (tp_contact_get_connection (self),
86 1, &self, callback, user_data);
131 contact_list_generic_async (authorize_publication);
87132 }
88133
89134 /**
103148 GAsyncResult *result,
104149 GError **error)
105150 {
106 return tp_connection_authorize_publication_finish (
107 tp_contact_get_connection (self), result, error);
151 generic_finish (authorize_publication);
108152 }
109153
110154 /**
123167 GAsyncReadyCallback callback,
124168 gpointer user_data)
125169 {
126 tp_connection_remove_contacts_async (tp_contact_get_connection (self),
127 1, &self, callback, user_data);
170 contact_list_generic_async (remove_contacts);
128171 }
129172
130173 /**
144187 GAsyncResult *result,
145188 GError **error)
146189 {
147 return tp_connection_remove_contacts_finish (
148 tp_contact_get_connection (self), result, error);
190 generic_finish (remove_contacts);
149191 }
150192
151193 /**
164206 GAsyncReadyCallback callback,
165207 gpointer user_data)
166208 {
167 tp_connection_unsubscribe_async (tp_contact_get_connection (self),
168 1, &self, callback, user_data);
209 contact_list_generic_async (unsubscribe);
169210 }
170211
171212 /**
185226 GAsyncResult *result,
186227 GError **error)
187228 {
188 return tp_connection_unsubscribe_finish (
189 tp_contact_get_connection (self), result, error);
229 generic_finish (unsubscribe);
190230 }
191231
192232 /**
205245 GAsyncReadyCallback callback,
206246 gpointer user_data)
207247 {
208 tp_connection_unpublish_async (tp_contact_get_connection (self),
209 1, &self, callback, user_data);
248 contact_list_generic_async (unpublish);
210249 }
211250
212251 /**
226265 GAsyncResult *result,
227266 GError **error)
228267 {
229 return tp_connection_unpublish_finish (
230 tp_contact_get_connection (self), result, error);
231 }
268 generic_finish (unpublish);
269 }
270
271 #define contact_groups_generic_async(method) \
272 G_STMT_START { \
273 GSimpleAsyncResult *result; \
274 TpHandle handle; \
275 GArray *handles; \
276 \
277 g_return_if_fail (TP_IS_CONTACT (self)); \
278 \
279 handle = tp_contact_get_handle (self); \
280 handles = g_array_new (FALSE, FALSE, sizeof (TpHandle)); \
281 g_array_append_val (handles, handle); \
282 \
283 result = g_simple_async_result_new ((GObject *) self, callback, user_data, \
284 tp_contact_##method##_async); \
285 \
286 tp_cli_connection_interface_contact_groups_call_##method ( \
287 tp_contact_get_connection (self), -1, group, handles, \
288 generic_callback, result, g_object_unref, NULL); \
289 g_array_unref (handles); \
290 } G_STMT_END
232291
233292 /**
234293 * tp_contact_add_to_group_async:
248307 GAsyncReadyCallback callback,
249308 gpointer user_data)
250309 {
251 tp_connection_add_to_group_async (tp_contact_get_connection (self),
252 group, 1, &self, callback, user_data);
310 contact_groups_generic_async (add_to_group);
253311 }
254312
255313 /**
269327 GAsyncResult *result,
270328 GError **error)
271329 {
272 return tp_connection_add_to_group_finish (
273 tp_contact_get_connection (self), result, error);
330 generic_finish (add_to_group);
274331 }
275332
276333 /**
291348 GAsyncReadyCallback callback,
292349 gpointer user_data)
293350 {
294 tp_connection_remove_from_group_async (tp_contact_get_connection (self),
295 group, 1, &self, callback, user_data);
351 contact_groups_generic_async (remove_from_group);
296352 }
297353
298354 /**
312368 GAsyncResult *result,
313369 GError **error)
314370 {
315 return tp_connection_remove_from_group_finish (
316 tp_contact_get_connection (self), result, error);
317 }
371 generic_finish (remove_from_group);
372 }
13631363
13641364 /* FIXME: Ideally this should be replaced with
13651365 *
1366 * tp_simple_client_factory_dup_contact (tp_proxy_get_factory (connection),
1366 * tp_simple_client_factory_ensure_contact (tp_proxy_get_factory (connection),
13671367 * handle, identifier);
13681368 *
13691369 * but we cannot assert CM has immortal handles (yet). That means we cannot
40284028 return TRUE;
40294029 }
40304030
4031 static void
4032 contacts_context_remove_common_features (ContactsContext *context)
4033 {
4034 ContactFeatureFlags minimal_feature_flags = 0xFFFFFFFF;
4035 guint i;
4036
4037 context->contacts_have_ids = TRUE;
4038
4039 for (i = 0; i < context->contacts->len; i++)
4040 {
4041 TpContact *contact = g_ptr_array_index (context->contacts, i);
4042
4043 minimal_feature_flags &= contact->priv->has_features;
4044
4045 if (contact->priv->identifier == NULL)
4046 context->contacts_have_ids = FALSE;
4047 }
4048
4049 context->wanted &= (~minimal_feature_flags);
4050 }
4051
4052
40314053 /**
40324054 * tp_connection_get_contacts_by_handle:
40334055 * @self: A connection, which must be ready (#TpConnection:connection-ready
40724094 ContactFeatureFlags feature_flags = 0;
40734095 ContactsContext *context;
40744096 GPtrArray *contacts;
4075 guint i;
40764097
40774098 /* As an implementation detail, this method actually starts working slightly
4078 * before we're officially ready, but only if you don't want any features.
4079 * We use this to get the TpContact for the SelfHandle. */
4080 if (n_features != 0 || !self->priv->introspecting_after_connected)
4081 {
4082 g_return_if_fail (tp_connection_is_ready (self));
4083 }
4099 * before we're officially ready. We use this to get the TpContact for the
4100 * SelfHandle. */
4101 g_return_if_fail (self->priv->ready_enough_for_contacts);
40844102
40854103 g_return_if_fail (tp_proxy_get_invalidated (self) == NULL);
40864104 g_return_if_fail (n_handles >= 1);
41014119
41024120 if (contacts != NULL)
41034121 {
4104 ContactFeatureFlags minimal_feature_flags = 0xFFFFFFFF;
4105
41064122 /* We have already held (and possibly inspected) handles, so we can
41074123 * skip that. */
41084124
4109 context->contacts_have_ids = TRUE;
4110
4111 for (i = 0; i < n_handles; i++)
4112 {
4113 TpContact *contact = g_object_ref (g_ptr_array_index (contacts, i));
4114
4115 minimal_feature_flags &= contact->priv->has_features;
4116 g_ptr_array_add (context->contacts, contact);
4117
4118 if (contact->priv->identifier == NULL)
4119 context->contacts_have_ids = FALSE;
4120 }
4121
4122 /* This context won't need to retrieve any features that every
4123 * contact in the list already has. */
4124 context->wanted &= (~minimal_feature_flags);
4125 g_ptr_array_foreach (contacts, (GFunc) g_object_ref, NULL);
4126 tp_g_ptr_array_extend (context->contacts, contacts);
4127
4128 contacts_context_remove_common_features (context);
41254129
41264130 /* We do need to retrieve any features that aren't there yet, though. */
41274131 if (tp_proxy_has_interface_by_id (self,
42384242 g_array_append_val (context->handles, contacts[i]->priv->handle);
42394243 }
42404244
4241 context->contacts_have_ids = TRUE;
4242
42434245 g_assert (context->handles->len == n_contacts);
4246
4247 contacts_context_remove_common_features (context);
42444248
42454249 if (tp_proxy_has_interface_by_id (self,
42464250 TP_IFACE_QUARK_CONNECTION_INTERFACE_CONTACTS))
6363 * @TP_DBUS_PROPERTIES_MIXIN_FLAG_READ: The property can be read using Get and
6464 * GetAll
6565 * @TP_DBUS_PROPERTIES_MIXIN_FLAG_WRITE: The property can be written using Set
66 *
67 * Bitfield representing allowed access to a property.
66 * @TP_DBUS_PROPERTIES_MIXIN_FLAG_EMITS_CHANGED: The property's new value is
67 * included in emissions of PropertiesChanged
68 * @TP_DBUS_PROPERTIES_MIXIN_FLAG_EMITS_INVALIDATED: The property is announced
69 * as invalidated, without its value, in emissions of PropertiesChanged
70 *
71 * Bitfield representing allowed access to a property. At most one of
72 * %TP_DBUS_PROPERTIES_MIXIN_FLAG_EMITS_CHANGED and
73 * %TP_DBUS_PROPERTIES_MIXIN_FLAG_EMITS_INVALIDATED may be specified for a
74 * property.
6875 *
6976 * Since 0.11.5, there is a corresponding #GFlagsClass type,
7077 * %TP_TYPE_DBUS_PROPERTIES_MIXIN_FLAGS.
139146 * given properties. This may only be called once per GInterface, usually from
140147 * a section of its base_init function that only runs once.
141148 *
149 * This is typically only used within generated code; there is normally no
150 * reason to call it manually.
151 *
142152 * Since: 0.7.3
143153 */
144154 void
156166 for (prop = info->props; prop->name != 0; prop++)
157167 {
158168 g_return_if_fail (prop->flags != 0);
159 g_return_if_fail (prop->flags <= (TP_DBUS_PROPERTIES_MIXIN_FLAG_READ |
160 TP_DBUS_PROPERTIES_MIXIN_FLAG_WRITE));
169 g_return_if_fail (
170 (prop->flags & ~( TP_DBUS_PROPERTIES_MIXIN_FLAG_READ
171 | TP_DBUS_PROPERTIES_MIXIN_FLAG_WRITE
172 | TP_DBUS_PROPERTIES_MIXIN_FLAG_EMITS_CHANGED
173 | TP_DBUS_PROPERTIES_MIXIN_FLAG_EMITS_INVALIDATED
174 )) == 0);
175
176 /* Check that at most one change-related flag is set. */
177 if ((prop->flags & TP_DBUS_PROPERTIES_MIXIN_FLAG_EMITS_CHANGED) &&
178 (prop->flags & TP_DBUS_PROPERTIES_MIXIN_FLAG_EMITS_INVALIDATED))
179 {
180 CRITICAL ("at most one of EMITS_CHANGED and EMITS_INVALIDATED may be "
181 "specified for a property, but %s.%s has both",
182 g_quark_to_string (info->dbus_interface),
183 g_quark_to_string (prop->name));
184 g_return_if_reached ();
185 }
186
161187 g_return_if_fail (prop->dbus_signature != NULL);
162188 g_return_if_fail (prop->dbus_signature[0] != '\0');
163189 g_return_if_fail (prop->type != 0);
166192 g_type_set_qdata (g_interface, q, info);
167193 }
168194
169 /* could make this public, but it doesn't seem necessary yet */
170 static TpDBusPropertiesMixinIfaceInfo *
195 /**
196 * tp_svc_interface_get_dbus_properties_info:
197 * @g_interface: The #GType of a service interface
198 *
199 * Retrieves the D-Bus property metadata for the given interface, if any.
200 * This function is typically not useful outside telepathy-glib itself, but may
201 * be useful for domain-specific variations on the theme of SetProperty. If in
202 * doubt, you probably don't need this function.
203 *
204 * Returns: D-Bus property metadata for @g_interface, or %NULL if it has
205 * none.
206 * Since: 0.15.8
207 */
208 TpDBusPropertiesMixinIfaceInfo *
171209 tp_svc_interface_get_dbus_properties_info (GType g_interface)
172210 {
173211 return g_type_get_qdata (g_interface, _iface_prop_info_quark ());
700738 return NULL;
701739 }
702740
741 static TpDBusPropertiesMixinPropImpl *
742 _iface_impl_get_property_impl (
743 GObject *self,
744 TpDBusPropertiesMixinIfaceImpl *iface_impl,
745 const gchar *interface_name,
746 const gchar *property_name,
747 GError **error)
748 {
749 TpDBusPropertiesMixinPropImpl *prop_impl;
750 TpDBusPropertiesMixinPropInfo *prop_info;
751
752 prop_impl = _tp_dbus_properties_mixin_find_prop_impl (iface_impl,
753 property_name);
754
755 if (prop_impl == NULL)
756 {
757 g_set_error (error, TP_ERRORS, TP_ERROR_NOT_IMPLEMENTED,
758 "Unknown property %s on %s", property_name, interface_name);
759 return FALSE;
760 }
761
762 prop_info = prop_impl->mixin_priv;
763
764 if ((prop_info->flags & TP_DBUS_PROPERTIES_MIXIN_FLAG_READ) == 0)
765 {
766 g_set_error (error, TP_ERRORS, TP_ERROR_PERMISSION_DENIED,
767 "Property %s on %s is write-only", property_name, interface_name);
768 return FALSE;
769 }
770
771 if (iface_impl->getter == NULL)
772 {
773 g_set_error (error, TP_ERRORS, TP_ERROR_NOT_IMPLEMENTED,
774 "Getting properties on %s is unimplemented", interface_name);
775 return FALSE;
776 }
777
778 return prop_impl;
779 }
703780
704781 /**
705782 * tp_dbus_properties_mixin_get:
728805 GError **error)
729806 {
730807 TpDBusPropertiesMixinIfaceImpl *iface_impl;
731 TpDBusPropertiesMixinIfaceInfo *iface_info;
732808 TpDBusPropertiesMixinPropImpl *prop_impl;
733 TpDBusPropertiesMixinPropInfo *prop_info;
809
810 g_return_val_if_fail (G_IS_OBJECT (self), FALSE);
811 g_return_val_if_fail (interface_name != NULL, FALSE);
812 g_return_val_if_fail (property_name != NULL, FALSE);
813 g_return_val_if_fail (value != NULL, FALSE);
734814
735815 iface_impl = _tp_dbus_properties_mixin_find_iface_impl (self,
736816 interface_name);
742822 return FALSE;
743823 }
744824
745 iface_info = iface_impl->mixin_priv;
746
747 prop_impl = _tp_dbus_properties_mixin_find_prop_impl (iface_impl,
748 property_name);
749
750 if (prop_impl == NULL)
751 {
752 g_set_error (error, TP_ERRORS, TP_ERROR_NOT_IMPLEMENTED,
753 "Unknown property %s on %s", property_name, interface_name);
825 prop_impl = _iface_impl_get_property_impl (self, iface_impl, interface_name,
826 property_name, error);
827
828 if (prop_impl != NULL)
829 {
830 TpDBusPropertiesMixinIfaceInfo *iface_info = iface_impl->mixin_priv;
831 TpDBusPropertiesMixinPropInfo *prop_info = prop_impl->mixin_priv;
832
833 g_value_init (value, prop_info->type);
834 iface_impl->getter (self, iface_info->dbus_interface,
835 prop_info->name, value, prop_impl->getter_data);
836 return TRUE;
837 }
838 else
839 {
754840 return FALSE;
755841 }
756
757 prop_info = prop_impl->mixin_priv;
758
759 if ((prop_info->flags & TP_DBUS_PROPERTIES_MIXIN_FLAG_READ) == 0)
760 {
761 g_set_error (error, TP_ERRORS, TP_ERROR_PERMISSION_DENIED,
762 "Property %s on %s is write-only", property_name, interface_name);
763 return FALSE;
764 }
765
766 if (iface_impl->getter == NULL)
767 {
768 g_set_error (error, TP_ERRORS, TP_ERROR_NOT_IMPLEMENTED,
769 "Getting properties on %s is unimplemented", interface_name);
770 return FALSE;
771 }
772
773 g_value_init (value, prop_info->type);
774 iface_impl->getter (self, iface_info->dbus_interface,
775 prop_info->name, value, prop_impl->getter_data);
776
777 return TRUE;
778842 }
779843
780844
794858 iface = va_arg (ap, gchar *))
795859 {
796860 GValue *value = g_slice_new0 (GValue);
861 GError *error = NULL;
797862
798863 if (first)
799864 {
810875 */
811876 g_assert (property != NULL);
812877
813 tp_dbus_properties_mixin_get (object, iface, property,
814 value, NULL);
815 /* Fetching our immutable properties had better not fail... */
816 g_assert (G_IS_VALUE (value));
817
818 g_hash_table_insert (table,
819 g_strdup_printf ("%s.%s", iface, property), value);
878 if (tp_dbus_properties_mixin_get (object, iface, property, value,
879 &error))
880 {
881 g_assert (G_IS_VALUE (value));
882 g_hash_table_insert (table,
883 g_strdup_printf ("%s.%s", iface, property), value);
884 }
885 else
886 {
887 /* This is bad and definitely indicates a programming error. */
888 CRITICAL ("Couldn't fetch '%s' on interface '%s': %s",
889 property, iface, error->message);
890 g_clear_error (&error);
891 }
892
820893 }
821894 }
822895
905978 return table;
906979 }
907980
981 /**
982 * tp_dbus_properties_mixin_emit_properties_changed:
983 * @object: an object which uses the D-Bus properties mixin
984 * @interface_name: the interface on which properties have changed
985 * @properties: (allow-none): a %NULL-terminated array of (unqualified)
986 * property names whose values have changed.
987 *
988 * Emits the PropertiesChanged signal for the provided properties. Depending on
989 * the EmitsChangedSignal annotations in the introspection XML, either the new
990 * value of the property will be included in the signal, or merely the fact
991 * that the property has changed.
992 *
993 * For example, the MPRIS specification defines a TrackList interface with two
994 * properties, one of which is annotated with EmitsChangedSignal=true and one
995 * annotated with EmitsChangedSignal=invalidates. The following call would
996 * include the new value of CanEditTracks and list Tracks as invalidated:
997 *
998 * |[
999 * const gchar *properties[] = { "CanEditTracks", "Tracks", NULL };
1000 *
1001 * tp_dbus_properties_mixin_emit_properties_changed (G_OBJECT (self),
1002 * "org.mpris.MediaPlayer2.TrackList", properties);
1003 * ]|
1004 *
1005 * It is an error to pass a property to this
1006 * function if the property is annotated with EmitsChangedSignal=false, or is
1007 * unannotated.
1008 *
1009 * Since: 0.15.6
1010 */
1011 void
1012 tp_dbus_properties_mixin_emit_properties_changed (
1013 GObject *object,
1014 const gchar *interface_name,
1015 const gchar * const *properties)
1016 {
1017 TpDBusPropertiesMixinIfaceImpl *iface_impl;
1018 TpDBusPropertiesMixinIfaceInfo *iface_info;
1019 GHashTable *changed_properties;
1020 GPtrArray *invalidated_properties;
1021 const gchar * const *prop_name;
1022
1023 g_return_if_fail (interface_name != NULL);
1024 iface_impl = _tp_dbus_properties_mixin_find_iface_impl (object,
1025 interface_name);
1026 g_return_if_fail (iface_impl != NULL);
1027
1028 iface_info = iface_impl->mixin_priv;
1029
1030 /* If someone passes no property names, well … that's fine, we have nothing
1031 * to do.
1032 */
1033 if (properties == NULL || properties[0] == NULL)
1034 return;
1035
1036 changed_properties = g_hash_table_new_full (g_str_hash, g_str_equal,
1037 NULL, (GDestroyNotify) tp_g_value_slice_free);
1038 invalidated_properties = g_ptr_array_new ();
1039
1040 for (prop_name = properties; *prop_name != NULL; prop_name++)
1041 {
1042 TpDBusPropertiesMixinPropImpl *prop_impl;
1043 TpDBusPropertiesMixinPropInfo *prop_info;
1044 GError *error = NULL;
1045
1046 prop_impl = _iface_impl_get_property_impl (object, iface_impl,
1047 interface_name, *prop_name, &error);
1048
1049 if (prop_impl == NULL)
1050 {
1051 WARNING ("Couldn't get value for '%s.%s': %s", interface_name,
1052 *prop_name, error->message);
1053 g_clear_error (&error);
1054 g_return_if_reached ();
1055 }
1056
1057 prop_info = prop_impl->mixin_priv;
1058
1059 if (prop_info->flags & TP_DBUS_PROPERTIES_MIXIN_FLAG_EMITS_CHANGED)
1060 {
1061 GValue v = { 0, };
1062
1063 g_value_init (&v, prop_info->type);
1064 iface_impl->getter (object, iface_info->dbus_interface,
1065 prop_info->name, &v, prop_impl->getter_data);
1066 g_hash_table_insert (changed_properties, (gchar *) *prop_name,
1067 tp_g_value_slice_dup (&v));
1068
1069 g_value_unset (&v);
1070 }
1071 else if (prop_info->flags &
1072 TP_DBUS_PROPERTIES_MIXIN_FLAG_EMITS_INVALIDATED)
1073 {
1074 g_ptr_array_add (invalidated_properties, (gchar *) *prop_name);
1075 }
1076 else
1077 {
1078 WARNING ("'%s.%s' is not annotated with EmitsChangedSignal'",
1079 interface_name, *prop_name);
1080 }
1081 }
1082
1083 g_ptr_array_add (invalidated_properties, NULL);
1084
1085 tp_svc_dbus_properties_emit_properties_changed (object, interface_name,
1086 changed_properties, (const gchar **) invalidated_properties->pdata);
1087 g_hash_table_unref (changed_properties);
1088 g_ptr_array_unref (invalidated_properties);
1089 }
1090
1091 /**
1092 * tp_dbus_properties_mixin_emit_properties_changed_varargs: (skip)
1093 * @object: an object which uses the D-Bus properties mixin
1094 * @interface_name: the interface on which properties have changed
1095 * @...: (unqualified) property names whose values have changed, terminated by
1096 * %NULL.
1097 *
1098 * A shortcut for calling tp_dbus_properties_mixin_emit_properties_changed().
1099 *
1100 * Since: 0.15.6
1101 */
1102 void
1103 tp_dbus_properties_mixin_emit_properties_changed_varargs (
1104 GObject *object,
1105 const gchar *interface_name,
1106 ...)
1107 {
1108 GPtrArray *property_names = g_ptr_array_new ();
1109 char *property_name;
1110 va_list ap;
1111
1112 va_start (ap, interface_name);
1113 do
1114 {
1115 property_name = va_arg (ap, char *);
1116 g_ptr_array_add (property_names, property_name);
1117 }
1118 while (property_name != NULL);
1119 va_end (ap);
1120
1121 tp_dbus_properties_mixin_emit_properties_changed (object, interface_name,
1122 (const gchar * const *) property_names->pdata);
1123 g_ptr_array_unref (property_names);
1124 }
9081125
9091126 static void
9101127 _tp_dbus_properties_mixin_get (TpSvcDBusProperties *iface,
9711188 g_hash_table_destroy (values);
9721189 }
9731190
1191 /**
1192 * tp_dbus_properties_mixin_set:
1193 * @self: an object with this mixin
1194 * @interface_name: a D-Bus interface name
1195 * @property_name: a D-Bus property name
1196 * @value: a GValue containing the new value for this property.
1197 * @error: used to return an error on failure
1198 *
1199 * Sets a property to the value specified by @value, as if by
1200 * calling the D-Bus method org.freedesktop.DBus.Properties.Set.
1201 *
1202 * If Set would return a D-Bus error, sets @error and returns %FALSE
1203 *
1204 * Returns: %TRUE on success; %FALSE (setting @error) on failure
1205 * Since: 0.15.8
1206 */
1207 gboolean
1208 tp_dbus_properties_mixin_set (
1209 GObject *self,
1210 const gchar *interface_name,
1211 const gchar *property_name,
1212 const GValue *value,
1213 GError **error)
1214 {
1215 TpDBusPropertiesMixinIfaceImpl *iface_impl;
1216 TpDBusPropertiesMixinIfaceInfo *iface_info;
1217 TpDBusPropertiesMixinPropImpl *prop_impl;
1218 TpDBusPropertiesMixinPropInfo *prop_info;
1219 GValue copy = { 0 };
1220 gboolean ret;
1221
1222 g_return_val_if_fail (G_IS_OBJECT (self), FALSE);
1223 g_return_val_if_fail (interface_name != NULL, FALSE);
1224 g_return_val_if_fail (property_name != NULL, FALSE);
1225 g_return_val_if_fail (G_IS_VALUE (value), FALSE);
1226
1227 iface_impl = _tp_dbus_properties_mixin_find_iface_impl (self,
1228 interface_name);
1229
1230 if (iface_impl == NULL)
1231 {
1232 g_set_error (error, TP_ERRORS, TP_ERROR_NOT_IMPLEMENTED,
1233 "No properties known for interface '%s'", interface_name);
1234 return FALSE;
1235 }
1236
1237 iface_info = iface_impl->mixin_priv;
1238
1239 prop_impl = _tp_dbus_properties_mixin_find_prop_impl (iface_impl,
1240 property_name);
1241
1242 if (prop_impl == NULL)
1243 {
1244 g_set_error (error, TP_ERRORS, TP_ERROR_NOT_IMPLEMENTED,
1245 "Unknown property '%s' on interface '%s'", property_name,
1246 interface_name);
1247 return FALSE;
1248 }
1249
1250 prop_info = prop_impl->mixin_priv;
1251
1252 if ((prop_info->flags & TP_DBUS_PROPERTIES_MIXIN_FLAG_WRITE) == 0)
1253 {
1254 g_set_error (error, TP_ERRORS, TP_ERROR_PERMISSION_DENIED,
1255 "'%s.%s' is read-only", interface_name, property_name);
1256 return FALSE;
1257 }
1258
1259 if (iface_impl->setter == NULL)
1260 {
1261 g_set_error (error, TP_ERRORS, TP_ERROR_NOT_IMPLEMENTED,
1262 "Setting properties on '%s' is unimplemented", interface_name);
1263 return FALSE;
1264 }
1265
1266 if (G_VALUE_TYPE (value) != prop_info->type)
1267 {
1268 g_value_init (&copy, prop_info->type);
1269
1270 if (!g_value_transform (value, &copy))
1271 {
1272 g_set_error (error, TP_ERRORS, TP_ERROR_INVALID_ARGUMENT,
1273 "Cannot convert %s to %s for property %s",
1274 g_type_name (G_VALUE_TYPE (value)),
1275 g_type_name (prop_info->type),
1276 property_name);
1277 ret = FALSE;
1278 goto out;
1279 }
1280
1281 /* use copy instead of value from now on */
1282 value = &copy;
1283 }
1284
1285 ret = iface_impl->setter (self, iface_info->dbus_interface,
1286 prop_info->name, value, prop_impl->setter_data, error);
1287
1288 out:
1289 if (G_IS_VALUE (&copy))
1290 g_value_unset (&copy);
1291
1292 return ret;
1293 }
1294
9741295 static void
9751296 _tp_dbus_properties_mixin_set (TpSvcDBusProperties *iface,
9761297 const gchar *interface_name,
9791300 DBusGMethodInvocation *context)
9801301 {
9811302 GObject *self = G_OBJECT (iface);
982 TpDBusPropertiesMixinIfaceImpl *iface_impl;
983 TpDBusPropertiesMixinIfaceInfo *iface_info;
984 TpDBusPropertiesMixinPropImpl *prop_impl;
985 TpDBusPropertiesMixinPropInfo *prop_info;
986 GValue copy = { 0 };
9871303 GError *error = NULL;
9881304
989 iface_impl = _tp_dbus_properties_mixin_find_iface_impl (self,
990 interface_name);
991
992 if (iface_impl == NULL)
993 {
994 GError e = { TP_ERRORS, TP_ERROR_NOT_IMPLEMENTED,
995 "No properties known for that interface" };
996
997 dbus_g_method_return_error (context, &e);
998 return;
999 }
1000
1001 iface_info = iface_impl->mixin_priv;
1002
1003 prop_impl = _tp_dbus_properties_mixin_find_prop_impl (iface_impl,
1004 property_name);
1005
1006 if (prop_impl == NULL)
1007 {
1008 GError e = { TP_ERRORS, TP_ERROR_NOT_IMPLEMENTED,
1009 "Unknown property" };
1010
1011 dbus_g_method_return_error (context, &e);
1012 return;
1013 }
1014
1015 prop_info = prop_impl->mixin_priv;
1016
1017 if ((prop_info->flags & TP_DBUS_PROPERTIES_MIXIN_FLAG_WRITE) == 0)
1018 {
1019 GError e = { TP_ERRORS, TP_ERROR_PERMISSION_DENIED,
1020 "This property is read-only" };
1021
1022 dbus_g_method_return_error (context, &e);
1023 return;
1024 }
1025
1026 if (iface_impl->setter == NULL)
1027 {
1028 GError e = { TP_ERRORS, TP_ERROR_NOT_IMPLEMENTED,
1029 "Setting properties on this interface is unimplemented" };
1030
1031 dbus_g_method_return_error (context, &e);
1032 return;
1033 }
1034
1035 if (G_VALUE_TYPE (value) != prop_info->type)
1036 {
1037 g_value_init (&copy, prop_info->type);
1038
1039 if (!g_value_transform (value, &copy))
1040 {
1041 error = g_error_new (TP_ERRORS, TP_ERROR_INVALID_ARGUMENT,
1042 "Cannot convert %s to %s for property %s",
1043 g_type_name (G_VALUE_TYPE (value)),
1044 g_type_name (prop_info->type),
1045 property_name);
1046
1047 dbus_g_method_return_error (context, error);
1048 g_error_free (error);
1049 goto out;
1050 }
1051
1052 /* use copy instead of value from now on */
1053 value = &copy;
1054 }
1055
1056 if (iface_impl->setter (self, iface_info->dbus_interface,
1057 prop_info->name, value, prop_impl->setter_data, &error))
1305 if (tp_dbus_properties_mixin_set (self, interface_name, property_name, value,
1306 &error))
10581307 {
10591308 tp_svc_dbus_properties_return_from_set (context);
10601309 }
10631312 dbus_g_method_return_error (context, error);
10641313 g_error_free (error);
10651314 }
1066
1067 out:
1068 if (G_IS_VALUE (&copy))
1069 g_value_unset (&copy);
10701315 }
10711316
10721317 /**
3030
3131 typedef enum { /*< flags >*/
3232 TP_DBUS_PROPERTIES_MIXIN_FLAG_READ = 1,
33 TP_DBUS_PROPERTIES_MIXIN_FLAG_WRITE = 2
33 TP_DBUS_PROPERTIES_MIXIN_FLAG_WRITE = 2,
34 TP_DBUS_PROPERTIES_MIXIN_FLAG_EMITS_CHANGED = 4,
35 TP_DBUS_PROPERTIES_MIXIN_FLAG_EMITS_INVALIDATED = 8
3436 } TpDBusPropertiesMixinFlags;
3537
3638 typedef struct {
5355
5456 void tp_svc_interface_set_dbus_properties_info (GType g_interface,
5557 TpDBusPropertiesMixinIfaceInfo *info);
58 TpDBusPropertiesMixinIfaceInfo *tp_svc_interface_get_dbus_properties_info (
59 GType g_interface);
5660
5761 /* ---- Concrete implementation (in GObject subclasses) ------------- */
5862
119123 gboolean tp_dbus_properties_mixin_get (GObject *self,
120124 const gchar *interface_name, const gchar *property_name,
121125 GValue *value, GError **error);
126 gboolean tp_dbus_properties_mixin_set (
127 GObject *self,
128 const gchar *interface_name,
129 const gchar *property_name,
130 const GValue *value,
131 GError **error);
122132
123133 GHashTable *tp_dbus_properties_mixin_make_properties_hash (
124134 GObject *object, const gchar *first_interface,
132142 ...)
133143 G_GNUC_NULL_TERMINATED;
134144
145 void tp_dbus_properties_mixin_emit_properties_changed (
146 GObject *object,
147 const gchar *interface_name,
148 const gchar * const *properties);
149
150 void tp_dbus_properties_mixin_emit_properties_changed_varargs (
151 GObject *object,
152 const gchar *interface_name,
153 ...)
154 G_GNUC_NULL_TERMINATED;
155
135156 G_END_DECLS
136157
137158 #endif /* #ifndef __TP_DBUS_PROPERTIES_MIXIN_H__ */
0 /*
1 * dbus-tube-channel.h - high level API for DBusTube channels
2 *
3 * Copyright (C) 2011 Collabora Ltd. <http://www.collabora.co.uk/>
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 */
19
20 /**
21 * SECTION:dbus-tube-channel
22 * @title: TpDBusTubeChannel
23 * @short_description: proxy object for a dbus tube channel
24 *
25 * #TpDBusTubeChannel is a sub-class of #TpChannel providing convenient API
26 * to offer and accept a dbus tube.
27 *
28 * Since: 0.15.6
29 */
30
31 /**
32 * TpDBusTubeChannel:
33 *
34 * Data structure representing a #TpDBusTubeChannel.
35 *
36 * Since: 0.15.6
37 */
38
39 /**
40 * TpDBusTubeChannelClass:
41 *
42 * The class of a #TpDBusTubeChannel.
43 *
44 * Since: 0.15.6
45 */
46
47 #include <config.h>
48
49 #include "telepathy-glib/dbus-tube-channel.h"
50
51 #include <telepathy-glib/contact.h>
52 #include <telepathy-glib/dbus.h>
53 #include <telepathy-glib/enums.h>
54 #include <telepathy-glib/gnio-util.h>
55 #include <telepathy-glib/gtypes.h>
56 #include <telepathy-glib/interfaces.h>
57 #include <telepathy-glib/proxy-subclass.h>
58 #include <telepathy-glib/util-internal.h>
59 #include <telepathy-glib/util.h>
60
61 #define DEBUG_FLAG TP_DEBUG_CHANNEL
62 #include "telepathy-glib/automatic-client-factory-internal.h"
63 #include "telepathy-glib/debug-internal.h"
64
65 #include "_gen/signals-marshal.h"
66
67 #include <stdio.h>
68 #include <glib/gstdio.h>
69
70 G_DEFINE_TYPE (TpDBusTubeChannel, tp_dbus_tube_channel, TP_TYPE_CHANNEL)
71
72 struct _TpDBusTubeChannelPrivate
73 {
74 GHashTable *parameters;
75 };
76
77 enum
78 {
79 PROP_SERVICE_NAME = 1,
80 PROP_PARAMETERS
81 };
82
83 static void
84 tp_dbus_tube_channel_dispose (GObject *obj)
85 {
86 TpDBusTubeChannel *self = (TpDBusTubeChannel *) obj;
87
88 tp_clear_pointer (&self->priv->parameters, g_hash_table_unref);
89
90 G_OBJECT_CLASS (tp_dbus_tube_channel_parent_class)->dispose (obj);
91 }
92
93 static void
94 tp_dbus_tube_channel_get_property (GObject *object,
95 guint property_id,
96 GValue *value,
97 GParamSpec *pspec)
98 {
99 TpDBusTubeChannel *self = (TpDBusTubeChannel *) object;
100
101 switch (property_id)
102 {
103 case PROP_SERVICE_NAME:
104 g_value_set_string (value,
105 tp_dbus_tube_channel_get_service_name (self));
106 break;
107
108 case PROP_PARAMETERS:
109 g_value_set_boxed (value, self->priv->parameters);
110 break;
111
112 default:
113 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
114 break;
115 }
116 }
117
118 static void
119 tp_dbus_tube_channel_constructed (GObject *obj)
120 {
121 TpDBusTubeChannel *self = (TpDBusTubeChannel *) obj;
122 void (*chain_up) (GObject *) =
123 ((GObjectClass *) tp_dbus_tube_channel_parent_class)->constructed;
124 TpChannel *chan = (TpChannel *) obj;
125 GHashTable *props;
126
127 if (chain_up != NULL)
128 chain_up (obj);
129
130 if (tp_channel_get_channel_type_id (chan) !=
131 TP_IFACE_QUARK_CHANNEL_TYPE_DBUS_TUBE)
132 {
133 GError error = { TP_DBUS_ERRORS, TP_DBUS_ERROR_INCONSISTENT,
134 "Channel is not a D-Bus tube" };
135
136 DEBUG ("Channel is not a D-Bus tube: %s", tp_channel_get_channel_type (
137 chan));
138
139 tp_proxy_invalidate (TP_PROXY (self), &error);
140 return;
141 }
142
143 props = tp_channel_borrow_immutable_properties (TP_CHANNEL (self));
144
145 if (tp_asv_get_string (props, TP_PROP_CHANNEL_TYPE_DBUS_TUBE_SERVICE_NAME)
146 == NULL)
147 {
148 GError error = { TP_DBUS_ERRORS, TP_DBUS_ERROR_INCONSISTENT,
149 "Tube doesn't have DBusTube.ServiceName property" };
150
151 DEBUG ("%s", error.message);
152
153 tp_proxy_invalidate (TP_PROXY (self), &error);
154 return;
155 }
156
157 /* Tube.Parameters is immutable for incoming tubes. For outgoing ones,
158 * it's defined when offering the tube. */
159 if (!tp_channel_get_requested (TP_CHANNEL (self)))
160 {
161 GHashTable *params;
162
163 params = tp_asv_get_boxed (props,
164 TP_PROP_CHANNEL_INTERFACE_TUBE_PARAMETERS,
165 TP_HASH_TYPE_STRING_VARIANT_MAP);
166
167 if (params == NULL)
168 {
169 DEBUG ("Incoming tube doesn't have Tube.Parameters property");
170
171 self->priv->parameters = tp_asv_new (NULL, NULL);
172 }
173 else
174 {
175 self->priv->parameters = g_boxed_copy (
176 TP_HASH_TYPE_STRING_VARIANT_MAP, params);
177 }
178 }
179 }
180
181 static void
182 tp_dbus_tube_channel_class_init (TpDBusTubeChannelClass *klass)
183 {
184 GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
185 GParamSpec *param_spec;
186
187 gobject_class->constructed = tp_dbus_tube_channel_constructed;
188 gobject_class->get_property = tp_dbus_tube_channel_get_property;
189 gobject_class->dispose = tp_dbus_tube_channel_dispose;
190
191 /**
192 * TpDBusTubeChannel:service-name:
193 *
194 * A string representing the service name that will be used over the tube.
195 *
196 * Since: 0.15.6
197 */
198 param_spec = g_param_spec_string ("service-name", "Service Name",
199 "The service name of the dbus tube",
200 NULL,
201 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
202 g_object_class_install_property (gobject_class, PROP_SERVICE_NAME,
203 param_spec);
204
205 /**
206 * TpDBusTubeChannel:parameters:
207 *
208 * A string to #GValue #GHashTable representing the parameters of the tube.
209 *
210 * Will be %NULL for outgoing tubes until the tube has been offered.
211 *
212 * Since: 0.15.6
213 */
214 param_spec = g_param_spec_boxed ("parameters", "Parameters",
215 "The parameters of the dbus tube",
216 TP_HASH_TYPE_STRING_VARIANT_MAP,
217 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
218 g_object_class_install_property (gobject_class, PROP_PARAMETERS, param_spec);
219
220 g_type_class_add_private (gobject_class, sizeof (TpDBusTubeChannelPrivate));
221 }
222
223 static void
224 tp_dbus_tube_channel_init (TpDBusTubeChannel *self)
225 {
226 self->priv = G_TYPE_INSTANCE_GET_PRIVATE ((self), TP_TYPE_DBUS_TUBE_CHANNEL,
227 TpDBusTubeChannelPrivate);
228 }
229
230 TpDBusTubeChannel *
231 _tp_dbus_tube_channel_new_with_factory (
232 TpSimpleClientFactory *factory,
233 TpConnection *conn,
234 const gchar *object_path,
235 const GHashTable *immutable_properties,
236 GError **error)
237 {
238 TpProxy *conn_proxy = (TpProxy *) conn;
239
240 g_return_val_if_fail (TP_IS_CONNECTION (conn), NULL);
241 g_return_val_if_fail (object_path != NULL, NULL);
242 g_return_val_if_fail (immutable_properties != NULL, NULL);
243
244 if (!tp_dbus_check_valid_object_path (object_path, error))
245 return NULL;
246
247 return g_object_new (TP_TYPE_DBUS_TUBE_CHANNEL,
248 "connection", conn,
249 "dbus-daemon", conn_proxy->dbus_daemon,
250 "bus-name", conn_proxy->bus_name,
251 "object-path", object_path,
252 "handle-type", (guint) TP_UNKNOWN_HANDLE_TYPE,
253 "channel-properties", immutable_properties,
254 "factory", factory,
255 NULL);
256 }
257
258 /**
259 * tp_dbus_tube_channel_get_service_name: (skip)
260 * @self: a #TpDBusTubeChannel
261 *
262 * Return the #TpDBusTubeChannel:service-name property
263 *
264 * Returns: (transfer none): the value of #TpDBusTubeChannel:service-name
265 *
266 * Since: 0.15.6
267 */
268 const gchar *
269 tp_dbus_tube_channel_get_service_name (TpDBusTubeChannel *self)
270 {
271 GHashTable *props;
272
273 props = tp_channel_borrow_immutable_properties (TP_CHANNEL (self));
274
275 return tp_asv_get_string (props, TP_PROP_CHANNEL_TYPE_DBUS_TUBE_SERVICE_NAME);
276 }
277
278 /**
279 * tp_dbus_tube_channel_get_parameters: (skip)
280 * @self: a #TpDBusTubeChannel
281 *
282 * Return the #TpDBusTubeChannel:parameters property
283 *
284 * Returns: (transfer none) (element-type utf8 GObject.Value):
285 * the value of #TpDBusTubeChannel:parameters
286 *
287 * Since: 0.15.6
288 */
289 GHashTable *
290 tp_dbus_tube_channel_get_parameters (TpDBusTubeChannel *self)
291 {
292 return self->priv->parameters;
293 }
0 /*
1 * dbus-tube-channel.h - high level API for DBusTube channels
2 *
3 * Copyright (C) 2011 Collabora Ltd. <http://www.collabora.co.uk/>
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 */
19
20 #ifndef __TP_DBUS_TUBE_CHANNEL_H__
21 #define __TP_DBUS_TUBE_CHANNEL_H__
22
23 #include <telepathy-glib/channel.h>
24
25 G_BEGIN_DECLS
26
27 #define TP_TYPE_DBUS_TUBE_CHANNEL (tp_dbus_tube_channel_get_type ())
28 #define TP_DBUS_TUBE_CHANNEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TP_TYPE_DBUS_TUBE_CHANNEL, TpDBusTubeChannel))
29 #define TP_DBUS_TUBE_CHANNEL_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST ((obj), TP_TYPE_DBUS_TUBE_CHANNEL, TpDBusTubeChannelClass))
30 #define TP_IS_DBUS_TUBE_CHANNEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TP_TYPE_DBUS_TUBE_CHANNEL))
31 #define TP_IS_DBUS_TUBE_CHANNEL_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE ((obj), TP_TYPE_DBUS_TUBE_CHANNEL))
32 #define TP_DBUS_TUBE_CHANNEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TP_TYPE_DBUS_TUBE_CHANNEL, TpDBusTubeChannelClass))
33
34 typedef struct _TpDBusTubeChannel TpDBusTubeChannel;
35 typedef struct _TpDBusTubeChannelClass TpDBusTubeChannelClass;
36 typedef struct _TpDBusTubeChannelPrivate TpDBusTubeChannelPrivate;
37
38 struct _TpDBusTubeChannel
39 {
40 /*<private>*/
41 TpChannel parent;
42 TpDBusTubeChannelPrivate *priv;
43 };
44
45 struct _TpDBusTubeChannelClass
46 {
47 /*<private>*/
48 TpChannelClass parent_class;
49 GCallback _padding[7];
50 };
51
52 GType tp_dbus_tube_channel_get_type (void);
53
54 const gchar * tp_dbus_tube_channel_get_service_name (TpDBusTubeChannel *self);
55
56 GHashTable * tp_dbus_tube_channel_get_parameters (TpDBusTubeChannel *self);
57
58 G_END_DECLS
59
60 #endif
19361936
19371937 g_return_if_fail (asv != NULL);
19381938
1939 g_debug ("{");
1940
19391941 g_hash_table_iter_init (&iter, asv);
19401942 while (g_hash_table_iter_next (&iter, (gpointer) &key, (gpointer) &value))
19411943 {
19421944 char *str = g_strdup_value_contents (value);
1943 g_debug ("'%s' : %s", key, str);
1945 g_debug (" '%s' : %s", key, str);
19441946 g_free (str);
19451947 }
1946 }
1948
1949 g_debug ("}");
1950 }
5252 gboolean tp_dbus_check_valid_object_path (const gchar *path,
5353 GError **error);
5454
55 /* The scanner warns about these, but they're skipped anyway.
56 * See GNOME bug#656743 */
57 #ifndef __GI_SCANNER__
5558 GValue *tp_g_value_slice_new_bytes (guint length, gconstpointer bytes)
5659 G_GNUC_WARN_UNUSED_RESULT;
5760 GValue *tp_g_value_slice_new_take_bytes (GArray *bytes)
6265 G_GNUC_WARN_UNUSED_RESULT;
6366 GValue *tp_g_value_slice_new_take_object_path (gchar *path)
6467 G_GNUC_WARN_UNUSED_RESULT;
68 #endif /* __GI_SCANNER__ */
6569
6670 #define tp_asv_size(asv) _tp_asv_size_inline (asv)
6771
2828 TP_DEBUG_DISPATCHER = 1 << 13,
2929 TP_DEBUG_CLIENT = 1 << 14,
3030 TP_DEBUG_CONTACT_LISTS = 1 << 15,
31 TP_DEBUG_SASL = 1 << 16
31 TP_DEBUG_SASL = 1 << 16,
32 TP_DEBUG_ROOM_CONFIG = 1 << 17
3233 } TpDebugFlags;
3334
3435 gboolean _tp_debug_flag_is_set (TpDebugFlags flag);
373373 tp_svc_debug_emit_new_debug_message (self, new_msg->timestamp,
374374 new_msg->domain, new_msg->level, new_msg->string);
375375 }
376
377 #ifndef ENABLE_DEBUG_CACHE
378 /* if there's cache, these are freed when they fall of its end instead */
379 debug_message_free (new_msg);
380 #endif
376381 }
377382
378383 /**
460465 * @domain: Message domain
461466 * @level: The message level
462467 * @format: The printf() format string
463 * @Varargs: The parameters to insert into @format
468 * @...: The parameters to insert into @format
464469 *
465470 * Formats and adds a new message to the debug sender message queue. If the
466471 * #TpDebugSender:enabled property is set to %TRUE, then a NewDebugMessage
112112 { "client", TP_DEBUG_CLIENT },
113113 { "contact-lists", TP_DEBUG_CONTACT_LISTS },
114114 { "sasl", TP_DEBUG_SASL },
115 { "room-config", TP_DEBUG_ROOM_CONFIG },
115116 { 0, }
116117 };
117118
144145 { TP_DEBUG_CLIENT, G_LOG_DOMAIN "/client" },
145146 { TP_DEBUG_CONTACT_LISTS, G_LOG_DOMAIN "/contact-lists" },
146147 { TP_DEBUG_SASL, G_LOG_DOMAIN "/sasl" },
148 { TP_DEBUG_ROOM_CONFIG, G_LOG_DOMAIN "/room-config" },
147149 { 0, NULL }
148150 };
149151
229229 * 'balance-required' MAY be included in CallStateDetails on a Call channel
230230 * (with the same units and scale as AccountBalance) to indicate how much
231231 * credit is required to make this call.
232 * @TP_ERROR_MEDIA_CODECS_INCOMPATIBLE:
233 * <code>org.freedesktop.Telepathy.Error.Media.CodecsIncompatible</code>:
234 * Raised when the local streaming implementation has no codecs in common
235 * with the remote side.
236 * Since: 0.15.6
237 * @TP_ERROR_MEDIA_UNSUPPORTED_TYPE:
238 * <code>org.freedesktop.Telepathy.Error.Media.UnsupportedType</code>:
239 * The media stream type requested is not supported by either the local or
240 * remote side.
241 * Since: 0.15.6
242 * @TP_ERROR_MEDIA_STREAMING_ERROR:
243 * <code>org.freedesktop.Telepathy.Error.Media.StreamingError</code>:
244 * Raised when the call's streaming implementation has some kind of internal
245 * error.
246 * Since: 0.15.6
232247 *
233248 * Enumerated type representing the Telepathy D-Bus errors.
234249 */
8989 TP_ERROR_EMERGENCY_CALLS_NOT_SUPPORTED, /*< nick=EmergencyCallsNotSupported >*/
9090 TP_ERROR_SOFTWARE_UPGRADE_REQUIRED, /*< nick=SoftwareUpgradeRequired >*/
9191 TP_ERROR_INSUFFICIENT_BALANCE, /*< nick=InsufficientBalance >*/
92 TP_ERROR_MEDIA_CODECS_INCOMPATIBLE, /*< nick=Media.CodecsIncompatible >*/
93 TP_ERROR_MEDIA_UNSUPPORTED_TYPE, /*< nick=Media.UnsupportedType >*/
94 TP_ERROR_MEDIA_STREAMING_ERROR, /*< nick=Media.StreamingError >*/
9295 } TpError;
9396
9497 const gchar *tp_error_get_dbus_name (TpError error);
9292 * Since 0.11.16, telepathy-glib also includes basic support for the
9393 * Conference interface, which represents a Group channel that can be
9494 * initiated by merging or upgrading individual 1-1 channels.
95 */
96
97 /**
98 * SECTION:svc-channel-room
99 * @title: Service-side room interfaces
100 * @short_description: room-related functionality for channels
101 *
102 * This collection of interfaces is used to expose various aspects of the
103 * configuration of chat rooms.
104 *
105 * #TpSvcChannelInterfaceRoom consists only of a pair of requestable, immutable
106 * properties: <code>"RoomName"</code> and <code>"Server"</code>. It has no
107 * methods or signals. It should be implemented on channels representing a chat
108 * room (whether it be a text chat, a multi-user call, or some other media
109 * type).
110 *
111 * #TpSvcChannelInterfaceSubject may be implemented by channels which have a
112 * subject (or topic, depending on your protocol's terminology of choice). This
113 * will usually be in addition to #TpSvcChannelInterfaceRoom, though in theory
114 * a 1-1 channel could have a subject. In addition to its single method, it
115 * defines a set of read-only properties, namely <code>"Subject"</code>,
116 * <code>"Actor"</code>, <code>"ActorHandle"</code>, <code>"Timestamp"</code>,
117 * and <code>"CanSet"</code>. Changes should be signalled using
118 * tp_dbus_properties_mixin_emit_properties_changed().
119 *
120 * #TpSvcChannelInterfaceRoomConfig provides a vast array of properties for
121 * other aspects of a chat room's configuration (such as the maximum number of
122 * participants, and whether the room is password-protected). Channels with
123 * this interface will typically implement the other two, too.
124 *
125 * Since: 0.15.8
95126 */
96127
97128 /**
452483 */
453484
454485 /**
486 * SECTION:channel-room
487 * @title: Room-related interfaces on Channels
488 * @short_description: client-side wrappers for Room, RoomConfig and Subject
489 *
490 * This family of interfaces exposes aspects of chat rooms' configuration, and
491 * provides API to modify it (where permitted). Most of the API is in terms of
492 * D-Bus properties; they may be retrieved using
493 * tp_cli_dbus_properties_call_get_all(), and changes monitored using
494 * tp_cli_dbus_properties_connect_to_properties_changed().
495 *
496 * #TP_IFACE_CHANNEL_INTERFACE_ROOM consists only of a pair of requestable,
497 * immutable properties: #TP_PROP_CHANNEL_INTERFACE_ROOM_ROOM_NAME and
498 * #TP_PROP_CHANNEL_INTERFACE_ROOM_SERVER.
499 *
500 * In addition to #TP_IFACE_CHANNEL_INTERFACE_SUBJECT's single method, it
501 * defines a set of read-only properties: <code>"Subject"</code>,
502 * <code>"Actor"</code>, <code>"ActorHandle"</code>, <code>"Timestamp"</code>,
503 * and <code>"CanSet"</code>.
504 *
505 * #TP_IFACE_CHANNEL_INTERFACE_ROOM_CONFIG provides a vast array of properties
506 * for other aspects of a chat room's configuration (such as the maximum number
507 * of participants, and whether the room is password-protected).
508 *
509 * Since: 0.15.8
510 */
511
512 /**
455513 * SECTION:channel-text
456514 * @title: Text channels
457515 * @short_description: client-side wrappers for the Text channel type, and
459459 {
460460 TpGroupMixin *mixin = TP_GROUP_MIXIN (obj);
461461 TpHandle old_self_handle = mixin->self_handle;
462
463 DEBUG ("%u '%s'", new_self_handle,
464 tp_handle_inspect (mixin->handle_repo, new_self_handle));
462 const gchar *new_self_id = tp_handle_inspect (mixin->handle_repo,
463 new_self_handle);
464
465 DEBUG ("%u '%s'", new_self_handle, new_self_id);
465466
466467 mixin->self_handle = 0;
467468
471472
472473 tp_svc_channel_interface_group_emit_self_handle_changed (obj,
473474 new_self_handle);
475 tp_svc_channel_interface_group_emit_self_contact_changed (obj,
476 new_self_handle, new_self_id);
474477
475478 if (old_self_handle != 0)
476479 tp_handle_unref (mixin->handle_repo, old_self_handle);
16561659
16571660 tp_svc_channel_interface_group_emit_handle_owners_changed (obj,
16581661 empty_hash_table, arr_owners_removed);
1662 tp_svc_channel_interface_group_emit_handle_owners_changed_detailed (
1663 obj, empty_hash_table, arr_owners_removed, empty_hash_table);
16591664
16601665 if (mixin->priv->externals != NULL)
16611666 {
16661671 tp_svc_channel_interface_group_emit_handle_owners_changed (
16671672 g_ptr_array_index (mixin->priv->externals, i),
16681673 empty_hash_table, arr_owners_removed);
1674 tp_svc_channel_interface_group_emit_handle_owners_changed_detailed (
1675 g_ptr_array_index (mixin->priv->externals, i),
1676 empty_hash_table, arr_owners_removed, empty_hash_table);
16691677 }
16701678 }
16711679
18951903
18961904
18971905 static void
1906 add_us_mapping_for_handleset (GHashTable *map,
1907 TpHandleRepoIface *repo,
1908 TpHandleSet *handles)
1909 {
1910 TpIntset *set;
1911 TpIntsetFastIter iter;
1912 TpHandle handle;
1913
1914 set = tp_handle_set_peek (handles);
1915 tp_intset_fast_iter_init (&iter, set);
1916 while (tp_intset_fast_iter_next (&iter, &handle))
1917 g_hash_table_insert (map, GUINT_TO_POINTER (handle),
1918 (gchar *) tp_handle_inspect (repo, handle));
1919 }
1920
1921 static void
1922 add_us_mapping_for_owners_map (GHashTable *map,
1923 TpHandleRepoIface *repo,
1924 GHashTable *owners)
1925 {
1926 GHashTableIter iter;
1927 gpointer key, value;
1928
1929 g_hash_table_iter_init (&iter, owners);
1930 while (g_hash_table_iter_next (&iter, &key, &value))
1931 {
1932 TpHandle local_handle = GPOINTER_TO_UINT (key);
1933 TpHandle owner_handle = GPOINTER_TO_UINT (value);
1934
1935 g_hash_table_insert (map, key,
1936 (gchar *) tp_handle_inspect (repo, local_handle));
1937
1938 if (owner_handle != 0)
1939 g_hash_table_insert (map, value,
1940 (gchar *) tp_handle_inspect (repo, owner_handle));
1941 }
1942 }
1943
1944 static void
18981945 add_handle_owners_helper (gpointer key,
18991946 gpointer value,
19001947 gpointer user_data)
19241971
19251972 g_hash_table_insert (mixin->priv->handle_owners, key, value);
19261973 }
1927
19281974
19291975 /**
19301976 * tp_group_mixin_add_handle_owners: (skip)
19491995 {
19501996 TpGroupMixin *mixin = TP_GROUP_MIXIN (obj);
19511997 GArray *empty_array;
1998 GHashTable *ids = g_hash_table_new (NULL, NULL);
19521999
19532000 if (g_hash_table_size (local_to_owner_handle) == 0)
19542001 return;
19612008 tp_svc_channel_interface_group_emit_handle_owners_changed (obj,
19622009 local_to_owner_handle, empty_array);
19632010
2011 add_us_mapping_for_owners_map (ids, mixin->handle_repo, local_to_owner_handle);
2012 tp_svc_channel_interface_group_emit_handle_owners_changed_detailed (obj,
2013 local_to_owner_handle, empty_array, ids);
2014
19642015 g_array_free (empty_array, TRUE);
2016 g_hash_table_unref (ids);
19652017 }
19662018
19672019
19992051 g_hash_table_remove (priv->handle_owners, GUINT_TO_POINTER (handle));
20002052 }
20012053 }
2054
2055 return ret;
2056 }
2057
2058 static GHashTable *
2059 dup_member_identifiers (GObject *obj)
2060 {
2061 TpGroupMixin *mixin = TP_GROUP_MIXIN (obj);
2062 GHashTable *ret = g_hash_table_new (NULL, NULL);
2063
2064 g_hash_table_insert (ret, GUINT_TO_POINTER (mixin->self_handle),
2065 (gchar *) tp_handle_inspect (mixin->handle_repo, mixin->self_handle));
2066
2067 add_us_mapping_for_handleset (ret, mixin->handle_repo, mixin->priv->actors);
2068 add_us_mapping_for_handleset (ret, mixin->handle_repo, mixin->members);
2069 add_us_mapping_for_handleset (ret, mixin->handle_repo, mixin->local_pending);
2070 add_us_mapping_for_handleset (ret, mixin->handle_repo, mixin->remote_pending);
2071
2072 add_us_mapping_for_owners_map (ret, mixin->handle_repo,
2073 mixin->priv->handle_owners);
20022074
20032075 return ret;
20042076 }
20412113 MIXIN_DP_MEMBERS,
20422114 MIXIN_DP_REMOTE_PENDING_MEMBERS,
20432115 MIXIN_DP_SELF_HANDLE,
2116 MIXIN_DP_MEMBER_IDENTIFIERS,
20442117 NUM_MIXIN_DBUS_PROPERTIES
20452118 };
20462119
20812154 q[MIXIN_DP_REMOTE_PENDING_MEMBERS] = g_quark_from_static_string (
20822155 "RemotePendingMembers");
20832156 q[MIXIN_DP_SELF_HANDLE] = g_quark_from_static_string ("SelfHandle");
2157 q[MIXIN_DP_MEMBER_IDENTIFIERS] = g_quark_from_static_string ("MemberIdentifiers");
20842158 }
20852159
20862160 g_return_if_fail (object != NULL);
21362210 {
21372211 g_return_if_fail (G_VALUE_HOLDS_UINT (value));
21382212 g_value_set_uint (value, mixin->self_handle);
2213 }
2214 else if (name == q[MIXIN_DP_MEMBER_IDENTIFIERS])
2215 {
2216 g_return_if_fail (G_VALUE_HOLDS (value, TP_HASH_TYPE_HANDLE_IDENTIFIER_MAP));
2217 g_value_take_boxed (value, dup_member_identifiers (object));
21392218 }
21402219 else
21412220 {
21502229 { "Members", NULL, NULL },
21512230 { "RemotePendingMembers", NULL, NULL },
21522231 { "SelfHandle", NULL, NULL },
2232 { "MemberIdentifiers", NULL, NULL },
21532233 { NULL }
21542234 };
21552235
22932373 /* for certain boxed types we need to supply an empty value */
22942374
22952375 if (G_VALUE_HOLDS (value, TP_HASH_TYPE_HANDLE_OWNER_MAP))
2376 g_value_take_boxed (value, g_hash_table_new (NULL, NULL));
2377 else if (G_VALUE_HOLDS (value, TP_HASH_TYPE_HANDLE_IDENTIFIER_MAP))
22962378 g_value_take_boxed (value, g_hash_table_new (NULL, NULL));
22972379 else if (G_VALUE_HOLDS (value, DBUS_TYPE_G_UINT_ARRAY))
22982380 g_value_take_boxed (value, g_array_sized_new (FALSE, FALSE,
66
77 if HAVE_INTROSPECTION
88
9 # /!\ Order matters, see https://bugzilla.gnome.org/show_bug.cgi?id=660629
910 INTROSPECTION_FILES = \
1011 $(srcdir)/proxy.c _gen/proxy-introspectable.h \
1112 $(srcdir)/account.c $(srcdir)/account.h \
2324 $(srcdir)/connection-manager.c $(srcdir)/connection-manager.h \
2425 $(srcdir)/channel.c $(srcdir)/channel.h \
2526 $(srcdir)/channel-group.c \
27 $(srcdir)/channel-contacts.c \
2628 $(srcdir)/handle.c $(srcdir)/handle.h \
2729 $(srcdir)/handle-channels-context.c $(srcdir)/handle-channels-context.h \
2830 $(srcdir)/dbus-daemon.c $(srcdir)/dbus-daemon.h \
5355 $(srcdir)/base-connection.c $(srcdir)/base-connection.h \
5456 $(srcdir)/handle-repo.c $(srcdir)/handle-repo.h $(srcdir)/handle-set.c \
5557 $(srcdir)/stream-tube-channel.c $(srcdir)/stream-tube-channel.h \
58 $(srcdir)/dbus-tube-channel.c $(srcdir)/dbus-tube-channel.h \
5659 $(srcdir)/stream-tube-connection.c $(srcdir)/stream-tube-connection.h \
5760 $(srcdir)/text-channel.c $(srcdir)/text-channel.h \
5861 $(srcdir)/file-transfer-channel.c $(srcdir)/file-transfer-channel.h \
5454 #include <telepathy-glib/message-mixin.h>
5555
5656 #include <dbus/dbus-glib.h>
57 #include <dbus/dbus-glib-lowlevel.h>
5758 #include <string.h>
5859
5960 #include <telepathy-glib/cm-message.h>
388389 DBusGMethodInvocation *context)
389390 {
390391 TpMessageMixin *mixin = TP_MESSAGE_MIXIN (iface);
391 GList **nodes;
392 GPtrArray *links = g_ptr_array_sized_new (ids->len);
393 TpIntset *seen = tp_intset_new ();
392394 guint i;
393395
394 nodes = g_new (GList *, ids->len);
395
396396 for (i = 0; i < ids->len; i++)
397397 {
398398 guint id = g_array_index (ids, guint, i);
399
400 nodes[i] = g_queue_find_custom (mixin->priv->pending,
399 GList *link_;
400
401 if (tp_intset_is_member (seen, id))
402 {
403 gchar *client = dbus_g_method_get_sender (context);
404
405 DEBUG ("%s passed message id %u more than once in one call to "
406 "AcknowledgePendingMessages. Foolish pup.", client, id);
407 g_free (client);
408 continue;
409 }
410
411 tp_intset_add (seen, id);
412 link_ = g_queue_find_custom (mixin->priv->pending,
401413 GUINT_TO_POINTER (id), pending_item_id_equals_data);
402414
403 if (nodes[i] == NULL)
415 if (link_ == NULL)
404416 {
405417 GError *error = g_error_new (TP_ERRORS, TP_ERROR_INVALID_ARGUMENT,
406418 "invalid message id %u", id);
409421 dbus_g_method_return_error (context, error);
410422 g_error_free (error);
411423
412 g_free (nodes);
424 g_ptr_array_unref (links);
425 tp_intset_destroy (seen);
413426 return;
414427 }
428
429 g_ptr_array_add (links, link_);
415430 }
416431
417432 tp_svc_channel_interface_messages_emit_pending_messages_removed (iface,
418433 ids);
419434
420 for (i = 0; i < ids->len; i++)
421 {
422 TpMessage *item = nodes[i]->data;
423 TpCMMessage *cm_msg = nodes[i]->data;
435 for (i = 0; i < links->len; i++)
436 {
437 GList *link_ = g_ptr_array_index (links, i);
438 TpMessage *item = link_->data;
439 TpCMMessage *cm_msg = link_->data;
424440
425441 DEBUG ("acknowledging message id %u", cm_msg->incoming_id);
426442
427 g_queue_remove (mixin->priv->pending, item);
443 g_queue_delete_link (mixin->priv->pending, link_);
428444 tp_message_destroy (item);
429445 }
430446
431 g_free (nodes);
447 g_ptr_array_unref (links);
448 tp_intset_destroy (seen);
432449 tp_svc_channel_type_text_return_from_acknowledge_pending_messages (context);
433450 }
434451
140140 gchar *icon_name;
141141 GStrv authentication_types;
142142 TpCapabilities *capabilities;
143 TpAvatarRequirements *avatar_req;
143144 };
144145
145146 enum
152153 PROP_CAPABILITIES,
153154 PROP_PARAM_NAMES,
154155 PROP_AUTHENTICATION_TYPES,
156 PROP_AVATAR_REQUIREMENTS,
155157 N_PROPS
156158 };
157159
278280 g_value_set_boxed (value, tp_protocol_get_authentication_types (self));
279281 break;
280282
283 case PROP_AVATAR_REQUIREMENTS:
284 g_value_set_pointer (value, tp_protocol_get_avatar_requirements (self));
285 break;
286
281287 default:
282288 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
283289 break;
355361 g_strfreev (self->priv->authentication_types);
356362 self->priv->authentication_types = NULL;
357363 }
364
365 tp_clear_pointer (&self->priv->avatar_req, tp_avatar_requirements_destroy);
358366
359367 if (dispose != NULL)
360368 dispose (object);
507515
508516 tp_proxy_add_interfaces (proxy, interfaces);
509517
518 if (tp_proxy_has_interface_by_id (self,
519 TP_IFACE_QUARK_PROTOCOL_INTERFACE_AVATARS))
520 {
521 self->priv->avatar_req = tp_avatar_requirements_new (
522 (GStrv) tp_asv_get_strv (self->priv->protocol_properties,
523 TP_PROP_PROTOCOL_INTERFACE_AVATARS_SUPPORTED_AVATAR_MIME_TYPES),
524 tp_asv_get_uint32 (self->priv->protocol_properties,
525 TP_PROP_PROTOCOL_INTERFACE_AVATARS_MINIMUM_AVATAR_WIDTH, NULL),
526 tp_asv_get_uint32 (self->priv->protocol_properties,
527 TP_PROP_PROTOCOL_INTERFACE_AVATARS_MINIMUM_AVATAR_HEIGHT, NULL),
528 tp_asv_get_uint32 (self->priv->protocol_properties,
529 TP_PROP_PROTOCOL_INTERFACE_AVATARS_RECOMMENDED_AVATAR_WIDTH, NULL),
530 tp_asv_get_uint32 (self->priv->protocol_properties,
531 TP_PROP_PROTOCOL_INTERFACE_AVATARS_RECOMMENDED_AVATAR_HEIGHT, NULL),
532 tp_asv_get_uint32 (self->priv->protocol_properties,
533 TP_PROP_PROTOCOL_INTERFACE_AVATARS_MAXIMUM_AVATAR_WIDTH, NULL),
534 tp_asv_get_uint32 (self->priv->protocol_properties,
535 TP_PROP_PROTOCOL_INTERFACE_AVATARS_MAXIMUM_AVATAR_HEIGHT, NULL),
536 tp_asv_get_uint32 (self->priv->protocol_properties,
537 TP_PROP_PROTOCOL_INTERFACE_AVATARS_MAXIMUM_AVATAR_BYTES, NULL));
538 }
539
510540 /* become ready immediately */
511541 _tp_proxy_set_feature_prepared (proxy, TP_PROTOCOL_FEATURE_PARAMETERS,
512542 had_immutables);
689719 "AuthenticationTypes",
690720 "A list of authentication types",
691721 G_TYPE_STRV, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
722
723 /**
724 * TpProtocol:avatar-requirements:
725 *
726 * A #TpAvatarRequirements representing the avatar requirements on this
727 * protocol, or %NULL if %TP_PROTOCOL_FEATURE_CORE has not been prepared or
728 * if the protocol doesn't support avatars.
729 *
730 * Since: 0.15.6
731 */
732 g_object_class_install_property (object_class, PROP_AVATAR_REQUIREMENTS,
733 g_param_spec_pointer ("avatar-requirements",
734 "Avatars requirements",
735 "Avatars requirements",
736 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
692737
693738 proxy_class->list_features = tp_protocol_list_features;
694739 proxy_class->must_have_unique_name = FALSE;
12841329 g_free (property);
12851330 g_free (value);
12861331 }
1332
1333 g_strfreev (keys);
12871334
12881335 return ret;
12891336 }
14601507 G_TYPE_STRV, g_key_file_get_string_list (file, group,
14611508 "AuthenticationTypes", NULL, NULL));
14621509
1510 /* Avatars */
1511 tp_asv_take_boxed (immutables,
1512 TP_PROP_PROTOCOL_INTERFACE_AVATARS_SUPPORTED_AVATAR_MIME_TYPES,
1513 G_TYPE_STRV,
1514 g_key_file_get_string_list (file, group, "SupportedAvatarMIMETypes",
1515 NULL, NULL));
1516 tp_asv_set_uint32 (immutables,
1517 TP_PROP_PROTOCOL_INTERFACE_AVATARS_MINIMUM_AVATAR_HEIGHT,
1518 g_key_file_get_uint64 (file, group, "MinimumAvatarHeight", NULL));
1519 tp_asv_set_uint32 (immutables,
1520 TP_PROP_PROTOCOL_INTERFACE_AVATARS_MINIMUM_AVATAR_WIDTH,
1521 g_key_file_get_uint64 (file, group, "MinimumAvatarWidth", NULL));
1522 tp_asv_set_uint32 (immutables,
1523 TP_PROP_PROTOCOL_INTERFACE_AVATARS_RECOMMENDED_AVATAR_HEIGHT,
1524 g_key_file_get_uint64 (file, group, "RecommendedAvatarHeight", NULL));
1525 tp_asv_set_uint32 (immutables,
1526 TP_PROP_PROTOCOL_INTERFACE_AVATARS_RECOMMENDED_AVATAR_WIDTH,
1527 g_key_file_get_uint64 (file, group, "RecommendedAvatarWidth", NULL));
1528 tp_asv_set_uint32 (immutables,
1529 TP_PROP_PROTOCOL_INTERFACE_AVATARS_MAXIMUM_AVATAR_HEIGHT,
1530 g_key_file_get_uint64 (file, group, "MaximumAvatarHeight", NULL));
1531 tp_asv_set_uint32 (immutables,
1532 TP_PROP_PROTOCOL_INTERFACE_AVATARS_MAXIMUM_AVATAR_WIDTH,
1533 g_key_file_get_uint64 (file, group, "MaximumAvatarWidth", NULL));
1534 tp_asv_set_uint32 (immutables,
1535 TP_PROP_PROTOCOL_INTERFACE_AVATARS_MAXIMUM_AVATAR_BYTES,
1536 g_key_file_get_uint64 (file, group, "MaximumAvatarBytes", NULL));
1537
14631538 rccs = g_ptr_array_new ();
14641539
14651540 rcc_groups = g_key_file_get_string_list (file, group,
14811556
14821557 return immutables;
14831558 }
1559
1560 /**
1561 * tp_protocol_get_avatar_requirements
1562 * @self: a #TpProtocol
1563 *
1564 * Return the #TpProtocol:avatar-requirements property
1565 *
1566 * Returns: (transfer none): the value of #TpProtocol:avatar-requirements
1567 *
1568 * Since: 0.15.6
1569 */
1570 TpAvatarRequirements *
1571 tp_protocol_get_avatar_requirements (TpProtocol *self)
1572 {
1573 g_return_val_if_fail (TP_IS_PROTOCOL (self), NULL);
1574
1575 return self->priv->avatar_req;
1576 }
2222 #include <glib-object.h>
2323
2424 #include <telepathy-glib/capabilities.h>
25 #include <telepathy-glib/connection.h>
2526 #include <telepathy-glib/proxy.h>
2627
2728 G_BEGIN_DECLS
101102 const gchar *tp_protocol_get_icon_name (TpProtocol *self);
102103 TpCapabilities *tp_protocol_get_capabilities (TpProtocol *self);
103104
105 TpAvatarRequirements * tp_protocol_get_avatar_requirements (TpProtocol *self);
106
104107 G_END_DECLS
105108
106109 #include <telepathy-glib/_gen/tp-cli-protocol.h>
00 VOID:BOXED
11 VOID:BOXED,BOXED
2 VOID:BOXED,BOXED,BOXED,BOXED,OBJECT,BOXED
23 VOID:BOXED,UINT,INT,STRING
34 VOID:INT,UINT,STRING
45 VOID:OBJECT,BOOLEAN
445445 * @self: a #TpSimpleClientFactory object
446446 * @object_path: the object path of an account
447447 * @immutable_properties: (transfer none) (element-type utf8 GObject.Value):
448 * the immutable properties of the account.
448 * the immutable properties of the account, or %NULL.
449449 * @error: Used to raise an error if @object_path is not valid
450450 *
451451 * Returns a #TpAccount proxy for the account at @object_path. The returned
585585 {
586586 TpHandle initiator_handle;
587587 TpStreamTubeConnection *tube_conn;
588 TpConnection *connection;
589 GArray *features;
588590
589591 tube_conn = _tp_stream_tube_connection_new (conn, self);
590592
598600 * initiator of the tube */
599601 initiator_handle = tp_channel_get_initiator_handle (TP_CHANNEL (self));
600602
603
604 connection = tp_channel_borrow_connection (TP_CHANNEL (self));
605 features = tp_simple_client_factory_dup_contact_features (
606 tp_proxy_get_factory (connection), connection);
607
601608 /* Pass ownership of tube_conn to the function */
602 tp_connection_get_contacts_by_handle (
603 tp_channel_borrow_connection (TP_CHANNEL (self)),
604 1, &initiator_handle, 0, NULL,
609 tp_connection_get_contacts_by_handle (connection,
610 1, &initiator_handle,
611 features->len, (TpContactFeature *) features->data,
605612 new_local_connection_with_contact,
606613 tube_conn, g_object_unref, G_OBJECT (self));
614
615 g_array_unref (features);
607616 }
608617
609618 static void
10501059
10511060 if (can_identify_contact (self))
10521061 {
1062 TpConnection *connection;
1063 GArray *features;
1064
1065 connection = tp_channel_borrow_connection (TP_CHANNEL (self));
1066 features = tp_simple_client_factory_dup_contact_features (
1067 tp_proxy_get_factory (connection), connection);
1068
10531069 /* Pass the ref on tube_conn to the function */
1054 tp_connection_get_contacts_by_handle (
1055 tp_channel_borrow_connection (TP_CHANNEL (self)),
1056 1, &handle, 0, NULL,
1070 tp_connection_get_contacts_by_handle (connection,
1071 1, &handle,
1072 features->len, (TpContactFeature *) features->data,
10571073 _new_remote_connection_with_contact,
10581074 tube_conn, g_object_unref, G_OBJECT (self));
1075
1076 g_array_unref (features);
10591077 }
10601078 else
10611079 {
222222 *
223223 * The #TpContact with who we are exchanging data through this tube, or
224224 * %NULL if we can't safely identify the contact.
225 *
226 * If not %NULL, the #TpContact objects is guaranteed to have all of the
227 * features previously passed to
228 * tp_simple_client_factory_add_contact_features() prepared.
225229 *
226230 * Since: 0.13.2
227231 */
6262 #define DEBUG_FLAG TP_DEBUG_CHANNEL
6363 #include "telepathy-glib/debug-internal.h"
6464 #include "telepathy-glib/automatic-client-factory-internal.h"
65 #include "telepathy-glib/channel-internal.h"
6566
6667 #include "_gen/signals-marshal.h"
6768
7677 TpMessagePartSupportFlags message_part_support_flags;
7778 TpDeliveryReportingSupportFlags delivery_reporting_support;
7879 GArray *message_types;
80
81 GSimpleAsyncResult *pending_messages_result;
82 guint n_preparing_pending_messages;
7983
8084 /* queue of owned TpSignalledMessage */
8185 GQueue *pending_messages;
210214 }
211215
212216 static void
217 prepare_sender_async (TpTextChannel *self,
218 const GPtrArray *message,
219 gboolean fallback_to_self,
220 GAsyncReadyCallback callback,
221 gpointer user_data)
222 {
223 TpChannel *channel = (TpChannel *) self;
224 TpContact *contact;
225 TpHandle handle;
226 const gchar *id;
227
228 handle = get_sender (self, message, &contact, &id);
229 if (contact == NULL && fallback_to_self)
230 {
231 TpConnection *conn;
232
233 conn = tp_channel_borrow_connection ((TpChannel *) self);
234
235 DEBUG ("Failed to get our self contact, please fix CM (%s)",
236 tp_proxy_get_object_path (conn));
237
238 /* Use the connection self contact as a fallback */
239 contact = tp_connection_get_self_contact (conn);
240 if (contact != NULL)
241 g_object_ref (contact);
242 }
243
244 if (contact != NULL)
245 {
246 GPtrArray *contacts = g_ptr_array_new_with_free_func (g_object_unref);
247
248 /* get_sender() refs the contact, we give that ref to the ptr-array */
249 g_ptr_array_add (contacts, contact);
250 _tp_channel_contacts_queue_prepare_async (channel,
251 contacts, callback, user_data);
252 g_ptr_array_unref (contacts);
253 }
254 else if (id != NULL)
255 {
256 GPtrArray *ids = g_ptr_array_new_with_free_func (g_free);
257
258 g_ptr_array_add (ids, g_strdup (id));
259 _tp_channel_contacts_queue_prepare_by_id_async (channel,
260 ids, callback, user_data);
261 g_ptr_array_unref (ids);
262 }
263 else if (handle != 0)
264 {
265 GArray *handles = g_array_new (FALSE, FALSE, sizeof (TpHandle));
266
267 g_array_append_val (handles, handle);
268 _tp_channel_contacts_queue_prepare_by_handle_async (channel,
269 handles, callback, user_data);
270 g_array_unref (handles);
271 }
272 else
273 {
274 /* No sender. Still need to go through the queue to prevent reordering */
275 _tp_channel_contacts_queue_prepare_async (channel,
276 NULL, callback, user_data);
277 }
278 }
279
280 static TpContact *
281 prepare_sender_finish (TpTextChannel *self,
282 GAsyncResult *result,
283 GError **error)
284 {
285 GPtrArray *contacts;
286 TpContact *sender = NULL;
287
288 _tp_channel_contacts_queue_prepare_finish ((TpChannel *) self, result,
289 &contacts, error);
290
291 if (contacts != NULL && contacts->len > 0)
292 sender = g_object_ref (g_ptr_array_index (contacts, 0));
293
294 tp_clear_pointer (&contacts, g_ptr_array_unref);
295
296 return sender;
297 }
298
299 static GPtrArray *
300 copy_parts (const GPtrArray *parts)
301 {
302 return g_boxed_copy (TP_ARRAY_TYPE_MESSAGE_PART_LIST, parts);
303 }
304
305 static void
306 free_parts (GPtrArray *parts)
307 {
308 g_boxed_free (TP_ARRAY_TYPE_MESSAGE_PART_LIST, parts);
309 }
310
311 typedef struct
312 {
313 GPtrArray *parts;
314 guint flags;
315 gchar *token;
316 } MessageSentData;
317
318 static void
319 message_sent_sender_ready_cb (GObject *object,
320 GAsyncResult *result,
321 gpointer user_data)
322 {
323 TpTextChannel *self = (TpTextChannel *) object;
324 MessageSentData *data = user_data;
325 TpContact *sender;
326 TpMessage *msg;
327
328 sender = prepare_sender_finish (self, result, NULL);
329 msg = _tp_signalled_message_new (data->parts, sender);
330
331 g_signal_emit (self, signals[SIG_MESSAGE_SENT], 0, msg, data->flags,
332 data->token);
333
334 g_object_unref (msg);
335 free_parts (data->parts);
336 g_free (data->token);
337 g_slice_free (MessageSentData, data);
338 }
339
340 static void
213341 message_sent_cb (TpChannel *channel,
214 const GPtrArray *content,
342 const GPtrArray *parts,
215343 guint flags,
216344 const gchar *token,
217345 gpointer user_data,
218346 GObject *weak_object)
219347 {
220348 TpTextChannel *self = (TpTextChannel *) channel;
221 TpMessage *msg;
222 TpContact *contact;
223
224 get_sender (self, content, &contact, NULL);
225
226 if (contact == NULL)
227 {
228 TpConnection *conn;
229
230 conn = tp_channel_borrow_connection (channel);
231
232 DEBUG ("Failed to get our self contact, please fix CM (%s)",
233 tp_proxy_get_object_path (conn));
234
235 /* Use the connection self contact as a fallback */
236 contact = tp_connection_get_self_contact (conn);
237 if (contact != NULL)
238 g_object_ref (contact);
239 }
240
241 msg = _tp_signalled_message_new (content, contact);
242
243 g_signal_emit (channel, signals[SIG_MESSAGE_SENT], 0, msg, flags,
244 tp_str_empty (token) ? NULL : token);
245
246 g_object_unref (msg);
247 tp_clear_object (&contact);
349 MessageSentData *data;
350
351 DEBUG ("New message sent");
352
353 data = g_slice_new (MessageSentData);
354 data->parts = copy_parts (parts);
355 data->flags = flags;
356 data->token = tp_str_empty (token) ? NULL : g_strdup (token);
357
358 prepare_sender_async (self, parts, TRUE,
359 message_sent_sender_ready_cb, data);
248360 }
249361
250362 static void
371483 }
372484
373485 static void
374 got_sender_contact_by_handle_cb (TpConnection *connection,
375 guint n_contacts,
376 TpContact * const *contacts,
377 guint n_failed,
378 const TpHandle *failed,
379 const GError *error,
380 gpointer user_data,
381 GObject *weak_object)
382 {
383 TpTextChannel *self = (TpTextChannel *) weak_object;
486 message_received_sender_ready_cb (GObject *object,
487 GAsyncResult *result,
488 gpointer user_data)
489 {
490 TpTextChannel *self = (TpTextChannel *) object;
384491 GPtrArray *parts = user_data;
385 TpContact *sender = NULL;
386
387 if (error != NULL)
388 {
389 DEBUG ("Failed to prepare TpContact: %s", error->message);
390 }
391 else if (n_failed > 0)
392 {
393 DEBUG ("Failed to prepare TpContact (InvalidHandle)");
394 }
395 else if (n_contacts > 0)
396 {
397 sender = contacts[0];
398 }
399 else
400 {
401 DEBUG ("TpContact of the sender hasn't been prepared");
402 }
403
492 TpContact *sender;
493
494 sender = prepare_sender_finish (self, result, NULL);
404495 add_message_received (self, parts, sender, TRUE);
405 g_boxed_free (TP_ARRAY_TYPE_MESSAGE_PART_LIST, parts);
406 }
407
408 static void
409 got_sender_contact_by_id_cb (TpConnection *connection,
410 guint n_contacts,
411 TpContact * const *contacts,
412 const gchar * const *requested_ids,
413 GHashTable *failed_id_errors,
414 const GError *error,
415 gpointer user_data,
416 GObject *weak_object)
417 {
418 TpTextChannel *self = (TpTextChannel *) weak_object;
419 GPtrArray *parts = user_data;
420 TpContact *sender = NULL;
421
422 if (error != NULL)
423 {
424 DEBUG ("Failed to prepare TpContact: %s", error->message);
425 }
426 else if (n_contacts > 0)
427 {
428 sender = contacts[0];
429 }
430 else
431 {
432 DEBUG ("TpContact of the sender hasn't be prepared");
433
434 if (DEBUGGING)
435 {
436 GHashTableIter iter;
437 gpointer key, value;
438
439 g_hash_table_iter_init (&iter, failed_id_errors);
440 while (g_hash_table_iter_next (&iter, &key, &value))
441 {
442 DEBUG ("Failed to get a TpContact for %s: %s",
443 (const gchar *) key, ((GError *) value)->message);
444 }
445 }
446 }
447
448 add_message_received (self, parts, sender, TRUE);
449 g_boxed_free (TP_ARRAY_TYPE_MESSAGE_PART_LIST, parts);
450 }
451
452 static GPtrArray *
453 copy_parts (const GPtrArray *parts)
454 {
455 return g_boxed_copy (TP_ARRAY_TYPE_MESSAGE_PART_LIST, parts);
496
497 free_parts (parts);
456498 }
457499
458500 static void
462504 GObject *weak_object)
463505 {
464506 TpTextChannel *self = user_data;
465 TpHandle sender;
466 TpConnection *conn;
467 TpContact *contact;
468 const gchar *sender_id;
469507
470508 /* If we are still retrieving pending messages, no need to add the message,
471509 * it will be in the initial set of messages retrieved. */
474512
475513 DEBUG ("New message received");
476514
477 sender = get_sender (self, message, &contact, &sender_id);
478
479 if (sender == 0)
480 {
481 add_message_received (self, message, NULL, TRUE);
482 return;
483 }
484
485 if (contact != NULL)
486 {
487 /* We have the sender, all good */
488 add_message_received (self, message, contact, TRUE);
489
490 g_object_unref (contact);
491 return;
492 }
493
494 conn = tp_channel_borrow_connection (proxy);
495
496 /* We have to request the sender which may result in message re-ordering. We
497 * use the ID if possible as the handle may have expired so it's safer. */
498 if (sender_id != NULL)
499 {
500 tp_connection_get_contacts_by_id (conn, 1, &sender_id,
501 0, NULL, got_sender_contact_by_id_cb, copy_parts (message),
502 NULL, G_OBJECT (self));
503 }
504 else
505 {
506 tp_connection_get_contacts_by_handle (conn, 1, &sender,
507 0, NULL, got_sender_contact_by_handle_cb, copy_parts (message),
508 NULL, G_OBJECT (self));
509 }
515 prepare_sender_async (self, message, FALSE,
516 message_received_sender_ready_cb,
517 copy_parts (message));
510518 }
511519
512520 static gint
526534 }
527535
528536 static void
529 pending_messages_removed_cb (TpChannel *proxy,
530 const GArray *ids,
531 gpointer user_data,
532 GObject *weak_object)
533 {
534 TpTextChannel *self = (TpTextChannel *) proxy;
537 pending_messages_removed_ready_cb (GObject *object,
538 GAsyncResult *result,
539 gpointer user_data)
540 {
541 TpTextChannel *self = (TpTextChannel *) object;
542 TpChannel *channel = (TpChannel *) self;
543 GArray *ids = user_data;
535544 guint i;
536545
537 if (!self->priv->got_initial_messages)
538 return;
546 _tp_channel_contacts_queue_prepare_finish (channel, result, NULL, NULL);
539547
540548 for (i = 0; i < ids->len; i++)
541549 {
560568
561569 g_object_unref (msg);
562570 }
563 }
564
565 static void
566 got_pending_senders_contact (TpTextChannel *self,
567 GList *parts_list,
568 guint n_contacts,
569 TpContact * const *contacts)
570 {
571 GList *l;
572
573 for (l = parts_list; l != NULL; l = g_list_next (l))
574 {
575 GPtrArray *parts = l->data;
576 const GHashTable *header;
577 TpHandle sender;
578 guint i;
579
580 header = g_ptr_array_index (parts, 0);
581 sender = tp_asv_get_uint32 (header, "message-sender", NULL);
582
583 if (sender == 0)
584 continue;
585
586 for (i = 0; i < n_contacts; i++)
587 {
588 TpContact *contact = contacts[i];
589
590 if (tp_contact_get_handle (contact) == sender)
591 {
592 add_message_received (self, parts, contact, FALSE);
593
594 break;
595 }
596 }
597 }
598 }
599
600 static void
601 free_parts_list (GList *parts_list)
602 {
603 GList *l;
604
605 for (l = parts_list; l != NULL; l = g_list_next (l))
606 g_boxed_free (TP_ARRAY_TYPE_MESSAGE_PART_LIST, l->data);
607
608 g_list_free (parts_list);
609 }
610
611 static void
612 got_pending_senders_contact_by_handle_cb (TpConnection *connection,
613 guint n_contacts,
614 TpContact * const *contacts,
615 guint n_failed,
616 const TpHandle *failed,
617 const GError *error,
571
572 g_array_unref (ids);
573 }
574
575 static void
576 pending_messages_removed_cb (TpChannel *channel,
577 const GArray *ids,
618578 gpointer user_data,
619579 GObject *weak_object)
620580 {
621 GSimpleAsyncResult *result = (GSimpleAsyncResult *) weak_object;
622 GList *parts_list = user_data;
623 TpTextChannel *self = TP_TEXT_CHANNEL (g_async_result_get_source_object (
624 G_ASYNC_RESULT (result)));
625
626 if (error != NULL)
627 {
628 DEBUG ("Failed to prepare TpContact: %s", error->message);
629 g_simple_async_result_set_from_error (result, error);
630 goto out;
631 }
632
633 if (n_failed > 0)
634 {
635 DEBUG ("Failed to prepare some TpContact (InvalidHandle)");
636 }
637
638 got_pending_senders_contact (self, parts_list, n_contacts, contacts);
639
640 out:
641 g_simple_async_result_complete (result);
642 g_object_unref (result);
643 g_object_unref (self);
644 }
645
646 static void
647 got_pending_senders_contact_by_id_cb (TpConnection *connection,
648 guint n_contacts,
649 TpContact * const *contacts,
650 const gchar * const *requested_ids,
651 GHashTable *failed_id_errors,
652 const GError *error,
653 gpointer user_data,
654 GObject *weak_object)
655 {
656 GSimpleAsyncResult *result = (GSimpleAsyncResult *) weak_object;
657 GList *parts_list = user_data;
658 TpTextChannel *self = TP_TEXT_CHANNEL (g_async_result_get_source_object (
659 G_ASYNC_RESULT (result)));
660
661 if (error != NULL)
662 {
663 DEBUG ("Failed to prepare TpContact: %s", error->message);
664 g_simple_async_result_set_from_error (result, error);
665 goto out;
666 }
667
668 if (DEBUGGING)
669 {
670 GHashTableIter iter;
671 gpointer key, value;
672
673 g_hash_table_iter_init (&iter, failed_id_errors);
674 while (g_hash_table_iter_next (&iter, &key, &value))
675 {
676 DEBUG ("Failed to get a TpContact for %s: %s",
677 (const gchar *) key, ((GError *) value)->message);
678 }
679 }
680
681 got_pending_senders_contact (self, parts_list, n_contacts, contacts);
682
683 out:
684 g_simple_async_result_complete (result);
685 g_object_unref (result);
686 g_object_unref (self);
581 TpTextChannel *self = (TpTextChannel *) channel;
582 GArray *ids_dup;
583
584 if (!self->priv->got_initial_messages)
585 return;
586
587 /* We have nothing to prepare, but still we have to hook into the queue
588 * to preserve order. Messages removed here could still be in that queue. */
589 ids_dup = g_array_sized_new (FALSE, FALSE, sizeof (guint), ids->len);
590 g_array_append_vals (ids_dup, ids->data, ids->len);
591
592 _tp_channel_contacts_queue_prepare_async (channel, NULL,
593 pending_messages_removed_ready_cb, ids_dup);
594 }
595
596 static void
597 pending_message_sender_ready_cb (GObject *object,
598 GAsyncResult *result,
599 gpointer user_data)
600 {
601 TpTextChannel *self = (TpTextChannel *) object;
602 GPtrArray *parts = user_data;
603 TpContact *sender;
604
605 sender = prepare_sender_finish (self, result, NULL);
606 add_message_received (self, parts, sender, FALSE);
607
608 self->priv->n_preparing_pending_messages--;
609 if (self->priv->n_preparing_pending_messages == 0)
610 {
611 g_simple_async_result_complete (self->priv->pending_messages_result);
612 g_clear_object (&self->priv->pending_messages_result);
613 }
614
615 free_parts (parts);
687616 }
688617
689618 /* There is no TP_ARRAY_TYPE_PENDING_TEXT_MESSAGE_LIST_LIST (fdo #32433) */
698627 GObject *weak_object)
699628 {
700629 TpTextChannel *self = (TpTextChannel *) proxy;
701 GSimpleAsyncResult *result = user_data;
630 GPtrArray *messages;
702631 guint i;
703 GPtrArray *messages;
704 TpIntSet *senders;
705 /* Messages we're waiting for a sender for */
706 GQueue outstanding = G_QUEUE_INIT;
707 GPtrArray *sender_ids;
708632
709633 self->priv->got_initial_messages = TRUE;
710634
712636 {
713637 DEBUG ("Failed to get PendingMessages property: %s", error->message);
714638
715 g_simple_async_result_set_error (result, error->domain, error->code,
639 g_simple_async_result_set_error (self->priv->pending_messages_result,
640 error->domain, error->code,
716641 "Failed to get PendingMessages property: %s", error->message);
717642
718 g_simple_async_result_complete (result);
643 g_simple_async_result_complete (self->priv->pending_messages_result);
644 g_clear_object (&self->priv->pending_messages_result);
719645 return;
720646 }
721647
723649 {
724650 DEBUG ("PendingMessages property is of the wrong type");
725651
726 g_simple_async_result_set_error (result, TP_ERRORS, TP_ERROR_CONFUSED,
652 g_simple_async_result_set_error (self->priv->pending_messages_result,
653 TP_ERRORS, TP_ERROR_CONFUSED,
727654 "PendingMessages property is of the wrong type");
728655
729 g_simple_async_result_complete (result);
656 g_simple_async_result_complete (self->priv->pending_messages_result);
657 g_clear_object (&self->priv->pending_messages_result);
730658 return;
731659 }
732660
733 senders = tp_intset_new ();
734 sender_ids = g_ptr_array_new ();
735
736661 messages = g_value_get_boxed (value);
662
663 if (messages->len == 0)
664 {
665 g_simple_async_result_complete (self->priv->pending_messages_result);
666 g_clear_object (&self->priv->pending_messages_result);
667 return;
668 }
669
670 self->priv->n_preparing_pending_messages = messages->len;
737671 for (i = 0; i < messages->len; i++)
738672 {
739673 GPtrArray *parts = g_ptr_array_index (messages, i);
740 TpHandle sender;
741 TpContact *contact;
742 const gchar *sender_id;
743
744 sender = get_sender (self, parts, &contact, &sender_id);
745
746 if (sender == 0)
747 {
748 DEBUG ("Message doesn't have a sender");
749 add_message_received (self, parts, NULL, FALSE);
750 continue;
751 }
752
753 if (contact != NULL)
754 {
755 /* We have the sender */
756 add_message_received (self, parts, contact, FALSE);
757 g_object_unref (contact);
758 continue;
759 }
760
761 tp_intset_add (senders, sender);
762
763 if (sender_id != NULL)
764 g_ptr_array_add (sender_ids, (gpointer) sender_id);
765
766 g_queue_push_tail (&outstanding, copy_parts (parts));
767 }
768
769 if (tp_intset_size (senders) == 0)
770 {
771 g_simple_async_result_complete (result);
772 }
773 else
774 {
775 TpConnection *conn = tp_channel_borrow_connection (TP_CHANNEL (proxy));
776
777 DEBUG ("Pending messages may be re-ordered, please fix CM (%s)",
778 tp_proxy_get_object_path (conn));
779
780 /* If we have an identifier for the sender of every outstanding message,
781 * use those rather than handles to get the contacts. (There may be
782 * duplicates, but telepathy-glib copes.)
783 *
784 * Ownership of the parts list in 'outstanding' is transferred to the
785 * callbacks.
786 */
787 if (sender_ids->len == outstanding.length)
788 {
789 tp_connection_get_contacts_by_id (conn, sender_ids->len,
790 (const gchar * const *) sender_ids->pdata,
791 0, NULL, got_pending_senders_contact_by_id_cb, outstanding.head,
792 (GDestroyNotify) free_parts_list, g_object_ref (result));
793 }
794 else
795 {
796 GArray *tmp = tp_intset_to_array (senders);
797
798 tp_connection_get_contacts_by_handle (conn, tmp->len,
799 (TpHandle *) tmp->data,
800 0, NULL, got_pending_senders_contact_by_handle_cb, outstanding.head,
801 (GDestroyNotify) free_parts_list, g_object_ref (result));
802
803 g_array_unref (tmp);
804 }
805
806 }
807
808 tp_intset_destroy (senders);
809 g_ptr_array_free (sender_ids, TRUE);
674
675 prepare_sender_async (self, parts, FALSE,
676 pending_message_sender_ready_cb,
677 copy_parts (parts));
678 }
810679 }
811680
812681 static void
815684 GAsyncReadyCallback callback,
816685 gpointer user_data)
817686 {
818 TpChannel *channel = (TpChannel *) proxy;
687 TpTextChannel *self = (TpTextChannel *) proxy;
688 TpChannel *channel = (TpChannel *) self;
819689 GError *error = NULL;
820 GSimpleAsyncResult *result;
821
822 result = g_simple_async_result_new ((GObject *) proxy, callback, user_data,
823 tp_text_channel_prepare_pending_messages_async);
824690
825691 tp_cli_channel_interface_messages_connect_to_message_received (channel,
826692 message_received_cb, proxy, NULL, G_OBJECT (proxy), &error);
827693 if (error != NULL)
828694 {
829 DEBUG ("Failed to connect to MessageReceived signal: %s", error->message);
830 goto fail;
695 g_simple_async_report_take_gerror_in_idle ((GObject *) self,
696 callback, user_data, error);
697 return;
831698 }
832699
833700 tp_cli_channel_interface_messages_connect_to_pending_messages_removed (
835702 &error);
836703 if (error != NULL)
837704 {
838 DEBUG ("Failed to connect to PendingMessagesRemoved signal: %s",
839 error->message);
840 goto fail;
841 }
705 g_simple_async_report_take_gerror_in_idle ((GObject *) self,
706 callback, user_data, error);
707 return;
708 }
709
710 g_assert (self->priv->pending_messages_result == NULL);
711 self->priv->pending_messages_result = g_simple_async_result_new (
712 (GObject *) proxy, callback, user_data,
713 tp_text_channel_prepare_pending_messages_async);
714
842715
843716 tp_cli_dbus_properties_call_get (proxy, -1,
844717 TP_IFACE_CHANNEL_INTERFACE_MESSAGES, "PendingMessages",
845 get_pending_messages_cb, result, g_object_unref, G_OBJECT (proxy));
846
847 return;
848
849 fail:
850 g_simple_async_result_take_error (result, error);
851
852 g_simple_async_result_complete_in_idle (result);
853 g_object_unref (result);
718 get_pending_messages_cb, NULL, NULL, G_OBJECT (proxy));
854719 }
855720
856721 static void
1096961 * Note that this signal is only fired once the
1097962 * #TP_TEXT_CHANNEL_FEATURE_INCOMING_MESSAGES has been prepared.
1098963 *
964 * It is guaranteed that @message's #TpSignalledMessage:sender has all of the
965 * features previously passed to
966 * tp_simple_client_factory_add_contact_features() prepared.
967 *
1099968 * Since: 0.13.10
1100969 */
1101970 signals[SIG_MESSAGE_RECEIVED] = g_signal_new ("message-received",
1116985 *
1117986 * Note that this signal is only fired once the
1118987 * #TP_TEXT_CHANNEL_FEATURE_INCOMING_MESSAGES has been prepared.
988 *
989 * It is guaranteed that @message's #TpSignalledMessage:sender has all of the
990 * features previously passed to
991 * tp_simple_client_factory_add_contact_features() prepared.
1119992 *
1120993 * Since: 0.13.10
1121994 */
11401013 * The ::message-sent signal is emitted when @message
11411014 * has been submitted for sending.
11421015 *
1016 * It is guaranteed that @message's #TpSignalledMessage:sender has all of the
1017 * features previously passed to
1018 * tp_simple_client_factory_add_contact_features() prepared.
1019 *
11431020 * Since: 0.13.10
11441021 */
11451022 signals[SIG_MESSAGE_SENT] = g_signal_new (
13061183 * Return a newly allocated list of unacknowledged #TpSignalledMessage
13071184 * objects.
13081185 *
1186 * It is guaranteed that the #TpSignalledMessage:sender of each
1187 * #TpSignalledMessage has all of the features previously passed to
1188 * tp_simple_client_factory_add_contact_features() prepared.
1189 *
13091190 * Returns: (transfer container) (element-type TelepathyGLib.SignalledMessage):
13101191 * a #GList of borrowed #TpSignalledMessage
13111192 *
14041285 }
14051286
14061287 static void
1288 acknowledge_pending_messages_ready_cb (GObject *object,
1289 GAsyncResult *res,
1290 gpointer user_data)
1291 {
1292 TpChannel *channel = (TpChannel *) object;
1293 GSimpleAsyncResult *result = user_data;
1294
1295 _tp_channel_contacts_queue_prepare_finish (channel, res, NULL, NULL);
1296
1297 g_simple_async_result_complete (result);
1298 g_object_unref (result);
1299 }
1300
1301 static void
14071302 acknowledge_pending_messages_cb (TpChannel *channel,
14081303 const GError *error,
14091304 gpointer user_data,
14161311 DEBUG ("Failed to ack messages: %s", error->message);
14171312
14181313 g_simple_async_result_set_from_error (result, error);
1419 }
1420
1421 g_simple_async_result_complete (result);
1422 g_object_unref (result);
1314 g_simple_async_result_complete (result);
1315 g_object_unref (result);
1316 return;
1317 }
1318
1319 /* We should have already got MessagesRemoved signal, but it could still be
1320 * in the queue. So we have to hook into that queue before complete to be
1321 * sure messages are removed from pending_messages */
1322 _tp_channel_contacts_queue_prepare_async (channel, NULL,
1323 acknowledge_pending_messages_ready_cb, result);
14231324 }
14241325
14251326 /**
4444 GHashTable *request_props);
4545
4646 /* Copied from wocky/wocky-utils.h */
47
48 gboolean _tp_enum_from_nick (GType enum_type, const gchar *nick, gint *value);
49 const gchar *_tp_enum_to_nick (GType enum_type, gint value);
4750
4851 #define _tp_implement_finish_void(source, tag) \
4952 if (g_simple_async_result_propagate_error (\
16731673 g_assert (g_utf8_validate (string->str, -1, NULL));
16741674
16751675 return g_string_free (string, FALSE);
1676 }
1677
1678 /*
1679 * _tp_enum_from_nick:
1680 * @enum_type: the GType of a subtype of GEnum
1681 * @nick: a non-%NULL string purporting to be the nickname of a value of
1682 * @enum_type
1683 * @value: the address at which to store the value of @enum_type corresponding
1684 * to @nick if this functions returns %TRUE; if this function returns
1685 * %FALSE, this variable will be left untouched.
1686 *
1687 * <!-- -->
1688 *
1689 * Returns: %TRUE if @nick is a member of @enum_type, or %FALSE otherwise
1690 */
1691 gboolean
1692 _tp_enum_from_nick (
1693 GType enum_type,
1694 const gchar *nick,
1695 gint *value)
1696 {
1697 GEnumClass *klass = g_type_class_ref (enum_type);
1698 GEnumValue *enum_value;
1699
1700 g_return_val_if_fail (klass != NULL, FALSE);
1701 g_return_val_if_fail (value != NULL, FALSE);
1702
1703 enum_value = g_enum_get_value_by_nick (klass, nick);
1704 g_type_class_unref (klass);
1705
1706 if (enum_value != NULL)
1707 {
1708 *value = enum_value->value;
1709 return TRUE;
1710 }
1711 else
1712 {
1713 return FALSE;
1714 }
1715 }
1716
1717 /*
1718 * _tp_enum_to_nick:
1719 * @enum_type: the GType of a subtype of GEnum
1720 * @value: a value of @enum_type
1721 *
1722 * <!-- -->
1723 *
1724 * Returns: the nickname of @value, or %NULL if it is not, in fact, a value of
1725 * @enum_type
1726 */
1727 const gchar *
1728 _tp_enum_to_nick (
1729 GType enum_type,
1730 gint value)
1731 {
1732 GEnumClass *klass = g_type_class_ref (enum_type);
1733 GEnumValue *enum_value;
1734
1735 g_return_val_if_fail (klass != NULL, NULL);
1736
1737 enum_value = g_enum_get_value (klass, value);
1738 g_type_class_unref (klass);
1739
1740 if (enum_value != NULL)
1741 return enum_value->value_nick;
1742 else
1743 return NULL;
16761744 }
16771745
16781746 gboolean
19402008 }
19412009
19422010 /* table's key can be anything (usually TpHandle) but value must be a
1943 * GObject (usually TpContact) */
2011 * TpContact */
19442012 GPtrArray *
19452013 _tp_contacts_from_values (GHashTable *table)
19462014 {
19482016 GHashTableIter iter;
19492017 gpointer value;
19502018
2019 if (table == NULL)
2020 return NULL;
2021
19512022 contacts = _tp_g_ptr_array_new_full (g_hash_table_size (table),
19522023 g_object_unref);
19532024
19542025 g_hash_table_iter_init (&iter, table);
19552026 while (g_hash_table_iter_next (&iter, NULL, &value))
19562027 {
1957 g_assert (G_IS_OBJECT (value));
2028 if (value == NULL)
2029 continue;
2030 g_assert (TP_IS_CONTACT (value));
2031
19582032 g_ptr_array_add (contacts, g_object_ref (value));
19592033 }
19602034
0 Version: TELEPATHY_GLIB_0.15.6
1 Extends: TELEPATHY_GLIB_0.15.5
2 Release: 0.15.6
3
4 tp_dbus_properties_mixin_emit_properties_changed
5 tp_dbus_properties_mixin_emit_properties_changed_varargs
6 tp_channel_get_target_contact
7 tp_channel_get_initiator_contact
8 tp_channel_get_feature_quark_contacts
9 tp_channel_group_get_contact_owner
10 tp_channel_group_get_self_contact
11 tp_channel_group_dup_members_contacts
12 tp_channel_group_dup_local_pending_contacts
13 tp_channel_group_dup_remote_pending_contacts
14 tp_channel_group_get_local_pending_contact_info
15 tp_cli_channel_interface_group_connect_to_handle_owners_changed_detailed
16 tp_cli_channel_interface_group_connect_to_self_contact_changed
17 tp_svc_channel_interface_group_emit_handle_owners_changed_detailed
18 tp_svc_channel_interface_group_emit_self_contact_changed
19 tp_protocol_get_avatar_requirements
20 tp_dbus_tube_channel_get_parameters
21 tp_dbus_tube_channel_get_service_name
22 tp_dbus_tube_channel_get_type
0 Version: TELEPATHY_GLIB_0.15.8
1 Extends: TELEPATHY_GLIB_0.15.6
2 Release: 0.15.8
3
4 tp_base_room_config_dup_channel
5 tp_base_room_config_emit_properties_changed
6 tp_base_room_config_get_type
7 tp_base_room_config_iface_init
8 tp_base_room_config_property_get_type
9 tp_base_room_config_register_class
10 tp_base_room_config_set_can_update_configuration
11 tp_base_room_config_set_property_mutable
12 tp_base_room_config_set_retrieved
13 tp_cli_channel_interface_room_config_call_update_configuration
14 tp_cli_channel_interface_subject_call_set_subject
15 tp_dbus_properties_mixin_set
16 tp_iface_quark_channel_interface_room
17 tp_iface_quark_channel_interface_room_config
18 tp_iface_quark_channel_interface_subject
19 tp_svc_channel_interface_room_config_get_type
20 tp_svc_channel_interface_room_config_implement_update_configuration
21 tp_svc_channel_interface_room_get_type
22 tp_svc_channel_interface_subject_get_type
23 tp_svc_channel_interface_subject_implement_set_subject
24 tp_svc_interface_get_dbus_properties_info
298298 GLIB_MKENUMS = @GLIB_MKENUMS@
299299 GREP = @GREP@
300300 GTKDOC_CHECK = @GTKDOC_CHECK@
301 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
302 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
301303 GTKDOC_MKPDF = @GTKDOC_MKPDF@
302304 GTKDOC_REBASE = @GTKDOC_REBASE@
303305 HAVE_VALA = @HAVE_VALA@
3030 test-contacts-mixin \
3131 test-contacts-slow-path \
3232 test-dbus \
33 test-dbus-tube \
3334 test-disconnection \
3435 test-error-enum \
3536 test-example-no-protocols \
208209
209210 test_channel_manager_request_properties_SOURCES = channel-manager-request-properties.c
210211
212 test_dbus_tube_SOURCES = dbus-tube.c
213
211214 # this one uses internal ABI
212215 test_cm_message_SOURCES = \
213216 cm-message.c
5555 test-contact-lists$(EXEEXT) test-contacts$(EXEEXT) \
5656 test-contacts-bug-19101$(EXEEXT) test-contacts-mixin$(EXEEXT) \
5757 test-contacts-slow-path$(EXEEXT) test-dbus$(EXEEXT) \
58 test-disconnection$(EXEEXT) test-error-enum$(EXEEXT) \
59 test-example-no-protocols$(EXEEXT) \
58 test-dbus-tube$(EXEEXT) test-disconnection$(EXEEXT) \
59 test-error-enum$(EXEEXT) test-example-no-protocols$(EXEEXT) \
6060 test-file-transfer-channel$(EXEEXT) \
6161 test-finalized-in-invalidated-handler$(EXEEXT) \
6262 test-get-interface-after-invalidate$(EXEEXT) \
327327 test_dbus_OBJECTS = $(am_test_dbus_OBJECTS)
328328 test_dbus_LDADD = $(LDADD)
329329 test_dbus_DEPENDENCIES = \
330 $(top_builddir)/tests/lib/libtp-glib-tests.la \
331 $(top_builddir)/telepathy-glib/libtelepathy-glib.la \
332 $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
333 am_test_dbus_tube_OBJECTS = dbus-tube.$(OBJEXT)
334 test_dbus_tube_OBJECTS = $(am_test_dbus_tube_OBJECTS)
335 test_dbus_tube_LDADD = $(LDADD)
336 test_dbus_tube_DEPENDENCIES = \
330337 $(top_builddir)/tests/lib/libtp-glib-tests.la \
331338 $(top_builddir)/telepathy-glib/libtelepathy-glib.la \
332339 $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
568575 $(test_contacts_bug_19101_SOURCES) \
569576 $(test_contacts_mixin_SOURCES) \
570577 $(test_contacts_slow_path_SOURCES) $(test_dbus_SOURCES) \
571 $(test_disconnection_SOURCES) $(test_error_enum_SOURCES) \
572 $(nodist_test_error_enum_SOURCES) \
578 $(test_dbus_tube_SOURCES) $(test_disconnection_SOURCES) \
579 $(test_error_enum_SOURCES) $(nodist_test_error_enum_SOURCES) \
573580 $(test_example_no_protocols_SOURCES) \
574581 $(test_file_transfer_channel_SOURCES) \
575582 $(test_finalized_in_invalidated_handler_SOURCES) \
610617 $(test_contacts_bug_19101_SOURCES) \
611618 $(test_contacts_mixin_SOURCES) \
612619 $(test_contacts_slow_path_SOURCES) $(test_dbus_SOURCES) \
613 $(test_disconnection_SOURCES) $(test_error_enum_SOURCES) \
620 $(test_dbus_tube_SOURCES) $(test_disconnection_SOURCES) \
621 $(test_error_enum_SOURCES) \
614622 $(test_example_no_protocols_SOURCES) \
615623 $(test_file_transfer_channel_SOURCES) \
616624 $(test_finalized_in_invalidated_handler_SOURCES) \
675683 GLIB_MKENUMS = @GLIB_MKENUMS@
676684 GREP = @GREP@
677685 GTKDOC_CHECK = @GTKDOC_CHECK@
686 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
687 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
678688 GTKDOC_MKPDF = @GTKDOC_MKPDF@
679689 GTKDOC_REBASE = @GTKDOC_REBASE@
680690 HAVE_VALA = @HAVE_VALA@
902912 test_client_channel_factory_SOURCES = client-channel-factory.c
903913 test_proxy_preparation_SOURCES = proxy-preparation.c
904914 test_channel_manager_request_properties_SOURCES = channel-manager-request-properties.c
915 test_dbus_tube_SOURCES = dbus-tube.c
905916
906917 # this one uses internal ABI
907918 test_cm_message_SOURCES = \
11141125 test-dbus$(EXEEXT): $(test_dbus_OBJECTS) $(test_dbus_DEPENDENCIES)
11151126 @rm -f test-dbus$(EXEEXT)
11161127 $(AM_V_CCLD)$(LINK) $(test_dbus_OBJECTS) $(test_dbus_LDADD) $(LIBS)
1128 test-dbus-tube$(EXEEXT): $(test_dbus_tube_OBJECTS) $(test_dbus_tube_DEPENDENCIES)
1129 @rm -f test-dbus-tube$(EXEEXT)
1130 $(AM_V_CCLD)$(LINK) $(test_dbus_tube_OBJECTS) $(test_dbus_tube_LDADD) $(LIBS)
11171131 test-disconnection$(EXEEXT): $(test_disconnection_OBJECTS) $(test_disconnection_DEPENDENCIES)
11181132 @rm -f test-disconnection$(EXEEXT)
11191133 $(AM_V_CCLD)$(LINK) $(test_disconnection_OBJECTS) $(test_disconnection_LDADD) $(LIBS)
12301244 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/contacts-mixin.Po@am__quote@
12311245 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/contacts-slow-path.Po@am__quote@
12321246 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/contacts.Po@am__quote@
1247 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus-tube.Po@am__quote@
12331248 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus.Po@am__quote@
12341249 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/disconnection.Po@am__quote@
12351250 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error-enum.Po@am__quote@
426426 g_assert_no_error (test->error);
427427
428428 if (tp_asv_get_uint32 (test->get_all_return, "CallState",
429 NULL) != FUTURE_CALL_STATE_PENDING_RECEIVER)
429 NULL) != FUTURE_CALL_STATE_RINGING)
430430 return;
431431 }
432432 }
790790 g_assert_no_error (test->error);
791791
792792 assert_call_properties (test->get_all_return,
793 FUTURE_CALL_STATE_PENDING_RECEIVER, test->self_handle,
793 FUTURE_CALL_STATE_RINGING, test->self_handle,
794794 FUTURE_CALL_STATE_CHANGE_REASON_USER_REQUESTED, "",
795795 TRUE, 0, /* call flags */
796796 TRUE, TRUE, FALSE); /* initial audio/video must be TRUE, FALSE */
993993 g_main_loop_run (test->mainloop);
994994 g_assert_no_error (test->error);
995995 assert_call_properties (test->get_all_return,
996 FUTURE_CALL_STATE_PENDING_RECEIVER, test->peer_handle,
996 FUTURE_CALL_STATE_RINGING, test->peer_handle,
997997 FUTURE_CALL_STATE_CHANGE_REASON_USER_REQUESTED, "",
998998 TRUE, 0, /* call flags */
999999 TRUE, TRUE, FALSE); /* initial audio/video must be TRUE, FALSE */
1313 #include <telepathy-glib/telepathy-glib.h>
1414
1515 #include "tests/lib/util.h"
16 #include "tests/lib/simple-conn.h"
16 #include "tests/lib/contacts-conn.h"
1717 #include "tests/lib/textchan-null.h"
1818 #include "tests/lib/textchan-group.h"
1919
126126 test->error = NULL;
127127
128128 /* Create (service and client sides) connection objects */
129 tp_tests_create_and_connect_conn (TP_TESTS_TYPE_SIMPLE_CONNECTION,
129 tp_tests_create_and_connect_conn (TP_TESTS_TYPE_CONTACTS_CONNECTION,
130130 "me@test.com", &test->base_connection, &test->connection);
131131
132132 create_contact_chan (test);
572572 test->wait = 1;
573573 g_main_loop_run (test->mainloop);
574574 g_assert_no_error (test->error);
575 }
576
577 static void
578 group_contacts_changed_cb (TpChannel *self,
579 GPtrArray *added,
580 GPtrArray *removed,
581 GPtrArray *local_pending,
582 GPtrArray *remote_pending,
583 TpContact *actor,
584 GHashTable *details,
585 Test *test)
586 {
587 test->wait--;
588 if (test->wait <= 0)
589 g_main_loop_quit (test->mainloop);
590 }
591
592 static void
593 test_contacts (Test *test,
594 gconstpointer data G_GNUC_UNUSED)
595 {
596 TpSimpleClientFactory *factory;
597 const gchar *id = "badger";
598 const gchar *alias1 = "Alias 1";
599 const gchar *alias2 = "Alias 2";
600 GQuark channel_features[] = { TP_CHANNEL_FEATURE_CONTACTS, 0 };
601 TpHandle handle;
602 GArray *handles;
603 TpContact *contact;
604 GPtrArray *contacts;
605
606 /* Tell factory we want to prepare ALIAS feature on TpContact objects */
607 factory = tp_proxy_get_factory (test->connection);
608 tp_simple_client_factory_add_contact_features_varargs (factory,
609 TP_CONTACT_FEATURE_ALIAS,
610 TP_CONTACT_FEATURE_INVALID);
611
612 /* Set an alias for channel's target contact */
613 handle = tp_channel_get_handle (test->channel_contact, NULL);
614 g_assert (handle != 0);
615 tp_tests_contacts_connection_change_aliases (
616 TP_TESTS_CONTACTS_CONNECTION (test->base_connection),
617 1, &handle, &alias1);
618
619 /* Prepare channel with CONTACTS feature. assert it has created its TpContact
620 * and prepared alias feature. */
621 tp_tests_proxy_run_until_prepared (test->channel_contact, channel_features);
622
623 contact = tp_channel_get_target_contact (test->channel_contact);
624 g_assert_cmpstr (tp_contact_get_identifier (contact), ==, "bob");
625 g_assert_cmpstr (tp_contact_get_alias (contact), ==, alias1);
626
627 contact = tp_channel_get_initiator_contact (test->channel_contact);
628 g_assert_cmpstr (tp_contact_get_identifier (contact), ==, "me@test.com");
629
630 /* Prepare room channel and assert it prepared the self contact */
631 tp_tests_proxy_run_until_prepared (test->channel_room, channel_features);
632
633 contact = tp_channel_group_get_self_contact (test->channel_room);
634 g_assert_cmpstr (tp_contact_get_identifier (contact), ==, "me@test.com");
635
636 /* Add a member in the room, assert that the member fetched its alias before
637 * being signaled. */
638 handle = tp_handle_ensure (test->contact_repo, id, NULL, NULL);
639 tp_tests_contacts_connection_change_aliases (
640 TP_TESTS_CONTACTS_CONNECTION (test->base_connection),
641 1, &handle, &alias2);
642
643 g_signal_connect (test->channel_room, "group-contacts-changed",
644 G_CALLBACK (group_contacts_changed_cb), test);
645
646 handles = g_array_new (FALSE, FALSE, sizeof (TpHandle));
647 g_array_append_val (handles, handle);
648 tp_cli_channel_interface_group_call_add_members (test->channel_room, -1,
649 handles, "hello", NULL, NULL, NULL, NULL);
650 g_array_unref (handles);
651
652 g_main_loop_run (test->mainloop);
653
654 /* There is ourself and the new contact, get the new one */
655 contacts = tp_channel_group_dup_members_contacts (test->channel_room);
656 g_assert (contacts != NULL);
657 g_assert (contacts->len == 2);
658 contact = g_ptr_array_index (contacts, 0);
659 if (!tp_strdiff (tp_contact_get_identifier (contact), "me@test.com"))
660 contact = g_ptr_array_index (contacts, 1);
661 g_assert_cmpstr (tp_contact_get_identifier (contact), ==, id);
662 g_assert_cmpstr (tp_contact_get_alias (contact), ==, alias2);
575663 }
576664
577665 int
615703 g_test_add ("/channel/join/room", Test, NULL, setup,
616704 test_join_room, teardown);
617705
706 g_test_add ("/channel/contacts", Test, NULL, setup,
707 test_contacts, teardown);
708
618709 return g_test_run ();
619710 }
1717 #include <stdio.h>
1818 #include <string.h>
1919 #include <glib/gstdio.h>
20 #include <dbus/dbus.h>
21 #include <dbus/dbus-glib.h>
22 #include <dbus/dbus-glib-lowlevel.h>
2023
2124 #include <telepathy-glib/connection.h>
2225 #include <telepathy-glib/contact.h>
2831 #include "tests/lib/debug.h"
2932 #include "tests/lib/myassert.h"
3033 #include "tests/lib/util.h"
34
35 #define MEMBERS_CHANGED_MATCH_RULE \
36 "type='signal'," \
37 "interface='" TP_IFACE_CHANNEL_INTERFACE_GROUP "'," \
38 "member='MembersChanged'"
3139
3240 typedef struct {
3341 GMainLoop *loop;
4957 TpConnection *legacy_client_conn;
5058 TpConnection *no_requests_client_conn;
5159 } Fixture;
60
61 /* We only really actively test TP_CONTACT_FEATURE_ALIAS, but preparing any
62 * of these once should be enough, assuming that the CM is not broken.
63 */
64 static TpContactFeature all_contact_features[] = {
65 TP_CONTACT_FEATURE_ALIAS,
66 TP_CONTACT_FEATURE_AVATAR_TOKEN,
67 TP_CONTACT_FEATURE_PRESENCE,
68 TP_CONTACT_FEATURE_LOCATION,
69 TP_CONTACT_FEATURE_CAPABILITIES,
70 TP_CONTACT_FEATURE_AVATAR_DATA,
71 TP_CONTACT_FEATURE_CONTACT_INFO,
72 TP_CONTACT_FEATURE_CLIENT_TYPES,
73 TP_CONTACT_FEATURE_SUBSCRIPTION_STATES,
74 TP_CONTACT_FEATURE_CONTACT_GROUPS
75 };
76
77 /* If people add new features, they should add them to this test. We could
78 * generate the list dynamically but this seems less brittle.
79 */
80 G_STATIC_ASSERT (G_N_ELEMENTS (all_contact_features) == NUM_TP_CONTACT_FEATURES);
81
5282
5383 static void
5484 by_handle_cb (TpConnection *connection,
830860 g_assert (ok);
831861 }
832862
833 static void
834 test_by_handle_again (Fixture *f,
835 gconstpointer unused G_GNUC_UNUSED)
836 {
837 Result result = { g_main_loop_new (NULL, FALSE), NULL, NULL, NULL };
863 static TpHandle
864 get_handle_with_no_caps (Fixture *f,
865 const gchar *id)
866 {
838867 TpHandle handle;
839 TpHandleRepoIface *service_repo = tp_base_connection_get_handles (
840 f->base_connection, TP_HANDLE_TYPE_CONTACT);
841 TpContact *contact;
842 gpointer weak_pointer;
843 const gchar *alias = "Alice in Wonderland";
844868 GHashTable *capabilities;
845 /* We only really actively test TP_CONTACT_FEATURE_ALIAS, but preparing any
846 * of these once should be enough, assuming that the CM is not broken.
847 */
848 TpContactFeature features[] = {
849 TP_CONTACT_FEATURE_ALIAS,
850 TP_CONTACT_FEATURE_AVATAR_TOKEN,
851 TP_CONTACT_FEATURE_PRESENCE,
852 TP_CONTACT_FEATURE_LOCATION,
853 TP_CONTACT_FEATURE_CAPABILITIES,
854 TP_CONTACT_FEATURE_AVATAR_DATA,
855 TP_CONTACT_FEATURE_CONTACT_INFO,
856 TP_CONTACT_FEATURE_CLIENT_TYPES,
857 TP_CONTACT_FEATURE_SUBSCRIPTION_STATES,
858 TP_CONTACT_FEATURE_CONTACT_GROUPS
859 };
860
861 g_test_bug ("25181");
862 /* If people add new features, they should add them to this test. We could
863 * generate the list dynamically but this seems less brittle.
864 */
865 g_assert_cmpuint (G_N_ELEMENTS (features), ==, NUM_TP_CONTACT_FEATURES);
866
867 handle = tp_handle_ensure (service_repo, "alice", NULL, NULL);
869
870 handle = tp_handle_ensure (f->service_repo, id, NULL, NULL);
868871 g_assert_cmpuint (handle, !=, 0);
869 tp_tests_contacts_connection_change_aliases (f->service_conn, 1, &handle,
870 &alias);
872
871873 /* Unlike almost every other feature, with capabilities “not sure” and “none”
872874 * are different: you really might care about the difference between “I don't
873875 * know if blah can do video” versus “I know blah cannot do video”.
883885 capabilities);
884886 g_hash_table_unref (capabilities);
885887
888 return handle;
889 }
890
891 static void
892 test_by_handle_again (Fixture *f,
893 gconstpointer unused G_GNUC_UNUSED)
894 {
895 Result result = { g_main_loop_new (NULL, FALSE), NULL, NULL, NULL };
896 TpHandle handle;
897 TpContact *contact;
898 gpointer weak_pointer;
899 const gchar *alias = "Alice in Wonderland";
900
901 g_test_bug ("25181");
902
903 handle = get_handle_with_no_caps (f, "alice");
904 tp_tests_contacts_connection_change_aliases (f->service_conn, 1, &handle,
905 &alias);
906
886907 tp_connection_get_contacts_by_handle (f->client_conn,
887908 1, &handle,
888 G_N_ELEMENTS (features), features,
909 G_N_ELEMENTS (all_contact_features), all_contact_features,
889910 by_handle_cb,
890911 &result, finish, NULL);
891912 g_main_loop_run (result.loop);
907928
908929 tp_connection_get_contacts_by_handle (f->client_conn,
909930 1, &handle,
910 G_N_ELEMENTS (features), features,
931 G_N_ELEMENTS (all_contact_features), all_contact_features,
911932 by_handle_cb,
912933 &result, finish, NULL);
913934 g_main_loop_run (result.loop);
13761397 g_hash_table_unref (location_2);
13771398 g_hash_table_unref (location_3);
13781399 g_main_loop_unref (result.loop);
1400 }
1401
1402 /* Regression test case for fd.o#41414 */
1403 static void
1404 test_upgrade_noop (Fixture *f,
1405 gconstpointer unused G_GNUC_UNUSED)
1406 {
1407 Result result = { g_main_loop_new (NULL, FALSE), NULL, NULL, NULL };
1408 TpHandle handle;
1409 TpContact *contact;
1410
1411 g_test_bug ("41414");
1412
1413 /* Get a contact by handle */
1414 handle = get_handle_with_no_caps (f, "test-upgrade-noop");
1415 tp_connection_get_contacts_by_handle (f->client_conn,
1416 1, &handle,
1417 G_N_ELEMENTS (all_contact_features), all_contact_features,
1418 by_handle_cb,
1419 &result, finish, NULL);
1420 g_main_loop_run (result.loop);
1421 g_assert_no_error (result.error);
1422
1423 contact = g_object_ref (g_ptr_array_index (result.contacts, 0));
1424 reset_result (&result);
1425
1426 /* Upgrade it, but it should already have all features */
1427 make_the_connection_disappear (f);
1428 tp_connection_upgrade_contacts (f->client_conn,
1429 1, &contact,
1430 G_N_ELEMENTS (all_contact_features), all_contact_features,
1431 upgrade_cb,
1432 &result, finish, NULL);
1433 g_main_loop_run (result.loop);
1434 g_assert_no_error (result.error);
1435 reset_result (&f->result);
1436
1437 put_the_connection_back (f);
1438
1439 g_object_unref (contact);
13791440 }
13801441
13811442 typedef struct
25262587 }
25272588
25282589 static void
2590 contact_list_changed_cb (TpConnection *connection,
2591 GPtrArray *added,
2592 GPtrArray *removed,
2593 gpointer user_data)
2594 {
2595 gboolean *received = user_data;
2596
2597 g_assert (added != NULL);
2598 g_assert (removed != NULL);
2599
2600 *received = TRUE;
2601 }
2602
2603 static void
25292604 test_contact_list (Fixture *f,
25302605 gconstpointer unused G_GNUC_UNUSED)
25312606 {
25392614 TpHandle handle;
25402615 GPtrArray *contacts;
25412616 TpContact *contact;
2617 gboolean got_contact_list_changed = FALSE;
25422618
25432619 manager = tp_tests_contacts_connection_get_contact_list_manager (
25442620 f->service_conn);
25642640 TP_CONTACT_FEATURE_INVALID);
25652641
25662642 /* Now put it online and wait for contact list state move to success */
2643 g_signal_connect (f->client_conn, "contact-list-changed",
2644 G_CALLBACK (contact_list_changed_cb), &got_contact_list_changed);
25672645 g_signal_connect_swapped (f->client_conn, "notify::contact-list-state",
25682646 G_CALLBACK (finish), &result);
2569 tp_cli_connection_call_connect (f->client_conn, -1,
2570 NULL, NULL, NULL, NULL);
2647 tp_cli_connection_call_connect (f->client_conn, -1, NULL, NULL, NULL, NULL);
25712648 g_main_loop_run (result.loop);
25722649 g_assert_no_error (result.error);
25732650
25742651 g_assert_cmpint (tp_connection_get_contact_list_state (f->client_conn), ==,
25752652 TP_CONTACT_LIST_STATE_SUCCESS);
25762653
2577 /* SUCCESS state must have been delayed until TpContact is prepared */
2654 /* SUCCESS state must have been delayed until TpContact is prepared,
2655 and contact-list-changed must have been emitted just before */
2656 g_assert (got_contact_list_changed);
25782657 contacts = tp_connection_dup_contact_list (f->client_conn);
25792658 g_assert (contacts != NULL);
25802659 g_assert_cmpint (contacts->len, ==, 1);
25882667 g_ptr_array_unref (contacts);
25892668 }
25902669
2670 typedef struct
2671 {
2672 Fixture *f;
2673 GMainLoop *loop;
2674 gboolean expecting_signal;
2675 gboolean got_stored;
2676 gboolean got_publish;
2677 gboolean got_subscribe;
2678 } MembersChangedClosure;
2679
2680 static void
2681 channel_prepared_cb (GObject *source_object,
2682 GAsyncResult *res,
2683 gpointer user_data)
2684 {
2685 TpChannel *channel = TP_CHANNEL (source_object);
2686 MembersChangedClosure *closure = user_data;
2687 const gchar *identifier;
2688 GError *error = NULL;
2689
2690 tp_proxy_prepare_finish (channel, res, &error);
2691 g_assert_no_error (error);
2692
2693 g_assert (closure->expecting_signal);
2694
2695 /* We expect to just get the stored, publish and subscribe lists exactly
2696 * once */
2697 identifier = tp_channel_get_identifier (channel);
2698 if (g_strcmp0 (identifier, "stored") == 0)
2699 {
2700 g_assert (!closure->got_stored);
2701 closure->got_stored = TRUE;
2702 }
2703 else if (g_strcmp0 (identifier, "publish") == 0)
2704 {
2705 g_assert (!closure->got_publish);
2706 closure->got_publish = TRUE;
2707 }
2708 else if (g_strcmp0 (identifier, "subscribe") == 0)
2709 {
2710 g_assert (!closure->got_subscribe);
2711 closure->got_subscribe = TRUE;
2712 }
2713 else
2714 {
2715 g_assert_not_reached ();
2716 }
2717
2718 if (closure->got_stored && closure->got_publish && closure->got_subscribe)
2719 g_main_loop_quit (closure->loop);
2720 }
2721
2722 static DBusHandlerResult
2723 message_filter (DBusConnection *connection,
2724 DBusMessage *msg,
2725 gpointer user_data)
2726 {
2727 MembersChangedClosure *closure = user_data;
2728
2729 if (dbus_message_is_signal (msg, TP_IFACE_CHANNEL_INTERFACE_GROUP,
2730 "MembersChanged"))
2731 {
2732 TpChannel *channel;
2733 DBusMessageIter iter, sub_iter;
2734 gint type;
2735 dbus_int32_t *added;
2736 gint n_added;
2737
2738 channel = tp_channel_new (closure->f->client_conn,
2739 dbus_message_get_path (msg), TP_IFACE_CHANNEL_INTERFACE_GROUP,
2740 TP_HANDLE_TYPE_LIST, 0, NULL);
2741 tp_proxy_prepare_async (channel, NULL, channel_prepared_cb, closure);
2742
2743 /* Extract the number of added handles */
2744 dbus_message_iter_init (msg, &iter);
2745 dbus_message_iter_next (&iter); /* Skipe the message */
2746 type = dbus_message_iter_get_arg_type (&iter);
2747 g_assert_cmpint (type, ==, DBUS_TYPE_ARRAY);
2748 dbus_message_iter_recurse (&iter, &sub_iter);
2749 type = dbus_message_iter_get_arg_type (&sub_iter);
2750 g_assert_cmpint (type, ==, DBUS_TYPE_UINT32);
2751 dbus_message_iter_get_fixed_array (&sub_iter, &added, &n_added);
2752
2753 /* Bob, Alice and Carol == 3 */
2754 g_assert_cmpint (n_added, ==, 3);
2755 }
2756
2757 return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
2758 }
2759
2760 static void
2761 test_initial_contact_list (Fixture *f,
2762 gconstpointer unused G_GNUC_UNUSED)
2763 {
2764 const GQuark conn_features[] = { TP_CONNECTION_FEATURE_CONTACT_LIST, 0 };
2765 TestContactListManager *manager;
2766 MembersChangedClosure closure;
2767 DBusConnection *dbus_connection;
2768 TpHandle alice;
2769 const gchar *alice_id = "alice";
2770 TpHandle bob_carol[2];
2771 const gchar *bob_id = "bob";
2772 const gchar *carol_id = "carol";
2773
2774 manager = tp_tests_contacts_connection_get_contact_list_manager (
2775 f->service_conn);
2776
2777 /* We use a filter to be sure not to miss the initial MembersChanged
2778 * signals */
2779 closure.f = f;
2780 closure.loop = g_main_loop_new (NULL, FALSE);
2781 closure.got_stored = FALSE;
2782 closure.got_publish = FALSE;
2783 closure.got_subscribe = FALSE;
2784 /* No signal is expected until after we connect */
2785 closure.expecting_signal = FALSE;
2786
2787 dbus_connection = dbus_g_connection_get_connection (
2788 tp_proxy_get_dbus_connection (TP_PROXY (f->client_conn)));
2789 dbus_connection_ref (dbus_connection);
2790 dbus_connection_add_filter (dbus_connection, message_filter, &closure, NULL);
2791 dbus_bus_add_match (dbus_connection, MEMBERS_CHANGED_MATCH_RULE, NULL);
2792
2793 /* Connection is OFFLINE initially */
2794 tp_tests_proxy_run_until_prepared (f->client_conn, conn_features);
2795 g_assert_cmpint (tp_connection_get_contact_list_state (f->client_conn), ==,
2796 TP_CONTACT_LIST_STATE_NONE);
2797
2798 /* Add contacts in our initial roster CM-side */
2799 alice = tp_handle_ensure (f->service_repo, alice_id, NULL, NULL);
2800 test_contact_list_manager_add_initial_contacts (manager, 1, &alice);
2801
2802 bob_carol[0] = tp_handle_ensure (f->service_repo, bob_id, NULL, NULL);
2803 bob_carol[1] = tp_handle_ensure (f->service_repo, carol_id, NULL, NULL);
2804 test_contact_list_manager_add_initial_contacts (manager, 2, bob_carol);
2805
2806 /* Now put it online and wait for the contact list state to move to
2807 * success */
2808 closure.expecting_signal = TRUE;
2809 tp_cli_connection_call_connect (f->client_conn, -1,
2810 NULL, NULL, NULL, NULL);
2811
2812 g_main_loop_run (closure.loop);
2813
2814 dbus_bus_remove_match (dbus_connection, MEMBERS_CHANGED_MATCH_RULE, NULL);
2815 dbus_connection_remove_filter (dbus_connection, message_filter, &closure);
2816 dbus_connection_unref (dbus_connection);
2817
2818 g_main_loop_unref (closure.loop);
2819 }
2820
2821 static void
2822 test_self_contact (Fixture *f,
2823 gconstpointer unused G_GNUC_UNUSED)
2824 {
2825 const GQuark conn_features[] = { TP_CONNECTION_FEATURE_CONNECTED, 0 };
2826 TpSimpleClientFactory *factory;
2827 TpContact *contact;
2828
2829 factory = tp_proxy_get_factory (f->client_conn);
2830 tp_simple_client_factory_add_contact_features_varargs (factory,
2831 TP_CONTACT_FEATURE_ALIAS,
2832 TP_CONTACT_FEATURE_INVALID);
2833
2834 tp_cli_connection_call_connect (f->client_conn, -1, NULL, NULL, NULL, NULL);
2835 tp_tests_proxy_run_until_prepared (f->client_conn, conn_features);
2836
2837 contact = tp_connection_get_self_contact (f->client_conn);
2838 g_assert (contact != NULL);
2839 g_assert (tp_contact_has_feature (contact, TP_CONTACT_FEATURE_ALIAS));
2840 }
2841
25912842 static void
25922843 setup_internal (Fixture *f,
25932844 gboolean connect,
26852936 ADD (no_features);
26862937 ADD (features);
26872938 ADD (upgrade);
2939 ADD (upgrade_noop);
26882940 ADD (by_id);
26892941 ADD (avatar_requirements);
26902942 ADD (avatar_data);
27112963 g_test_add ("/contacts/contact-list", Fixture, NULL,
27122964 setup_no_connect, test_contact_list, teardown);
27132965
2966 g_test_add ("/contacts/initial-contact-list", Fixture, NULL,
2967 setup_no_connect, test_initial_contact_list, teardown);
2968
2969 g_test_add ("/contacts/self-contact", Fixture, NULL,
2970 setup_no_connect, test_self_contact, teardown);
2971
27142972 return g_test_run ();
27152973 }
0 /* Tests of TpDbusTubeChannel
1 *
2 * Copyright © 2010 Collabora Ltd. <http://www.collabora.co.uk/>
3 *
4 * Copying and distribution of this file, with or without modification,
5 * are permitted in any medium without royalty provided the copyright
6 * notice and this notice are preserved.
7 */
8
9 #include <string.h>
10
11 #include <telepathy-glib/dbus-tube-channel.h>
12 #include <telepathy-glib/debug.h>
13 #include <telepathy-glib/defs.h>
14 #include <telepathy-glib/dbus.h>
15
16 #include "tests/lib/util.h"
17 #include "tests/lib/simple-conn.h"
18 #include "tests/lib/dbus-tube-chan.h"
19
20 typedef struct {
21 GMainLoop *mainloop;
22 TpDBusDaemon *dbus;
23
24 /* Service side objects */
25 TpBaseConnection *base_connection;
26 TpTestsDBusTubeChannel *tube_chan_service;
27 TpHandleRepoIface *contact_repo;
28 TpHandleRepoIface *room_repo;
29
30 /* Client side objects */
31 TpConnection *connection;
32 TpDBusTubeChannel *tube;
33
34 GError *error /* initialized where needed */;
35 gint wait;
36 } Test;
37
38 static void
39 setup (Test *test,
40 gconstpointer data)
41 {
42 test->mainloop = g_main_loop_new (NULL, FALSE);
43 test->dbus = tp_tests_dbus_daemon_dup_or_die ();
44
45 test->error = NULL;
46
47 /* Create (service and client sides) connection objects */
48 tp_tests_create_and_connect_conn (TP_TESTS_TYPE_SIMPLE_CONNECTION,
49 "me@test.com", &test->base_connection, &test->connection);
50 }
51
52 static void
53 teardown (Test *test,
54 gconstpointer data)
55 {
56 g_clear_error (&test->error);
57
58 tp_clear_object (&test->dbus);
59 g_main_loop_unref (test->mainloop);
60 test->mainloop = NULL;
61
62 tp_clear_object (&test->tube_chan_service);
63 tp_clear_object (&test->tube);
64
65 tp_cli_connection_run_disconnect (test->connection, -1, &test->error, NULL);
66 g_assert_no_error (test->error);
67
68 g_object_unref (test->connection);
69 g_object_unref (test->base_connection);
70 }
71
72 static void
73 create_tube_service (Test *test,
74 gboolean requested,
75 gboolean contact)
76 {
77 gchar *chan_path;
78 TpHandle handle, alf_handle;
79 GHashTable *props;
80 GType type;
81 TpSimpleClientFactory *factory;
82
83 /* If previous tube is still preparing, refs are kept on it. We want it to be
84 * destroyed now otherwise it will get reused by the factory. */
85 if (test->tube != NULL)
86 tp_tests_proxy_run_until_prepared (test->tube, NULL);
87
88 tp_clear_object (&test->tube_chan_service);
89 tp_clear_object (&test->tube);
90
91 /* Create service-side tube channel object */
92 chan_path = g_strdup_printf ("%s/Channel",
93 tp_proxy_get_object_path (test->connection));
94
95 test->contact_repo = tp_base_connection_get_handles (test->base_connection,
96 TP_HANDLE_TYPE_CONTACT);
97 g_assert (test->contact_repo != NULL);
98
99 test->room_repo = tp_base_connection_get_handles (test->base_connection,
100 TP_HANDLE_TYPE_ROOM);
101 g_assert (test->room_repo != NULL);
102
103 if (contact)
104 {
105 handle = tp_handle_ensure (test->contact_repo, "bob", NULL, &test->error);
106 type = TP_TESTS_TYPE_CONTACT_DBUS_TUBE_CHANNEL;
107 }
108 else
109 {
110 handle = tp_handle_ensure (test->room_repo, "#test", NULL, &test->error);
111 type = TP_TESTS_TYPE_ROOM_DBUS_TUBE_CHANNEL;
112 }
113
114 g_assert_no_error (test->error);
115
116 alf_handle = tp_handle_ensure (test->contact_repo, "alf", NULL, &test->error);
117 g_assert_no_error (test->error);
118
119 test->tube_chan_service = g_object_new (
120 type,
121 "connection", test->base_connection,
122 "handle", handle,
123 "requested", requested,
124 "object-path", chan_path,
125 "initiator-handle", alf_handle,
126 NULL);
127
128 /* Create client-side tube channel object */
129 g_object_get (test->tube_chan_service, "channel-properties", &props, NULL);
130
131 factory = tp_proxy_get_factory (test->connection);
132 test->tube = (TpDBusTubeChannel *) tp_simple_client_factory_ensure_channel (
133 factory, test->connection, chan_path, props, &test->error);
134 g_assert (TP_IS_DBUS_TUBE_CHANNEL (test->tube));
135
136 g_assert_no_error (test->error);
137
138 g_free (chan_path);
139 g_hash_table_unref (props);
140
141 if (contact)
142 tp_handle_unref (test->contact_repo, handle);
143 else
144 tp_handle_unref (test->room_repo, handle);
145 }
146
147 /* Test Basis */
148
149 static void
150 test_creation (Test *test,
151 gconstpointer data G_GNUC_UNUSED)
152 {
153 create_tube_service (test, TRUE, TRUE);
154
155 g_assert (TP_IS_DBUS_TUBE_CHANNEL (test->tube));
156 g_assert (TP_IS_CHANNEL (test->tube));
157
158 create_tube_service (test, FALSE, FALSE);
159
160 g_assert (TP_IS_DBUS_TUBE_CHANNEL (test->tube));
161 g_assert (TP_IS_CHANNEL (test->tube));
162 }
163
164 static void
165 check_parameters (GHashTable *parameters)
166 {
167 g_assert (parameters != NULL);
168
169 g_assert_cmpuint (g_hash_table_size (parameters), ==, 1);
170 g_assert_cmpuint (tp_asv_get_uint32 (parameters, "badger", NULL), ==, 42);
171 }
172
173 static void
174 test_properties (Test *test,
175 gconstpointer data G_GNUC_UNUSED)
176 {
177 gchar *service;
178 GHashTable *parameters;
179
180 /* Outgoing tube */
181 create_tube_service (test, TRUE, TRUE);
182
183 /* Service */
184 g_assert_cmpstr (tp_dbus_tube_channel_get_service_name (test->tube), ==,
185 "com.test.Test");
186 g_object_get (test->tube, "service-name", &service, NULL);
187 g_assert_cmpstr (service, ==, "com.test.Test");
188 g_free (service);
189
190 /* Parameters */
191 parameters = tp_dbus_tube_channel_get_parameters (test->tube);
192 /* NULL as the tube has not be offered yet */
193 g_assert (parameters == NULL);
194 g_object_get (test->tube, "parameters", &parameters, NULL);
195 g_assert (parameters == NULL);
196
197 /* Incoming tube */
198 create_tube_service (test, FALSE, FALSE);
199
200 /* Parameters */
201 parameters = tp_dbus_tube_channel_get_parameters (test->tube);
202 check_parameters (parameters);
203 g_object_get (test->tube, "parameters", &parameters, NULL);
204 check_parameters (parameters);
205 g_hash_table_unref (parameters);
206 }
207
208 int
209 main (int argc,
210 char **argv)
211 {
212 tp_tests_init (&argc, &argv);
213 g_test_bug_base ("http://bugs.freedesktop.org/show_bug.cgi?id=");
214
215 g_test_add ("/dbus-tube/creation", Test, NULL, setup, test_creation,
216 teardown);
217 g_test_add ("/dbus-tube/properties", Test, NULL, setup, test_properties,
218 teardown);
219
220 return g_test_run ();
221 }
185185 MYASSERT (flags, ": GroupFlags property should be defined");
186186 g_assert_cmpuint (flags, ==,
187187 TP_CHANNEL_GROUP_FLAG_PROPERTIES |
188 TP_CHANNEL_GROUP_FLAG_MEMBERS_CHANGED_DETAILED);
188 TP_CHANNEL_GROUP_FLAG_MEMBERS_CHANGED_DETAILED |
189 TP_CHANNEL_GROUP_FLAG_CAN_ADD);
189190
190191 g_hash_table_unref (props);
191192 }
10421042 g_print ("\n\n==== Acknowledging one message ====\n");
10431043
10441044 {
1045 GArray *msgid = g_array_sized_new (FALSE, FALSE, sizeof (guint), 1);
1046
1045 /* As a regression test for
1046 * <https://bugs.freedesktop.org/show_bug.cgi?id=40523>, we include the
1047 * ID of the message we want to ack twice. This used to cause a
1048 * double-free.
1049 */
1050 GArray *msgid = g_array_sized_new (FALSE, FALSE, sizeof (guint), 2);
1051
1052 g_array_append_val (msgid, last_received_id);
10471053 g_array_append_val (msgid, last_received_id);
10481054
10491055 tp_cli_channel_type_text_run_acknowledge_pending_messages (chan, -1,
1010 #include <telepathy-glib/util.h>
1111
1212 #include "_gen/svc.h"
13 #include "tests/lib/myassert.h"
1413 #include "tests/lib/util.h"
14
15 #define WITH_PROPERTIES_IFACE "com.example.WithProperties"
1516
1617 typedef struct _TestProperties {
1718 GObject parent;
5859 GValue *value,
5960 gpointer user_data)
6061 {
61 MYASSERT (!tp_strdiff (user_data, "read") ||
62 !tp_strdiff (user_data, "full-access"),
63 "%s", (gchar *) user_data);
62 if (tp_strdiff (user_data, "read"))
63 g_assert_cmpstr (user_data, ==, "full-access");
64
6465 g_value_set_uint (value, 42);
6566 }
6667
7273 gpointer user_data,
7374 GError **error)
7475 {
75 MYASSERT (G_VALUE_HOLDS_UINT (value), "");
76 MYASSERT (!tp_strdiff (user_data, "FULL ACCESS") ||
77 !tp_strdiff (user_data, "BLACK HOLE"),
78 "%s", (gchar *) user_data);
79 MYASSERT (g_value_get_uint (value) == 57, "%u", g_value_get_uint (value));
76 g_assert (G_VALUE_HOLDS_UINT (value));
77
78 if (tp_strdiff (user_data, "FULL ACCESS"))
79 g_assert_cmpstr (user_data, ==, "BLACK HOLE");
80
81 g_assert_cmpuint (g_value_get_uint (value), ==, 57);
8082 return TRUE;
8183 }
8284
9092 { NULL }
9193 };
9294 static TpDBusPropertiesMixinIfaceImpl interfaces[] = {
93 { "com.example.WithProperties", prop_getter, prop_setter,
95 { WITH_PROPERTIES_IFACE, prop_getter, prop_setter,
9496 with_properties_props },
9597 { NULL }
9698 };
102104 }
103105
104106 static void
105 print_asv_item (gpointer key,
106 gpointer value,
107 gpointer unused)
108 {
109 gchar *value_str = g_strdup_value_contents (value);
110
111 g_print (" \"%s\" -> %s\n", (gchar *) key, value_str);
112 g_free (value_str);
113 }
114
115 static void
116 print_asv (GHashTable *hash)
117 {
118 g_print ("{\n");
119 g_hash_table_foreach (hash, print_asv_item, NULL);
120 g_print ("}\n");
107 test_get (TpProxy *proxy)
108 {
109 GValue *value;
110
111 g_assert (tp_cli_dbus_properties_run_get (proxy, -1,
112 WITH_PROPERTIES_IFACE, "ReadOnly", &value, NULL, NULL));
113 g_assert (G_VALUE_HOLDS_UINT (value));
114 g_assert_cmpuint (g_value_get_uint (value), ==, 42);
115
116 g_boxed_free (G_TYPE_VALUE, value);
117 }
118
119 static void
120 test_set (TpProxy *proxy)
121 {
122 GValue value = { 0, };
123
124 g_value_init (&value, G_TYPE_UINT);
125 g_value_set_uint (&value, 57);
126
127 g_assert (tp_cli_dbus_properties_run_set (proxy, -1,
128 WITH_PROPERTIES_IFACE, "ReadWrite", &value, NULL, NULL));
129 g_assert (tp_cli_dbus_properties_run_set (proxy, -1,
130 WITH_PROPERTIES_IFACE, "WriteOnly", &value, NULL, NULL));
131
132 g_value_unset (&value);
133 }
134
135 static void
136 test_get_all (TpProxy *proxy)
137 {
138 GHashTable *hash;
139 GValue *value;
140
141 g_assert (tp_cli_dbus_properties_run_get_all (proxy, -1,
142 WITH_PROPERTIES_IFACE, &hash, NULL, NULL));
143 g_assert (hash != NULL);
144 tp_asv_dump (hash);
145 g_assert_cmpuint (g_hash_table_size (hash), ==, 2);
146
147 value = g_hash_table_lookup (hash, "WriteOnly");
148 g_assert (value == NULL);
149
150 value = g_hash_table_lookup (hash, "ReadOnly");
151 g_assert (value != NULL);
152 g_assert (G_VALUE_HOLDS_UINT (value));
153 g_assert_cmpuint (g_value_get_uint (value), ==, 42);
154
155 value = g_hash_table_lookup (hash, "ReadWrite");
156 g_assert (value != NULL);
157 g_assert (G_VALUE_HOLDS_UINT (value));
158 g_assert_cmpuint (g_value_get_uint (value), ==, 42);
159
160 g_hash_table_destroy (hash);
161 }
162
163 static void
164 properties_changed_cb (
165 TpProxy *proxy,
166 const gchar *interface_name,
167 GHashTable *changed_properties,
168 const gchar **invalidated_properties,
169 gpointer user_data,
170 GObject *weak_object)
171 {
172 GMainLoop *loop = user_data;
173 guint value;
174 gboolean valid;
175
176 g_assert_cmpuint (g_hash_table_size (changed_properties), ==, 1);
177 value = tp_asv_get_uint32 (changed_properties, "ReadOnly", &valid);
178 g_assert (valid);
179 g_assert_cmpuint (value, ==, 42);
180
181 g_assert_cmpuint (g_strv_length ((gchar **) invalidated_properties), ==, 1);
182 g_assert_cmpstr (invalidated_properties[0], ==, "ReadWrite");
183
184 g_main_loop_quit (loop);
185 }
186
187 typedef struct {
188 TestProperties *obj;
189 TpProxy *proxy;
190 } Context;
191
192 static void
193 test_emit_changed (Context *ctx)
194 {
195 GMainLoop *loop = g_main_loop_new (NULL, FALSE);
196 TpProxySignalConnection *signal_conn;
197 const gchar *properties[] = { "ReadOnly", "ReadWrite", NULL };
198 GError *error = NULL;
199
200 signal_conn = tp_cli_dbus_properties_connect_to_properties_changed (
201 ctx->proxy, properties_changed_cb, loop, NULL, NULL, &error);
202 g_assert_no_error (error);
203 g_assert (signal_conn != NULL);
204
205 tp_dbus_properties_mixin_emit_properties_changed (G_OBJECT (ctx->obj),
206 WITH_PROPERTIES_IFACE, properties);
207 g_main_loop_run (loop);
208
209 tp_dbus_properties_mixin_emit_properties_changed_varargs (G_OBJECT (ctx->obj),
210 WITH_PROPERTIES_IFACE, "ReadOnly", "ReadWrite", NULL);
211 g_main_loop_run (loop);
212
213 tp_proxy_signal_connection_disconnect (signal_conn);
121214 }
122215
123216 int
124217 main (int argc, char **argv)
125218 {
126 TestProperties *obj;
219 Context ctx;
127220 TpDBusDaemon *dbus_daemon;
128 TpProxy *proxy;
129 GValue *value;
130 GHashTable *hash;
131
132 tp_tests_abort_after (10);
133 tp_debug_set_flags ("all");
134 g_type_init ();
221
222 tp_tests_init (&argc, &argv);
223
135224 dbus_daemon = tp_tests_dbus_daemon_dup_or_die ();
136
137 obj = tp_tests_object_new_static_class (TEST_TYPE_PROPERTIES, NULL);
138 tp_dbus_daemon_register_object (dbus_daemon, "/", obj);
225 ctx.obj = tp_tests_object_new_static_class (TEST_TYPE_PROPERTIES, NULL);
226 tp_dbus_daemon_register_object (dbus_daemon, "/", ctx.obj);
139227
140228 /* Open a D-Bus connection to myself */
141 proxy = TP_PROXY (tp_tests_object_new_static_class (TP_TYPE_PROXY,
229 ctx.proxy = TP_PROXY (tp_tests_object_new_static_class (TP_TYPE_PROXY,
142230 "dbus-daemon", dbus_daemon,
143231 "bus-name", tp_dbus_daemon_get_unique_name (dbus_daemon),
144232 "object-path", "/",
145233 NULL));
146234
147 MYASSERT (tp_proxy_has_interface (proxy, "org.freedesktop.DBus.Properties"),
148 "");
149
150 MYASSERT (tp_cli_dbus_properties_run_get (proxy, -1,
151 "com.example.WithProperties", "ReadOnly", &value, NULL, NULL), "");
152 MYASSERT (G_VALUE_HOLDS_UINT (value), "");
153 MYASSERT (g_value_get_uint (value) == 42, "%u", g_value_get_uint (value));
154
155 g_value_set_uint (value, 57);
156
157 MYASSERT (tp_cli_dbus_properties_run_set (proxy, -1,
158 "com.example.WithProperties", "ReadWrite", value, NULL, NULL), "");
159
160 MYASSERT (tp_cli_dbus_properties_run_set (proxy, -1,
161 "com.example.WithProperties", "WriteOnly", value, NULL, NULL), "");
162
163 g_boxed_free (G_TYPE_VALUE, value);
164
165 MYASSERT (tp_cli_dbus_properties_run_get_all (proxy, -1,
166 "com.example.WithProperties", &hash, NULL, NULL), "");
167 MYASSERT (hash != NULL, "");
168 print_asv (hash);
169 MYASSERT (g_hash_table_size (hash) == 2, "%u", g_hash_table_size (hash));
170 value = g_hash_table_lookup (hash, "WriteOnly");
171 MYASSERT (value == NULL, "");
172 value = g_hash_table_lookup (hash, "ReadOnly");
173 MYASSERT (value != NULL, "");
174 MYASSERT (G_VALUE_HOLDS_UINT (value), "");
175 MYASSERT (g_value_get_uint (value) == 42, "%u", g_value_get_uint (value));
176 value = g_hash_table_lookup (hash, "ReadWrite");
177 MYASSERT (value != NULL, "");
178 MYASSERT (G_VALUE_HOLDS_UINT (value), "");
179 MYASSERT (g_value_get_uint (value) == 42, "%u", g_value_get_uint (value));
180
181 g_hash_table_destroy (hash);
182
183 g_object_unref (obj);
184 g_object_unref (proxy);
235 g_assert (tp_proxy_has_interface (ctx.proxy, "org.freedesktop.DBus.Properties"));
236
237 g_test_add_data_func ("/properties/get", ctx.proxy, (GTestDataFunc) test_get);
238 g_test_add_data_func ("/properties/set", ctx.proxy, (GTestDataFunc) test_set);
239 g_test_add_data_func ("/properties/get-all", ctx.proxy, (GTestDataFunc) test_get_all);
240
241 g_test_add_data_func ("/properties/changed", &ctx, (GTestDataFunc) test_emit_changed);
242
243 g_test_run ();
244
245 g_object_unref (ctx.obj);
246 g_object_unref (ctx.proxy);
185247 g_object_unref (dbus_daemon);
186248
187249 return 0;
324324 }
325325
326326 static void
327 check_avatar_requirements (TpAvatarRequirements *req)
328 {
329 g_assert (req != NULL);
330
331 g_assert (req->supported_mime_types != NULL);
332 g_assert_cmpuint (g_strv_length (req->supported_mime_types), ==, 3);
333 g_assert (tp_strv_contains ((const gchar * const *) req->supported_mime_types,
334 "image/png"));
335 g_assert (tp_strv_contains ((const gchar * const *) req->supported_mime_types,
336 "image/jpeg"));
337 g_assert (tp_strv_contains ((const gchar * const *) req->supported_mime_types,
338 "image/gif"));
339
340 g_assert_cmpuint (req->minimum_width, ==, 32);
341 g_assert_cmpuint (req->minimum_height, ==, 32);
342 g_assert_cmpuint (req->recommended_width, ==, 64);
343 g_assert_cmpuint (req->recommended_height, ==, 64);
344 g_assert_cmpuint (req->maximum_width, ==, 96);
345 g_assert_cmpuint (req->maximum_height, ==, 96);
346 g_assert_cmpuint (req->maximum_bytes, ==, 37748736);
347 }
348
349 static void
327350 test_protocol_object (Test *test,
328351 gconstpointer data G_GNUC_UNUSED)
329352 {
353 TpAvatarRequirements *req;
354
330355 g_assert_cmpstr (tp_connection_manager_get_name (test->cm), ==,
331356 "example_echo_2");
332357 tp_tests_proxy_run_until_prepared (test->cm, NULL);
356381 "x-telepathy-example");
357382 g_assert (TP_IS_CAPABILITIES (tp_protocol_get_capabilities (
358383 test->protocol)));
384
385 req = tp_protocol_get_avatar_requirements (test->protocol);
386 check_avatar_requirements (req);
387
388 g_object_get (test->protocol, "avatar-requirements", &req, NULL);
389 check_avatar_requirements (req);
359390 }
360391
361392 static void
362393 test_protocol_object_old (Test *test,
363394 gconstpointer data G_GNUC_UNUSED)
364395 {
396 TpAvatarRequirements *req;
397
365398 g_assert_cmpstr (tp_connection_manager_get_name (test->old_cm), ==,
366399 "example_echo");
367400 tp_tests_proxy_run_until_prepared (test->old_cm, NULL);
385418 "Example");
386419 g_assert_cmpstr (tp_protocol_get_vcard_field (test->old_protocol), ==, NULL);
387420 g_assert (tp_protocol_get_capabilities (test->old_protocol) == NULL);
421
422 req = tp_protocol_get_avatar_requirements (test->old_protocol);
423 g_assert (req == NULL);
388424 }
389425
390426 static void
393429 {
394430 GQuark features[] = { TP_PROTOCOL_FEATURE_CORE, 0 };
395431 TpCapabilities *caps;
432 TpAvatarRequirements *req;
396433
397434 g_assert_cmpstr (tp_connection_manager_get_name (test->file_cm), ==,
398435 "test_manager_file");
424461 g_assert (!tp_capabilities_is_specific_to_contact (caps));
425462 g_assert (tp_capabilities_supports_text_chats (caps));
426463 g_assert (!tp_capabilities_supports_text_chatrooms (caps));
464
465 req = tp_protocol_get_avatar_requirements (test->file_protocol);
466 check_avatar_requirements (req);
467
468 g_object_get (test->file_protocol, "avatar-requirements", &req, NULL);
469 check_avatar_requirements (req);
427470 }
428471
429472 int
1010 default-account = foo@default
1111 default-port = 1234
1212 default-server-list = foo;bar;
13 Interfaces=
13 Interfaces=org.freedesktop.Telepathy.Protocol.Interface.Avatars;
1414 ConnectionInterfaces=org.freedesktop.Telepathy.Connection.Interface.Requests;org.freedesktop.Telepathy.Connection.Interface.Contacts;
1515 RequestableChannelClasses=1-1-text;
1616 VCardField=x-telepathy-tests
1717 EnglishName=Regression tests
1818 Icon=im-icq
19 SupportedAvatarMIMETypes=image/png;image/jpeg;image/gif;
20 MinimumAvatarHeight=32
21 RecommendedAvatarHeight=64
22 MaximumAvatarHeight=96
23 MinimumAvatarWidth=32
24 RecommendedAvatarWidth=64
25 MaximumAvatarWidth=96
26 MaximumAvatarBytes=37748736
1927
2028 [1-1-text]
2129 org.freedesktop.Telepathy.Channel.ChannelType s=org.freedesktop.Telepathy.Channel.Type.Text
99 #include <string.h>
1010
1111 #include <telepathy-glib/telepathy-glib.h>
12 #include <telepathy-glib/message-mixin.h>
1213
1314 #include "examples/cm/echo-message-parts/chan.h"
14 #include "examples/cm/echo-message-parts/conn.h"
15
15
16 #include "tests/lib/contacts-conn.h"
1617 #include "tests/lib/util.h"
1718
1819 typedef struct {
115116 test->error = NULL;
116117
117118 /* Create (service and client sides) connection objects */
118 tp_tests_create_and_connect_conn (EXAMPLE_TYPE_ECHO_2_CONNECTION,
119 tp_tests_create_and_connect_conn (TP_TESTS_TYPE_CONTACTS_CONNECTION,
119120 "me@test.com", &test->base_connection, &test->connection);
120121
121122 create_contact_chan (test);
832833 g_free (text);
833834
834835 g_list_free (messages);
836 }
837
838 static void
839 test_sender_prepared (Test *test,
840 gconstpointer data G_GNUC_UNUSED)
841 {
842 GQuark features[] = { TP_TEXT_CHANNEL_FEATURE_INCOMING_MESSAGES, 0 };
843 TpSimpleClientFactory *factory;
844 TpHandle admin;
845 TpContact *sender;
846 TpMessage *msg;
847
848 tp_tests_proxy_run_until_prepared (test->channel, features);
849
850 /* Simulate a message received from a new contact */
851 admin = tp_handle_ensure (test->contact_repo, "admin", NULL, NULL);
852 msg = tp_cm_message_new_text (test->base_connection, admin,
853 TP_CHANNEL_TEXT_MESSAGE_TYPE_NORMAL,
854 "Service interuption in 1h");
855 tp_message_mixin_take_received ((GObject *) test->chan_service, msg);
856
857 g_signal_connect (test->channel, "message-received",
858 G_CALLBACK (message_received_cb), test);
859
860 g_main_loop_run (test->mainloop);
861 g_assert_no_error (test->error);
862
863 /* No feature was set on the factory */
864 sender = tp_signalled_message_get_sender (test->received_msg);
865 g_assert (!tp_contact_has_feature (sender, TP_CONTACT_FEATURE_ALIAS));
866
867 /* Now ask to prepare ALIAS, on next msg it will be prepared */
868 factory = tp_proxy_get_factory (test->connection);
869 tp_simple_client_factory_add_contact_features_varargs (factory,
870 TP_CONTACT_FEATURE_ALIAS,
871 TP_CONTACT_FEATURE_INVALID);
872
873 msg = tp_cm_message_new_text (test->base_connection, admin,
874 TP_CHANNEL_TEXT_MESSAGE_TYPE_NORMAL,
875 "Service interuption in 30min");
876 tp_message_mixin_take_received ((GObject *) test->chan_service, msg);
877
878 g_signal_connect (test->channel, "message-received",
879 G_CALLBACK (message_received_cb), test);
880
881 g_main_loop_run (test->mainloop);
882 g_assert_no_error (test->error);
883
884 sender = tp_signalled_message_get_sender (test->received_msg);
885 g_assert (tp_contact_has_feature (sender, TP_CONTACT_FEATURE_ALIAS));
886 }
887
888 static void
889 test_sent_with_no_sender (Test *test,
890 gconstpointer data G_GNUC_UNUSED)
891 {
892 GPtrArray *parts;
893 TpContact *sender;
894
895 tp_tests_proxy_run_until_prepared (test->channel, NULL);
896
897 /* Simulate a message sent with no sender, it must fallback to
898 * connection's self-contact. Unfortunately we cannot use the message mixin
899 * because it force setting a sender, and we can't use TpCMMessage to create
900 * parts because it's kept private. So back to old school. */
901 parts = g_ptr_array_new_with_free_func ((GDestroyNotify) g_hash_table_unref);
902 g_ptr_array_add (parts, tp_asv_new (
903 "message-type", G_TYPE_UINT, TP_CHANNEL_TEXT_MESSAGE_TYPE_NORMAL,
904 NULL));
905 g_ptr_array_add (parts, tp_asv_new (
906 "content-type", G_TYPE_STRING, "text/plain",
907 "content", G_TYPE_STRING, "bla bla bla",
908 NULL));
909
910 g_signal_connect (test->channel, "message-sent",
911 G_CALLBACK (message_sent_cb), test);
912
913 tp_svc_channel_interface_messages_emit_message_sent (test->chan_service,
914 parts, 0, "this-is-a-token");
915
916 g_main_loop_run (test->mainloop);
917 g_assert_no_error (test->error);
918
919 sender = tp_signalled_message_get_sender (test->sent_msg);
920 g_assert (sender == tp_connection_get_self_contact (test->connection));
921
922 g_ptr_array_unref (parts);
835923 }
836924
837925 int
861949 test_get_sms_length, teardown);
862950 g_test_add ("/text-channel/ack-all-pending-messages", Test, NULL, setup,
863951 test_ack_all_pending_messages, teardown);
864
865952 g_test_add ("/text-channel/pending-messages-with-no-sender-id", Test, NULL,
866953 setup, test_pending_messages_with_no_sender_id, teardown);
954 g_test_add ("/text-channel/sender-prepared", Test, NULL, setup,
955 test_sender_prepared, teardown);
956 g_test_add ("/text-channel/sent-with-no-sender", Test, NULL, setup,
957 test_sent_with_no_sender, teardown);
867958
868959 return g_test_run ();
869960 }
44
55 <node name="/With_Properties">
66 <interface name="com.example.WithProperties">
7 <!-- We verify that this is used for the otherwise-unannotated
8 properties … -->
9 <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal"
10 value="true"/>
711
8 <property name="ReadOnly" access="read" type="u" />
9 <property name="WriteOnly" access="write" type="u" />
10 <property name="ReadWrite" access="readwrite" type="u" />
12 <property name="ReadOnly" access="read" type="u"/>
13 <property name="WriteOnly" access="write" type="u"/>
14 <property name="ReadWrite" access="readwrite" type="u">
15 <!-- … and that this overrides the global annotation. -->
16 <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal"
17 value="invalidates"/>
18 </property>
1119
1220 </interface>
1321 </node>
2424 contact-list-manager.c \
2525 contact-list-manager.h \
2626 debug.h \
27 dbus-tube-chan.c \
28 dbus-tube-chan.h \
2729 echo-chan.h \
2830 echo-chan.c \
2931 echo-cm.h \
5858 $(top_builddir)/telepathy-glib/libtelepathy-glib-internal.la
5959 am__objects_1 = bug-19101-conn.lo bug16307-conn.lo \
6060 broken-client-types-conn.lo contacts-conn.lo \
61 contact-list-manager.lo echo-chan.lo echo-cm.lo echo-conn.lo \
62 echo-channel-manager-conn.lo echo-im-manager.lo \
63 file-transfer-chan.lo my-conn-proxy.lo params-cm.lo \
64 simple-account.lo simple-account-manager.lo \
61 contact-list-manager.lo dbus-tube-chan.lo echo-chan.lo \
62 echo-cm.lo echo-conn.lo echo-channel-manager-conn.lo \
63 echo-im-manager.lo file-transfer-chan.lo my-conn-proxy.lo \
64 params-cm.lo simple-account.lo simple-account-manager.lo \
6565 simple-channel-manager.lo simple-channel-dispatch-operation.lo \
6666 simple-channel-dispatcher.lo simple-channel-request.lo \
6767 simple-client.lo simple-conn.lo simple-manager.lo \
7878 $(top_builddir)/telepathy-glib/libtelepathy-glib.la
7979 am_libtp_glib_tests_la_OBJECTS = bug-19101-conn.lo bug16307-conn.lo \
8080 broken-client-types-conn.lo contacts-conn.lo \
81 contact-list-manager.lo echo-chan.lo echo-cm.lo echo-conn.lo \
82 echo-channel-manager-conn.lo echo-im-manager.lo \
83 file-transfer-chan.lo my-conn-proxy.lo params-cm.lo \
84 simple-account.lo simple-account-manager.lo \
81 contact-list-manager.lo dbus-tube-chan.lo echo-chan.lo \
82 echo-cm.lo echo-conn.lo echo-channel-manager-conn.lo \
83 echo-im-manager.lo file-transfer-chan.lo my-conn-proxy.lo \
84 params-cm.lo simple-account.lo simple-account-manager.lo \
8585 simple-channel-manager.lo simple-channel-dispatch-operation.lo \
8686 simple-channel-dispatcher.lo simple-channel-request.lo \
8787 simple-client.lo simple-conn.lo simple-manager.lo \
164164 GLIB_MKENUMS = @GLIB_MKENUMS@
165165 GREP = @GREP@
166166 GTKDOC_CHECK = @GTKDOC_CHECK@
167 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
168 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
167169 GTKDOC_MKPDF = @GTKDOC_MKPDF@
168170 GTKDOC_REBASE = @GTKDOC_REBASE@
169171 HAVE_VALA = @HAVE_VALA@
311313 contact-list-manager.c \
312314 contact-list-manager.h \
313315 debug.h \
316 dbus-tube-chan.c \
317 dbus-tube-chan.h \
314318 echo-chan.h \
315319 echo-chan.c \
316320 echo-cm.h \
438442 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bug16307-conn.Plo@am__quote@
439443 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/contact-list-manager.Plo@am__quote@
440444 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/contacts-conn.Plo@am__quote@
445 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus-tube-chan.Plo@am__quote@
441446 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/echo-chan.Plo@am__quote@
442447 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/echo-channel-manager-conn.Plo@am__quote@
443448 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/echo-cm.Plo@am__quote@
742742 tp_handle_set_destroy (handles);
743743 }
744744
745 void
746 test_contact_list_manager_add_initial_contacts (TestContactListManager *self,
747 guint n_members, TpHandle *members)
748 {
749 TpHandleSet *handles;
750 guint i;
751
752 g_assert_cmpint (self->priv->conn->status, ==,
753 TP_INTERNAL_CONNECTION_STATUS_NEW);
754
755 handles = tp_handle_set_new (self->priv->contact_repo);
756 for (i = 0; i < n_members; i++)
757 {
758 ContactDetails *d;
759
760 g_assert (lookup_contact (self, members[i]) == NULL);
761 d = ensure_contact (self, members[i]);
762
763 d->subscribe = TP_SUBSCRIPTION_STATE_YES;
764 d->publish = TP_SUBSCRIPTION_STATE_YES;
765
766 tp_handle_set_add (handles, members[i]);
767 }
768
769 tp_base_contact_list_contacts_changed (TP_BASE_CONTACT_LIST (self), handles,
770 NULL);
771
772 tp_handle_set_destroy (handles);
773 }
6262 guint n_members, TpHandle *members);
6363 void test_contact_list_manager_remove (TestContactListManager *self,
6464 guint n_members, TpHandle *members);
65 void test_contact_list_manager_add_initial_contacts (TestContactListManager *self,
66 guint n_members, TpHandle *members);
6567
6668 G_END_DECLS
6769
0 /*
1 * dbus-tube-chan.c - Simple dbus tube channel
2 *
3 * Copyright (C) 2010 Collabora Ltd. <http://www.collabora.co.uk/>
4 *
5 * Copying and distribution of this file, with or without modification,
6 * are permitted in any medium without royalty provided the copyright
7 * notice and this notice are preserved.
8 */
9
10 #include "dbus-tube-chan.h"
11
12 #include <telepathy-glib/telepathy-glib.h>
13 #include <telepathy-glib/channel-iface.h>
14 #include <telepathy-glib/svc-channel.h>
15 #include <telepathy-glib/gnio-util.h>
16
17 #include <gio/gunixsocketaddress.h>
18 #include <gio/gunixconnection.h>
19
20 #include <glib/gstdio.h>
21
22 enum
23 {
24 PROP_SERVICE_NAME = 1,
25 PROP_DBUS_NAMES,
26 PROP_SUPPORTED_ACCESS_CONTROLS,
27 PROP_PARAMETERS,
28 PROP_STATE,
29 };
30
31 struct _TpTestsDBusTubeChannelPrivate {
32 TpTubeChannelState state;
33
34 /* TpHandle -> gchar * */
35 GHashTable *dbus_names;
36 };
37
38 static void
39 tp_tests_dbus_tube_channel_get_property (GObject *object,
40 guint property_id,
41 GValue *value,
42 GParamSpec *pspec)
43 {
44 TpTestsDBusTubeChannel *self = (TpTestsDBusTubeChannel *) object;
45
46 switch (property_id)
47 {
48 case PROP_SERVICE_NAME:
49 g_value_set_string (value, "com.test.Test");
50 break;
51
52 case PROP_DBUS_NAMES:
53 g_value_set_boxed (value, self->priv->dbus_names);
54 break;
55
56 case PROP_SUPPORTED_ACCESS_CONTROLS:
57 {
58 GArray *array;
59 TpSocketAccessControl a;
60
61 array = g_array_sized_new (FALSE, FALSE, sizeof (guint), 1);
62
63 a = TP_SOCKET_ACCESS_CONTROL_LOCALHOST;
64 g_array_append_val (array, a);
65
66 g_value_set_boxed (value, array);
67
68 g_array_unref (array);
69 }
70 break;
71
72 case PROP_PARAMETERS:
73 g_value_take_boxed (value, tp_asv_new (
74 "badger", G_TYPE_UINT, 42,
75 NULL));
76 break;
77
78 case PROP_STATE:
79 g_value_set_uint (value, self->priv->state);
80 break;
81
82 default:
83 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
84 break;
85 }
86 }
87
88 static void dbus_tube_iface_init (gpointer iface, gpointer data);
89
90 G_DEFINE_ABSTRACT_TYPE_WITH_CODE (TpTestsDBusTubeChannel,
91 tp_tests_dbus_tube_channel,
92 TP_TYPE_BASE_CHANNEL,
93 G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_CHANNEL_TYPE_DBUS_TUBE,
94 dbus_tube_iface_init);
95 G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_CHANNEL_INTERFACE_TUBE,
96 NULL);
97 )
98
99 /* type definition stuff */
100
101 static const char * tp_tests_dbus_tube_channel_interfaces[] = {
102 TP_IFACE_CHANNEL_INTERFACE_TUBE,
103 NULL
104 };
105
106 static void
107 tp_tests_dbus_tube_channel_init (TpTestsDBusTubeChannel *self)
108 {
109 self->priv = G_TYPE_INSTANCE_GET_PRIVATE ((self),
110 TP_TESTS_TYPE_DBUS_TUBE_CHANNEL, TpTestsDBusTubeChannelPrivate);
111
112 self->priv->dbus_names = g_hash_table_new_full (g_direct_hash,
113 g_direct_equal, NULL, g_free);
114 }
115
116 static GObject *
117 constructor (GType type,
118 guint n_props,
119 GObjectConstructParam *props)
120 {
121 GObject *object =
122 G_OBJECT_CLASS (tp_tests_dbus_tube_channel_parent_class)->constructor (
123 type, n_props, props);
124 TpTestsDBusTubeChannel *self = TP_TESTS_DBUS_TUBE_CHANNEL (object);
125
126 if (tp_base_channel_is_requested (TP_BASE_CHANNEL (self)))
127 self->priv->state = TP_TUBE_CHANNEL_STATE_NOT_OFFERED;
128 else
129 self->priv->state = TP_TUBE_CHANNEL_STATE_LOCAL_PENDING;
130
131 tp_base_channel_register (TP_BASE_CHANNEL (self));
132
133 return object;
134 }
135
136 static void
137 dispose (GObject *object)
138 {
139 TpTestsDBusTubeChannel *self = (TpTestsDBusTubeChannel *) object;
140
141 tp_clear_pointer (&self->priv->dbus_names, g_hash_table_unref);
142
143 ((GObjectClass *) tp_tests_dbus_tube_channel_parent_class)->dispose (
144 object);
145 }
146
147 static void
148 channel_close (TpBaseChannel *channel)
149 {
150 tp_base_channel_destroyed (channel);
151 }
152
153 static void
154 fill_immutable_properties (TpBaseChannel *chan,
155 GHashTable *properties)
156 {
157 TpBaseChannelClass *klass = TP_BASE_CHANNEL_CLASS (
158 tp_tests_dbus_tube_channel_parent_class);
159
160 klass->fill_immutable_properties (chan, properties);
161
162 tp_dbus_properties_mixin_fill_properties_hash (
163 G_OBJECT (chan), properties,
164 TP_IFACE_CHANNEL_TYPE_DBUS_TUBE, "ServiceName",
165 TP_IFACE_CHANNEL_TYPE_DBUS_TUBE, "SupportedAccessControls",
166 NULL);
167
168 if (!tp_base_channel_is_requested (chan))
169 {
170 /* Parameters is immutable only for incoming tubes */
171 tp_dbus_properties_mixin_fill_properties_hash (
172 G_OBJECT (chan), properties,
173 TP_IFACE_CHANNEL_INTERFACE_TUBE, "Parameters",
174 NULL);
175 }
176 }
177
178 static void
179 tp_tests_dbus_tube_channel_class_init (TpTestsDBusTubeChannelClass *klass)
180 {
181 GObjectClass *object_class = (GObjectClass *) klass;
182 TpBaseChannelClass *base_class = TP_BASE_CHANNEL_CLASS (klass);
183 GParamSpec *param_spec;
184 static TpDBusPropertiesMixinPropImpl dbus_tube_props[] = {
185 { "ServiceName", "service-name", NULL, },
186 { "DBusNames", "dbus-names", NULL, },
187 { "SupportedAccessControls", "supported-access-controls", NULL, },
188 { NULL }
189 };
190 static TpDBusPropertiesMixinPropImpl tube_props[] = {
191 { "Parameters", "parameters", NULL, },
192 { "State", "state", NULL, },
193 { NULL }
194 };
195
196 object_class->constructor = constructor;
197 object_class->get_property = tp_tests_dbus_tube_channel_get_property;
198 object_class->dispose = dispose;
199
200 base_class->channel_type = TP_IFACE_CHANNEL_TYPE_DBUS_TUBE;
201 base_class->interfaces = tp_tests_dbus_tube_channel_interfaces;
202 base_class->close = channel_close;
203 base_class->fill_immutable_properties = fill_immutable_properties;
204
205 /* base_class->target_handle_type is defined in subclasses */
206
207 tp_text_mixin_class_init (object_class,
208 G_STRUCT_OFFSET (TpTestsDBusTubeChannelClass, text_class));
209
210 param_spec = g_param_spec_string ("service-name", "Service Name",
211 "the service name associated with this tube object.",
212 "",
213 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
214 g_object_class_install_property (object_class, PROP_SERVICE_NAME, param_spec);
215
216 param_spec = g_param_spec_boxed ("dbus-names", "DBus Names",
217 "DBusTube.DBusNames",
218 TP_HASH_TYPE_DBUS_TUBE_PARTICIPANTS,
219 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
220 g_object_class_install_property (object_class, PROP_DBUS_NAMES, param_spec);
221
222 param_spec = g_param_spec_boxed ("supported-access-controls",
223 "Supported access-controls",
224 "GArray containing supported access controls.",
225 DBUS_TYPE_G_UINT_ARRAY,
226 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
227 g_object_class_install_property (object_class,
228 PROP_SUPPORTED_ACCESS_CONTROLS, param_spec);
229
230 param_spec = g_param_spec_boxed (
231 "parameters", "Parameters",
232 "parameters of the tube",
233 TP_HASH_TYPE_STRING_VARIANT_MAP,
234 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
235 g_object_class_install_property (object_class, PROP_PARAMETERS,
236 param_spec);
237
238 param_spec = g_param_spec_uint (
239 "state", "TpTubeState",
240 "state of the tube",
241 0, NUM_TP_TUBE_CHANNEL_STATES - 1, 0,
242 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
243 g_object_class_install_property (object_class, PROP_STATE,
244 param_spec);
245
246 tp_dbus_properties_mixin_implement_interface (object_class,
247 TP_IFACE_QUARK_CHANNEL_TYPE_DBUS_TUBE,
248 tp_dbus_properties_mixin_getter_gobject_properties, NULL,
249 dbus_tube_props);
250
251 tp_dbus_properties_mixin_implement_interface (object_class,
252 TP_IFACE_QUARK_CHANNEL_INTERFACE_TUBE,
253 tp_dbus_properties_mixin_getter_gobject_properties, NULL,
254 tube_props);
255
256 g_type_class_add_private (object_class,
257 sizeof (TpTestsDBusTubeChannelPrivate));
258 }
259
260 #if 0
261 static void
262 change_state (TpTestsDBusTubeChannel *self,
263 TpTubeChannelState state)
264 {
265 self->priv->state = state;
266
267 tp_svc_channel_interface_tube_emit_tube_channel_state_changed (self, state);
268 }
269 #endif
270
271 static void
272 dbus_tube_iface_init (gpointer iface,
273 gpointer data)
274 {
275 #if 0
276 /* TODO: implement methods */
277 TpSvcChannelTypeDBusTubeClass *klass = iface;
278
279 #define IMPLEMENT(x) tp_svc_channel_type_dbus_tube_implement_##x (klass, dbus_tube_##x)
280 #undef IMPLEMENT
281 #endif
282 }
283
284 /* Contact DBus Tube */
285
286 G_DEFINE_TYPE (TpTestsContactDBusTubeChannel,
287 tp_tests_contact_dbus_tube_channel,
288 TP_TESTS_TYPE_DBUS_TUBE_CHANNEL)
289
290 static void
291 tp_tests_contact_dbus_tube_channel_init (
292 TpTestsContactDBusTubeChannel *self)
293 {
294 }
295
296 static void
297 tp_tests_contact_dbus_tube_channel_class_init (
298 TpTestsContactDBusTubeChannelClass *klass)
299 {
300 TpBaseChannelClass *base_class = TP_BASE_CHANNEL_CLASS (klass);
301
302 base_class->target_handle_type = TP_HANDLE_TYPE_CONTACT;
303 }
304
305 /* Room DBus Tube */
306
307 G_DEFINE_TYPE (TpTestsRoomDBusTubeChannel,
308 tp_tests_room_dbus_tube_channel,
309 TP_TESTS_TYPE_DBUS_TUBE_CHANNEL)
310
311 static void
312 tp_tests_room_dbus_tube_channel_init (
313 TpTestsRoomDBusTubeChannel *self)
314 {
315 }
316
317 static void
318 tp_tests_room_dbus_tube_channel_class_init (
319 TpTestsRoomDBusTubeChannelClass *klass)
320 {
321 TpBaseChannelClass *base_class = TP_BASE_CHANNEL_CLASS (klass);
322
323 base_class->target_handle_type = TP_HANDLE_TYPE_ROOM;
324 }
0 /*
1 * dbus-tube-chan.h - Simple dbus tube channel
2 *
3 * Copyright (C) 2010 Collabora Ltd. <http://www.collabora.co.uk/>
4 *
5 * Copying and distribution of this file, with or without modification,
6 * are permitted in any medium without royalty provided the copyright
7 * notice and this notice are preserved.
8 */
9
10 #ifndef __TP_DBUS_TUBE_CHAN_H__
11 #define __TP_DBUS_TUBE_CHAN_H__
12
13 #include <glib-object.h>
14 #include <telepathy-glib/base-channel.h>
15 #include <telepathy-glib/base-connection.h>
16 #include <telepathy-glib/text-mixin.h>
17
18 G_BEGIN_DECLS
19
20 /* Base Class */
21 typedef struct _TpTestsDBusTubeChannel TpTestsDBusTubeChannel;
22 typedef struct _TpTestsDBusTubeChannelClass TpTestsDBusTubeChannelClass;
23 typedef struct _TpTestsDBusTubeChannelPrivate TpTestsDBusTubeChannelPrivate;
24
25 GType tp_tests_dbus_tube_channel_get_type (void);
26
27 #define TP_TESTS_TYPE_DBUS_TUBE_CHANNEL \
28 (tp_tests_dbus_tube_channel_get_type ())
29 #define TP_TESTS_DBUS_TUBE_CHANNEL(obj) \
30 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TP_TESTS_TYPE_DBUS_TUBE_CHANNEL, \
31 TpTestsDBusTubeChannel))
32 #define TP_TESTS_DBUS_TUBE_CHANNEL_CLASS(klass) \
33 (G_TYPE_CHECK_CLASS_CAST ((klass), TP_TESTS_TYPE_DBUS_TUBE_CHANNEL, \
34 TpTestsDBusTubeChannelClass))
35 #define TP_TESTS_IS_DBUS_TUBE_CHANNEL(obj) \
36 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TP_TESTS_TYPE_DBUS_TUBE_CHANNEL))
37 #define TP_TESTS_IS_DBUS_TUBE_CHANNEL_CLASS(klass) \
38 (G_TYPE_CHECK_CLASS_TYPE ((klass), TP_TESTS_TYPE_DBUS_TUBE_CHANNEL))
39 #define TP_TESTS_DBUS_TUBE_CHANNEL_GET_CLASS(obj) \
40 (G_TYPE_INSTANCE_GET_CLASS ((obj), TP_TESTS_TYPE_DBUS_TUBE_CHANNEL, \
41 TpTestsDBusTubeChannelClass))
42
43 struct _TpTestsDBusTubeChannelClass {
44 TpBaseChannelClass parent_class;
45 TpTextMixinClass text_class;
46 TpDBusPropertiesMixinClass dbus_properties_class;
47 };
48
49 struct _TpTestsDBusTubeChannel {
50 TpBaseChannel parent;
51 TpTextMixin text;
52
53 TpTestsDBusTubeChannelPrivate *priv;
54 };
55
56 /* Contact DBus Tube */
57
58 typedef struct _TpTestsContactDBusTubeChannel TpTestsContactDBusTubeChannel;
59 typedef struct _TpTestsContactDBusTubeChannelClass TpTestsContactDBusTubeChannelClass;
60
61 GType tp_tests_contact_dbus_tube_channel_get_type (void);
62
63 #define TP_TESTS_TYPE_CONTACT_DBUS_TUBE_CHANNEL \
64 (tp_tests_contact_dbus_tube_channel_get_type ())
65 #define TP_TESTS_CONTACT_DBUS_TUBE_CHANNEL(obj) \
66 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TP_TESTS_TYPE_CONTACT_DBUS_TUBE_CHANNEL, \
67 TpTestsContactDBusTubeChannel))
68 #define TP_TESTS_CONTACT_DBUS_TUBE_CHANNEL_CLASS(klass) \
69 (G_TYPE_CHECK_CLASS_CAST ((klass), TP_TESTS_TYPE_CONTACT_DBUS_TUBE_CHANNEL, \
70 TpTestsContactDBusTubeChannelClass))
71 #define TP_TESTS_IS_CONTACT_DBUS_TUBE_CHANNEL(obj) \
72 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TP_TESTS_TYPE_CONTACT_DBUS_TUBE_CHANNEL))
73 #define TP_TESTS_IS_CONTACT_DBUS_TUBE_CHANNEL_CLASS(klass) \
74 (G_TYPE_CHECK_CLASS_TYPE ((klass), TP_TESTS_TYPE_CONTACT_DBUS_TUBE_CHANNEL))
75 #define TP_TESTS_CONTACT_DBUS_TUBE_CHANNEL_GET_CLASS(obj) \
76 (G_TYPE_INSTANCE_GET_CLASS ((obj), TP_TESTS_TYPE_CONTACT_DBUS_TUBE_CHANNEL, \
77 TpTestsContactDBusTubeChannelClass))
78
79 struct _TpTestsContactDBusTubeChannelClass {
80 TpTestsDBusTubeChannelClass parent_class;
81 };
82
83 struct _TpTestsContactDBusTubeChannel {
84 TpTestsDBusTubeChannel parent;
85 };
86
87 /* Room DBus Tube */
88
89 typedef struct _TpTestsRoomDBusTubeChannel TpTestsRoomDBusTubeChannel;
90 typedef struct _TpTestsRoomDBusTubeChannelClass TpTestsRoomDBusTubeChannelClass;
91
92 GType tp_tests_room_dbus_tube_channel_get_type (void);
93
94 #define TP_TESTS_TYPE_ROOM_DBUS_TUBE_CHANNEL \
95 (tp_tests_room_dbus_tube_channel_get_type ())
96 #define TP_TESTS_ROOM_DBUS_TUBE_CHANNEL(obj) \
97 (G_TYPE_CHECK_INSTANCE_CAST ((obj), TP_TESTS_TYPE_ROOM_DBUS_TUBE_CHANNEL, \
98 TpTestsRoomDBusTubeChannel))
99 #define TP_TESTS_ROOM_DBUS_TUBE_CHANNEL_CLASS(klass) \
100 (G_TYPE_CHECK_CLASS_CAST ((klass), TP_TESTS_TYPE_ROOM_DBUS_TUBE_CHANNEL, \
101 TpTestsRoomDBusTubeChannelClass))
102 #define TP_TESTS_IS_ROOM_DBUS_TUBE_CHANNEL(obj) \
103 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TP_TESTS_TYPE_ROOM_DBUS_TUBE_CHANNEL))
104 #define TP_TESTS_IS_ROOM_DBUS_TUBE_CHANNEL_CLASS(klass) \
105 (G_TYPE_CHECK_CLASS_TYPE ((klass), TP_TESTS_TYPE_ROOM_DBUS_TUBE_CHANNEL))
106 #define TP_TESTS_ROOM_DBUS_TUBE_CHANNEL_GET_CLASS(obj) \
107 (G_TYPE_INSTANCE_GET_CLASS ((obj), TP_TESTS_TYPE_ROOM_DBUS_TUBE_CHANNEL, \
108 TpTestsRoomDBusTubeChannelClass))
109
110 struct _TpTestsRoomDBusTubeChannelClass {
111 TpTestsDBusTubeChannelClass parent_class;
112 };
113
114 struct _TpTestsRoomDBusTubeChannel {
115 TpTestsDBusTubeChannel parent;
116 };
117
118 G_END_DECLS
119
120 #endif /* #ifndef __TP_DBUS_TUBE_CHAN_H__ */
148148 if (self->priv->properties)
149149 flags |= TP_CHANNEL_GROUP_FLAG_PROPERTIES;
150150
151 flags |= TP_CHANNEL_GROUP_FLAG_CAN_ADD;
152
151153 tp_group_mixin_init (object, G_STRUCT_OFFSET (TpTestsTextChannelGroup, group),
152154 contact_repo, self->conn->self_handle);
153155 tp_group_mixin_change_flags (object, flags, 0);
106106 GLIB_MKENUMS = @GLIB_MKENUMS@
107107 GREP = @GREP@
108108 GTKDOC_CHECK = @GTKDOC_CHECK@
109 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
110 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
109111 GTKDOC_MKPDF = @GTKDOC_MKPDF@
110112 GTKDOC_REBASE = @GTKDOC_REBASE@
111113 HAVE_VALA = @HAVE_VALA@
103103 GLIB_MKENUMS = @GLIB_MKENUMS@
104104 GREP = @GREP@
105105 GTKDOC_CHECK = @GTKDOC_CHECK@
106 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
107 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
106108 GTKDOC_MKPDF = @GTKDOC_MKPDF@
107109 GTKDOC_REBASE = @GTKDOC_REBASE@
108110 HAVE_VALA = @HAVE_VALA@
5555 % opts.get('--subclass', 'TpProxy'))
5656 if self.proxy_arg == 'void *':
5757 self.proxy_arg = 'gpointer '
58 self.generate_reentrant = ('--generate-reentrant' in opts or
59 '--deprecate-reentrant' in opts)
58
59 self.reentrant_symbols = set()
60 try:
61 filename = opts['--generate-reentrant']
62 with open(filename, 'r') as f:
63 for line in f.readlines():
64 self.reentrant_symbols.add(line.strip())
65 except KeyError:
66 pass
67
6068 self.deprecate_reentrant = opts.get('--deprecate-reentrant', None)
6169 self.deprecation_attribute = opts.get('--deprecation-attribute',
6270 'G_GNUC_DEPRECATED')
845853 self.b('}')
846854 self.b('')
847855
848 if self.generate_reentrant:
849 self.do_method_reentrant(method, iface_lc, member, member_lc,
850 in_args, out_args, collect_callback)
856 self.do_method_reentrant(method, iface_lc, member, member_lc,
857 in_args, out_args, collect_callback)
851858
852859 # leave a gap for the end of the method
853860 self.d('')
865872 # GPtrArray **out0,
866873 # GError **error,
867874 # GMainLoop **loop);
875
876 run_method_name = '%s_%s_run_%s' % (self.prefix_lc, iface_lc, member_lc)
877 if run_method_name not in self.reentrant_symbols:
878 return
868879
869880 self.b('typedef struct {')
870881 self.b(' GMainLoop *loop;')
943954 if self.deprecate_reentrant:
944955 self.h('#ifndef %s' % self.deprecate_reentrant)
945956
946 self.h('gboolean %s_%s_run_%s (%sproxy,'
947 % (self.prefix_lc, iface_lc, member_lc, self.proxy_arg))
957 self.h('gboolean %s (%sproxy,'
958 % (run_method_name, self.proxy_arg))
948959 self.h(' gint timeout_ms,')
949960
950961 self.d('/**')
951 self.d(' * %s_%s_run_%s:' % (self.prefix_lc, iface_lc, member_lc))
962 self.d(' * %s:' % run_method_name)
952963 self.d(' * @proxy: %s' % self.proxy_doc)
953964 self.d(' * @timeout_ms: Timeout in milliseconds, or -1 for default')
954965
9991010 self.d(' */')
10001011 self.d('')
10011012
1002 self.b('gboolean\n%s_%s_run_%s (%sproxy,'
1003 % (self.prefix_lc, iface_lc, member_lc, self.proxy_arg))
1013 self.b('gboolean\n%s (%sproxy,'
1014 % (run_method_name, self.proxy_arg))
10041015 self.b(' gint timeout_ms,')
10051016
10061017 for arg in in_args:
12291240 options, argv = gnu_getopt(sys.argv[1:], '',
12301241 ['group=', 'subclass=', 'subclass-assert=',
12311242 'iface-quark-prefix=', 'tp-proxy-api=',
1232 'generate-reentrant', 'deprecate-reentrant=',
1243 'generate-reentrant=', 'deprecate-reentrant=',
12331244 'deprecation-attribute='])
12341245
12351246 opts = {}
3232
3333 NS_TP = "http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0"
3434
35 def get_emits_changed(node):
36 try:
37 return [
38 annotation.getAttribute('value')
39 for annotation in node.getElementsByTagName('annotation')
40 if annotation.getAttribute('name') == 'org.freedesktop.DBus.Property.EmitsChangedSignal'
41 ][0]
42 except IndexError:
43 return None
44
3545 class Generator(object):
3646
3747 def __init__(self, dom, prefix, basename, signal_marshal_prefix,
106116 tmp = interface.getAttribute('tp:causes-havoc')
107117 if tmp and not self.allow_havoc:
108118 raise AssertionError('%s is %s' % (self.iface_name, tmp))
119
120 iface_emits_changed = get_emits_changed(interface)
109121
110122 self.b('static const DBusGObjectInfo _%s%s_object_info;'
111123 % (self.prefix_, node_name_lc))
268280 else:
269281 flags = ('TP_DBUS_PROPERTIES_MIXIN_FLAG_READ | '
270282 'TP_DBUS_PROPERTIES_MIXIN_FLAG_WRITE')
283
284 prop_emits_changed = get_emits_changed(m)
285
286 if prop_emits_changed is None:
287 prop_emits_changed = iface_emits_changed
288
289 if prop_emits_changed == 'true':
290 flags += ' | TP_DBUS_PROPERTIES_MIXIN_FLAG_EMITS_CHANGED'
291 elif prop_emits_changed == 'invalidates':
292 flags += ' | TP_DBUS_PROPERTIES_MIXIN_FLAG_EMITS_INVALIDATED'
271293
272294 self.b(' { 0, %s, "%s", 0, NULL, NULL }, /* %s */'
273295 % (flags, m.getAttribute('type'), m.getAttribute('name')))
126126 GLIB_MKENUMS = @GLIB_MKENUMS@
127127 GREP = @GREP@
128128 GTKDOC_CHECK = @GTKDOC_CHECK@
129 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
130 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
129131 GTKDOC_MKPDF = @GTKDOC_MKPDF@
130132 GTKDOC_REBASE = @GTKDOC_REBASE@
131133 HAVE_VALA = @HAVE_VALA@