Codebase list telepathy-glib / ea518c2
Imported Upstream version 0.11.4 Simon McVittie 14 years ago
122 changed file(s) with 4596 addition(s) and 1458 deletion(s). Raw diff Collapse all Expand all
0 commit c7fb2968063379f0d1cdffb09e843bc233fa9f7c
1 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
2 Date: 2010-04-28 18:15:54 +0100
3
4 Prepare version 0.11.4
5
6 commit 192e4567268c7290e0a5d771068697c7cfdf2596
7 Merge: b415637 e9f2f74
8 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
9 Date: 2010-04-28 17:53:07 +0100
10
11 Merge branch 'conn-errors'
12
13 Reviewed-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
14
15 commit b4156376dfb0ddffe41d185a6afc6ebe3020db15
16 Merge: 53a90b9 3f06257
17 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
18 Date: 2010-04-28 17:51:39 +0100
19
20 Merge branch 'telepathy-glib-0.10'
21
22 Conflicts:
23 NEWS
24 configure.ac
25
26 commit 3f06257240e0e2b4679ea7d79f86973719843fd6
27 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
28 Date: 2010-04-28 17:48:18 +0100
29
30 Nano version
31
32 commit 0f370571873e4ad93d880e9106cd9f5e96b7a42e
33 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
34 Date: 2010-04-28 17:45:49 +0100
35
36 Prepare version 0.10.5
37
38 commit 53a90b95c64d5ca471fd14b7fca7fb6b396ddb53
39 Merge: d6466c3 3c9c8e1
40 Author: Will Thompson <will.thompson@collabora.co.uk>
41 Date: 2010-04-28 14:38:17 +0100
42
43 Merge branch 'telepathy-glib-0.10'
44
45 commit d6466c37a1606ecdaea76cf67962b6b74edb920a
46 Author: Danielle Madeley <danielle.madeley@collabora.co.uk>
47 Date: 2010-04-28 23:22:07 +1000
48
49 Explicitly state reference ownership for tp_am_create_account_finish()
50
51 Also update annotation to (transfer none)
52
53 commit 3c9c8e11b8a24d81a8379e86eddee3080fd746a5
54 Author: Will Thompson <will.thompson@collabora.co.uk>
55 Date: 2010-04-28 14:10:32 +0100
56
57 Remove unused lookup of contacts mixin class.
58
59 commit d3b58889c0f5a38965f6f3a0c8b39506ca886683
60 Author: Will Thompson <will.thompson@collabora.co.uk>
61 Date: 2010-04-28 14:02:16 +0100
62
63 Echo example: remove an unused return.
64
65 This was upsetting Coverity, because we were assigning to chan but not
66 using it. I think removing the return entirely is clearer, anyway.
67
68 commit 3c936a7591f346db6a583fe21e9bf96c494d0f5d
69 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
70 Date: 2010-04-28 13:08:05 +0100
71
72 Clean up .gir and .typelib files in `make clean`
73
74 Reviewed-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
75
76 commit 1afeb07da84ffc4a90dc1acdfbd2c728b6c04a83
77 Author: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
78 Date: 2010-04-28 13:00:10 +0100
79
80 Use $(srcdir) where needed to build out of tree
81
82 (Adjusted to apply on current g-i branch -smcv)
83
84 Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
85
86 commit a81dfe305ffd94817ad6dad427a5337fb32dc02d
87 Merge: 62a5ccb b96ffcd
88 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
89 Date: 2010-04-28 12:49:39 +0100
90
91 Merge branch 'gobject-introspection'
92
93 Acked-by: Danielle Madeley <danielle.madeley@collabora.co.uk>
94 Reviewed-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
95 Conflicts:
96 NEWS
97
98 commit b96ffcdbd823486d9e64327f68f7735e37bb514a
99 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
100 Date: 2010-04-28 12:42:02 +0100
101
102 Annotate tp_connection_get_avatar_requirements with (transfer none)
103
104 commit ce5f8aa9ff9f7787d5a51af49eb5abdbc9286388
105 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
106 Date: 2010-04-28 12:40:35 +0100
107
108 Update NEWS and README regarding introspection support
109
110 commit 7024b3f59519399aa2a4b9f7971d18d241015448
111 Author: Danielle Madeley <danielle.madeley@collabora.co.uk>
112 Date: 2010-04-26 13:31:45 +1000
113
114 Work around GObject-Introspection bug #616815
115
116 GStrv doesn't seem to be introspected correctly. This particular use of GStrv
117 stops the GIR from compiling.
118
119 https://bugzilla.gnome.org/show_bug.cgi?id=616815
120
121 commit 850771a76432b20a3e5e273226882aadd0ce0866
122 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
123 Date: 2010-04-23 16:50:19 +0100
124
125 Fix references to Makefile.am that should now be introspection.am
126
127 commit b6d870b1e9f2e7e24c05aabb1a46644fa42b6a47
128 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
129 Date: 2010-04-23 16:49:43 +0100
130
131 Fix dependencies on Makefile.am that should be codegen.am
132
133 commit e9dc1be04d03551bcbd04923fb78b354c23f5ca1
134 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
135 Date: 2010-04-23 16:49:33 +0100
136
137 Fix dependencies on Makefile.am that should be abi.am
138
139 commit c7305bad658ee527a90b4402e55531beae6475a6
140 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
141 Date: 2010-04-23 16:43:47 +0100
142
143 Quieten the GObject-Introspection process
144
145 commit 4fc97a876796624ff3249ef746b5ecc03f3873af
146 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
147 Date: 2010-04-23 16:35:00 +0100
148
149 Only try to do GObject-Introspection if we have the tools for it
150
151 commit 62a5ccb2185c2c640d34d1ce52f3d5b6eed67940
152 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
153 Date: 2010-04-28 12:40:52 +0200
154
155 import selinux leak supp from gabble
156
157 commit 68faa87f13656bad019aa403405d9d32efb3d3ac
158 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
159 Date: 2010-04-23 16:02:26 +0100
160
161 TelepathyGLib-0.12.gir: remember to depend on the files we're introspecting
162
163 commit 9d0611c09a9b7923dd9d063e41abe6137064985d
164 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
165 Date: 2010-04-23 15:45:08 +0100
166
167 Ignore the generated .gir and .typelib files from GObject-Introspection
168
169 commit c1d626f1249d9b822d1b45571a1e9acade3a3904
170 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
171 Date: 2010-04-23 15:44:15 +0100
172
173 Divide extra_dist between Makefile.am fragments
174
175 commit 23f612bd3fdeb914460a37323aea5f63632b8027
176 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
177 Date: 2010-04-23 15:43:58 +0100
178
179 Split out telepathy-glib/abi.am from Makefile.am
180
181 commit 1f184ab693288a4294e19fa55c2ae0e99210e13f
182 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
183 Date: 2010-04-23 15:35:04 +0100
184
185 Split out introspection into telepathy-glib/introspection.am
186
187 commit 0b9e40d1c0351c4ca2f53d3d5e2796e95fc356ca
188 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
189 Date: 2010-04-23 15:33:04 +0100
190
191 Split out code generation into telepathy-glib/codegen.am
192
193 Makefile.am was getting quite large.
194
195 commit 76b2e01273c5abf84183117e72efbb4f79d3aa52
196 Author: Danielle Madeley <danielle.madeley@collabora.co.uk>
197 Date: 2010-04-23 13:55:04 +1000
198
199 Skip all tp_asv_* functions
200
201 commit 3e4641eb1f3473061357aa72851116e18e8be338
202 Author: Danielle Madeley <danielle.madeley@collabora.co.uk>
203 Date: 2010-04-23 13:10:57 +1000
204
205 Skip remaining deprecated API
206
207 commit edeab558d6aef924a268e00eeadf8b847f431a69
208 Author: Danielle Madeley <danielle.madeley@collabora.co.uk>
209 Date: 2010-04-22 23:15:07 +1000
210
211 Work around GNOME Introspection bug #616375
212
213 commit e08949b37276142e06bc5b01fad78ed74634623d
214 Author: Danielle Madeley <danielle.madeley@collabora.co.uk>
215 Date: 2010-04-21 18:28:18 +1000
216
217 Remove DBusGLib-1.0.gir requirement
218
219 No one has DBusGLib-1.0.gir, it doesn't ship. It's not at all crucial for
220 tp-glib, you can do everything you need to do with a TpDBusDaemon. This patch
221 removes the requirement for it and (skip)s any functions that pass dbus-glib
222 types as parameters or returns.
223
224 This currently breaks the build due to
225 https://bugzilla.gnome.org/show_bug.cgi?id=616375 -- which makes it impossible
226 to skip a GObject property, and thus one mention of DBusGConnection appears in
227 the GIR. You can remove this by hand and rerun 'make' and things will be fine.
228
229 commit d53dce35bd40980ccae5d12bf4fef776c1c2e123
230 Author: Danielle Madeley <danielle.madeley@collabora.co.uk>
231 Date: 2010-04-15 17:49:11 +1000
232
233 Annotate TpContact
234
235 commit 616de3ed2069bf61629390df6b8f41a478fdb37d
236 Author: Danielle Madeley <danielle.madeley@collabora.co.uk>
237 Date: 2010-04-15 13:37:48 +1000
238
239 Annotate TpConnectionManager
240
241 commit e39331b3e1aad4ad9df768fda77bc53968d5fb7f
242 Author: Danielle Madeley <danielle.madeley@collabora.co.uk>
243 Date: 2010-04-15 11:50:24 +1000
244
245 Annotate TpConnection
246
247 commit b510ee3891e7d10c5e07c41aa9d309e5253bb14c
248 Author: Danielle Madeley <danielle.madeley@collabora.co.uk>
249 Date: 2010-04-15 12:01:07 +1000
250
251 Annotate TpChannel
252
253 commit d37748a9072573bfc1af90d3d839abf5e5107ca0
254 Author: Danielle Madeley <danielle.madeley@collabora.co.uk>
255 Date: 2010-04-15 11:57:45 +1000
256
257 Annotate TpAccount and TpAccountManager
258
259 commit e9f2f749a19c1e1de3eb0492e612b6cb17ce742a
260 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
261 Date: 2010-04-27 15:14:45 +0100
262
263 Test error behaviour on an unrecognised ConnectionError
264
265 commit 51db59b2e72ac35a70ce23e451c761f829502632
266 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
267 Date: 2010-04-27 14:09:46 +0100
268
269 Convert connection-error test to GTest
270
271 commit 57a56421438dfab88927d3a0e3f0abaa4f7c4c7c
272 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
273 Date: 2010-04-27 13:59:52 +0100
274
275 connection-error test: factor out more setup/teardown
276
277 commit 07ff63a3ac5a1b9091b1970d62556b3a2ad905f5
278 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
279 Date: 2010-04-27 13:54:37 +0100
280
281 connection-error test: partially factor out setup, teardown
282
283 commit 8fac0077eba05abcef273e3c5608cb0c25fd54c2
284 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
285 Date: 2010-04-27 13:50:21 +0100
286
287 fd.o #23369: TpConnection: don't use ConnectionError for invalidation if not understood
288
289 If ConnectionError can be mapped to a GError domain and code, use that domain
290 and code as the invalidation reason as before.
291
292 However, if it would be mapped to TP_DBUS_ERROR_REMOTE_ERROR,
293 we now choose the error for TpProxy::invalidated based on the
294 Connection_Status_Reason, as if ConnectionError had not been emitted -
295 this gives better invalidation reasons for connections that emit an
296 implementation-specific ConnectionError that we don't actually
297 understand.
298
299 commit 6ab958b659ea950b5019764a479e47a3c30a59f1
300 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
301 Date: 2010-04-27 13:36:04 +0100
302
303 Exercise tp_connection_get_detailed_error
304
305 connection-error tests the ConnectionError case, connection tests the
306 guess-from-GError case.
307
308 commit fbc9c4687c894987d404c10bb08b2cd9e2f6f5f6
309 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
310 Date: 2010-04-27 13:25:08 +0100
311
312 tp_connection_get_detailed_error: add accessor for ConnectionError
313
314 This will make it easy to add ConnectionError, ConnectionErrorDetails to
315 Account instances (spec bug: fd.o #21200).
316
317 commit ce7cc4f96e8d5c9c380b429987da985726d4dd66
318 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
319 Date: 2010-04-27 13:23:54 +0100
320
321 TpConnection: remember full error details and convert to a GError later
322
323 commit 24bd0698321d8e5b784a77517174962ca6e938af
324 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
325 Date: 2010-04-27 13:21:59 +0100
326
327 TpConnection: document current status of TP_ERRORS_DISCONNECTED
328
329 commit a851f4562648a80740443987b914eb091fe6574a
330 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
331 Date: 2010-04-27 13:21:29 +0100
332
333 fd.o #23369: TpBaseConnection: when terminating a connection with GError, do a more elaborate mapping
334
335 Recent telepathy-spec has more errors we can use here.
336
337 commit a938364f95ed3e36ff1f10d7a797c692f2bd12bd
338 Merge: c1bf74e 5414276
339 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
340 Date: 2010-04-27 15:59:50 +0100
341
342 Merge branch 'valgrind'
343
344 Reviewed-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
345
346 commit 5414276bdb61e06029b6fdf355a56716d1b76a5c
347 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
348 Date: 2010-04-23 14:36:40 +0100
349
350 Another suppression
351
352 commit c78e2398028fc36dff350353e0c456fc803e361b
353 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
354 Date: 2010-04-23 14:36:35 +0100
355
356 Use test_object_new_static_class more
357
358 commit 47196caf12fc0a667c21ce41197b0ca3036fc9a4
359 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
360 Date: 2010-04-22 17:39:38 +0100
361
362 Add a more questionable suppression
363
364 We don't, in practice, create dynamic types whose classes can be unreffed,
365 so any "leak" resulting from reffing a class is extremely likely to be
366 spurious.
367
368 commit e00de1cc2f3e30759d00765e8510a0b92f2c3177
369 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
370 Date: 2010-04-08 16:07:48 +0100
371
372 tests: add a g_object_new wrapper whose calls to g_type_class_ref can safely be ignored in valgrind
373
374 commit 4a868565d38213ed053b70659f402680aa21987a
375 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
376 Date: 2010-04-08 16:07:21 +0100
377
378 Add a suppressions file for test code (mostly tests/lib)
379
380 commit 90aa8f6657b5d8991a9c1731139f110201ee33db
381 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
382 Date: 2010-04-27 15:53:21 +0100
383
384 Various tests: spin until pending things have happened before exiting
385
386 This avoids a TpProxy on which methods have been called being "leaked"
387 because there are still calls in progress.
388
389 commit 308c868ef84a27791a2ccb10a20235ab58f483c2
390 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
391 Date: 2010-04-22 17:38:46 +0100
392
393 Add various non-leaks to telepathy-glib.supp
394
395 commit 4a45d1c6980c5770981dd992574893a6e3ca5b45
396 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
397 Date: 2010-04-22 17:33:03 +0100
398
399 GObject pseudo-leak suppression
400
401 commit c1bf74e8da66f63805e900b445cf83e2ebde5a8f
402 Merge: caefb86 627b055
403 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
404 Date: 2010-04-27 11:15:23 +0100
405
406 Merge branch 'trivia'
407
408 Reviewed-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
409
410 commit 627b055932604bfc726f9f5b9af74df59873f964
411 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
412 Date: 2010-04-22 17:48:01 +0100
413
414 connection test: correctly 0-terminate array of features
415
416 commit 65de22b8e1b1ba4f4a50f18a9492e458e596fce3
417 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
418 Date: 2010-04-27 11:12:13 +0100
419
420 tp_value_array_unpack: use a const string pointer in the example
421
422 This hopefully makes it a little more obvious that it isn't like
423 g_object_get, even if you're reading the example and ignoring the docs :-)
424
425 commit caefb866aa9d83be5bdb88e7d357a3e5d0ebf011
426 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
427 Date: 2010-04-26 12:02:30 +0100
428
429 Update NEWS for 0.11.x
430
431 commit 37598b82fd10131c0792587f4fcd054eeac482f5
432 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
433 Date: 2010-04-26 11:56:26 +0100
434
435 tests/dbus/account.c: use tp_proxy_prepare_async consistently
436
437 commit 9cfcdc1921ac10d0727cc60011e4075b07a2cbd2
438 Merge: 16fd5d5 ee2120c
439 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
440 Date: 2010-04-26 11:36:33 +0100
441
442 Merge branch 'telepathy-glib-0.10'
443
444 Conflicts:
445 telepathy-glib/account.c
446 telepathy-glib/connection.c
447
448 commit ee2120c7d73bb2f56ca67d08a12b19e0953ab76b
449 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
450 Date: 2010-04-26 11:33:42 +0100
451
452 Update NEWS for 0.10.x
453
454 commit 48821e7945f1d9e4d944fc4fc4e4da591d1562ed
455 Merge: 207ef39 f839d38
456 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
457 Date: 2010-04-26 11:30:44 +0100
458
459 Merge branch '010-account-notify' into telepathy-glib-0.10
460
461 Reviewed-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
462
463 commit 207ef395390ac9eb04b2c9b66b39882e344e29c3
464 Merge: a7bf4d0 cffca22
465 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
466 Date: 2010-04-26 11:29:52 +0100
467
468 Merge branch 'telepathy-glib-0.8' into telepathy-glib-0.10
469
470 Conflicts:
471 NEWS
472
473 commit cffca224e7b88cd5b77caa3ec1fcc7ae9024b779
474 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
475 Date: 2010-04-26 11:27:53 +0100
476
477 Update NEWS
478
479 commit 97ae0dea3670c2d1d3eaa7441e6905c8f6ad64a1
480 Author: Danielle Madeley <danielle.madeley@collabora.co.uk>
481 Date: 2010-04-15 11:32:20 +1000
482
483 Annotate TpProxy
484
485 commit 28d0914551e3ca750a9cce267c6e53bab03bd1fe
486 Author: Danielle Madeley <danielle.madeley@collabora.co.uk>
487 Date: 2009-10-26 14:23:45 +1100
488
489 Initial work on generating gobject-introspection
490
491 commit f839d38bd373a75630df593bb8ef47abc0d0c79d
492 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
493 Date: 2010-04-23 19:23:26 +0100
494
495 Test TpAccount's connection property, and in particular notify::connection
496
497 commit e201f722735d0540cea271842bd51f0a6509eb80
498 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
499 Date: 2010-04-23 18:16:18 +0100
500
501 account test: test various simple C accessors
502
503 commit 4d3e0713ce1e00d42ee279a733115aca9befcd23
504 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
505 Date: 2010-04-22 15:23:20 +0100
506
507 TpAccount: don't notify::connection unless something actually changed
508
509 Also, change connection_object_path if someone staples on a connection
510 using tp_account_ensure_connection().
511
512 commit 514edf719f95731c1e32aea21fa4f9a169b985ad
513 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
514 Date: 2010-04-22 15:11:45 +0100
515
516 fd.o #27780: TpAccount: when Connection may have changed, emit notify::connection
517
518 TpAccount doesn't automatically create a new TpConnection when the
519 connection_object_path member changes, only when someone actually asks
520 for it.
521
522 This has the surprising effect that notify::connection isn't
523 emitted when the object path is first discovered.
524
525 Note that this may result in too many signal emissions: we'll emit
526 notify::connection even if the result of getting the connection property
527 hasn't, in fact, changed. However, it's the simplest possible fix.
528
529 commit 367a986a2aea33ca7934e006cad1eda222912a89
530 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
531 Date: 2010-04-23 19:21:46 +0100
532
533 TpAccount: don't leak the parameters
534
535 commit 7b660fb4958fe76ab27ab4e92fde253a609760b8
536 Author: Will Thompson <will.thompson@collabora.co.uk>
537 Date: 2010-04-23 15:18:57 +0100
538
539 Treat missing/invalid ContactAttributeInterfaces as []
540
541 Previously, you could have a ready TpConnection with
542 priv->contact_attribute_interfaces == NULL; however, contact.c asserts
543 that it's non-NULL in various places.
544
545 Reviewed-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
546
547 commit 16fd5d56637006b6a07d0c799322e012d99fc2a9
548 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
549 Date: 2010-04-23 15:23:16 +0200
550
551 test-account: use newer API's
552
553 commit 099bd264f5084e5bd81838aaeebdacc6e637fd8e
554 Merge: 8a91d61 a7bf4d0
555 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
556 Date: 2010-04-23 15:31:00 +0200
557
558 Merge branch 'telepathy-glib-0.10' into telepathy-glib-master-2
559
560 Conflicts:
561 tests/dbus/account.c
562
563 commit a7bf4d09d89e5883b69b6da434f1f42534a24278
564 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
565 Date: 2010-04-23 12:00:15 +0200
566
567 test preparing TP_ACCOUNT_FEATURE_CORE
568
569 commit 0bd396567dffd1ec865f1fed0d8cf3ffd15869cd
570 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
571 Date: 2010-04-23 11:58:11 +0200
572
573 add SimpleAccount for test purposes (fdo #27794)
574
575 It only implements D-Bus properties for now as that's enough to prepare
576 TP_ACCOUNT_FEATURE_CORE.
577
578 commit 86e7114291505394c3224e6cb410c6c0979a1c64
579 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
580 Date: 2010-04-23 14:51:46 +0200
581
582 tests/README: document how to run a single test
583
584 commit 8a91d61c933e4d2b27f317dedad9280f8d055fe0
585 Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
586 Date: 2010-04-23 14:51:46 +0200
587
588 tests/README: document how to run a single test
589
590 commit 4038946b9d28fbb40c9c7621b79268fcaa400a9d
591 Merge: 7de20c5 cbf0212
592 Author: Xavier Claessens <xclaesse@gmail.com>
593 Date: 2010-04-22 19:55:36 +0200
594
595 Merge branch 'avatar-requirements'
596
597 commit cbf02120f1a88d626b71dedb8f4431a406d53507
598 Author: Xavier Claessens <xclaesse@gmail.com>
599 Date: 2010-04-21 11:35:56 +0200
600
601 Add AVATAR_REQUIREMENTS feature on TpConnection with API to access it
602
603 commit 7de20c5649a3de200d17bf49ee639f278af7dc64
604 Merge: b501ca8 3df935c
605 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
606 Date: 2010-04-21 19:08:55 +0100
607
608 Merge branch 'null-ident'
609
610 Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
611
612 commit b501ca8f388716017f12f8c8e5baa799e6a01521
613 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
614 Date: 2010-04-20 19:03:23 +0100
615
616 Nano version
617
0618 commit 49fcaecfdfb03c5aa8f5fd79eac4be0d7bfb25a3
1619 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
2620 Date: 2010-04-20 16:11:39 +0100
5291147 contacts_got_attributes: look for the right contacts attribute key for location
5301148
5311149 So we actually use the fast path.
1150
1151 commit 3df935c8249f0d970964f2651733b87fa35a7901
1152 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
1153 Date: 2010-04-12 19:20:50 +0100
1154
1155 tp_channel_got_identifier_cb: refactor
1156
1157 * defend against stupid returns from the CM, and abort introspection if
1158 the reply makes no sense
1159 * use _tp_channel_maybe_set_identifier rather than duplicating the code to
1160 push the property into the immutables dict
1161 * use the try/finally pattern
1162
1163 commit 152130597ab13b9dae4965babe6cedc7b1a7ddf2
1164 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
1165 Date: 2010-04-12 19:16:33 +0100
1166
1167 tp_channel_set_property: explain why notify doesn't need to be emitted
1168
1169 commit 6687c0cbc4868301dfe03af3753179f5aefc9428
1170 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
1171 Date: 2010-04-12 19:16:20 +0100
1172
1173 _tp_channel_get_identifier: give legacy anonymous channels a proper TargetID
1174
1175 Previously, we didn't set the TargetID property in the immutable properties
1176 dict for an anonymous TpChannel implemented in an old connection manager.
1177 We now set it, to "".
1178
1179 commit e425156bdd4c9f86b6cea12d4c0e94ffbdc8b5d1
1180 Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
1181 Date: 2010-04-12 19:15:09 +0100
1182
1183 tp_channel_get_identifier: always return non-NULL
1184
1185 Despite the documentation, TpChannel:identifier was not consistently NULL
1186 for anonymous channels: for those with a TargetID D-Bus property (i.e.
1187 all current, correct connection managers), it would be the empty string.
1188
1189 It seems simplest to guarantee it to be non-NULL, making unprepared
1190 channels, and channels from old CMs, consistent with prepared channels
1191 from new CMs (the common case).
1192
1193 commit b88ab350fd50726a99eebcbebe7e136f80a46917
1194 Author: Xavier Claessens <xclaesse@gmail.com>
1195 Date: 2009-09-18 12:10:07 +0200
1196
1197 Make sure "identifier" property on TpChannel is the same as returned by tp_channel_get_identifier().
5321198
5331199 commit 2f8ec7dc831e091bc32c11001b74ccc57ccd258f
5341200 Merge: 73bf2bb bf879d2
4040 subdir = .
4141 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
4242 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
43 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
44 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
45 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
46 $(top_srcdir)/m4/lt~obsolete.m4 \
43 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/introspection.m4 \
44 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/linker.m4 \
45 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
46 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
4747 $(top_srcdir)/m4/tp-compiler-flag.m4 \
4848 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
4949 $(top_srcdir)/configure.ac
160160 INSTALL_PROGRAM = @INSTALL_PROGRAM@
161161 INSTALL_SCRIPT = @INSTALL_SCRIPT@
162162 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
163 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
164 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
165 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
166 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
167 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
163168 LD = @LD@
164169 LDFLAGS = @LDFLAGS@
165170 LIBOBJS = @LIBOBJS@
0 telepathy-glib 0.11.4 (2010-04-28)
1 ==================================
2
3 The “not sure whether to be amused or terrified” release.
4
5 This version includes all the bugfixes from today's 0.10.5 release.
6
7 Requirements:
8
9 ∮ gtk-doc 1.14 is now required. Applying commit 0a874b3a from gtk-doc git
10 to support the (skip) annotation (as was done in Debian's gtk-doc 1.14-2) is
11 also highly recommended; it'll be in upstream release 1.15.
12
13 Enhancements:
14
15 ∮ telepathy-glib now has experimental GObject-Introspection bindings, for use
16 by language bindings like PyGI and gjs. At this stage, these bindings are
17 incomplete, and are *not* covered by our normal API guarantees - incompatible
18 changes between versions are likely. (danni, smcv)
19
20 ∮ fd.o #27769: add TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS (Zdra)
21
22 ∮ fd.o #27794: improve regression test coverage for TpAccount (cassidy, smcv)
23
24 ∮ fd.o #19164: tighten the definition of TpChannel:identifier to guarantee
25 that it's always non-NULL, even before the channel is ready (previously,
26 it could be NULL before the channel was ready)
27
28 ∮ fd.o #23369 (partial): improve error mapping on TpConnection and
29 TpBaseConnection, and add tp_connection_get_detailed_error (smcv)
30
31 Fixes:
32
33 ∮ fd.o #27780: when TpAccount:connection changes, emit notify::connection (smcv)
34
35 ∮ Don't leak TpAccount:parameters when disposed (smcv)
36
37 ∮ Fix more assertion failures (this time in TpContact) if getting contact
38 attributes fails or yields the wrong type (wjt)
39
40 ∮ Remove some dead code to keep coverity happy (wjt)
41
042 telepathy-glib 0.11.3 (2010-04-20)
143 ==================================
244
6161 between one release tarball and the next, we will change the SONAME of the
6262 library; we will attempt to avoid incompatible API or ABI changes.
6363
64 The GObject-Introspection bindings are not currently considered to be stable,
65 so they have no API/ABI guarantees yet.
66
6467 Unreleased builds straight from git identify themselves as version
6568 "x.y.z.1". We DO NOT make any API guarantees about unreleased builds:
6669 any binary relying on new functionality from an unreleased build is not
13691369
13701370 m4_include([m4/compiler.m4])
13711371 m4_include([m4/gtk-doc.m4])
1372 m4_include([m4/introspection.m4])
13721373 m4_include([m4/libtool.m4])
13731374 m4_include([m4/linker.m4])
13741375 m4_include([m4/ltoptions.m4])
00 #! /bin/sh
11 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.65 for Telepathy-GLib 0.11.3.
2 # Generated by GNU Autoconf 2.65 for Telepathy-GLib 0.11.4.
33 #
44 # Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=Telepathy&component=tp-glib>.
55 #
701701 # Identity of this package.
702702 PACKAGE_NAME='Telepathy-GLib'
703703 PACKAGE_TARNAME='telepathy-glib'
704 PACKAGE_VERSION='0.11.3'
705 PACKAGE_STRING='Telepathy-GLib 0.11.3'
704 PACKAGE_VERSION='0.11.4'
705 PACKAGE_STRING='Telepathy-GLib 0.11.4'
706706 PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=Telepathy&component=tp-glib'
707707 PACKAGE_URL=''
708708
797797 GTKDOC_MKPDF
798798 GTKDOC_REBASE
799799 GTKDOC_CHECK
800 HAVE_INTROSPECTION_FALSE
801 HAVE_INTROSPECTION_TRUE
802 INTROSPECTION_TYPELIBDIR
803 INTROSPECTION_GIRDIR
804 INTROSPECTION_GENERATE
805 INTROSPECTION_COMPILER
806 INTROSPECTION_SCANNER
800807 PKG_CONFIG
801808 CPP
802809 OTOOL64
916923 enable_fast_install
917924 with_gnu_ld
918925 enable_libtool_lock
926 enable_introspection
919927 with_html_dir
920928 enable_gtk_doc
921929 enable_gtk_doc_html
14881496 # Omit some internal or obsolete options to make the list less imposing.
14891497 # This message is too long to be a string in the A/UX 3.1 sh.
14901498 cat <<_ACEOF
1491 \`configure' configures Telepathy-GLib 0.11.3 to adapt to many kinds of systems.
1499 \`configure' configures Telepathy-GLib 0.11.4 to adapt to many kinds of systems.
14921500
14931501 Usage: $0 [OPTION]... [VAR=VALUE]...
14941502
15581566
15591567 if test -n "$ac_init_help"; then
15601568 case $ac_init_help in
1561 short | recursive ) echo "Configuration of Telepathy-GLib 0.11.3:";;
1569 short | recursive ) echo "Configuration of Telepathy-GLib 0.11.4:";;
15621570 esac
15631571 cat <<\_ACEOF
15641572
15751583 --enable-fast-install[=PKGS]
15761584 optimize for fast installation [default=yes]
15771585 --disable-libtool-lock avoid locking (might break parallel builds)
1586 --enable-introspection=[no/auto/yes]
1587 Enable introspection for this build
15781588 --enable-gtk-doc use gtk-doc to build documentation [[default=no]]
15791589 --enable-gtk-doc-html build documentation in html format [[default=yes]]
15801590 --enable-gtk-doc-pdf build documentation in pdf format [[default=no]]
16931703 test -n "$ac_init_help" && exit $ac_status
16941704 if $ac_init_version; then
16951705 cat <<\_ACEOF
1696 Telepathy-GLib configure 0.11.3
1706 Telepathy-GLib configure 0.11.4
16971707 generated by GNU Autoconf 2.65
16981708
16991709 Copyright (C) 2009 Free Software Foundation, Inc.
20642074 This file contains any messages produced by compilers while
20652075 running configure, to aid debugging if configure makes a mistake.
20662076
2067 It was created by Telepathy-GLib $as_me 0.11.3, which was
2077 It was created by Telepathy-GLib $as_me 0.11.4, which was
20682078 generated by GNU Autoconf 2.65. Invocation command line was
20692079
20702080 $ $0 $@
28752885
28762886 # Define the identity of the package.
28772887 PACKAGE='telepathy-glib'
2878 VERSION='0.11.3'
2888 VERSION='0.11.4'
28792889
28802890
28812891 cat >>confdefs.h <<_ACEOF
48854895 else
48864896 lt_cv_nm_interface="BSD nm"
48874897 echo "int some_variable = 0;" > conftest.$ac_ext
4888 (eval echo "\"\$as_me:4889: $ac_compile\"" >&5)
4898 (eval echo "\"\$as_me:4899: $ac_compile\"" >&5)
48894899 (eval "$ac_compile" 2>conftest.err)
48904900 cat conftest.err >&5
4891 (eval echo "\"\$as_me:4892: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
4901 (eval echo "\"\$as_me:4902: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
48924902 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
48934903 cat conftest.err >&5
4894 (eval echo "\"\$as_me:4895: output\"" >&5)
4904 (eval echo "\"\$as_me:4905: output\"" >&5)
48954905 cat conftest.out >&5
48964906 if $GREP 'External.*some_variable' conftest.out > /dev/null; then
48974907 lt_cv_nm_interface="MS dumpbin"
60976107 ;;
60986108 *-*-irix6*)
60996109 # Find out which ABI we are using.
6100 echo '#line 6101 "configure"' > conftest.$ac_ext
6110 echo '#line 6111 "configure"' > conftest.$ac_ext
61016111 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
61026112 (eval $ac_compile) 2>&5
61036113 ac_status=$?
76277637 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
76287638 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
76297639 -e 's:$: $lt_compiler_flag:'`
7630 (eval echo "\"\$as_me:7631: $lt_compile\"" >&5)
7640 (eval echo "\"\$as_me:7641: $lt_compile\"" >&5)
76317641 (eval "$lt_compile" 2>conftest.err)
76327642 ac_status=$?
76337643 cat conftest.err >&5
7634 echo "$as_me:7635: \$? = $ac_status" >&5
7644 echo "$as_me:7645: \$? = $ac_status" >&5
76357645 if (exit $ac_status) && test -s "$ac_outfile"; then
76367646 # The compiler can only warn and ignore the option if not recognized
76377647 # So say no if there are warnings other than the usual output.
79667976 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
79677977 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
79687978 -e 's:$: $lt_compiler_flag:'`
7969 (eval echo "\"\$as_me:7970: $lt_compile\"" >&5)
7979 (eval echo "\"\$as_me:7980: $lt_compile\"" >&5)
79707980 (eval "$lt_compile" 2>conftest.err)
79717981 ac_status=$?
79727982 cat conftest.err >&5
7973 echo "$as_me:7974: \$? = $ac_status" >&5
7983 echo "$as_me:7984: \$? = $ac_status" >&5
79747984 if (exit $ac_status) && test -s "$ac_outfile"; then
79757985 # The compiler can only warn and ignore the option if not recognized
79767986 # So say no if there are warnings other than the usual output.
80718081 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
80728082 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
80738083 -e 's:$: $lt_compiler_flag:'`
8074 (eval echo "\"\$as_me:8075: $lt_compile\"" >&5)
8084 (eval echo "\"\$as_me:8085: $lt_compile\"" >&5)
80758085 (eval "$lt_compile" 2>out/conftest.err)
80768086 ac_status=$?
80778087 cat out/conftest.err >&5
8078 echo "$as_me:8079: \$? = $ac_status" >&5
8088 echo "$as_me:8089: \$? = $ac_status" >&5
80798089 if (exit $ac_status) && test -s out/conftest2.$ac_objext
80808090 then
80818091 # The compiler can only warn and ignore the option if not recognized
81268136 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
81278137 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
81288138 -e 's:$: $lt_compiler_flag:'`
8129 (eval echo "\"\$as_me:8130: $lt_compile\"" >&5)
8139 (eval echo "\"\$as_me:8140: $lt_compile\"" >&5)
81308140 (eval "$lt_compile" 2>out/conftest.err)
81318141 ac_status=$?
81328142 cat out/conftest.err >&5
8133 echo "$as_me:8134: \$? = $ac_status" >&5
8143 echo "$as_me:8144: \$? = $ac_status" >&5
81348144 if (exit $ac_status) && test -s out/conftest2.$ac_objext
81358145 then
81368146 # The compiler can only warn and ignore the option if not recognized
1051010520 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
1051110521 lt_status=$lt_dlunknown
1051210522 cat > conftest.$ac_ext <<_LT_EOF
10513 #line 10514 "configure"
10523 #line 10524 "configure"
1051410524 #include "confdefs.h"
1051510525
1051610526 #if HAVE_DLFCN_H
1060610616 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
1060710617 lt_status=$lt_dlunknown
1060810618 cat > conftest.$ac_ext <<_LT_EOF
10609 #line 10610 "configure"
10619 #line 10620 "configure"
1061010620 #include "confdefs.h"
1061110621
1061210622 #if HAVE_DLFCN_H
1096010970
1096110971
1096210972
10973
10974 # Check whether --enable-introspection was given.
10975 if test "${enable_introspection+set}" = set; then :
10976 enableval=$enable_introspection;
10977 else
10978 enable_introspection=auto
10979 fi
10980
10981
10982 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gobject-introspection" >&5
10983 $as_echo_n "checking for gobject-introspection... " >&6; }
10984
10985 case $enable_introspection in #(
10986 no) :
10987 found_introspection="no (disabled, use --enable-introspection to enable)"
10988 ;; #(
10989 yes) :
10990 if test -n "$PKG_CONFIG" && \
10991 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0\""; } >&5
10992 ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0") 2>&5
10993 ac_status=$?
10994 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
10995 test $ac_status = 0; }; then
10996 :
10997 else
10998 as_fn_error "gobject-introspection-1.0 is not installed" "$LINENO" 5
10999 fi
11000 if test -n "$PKG_CONFIG" && \
11001 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 0.6.4\""; } >&5
11002 ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 0.6.4") 2>&5
11003 ac_status=$?
11004 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
11005 test $ac_status = 0; }; then
11006 found_introspection=yes
11007 else
11008 as_fn_error "You need to have gobject-introspection >= 0.6.4 installed to build Telepathy-GLib" "$LINENO" 5
11009 fi
11010 ;; #(
11011 auto) :
11012 if test -n "$PKG_CONFIG" && \
11013 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 0.6.4\""; } >&5
11014 ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 0.6.4") 2>&5
11015 ac_status=$?
11016 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
11017 test $ac_status = 0; }; then
11018 found_introspection=yes
11019 else
11020 found_introspection=no
11021 fi
11022 ;; #(
11023 *) :
11024 as_fn_error "invalid argument passed to --enable-introspection, should be one of [no/auto/yes]" "$LINENO" 5
11025 ;;
11026 esac
11027 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $found_introspection" >&5
11028 $as_echo "$found_introspection" >&6; }
11029
11030 INTROSPECTION_SCANNER=
11031 INTROSPECTION_COMPILER=
11032 INTROSPECTION_GENERATE=
11033 INTROSPECTION_GIRDIR=
11034 INTROSPECTION_TYPELIBDIR=
11035 if test "x$found_introspection" = "xyes"; then
11036 INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
11037 INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
11038 INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
11039 INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
11040 INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
11041 fi
11042
11043
11044
11045
11046
11047
11048 if test "x$found_introspection" = "xyes"; then
11049 HAVE_INTROSPECTION_TRUE=
11050 HAVE_INTROSPECTION_FALSE='#'
11051 else
11052 HAVE_INTROSPECTION_TRUE='#'
11053 HAVE_INTROSPECTION_FALSE=
11054 fi
11055
11056
11057
11058
11059
1096311060 # Extract the first word of "gtkdoc-check", so it can be a program name with args.
1096411061 set dummy gtkdoc-check; ac_word=$2
1096511062 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
1110811205
1110911206 if test x$enable_gtk_doc = xyes; then
1111011207 if test -n "$PKG_CONFIG" && \
11111 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-doc >= 1.10\""; } >&5
11112 ($PKG_CONFIG --exists --print-errors "gtk-doc >= 1.10") 2>&5
11208 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-doc >= 1.14\""; } >&5
11209 ($PKG_CONFIG --exists --print-errors "gtk-doc >= 1.14") 2>&5
1111311210 ac_status=$?
1111411211 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1111511212 test $ac_status = 0; }; then
1111611213 :
1111711214 else
11118 as_fn_error "You need to have gtk-doc >= 1.10 installed to build $PACKAGE_NAME" "$LINENO" 5
11215 as_fn_error "You need to have gtk-doc >= 1.14 installed to build $PACKAGE_NAME" "$LINENO" 5
1111911216 fi
1112011217 fi
1112111218
1118611283
1118711284
1118811285
11189 LT_CURRENT=35
11190 LT_REVISION=1
11191 LT_AGE=35
11286 LT_CURRENT=36
11287 LT_REVISION=0
11288 LT_AGE=36
1119211289
1119311290
1119411291
1240912506 fi
1241012507 if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
1241112508 as_fn_error "conditional \"am__fastdepCC\" was never defined.
12509 Usually this means the macro was only invoked conditionally." "$LINENO" 5
12510 fi
12511 if test -z "${HAVE_INTROSPECTION_TRUE}" && test -z "${HAVE_INTROSPECTION_FALSE}"; then
12512 as_fn_error "conditional \"HAVE_INTROSPECTION\" was never defined.
1241212513 Usually this means the macro was only invoked conditionally." "$LINENO" 5
1241312514 fi
1241412515 if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then
1285912960 # report actual input values of CONFIG_FILES etc. instead of their
1286012961 # values after options handling.
1286112962 ac_log="
12862 This file was extended by Telepathy-GLib $as_me 0.11.3, which was
12963 This file was extended by Telepathy-GLib $as_me 0.11.4, which was
1286312964 generated by GNU Autoconf 2.65. Invocation command line was
1286412965
1286512966 CONFIG_FILES = $CONFIG_FILES
1292513026 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
1292613027 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
1292713028 ac_cs_version="\\
12928 Telepathy-GLib config.status 0.11.3
13029 Telepathy-GLib config.status 0.11.4
1292913030 configured by $0, generated by GNU Autoconf 2.65,
1293013031 with options \\"\$ac_cs_config\\"
1293113032
1010
1111 m4_define([tp_glib_major_version], [0])
1212 m4_define([tp_glib_minor_version], [11])
13 m4_define([tp_glib_micro_version], [3])
13 m4_define([tp_glib_micro_version], [4])
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], [35])
29 m4_define([tp_glib_lt_revision], [1])
30 m4_define([tp_glib_lt_age], [35])
28 m4_define([tp_glib_lt_current], [36])
29 m4_define([tp_glib_lt_revision], [0])
30 m4_define([tp_glib_lt_age], [36])
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.10])
59 GOBJECT_INTROSPECTION_CHECK([0.6.4])
60 GTK_DOC_CHECK([1.14])
6061
6162 LT_CURRENT=tp_glib_lt_current
6263 LT_REVISION=tp_glib_lt_revision
3636 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
3737 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
3838 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
39 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
40 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
41 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
42 $(top_srcdir)/m4/lt~obsolete.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 \
4343 $(top_srcdir)/m4/tp-compiler-flag.m4 \
4444 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
4545 $(top_srcdir)/configure.ac
144144 INSTALL_PROGRAM = @INSTALL_PROGRAM@
145145 INSTALL_SCRIPT = @INSTALL_SCRIPT@
146146 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
147 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
148 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
149 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
150 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
151 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
147152 LD = @LD@
148153 LDFLAGS = @LDFLAGS@
149154 LIBOBJS = @LIBOBJS@
5151 subdir = docs/reference
5252 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
5353 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
54 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
55 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
56 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
57 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/introspection.m4 \
55 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/linker.m4 \
56 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
57 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
5858 $(top_srcdir)/m4/tp-compiler-flag.m4 \
5959 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
6060 $(top_srcdir)/configure.ac
119119 INSTALL_PROGRAM = @INSTALL_PROGRAM@
120120 INSTALL_SCRIPT = @INSTALL_SCRIPT@
121121 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
122 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
123 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
124 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
125 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
126 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
122127 LD = @LD@
123128 LDFLAGS = @LDFLAGS@
124129 LIBOBJS = @LIBOBJS@
1818 <th width="100%" align="center">telepathy-glib Reference Manual</th>
1919 <td> </td>
2020 </tr>
21 <tr><td colspan="5" class="shortcuts"><a class="shortcut" href="#glsT">T</a></td></tr>
21 <tr><td colspan="5" class="shortcuts">
22 <a class="shortcut" href="#glsO">O</a>
23  | 
24 <a class="shortcut" href="#glsA">A</a>
25  | 
26 <a class="shortcut" href="#glsS">S</a>
27  | 
28 <a class="shortcut" href="#glsA">A</a>
29  | 
30 <a class="shortcut" href="#glsE">E</a>
31  | 
32 <a class="shortcut" href="#glsT">T</a>
33 </td></tr>
2234 </table>
2335 <div class="glossary" title="Annotation Glossary">
2436 <div class="titlepage"><div><div><h2 class="title">
2537 <a name="annotation-glossary"></a>Annotation Glossary</h2></div></div></div>
38 <a name="glsO"></a><h3 class="title">O</h3>
39 <dt>
40 <a name="annotation-glossterm-out"></a>out</dt>
41 <dd><p>Parameter for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
42 <a name="glsA"></a><h3 class="title">A</h3>
43 <dt>
44 <a name="annotation-glossterm-array"></a>array</dt>
45 <dd><p>Parameter points to an array of items.</p></dd>
46 <a name="glsS"></a><h3 class="title">S</h3>
47 <dt>
48 <a name="annotation-glossterm-scope%20async"></a>scope async</dt>
49 <dd><p>The callback is valid until first called.</p></dd>
50 <a name="glsA"></a><h3 class="title">A</h3>
51 <dt>
52 <a name="annotation-glossterm-allow-none"></a>allow-none</dt>
53 <dd><p>NULL is ok, both for passing and for returning.</p></dd>
54 <a name="glsE"></a><h3 class="title">E</h3>
55 <dt>
56 <a name="annotation-glossterm-element-type"></a>element-type</dt>
57 <dd><p>Generics and defining elements of containers and arrays.</p></dd>
2658 <a name="glsT"></a><h3 class="title">T</h3>
59 <dt>
60 <a name="annotation-glossterm-transfer%20container"></a>transfer container</dt>
61 <dd><p>Free data container after the code is done.</p></dd>
2762 <dt>
2863 <a name="annotation-glossterm-transfer%20full"></a>transfer full</dt>
2964 <dd><p>Free data after the code is done.</p></dd>
10571057 <ANCHOR id="TP-CONNECTION-FEATURE-CORE:CAPS" href="telepathy-glib/telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CORE:CAPS">
10581058 <ANCHOR id="TP-CONNECTION-FEATURE-CONNECTED:CAPS" href="telepathy-glib/telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CONNECTED:CAPS">
10591059 <ANCHOR id="TP-CONNECTION-FEATURE-CAPABILITIES:CAPS" href="telepathy-glib/telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CAPABILITIES:CAPS">
1060 <ANCHOR id="TP-CONNECTION-FEATURE-AVATAR-REQUIREMENTS:CAPS" href="telepathy-glib/telepathy-glib-connection.html#TP-CONNECTION-FEATURE-AVATAR-REQUIREMENTS:CAPS">
10601061 <ANCHOR id="tp-connection-run-until-ready" href="telepathy-glib/telepathy-glib-connection.html#tp-connection-run-until-ready">
10611062 <ANCHOR id="TpConnectionWhenReadyCb" href="telepathy-glib/telepathy-glib-connection.html#TpConnectionWhenReadyCb">
10621063 <ANCHOR id="tp-connection-call-when-ready" href="telepathy-glib/telepathy-glib-connection.html#tp-connection-call-when-ready">
10731074 <ANCHOR id="tp-connection-presence-type-cmp-availability" href="telepathy-glib/telepathy-glib-connection.html#tp-connection-presence-type-cmp-availability">
10741075 <ANCHOR id="tp-connection-parse-object-path" href="telepathy-glib/telepathy-glib-connection.html#tp-connection-parse-object-path">
10751076 <ANCHOR id="tp-connection-get-capabilities" href="telepathy-glib/telepathy-glib-connection.html#tp-connection-get-capabilities">
1077 <ANCHOR id="tp-connection-get-avatar-requirements" href="telepathy-glib/telepathy-glib-connection.html#tp-connection-get-avatar-requirements">
10761078 <ANCHOR id="TP-UNKNOWN-CONNECTION-STATUS:CAPS" href="telepathy-glib/telepathy-glib-connection.html#TP-UNKNOWN-CONNECTION-STATUS:CAPS">
10771079 <ANCHOR id="TP-ERRORS-DISCONNECTED:CAPS" href="telepathy-glib/telepathy-glib-connection.html#TP-ERRORS-DISCONNECTED:CAPS">
1080 <ANCHOR id="tp-connection-get-detailed-error" href="telepathy-glib/telepathy-glib-connection.html#tp-connection-get-detailed-error">
1081 <ANCHOR id="TP-TYPE-AVATAR-REQUIREMENTS:CAPS" href="telepathy-glib/telepathy-glib-connection.html#TP-TYPE-AVATAR-REQUIREMENTS:CAPS">
1082 <ANCHOR id="TpAvatarRequirements" href="telepathy-glib/telepathy-glib-connection.html#TpAvatarRequirements">
1083 <ANCHOR id="tp-avatar-requirements-new" href="telepathy-glib/telepathy-glib-connection.html#tp-avatar-requirements-new">
1084 <ANCHOR id="tp-avatar-requirements-copy" href="telepathy-glib/telepathy-glib-connection.html#tp-avatar-requirements-copy">
1085 <ANCHOR id="tp-avatar-requirements-destroy" href="telepathy-glib/telepathy-glib-connection.html#tp-avatar-requirements-destroy">
10781086 <ANCHOR id="tp-cli-connection-callback-for-connect" href="telepathy-glib/telepathy-glib-connection.html#tp-cli-connection-callback-for-connect">
10791087 <ANCHOR id="tp-cli-connection-call-connect" href="telepathy-glib/telepathy-glib-connection.html#tp-cli-connection-call-connect">
10801088 <ANCHOR id="tp-cli-connection-run-connect" href="telepathy-glib/telepathy-glib-connection.html#tp-cli-connection-run-connect">
33473355 <ANCHOR id="tp-heap-peek-first" href="telepathy-glib/telepathy-glib-TpHeap.html#tp-heap-peek-first">
33483356 <ANCHOR id="tp-heap-extract-first" href="telepathy-glib/telepathy-glib-TpHeap.html#tp-heap-extract-first">
33493357 <ANCHOR id="tp-heap-size" href="telepathy-glib/telepathy-glib-TpHeap.html#tp-heap-size">
3358 <ANCHOR id="annotation-glossterm-out" href="telepathy-glib/annotation-glossary.html#annotation-glossterm-out">
3359 <ANCHOR id="annotation-glossterm-array" href="telepathy-glib/annotation-glossary.html#annotation-glossterm-array">
3360 <ANCHOR id="annotation-glossterm-scope async" href="telepathy-glib/annotation-glossary.html#annotation-glossterm-scope async">
3361 <ANCHOR id="annotation-glossterm-allow-none" href="telepathy-glib/annotation-glossary.html#annotation-glossterm-allow-none">
3362 <ANCHOR id="annotation-glossterm-element-type" href="telepathy-glib/annotation-glossary.html#annotation-glossterm-element-type">
3363 <ANCHOR id="annotation-glossterm-transfer container" href="telepathy-glib/annotation-glossary.html#annotation-glossterm-transfer container">
33503364 <ANCHOR id="annotation-glossterm-transfer full" href="telepathy-glib/annotation-glossary.html#annotation-glossterm-transfer full">
33513365 <ANCHOR id="annotation-glossterm-transfer none" href="telepathy-glib/annotation-glossary.html#annotation-glossterm-transfer none">
302302 </tr>
303303 <tr>
304304 <td><p><span class="term"><em class="parameter"><code>parameters</code></em> :</span></p></td>
305 <td>parameters for the new account
306 </td>
305 <td> parameters
306 for the new account. <acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8 GObject.Value. <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym> utf8 GObject.Value. </td>
307307 </tr>
308308 <tr>
309309 <td><p><span class="term"><em class="parameter"><code>properties</code></em> :</span></p></td>
310 <td>properties for the new account
311 </td>
310 <td> properties
311 for the new account. <acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8 GObject.Value. <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym> utf8 GObject.Value. </td>
312312 </tr>
313313 <tr>
314314 <td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
335335 Finishes an async create account operation, and returns a new <a class="link" href="telepathy-glib-account.html#TpAccount"><span class="type">TpAccount</span></a>
336336 object, with the <a class="link" href="telepathy-glib-account.html#TP-ACCOUNT-FEATURE-CORE:CAPS" title="TP_ACCOUNT_FEATURE_CORE"><code class="literal">TP_ACCOUNT_FEATURE_CORE</code></a> feature ready on it.
337337 </p>
338 <p>
339 The caller must keep a ref to the returned object using <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-ref"><code class="function">g_object_ref()</code></a> if
340 it is to be kept.
341 </p>
338342 <div class="variablelist"><table border="0">
339343 <col align="left" valign="top">
340344 <tbody>
355359 </tr>
356360 <tr>
357361 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
358 <td> a new <a class="link" href="telepathy-glib-account.html#TpAccount"><span class="type">TpAccount</span></a> which was just created on success, otherwise
359 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
360
361 </td>
362 <td> a new <a class="link" href="telepathy-glib-account.html#TpAccount"><span class="type">TpAccount</span></a> which was just created on
363 success, otherwise <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
364 . <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>. </td>
362365 </tr>
363366 </tbody>
364367 </table></div>
397400 <tr>
398401 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
399402 <td> a new <a class="link" href="telepathy-glib-account.html#TpAccount"><span class="type">TpAccount</span></a> at <em class="parameter"><code>path</code></em>
400
401 </td>
403 . <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>. </td>
402404 </tr>
403405 </tbody>
404406 </table></div>
453455 <tr>
454456 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
455457 <td> a newly allocated <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of valid accounts in <em class="parameter"><code>manager</code></em>
456
457 </td>
458 . <acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> TelepathyGLib.Account. <acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym> TelepathyGLib.Account. </td>
458459 </tr>
459460 </tbody>
460461 </table></div>
493494 </tr>
494495 <tr>
495496 <td><p><span class="term"><em class="parameter"><code>status</code></em> :</span></p></td>
496 <td>a string to fill with the actual status
497 </td>
497 <td> a string to fill with the actual status. <acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>. <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>. </td>
498498 </tr>
499499 <tr>
500500 <td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
501 <td>a string to fill with the actual status message
502 </td>
501 <td> a string to fill with the actual status
502 message. <acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>. <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>. </td>
503503 </tr>
504504 <tr>
505505 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
407407 </tr>
408408 <tr>
409409 <td><p><span class="term"><em class="parameter"><code>cm</code></em> :</span></p></td>
410 <td>location at which to store the account's connection manager's name
411 </td>
410 <td> location at which to store the account's
411 connection manager's name. <acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>. <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>. </td>
412412 </tr>
413413 <tr>
414414 <td><p><span class="term"><em class="parameter"><code>protocol</code></em> :</span></p></td>
415 <td>location at which to store the account's protocol
416 </td>
415 <td> location at which to store the account's
416 protocol. <acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>. <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>. </td>
417417 </tr>
418418 <tr>
419419 <td><p><span class="term"><em class="parameter"><code>account_id</code></em> :</span></p></td>
420 <td>location at which to store the account's unique identifier
421 </td>
420 <td> location at which to store the account's
421 unique identifier. <acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>. <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>. </td>
422422 </tr>
423423 <tr>
424424 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
454454 <tr>
455455 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
456456 <td> the same as the <a class="link" href="telepathy-glib-account.html#TpAccount--connection" title='The "connection" property'><span class="type">"connection"</span></a> property
457
458 </td>
457 . <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>. </td>
459458 </tr>
460459 </tbody>
461460 </table></div>
491490 </tr>
492491 <tr>
493492 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
494 <td> the connection 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> if either the object path
495 <em class="parameter"><code>path</code></em> is invalid or it is the null-value "/"
496
497 </td>
493 <td> the connection 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> if either
494 the object path <em class="parameter"><code>path</code></em> is invalid or it is the null-value "/"
495 . <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>. </td>
498496 </tr>
499497 </tbody>
500498 </table></div>
819817 </tr>
820818 <tr>
821819 <td><p><span class="term"><em class="parameter"><code>parameters</code></em> :</span></p></td>
822 <td>new parameters to set on <em class="parameter"><code>account</code></em>
823 </td>
820 <td> new
821 parameters to set on <em class="parameter"><code>account</code></em>. <acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8 GObject.Value. <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym> utf8 GObject.Value. </td>
824822 </tr>
825823 <tr>
826824 <td><p><span class="term"><em class="parameter"><code>unset_parameters</code></em> :</span></p></td>
866864 </tr>
867865 <tr>
868866 <td><p><span class="term"><em class="parameter"><code>reconnect_required</code></em> :</span></p></td>
869 <td>a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a> to fill with properties that need a reconnect
870 to take effect
871 </td>
867 <td> a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a> to
868 fill with properties that need a reconnect to take effect. type GLib.Strv<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>. </td>
872869 </tr>
873870 <tr>
874871 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
13451342 </tr>
13461343 <tr>
13471344 <td><p><span class="term"><em class="parameter"><code>reason</code></em> :</span></p></td>
1348 <td>a <a class="link" href="telepathy-glib-enums.html#TpConnectionStatusReason" title="enum TpConnectionStatusReason"><span class="type">TpConnectionStatusReason</span></a> to fill, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
1349 </td>
1345 <td> a <a class="link" href="telepathy-glib-enums.html#TpConnectionStatusReason" title="enum TpConnectionStatusReason"><span class="type">TpConnectionStatusReason</span></a> to fill, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>. </td>
13501346 </tr>
13511347 <tr>
13521348 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
13801376 </tr>
13811377 <tr>
13821378 <td><p><span class="term"><em class="parameter"><code>status</code></em> :</span></p></td>
1383 <td>return location for the current status
1384 </td>
1379 <td> return location for the current status. <acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>. <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>. </td>
13851380 </tr>
13861381 <tr>
13871382 <td><p><span class="term"><em class="parameter"><code>status_message</code></em> :</span></p></td>
1388 <td>return location for the current status message
1389 </td>
1383 <td> return location for the current
1384 status message. <acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>. <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>. </td>
13901385 </tr>
13911386 <tr>
13921387 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
14211416 </tr>
14221417 <tr>
14231418 <td><p><span class="term"><em class="parameter"><code>status</code></em> :</span></p></td>
1424 <td>return location for the requested status
1425 </td>
1419 <td> return location for the requested status. <acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>. <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>. </td>
14261420 </tr>
14271421 <tr>
14281422 <td><p><span class="term"><em class="parameter"><code>status_message</code></em> :</span></p></td>
1429 <td>return location for the requested status message
1430 </td>
1423 <td> return location for the requested
1424 status message. <acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>. <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>. </td>
14311425 </tr>
14321426 <tr>
14331427 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
14681462 </tr>
14691463 <tr>
14701464 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1471 <td> the hash table of parameters on <em class="parameter"><code>account</code></em>
1472
1473 </td>
1465 <td> the hash table of
1466 parameters on <em class="parameter"><code>account</code></em>
1467 . <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. </td>
14741468 </tr>
14751469 </tbody>
14761470 </table></div>
16751669 </tr>
16761670 <tr>
16771671 <td><p><span class="term"><em class="parameter"><code>avatar</code></em> :</span></p></td>
1678 <td>a new avatar to set; can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> only if <em class="parameter"><code>len</code></em> equals 0
1679 </td>
1672 <td> a new avatar to set; can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
1673 only if <em class="parameter"><code>len</code></em> equals 0. <acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>. <acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len. </td>
16801674 </tr>
16811675 <tr>
16821676 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
16851679 </tr>
16861680 <tr>
16871681 <td><p><span class="term"><em class="parameter"><code>mime_type</code></em> :</span></p></td>
1688 <td>the MIME type of the new avatar; can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> only if
1689 <em class="parameter"><code>len</code></em> equals 0
1690 </td>
1682 <td> the MIME type of the new avatar; can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
1683 only if <em class="parameter"><code>len</code></em> equals 0. <acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>. </td>
16911684 </tr>
16921685 <tr>
16931686 <td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
234234 <p>
235235 </p>
236236 <div class="example">
237 <a name="id540313"></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>
237 <a name="id626114"></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>
238238 <div class="example-contents">
239239 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
240240 <tbody>
380380 </tr>
381381 <tr>
382382 <td><p><span class="term"><em class="parameter"><code>immutable_properties</code></em> :</span></p></td>
383 <td>the immutable properties of the channel,
383 <td>
384 the immutable properties of the channel,
384385 as signalled by the NewChannel D-Bus signal or returned by the
385386 CreateChannel and EnsureChannel D-Bus methods: a mapping from
386 strings (D-Bus interface name + "." + property name) to <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> instances
387 </td>
387 strings (D-Bus interface name + "." + property name) to <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> instances. <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. </td>
388388 </tr>
389389 <tr>
390390 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
632632 </tr>
633633 <tr>
634634 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
635 <td> the value of <a class="link" href="telepathy-glib-channel.html#TpChannel--connection" title='The "connection" property'><span class="type">"connection"</span></a>
636 </td>
635 <td> the value of <a class="link" href="telepathy-glib-channel.html#TpChannel--connection" title='The "connection" property'><span class="type">"connection"</span></a>. <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>. </td>
637636 </tr>
638637 </tbody>
639638 </table></div>
672671 </tr>
673672 <tr>
674673 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
675 <td> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> where the keys are strings,
674 <td> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a>
675 where the keys are strings,
676676 D-Bus interface name + "." + property name, and the values are <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>
677 instances
678 </td>
677 instances. <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. </td>
679678 </tr>
680679 </tbody>
681680 </table></div>
773772 </tr>
774773 <tr>
775774 <td><p><span class="term"><em class="parameter"><code>handle_type</code></em> :</span></p></td>
776 <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 return the type of this handle
777 </td>
775 <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 return the type of this handle. <acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>. </td>
778776 </tr>
779777 <tr>
780778 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
790788 <a name="tp-channel-get-identifier"></a><h3>tp_channel_get_identifier ()</h3>
791789 <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_channel_get_identifier (<em class="parameter"><code><a class="link" href="telepathy-glib-channel.html#TpChannel"><span class="type">TpChannel</span></a> *self</code></em>);</pre>
792790 <p>
793 This channel's associated identifier, or NULL if no identifier or unknown.
794 </p>
795 <p>
796 The identifier is the result of inspecting <span class="type">"handle"</span>.
791 This channel's associated identifier, or the empty string if no identifier
792 or unknown.
793 </p>
794 <p>
797795 This is the same as the <a class="link" href="telepathy-glib-channel.html#TpChannel--identifier" title='The "identifier" property'><span class="type">"identifier"</span></a> property, and isn't guaranteed
798 to be non-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> until the <a class="link" href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-CORE:CAPS" title="TP_CHANNEL_FEATURE_CORE"><code class="literal">TP_CHANNEL_FEATURE_CORE</code></a> property is ready.
796 to be set until the <a class="link" href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-CORE:CAPS" title="TP_CHANNEL_FEATURE_CORE"><code class="literal">TP_CHANNEL_FEATURE_CORE</code></a> property is ready.
797 </p>
798 <p>
799 Changed in 0.11.UNRELEASED: as with <a class="link" href="telepathy-glib-channel.html#TpChannel--identifier" title='The "identifier" property'><span class="type">"identifier"</span></a>, this could
800 previously either be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> or the empty string if there was no suitable
801 value. It is now non-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in all cases.
799802 </p>
800803 <div class="variablelist"><table border="0">
801804 <col align="left" valign="top">
22822285 <a name="TpChannel--identifier"></a><h3>The <code class="literal">"identifier"</code> property</h3>
22832286 <pre class="programlisting"> "identifier" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre>
22842287 <p>
2285 This channel's associated identifier, or NULL if no identifier or unknown.
2286 </p>
2287 <p>
2288 The identifier is the result of inspecting <span class="type">"handle"</span>.
2288 This channel's associated identifier, or the empty string if it has
2289 handle type <a class="link" href="telepathy-glib-enums.html#TP-HANDLE-TYPE-NONE:CAPS"><code class="literal">TP_HANDLE_TYPE_NONE</code></a>.
2290 </p>
2291 <p>
2292 For channels where <span class="type">"handle"</span> is non-zero, this is the result of
2293 inspecting <span class="type">"handle"</span>.
22892294 </p>
22902295 <p>
22912296 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
2292 finished preparing <a class="link" href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-CORE:CAPS" title="TP_CHANNEL_FEATURE_CORE"><code class="literal">TP_CHANNEL_FEATURE_CORE</code></a>.
2293 </p>
2294 <p>Default value: NULL</p>
2297 finished preparing <a class="link" href="telepathy-glib-channel.html#TP-CHANNEL-FEATURE-CORE:CAPS" title="TP_CHANNEL_FEATURE_CORE"><code class="literal">TP_CHANNEL_FEATURE_CORE</code></a>; until then, it may be
2298 the empty string.
2299 </p>
2300 <p>
2301 Changed in 0.11.UNRELEASED: this property is never <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Previously,
2302 it was <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> before an identifier was known, or when a channel
2303 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>.
2304 </p>
2305 <p>Default value: ""</p>
22952306 </div>
22962307 </div>
22972308 <div class="refsect1" title="Signal Details">
24652476 </tr>
24662477 <tr>
24672478 <td><p><span class="term"><em class="parameter"><code>added</code></em> :</span></p></td>
2468 <td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> of <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> containing the full members added
2469 </td>
2479 <td> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> of <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> containing the full
2480 members added. type GLib.Array</td>
24702481 </tr>
24712482 <tr>
24722483 <td><p><span class="term"><em class="parameter"><code>removed</code></em> :</span></p></td>
2473 <td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> of <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> containing the members (full,
2474 local-pending or remote-pending) removed
2475 </td>
2484 <td> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> of <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> containing the members
2485 (full, local-pending or remote-pending) removed. type GLib.Array</td>
24762486 </tr>
24772487 <tr>
24782488 <td><p><span class="term"><em class="parameter"><code>local_pending</code></em> :</span></p></td>
2479 <td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> of <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> containing the local-pending
2480 members added
2481 </td>
2489 <td> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> of <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> containing the
2490 local-pending members added. type GLib.Array</td>
24822491 </tr>
24832492 <tr>
24842493 <td><p><span class="term"><em class="parameter"><code>remote_pending</code></em> :</span></p></td>
2485 <td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> of <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> containing the remote-pending
2486 members added
2487 </td>
2494 <td> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Arrays.html#GArray"><span class="type">GArray</span></a> of <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> containing the
2495 remote-pending members added. type GLib.Array</td>
24882496 </tr>
24892497 <tr>
24902498 <td><p><span class="term"><em class="parameter"><code>details</code></em> :</span></p></td>
2491 <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
2499 <td>
2500 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
24922501 about the change, as described in the specification of the
2493 MembersChangedDetailed signal.
2494 </td>
2502 MembersChangedDetailed signal.. type GLib.HashTable): (element-type utf8 GObject.Value</td>
24952503 </tr>
24962504 <tr>
24972505 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
266266 <tbody>
267267 <tr>
268268 <td><p><span class="term"><em class="parameter"><code>cms</code></em> :</span></p></td>
269 <td>
270 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of <a class="link" href="telepathy-glib-connection-manager.html#TpConnectionManager"><span class="type">TpConnectionManager</span></a> (the objects will
269 <td> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of
270 <a class="link" href="telepathy-glib-connection-manager.html#TpConnectionManager"><span class="type">TpConnectionManager</span></a> (the objects will
271271 be unreferenced and the array will be freed after the callback returns,
272272 so the callback must reference any CMs it stores a pointer to),
273 or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error
274 </td>
273 or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error. <acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1. </td>
275274 </tr>
276275 <tr>
277276 <td><p><span class="term"><em class="parameter"><code>n_cms</code></em> :</span></p></td>
327326 </tr>
328327 <tr>
329328 <td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
330 <td>callback to be called when listing the CMs succeeds or fails;
331 not called if the <em class="parameter"><code>weak_object</code></em> goes away
332 </td>
329 <td> callback to be called when listing the CMs
330 succeeds or fails; not called if the <em class="parameter"><code>weak_object</code></em> goes away. <acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>. </td>
333331 </tr>
334332 <tr>
335333 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
344342 </tr>
345343 <tr>
346344 <td><p><span class="term"><em class="parameter"><code>weak_object</code></em> :</span></p></td>
347 <td>if not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, will be weakly referenced; the callback will
348 not be called, and the call will be cancelled, if the object has vanished
349 </td>
345 <td> if not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, will be weakly
346 referenced; the callback will not be called, and the call will be
347 cancelled, if the object has vanished. <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>. </td>
350348 </tr>
351349 </tbody>
352350 </table></div>
480478 </tr>
481479 <tr>
482480 <td><p><span class="term"><em class="parameter"><code>manager_filename</code></em> :</span></p></td>
483 <td>The <a class="link" href="telepathy-glib-connection-manager.html#TpConnectionManager--manager-file" title='The "manager-file" property'><span class="type">"manager-file"</span></a> property, which may
484 (and generally should) be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
485 </td>
481 <td> The <a class="link" href="telepathy-glib-connection-manager.html#TpConnectionManager--manager-file" title='The "manager-file" property'><span class="type">"manager-file"</span></a>
482 property, which may (and generally should) be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.. <acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>. </td>
486483 </tr>
487484 <tr>
488485 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
837834 </tr>
838835 <tr>
839836 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
840 <td> a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a> of protocol names
841 </td>
837 <td> a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a> of protocol names. type GLib.Strv<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>. </td>
842838 </tr>
843839 </tbody>
844840 </table></div>
914910 </tr>
915911 <tr>
916912 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
917 <td> a structure representing the protocol
918 </td>
913 <td> a structure representing the protocol. <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>. </td>
919914 </tr>
920915 </tbody>
921916 </table></div>
1000995 </tr>
1001996 <tr>
1002997 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1003 <td> a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a> of protocol names
1004 </td>
998 <td> a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a> of protocol names. type GLib.Strv<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>. </td>
1005999 </tr>
10061000 </tbody>
10071001 </table></div>
6464 #define <a class="link" href="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CORE:CAPS" title="TP_CONNECTION_FEATURE_CORE">TP_CONNECTION_FEATURE_CORE</a>
6565 #define <a class="link" href="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CONNECTED:CAPS" title="TP_CONNECTION_FEATURE_CONNECTED">TP_CONNECTION_FEATURE_CONNECTED</a>
6666 #define <a class="link" href="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CAPABILITIES:CAPS" title="TP_CONNECTION_FEATURE_CAPABILITIES">TP_CONNECTION_FEATURE_CAPABILITIES</a>
67 #define <a class="link" href="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-AVATAR-REQUIREMENTS:CAPS" title="TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS">TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS</a>
6768 <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-run-until-ready" title="tp_connection_run_until_ready ()">tp_connection_run_until_ready</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a> *self</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> connect</code></em>,
6970 <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>,
133134 <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>,
134135 <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>);
135136 <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>);
137 <a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements" title="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>
138 (<em class="parameter"><code><a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a> *self</code></em>);
136139 #define <a class="link" href="telepathy-glib-connection.html#TP-UNKNOWN-CONNECTION-STATUS:CAPS" title="TP_UNKNOWN_CONNECTION_STATUS">TP_UNKNOWN_CONNECTION_STATUS</a>
137140 #define <a class="link" href="telepathy-glib-connection.html#TP-ERRORS-DISCONNECTED:CAPS" title="TP_ERRORS_DISCONNECTED">TP_ERRORS_DISCONNECTED</a>
141 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-connection.html#tp-connection-get-detailed-error" title="tp_connection_get_detailed_error ()">tp_connection_get_detailed_error</a> (<em class="parameter"><code><a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a> *self</code></em>,
142 <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>);
138143
144
145 #define <a class="link" href="telepathy-glib-connection.html#TP-TYPE-AVATAR-REQUIREMENTS:CAPS" title="TP_TYPE_AVATAR_REQUIREMENTS">TP_TYPE_AVATAR_REQUIREMENTS</a>
146 <a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements" title="TpAvatarRequirements">TpAvatarRequirements</a>;
147 <a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements" title="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>,
148 <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>,
149 <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>,
150 <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>,
151 <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_height</code></em>,
152 <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>,
153 <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>,
154 <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>);
155 <a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements" title="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><a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements" title="TpAvatarRequirements"><span class="type">TpAvatarRequirements</span></a> *self</code></em>);
156 <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" title="TpAvatarRequirements"><span class="type">TpAvatarRequirements</span></a> *self</code></em>);
139157
140158 <span class="returnvalue">void</span> (<a class="link" href="telepathy-glib-connection.html#tp-cli-connection-callback-for-connect" title="tp_cli_connection_callback_for_connect ()">*tp_cli_connection_callback_for_connect</a>)
141159 (<em class="parameter"><code><a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a> *proxy</code></em>,
642660 </tr>
643661 <tr>
644662 <td><p><span class="term"><em class="parameter"><code>bus_name</code></em> :</span></p></td>
645 <td>the well-known or unique name of the connection process;
646 if well-known, this function will make a blocking call to the bus daemon
647 to resolve the unique name. May 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>object_path</code></em> is not, in which
648 case a well-known name will be derived from <em class="parameter"><code>object_path</code></em>.
649 </td>
663 <td> the well-known or unique name of the connection
664 process; if well-known, this function will make a blocking call to the bus
665 daemon to resolve the unique name. May 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>object_path</code></em> is not, in
666 which case a well-known name will be derived from <em class="parameter"><code>object_path</code></em>.. <acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>. </td>
650667 </tr>
651668 <tr>
652669 <td><p><span class="term"><em class="parameter"><code>object_path</code></em> :</span></p></td>
653 <td>the object path of the connection process. May be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
654 if <em class="parameter"><code>bus_name</code></em> is a well-known name, in which case the object path will
655 be derived from <em class="parameter"><code>bus_name</code></em>.
656 </td>
670 <td> the object path of the connection process.
671 May 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>bus_name</code></em> is a well-known name, in which case the object
672 path will be derived from <em class="parameter"><code>bus_name</code></em>.. <acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>. </td>
657673 </tr>
658674 <tr>
659675 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
784800 <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.
785801 </p>
786802 <p class="since">Since 0.11.3</p>
803 </div>
804 <hr>
805 <div class="refsect2" title="TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS">
806 <a name="TP-CONNECTION-FEATURE-AVATAR-REQUIREMENTS:CAPS"></a><h3>TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS</h3>
807 <pre class="programlisting">#define TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS</pre>
808 <p>
809 Expands to a call to a function that returns a <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> representing the
810 "avatar-requirements" feature.
811 </p>
812 <p>
813 When this feature is prepared, the avatar requirements of the Connection has
814 been retrieved. Use <a class="link" href="telepathy-glib-connection.html#tp-connection-get-avatar-requirements" title="tp_connection_get_avatar_requirements ()"><code class="function">tp_connection_get_avatar_requirements()</code></a> to get them once
815 prepared.
816 </p>
817 <p>
818 One can ask for a feature to be prepared using the
819 <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.
820 </p>
821 <p class="since">Since 0.11.UNRELEASED</p>
787822 </div>
788823 <hr>
789824 <div class="refsect2" title="tp_connection_run_until_ready ()">
962997 </tr>
963998 <tr>
964999 <td><p><span class="term"><em class="parameter"><code>reason</code></em> :</span></p></td>
965 <td>a TpConnectionStatusReason, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
966 </td>
1000 <td> a TpConnectionStatusReason, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>. </td>
9671001 </tr>
9681002 <tr>
9691003 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
13041338 </tr>
13051339 <tr>
13061340 <td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
1307 <td>called on success or failure (unless <em class="parameter"><code>weak_object</code></em> has become
1308 unreferenced)
1309 </td>
1341 <td> called on success or
1342 failure (unless <em class="parameter"><code>weak_object</code></em> has become unreferenced). type GObject.Callback</td>
13101343 </tr>
13111344 <tr>
13121345 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
15341567 </tr>
15351568 <tr>
15361569 <td><p><span class="term"><em class="parameter"><code>protocol</code></em> :</span></p></td>
1537 <td>If not NULL, used to return the protocol of the connection
1538 </td>
1570 <td> If not NULL, used to return the protocol
1571 of the connection. <acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>. <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>. </td>
15391572 </tr>
15401573 <tr>
15411574 <td><p><span class="term"><em class="parameter"><code>cm_name</code></em> :</span></p></td>
1542 <td>If not NULL, used to return the connection manager name of the
1543 connection
1544 </td>
1575 <td> If not NULL, used to return the connection
1576 manager name of the connection. <acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>. <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>. </td>
15451577 </tr>
15461578 <tr>
15471579 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
15771609 </tbody>
15781610 </table></div>
15791611 <p class="since">Since 0.11.3</p>
1612 </div>
1613 <hr>
1614 <div class="refsect2" title="tp_connection_get_avatar_requirements ()">
1615 <a name="tp-connection-get-avatar-requirements"></a><h3>tp_connection_get_avatar_requirements ()</h3>
1616 <pre class="programlisting"><a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements" title="TpAvatarRequirements"><span class="returnvalue">TpAvatarRequirements</span></a> * tp_connection_get_avatar_requirements
1617 (<em class="parameter"><code><a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a> *self</code></em>);</pre>
1618 <p>
1619 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>
1620 with the feature <a class="link" href="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-AVATAR-REQUIREMENTS:CAPS" title="TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS"><code class="literal">TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS</code></a>.
1621 </p>
1622 <p>
1623 This property cannot change after <em class="parameter"><code>self</code></em> goes to the Connected state.
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 connection
1631 </td>
1632 </tr>
1633 <tr>
1634 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1635 <td> a <a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements" title="TpAvatarRequirements"><span class="type">TpAvatarRequirements</span></a> struct, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
1636 feature is not yet prepared or the connection doesn't have the necessary
1637 properties.. <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>. </td>
1638 </tr>
1639 </tbody>
1640 </table></div>
1641 <p class="since">Since 0.11.UNRELEASED</p>
15801642 </div>
15811643 <hr>
15821644 <div class="refsect2" title="TP_UNKNOWN_CONNECTION_STATUS">
16021664 <p>
16031665 This macro expands to a function call returning a <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a>.
16041666 </p>
1667 <p>
1668 Since 0.7.24, this error domain is only used if a connection manager emits
1669 a <a class="link" href="telepathy-glib-enums.html#TpConnectionStatusReason" title="enum TpConnectionStatusReason"><span class="type">TpConnectionStatusReason</span></a> not known to telepathy-glib.
1670 </p>
16051671 <p class="since">Since 0.7.1</p>
1672 </div>
1673 <hr>
1674 <div class="refsect2" title="tp_connection_get_detailed_error ()">
1675 <a name="tp-connection-get-detailed-error"></a><h3>tp_connection_get_detailed_error ()</h3>
1676 <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_connection_get_detailed_error (<em class="parameter"><code><a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a> *self</code></em>,
1677 <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>);</pre>
1678 <p>
1679 If the connection has disconnected, return the D-Bus error name with which
1680 it disconnected (in particular, this is <a class="link" href="telepathy-glib-errors.html#TP-ERROR-STR-CANCELLED:CAPS" title="TP_ERROR_STR_CANCELLED"><code class="literal">TP_ERROR_STR_CANCELLED</code></a> if it was
1681 disconnected by a user request).
1682 </p>
1683 <p>
1684 Otherwise, return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, without altering <em class="parameter"><code>details</code></em>.
1685 </p>
1686 <div class="variablelist"><table border="0">
1687 <col align="left" valign="top">
1688 <tbody>
1689 <tr>
1690 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
1691 <td>a connection
1692 </td>
1693 </tr>
1694 <tr>
1695 <td><p><span class="term"><em class="parameter"><code>details</code></em> :</span></p></td>
1696 <td>
1697 optionally used to return a map from string to <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>, which must not be
1698 modified or destroyed by the caller. <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="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8 GObject.Value. <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym> utf8 GObject.Value. </td>
1699 </tr>
1700 <tr>
1701 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1702 <td> a D-Bus error name, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
1703 . <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>. <acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>. </td>
1704 </tr>
1705 </tbody>
1706 </table></div>
1707 <p class="since">Since 0.11.UNRELEASED</p>
1708 </div>
1709 <hr>
1710 <div class="refsect2" title="TP_TYPE_AVATAR_REQUIREMENTS">
1711 <a name="TP-TYPE-AVATAR-REQUIREMENTS:CAPS"></a><h3>TP_TYPE_AVATAR_REQUIREMENTS</h3>
1712 <pre class="programlisting">#define TP_TYPE_AVATAR_REQUIREMENTS (tp_avatar_requirements_get_type ())
1713 </pre>
1714 <p>
1715 The boxed type of a <a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements" title="TpAvatarRequirements"><span class="type">TpAvatarRequirements</span></a>.
1716 </p>
1717 <p class="since">Since 0.11.UNRELEASED</p>
1718 </div>
1719 <hr>
1720 <div class="refsect2" title="TpAvatarRequirements">
1721 <a name="TpAvatarRequirements"></a><h3>TpAvatarRequirements</h3>
1722 <pre class="programlisting">typedef struct {
1723 gchar **supported_mime_types;
1724 guint minimum_width;
1725 guint minimum_height;
1726 guint recommended_width;
1727 guint recommended_height;
1728 guint maximum_width;
1729 guint maximum_height;
1730 guint maximum_bytes;
1731 } TpAvatarRequirements;
1732 </pre>
1733 <p>
1734 The requirements for setting an avatar on a particular protocol.
1735 </p>
1736 <div class="variablelist"><table border="0">
1737 <col align="left" valign="top">
1738 <tbody>
1739 <tr>
1740 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **<em class="structfield"><code><a name="TpAvatarRequirements.supported-mime-types"></a>supported_mime_types</code></em>;</span></p></td>
1741 <td>An array of supported MIME types (e.g. "image/jpeg")
1742 Clients MAY assume that the first type in this array is preferred
1743 </td>
1744 </tr>
1745 <tr>
1746 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="TpAvatarRequirements.minimum-width"></a>minimum_width</code></em>;</span></p></td>
1747 <td>The minimum width in pixels of an avatar, which MAY be 0
1748 </td>
1749 </tr>
1750 <tr>
1751 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="TpAvatarRequirements.minimum-height"></a>minimum_height</code></em>;</span></p></td>
1752 <td>The minimum height in pixels of an avatar, which MAY be 0
1753 </td>
1754 </tr>
1755 <tr>
1756 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="TpAvatarRequirements.recommended-width"></a>recommended_width</code></em>;</span></p></td>
1757 <td>The recommended width in pixels of an avatar, or 0 if
1758 there is no preferred width.
1759 </td>
1760 </tr>
1761 <tr>
1762 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="TpAvatarRequirements.recommended-height"></a>recommended_height</code></em>;</span></p></td>
1763 <td>The recommended height in pixels of an avatar, or 0 if
1764 there is no preferred height
1765 </td>
1766 </tr>
1767 <tr>
1768 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="TpAvatarRequirements.maximum-width"></a>maximum_width</code></em>;</span></p></td>
1769 <td>The maximum width in pixels of an avatar on this protocol,
1770 or 0 if there is no limit.
1771 </td>
1772 </tr>
1773 <tr>
1774 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="TpAvatarRequirements.maximum-height"></a>maximum_height</code></em>;</span></p></td>
1775 <td>The maximum height in pixels of an avatar, or 0 if there is
1776 no limit.
1777 </td>
1778 </tr>
1779 <tr>
1780 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="TpAvatarRequirements.maximum-bytes"></a>maximum_bytes</code></em>;</span></p></td>
1781 <td>he maximum size in bytes of an avatar, or 0 if there is no
1782 limit.
1783 </td>
1784 </tr>
1785 </tbody>
1786 </table></div>
1787 <p class="since">Since 0.11.UNRELEASED</p>
1788 </div>
1789 <hr>
1790 <div class="refsect2" title="tp_avatar_requirements_new ()">
1791 <a name="tp-avatar-requirements-new"></a><h3>tp_avatar_requirements_new ()</h3>
1792 <pre class="programlisting"><a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements" title="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>,
1793 <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>,
1794 <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>,
1795 <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>,
1796 <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_height</code></em>,
1797 <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>,
1798 <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>,
1799 <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>);</pre>
1800 <p>
1801
1802 </p>
1803 <div class="variablelist"><table border="0">
1804 <col align="left" valign="top">
1805 <tbody>
1806 <tr>
1807 <td><p><span class="term"><em class="parameter"><code>supported_mime_types</code></em> :</span></p></td>
1808 <td>An array of supported MIME types (e.g. "image/jpeg")
1809 Clients MAY assume that the first type in this array is preferred
1810 </td>
1811 </tr>
1812 <tr>
1813 <td><p><span class="term"><em class="parameter"><code>minimum_width</code></em> :</span></p></td>
1814 <td>The minimum width in pixels of an avatar, which MAY be 0
1815 </td>
1816 </tr>
1817 <tr>
1818 <td><p><span class="term"><em class="parameter"><code>minimum_height</code></em> :</span></p></td>
1819 <td>The minimum height in pixels of an avatar, which MAY be 0
1820 </td>
1821 </tr>
1822 <tr>
1823 <td><p><span class="term"><em class="parameter"><code>recommended_width</code></em> :</span></p></td>
1824 <td>The recommended width in pixels of an avatar, or 0 if
1825 there is no preferred width.
1826 </td>
1827 </tr>
1828 <tr>
1829 <td><p><span class="term"><em class="parameter"><code>recommended_height</code></em> :</span></p></td>
1830 <td>The recommended height in pixels of an avatar, or 0 if
1831 there is no preferred height
1832 </td>
1833 </tr>
1834 <tr>
1835 <td><p><span class="term"><em class="parameter"><code>maximum_width</code></em> :</span></p></td>
1836 <td>The maximum width in pixels of an avatar on this protocol,
1837 or 0 if there is no limit.
1838 </td>
1839 </tr>
1840 <tr>
1841 <td><p><span class="term"><em class="parameter"><code>maximum_height</code></em> :</span></p></td>
1842 <td>The maximum height in pixels of an avatar, or 0 if there is
1843 no limit.
1844 </td>
1845 </tr>
1846 <tr>
1847 <td><p><span class="term"><em class="parameter"><code>maximum_bytes</code></em> :</span></p></td>
1848 <td>he maximum size in bytes of an avatar, or 0 if there is no
1849 limit.
1850 </td>
1851 </tr>
1852 <tr>
1853 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1854 <td> a newly allocated <a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements" title="TpAvatarRequirements"><span class="type">TpAvatarRequirements</span></a>, free it with
1855 <a class="link" href="telepathy-glib-connection.html#tp-avatar-requirements-destroy" title="tp_avatar_requirements_destroy ()"><code class="function">tp_avatar_requirements_destroy()</code></a>
1856 </td>
1857 </tr>
1858 </tbody>
1859 </table></div>
1860 <p class="since">Since 0.11.UNRELEASED</p>
1861 </div>
1862 <hr>
1863 <div class="refsect2" title="tp_avatar_requirements_copy ()">
1864 <a name="tp-avatar-requirements-copy"></a><h3>tp_avatar_requirements_copy ()</h3>
1865 <pre class="programlisting"><a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements" title="TpAvatarRequirements"><span class="returnvalue">TpAvatarRequirements</span></a> * tp_avatar_requirements_copy (<em class="parameter"><code><a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements" title="TpAvatarRequirements"><span class="type">TpAvatarRequirements</span></a> *self</code></em>);</pre>
1866 <p>
1867
1868 </p>
1869 <div class="variablelist"><table border="0">
1870 <col align="left" valign="top">
1871 <tbody>
1872 <tr>
1873 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
1874 <td>a <a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements" title="TpAvatarRequirements"><span class="type">TpAvatarRequirements</span></a>
1875 </td>
1876 </tr>
1877 <tr>
1878 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1879 <td> a newly allocated <a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements" title="TpAvatarRequirements"><span class="type">TpAvatarRequirements</span></a>, free it with
1880 <a class="link" href="telepathy-glib-connection.html#tp-avatar-requirements-destroy" title="tp_avatar_requirements_destroy ()"><code class="function">tp_avatar_requirements_destroy()</code></a>
1881 </td>
1882 </tr>
1883 </tbody>
1884 </table></div>
1885 <p class="since">Since 0.11.UNRELEASED</p>
1886 </div>
1887 <hr>
1888 <div class="refsect2" title="tp_avatar_requirements_destroy ()">
1889 <a name="tp-avatar-requirements-destroy"></a><h3>tp_avatar_requirements_destroy ()</h3>
1890 <pre class="programlisting"><span class="returnvalue">void</span> tp_avatar_requirements_destroy (<em class="parameter"><code><a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements" title="TpAvatarRequirements"><span class="type">TpAvatarRequirements</span></a> *self</code></em>);</pre>
1891 <p>
1892 Free all memory used by the <a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements" title="TpAvatarRequirements"><span class="type">TpAvatarRequirements</span></a>.
1893 </p>
1894 <div class="variablelist"><table border="0">
1895 <col align="left" valign="top">
1896 <tbody><tr>
1897 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
1898 <td>a <a class="link" href="telepathy-glib-connection.html#TpAvatarRequirements" title="TpAvatarRequirements"><span class="type">TpAvatarRequirements</span></a>
1899 </td>
1900 </tr></tbody>
1901 </table></div>
1902 <p class="since">Since 0.11.UNRELEASED</p>
16061903 </div>
16071904 <hr>
16081905 <div class="refsect2" title="tp_cli_connection_callback_for_connect ()">
453453 </tr>
454454 <tr>
455455 <td><p><span class="term"><em class="parameter"><code>contacts</code></em> :</span></p></td>
456 <td>An array of <em class="parameter"><code>n_contacts</code></em> TpContact objects (this callback is
456 <td> An array of <em class="parameter"><code>n_contacts</code></em> TpContact
457 objects (this callback is
457458 not given a reference to any of these objects, and must call
458 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-ref"><code class="function">g_object_ref()</code></a> on any that it will keep), or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on unrecoverable errors
459 </td>
459 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-ref"><code class="function">g_object_ref()</code></a> on any that it will keep), or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on unrecoverable errors. <acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_contacts. </td>
460460 </tr>
461461 <tr>
462462 <td><p><span class="term"><em class="parameter"><code>requested_ids</code></em> :</span></p></td>
463 <td>An array of <em class="parameter"><code>n_contacts</code></em> valid IDs (JIDs, SIP URIs etc.)
463 <td> An array of <em class="parameter"><code>n_contacts</code></em> valid IDs
464 (JIDs, SIP URIs etc.)
464465 that were passed to <a class="link" href="telepathy-glib-contact.html#tp-connection-get-contacts-by-id" title="tp_connection_get_contacts_by_id ()"><code class="function">tp_connection_get_contacts_by_id()</code></a>, in an order
465 corresponding to <em class="parameter"><code>contacts</code></em>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on unrecoverable errors
466 </td>
466 corresponding to <em class="parameter"><code>contacts</code></em>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on unrecoverable errors. <acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_contacts. </td>
467467 </tr>
468468 <tr>
469469 <td><p><span class="term"><em class="parameter"><code>failed_id_errors</code></em> :</span></p></td>
470 <td>A hash table in which the keys are IDs
471 and the values are errors (<a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>)
472 </td>
470 <td> A hash table in which
471 the keys are IDs and the values are errors (<a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>). <acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8 GLib.Error. </td>
473472 </tr>
474473 <tr>
475474 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
533532 </tr>
534533 <tr>
535534 <td><p><span class="term"><em class="parameter"><code>ids</code></em> :</span></p></td>
536 <td>An array of strings representing the desired contacts by their
535 <td> An array of strings representing
536 the desired contacts by their
537537 identifiers in the IM protocol (XMPP JIDs, SIP URIs, MSN Passports,
538 AOL screen-names etc.)
539 </td>
538 AOL screen-names etc.). <acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_ids. <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym> length=n_ids. </td>
540539 </tr>
541540 <tr>
542541 <td><p><span class="term"><em class="parameter"><code>n_features</code></em> :</span></p></td>
545544 </tr>
546545 <tr>
547546 <td><p><span class="term"><em class="parameter"><code>features</code></em> :</span></p></td>
548 <td>An array of features that must be ready for use (if supported)
549 before the callback is called (may 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>n_features</code></em> is 0)
550 </td>
547 <td> An array of features
548 that must be ready for use (if supported)
549 before the callback is called (may 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>n_features</code></em> is 0). <acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_features. <acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym> length=n_features. </td>
551550 </tr>
552551 <tr>
553552 <td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
554 <td>A user callback to call when the contacts are ready
555 </td>
553 <td> A user callback to call when the contacts are ready. <acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>. </td>
556554 </tr>
557555 <tr>
558556 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
567565 </tr>
568566 <tr>
569567 <td><p><span class="term"><em class="parameter"><code>weak_object</code></em> :</span></p></td>
570 <td>An object to pass to the callback, which will be weakly
571 referenced; if this object is destroyed, the operation will be cancelled
572 </td>
568 <td> An object to pass to the
569 callback, which will be weakly
570 referenced; if this object is destroyed, the operation will be cancelled. <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>. </td>
573571 </tr>
574572 </tbody>
575573 </table></div>
674672 </tr>
675673 <tr>
676674 <td><p><span class="term"><em class="parameter"><code>contacts</code></em> :</span></p></td>
677 <td>An array of <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> objects associated with <em class="parameter"><code>self</code></em>
678 </td>
675 <td> An array of <a class="link" href="telepathy-glib-contact.html#TpContact"><span class="type">TpContact</span></a> objects
676 associated with <em class="parameter"><code>self</code></em>. <acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_contacts. </td>
679677 </tr>
680678 <tr>
681679 <td><p><span class="term"><em class="parameter"><code>n_features</code></em> :</span></p></td>
684682 </tr>
685683 <tr>
686684 <td><p><span class="term"><em class="parameter"><code>features</code></em> :</span></p></td>
687 <td>An array of features that must be ready for use (if supported)
688 before the callback is called
689 </td>
685 <td> An array of features that must be
686 ready for use (if supported) before the callback is called. <acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_features. </td>
690687 </tr>
691688 <tr>
692689 <td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
693 <td>A user callback to call when the contacts are ready
694 </td>
690 <td> A user callback to call when the contacts are ready. <acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>. </td>
695691 </tr>
696692 <tr>
697693 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
706702 </tr>
707703 <tr>
708704 <td><p><span class="term"><em class="parameter"><code>weak_object</code></em> :</span></p></td>
709 <td>An object to pass to the callback, which will be weakly
710 referenced; if this object is destroyed, the operation will be cancelled
711 </td>
705 <td> An object to pass to the callback, which will be
706 weakly referenced; if this object is destroyed, the operation will be
707 cancelled. <acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>. </td>
712708 </tr>
713709 </tbody>
714710 </table></div>
789785 <td> a borrowed reference to the <a class="link" href="telepathy-glib-contact.html#TpContact--connection" title='The "connection" property'><span class="type">"connection"</span></a>
790786 (it must be referenced with g_object_ref if it must remain valid
791787 longer than the contact)
792
793 </td>
788 . <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>. </td>
794789 </tr>
795790 </tbody>
796791 </table></div>
967962 </tr>
968963 <tr>
969964 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
970 <td> the same <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> (or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) as the <a class="link" href="telepathy-glib-contact.html#TpContact--location" title='The "location" property'><span class="type">"location"</span></a> property
971
972 </td>
965 <td> the same
966 <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> (or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) as the <a class="link" href="telepathy-glib-contact.html#TpContact--location" title='The "location" property'><span class="type">"location"</span></a> property
967 . <acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8 GObject.Value. <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym> utf8 GObject.Value. </td>
973968 </tr>
974969 </tbody>
975970 </table></div>
429429 </tr>
430430 <tr>
431431 <td><p><span class="term"><em class="parameter"><code>features</code></em> :</span></p></td>
432 <td>an array of desired features, ending with 0; <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is
433 equivalent to an array containing only 0
434 </td>
432 <td> an array
433 of desired features, ending with 0; <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is equivalent to an array
434 containing only 0. <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>. <acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1. <acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym> zero-terminated=1. </td>
435435 </tr>
436436 <tr>
437437 <td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
577577 </tr>
578578 <tr>
579579 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
580 <td> a borrowed reference to the <a class="link" href="telepathy-glib-dbus.html#TpDBusDaemon"><span class="type">TpDBusDaemon</span></a> for this object, if any;
581 always <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if this object is itself a <a class="link" href="telepathy-glib-dbus.html#TpDBusDaemon"><span class="type">TpDBusDaemon</span></a>. The caller must
582 reference the returned object with <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-ref"><code class="function">g_object_ref()</code></a> if it will be kept.
583
584 </td>
580 <td> a borrowed reference to the <a class="link" href="telepathy-glib-dbus.html#TpDBusDaemon"><span class="type">TpDBusDaemon</span></a> for
581 this object, if any; always <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if this object is itself a
582 <a class="link" href="telepathy-glib-dbus.html#TpDBusDaemon"><span class="type">TpDBusDaemon</span></a>. The caller must reference the returned object with
583 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-ref"><code class="function">g_object_ref()</code></a> if it will be kept.
584 . <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>. </td>
585585 </tr>
586586 </tbody>
587587 </table></div>
11231123 <p>
11241124 </p>
11251125 <div class="example">
1126 <a name="id1000859"></a><p class="title"><b>Example 2.  using tp_value_array_build</b></p>
1126 <a name="id1088454"></a><p class="title"><b>Example 2.  using tp_value_array_build</b></p>
11271127 <div class="example-contents">
11281128 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
11291129 <tbody>
11891189 <p>
11901190 </p>
11911191 <div class="example">
1192 <a name="id1001038"></a><p class="title"><b>Example 3. using tp_value_array_unpack</b></p>
1192 <a name="id1088633"></a><p class="title"><b>Example 3. using tp_value_array_unpack</b></p>
11931193 <div class="example-contents">
11941194 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
11951195 <tbody>
12001200 4
12011201 5
12021202 6</pre></td>
1203 <td class="listing_code"><pre class="programlisting">gchar <span class="symbol">*</span>host<span class="symbol">;</span>
1203 <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">const</span> gchar <span class="symbol">*</span>host<span class="symbol">;</span>
12041204 guint port<span class="symbol">;</span>
12051205
12061206 <span class="function"><a href="telepathy-glib-util.html#tp-value-array-unpack">tp_value_array_unpack</a></span> <span class="symbol">(</span>array<span class="symbol">,</span> <span class="number">2</span><span class="symbol">,</span>
813813 <function name="TP_CONNECTION_FEATURE_CORE" link="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CORE:CAPS"/>
814814 <function name="TP_CONNECTION_FEATURE_CONNECTED" link="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CONNECTED:CAPS"/>
815815 <function name="TP_CONNECTION_FEATURE_CAPABILITIES" link="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CAPABILITIES:CAPS"/>
816 <function name="TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS" link="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-AVATAR-REQUIREMENTS:CAPS"/>
816817 <function name="tp_connection_run_until_ready ()" link="telepathy-glib-connection.html#tp-connection-run-until-ready"/>
817818 <function name="TpConnectionWhenReadyCb ()" link="telepathy-glib-connection.html#TpConnectionWhenReadyCb"/>
818819 <function name="tp_connection_call_when_ready ()" link="telepathy-glib-connection.html#tp-connection-call-when-ready"/>
829830 <function name="tp_connection_presence_type_cmp_availability ()" link="telepathy-glib-connection.html#tp-connection-presence-type-cmp-availability"/>
830831 <function name="tp_connection_parse_object_path ()" link="telepathy-glib-connection.html#tp-connection-parse-object-path"/>
831832 <function name="tp_connection_get_capabilities ()" link="telepathy-glib-connection.html#tp-connection-get-capabilities"/>
833 <function name="tp_connection_get_avatar_requirements ()" link="telepathy-glib-connection.html#tp-connection-get-avatar-requirements"/>
832834 <function name="TP_UNKNOWN_CONNECTION_STATUS" link="telepathy-glib-connection.html#TP-UNKNOWN-CONNECTION-STATUS:CAPS"/>
833835 <function name="TP_ERRORS_DISCONNECTED" link="telepathy-glib-connection.html#TP-ERRORS-DISCONNECTED:CAPS"/>
836 <function name="tp_connection_get_detailed_error ()" link="telepathy-glib-connection.html#tp-connection-get-detailed-error"/>
837 <function name="TP_TYPE_AVATAR_REQUIREMENTS" link="telepathy-glib-connection.html#TP-TYPE-AVATAR-REQUIREMENTS:CAPS"/>
838 <function name="TpAvatarRequirements" link="telepathy-glib-connection.html#TpAvatarRequirements"/>
839 <function name="tp_avatar_requirements_new ()" link="telepathy-glib-connection.html#tp-avatar-requirements-new"/>
840 <function name="tp_avatar_requirements_copy ()" link="telepathy-glib-connection.html#tp-avatar-requirements-copy"/>
841 <function name="tp_avatar_requirements_destroy ()" link="telepathy-glib-connection.html#tp-avatar-requirements-destroy"/>
834842 <function name="tp_cli_connection_callback_for_connect ()" link="telepathy-glib-connection.html#tp-cli-connection-callback-for-connect"/>
835843 <function name="tp_cli_connection_call_connect ()" link="telepathy-glib-connection.html#tp-cli-connection-call-connect"/>
836844 <function name="tp_cli_connection_run_connect ()" link="telepathy-glib-connection.html#tp-cli-connection-run-connect"/>
813813 <keyword type="macro" name="TP_CONNECTION_FEATURE_CORE" link="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CORE:CAPS" since="0.11.3"/>
814814 <keyword type="macro" name="TP_CONNECTION_FEATURE_CONNECTED" link="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CONNECTED:CAPS" since="0.11.3"/>
815815 <keyword type="macro" name="TP_CONNECTION_FEATURE_CAPABILITIES" link="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CAPABILITIES:CAPS" since="0.11.3"/>
816 <keyword type="macro" name="TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS" link="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-AVATAR-REQUIREMENTS:CAPS" since="0.11.UNRELEASED"/>
816817 <keyword type="function" name="tp_connection_run_until_ready ()" link="telepathy-glib-connection.html#tp-connection-run-until-ready" deprecated="" since="0.7.1"/>
817818 <keyword type="function" name="TpConnectionWhenReadyCb ()" link="telepathy-glib-connection.html#TpConnectionWhenReadyCb"/>
818819 <keyword type="function" name="tp_connection_call_when_ready ()" link="telepathy-glib-connection.html#tp-connection-call-when-ready" since="0.7.7"/>
829830 <keyword type="function" name="tp_connection_presence_type_cmp_availability ()" link="telepathy-glib-connection.html#tp-connection-presence-type-cmp-availability" since="0.7.16"/>
830831 <keyword type="function" name="tp_connection_parse_object_path ()" link="telepathy-glib-connection.html#tp-connection-parse-object-path" since="0.7.27"/>
831832 <keyword type="function" name="tp_connection_get_capabilities ()" link="telepathy-glib-connection.html#tp-connection-get-capabilities" since="0.11.3"/>
833 <keyword type="function" name="tp_connection_get_avatar_requirements ()" link="telepathy-glib-connection.html#tp-connection-get-avatar-requirements" since="0.11.UNRELEASED"/>
832834 <keyword type="macro" name="TP_UNKNOWN_CONNECTION_STATUS" link="telepathy-glib-connection.html#TP-UNKNOWN-CONNECTION-STATUS:CAPS" since="0.7.1"/>
833835 <keyword type="macro" name="TP_ERRORS_DISCONNECTED" link="telepathy-glib-connection.html#TP-ERRORS-DISCONNECTED:CAPS" since="0.7.1"/>
836 <keyword type="function" name="tp_connection_get_detailed_error ()" link="telepathy-glib-connection.html#tp-connection-get-detailed-error" since="0.11.UNRELEASED"/>
837 <keyword type="macro" name="TP_TYPE_AVATAR_REQUIREMENTS" link="telepathy-glib-connection.html#TP-TYPE-AVATAR-REQUIREMENTS:CAPS" since="0.11.UNRELEASED"/>
838 <keyword type="struct" name="TpAvatarRequirements" link="telepathy-glib-connection.html#TpAvatarRequirements" since="0.11.UNRELEASED"/>
839 <keyword type="function" name="tp_avatar_requirements_new ()" link="telepathy-glib-connection.html#tp-avatar-requirements-new" since="0.11.UNRELEASED"/>
840 <keyword type="function" name="tp_avatar_requirements_copy ()" link="telepathy-glib-connection.html#tp-avatar-requirements-copy" since="0.11.UNRELEASED"/>
841 <keyword type="function" name="tp_avatar_requirements_destroy ()" link="telepathy-glib-connection.html#tp-avatar-requirements-destroy" since="0.11.UNRELEASED"/>
834842 <keyword type="function" name="tp_cli_connection_callback_for_connect ()" link="telepathy-glib-connection.html#tp-cli-connection-callback-for-connect"/>
835843 <keyword type="function" name="tp_cli_connection_call_connect ()" link="telepathy-glib-connection.html#tp-cli-connection-call-connect"/>
836844 <keyword type="function" name="tp_cli_connection_run_connect ()" link="telepathy-glib-connection.html#tp-cli-connection-run-connect" deprecated=""/>
27512751 TP_CONNECTION_FEATURE_CORE
27522752 TP_CONNECTION_FEATURE_CONNECTED
27532753 TP_CONNECTION_FEATURE_CAPABILITIES
2754 TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS
27542755 tp_connection_run_until_ready
27552756 TpConnectionWhenReadyCb
27562757 tp_connection_call_when_ready
27672768 tp_connection_presence_type_cmp_availability
27682769 tp_connection_parse_object_path
27692770 tp_connection_get_capabilities
2771 tp_connection_get_avatar_requirements
27702772 TP_UNKNOWN_CONNECTION_STATUS
27712773 TP_ERRORS_DISCONNECTED
2774 tp_connection_get_detailed_error
27722775 <SUBSECTION Standard>
27732776 tp_errors_disconnected_quark
27742777 tp_connection_get_type
27792782 TP_IS_CONNECTION
27802783 TP_IS_CONNECTION_CLASS
27812784 TpConnectionPrivate
2785 tp_avatar_requirements_get_type
27822786 tp_connection_get_feature_quark_core
27832787 tp_connection_get_feature_quark_connected
27842788 tp_connection_get_feature_quark_capabilities
2789 tp_connection_get_feature_quark_avatar_requirements
2790 <SUBSECTION avatar-requirements>
2791 TP_TYPE_AVATAR_REQUIREMENTS
2792 TpAvatarRequirements
2793 tp_avatar_requirements_new
2794 tp_avatar_requirements_copy
2795 tp_avatar_requirements_destroy
27852796 <SUBSECTION>
27862797 tp_cli_connection_callback_for_connect
27872798 tp_cli_connection_call_connect
88
99 </para>
1010
11
1112 <!-- ##### SECTION See_Also ##### -->
1213 <para>
1314
1415 </para>
16
1517
1618 <!-- ##### SECTION Stability_Level ##### -->
1719
88
99 </para>
1010
11
1112 <!-- ##### SECTION See_Also ##### -->
1213 <para>
1314
1415 </para>
16
1517
1618 <!-- ##### SECTION Stability_Level ##### -->
1719
88
99 </para>
1010
11
1112 <!-- ##### SECTION See_Also ##### -->
1213 <para>
1314
1415 </para>
16
1517
1618 <!-- ##### SECTION Stability_Level ##### -->
1719
110110
111111
112112 <!-- ##### MACRO TP_CONNECTION_FEATURE_CAPABILITIES ##### -->
113 <para>
114
115 </para>
116
117
118
119 <!-- ##### MACRO TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS ##### -->
113120 <para>
114121
115122 </para>
302309 @Returns:
303310
304311
312 <!-- ##### FUNCTION tp_connection_get_avatar_requirements ##### -->
313 <para>
314
315 </para>
316
317 @self:
318 @Returns:
319
320
305321 <!-- ##### MACRO TP_UNKNOWN_CONNECTION_STATUS ##### -->
306322 <para>
307323
314330
315331 </para>
316332
333
334
335 <!-- ##### FUNCTION tp_connection_get_detailed_error ##### -->
336 <para>
337
338 </para>
339
340 @self:
341 @details:
342 @Returns:
343
344
345 <!-- ##### MACRO TP_TYPE_AVATAR_REQUIREMENTS ##### -->
346 <para>
347
348 </para>
349
350
351
352 <!-- ##### STRUCT TpAvatarRequirements ##### -->
353 <para>
354
355 </para>
356
357 @supported_mime_types:
358 @minimum_width:
359 @minimum_height:
360 @recommended_width:
361 @recommended_height:
362 @maximum_width:
363 @maximum_height:
364 @maximum_bytes:
365
366 <!-- ##### FUNCTION tp_avatar_requirements_new ##### -->
367 <para>
368
369 </para>
370
371 @supported_mime_types:
372 @minimum_width:
373 @minimum_height:
374 @recommended_width:
375 @recommended_height:
376 @maximum_width:
377 @maximum_height:
378 @maximum_bytes:
379 @Returns:
380
381
382 <!-- ##### FUNCTION tp_avatar_requirements_copy ##### -->
383 <para>
384
385 </para>
386
387 @self:
388 @Returns:
389
390
391 <!-- ##### FUNCTION tp_avatar_requirements_destroy ##### -->
392 <para>
393
394 </para>
395
396 @self:
317397
318398
319399 <!-- ##### USER_FUNCTION tp_cli_connection_callback_for_connect ##### -->
88
99 </para>
1010
11
1112 <!-- ##### SECTION See_Also ##### -->
1213 <para>
1314
1415 </para>
16
1517
1618 <!-- ##### SECTION Stability_Level ##### -->
1719
0 <!-- ##### ARG TpBaseConnection:has-immortal-handles ##### -->
1 <para>
2
3 </para>
4
5
6 <!-- ##### STRUCT TpIntSetFastIter ##### -->
7 <para>
8
9 </para>
10
11
12 <!-- ##### FUNCTION tp_intset_fast_iter_init ##### -->
13 <para>
14
15 </para>
16
17 @iter:
18 @set:
19
20 <!-- ##### FUNCTION tp_intset_fast_iter_next ##### -->
21 <para>
22
23 </para>
24
25 @iter:
26 @output:
27 @Returns:
28
29 <!-- ##### FUNCTION tp_svc_connection_interface_contact_info_get_type ##### -->
30 <para>
31
32 </para>
33
34 @void:
35 @Returns:
36
3636 DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
3737 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
3838 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
39 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
40 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
41 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
42 $(top_srcdir)/m4/lt~obsolete.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 \
4343 $(top_srcdir)/m4/tp-compiler-flag.m4 \
4444 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
4545 $(top_srcdir)/configure.ac
144144 INSTALL_PROGRAM = @INSTALL_PROGRAM@
145145 INSTALL_SCRIPT = @INSTALL_SCRIPT@
146146 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
147 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
148 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
149 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
150 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
151 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
147152 LD = @LD@
148153 LDFLAGS = @LDFLAGS@
149154 LIBOBJS = @LIBOBJS@
3939 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
4040 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
4141 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
42 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
43 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
44 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
45 $(top_srcdir)/m4/lt~obsolete.m4 \
42 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/introspection.m4 \
43 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/linker.m4 \
44 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
45 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
4646 $(top_srcdir)/m4/tp-compiler-flag.m4 \
4747 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
4848 $(top_srcdir)/configure.ac
202202 INSTALL_PROGRAM = @INSTALL_PROGRAM@
203203 INSTALL_SCRIPT = @INSTALL_SCRIPT@
204204 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
205 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
206 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
207 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
208 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
209 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
205210 LD = @LD@
206211 LDFLAGS = @LDFLAGS@
207212 LIBOBJS = @LIBOBJS@
3636 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
3737 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
3838 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
39 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
40 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
41 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
42 $(top_srcdir)/m4/lt~obsolete.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 \
4343 $(top_srcdir)/m4/tp-compiler-flag.m4 \
4444 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
4545 $(top_srcdir)/configure.ac
144144 INSTALL_PROGRAM = @INSTALL_PROGRAM@
145145 INSTALL_SCRIPT = @INSTALL_SCRIPT@
146146 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
147 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
148 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
149 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
150 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
151 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
147152 LD = @LD@
148153 LDFLAGS = @LDFLAGS@
149154 LIBOBJS = @LIBOBJS@
4343 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
4444 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
4545 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
46 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
47 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
48 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
49 $(top_srcdir)/m4/lt~obsolete.m4 \
46 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/introspection.m4 \
47 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/linker.m4 \
48 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
49 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
5050 $(top_srcdir)/m4/tp-compiler-flag.m4 \
5151 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
5252 $(top_srcdir)/configure.ac
177177 INSTALL_PROGRAM = @INSTALL_PROGRAM@
178178 INSTALL_SCRIPT = @INSTALL_SCRIPT@
179179 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
180 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
181 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
182 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
183 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
184 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
180185 LD = @LD@
181186 LDFLAGS = @LDFLAGS@
182187 LIBOBJS = @LIBOBJS@
4444 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
4545 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
4646 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
47 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
48 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
49 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
50 $(top_srcdir)/m4/lt~obsolete.m4 \
47 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/introspection.m4 \
48 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/linker.m4 \
49 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
50 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
5151 $(top_srcdir)/m4/tp-compiler-flag.m4 \
5252 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
5353 $(top_srcdir)/configure.ac
177177 INSTALL_PROGRAM = @INSTALL_PROGRAM@
178178 INSTALL_SCRIPT = @INSTALL_SCRIPT@
179179 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
180 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
181 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
182 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
183 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
184 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
180185 LD = @LD@
181186 LDFLAGS = @LDFLAGS@
182187 LIBOBJS = @LIBOBJS@
4343 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
4444 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
4545 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
46 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
47 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
48 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
49 $(top_srcdir)/m4/lt~obsolete.m4 \
46 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/introspection.m4 \
47 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/linker.m4 \
48 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
49 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
5050 $(top_srcdir)/m4/tp-compiler-flag.m4 \
5151 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
5252 $(top_srcdir)/configure.ac
177177 INSTALL_PROGRAM = @INSTALL_PROGRAM@
178178 INSTALL_SCRIPT = @INSTALL_SCRIPT@
179179 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
180 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
181 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
182 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
183 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
184 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
180185 LD = @LD@
181186 LDFLAGS = @LDFLAGS@
182187 LIBOBJS = @LIBOBJS@
4141 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
4242 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
4343 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
44 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
45 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
46 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
47 $(top_srcdir)/m4/lt~obsolete.m4 \
44 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/introspection.m4 \
45 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/linker.m4 \
46 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
47 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
4848 $(top_srcdir)/m4/tp-compiler-flag.m4 \
4949 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
5050 $(top_srcdir)/configure.ac
174174 INSTALL_PROGRAM = @INSTALL_PROGRAM@
175175 INSTALL_SCRIPT = @INSTALL_SCRIPT@
176176 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
177 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
178 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
179 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
180 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
181 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
177182 LD = @LD@
178183 LDFLAGS = @LDFLAGS@
179184 LIBOBJS = @LIBOBJS@
220220 }
221221 }
222222
223 static ExampleEchoChannel *
223 static void
224224 new_channel (ExampleEchoImManager *self,
225225 TpHandle handle,
226226 TpHandle initiator,
244244
245245 g_signal_connect (chan, "closed", (GCallback) channel_closed_cb, self);
246246
247 /* self->priv->channels takes ownership of 'chan' */
247248 g_hash_table_insert (self->priv->channels, GUINT_TO_POINTER (handle), chan);
248249
249250 if (request_token != NULL)
252253 tp_channel_manager_emit_new_channel (self, TP_EXPORTABLE_CHANNEL (chan),
253254 requests);
254255 g_slist_free (requests);
255
256 return chan;
257256 }
258257
259258 static const gchar * const fixed_properties[] = {
322321
323322 if (chan == NULL)
324323 {
325 chan = new_channel (self, handle, self->priv->conn->self_handle,
326 request_token);
324 new_channel (self, handle, self->priv->conn->self_handle, request_token);
327325 }
328326 else if (require_new)
329327 {
4141 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
4242 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
4343 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
44 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
45 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
46 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
47 $(top_srcdir)/m4/lt~obsolete.m4 \
44 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/introspection.m4 \
45 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/linker.m4 \
46 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
47 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
4848 $(top_srcdir)/m4/tp-compiler-flag.m4 \
4949 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
5050 $(top_srcdir)/configure.ac
175175 INSTALL_PROGRAM = @INSTALL_PROGRAM@
176176 INSTALL_SCRIPT = @INSTALL_SCRIPT@
177177 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
178 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
179 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
180 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
181 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
182 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
178183 LD = @LD@
179184 LDFLAGS = @LDFLAGS@
180185 LIBOBJS = @LIBOBJS@
4040 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
4141 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
4242 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
43 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
44 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
45 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
46 $(top_srcdir)/m4/lt~obsolete.m4 \
43 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/introspection.m4 \
44 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/linker.m4 \
45 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
46 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
4747 $(top_srcdir)/m4/tp-compiler-flag.m4 \
4848 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
4949 $(top_srcdir)/configure.ac
168168 INSTALL_PROGRAM = @INSTALL_PROGRAM@
169169 INSTALL_SCRIPT = @INSTALL_SCRIPT@
170170 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
171 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
172 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
173 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
174 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
175 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
171176 LD = @LD@
172177 LDFLAGS = @LDFLAGS@
173178 LIBOBJS = @LIBOBJS@
4040 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
4141 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
4242 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
43 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
44 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
45 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
46 $(top_srcdir)/m4/lt~obsolete.m4 \
43 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/introspection.m4 \
44 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/linker.m4 \
45 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
46 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
4747 $(top_srcdir)/m4/tp-compiler-flag.m4 \
4848 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
4949 $(top_srcdir)/configure.ac
167167 INSTALL_PROGRAM = @INSTALL_PROGRAM@
168168 INSTALL_SCRIPT = @INSTALL_SCRIPT@
169169 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
170 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
171 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
172 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
173 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
174 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
170175 LD = @LD@
171176 LDFLAGS = @LDFLAGS@
172177 LIBOBJS = @LIBOBJS@
4646 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
4747 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
4848 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
49 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
50 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
51 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
52 $(top_srcdir)/m4/lt~obsolete.m4 \
49 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/introspection.m4 \
50 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/linker.m4 \
51 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
52 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
5353 $(top_srcdir)/m4/tp-compiler-flag.m4 \
5454 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
5555 $(top_srcdir)/configure.ac
151151 INSTALL_PROGRAM = @INSTALL_PROGRAM@
152152 INSTALL_SCRIPT = @INSTALL_SCRIPT@
153153 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
154 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
155 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
156 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
157 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
158 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
154159 LD = @LD@
155160 LDFLAGS = @LDFLAGS@
156161 LIBOBJS = @LIBOBJS@
3636 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
3737 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
3838 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
39 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
40 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
41 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
42 $(top_srcdir)/m4/lt~obsolete.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 \
4343 $(top_srcdir)/m4/tp-compiler-flag.m4 \
4444 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
4545 $(top_srcdir)/configure.ac
144144 INSTALL_PROGRAM = @INSTALL_PROGRAM@
145145 INSTALL_SCRIPT = @INSTALL_SCRIPT@
146146 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
147 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
148 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
149 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
150 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
151 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
147152 LD = @LD@
148153 LDFLAGS = @LDFLAGS@
149154 LIBOBJS = @LIBOBJS@
4343 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
4444 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
4545 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
46 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
47 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
48 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
49 $(top_srcdir)/m4/lt~obsolete.m4 \
46 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/introspection.m4 \
47 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/linker.m4 \
48 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
49 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
5050 $(top_srcdir)/m4/tp-compiler-flag.m4 \
5151 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
5252 $(top_srcdir)/configure.ac
177177 INSTALL_PROGRAM = @INSTALL_PROGRAM@
178178 INSTALL_SCRIPT = @INSTALL_SCRIPT@
179179 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
180 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
181 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
182 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
183 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
184 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
180185 LD = @LD@
181186 LDFLAGS = @LDFLAGS@
182187 LIBOBJS = @LIBOBJS@
4141 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
4242 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
4343 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
44 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
45 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
46 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
47 $(top_srcdir)/m4/lt~obsolete.m4 \
44 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/introspection.m4 \
45 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/linker.m4 \
46 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
47 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
4848 $(top_srcdir)/m4/tp-compiler-flag.m4 \
4949 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
5050 $(top_srcdir)/configure.ac
148148 INSTALL_PROGRAM = @INSTALL_PROGRAM@
149149 INSTALL_SCRIPT = @INSTALL_SCRIPT@
150150 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
151 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
152 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
153 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
154 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
155 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
151156 LD = @LD@
152157 LDFLAGS = @LDFLAGS@
153158 LIBOBJS = @LIBOBJS@
3636 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
3737 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
3838 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
39 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
40 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
41 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
42 $(top_srcdir)/m4/lt~obsolete.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 \
4343 $(top_srcdir)/m4/tp-compiler-flag.m4 \
4444 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
4545 $(top_srcdir)/configure.ac
104104 INSTALL_PROGRAM = @INSTALL_PROGRAM@
105105 INSTALL_SCRIPT = @INSTALL_SCRIPT@
106106 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
107 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
108 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
109 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
110 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
111 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
107112 LD = @LD@
108113 LDFLAGS = @LDFLAGS@
109114 LIBOBJS = @LIBOBJS@
0 dnl -*- mode: autoconf -*-
1 dnl Copyright 2009 Johan Dahlin
2 dnl
3 dnl This file is free software; the author(s) gives unlimited
4 dnl permission to copy and/or distribute it, with or without
5 dnl modifications, as long as this notice is preserved.
6 dnl
7
8 # serial 1
9
10 m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
11 [
12 AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
13 AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
14 AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
15
16 dnl enable/disable introspection
17 m4_if([$2], [require],
18 [dnl
19 enable_introspection=yes
20 ],[dnl
21 AC_ARG_ENABLE(introspection,
22 AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
23 [Enable introspection for this build]),,
24 [enable_introspection=auto])
25 ])dnl
26
27 AC_MSG_CHECKING([for gobject-introspection])
28
29 dnl presence/version checking
30 AS_CASE([$enable_introspection],
31 [no], [dnl
32 found_introspection="no (disabled, use --enable-introspection to enable)"
33 ],dnl
34 [yes],[dnl
35 PKG_CHECK_EXISTS([gobject-introspection-1.0],,
36 AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
37 PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1],
38 found_introspection=yes,
39 AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
40 ],dnl
41 [auto],[dnl
42 PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
43 ],dnl
44 [dnl
45 AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
46 ])dnl
47
48 AC_MSG_RESULT([$found_introspection])
49
50 INTROSPECTION_SCANNER=
51 INTROSPECTION_COMPILER=
52 INTROSPECTION_GENERATE=
53 INTROSPECTION_GIRDIR=
54 INTROSPECTION_TYPELIBDIR=
55 if test "x$found_introspection" = "xyes"; then
56 INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
57 INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
58 INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
59 INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
60 INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
61 fi
62 AC_SUBST(INTROSPECTION_SCANNER)
63 AC_SUBST(INTROSPECTION_COMPILER)
64 AC_SUBST(INTROSPECTION_GENERATE)
65 AC_SUBST(INTROSPECTION_GIRDIR)
66 AC_SUBST(INTROSPECTION_TYPELIBDIR)
67
68 AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
69 ])
70
71
72 dnl Usage:
73 dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version])
74
75 AC_DEFUN([GOBJECT_INTROSPECTION_CHECK],
76 [
77 _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1])
78 ])
79
80 dnl Usage:
81 dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version])
82
83
84 AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE],
85 [
86 _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])
87 ])
3636 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
3737 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
3838 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
39 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
40 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
41 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
42 $(top_srcdir)/m4/lt~obsolete.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 \
4343 $(top_srcdir)/m4/tp-compiler-flag.m4 \
4444 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
4545 $(top_srcdir)/configure.ac
104104 INSTALL_PROGRAM = @INSTALL_PROGRAM@
105105 INSTALL_SCRIPT = @INSTALL_SCRIPT@
106106 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
107 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
108 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
109 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
110 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
111 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
107112 LD = @LD@
108113 LDFLAGS = @LDFLAGS@
109114 LIBOBJS = @LIBOBJS@
55 pkgconfigdir = ${libdir}/pkgconfig
66 pkgconfig_DATA = telepathy-glib.pc
77
8 ABI_LISTS = \
9 versions/0.7.0.abi \
10 versions/0.7.1.abi \
11 versions/0.7.2.abi \
12 versions/0.7.3.abi \
13 versions/0.7.5.abi \
14 versions/0.7.6.abi \
15 versions/0.7.7.abi \
16 versions/0.7.8.abi \
17 versions/0.7.9.abi \
18 versions/0.7.10.abi \
19 versions/0.7.12.abi \
20 versions/0.7.13.abi \
21 versions/0.7.14.abi \
22 versions/0.7.15.abi \
23 versions/0.7.16.abi \
24 versions/0.7.17.abi \
25 versions/0.7.18.abi \
26 versions/0.7.19.abi \
27 versions/0.7.20.abi \
28 versions/0.7.21.abi \
29 versions/0.7.23.abi \
30 versions/0.7.24.abi \
31 versions/0.7.26.abi \
32 versions/0.7.27.abi \
33 versions/0.7.28.abi \
34 versions/0.7.29.abi \
35 versions/0.7.30.abi \
36 versions/0.7.31.abi \
37 versions/0.7.32.abi \
38 versions/0.7.34.abi \
39 versions/0.7.35.abi \
40 versions/0.7.36.abi \
41 versions/0.7.37.abi \
42 versions/0.9.0.abi \
43 versions/0.9.2.abi \
44 versions/0.11.0.abi \
45 versions/0.11.1.abi \
46 versions/0.11.3.abi
47
488 EXTRA_DIST = \
499 $(ABI_LISTS) \
50 account.xml \
51 account-manager.xml \
52 channel.xml \
53 channel-dispatcher.xml \
54 channel-dispatch-operation.xml \
55 channel-request.xml \
56 client.xml \
57 debug.xml \
58 connection.xml \
59 connection-manager.xml \
60 dbus-daemon.xml \
61 dbus-introspectable.xml \
62 dbus-peer.xml \
63 dbus-properties.xml \
64 extra-gtkdoc.h \
65 generic.xml \
66 media-session-handler.xml \
67 media-stream-handler.xml \
68 stable-interfaces.xml
10 $(codegen_extra_dist) \
11 $(introspection_extra_dist) \
12 extra-gtkdoc.h
13
14 # libtelepathy-glib is just a shared version of libtelepathy-glib-internal,
15 # produced by abi.am.
16 #
17 # The static version is necessary because one of the tests wants to use
18 # internal symbols (_tp_debug) which are made invisible by GNU ld.
6919
7020 lib_LTLIBRARIES = libtelepathy-glib.la
7121 noinst_LTLIBRARIES = libtelepathy-glib-internal.la
72
73 # libtelepathy-glib is just a shared version of libtelepathy-glib-internal.
74 # The static version is necessary because one of the tests wants to use
75 # internal symbols (_tp_debug) which are made invisible by GNU ld.
76
77 # The quoting here is unnecessary but harmless, and has the useful side-effect
78 # that vim quickfix mode (:make) doesn't interpret the libtool --mode=link
79 # command as an error message in a bizarrely named file
80 libtelepathy_glib_la_LDFLAGS = \
81 -version-info "$(LT_CURRENT)":"$(LT_REVISION)":"$(LT_AGE)"
82 libtelepathy_glib_la_LIBADD = libtelepathy-glib-internal.la
83 nodist_libtelepathy_glib_la_SOURCES =
84 libtelepathy_glib_la_DEPENDENCIES = libtelepathy-glib-internal.la Makefile.am
85
86 if HAVE_LD_VERSION_SCRIPT
87 nodist_libtelepathy_glib_la_SOURCES += _gen/version-script.txt
88 libtelepathy_glib_la_DEPENDENCIES += _gen/version-script.txt _gen/abi.txt
89
90 if OFFICIAL_RELEASE
91 # don't allow undocumented ABI
92 MAKE_VERSION_SCRIPT_FLAGS =
93 else
94 # allow new ABI, and silently put it in a dummy version (which can be used to
95 # check whether binaries have been linked against unguaranteed ABI)
96 MAKE_VERSION_SCRIPT_FLAGS = \
97 --unreleased-version=TELEPATHY_GLIB_@VERSION@_UNRELEASED
98 endif
99
100 _gen/version-script.txt: $(ABI_LISTS) _gen/abi.txt Makefile.am \
101 $(top_srcdir)/tools/make-version-script.py
102 $(AM_V_GEN)$(PYTHON) $(top_srcdir)/tools/make-version-script.py \
103 --symbols=_gen/abi.txt $(MAKE_VERSION_SCRIPT_FLAGS) \
104 $(ABI_LISTS:%=$(srcdir)/%) > $@
105 $(PYTHON) $(top_srcdir)/tools/make-version-script.py \
106 --symbols=_gen/abi.txt $(MAKE_VERSION_SCRIPT_FLAGS) \
107 --dpkg "libtelepathy-glib.so.0 libtelepathy-glib0 #MINVER#" \
108 --dpkg-build-depends-package "libtelepathy-glib-dev" \
109 $(ABI_LISTS:%=$(srcdir)/%) > _gen/libtelepathy-glib0.symbols
110 sed -n -e "s/^[ ]*\\(tp_.*\\);/\\1/p" < $@ > _gen/versioned-abi.tmp
111 sort -u < _gen/versioned-abi.tmp > _gen/versioned-abi.txt
112 : # the versioned API should always match the ^tp API
113 diff -c _gen/versioned-abi.txt _gen/abi.txt
114
115 _gen/abi.txt: libtelepathy-glib-internal.la Makefile.am
116 $(NM) .libs/libtelepathy-glib-internal.a > _gen/abi.nm
117 grep " [DT] " < _gen/abi.nm > _gen/abi.funcs
118 cut -d" " -f3 < _gen/abi.funcs > _gen/abi.funcnames
119 grep "^tp" < _gen/abi.funcnames > _gen/abi.tpfuncnames
120 $(AM_V_GEN)sort -u < _gen/abi.tpfuncnames > $@
121
122 libtelepathy_glib_la_LDFLAGS += \
123 $(VERSION_SCRIPT_ARG)=_gen/version-script.txt
124
125 else # !HAVE_LD_VERSION_SCRIPT
126
127 libtelepathy_glib_la_LDFLAGS += -export-symbols-regex '^tp'
128
129 endif # !HAVE_LD_VERSION_SCRIPT
13022
13123 # headers that are subject to coding-style checks
13224 our_headers = \
19587 $(our_headers) \
19688 verify.h
19789
198 nodist_libtelepathy_glib_internal_la_SOURCES = \
199 _gen/error-str.c \
200 _gen/signals-marshal.c \
201 _gen/signals-marshal.h \
202 _gen/signals-marshal.list \
203 _gen/tp-signals-marshal.list \
204 _gen/interfaces-body.h \
205 _gen/gtypes-body.h \
206 _gen/register-dbus-glib-marshallers-body.h \
207 _gen/tp-cli-account-body.h \
208 _gen/tp-cli-account-manager-body.h \
209 _gen/tp-cli-channel-body.h \
210 _gen/tp-cli-channel-dispatcher-body.h \
211 _gen/tp-cli-channel-dispatch-operation-body.h \
212 _gen/tp-cli-channel-request-body.h \
213 _gen/tp-cli-client-body.h \
214 _gen/tp-cli-connection-body.h \
215 _gen/tp-cli-connection-manager-body.h \
216 _gen/tp-cli-dbus-daemon-body.h \
217 _gen/tp-cli-generic-body.h \
218 _gen/tp-cli-media-session-handler-body.h \
219 _gen/tp-cli-media-stream-handler-body.h \
220 _gen/tp-svc-account.c \
221 _gen/tp-svc-account-manager.c \
222 _gen/tp-svc-channel.c \
223 _gen/tp-svc-channel-dispatcher.c \
224 _gen/tp-svc-channel-dispatch-operation.c \
225 _gen/tp-svc-channel-request.c \
226 _gen/tp-svc-client.c \
227 _gen/tp-svc-connection.c \
228 _gen/tp-svc-connection-manager.c \
229 _gen/tp-svc-debug.c \
230 _gen/tp-svc-generic.c \
231 _gen/tp-svc-media-session-handler.c \
232 _gen/tp-svc-media-stream-handler.c
233
234 nodist_geninclude_HEADERS = \
235 _gen/error-str.h \
236 _gen/telepathy-enums.h \
237 _gen/telepathy-interfaces.h \
238 _gen/gtypes.h \
239 _gen/tp-cli-account.h \
240 _gen/tp-cli-account-manager.h \
241 _gen/tp-cli-channel.h \
242 _gen/tp-cli-channel-dispatcher.h \
243 _gen/tp-cli-channel-dispatch-operation.h \
244 _gen/tp-cli-channel-request.h \
245 _gen/tp-cli-client.h \
246 _gen/tp-cli-connection.h \
247 _gen/tp-cli-connection-manager.h \
248 _gen/tp-cli-dbus-daemon.h \
249 _gen/tp-cli-generic.h \
250 _gen/tp-cli-media-session-handler.h \
251 _gen/tp-cli-media-stream-handler.h \
252 _gen/tp-svc-account.h \
253 _gen/tp-svc-account-manager.h \
254 _gen/tp-svc-channel.h \
255 _gen/tp-svc-channel-dispatcher.h \
256 _gen/tp-svc-channel-dispatch-operation.h \
257 _gen/tp-svc-channel-request.h \
258 _gen/tp-svc-client.h \
259 _gen/tp-svc-connection.h \
260 _gen/tp-svc-connection-manager.h \
261 _gen/tp-svc-debug.h \
262 _gen/tp-svc-generic.h \
263 _gen/tp-svc-media-session-handler.h \
264 _gen/tp-svc-media-stream-handler.h
265
266 BUILT_SOURCES = \
267 $(nodist_libtelepathy_glib_internal_la_SOURCES) \
268 $(nodist_geninclude_HEADERS) \
269 _gen/stable-spec.xml \
270 _gen/spec-stamp \
271 _gen/stable-stamp
90 BUILT_SOURCES = $(codegen_sources)
27291
27392 CLEANFILES = \
27493 $(BUILT_SOURCES)
357176 @DBUS_LIBS@ \
358177 @GLIB_LIBS@
359178
360 # Generated stuff
361
362 DROP_NAMESPACE = sed -e 's@xmlns:tp="http://telepathy\.freedesktop\.org/wiki/DbusSpec.extensions-v0"@@g'
363 tools_dir = $(top_srcdir)/tools
364
365 # Bootstrapping
366
367 _gen/spec-stamp: $(wildcard $(top_srcdir)/spec/*.xml)
368 $(mkdir_p) _gen
369 touch $@
370
371 _gen/stable-stamp: $(wildcard *.xml) _gen/spec-stamp
372 touch $@
373
374 _gen/stable-spec.xml: stable-interfaces.xml _gen/stable-stamp $(tools_dir)/xincludator.py
375 $(AM_V_GEN)$(PYTHON) $(tools_dir)/xincludator.py $< > $@
376
377 # Things generated from the whole spec at once
378
379 _gen/gtypes.h _gen/gtypes-body.h: _gen/stable-spec.xml \
380 $(tools_dir)/glib-gtypes-generator.py
381 $(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-gtypes-generator.py \
382 _gen/stable-spec.xml \
383 _gen/gtypes Tp
384
385 _gen/telepathy-enums.h: _gen/stable-spec.xml \
386 $(tools_dir)/c-constants-gen.py
387 $(AM_V_GEN)$(PYTHON) $(tools_dir)/c-constants-gen.py \
388 Tp \
389 $< > $@
390
391 _gen/interfaces-body.h _gen/telepathy-interfaces.h: _gen/stable-spec.xml \
392 $(tools_dir)/glib-interfaces-gen.py
393 $(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-interfaces-gen.py \
394 Tp _gen/interfaces-body.h _gen/telepathy-interfaces.h $<
395
396 _gen/register-dbus-glib-marshallers-body.h: _gen/stable-spec.xml \
397 $(tools_dir)/glib-client-marshaller-gen.py
398 $(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-client-marshaller-gen.py $< _tp > $@
399
400 _gen/tp-signals-marshal.list: $(tools_dir)/glib-signals-marshal-gen.py \
401 _gen/stable-spec.xml
402 $(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-signals-marshal-gen.py \
403 _gen/stable-spec.xml > $@
404
405 _gen/signals-marshal.list: signals-marshal.list _gen/tp-signals-marshal.list
406 $(AM_V_GEN)sort -u $^ > $@
407
408 _gen/signals-marshal.h: _gen/signals-marshal.list Makefile.am
409 $(AM_V_GEN)$(GLIB_GENMARSHAL) --header --prefix=_tp_marshal $< > $@
410
411 _gen/signals-marshal.c: _gen/signals-marshal.list Makefile.am
412 $(AM_V_GEN){ echo '#include "_gen/signals-marshal.h"' && \
413 $(GLIB_GENMARSHAL) --body --prefix=_tp_marshal $< ; } > $@
414
415 _gen/error-str.h _gen/error-str.c: _gen/stable-spec.xml \
416 $(tools_dir)/glib-errors-str-gen.py
417 $(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-errors-str-gen.py \
418 _gen/error-str $<
419
420 # Things generated per interface
421
422 _gen/tp-spec-%.xml: %.xml _gen/spec-stamp $(tools_dir)/xincludator.py
423 $(AM_V_GEN)$(PYTHON) $(tools_dir)/xincludator.py $< > $@
424
425 _gen/tp-svc-%.c _gen/tp-svc-%.h: _gen/tp-spec-%.xml \
426 $(tools_dir)/glib-ginterface-gen.py \
427 Makefile.am
428 $(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-ginterface-gen.py \
429 --filename=_gen/tp-svc-$* \
430 --signal-marshal-prefix=_tp \
431 --include='<telepathy-glib/dbus.h>' \
432 --include="\"_gen/signals-marshal.h\"" \
433 --not-implemented-func='tp_dbus_g_method_return_not_implemented' \
434 $< Tp_Svc_
435
436 _gen/tp-cli-%-body.h _gen/tp-cli-%.h: _gen/tp-spec-%.xml \
437 $(tools_dir)/glib-client-gen.py \
438 Makefile.am
439 $(AM_V_GEN)set -e; \
440 subclass= ; \
441 subclass_assert= ; \
442 case $* in \
443 generic) \
444 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
445 ;; \
446 account-manager) \
447 subclass=--subclass=TpAccountManager; \
448 subclass_assert=--subclass-assert=TP_IS_ACCOUNT_MANAGER; \
449 ;; \
450 account) \
451 subclass=--subclass=TpAccount; \
452 subclass_assert=--subclass-assert=TP_IS_ACCOUNT; \
453 ;; \
454 channel) \
455 subclass=--subclass=TpChannel; \
456 subclass_assert=--subclass-assert=TP_IS_CHANNEL; \
457 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
458 ;; \
459 channel-dispatcher) \
460 subclass=--subclass=TpChannelDispatcher; \
461 subclass_assert=--subclass-assert=TP_IS_CHANNEL_DISPATCHER; \
462 ;; \
463 channel-dispatch-operation) \
464 subclass=--subclass=TpChannelDispatchOperation; \
465 subclass_assert=--subclass-assert=TP_IS_CHANNEL_DISPATCH_OPERATION; \
466 ;; \
467 channel-request) \
468 subclass=--subclass=TpChannelRequest; \
469 subclass_assert=--subclass-assert=TP_IS_CHANNEL_REQUEST; \
470 ;; \
471 client) \
472 subclass=--subclass=TpClient; \
473 subclass_assert=--subclass-assert=TP_IS_CLIENT; \
474 ;; \
475 connection-manager) \
476 subclass=--subclass=TpConnectionManager; \
477 subclass_assert=--subclass-assert=TP_IS_CONNECTION_MANAGER \
478 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
479 ;; \
480 connection) \
481 subclass=--subclass=TpConnection; \
482 subclass_assert=--subclass-assert=TP_IS_CONNECTION; \
483 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
484 ;; \
485 media-session-handler) \
486 subclass=--subclass=TpMediaSessionHandler; \
487 subclass_assert=--subclass-assert=TP_IS_MEDIA_SESSION_HANDLER; \
488 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
489 ;; \
490 media-stream-handler) \
491 subclass=--subclass=TpMediaStreamHandler; \
492 subclass_assert=--subclass-assert=TP_IS_MEDIA_STREAM_HANDLER; \
493 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
494 ;; \
495 dbus-daemon) \
496 subclass=--subclass=TpDBusDaemon; \
497 subclass_assert=--subclass-assert=TP_IS_DBUS_DAEMON; \
498 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
499 ;; \
500 esac; \
501 $(PYTHON) $(tools_dir)/glib-client-gen.py \
502 $$subclass $$subclass_assert \
503 --group `echo $* | tr - _` \
504 --iface-quark-prefix=TP_IFACE_QUARK \
505 --tp-proxy-api=0.7.6 \
506 --deprecation-attribute=_TP_GNUC_DEPRECATED \
507 $$maybe_reentrant \
508 $< Tp_Cli _gen/tp-cli-$*
179 include abi.am
180 include codegen.am
181 include introspection.am
1313 # PARTICULAR PURPOSE.
1414
1515 @SET_MAKE@
16
17 # To be included by Makefile.am.
18
19 # To be included by Makefile.am.
20
21 # To be included by Makefile.am.
1622
1723
1824
3642 build_triplet = @build@
3743 host_triplet = @host@
3844 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
45 $(srcdir)/abi.am $(srcdir)/codegen.am \
46 $(srcdir)/introspection.am \
3947 $(srcdir)/telepathy-glib-uninstalled.pc.in \
4048 $(srcdir)/telepathy-glib.pc.in \
4149 $(top_srcdir)/tools/check-coding-style.mk \
4654 @HAVE_LD_VERSION_SCRIPT_TRUE@ $(VERSION_SCRIPT_ARG)=_gen/version-script.txt
4755
4856 @HAVE_LD_VERSION_SCRIPT_FALSE@am__append_4 = -export-symbols-regex '^tp'
57 @HAVE_INTROSPECTION_TRUE@am__append_5 = \
58 @HAVE_INTROSPECTION_TRUE@ $(gir_DATA) \
59 @HAVE_INTROSPECTION_TRUE@ $(typelibs_DATA)
60
4961 subdir = telepathy-glib
5062 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
5163 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
52 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
53 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
54 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
55 $(top_srcdir)/m4/lt~obsolete.m4 \
64 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/introspection.m4 \
65 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/linker.m4 \
66 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
67 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
5668 $(top_srcdir)/m4/tp-compiler-flag.m4 \
5769 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
5870 $(top_srcdir)/configure.ac
8395 am__base_list = \
8496 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
8597 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
86 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" \
98 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
99 "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(typelibsdir)" \
87100 "$(DESTDIR)$(genincludedir)" "$(DESTDIR)$(tpgincludedir)"
88101 LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES)
89102 am__DEPENDENCIES_1 =
154167 $(nodist_libtelepathy_glib_internal_la_SOURCES) \
155168 $(nodist_libtelepathy_glib_la_SOURCES)
156169 DIST_SOURCES = $(libtelepathy_glib_internal_la_SOURCES)
157 DATA = $(pkgconfig_DATA)
170 DATA = $(gir_DATA) $(pkgconfig_DATA) $(typelibs_DATA)
158171 HEADERS = $(nodist_geninclude_HEADERS) $(tpginclude_HEADERS)
159172 ETAGS = etags
160173 CTAGS = ctags
205218 INSTALL_PROGRAM = @INSTALL_PROGRAM@
206219 INSTALL_SCRIPT = @INSTALL_SCRIPT@
207220 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
221 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
222 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
223 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
224 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
225 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
208226 LD = @LD@
209227 LDFLAGS = @LDFLAGS@
210228 LIBOBJS = @LIBOBJS@
307325 genincludedir = $(tpgincludedir)/_gen
308326 pkgconfigdir = ${libdir}/pkgconfig
309327 pkgconfig_DATA = telepathy-glib.pc
310 ABI_LISTS = \
311 versions/0.7.0.abi \
312 versions/0.7.1.abi \
313 versions/0.7.2.abi \
314 versions/0.7.3.abi \
315 versions/0.7.5.abi \
316 versions/0.7.6.abi \
317 versions/0.7.7.abi \
318 versions/0.7.8.abi \
319 versions/0.7.9.abi \
320 versions/0.7.10.abi \
321 versions/0.7.12.abi \
322 versions/0.7.13.abi \
323 versions/0.7.14.abi \
324 versions/0.7.15.abi \
325 versions/0.7.16.abi \
326 versions/0.7.17.abi \
327 versions/0.7.18.abi \
328 versions/0.7.19.abi \
329 versions/0.7.20.abi \
330 versions/0.7.21.abi \
331 versions/0.7.23.abi \
332 versions/0.7.24.abi \
333 versions/0.7.26.abi \
334 versions/0.7.27.abi \
335 versions/0.7.28.abi \
336 versions/0.7.29.abi \
337 versions/0.7.30.abi \
338 versions/0.7.31.abi \
339 versions/0.7.32.abi \
340 versions/0.7.34.abi \
341 versions/0.7.35.abi \
342 versions/0.7.36.abi \
343 versions/0.7.37.abi \
344 versions/0.9.0.abi \
345 versions/0.9.2.abi \
346 versions/0.11.0.abi \
347 versions/0.11.1.abi \
348 versions/0.11.3.abi
349
350328 EXTRA_DIST = \
351329 $(ABI_LISTS) \
352 account.xml \
353 account-manager.xml \
354 channel.xml \
355 channel-dispatcher.xml \
356 channel-dispatch-operation.xml \
357 channel-request.xml \
358 client.xml \
359 debug.xml \
360 connection.xml \
361 connection-manager.xml \
362 dbus-daemon.xml \
363 dbus-introspectable.xml \
364 dbus-peer.xml \
365 dbus-properties.xml \
366 extra-gtkdoc.h \
367 generic.xml \
368 media-session-handler.xml \
369 media-stream-handler.xml \
370 stable-interfaces.xml
371
330 $(codegen_extra_dist) \
331 $(introspection_extra_dist) \
332 extra-gtkdoc.h
333
334
335 # libtelepathy-glib is just a shared version of libtelepathy-glib-internal,
336 # produced by abi.am.
337 #
338 # The static version is necessary because one of the tests wants to use
339 # internal symbols (_tp_debug) which are made invisible by GNU ld.
372340 lib_LTLIBRARIES = libtelepathy-glib.la
373341 noinst_LTLIBRARIES = libtelepathy-glib-internal.la
374
375 # libtelepathy-glib is just a shared version of libtelepathy-glib-internal.
376 # The static version is necessary because one of the tests wants to use
377 # internal symbols (_tp_debug) which are made invisible by GNU ld.
378
379 # The quoting here is unnecessary but harmless, and has the useful side-effect
380 # that vim quickfix mode (:make) doesn't interpret the libtool --mode=link
381 # command as an error message in a bizarrely named file
382 libtelepathy_glib_la_LDFLAGS = -version-info \
383 "$(LT_CURRENT)":"$(LT_REVISION)":"$(LT_AGE)" $(am__append_3) \
384 $(am__append_4)
385 libtelepathy_glib_la_LIBADD = libtelepathy-glib-internal.la
386 nodist_libtelepathy_glib_la_SOURCES = $(am__append_1)
387 libtelepathy_glib_la_DEPENDENCIES = libtelepathy-glib-internal.la \
388 Makefile.am $(am__append_2)
389 # allow new ABI, and silently put it in a dummy version (which can be used to
390 # check whether binaries have been linked against unguaranteed ABI)
391 @HAVE_LD_VERSION_SCRIPT_TRUE@@OFFICIAL_RELEASE_FALSE@MAKE_VERSION_SCRIPT_FLAGS = \
392 @HAVE_LD_VERSION_SCRIPT_TRUE@@OFFICIAL_RELEASE_FALSE@ --unreleased-version=TELEPATHY_GLIB_@VERSION@_UNRELEASED
393
394
395 # don't allow undocumented ABI
396 @HAVE_LD_VERSION_SCRIPT_TRUE@@OFFICIAL_RELEASE_TRUE@MAKE_VERSION_SCRIPT_FLAGS =
397342
398343 # headers that are subject to coding-style checks
399344 our_headers = \
462407 $(our_headers) \
463408 verify.h
464409
465 nodist_libtelepathy_glib_internal_la_SOURCES = \
466 _gen/error-str.c \
467 _gen/signals-marshal.c \
468 _gen/signals-marshal.h \
469 _gen/signals-marshal.list \
470 _gen/tp-signals-marshal.list \
471 _gen/interfaces-body.h \
472 _gen/gtypes-body.h \
473 _gen/register-dbus-glib-marshallers-body.h \
474 _gen/tp-cli-account-body.h \
475 _gen/tp-cli-account-manager-body.h \
476 _gen/tp-cli-channel-body.h \
477 _gen/tp-cli-channel-dispatcher-body.h \
478 _gen/tp-cli-channel-dispatch-operation-body.h \
479 _gen/tp-cli-channel-request-body.h \
480 _gen/tp-cli-client-body.h \
481 _gen/tp-cli-connection-body.h \
482 _gen/tp-cli-connection-manager-body.h \
483 _gen/tp-cli-dbus-daemon-body.h \
484 _gen/tp-cli-generic-body.h \
485 _gen/tp-cli-media-session-handler-body.h \
486 _gen/tp-cli-media-stream-handler-body.h \
487 _gen/tp-svc-account.c \
488 _gen/tp-svc-account-manager.c \
489 _gen/tp-svc-channel.c \
490 _gen/tp-svc-channel-dispatcher.c \
491 _gen/tp-svc-channel-dispatch-operation.c \
492 _gen/tp-svc-channel-request.c \
493 _gen/tp-svc-client.c \
494 _gen/tp-svc-connection.c \
495 _gen/tp-svc-connection-manager.c \
496 _gen/tp-svc-debug.c \
497 _gen/tp-svc-generic.c \
498 _gen/tp-svc-media-session-handler.c \
499 _gen/tp-svc-media-stream-handler.c
500
501 nodist_geninclude_HEADERS = \
502 _gen/error-str.h \
503 _gen/telepathy-enums.h \
504 _gen/telepathy-interfaces.h \
505 _gen/gtypes.h \
506 _gen/tp-cli-account.h \
507 _gen/tp-cli-account-manager.h \
508 _gen/tp-cli-channel.h \
509 _gen/tp-cli-channel-dispatcher.h \
510 _gen/tp-cli-channel-dispatch-operation.h \
511 _gen/tp-cli-channel-request.h \
512 _gen/tp-cli-client.h \
513 _gen/tp-cli-connection.h \
514 _gen/tp-cli-connection-manager.h \
515 _gen/tp-cli-dbus-daemon.h \
516 _gen/tp-cli-generic.h \
517 _gen/tp-cli-media-session-handler.h \
518 _gen/tp-cli-media-stream-handler.h \
519 _gen/tp-svc-account.h \
520 _gen/tp-svc-account-manager.h \
521 _gen/tp-svc-channel.h \
522 _gen/tp-svc-channel-dispatcher.h \
523 _gen/tp-svc-channel-dispatch-operation.h \
524 _gen/tp-svc-channel-request.h \
525 _gen/tp-svc-client.h \
526 _gen/tp-svc-connection.h \
527 _gen/tp-svc-connection-manager.h \
528 _gen/tp-svc-debug.h \
529 _gen/tp-svc-generic.h \
530 _gen/tp-svc-media-session-handler.h \
531 _gen/tp-svc-media-stream-handler.h
532
533 BUILT_SOURCES = \
534 $(nodist_libtelepathy_glib_internal_la_SOURCES) \
535 $(nodist_geninclude_HEADERS) \
536 _gen/stable-spec.xml \
537 _gen/spec-stamp \
538 _gen/stable-stamp
539
540 CLEANFILES = \
541 $(BUILT_SOURCES)
542
410 BUILT_SOURCES = $(codegen_sources)
411 CLEANFILES = $(BUILT_SOURCES) $(am__append_5)
543412 check_c_sources = \
544413 $(our_headers) \
545414 $(libtelepathy_glib_internal_la_SOURCES)
618487 @DBUS_LIBS@ \
619488 @GLIB_LIBS@
620489
490 ABI_LISTS = \
491 versions/0.7.0.abi \
492 versions/0.7.1.abi \
493 versions/0.7.2.abi \
494 versions/0.7.3.abi \
495 versions/0.7.5.abi \
496 versions/0.7.6.abi \
497 versions/0.7.7.abi \
498 versions/0.7.8.abi \
499 versions/0.7.9.abi \
500 versions/0.7.10.abi \
501 versions/0.7.12.abi \
502 versions/0.7.13.abi \
503 versions/0.7.14.abi \
504 versions/0.7.15.abi \
505 versions/0.7.16.abi \
506 versions/0.7.17.abi \
507 versions/0.7.18.abi \
508 versions/0.7.19.abi \
509 versions/0.7.20.abi \
510 versions/0.7.21.abi \
511 versions/0.7.23.abi \
512 versions/0.7.24.abi \
513 versions/0.7.26.abi \
514 versions/0.7.27.abi \
515 versions/0.7.28.abi \
516 versions/0.7.29.abi \
517 versions/0.7.30.abi \
518 versions/0.7.31.abi \
519 versions/0.7.32.abi \
520 versions/0.7.34.abi \
521 versions/0.7.35.abi \
522 versions/0.7.36.abi \
523 versions/0.7.37.abi \
524 versions/0.9.0.abi \
525 versions/0.9.2.abi \
526 versions/0.11.0.abi \
527 versions/0.11.1.abi \
528 versions/0.11.3.abi \
529 versions/0.11.4.abi
530
531
532 # The quoting here is unnecessary but harmless, and has the useful side-effect
533 # that vim quickfix mode (:make) doesn't interpret the libtool --mode=link
534 # command as an error message in a bizarrely named file
535 libtelepathy_glib_la_LDFLAGS = -version-info \
536 "$(LT_CURRENT)":"$(LT_REVISION)":"$(LT_AGE)" $(am__append_3) \
537 $(am__append_4)
538 libtelepathy_glib_la_LIBADD = libtelepathy-glib-internal.la
539 nodist_libtelepathy_glib_la_SOURCES = $(am__append_1)
540 libtelepathy_glib_la_DEPENDENCIES = libtelepathy-glib-internal.la \
541 abi.am $(am__append_2)
542 # allow new ABI, and silently put it in a dummy version (which can be used to
543 # check whether binaries have been linked against unguaranteed ABI)
544 @HAVE_LD_VERSION_SCRIPT_TRUE@@OFFICIAL_RELEASE_FALSE@MAKE_VERSION_SCRIPT_FLAGS = \
545 @HAVE_LD_VERSION_SCRIPT_TRUE@@OFFICIAL_RELEASE_FALSE@ --unreleased-version=TELEPATHY_GLIB_@VERSION@_UNRELEASED
546
547
548 # don't allow undocumented ABI
549 @HAVE_LD_VERSION_SCRIPT_TRUE@@OFFICIAL_RELEASE_TRUE@MAKE_VERSION_SCRIPT_FLAGS =
550 codegen_extra_dist = \
551 account.xml \
552 account-manager.xml \
553 channel.xml \
554 channel-dispatcher.xml \
555 channel-dispatch-operation.xml \
556 channel-request.xml \
557 client.xml \
558 debug.xml \
559 connection.xml \
560 connection-manager.xml \
561 dbus-daemon.xml \
562 dbus-introspectable.xml \
563 dbus-peer.xml \
564 dbus-properties.xml \
565 generic.xml \
566 media-session-handler.xml \
567 media-stream-handler.xml \
568 stable-interfaces.xml
569
570 codegen_sources = \
571 $(nodist_libtelepathy_glib_internal_la_SOURCES) \
572 $(nodist_geninclude_HEADERS) \
573 _gen/stable-spec.xml \
574 _gen/spec-stamp \
575 _gen/stable-stamp
576
577 nodist_geninclude_HEADERS = \
578 _gen/error-str.h \
579 _gen/telepathy-enums.h \
580 _gen/telepathy-interfaces.h \
581 _gen/gtypes.h \
582 _gen/tp-cli-account.h \
583 _gen/tp-cli-account-manager.h \
584 _gen/tp-cli-channel.h \
585 _gen/tp-cli-channel-dispatcher.h \
586 _gen/tp-cli-channel-dispatch-operation.h \
587 _gen/tp-cli-channel-request.h \
588 _gen/tp-cli-client.h \
589 _gen/tp-cli-connection.h \
590 _gen/tp-cli-connection-manager.h \
591 _gen/tp-cli-dbus-daemon.h \
592 _gen/tp-cli-generic.h \
593 _gen/tp-cli-media-session-handler.h \
594 _gen/tp-cli-media-stream-handler.h \
595 _gen/tp-svc-account.h \
596 _gen/tp-svc-account-manager.h \
597 _gen/tp-svc-channel.h \
598 _gen/tp-svc-channel-dispatcher.h \
599 _gen/tp-svc-channel-dispatch-operation.h \
600 _gen/tp-svc-channel-request.h \
601 _gen/tp-svc-client.h \
602 _gen/tp-svc-connection.h \
603 _gen/tp-svc-connection-manager.h \
604 _gen/tp-svc-debug.h \
605 _gen/tp-svc-generic.h \
606 _gen/tp-svc-media-session-handler.h \
607 _gen/tp-svc-media-stream-handler.h
608
609 nodist_libtelepathy_glib_internal_la_SOURCES = \
610 _gen/error-str.c \
611 _gen/signals-marshal.c \
612 _gen/signals-marshal.h \
613 _gen/signals-marshal.list \
614 _gen/tp-signals-marshal.list \
615 _gen/interfaces-body.h \
616 _gen/gtypes-body.h \
617 _gen/register-dbus-glib-marshallers-body.h \
618 _gen/tp-cli-account-body.h \
619 _gen/tp-cli-account-manager-body.h \
620 _gen/tp-cli-channel-body.h \
621 _gen/tp-cli-channel-dispatcher-body.h \
622 _gen/tp-cli-channel-dispatch-operation-body.h \
623 _gen/tp-cli-channel-request-body.h \
624 _gen/tp-cli-client-body.h \
625 _gen/tp-cli-connection-body.h \
626 _gen/tp-cli-connection-manager-body.h \
627 _gen/tp-cli-dbus-daemon-body.h \
628 _gen/tp-cli-generic-body.h \
629 _gen/tp-cli-media-session-handler-body.h \
630 _gen/tp-cli-media-stream-handler-body.h \
631 _gen/tp-svc-account.c \
632 _gen/tp-svc-account-manager.c \
633 _gen/tp-svc-channel.c \
634 _gen/tp-svc-channel-dispatcher.c \
635 _gen/tp-svc-channel-dispatch-operation.c \
636 _gen/tp-svc-channel-request.c \
637 _gen/tp-svc-client.c \
638 _gen/tp-svc-connection.c \
639 _gen/tp-svc-connection-manager.c \
640 _gen/tp-svc-debug.c \
641 _gen/tp-svc-generic.c \
642 _gen/tp-svc-media-session-handler.c \
643 _gen/tp-svc-media-stream-handler.c
644
621645
622646 # Generated stuff
623647 DROP_NAMESPACE = sed -e 's@xmlns:tp="http://telepathy\.freedesktop\.org/wiki/DbusSpec.extensions-v0"@@g'
624648 tools_dir = $(top_srcdir)/tools
649 introspection_extra_dist = kludge-616375.xsl
650 @HAVE_INTROSPECTION_TRUE@INTROSPECTION_FILES = \
651 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/proxy.c _gen/proxy-introspectable.h \
652 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/account.c $(srcdir)/account.h \
653 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/account-manager.c $(srcdir)/account-manager.h \
654 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/connection.c $(srcdir)/connection.h \
655 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/connection-handles.c \
656 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/connection-manager.c $(srcdir)/connection-manager.h \
657 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/channel.c $(srcdir)/channel.h \
658 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/handle.c $(srcdir)/handle.h \
659 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/dbus-daemon.c $(srcdir)/dbus-daemon.h \
660 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/interfaces.c $(srcdir)/interfaces.h \
661 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/intset.c $(srcdir)/intset.h \
662 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/dbus.c $(srcdir)/dbus.h \
663 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/capabilities.c $(srcdir)/capabilities.h \
664 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/contact.c $(srcdir)/contact.h \
665 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/defs.h \
666 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/debug.c $(srcdir)/debug.h \
667 @HAVE_INTROSPECTION_TRUE@ _gen/telepathy-enums.h \
668 @HAVE_INTROSPECTION_TRUE@ _gen/telepathy-interfaces.h
669
670 @HAVE_INTROSPECTION_TRUE@girdir = $(datadir)/gir-1.0
671 @HAVE_INTROSPECTION_TRUE@gir_DATA = TelepathyGLib-0.12.gir
672 @HAVE_INTROSPECTION_TRUE@typelibsdir = $(libdir)/girepository-1.0/
673 @HAVE_INTROSPECTION_TRUE@typelibs_DATA = $(gir_DATA:.gir=.typelib)
625674 all: $(BUILT_SOURCES)
626675 $(MAKE) $(AM_MAKEFLAGS) all-am
627676
628677 .SUFFIXES:
629678 .SUFFIXES: .c .lo .o .obj
630 $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/tools/flymake.mk $(top_srcdir)/tools/check-coding-style.mk $(am__configure_deps)
679 $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/tools/flymake.mk $(top_srcdir)/tools/check-coding-style.mk $(srcdir)/abi.am $(srcdir)/codegen.am $(srcdir)/introspection.am $(am__configure_deps)
631680 @for dep in $?; do \
632681 case '$(am__configure_deps)' in \
633682 *$$dep*) \
924973
925974 clean-libtool:
926975 -rm -rf .libs _libs
976 install-girDATA: $(gir_DATA)
977 @$(NORMAL_INSTALL)
978 test -z "$(girdir)" || $(MKDIR_P) "$(DESTDIR)$(girdir)"
979 @list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
980 for p in $$list; do \
981 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
982 echo "$$d$$p"; \
983 done | $(am__base_list) | \
984 while read files; do \
985 echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(girdir)'"; \
986 $(INSTALL_DATA) $$files "$(DESTDIR)$(girdir)" || exit $$?; \
987 done
988
989 uninstall-girDATA:
990 @$(NORMAL_UNINSTALL)
991 @list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
992 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
993 test -n "$$files" || exit 0; \
994 echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
995 cd "$(DESTDIR)$(girdir)" && rm -f $$files
927996 install-pkgconfigDATA: $(pkgconfig_DATA)
928997 @$(NORMAL_INSTALL)
929998 test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
9441013 test -n "$$files" || exit 0; \
9451014 echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \
9461015 cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files
1016 install-typelibsDATA: $(typelibs_DATA)
1017 @$(NORMAL_INSTALL)
1018 test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
1019 @list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
1020 for p in $$list; do \
1021 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
1022 echo "$$d$$p"; \
1023 done | $(am__base_list) | \
1024 while read files; do \
1025 echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(typelibsdir)'"; \
1026 $(INSTALL_DATA) $$files "$(DESTDIR)$(typelibsdir)" || exit $$?; \
1027 done
1028
1029 uninstall-typelibsDATA:
1030 @$(NORMAL_UNINSTALL)
1031 @list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
1032 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
1033 test -n "$$files" || exit 0; \
1034 echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
1035 cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
9471036 install-nodist_genincludeHEADERS: $(nodist_geninclude_HEADERS)
9481037 @$(NORMAL_INSTALL)
9491038 test -z "$(genincludedir)" || $(MKDIR_P) "$(DESTDIR)$(genincludedir)"
10731162 $(MAKE) $(AM_MAKEFLAGS) check-am
10741163 all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
10751164 installdirs:
1076 for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(genincludedir)" "$(DESTDIR)$(tpgincludedir)"; do \
1165 for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(genincludedir)" "$(DESTDIR)$(tpgincludedir)"; do \
10771166 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
10781167 done
10791168 install: $(BUILT_SOURCES)
11271216
11281217 info-am:
11291218
1130 install-data-am: install-nodist_genincludeHEADERS \
1131 install-pkgconfigDATA install-tpgincludeHEADERS
1219 install-data-am: install-girDATA install-nodist_genincludeHEADERS \
1220 install-pkgconfigDATA install-tpgincludeHEADERS \
1221 install-typelibsDATA
11321222
11331223 install-dvi: install-dvi-am
11341224
11741264
11751265 ps-am:
11761266
1177 uninstall-am: uninstall-libLTLIBRARIES \
1267 uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
11781268 uninstall-nodist_genincludeHEADERS uninstall-pkgconfigDATA \
1179 uninstall-tpgincludeHEADERS
1269 uninstall-tpgincludeHEADERS uninstall-typelibsDATA
11801270
11811271 .MAKE: all check check-am install install-am install-strip
11821272
11861276 distclean-generic distclean-libtool distclean-local \
11871277 distclean-tags distdir dvi dvi-am html html-am info info-am \
11881278 install install-am install-data install-data-am install-dvi \
1189 install-dvi-am install-exec install-exec-am install-html \
1190 install-html-am install-info install-info-am \
1279 install-dvi-am install-exec install-exec-am install-girDATA \
1280 install-html install-html-am install-info install-info-am \
11911281 install-libLTLIBRARIES install-man \
11921282 install-nodist_genincludeHEADERS install-pdf install-pdf-am \
11931283 install-pkgconfigDATA install-ps install-ps-am install-strip \
1194 install-tpgincludeHEADERS installcheck installcheck-am \
1195 installdirs maintainer-clean maintainer-clean-generic \
1196 mostlyclean mostlyclean-compile mostlyclean-generic \
1197 mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
1198 uninstall-am uninstall-libLTLIBRARIES \
1199 uninstall-nodist_genincludeHEADERS uninstall-pkgconfigDATA \
1200 uninstall-tpgincludeHEADERS
1284 install-tpgincludeHEADERS install-typelibsDATA installcheck \
1285 installcheck-am installdirs maintainer-clean \
1286 maintainer-clean-generic mostlyclean mostlyclean-compile \
1287 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
1288 tags uninstall uninstall-am uninstall-girDATA \
1289 uninstall-libLTLIBRARIES uninstall-nodist_genincludeHEADERS \
1290 uninstall-pkgconfigDATA uninstall-tpgincludeHEADERS \
1291 uninstall-typelibsDATA
12011292
12021293 check-syntax:
12031294 $(CC) $(AM_CPPFLAGS) $(AM_CFLAGS) -fsyntax-only $(CHK_SOURCES)
12041295
12051296 .PHONY: check-syntax
1206
1207 @HAVE_LD_VERSION_SCRIPT_TRUE@_gen/version-script.txt: $(ABI_LISTS) _gen/abi.txt Makefile.am \
1208 @HAVE_LD_VERSION_SCRIPT_TRUE@ $(top_srcdir)/tools/make-version-script.py
1209 @HAVE_LD_VERSION_SCRIPT_TRUE@ $(AM_V_GEN)$(PYTHON) $(top_srcdir)/tools/make-version-script.py \
1210 @HAVE_LD_VERSION_SCRIPT_TRUE@ --symbols=_gen/abi.txt $(MAKE_VERSION_SCRIPT_FLAGS) \
1211 @HAVE_LD_VERSION_SCRIPT_TRUE@ $(ABI_LISTS:%=$(srcdir)/%) > $@
1212 @HAVE_LD_VERSION_SCRIPT_TRUE@ $(PYTHON) $(top_srcdir)/tools/make-version-script.py \
1213 @HAVE_LD_VERSION_SCRIPT_TRUE@ --symbols=_gen/abi.txt $(MAKE_VERSION_SCRIPT_FLAGS) \
1214 @HAVE_LD_VERSION_SCRIPT_TRUE@ --dpkg "libtelepathy-glib.so.0 libtelepathy-glib0 #MINVER#" \
1215 @HAVE_LD_VERSION_SCRIPT_TRUE@ --dpkg-build-depends-package "libtelepathy-glib-dev" \
1216 @HAVE_LD_VERSION_SCRIPT_TRUE@ $(ABI_LISTS:%=$(srcdir)/%) > _gen/libtelepathy-glib0.symbols
1217 @HAVE_LD_VERSION_SCRIPT_TRUE@ sed -n -e "s/^[ ]*\\(tp_.*\\);/\\1/p" < $@ > _gen/versioned-abi.tmp
1218 @HAVE_LD_VERSION_SCRIPT_TRUE@ sort -u < _gen/versioned-abi.tmp > _gen/versioned-abi.txt
1219 @HAVE_LD_VERSION_SCRIPT_TRUE@ : # the versioned API should always match the ^tp API
1220 @HAVE_LD_VERSION_SCRIPT_TRUE@ diff -c _gen/versioned-abi.txt _gen/abi.txt
1221
1222 @HAVE_LD_VERSION_SCRIPT_TRUE@_gen/abi.txt: libtelepathy-glib-internal.la Makefile.am
1223 @HAVE_LD_VERSION_SCRIPT_TRUE@ $(NM) .libs/libtelepathy-glib-internal.a > _gen/abi.nm
1224 @HAVE_LD_VERSION_SCRIPT_TRUE@ grep " [DT] " < _gen/abi.nm > _gen/abi.funcs
1225 @HAVE_LD_VERSION_SCRIPT_TRUE@ cut -d" " -f3 < _gen/abi.funcs > _gen/abi.funcnames
1226 @HAVE_LD_VERSION_SCRIPT_TRUE@ grep "^tp" < _gen/abi.funcnames > _gen/abi.tpfuncnames
1227 @HAVE_LD_VERSION_SCRIPT_TRUE@ $(AM_V_GEN)sort -u < _gen/abi.tpfuncnames > $@
12281297
12291298 distclean-local:
12301299 rm -rf _gen
12481317
12491318 check-local: check-coding-style
12501319
1320 @HAVE_LD_VERSION_SCRIPT_TRUE@_gen/version-script.txt: $(ABI_LISTS) _gen/abi.txt abi.am \
1321 @HAVE_LD_VERSION_SCRIPT_TRUE@ $(top_srcdir)/tools/make-version-script.py
1322 @HAVE_LD_VERSION_SCRIPT_TRUE@ $(AM_V_GEN)$(PYTHON) $(top_srcdir)/tools/make-version-script.py \
1323 @HAVE_LD_VERSION_SCRIPT_TRUE@ --symbols=_gen/abi.txt $(MAKE_VERSION_SCRIPT_FLAGS) \
1324 @HAVE_LD_VERSION_SCRIPT_TRUE@ $(ABI_LISTS:%=$(srcdir)/%) > $@
1325 @HAVE_LD_VERSION_SCRIPT_TRUE@ $(PYTHON) $(top_srcdir)/tools/make-version-script.py \
1326 @HAVE_LD_VERSION_SCRIPT_TRUE@ --symbols=_gen/abi.txt $(MAKE_VERSION_SCRIPT_FLAGS) \
1327 @HAVE_LD_VERSION_SCRIPT_TRUE@ --dpkg "libtelepathy-glib.so.0 libtelepathy-glib0 #MINVER#" \
1328 @HAVE_LD_VERSION_SCRIPT_TRUE@ --dpkg-build-depends-package "libtelepathy-glib-dev" \
1329 @HAVE_LD_VERSION_SCRIPT_TRUE@ $(ABI_LISTS:%=$(srcdir)/%) > _gen/libtelepathy-glib0.symbols
1330 @HAVE_LD_VERSION_SCRIPT_TRUE@ sed -n -e "s/^[ ]*\\(tp_.*\\);/\\1/p" < $@ > _gen/versioned-abi.tmp
1331 @HAVE_LD_VERSION_SCRIPT_TRUE@ sort -u < _gen/versioned-abi.tmp > _gen/versioned-abi.txt
1332 @HAVE_LD_VERSION_SCRIPT_TRUE@ : # the versioned API should always match the ^tp API
1333 @HAVE_LD_VERSION_SCRIPT_TRUE@ diff -c _gen/versioned-abi.txt _gen/abi.txt
1334
1335 @HAVE_LD_VERSION_SCRIPT_TRUE@_gen/abi.txt: libtelepathy-glib-internal.la abi.am
1336 @HAVE_LD_VERSION_SCRIPT_TRUE@ $(NM) .libs/libtelepathy-glib-internal.a > _gen/abi.nm
1337 @HAVE_LD_VERSION_SCRIPT_TRUE@ grep " [DT] " < _gen/abi.nm > _gen/abi.funcs
1338 @HAVE_LD_VERSION_SCRIPT_TRUE@ cut -d" " -f3 < _gen/abi.funcs > _gen/abi.funcnames
1339 @HAVE_LD_VERSION_SCRIPT_TRUE@ grep "^tp" < _gen/abi.funcnames > _gen/abi.tpfuncnames
1340 @HAVE_LD_VERSION_SCRIPT_TRUE@ $(AM_V_GEN)sort -u < _gen/abi.tpfuncnames > $@
1341
1342 # vim:set ft=automake:
1343
12511344 # Bootstrapping
12521345
12531346 _gen/spec-stamp: $(wildcard $(top_srcdir)/spec/*.xml)
12911384 _gen/signals-marshal.list: signals-marshal.list _gen/tp-signals-marshal.list
12921385 $(AM_V_GEN)sort -u $^ > $@
12931386
1294 _gen/signals-marshal.h: _gen/signals-marshal.list Makefile.am
1387 _gen/signals-marshal.h: _gen/signals-marshal.list codegen.am
12951388 $(AM_V_GEN)$(GLIB_GENMARSHAL) --header --prefix=_tp_marshal $< > $@
12961389
1297 _gen/signals-marshal.c: _gen/signals-marshal.list Makefile.am
1390 _gen/signals-marshal.c: _gen/signals-marshal.list codegen.am
12981391 $(AM_V_GEN){ echo '#include "_gen/signals-marshal.h"' && \
12991392 $(GLIB_GENMARSHAL) --body --prefix=_tp_marshal $< ; } > $@
13001393
13101403
13111404 _gen/tp-svc-%.c _gen/tp-svc-%.h: _gen/tp-spec-%.xml \
13121405 $(tools_dir)/glib-ginterface-gen.py \
1313 Makefile.am
1406 codegen.am
13141407 $(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-ginterface-gen.py \
13151408 --filename=_gen/tp-svc-$* \
13161409 --signal-marshal-prefix=_tp \
13211414
13221415 _gen/tp-cli-%-body.h _gen/tp-cli-%.h: _gen/tp-spec-%.xml \
13231416 $(tools_dir)/glib-client-gen.py \
1324 Makefile.am
1417 codegen.am
13251418 $(AM_V_GEN)set -e; \
13261419 subclass= ; \
13271420 subclass_assert= ; \
13931486 $$maybe_reentrant \
13941487 $< Tp_Cli _gen/tp-cli-$*
13951488
1489 # vim:set ft=automake:
1490
1491 @HAVE_INTROSPECTION_TRUE@_gen/proxy-introspectable.h: proxy.h introspection.am
1492 @HAVE_INTROSPECTION_TRUE@ @$(mkdir_p) _gen
1493 @HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN)sed -e 's/gpointer self/TpProxy *self/' < $< > $@
1494
1495 @HAVE_INTROSPECTION_TRUE@TelepathyGLib-0.12.gir: $(INTROSPECTION_SCANNER) \
1496 @HAVE_INTROSPECTION_TRUE@ libtelepathy-glib.la \
1497 @HAVE_INTROSPECTION_TRUE@ $(srcdir)/kludge-616375.xsl \
1498 @HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_FILES)
1499 @HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN)$(INTROSPECTION_SCANNER) -v \
1500 @HAVE_INTROSPECTION_TRUE@ --namespace TelepathyGLib \
1501 @HAVE_INTROSPECTION_TRUE@ --nsversion=$(VERSION) \
1502 @HAVE_INTROSPECTION_TRUE@ --strip-prefix=tp \
1503 @HAVE_INTROSPECTION_TRUE@ -I$(top_builddir) \
1504 @HAVE_INTROSPECTION_TRUE@ -I$(top_srcdir) \
1505 @HAVE_INTROSPECTION_TRUE@ --include=GLib-2.0 \
1506 @HAVE_INTROSPECTION_TRUE@ --include=Gio-2.0 \
1507 @HAVE_INTROSPECTION_TRUE@ --libtool="$(top_builddir)/libtool" \
1508 @HAVE_INTROSPECTION_TRUE@ --library=libtelepathy-glib.la \
1509 @HAVE_INTROSPECTION_TRUE@ --pkg gio-2.0 \
1510 @HAVE_INTROSPECTION_TRUE@ --pkg dbus-glib-1 \
1511 @HAVE_INTROSPECTION_TRUE@ --output _gen/$@.tmp \
1512 @HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_FILES)
1513 @HAVE_INTROSPECTION_TRUE@ @xsltproc $(srcdir)/kludge-616375.xsl _gen/$@.tmp > $@
1514 @HAVE_INTROSPECTION_TRUE@ @rm -f _gen/proxy-introspectable.h
1515 @HAVE_INTROSPECTION_TRUE@ @rm -f _gen/$@.tmp
1516
1517 @HAVE_INTROSPECTION_TRUE@%.typelib: %.gir $(INTROSPECTION_COMPILER)
1518 @HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN)$(top_builddir)/libtool --mode=execute \
1519 @HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER) \
1520 @HAVE_INTROSPECTION_TRUE@ --includedir=$(srcdir) \
1521 @HAVE_INTROSPECTION_TRUE@ --includedir=. \
1522 @HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
1523
1524 # vim:set ft=automake:
1525
13961526 # Tell versions [3.59,3.63) of GNU make to not export all variables.
13971527 # Otherwise a system limit (for SysV at least) may be exceeded.
13981528 .NOEXPORT:
0 # To be included by Makefile.am.
1
2 ABI_LISTS = \
3 versions/0.7.0.abi \
4 versions/0.7.1.abi \
5 versions/0.7.2.abi \
6 versions/0.7.3.abi \
7 versions/0.7.5.abi \
8 versions/0.7.6.abi \
9 versions/0.7.7.abi \
10 versions/0.7.8.abi \
11 versions/0.7.9.abi \
12 versions/0.7.10.abi \
13 versions/0.7.12.abi \
14 versions/0.7.13.abi \
15 versions/0.7.14.abi \
16 versions/0.7.15.abi \
17 versions/0.7.16.abi \
18 versions/0.7.17.abi \
19 versions/0.7.18.abi \
20 versions/0.7.19.abi \
21 versions/0.7.20.abi \
22 versions/0.7.21.abi \
23 versions/0.7.23.abi \
24 versions/0.7.24.abi \
25 versions/0.7.26.abi \
26 versions/0.7.27.abi \
27 versions/0.7.28.abi \
28 versions/0.7.29.abi \
29 versions/0.7.30.abi \
30 versions/0.7.31.abi \
31 versions/0.7.32.abi \
32 versions/0.7.34.abi \
33 versions/0.7.35.abi \
34 versions/0.7.36.abi \
35 versions/0.7.37.abi \
36 versions/0.9.0.abi \
37 versions/0.9.2.abi \
38 versions/0.11.0.abi \
39 versions/0.11.1.abi \
40 versions/0.11.3.abi \
41 versions/0.11.4.abi
42
43 # The quoting here is unnecessary but harmless, and has the useful side-effect
44 # that vim quickfix mode (:make) doesn't interpret the libtool --mode=link
45 # command as an error message in a bizarrely named file
46 libtelepathy_glib_la_LDFLAGS = \
47 -version-info "$(LT_CURRENT)":"$(LT_REVISION)":"$(LT_AGE)"
48 libtelepathy_glib_la_LIBADD = libtelepathy-glib-internal.la
49 nodist_libtelepathy_glib_la_SOURCES =
50 libtelepathy_glib_la_DEPENDENCIES = libtelepathy-glib-internal.la abi.am
51
52 if HAVE_LD_VERSION_SCRIPT
53 nodist_libtelepathy_glib_la_SOURCES += _gen/version-script.txt
54 libtelepathy_glib_la_DEPENDENCIES += _gen/version-script.txt _gen/abi.txt
55
56 if OFFICIAL_RELEASE
57 # don't allow undocumented ABI
58 MAKE_VERSION_SCRIPT_FLAGS =
59 else
60 # allow new ABI, and silently put it in a dummy version (which can be used to
61 # check whether binaries have been linked against unguaranteed ABI)
62 MAKE_VERSION_SCRIPT_FLAGS = \
63 --unreleased-version=TELEPATHY_GLIB_@VERSION@_UNRELEASED
64 endif
65
66 _gen/version-script.txt: $(ABI_LISTS) _gen/abi.txt abi.am \
67 $(top_srcdir)/tools/make-version-script.py
68 $(AM_V_GEN)$(PYTHON) $(top_srcdir)/tools/make-version-script.py \
69 --symbols=_gen/abi.txt $(MAKE_VERSION_SCRIPT_FLAGS) \
70 $(ABI_LISTS:%=$(srcdir)/%) > $@
71 $(PYTHON) $(top_srcdir)/tools/make-version-script.py \
72 --symbols=_gen/abi.txt $(MAKE_VERSION_SCRIPT_FLAGS) \
73 --dpkg "libtelepathy-glib.so.0 libtelepathy-glib0 #MINVER#" \
74 --dpkg-build-depends-package "libtelepathy-glib-dev" \
75 $(ABI_LISTS:%=$(srcdir)/%) > _gen/libtelepathy-glib0.symbols
76 sed -n -e "s/^[ ]*\\(tp_.*\\);/\\1/p" < $@ > _gen/versioned-abi.tmp
77 sort -u < _gen/versioned-abi.tmp > _gen/versioned-abi.txt
78 : # the versioned API should always match the ^tp API
79 diff -c _gen/versioned-abi.txt _gen/abi.txt
80
81 _gen/abi.txt: libtelepathy-glib-internal.la abi.am
82 $(NM) .libs/libtelepathy-glib-internal.a > _gen/abi.nm
83 grep " [DT] " < _gen/abi.nm > _gen/abi.funcs
84 cut -d" " -f3 < _gen/abi.funcs > _gen/abi.funcnames
85 grep "^tp" < _gen/abi.funcnames > _gen/abi.tpfuncnames
86 $(AM_V_GEN)sort -u < _gen/abi.tpfuncnames > $@
87
88 libtelepathy_glib_la_LDFLAGS += \
89 $(VERSION_SCRIPT_ARG)=_gen/version-script.txt
90
91 else # !HAVE_LD_VERSION_SCRIPT
92
93 libtelepathy_glib_la_LDFLAGS += -export-symbols-regex '^tp'
94
95 endif # !HAVE_LD_VERSION_SCRIPT
96
97 # vim:set ft=automake:
868868 * The caller must keep a ref to the returned object using g_object_ref() if
869869 * it is to be kept.
870870 *
871 * Returns: a new #TpAccount at @path
871 * Returns: (transfer none): a new #TpAccount at @path
872872 *
873873 * Since: 0.9.0
874874 */
921921 * (tp_proxy_prepare_async() has returned). Until this feature has
922922 * been prepared, an empty list (%NULL) will be returned.
923923 *
924 * Returns: a newly allocated #GList of valid accounts in @manager
924 * Returns: (element-type TelepathyGLib.Account) (transfer container): a newly allocated #GList of valid accounts in @manager
925925 *
926926 * Since: 0.9.0
927927 */
10071007 /**
10081008 * tp_account_manager_get_most_available_presence:
10091009 * @manager: a #TpAccountManager
1010 * @status: a string to fill with the actual status
1011 * @message: a string to fill with the actual status message
1010 * @status: (out) (transfer full): a string to fill with the actual status
1011 * @message: (out) (transfer full): a string to fill with the actual status
1012 * message
10121013 *
10131014 * Gets the most available presence over all accounts in @manager. This
10141015 * function does not average presences across all accounts, but it merely
10811082 * @connection_manager: the name of a connection manager
10821083 * @protocol: the name of a protocol
10831084 * @display_name: the display name for the account
1084 * @parameters: parameters for the new account
1085 * @properties: properties for the new account
1085 * @parameters: (element-type utf8 GObject.Value) (transfer none): parameters
1086 * for the new account
1087 * @properties: (element-type utf8 GObject.Value) (transfer none): properties
1088 * for the new account
10861089 * @callback: a callback to call when the request is satisfied
10871090 * @user_data: data to pass to @callback
10881091 *
11361139 * Finishes an async create account operation, and returns a new #TpAccount
11371140 * object, with the %TP_ACCOUNT_FEATURE_CORE feature ready on it.
11381141 *
1139 * Returns: a new #TpAccount which was just created on success, otherwise
1140 * %NULL
1142 * The caller must keep a ref to the returned object using g_object_ref() if
1143 * it is to be kept.
1144 *
1145 * Returns: (transfer none): a new #TpAccount which was just created on
1146 * success, otherwise %NULL
11411147 *
11421148 * Since: 0.9.0
11431149 */
11681174 }
11691175
11701176 /**
1171 * tp_account_manager_is_prepared:
1177 * tp_account_manager_is_prepared: (skip)
11721178 * @manager: a #TpAccountManager
11731179 * @feature: a feature which is required
11741180 *
11861192 }
11871193
11881194 /**
1189 * tp_account_manager_prepare_async:
1195 * tp_account_manager_prepare_async: (skip)
11901196 * @manager: a #TpAccountManager
11911197 * @features: a 0-terminated list of features, or %NULL
11921198 * @callback: a callback to call when the request is satisfied
12171223 }
12181224
12191225 /**
1220 * tp_account_manager_prepare_finish:
1226 * tp_account_manager_prepare_finish: (skip)
12211227 * @manager: a #TpAccountManager
12221228 * @result: a #GAsyncResult
12231229 * @error: a #GError to fill
297297 }
298298 }
299299
300 g_object_notify (G_OBJECT (account), "connection");
300 if (tp_strdiff (priv->connection_object_path, path))
301 {
302 g_free (priv->connection_object_path);
303 priv->connection_object_path = g_strdup (path);
304 g_object_notify (G_OBJECT (account), "connection");
305 }
301306 }
302307
303308 static void
466471
467472 if (g_hash_table_lookup (properties, "Connection") != NULL)
468473 {
469 g_free (priv->connection_object_path);
470
471 priv->connection_object_path =
472 g_strdup (tp_asv_get_object_path (properties, "Connection"));
473
474 if (priv->connection != NULL)
474 const gchar *path = tp_asv_get_object_path (properties, "Connection");
475
476 if (tp_strdiff (path, priv->connection_object_path))
475477 {
476 if (tp_strdiff (priv->connection_object_path,
477 tp_proxy_get_object_path (priv->connection)))
478 g_free (priv->connection_object_path);
479
480 priv->connection_object_path = g_strdup (path);
481
482 if (priv->connection != NULL)
478483 _tp_account_free_connection (account);
484
485 g_object_notify (G_OBJECT (account), "connection");
479486 }
480487 }
481488
690697 g_free (priv->icon_name);
691698 g_free (priv->display_name);
692699
700 if (priv->parameters != NULL)
701 g_hash_table_unref (priv->parameters);
702
693703 /* free any data held directly by the object here */
694704 if (G_OBJECT_CLASS (tp_account_parent_class)->finalize != NULL)
695705 G_OBJECT_CLASS (tp_account_parent_class)->finalize (object);
12291239 *
12301240 * <!-- -->
12311241 *
1232 * Returns: the same as the #TpAccount:connection property
1242 * Returns: (transfer none): the same as the #TpAccount:connection property
12331243 *
12341244 * Since: 0.9.0
12351245 **/
12611271 * already know the object path for the connection, so you can let @account
12621272 * create its #TpConnection and return it for use.
12631273 *
1264 * Returns: the connection of the account, or %NULL if either the object path
1265 * @path is invalid or it is the null-value "/"
1274 * Returns: (transfer none): the connection of the account, or %NULL if either
1275 * the object path @path is invalid or it is the null-value "/"
12661276 *
12671277 * Since: 0.9.0
12681278 **/
13961406 * <ulink url="http://telepathy.freedesktop.org/spec/org.freedesktop.Telepathy.ConnectionManager.html#org.freedesktop.Telepathy.ConnectionManager.RequestConnection">in
13971407 * the Telepathy D-Bus Interface Specification</ulink>.
13981408 *
1399 * Returns: the hash table of parameters on @account
1409 * Returns: (transfer none) (element-type utf8 GObject.Value): the hash table of
1410 * parameters on @account
14001411 *
14011412 * Since: 0.9.0
14021413 */
17011712 /**
17021713 * tp_account_update_parameters_async:
17031714 * @account: a #TpAccount
1704 * @parameters: new parameters to set on @account
1715 * @parameters: (element-type utf8 GObject.Value) (transfer none): new
1716 * parameters to set on @account
17051717 * @unset_parameters: list of parameters to unset on @account
17061718 * @callback: a callback to call when the request is satisfied
17071719 * @user_data: data to pass to @callback
17351747 * tp_account_update_parameters_finish:
17361748 * @account: a #TpAccount
17371749 * @result: a #GAsyncResult
1738 * @reconnect_required: a #GStrv to fill with properties that need a reconnect
1739 * to take effect
1750 * @reconnect_required: (out) (type GLib.Strv) (transfer full): a #GStrv to
1751 * fill with properties that need a reconnect to take effect
17401752 * @error: a #GError to fill
17411753 *
17421754 * Finishes an async update of the parameters on @account.
21102122 /**
21112123 * tp_account_get_connection_status:
21122124 * @account: a #TpAccount
2113 * @reason: a #TpConnectionStatusReason to fill, or %NULL
2125 * @reason: (out): a #TpConnectionStatusReason to fill, or %NULL
21142126 *
21152127 * Gets the connection status and reason from @account. The two values
21162128 * are the same as the #TpAccount:connection-status and
21362148 /**
21372149 * tp_account_get_current_presence:
21382150 * @account: a #TpAccount
2139 * @status: return location for the current status
2140 * @status_message: return location for the current status message
2151 * @status: (out) (transfer full): return location for the current status
2152 * @status_message: (out) (transfer full): return location for the current
2153 * status message
21412154 *
21422155 * Gets the current presence, status and status message of @account. These
21432156 * values are the same as the #TpAccount:current-presence-type,
21672180 /**
21682181 * tp_account_get_requested_presence:
21692182 * @account: a #TpAccount
2170 * @status: return location for the requested status
2171 * @status_message: return location for the requested status message
2183 * @status: (out) (transfer none): return location for the requested status
2184 * @status_message: (out) (transfer full): return location for the requested
2185 * status message
21722186 *
21732187 * Gets the requested presence, status and status message of @account. These
21742188 * values are the same as the #TpAccount:requested-presence-type,
23852399 }
23862400
23872401 /**
2388 * tp_account_is_prepared:
2402 * tp_account_is_prepared: (skip)
23892403 * @account: a #TpAccount
23902404 * @feature: a feature which is required
23912405 *
24032417 }
24042418
24052419 /**
2406 * tp_account_prepare_async:
2420 * tp_account_prepare_async: (skip)
24072421 * @account: a #TpAccount
24082422 * @features: a 0-terminated list of features, or %NULL
24092423 * @callback: a callback to call when the request is satisfied
24362450 }
24372451
24382452 /**
2439 * tp_account_prepare_finish:
2453 * tp_account_prepare_finish: (skip)
24402454 * @account: a #TpAccount
24412455 * @result: a #GAsyncResult
24422456 * @error: a #GError to fill
24682482 /**
24692483 * tp_account_parse_object_path:
24702484 * @object_path: a Telepathy Account's object path
2471 * @cm: location at which to store the account's connection manager's name
2472 * @protocol: location at which to store the account's protocol
2473 * @account_id: location at which to store the account's unique identifier
2485 * @cm: (out) (transfer full): location at which to store the account's
2486 * connection manager's name
2487 * @protocol: (out) (transfer full): location at which to store the account's
2488 * protocol
2489 * @account_id: (out) (transfer full): location at which to store the account's
2490 * unique identifier
24742491 * @error: location at which to return an error
24752492 *
24762493 * Validates and parses a Telepathy Account's object path, extracting the
26132630 /**
26142631 * tp_account_set_avatar_async:
26152632 * @self: a #TpAccount
2616 * @avatar: a new avatar to set; can be %NULL only if @len equals 0
2633 * @avatar: (allow-none) (array length=len): a new avatar to set; can be %NULL
2634 * only if @len equals 0
26172635 * @len: the length of the new avatar
2618 * @mime_type: the MIME type of the new avatar; can be %NULL only if
2619 * @len equals 0
2636 * @mime_type: (allow-none): the MIME type of the new avatar; can be %NULL
2637 * only if @len equals 0
26202638 * @callback: a callback to call when the request is satisfied
26212639 * @user_data: data to pass to @callback
26222640 *
17281728 {
17291729 switch (error->code)
17301730 {
1731 case TP_ERROR_NETWORK_ERROR:
1731 #define OBVIOUS_MAPPING(x) \
1732 case TP_ERROR_ ## x: \
1733 return TP_CONNECTION_STATUS_REASON_ ## x
1734
1735 OBVIOUS_MAPPING (NETWORK_ERROR);
1736 OBVIOUS_MAPPING (ENCRYPTION_ERROR);
1737 OBVIOUS_MAPPING (AUTHENTICATION_FAILED);
1738 OBVIOUS_MAPPING (CERT_NOT_PROVIDED);
1739 OBVIOUS_MAPPING (CERT_UNTRUSTED);
1740 OBVIOUS_MAPPING (CERT_EXPIRED);
1741 OBVIOUS_MAPPING (CERT_NOT_ACTIVATED);
1742 OBVIOUS_MAPPING (CERT_FINGERPRINT_MISMATCH);
1743 OBVIOUS_MAPPING (CERT_HOSTNAME_MISMATCH);
1744 OBVIOUS_MAPPING (CERT_SELF_SIGNED);
1745 #undef OBVIOUS_MAPPING
1746
1747 case TP_ERROR_PERMISSION_DENIED:
1748 case TP_ERROR_DOES_NOT_EXIST:
1749 return TP_CONNECTION_STATUS_REASON_AUTHENTICATION_FAILED;
1750
1751 case TP_ERROR_CERT_INVALID:
1752 return TP_CONNECTION_STATUS_REASON_CERT_OTHER_ERROR;
1753
1754 case TP_ERROR_CANCELLED:
1755 return TP_CONNECTION_STATUS_REASON_REQUESTED;
1756
1757 case TP_ERROR_ENCRYPTION_NOT_AVAILABLE:
1758 return TP_CONNECTION_STATUS_REASON_ENCRYPTION_ERROR;
1759
1760 case TP_ERROR_REGISTRATION_EXISTS:
1761 case TP_ERROR_ALREADY_CONNECTED:
1762 case TP_ERROR_CONNECTION_REPLACED:
1763 return TP_CONNECTION_STATUS_REASON_NAME_IN_USE;
1764
1765 case TP_ERROR_CONNECTION_REFUSED:
1766 case TP_ERROR_CONNECTION_FAILED:
1767 case TP_ERROR_CONNECTION_LOST:
1768 case TP_ERROR_SERVICE_BUSY:
17321769 return TP_CONNECTION_STATUS_REASON_NETWORK_ERROR;
1733 case TP_ERROR_PERMISSION_DENIED:
1734 return TP_CONNECTION_STATUS_REASON_AUTHENTICATION_FAILED;
1770
1771 /* current status: all TP_ERRORS up to and including
1772 * TP_ERROR_RESOURCE_UNAVAILABLE have been looked at */
17351773 }
17361774 }
17371775
253253 /**
254254 * tp_channel_get_handle:
255255 * @self: a channel
256 * @handle_type: if not %NULL, used to return the type of this handle
256 * @handle_type: (out): if not %NULL, used to return the type of this handle
257257 *
258258 * Get the handle representing the contact, chatroom, etc. with which this
259259 * channel communicates for its whole lifetime, or 0 if there is no such
289289 * tp_channel_get_identifier:
290290 * @self: a channel
291291 *
292 * This channel's associated identifier, or NULL if no identifier or unknown.
293 *
294 * The identifier is the result of inspecting #TpChannel:handle.
292 * This channel's associated identifier, or the empty string if no identifier
293 * or unknown.
294 *
295295 * This is the same as the #TpChannel:identifier property, and isn't guaranteed
296 * to be non-%NULL until the %TP_CHANNEL_FEATURE_CORE property is ready.
296 * to be set until the %TP_CHANNEL_FEATURE_CORE property is ready.
297 *
298 * Changed in 0.11.4: as with #TpChannel:identifier, this could
299 * previously either be %NULL or the empty string if there was no suitable
300 * value. It is now non-%NULL in all cases.
297301 *
298302 * Returns: the identifier
299303 * Since: 0.7.21
303307 {
304308 g_return_val_if_fail (TP_IS_CHANNEL (self), NULL);
305309
310 if (self->priv->identifier == NULL)
311 return "";
312
306313 return self->priv->identifier;
307314 }
308315
309316 /**
310 * tp_channel_is_ready:
317 * tp_channel_is_ready: (skip)
311318 * @self: a channel
312319 *
313320 * Returns the same thing as the #TpChannel:channel-ready property.
344351 * Returns the connection for this channel. The returned pointer is only valid
345352 * while this channel is valid - reference it with g_object_ref() if needed.
346353 *
347 * Returns: the value of #TpChannel:connection
354 * Returns: (transfer none): the value of #TpChannel:connection
348355 * Since: 0.7.12
349356 */
350357 TpConnection *
375382 * progressively more complete values until the %TP_CHANNEL_FEATURE_CORE
376383 * feature is prepared.
377384 *
378 * Returns: a #GHashTable where the keys are strings,
385 * Returns: (transfer none) (element-type utf8 GObject.Value): a #GHashTable
386 * where the keys are strings,
379387 * D-Bus interface name + "." + property name, and the values are #GValue
380388 * instances
381389 */
415423 g_value_set_uint (value, self->priv->handle);
416424 break;
417425 case PROP_IDENTIFIER:
418 g_value_set_string (value, self->priv->identifier);
426 g_value_set_string (value, tp_channel_get_identifier (self));
419427 break;
420428 case PROP_CHANNEL_PROPERTIES:
421429 g_value_set_boxed (value, self->priv->channel_properties);
598606 {
599607 guint u;
600608
609 /* no need to emit GObject::notify for any of these since this
610 * can only happen at construct time, before anyone has
611 * connected to it */
612
601613 tp_g_hash_table_update (self->priv->channel_properties,
602614 asv, (GBoxedCopyFunc) g_strdup,
603615 (GBoxedCopyFunc) tp_g_value_slice_dup);
941953 {
942954 TpChannel *self = user_data;
943955
944 if (error == NULL)
945 {
946 DEBUG ("%p: Introspected identifier %s", self, *identifier);
947 self->priv->identifier = g_strdup (*identifier);
948
949 g_hash_table_insert (self->priv->channel_properties,
950 g_strdup (TP_PROP_CHANNEL_TARGET_ID),
951 tp_g_value_slice_new_string (*identifier));
952
953 g_object_notify ((GObject *) self, "identifier");
954
955 _tp_channel_continue_introspection (self);
956 }
957 else
956 if (error != NULL)
958957 {
959958 _tp_channel_abort_introspection (self, "InspectHandles failed", error);
960 }
961
959 goto finally;
960 }
961
962 if (identifier == NULL || identifier[0] == NULL || identifier[1] != NULL)
963 {
964 GError e = { TP_DBUS_ERRORS, TP_DBUS_ERROR_INCONSISTENT,
965 "CM is broken: InspectHandles(CONTACT, [TargetHandle]) returned "
966 "non-1 length" };
967
968 _tp_channel_abort_introspection (self, "InspectHandles inconsistent",
969 &e);
970 goto finally;
971 }
972
973 DEBUG ("%p: Introspected identifier %s", self, identifier[0]);
974 _tp_channel_maybe_set_identifier (self, identifier[0]);
975 g_object_notify ((GObject *) self, "identifier");
976
977 _tp_channel_continue_introspection (self);
978
979 finally:
962980 g_object_unref (self);
963981 }
964982
966984 static void
967985 _tp_channel_get_identifier (TpChannel *self)
968986 {
969 if (self->priv->identifier == NULL && self->priv->handle != 0 &&
970 self->priv->handle_type != TP_HANDLE_TYPE_NONE)
987 if (self->priv->identifier == NULL &&
988 (self->priv->handle == 0 ||
989 self->priv->handle_type == TP_HANDLE_TYPE_NONE))
990 {
991 /* no need to emit GObject::notify here since the initial value was "" */
992 _tp_channel_maybe_set_identifier (self, "");
993 }
994
995 if (self->priv->identifier == NULL)
971996 {
972997 GArray handles = {(gchar *) &self->priv->handle, 1};
973998
14301455 /**
14311456 * TpChannel:identifier:
14321457 *
1433 * This channel's associated identifier, or NULL if no identifier or unknown.
1434 *
1435 * The identifier is the result of inspecting #TpChannel:handle.
1458 * This channel's associated identifier, or the empty string if it has
1459 * handle type %TP_HANDLE_TYPE_NONE.
1460 *
1461 * For channels where #TpChannel:handle is non-zero, this is the result of
1462 * inspecting #TpChannel:handle.
14361463 *
14371464 * This is not guaranteed to be set until tp_proxy_prepare_async() has
1438 * finished preparing %TP_CHANNEL_FEATURE_CORE.
1465 * finished preparing %TP_CHANNEL_FEATURE_CORE; until then, it may be
1466 * the empty string.
1467 *
1468 * Changed in 0.11.4: this property is never %NULL. Previously,
1469 * it was %NULL before an identifier was known, or when a channel
1470 * with no TargetID D-Bus property had TargetHandleType %TP_HANDLE_TYPE_NONE.
14391471 */
14401472 param_spec = g_param_spec_string ("identifier",
14411473 "The identifier",
14421474 "The identifier of the channel",
1443 NULL,
1475 "",
14441476 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
14451477 g_object_class_install_property (object_class, PROP_IDENTIFIER,
14461478 param_spec);
15641596 G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT);
15651597
15661598 /**
1567 * TpChannel::group-members-changed:
1599 * TpChannel::group-members-changed: (skip)
15681600 * @self: a channel
15691601 * @message: an optional textual message
15701602 * @added: a #GArray of #guint containing the full members added
15941626 /**
15951627 * TpChannel::group-members-changed-detailed:
15961628 * @self: a channel
1597 * @added: a #GArray of #guint containing the full members added
1598 * @removed: a #GArray of #guint containing the members (full,
1599 * local-pending or remote-pending) removed
1600 * @local_pending: a #GArray of #guint containing the local-pending
1629 * @added: (type GLib.Array): a #GArray of #guint containing the full
16011630 * members added
1602 * @remote_pending: a #GArray of #guint containing the remote-pending
1603 * members added
1604 * @details: a #GHashTable mapping (gchar *) to #GValue containing details
1631 * @removed: (type GLib.Array): a #GArray of #guint containing the members
1632 * (full, local-pending or remote-pending) removed
1633 * @local_pending: (type GLib.Array): a #GArray of #guint containing the
1634 * local-pending members added
1635 * @remote_pending: (type GLib.Array): a #GArray of #guint containing the
1636 * remote-pending members added
1637 * @details: (type GLib.HashTable): (element-type utf8 GObject.Value):
1638 * a #GHashTable mapping (gchar *) to #GValue containing details
16051639 * about the change, as described in the specification of the
16061640 * MembersChangedDetailed signal.
16071641 *
16461680 * tp_channel_new_from_properties:
16471681 * @conn: a connection; may not be %NULL
16481682 * @object_path: the object path of the channel; may not be %NULL
1649 * @immutable_properties: the immutable properties of the channel,
1683 * @immutable_properties: (transfer none) (element-type utf8 GObject.Value):
1684 * the immutable properties of the channel,
16501685 * as signalled by the NewChannel D-Bus signal or returned by the
16511686 * CreateChannel and EnsureChannel D-Bus methods: a mapping from
16521687 * strings (D-Bus interface name + "." + property name) to #GValue instances
17701805 }
17711806
17721807 /**
1773 * tp_channel_run_until_ready:
1808 * tp_channel_run_until_ready: (skip)
17741809 * @self: a channel
17751810 * @error: if not %NULL and %FALSE is returned, used to raise an error
17761811 * @loop: if not %NULL, a #GMainLoop is placed here while it is being run
19061941 */
19071942
19081943 /**
1909 * tp_channel_call_when_ready:
1944 * tp_channel_call_when_ready: (skip)
19101945 * @self: a channel
19111946 * @callback: called when the channel becomes ready or invalidated, whichever
19121947 * happens first
0 # To be included by Makefile.am.
1
2 codegen_extra_dist = \
3 account.xml \
4 account-manager.xml \
5 channel.xml \
6 channel-dispatcher.xml \
7 channel-dispatch-operation.xml \
8 channel-request.xml \
9 client.xml \
10 debug.xml \
11 connection.xml \
12 connection-manager.xml \
13 dbus-daemon.xml \
14 dbus-introspectable.xml \
15 dbus-peer.xml \
16 dbus-properties.xml \
17 generic.xml \
18 media-session-handler.xml \
19 media-stream-handler.xml \
20 stable-interfaces.xml
21
22 codegen_sources = \
23 $(nodist_libtelepathy_glib_internal_la_SOURCES) \
24 $(nodist_geninclude_HEADERS) \
25 _gen/stable-spec.xml \
26 _gen/spec-stamp \
27 _gen/stable-stamp
28
29 nodist_geninclude_HEADERS = \
30 _gen/error-str.h \
31 _gen/telepathy-enums.h \
32 _gen/telepathy-interfaces.h \
33 _gen/gtypes.h \
34 _gen/tp-cli-account.h \
35 _gen/tp-cli-account-manager.h \
36 _gen/tp-cli-channel.h \
37 _gen/tp-cli-channel-dispatcher.h \
38 _gen/tp-cli-channel-dispatch-operation.h \
39 _gen/tp-cli-channel-request.h \
40 _gen/tp-cli-client.h \
41 _gen/tp-cli-connection.h \
42 _gen/tp-cli-connection-manager.h \
43 _gen/tp-cli-dbus-daemon.h \
44 _gen/tp-cli-generic.h \
45 _gen/tp-cli-media-session-handler.h \
46 _gen/tp-cli-media-stream-handler.h \
47 _gen/tp-svc-account.h \
48 _gen/tp-svc-account-manager.h \
49 _gen/tp-svc-channel.h \
50 _gen/tp-svc-channel-dispatcher.h \
51 _gen/tp-svc-channel-dispatch-operation.h \
52 _gen/tp-svc-channel-request.h \
53 _gen/tp-svc-client.h \
54 _gen/tp-svc-connection.h \
55 _gen/tp-svc-connection-manager.h \
56 _gen/tp-svc-debug.h \
57 _gen/tp-svc-generic.h \
58 _gen/tp-svc-media-session-handler.h \
59 _gen/tp-svc-media-stream-handler.h
60
61 nodist_libtelepathy_glib_internal_la_SOURCES = \
62 _gen/error-str.c \
63 _gen/signals-marshal.c \
64 _gen/signals-marshal.h \
65 _gen/signals-marshal.list \
66 _gen/tp-signals-marshal.list \
67 _gen/interfaces-body.h \
68 _gen/gtypes-body.h \
69 _gen/register-dbus-glib-marshallers-body.h \
70 _gen/tp-cli-account-body.h \
71 _gen/tp-cli-account-manager-body.h \
72 _gen/tp-cli-channel-body.h \
73 _gen/tp-cli-channel-dispatcher-body.h \
74 _gen/tp-cli-channel-dispatch-operation-body.h \
75 _gen/tp-cli-channel-request-body.h \
76 _gen/tp-cli-client-body.h \
77 _gen/tp-cli-connection-body.h \
78 _gen/tp-cli-connection-manager-body.h \
79 _gen/tp-cli-dbus-daemon-body.h \
80 _gen/tp-cli-generic-body.h \
81 _gen/tp-cli-media-session-handler-body.h \
82 _gen/tp-cli-media-stream-handler-body.h \
83 _gen/tp-svc-account.c \
84 _gen/tp-svc-account-manager.c \
85 _gen/tp-svc-channel.c \
86 _gen/tp-svc-channel-dispatcher.c \
87 _gen/tp-svc-channel-dispatch-operation.c \
88 _gen/tp-svc-channel-request.c \
89 _gen/tp-svc-client.c \
90 _gen/tp-svc-connection.c \
91 _gen/tp-svc-connection-manager.c \
92 _gen/tp-svc-debug.c \
93 _gen/tp-svc-generic.c \
94 _gen/tp-svc-media-session-handler.c \
95 _gen/tp-svc-media-stream-handler.c
96
97 # Generated stuff
98
99 DROP_NAMESPACE = sed -e 's@xmlns:tp="http://telepathy\.freedesktop\.org/wiki/DbusSpec.extensions-v0"@@g'
100 tools_dir = $(top_srcdir)/tools
101
102 # Bootstrapping
103
104 _gen/spec-stamp: $(wildcard $(top_srcdir)/spec/*.xml)
105 $(mkdir_p) _gen
106 touch $@
107
108 _gen/stable-stamp: $(wildcard *.xml) _gen/spec-stamp
109 touch $@
110
111 _gen/stable-spec.xml: stable-interfaces.xml _gen/stable-stamp $(tools_dir)/xincludator.py
112 $(AM_V_GEN)$(PYTHON) $(tools_dir)/xincludator.py $< > $@
113
114 # Things generated from the whole spec at once
115
116 _gen/gtypes.h _gen/gtypes-body.h: _gen/stable-spec.xml \
117 $(tools_dir)/glib-gtypes-generator.py
118 $(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-gtypes-generator.py \
119 _gen/stable-spec.xml \
120 _gen/gtypes Tp
121
122 _gen/telepathy-enums.h: _gen/stable-spec.xml \
123 $(tools_dir)/c-constants-gen.py
124 $(AM_V_GEN)$(PYTHON) $(tools_dir)/c-constants-gen.py \
125 Tp \
126 $< > $@
127
128 _gen/interfaces-body.h _gen/telepathy-interfaces.h: _gen/stable-spec.xml \
129 $(tools_dir)/glib-interfaces-gen.py
130 $(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-interfaces-gen.py \
131 Tp _gen/interfaces-body.h _gen/telepathy-interfaces.h $<
132
133 _gen/register-dbus-glib-marshallers-body.h: _gen/stable-spec.xml \
134 $(tools_dir)/glib-client-marshaller-gen.py
135 $(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-client-marshaller-gen.py $< _tp > $@
136
137 _gen/tp-signals-marshal.list: $(tools_dir)/glib-signals-marshal-gen.py \
138 _gen/stable-spec.xml
139 $(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-signals-marshal-gen.py \
140 _gen/stable-spec.xml > $@
141
142 _gen/signals-marshal.list: signals-marshal.list _gen/tp-signals-marshal.list
143 $(AM_V_GEN)sort -u $^ > $@
144
145 _gen/signals-marshal.h: _gen/signals-marshal.list codegen.am
146 $(AM_V_GEN)$(GLIB_GENMARSHAL) --header --prefix=_tp_marshal $< > $@
147
148 _gen/signals-marshal.c: _gen/signals-marshal.list codegen.am
149 $(AM_V_GEN){ echo '#include "_gen/signals-marshal.h"' && \
150 $(GLIB_GENMARSHAL) --body --prefix=_tp_marshal $< ; } > $@
151
152 _gen/error-str.h _gen/error-str.c: _gen/stable-spec.xml \
153 $(tools_dir)/glib-errors-str-gen.py
154 $(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-errors-str-gen.py \
155 _gen/error-str $<
156
157 # Things generated per interface
158
159 _gen/tp-spec-%.xml: %.xml _gen/spec-stamp $(tools_dir)/xincludator.py
160 $(AM_V_GEN)$(PYTHON) $(tools_dir)/xincludator.py $< > $@
161
162 _gen/tp-svc-%.c _gen/tp-svc-%.h: _gen/tp-spec-%.xml \
163 $(tools_dir)/glib-ginterface-gen.py \
164 codegen.am
165 $(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-ginterface-gen.py \
166 --filename=_gen/tp-svc-$* \
167 --signal-marshal-prefix=_tp \
168 --include='<telepathy-glib/dbus.h>' \
169 --include="\"_gen/signals-marshal.h\"" \
170 --not-implemented-func='tp_dbus_g_method_return_not_implemented' \
171 $< Tp_Svc_
172
173 _gen/tp-cli-%-body.h _gen/tp-cli-%.h: _gen/tp-spec-%.xml \
174 $(tools_dir)/glib-client-gen.py \
175 codegen.am
176 $(AM_V_GEN)set -e; \
177 subclass= ; \
178 subclass_assert= ; \
179 case $* in \
180 generic) \
181 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
182 ;; \
183 account-manager) \
184 subclass=--subclass=TpAccountManager; \
185 subclass_assert=--subclass-assert=TP_IS_ACCOUNT_MANAGER; \
186 ;; \
187 account) \
188 subclass=--subclass=TpAccount; \
189 subclass_assert=--subclass-assert=TP_IS_ACCOUNT; \
190 ;; \
191 channel) \
192 subclass=--subclass=TpChannel; \
193 subclass_assert=--subclass-assert=TP_IS_CHANNEL; \
194 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
195 ;; \
196 channel-dispatcher) \
197 subclass=--subclass=TpChannelDispatcher; \
198 subclass_assert=--subclass-assert=TP_IS_CHANNEL_DISPATCHER; \
199 ;; \
200 channel-dispatch-operation) \
201 subclass=--subclass=TpChannelDispatchOperation; \
202 subclass_assert=--subclass-assert=TP_IS_CHANNEL_DISPATCH_OPERATION; \
203 ;; \
204 channel-request) \
205 subclass=--subclass=TpChannelRequest; \
206 subclass_assert=--subclass-assert=TP_IS_CHANNEL_REQUEST; \
207 ;; \
208 client) \
209 subclass=--subclass=TpClient; \
210 subclass_assert=--subclass-assert=TP_IS_CLIENT; \
211 ;; \
212 connection-manager) \
213 subclass=--subclass=TpConnectionManager; \
214 subclass_assert=--subclass-assert=TP_IS_CONNECTION_MANAGER \
215 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
216 ;; \
217 connection) \
218 subclass=--subclass=TpConnection; \
219 subclass_assert=--subclass-assert=TP_IS_CONNECTION; \
220 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
221 ;; \
222 media-session-handler) \
223 subclass=--subclass=TpMediaSessionHandler; \
224 subclass_assert=--subclass-assert=TP_IS_MEDIA_SESSION_HANDLER; \
225 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
226 ;; \
227 media-stream-handler) \
228 subclass=--subclass=TpMediaStreamHandler; \
229 subclass_assert=--subclass-assert=TP_IS_MEDIA_STREAM_HANDLER; \
230 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
231 ;; \
232 dbus-daemon) \
233 subclass=--subclass=TpDBusDaemon; \
234 subclass_assert=--subclass-assert=TP_IS_DBUS_DAEMON; \
235 maybe_reentrant=--deprecate-reentrant=TP_DISABLE_DEPRECATED; \
236 ;; \
237 esac; \
238 $(PYTHON) $(tools_dir)/glib-client-gen.py \
239 $$subclass $$subclass_assert \
240 --group `echo $* | tr - _` \
241 --iface-quark-prefix=TP_IFACE_QUARK \
242 --tp-proxy-api=0.7.6 \
243 --deprecation-attribute=_TP_GNUC_DEPRECATED \
244 $$maybe_reentrant \
245 $< Tp_Cli _gen/tp-cli-$*
246
247 # vim:set ft=automake:
737737 * @handles: an array of handles
738738 * @interfaces: a #GStrv of interfaces
739739 * @hold: if %TRUE, the callback will hold one reference to each valid handle
740 * @callback: called on success or failure (unless @weak_object has become
741 * unreferenced)
740 * @callback: (type GObject.Callback): called on success or
741 * failure (unless @weak_object has become unreferenced)
742742 * @user_data: arbitrary user-supplied data
743743 * @destroy: called to destroy @user_data after calling @callback, or when
744744 * @weak_object becomes unreferenced (whichever occurs sooner)
3636 TpHandle self_handle;
3737 TpConnectionStatus status;
3838 TpConnectionStatusReason status_reason;
39 GError *connection_error /* initialized statically */;
39 gchar *connection_error;
40 /* a TP_HASH_TYPE_STRING_VARIANT_MAP */
41 GHashTable *connection_error_details;
4042
4143 /* GArray of GQuark */
4244 GArray *contact_attribute_interfaces;
4648
4749 TpCapabilities *capabilities;
4850
51 TpAvatarRequirements *avatar_requirements;
52
4953 TpProxyPendingCall *introspection_call;
5054 unsigned fetching_rcc:1;
55 unsigned fetching_avatar_requirements:1;
5156
5257 unsigned ready:1;
5358 unsigned tracking_aliases_changed:1;
5050
5151 /**
5252 * TpConnectionManagerListCb:
53 * @cms: %NULL-terminated array of #TpConnectionManager (the objects will
53 * @cms: (array zero-terminated=1): %NULL-terminated array of
54 * #TpConnectionManager (the objects will
5455 * be unreferenced and the array will be freed after the callback returns,
5556 * so the callback must reference any CMs it stores a pointer to),
5657 * or %NULL on error
534535 */
535536
536537 /**
537 * tp_connection_manager_call_when_ready:
538 * tp_connection_manager_call_when_ready: (skip)
538539 * @self: a connection manager
539540 * @callback: callback to call when information has been retrieved or on
540541 * error
18001801 * tp_connection_manager_new:
18011802 * @dbus: Proxy for the D-Bus daemon
18021803 * @name: The connection manager name (such as "gabble")
1803 * @manager_filename: The #TpConnectionManager:manager-file property, which may
1804 * (and generally should) be %NULL.
1804 * @manager_filename: (allow-none): The #TpConnectionManager:manager-file
1805 * property, which may (and generally should) be %NULL.
18051806 * @error: used to return an error if %NULL is returned
18061807 *
18071808 * Convenience function to create a new connection manager proxy. If
18441845 }
18451846
18461847 /**
1847 * tp_connection_manager_activate:
1848 * tp_connection_manager_activate: (skip)
18481849 * @self: a connection manager proxy
18491850 *
18501851 * Attempt to run and introspect the connection manager, asynchronously.
20462047 /**
20472048 * tp_list_connection_managers:
20482049 * @bus_daemon: proxy for the D-Bus daemon
2049 * @callback: callback to be called when listing the CMs succeeds or fails;
2050 * not called if the @weak_object goes away
2050 * @callback: (scope async): callback to be called when listing the CMs
2051 * succeeds or fails; not called if the @weak_object goes away
20512052 * @user_data: user-supplied data for the callback
20522053 * @destroy: callback to destroy the user-supplied data, called after
20532054 * @callback, but also if the @weak_object goes away
2054 * @weak_object: if not %NULL, will be weakly referenced; the callback will
2055 * not be called, and the call will be cancelled, if the object has vanished
2055 * @weak_object: (allow-none) (transfer none): if not %NULL, will be weakly
2056 * referenced; the callback will not be called, and the call will be
2057 * cancelled, if the object has vanished
20562058 *
20572059 * List the available (running or installed) connection managers. Call the
20582060 * callback when done.
22102212 }
22112213
22122214 /**
2213 * tp_connection_manager_is_ready:
2215 * tp_connection_manager_is_ready: (skip)
22142216 * @self: a connection manager
22152217 *
22162218 * If protocol and parameter information has been obtained from the connection
22912293 * The result is copied and must be freed by the caller, but it is not
22922294 * necessarily still true after the main loop is re-entered.
22932295 *
2294 * Returns: a #GStrv of protocol names
2296 * Returns: (type GLib.Strv) (transfer full): a #GStrv of protocol names
22952297 * Since: 0.7.26
22962298 */
22972299 gchar **
23382340 *
23392341 * The result is not necessarily valid after the main loop is re-entered.
23402342 *
2341 * Returns: a structure representing the protocol
2343 * Returns: (transfer none): a structure representing the protocol
23422344 * Since: 0.7.26
23432345 */
23442346 const TpConnectionManagerProtocol *
24652467 *
24662468 * The result is copied and must be freed by the caller with g_strfreev().
24672469 *
2468 * Returns: a #GStrv of protocol names
2470 * Returns: (type GLib.Strv) (transfer full): a #GStrv of protocol names
24692471 * Since: 0.7.26
24702472 */
24712473 gchar **
2121 #include "telepathy-glib/connection.h"
2222
2323 #include <string.h>
24
25 #include <dbus/dbus-protocol.h>
2426
2527 #include <telepathy-glib/connection-manager.h>
2628 #include <telepathy-glib/dbus.h>
168170 }
169171
170172 /**
173 * TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS:
174 *
175 * Expands to a call to a function that returns a #GQuark representing the
176 * "avatar-requirements" feature.
177 *
178 * When this feature is prepared, the avatar requirements of the Connection has
179 * been retrieved. Use tp_connection_get_avatar_requirements() to get them once
180 * prepared.
181 *
182 * One can ask for a feature to be prepared using the
183 * tp_proxy_prepare_async() function, and waiting for it to callback.
184 *
185 * Since: 0.11.4
186 */
187
188 GQuark
189 tp_connection_get_feature_quark_avatar_requirements (void)
190 {
191 return g_quark_from_static_string ("tp-connection-feature-avatar-requirements");
192 }
193
194 /**
171195 * TP_ERRORS_DISCONNECTED:
172196 *
173197 * #GError domain representing a Telepathy connection becoming disconnected.
175199 * #TpConnectionStatusReason.
176200 *
177201 * This macro expands to a function call returning a #GQuark.
202 *
203 * Since 0.7.24, this error domain is only used if a connection manager emits
204 * a #TpConnectionStatusReason not known to telepathy-glib.
178205 *
179206 * Since: 0.7.1
180207 */
350377 }
351378
352379 static void
380 tp_connection_get_avatar_requirements_cb (TpProxy *proxy,
381 GHashTable *properties,
382 const GError *error,
383 gpointer user_data,
384 GObject *weak_object)
385 {
386 TpConnection *self = (TpConnection *) proxy;
387 GStrv supported_mime_types;
388 GStrv empty_strv = { NULL };
389
390 self->priv->fetching_avatar_requirements = FALSE;
391
392 if (error != NULL)
393 {
394 DEBUG ("Failed to get avatar requirements properties: %s", error->message);
395 goto finally;
396 }
397
398 g_assert (self->priv->avatar_requirements == NULL);
399
400 DEBUG ("AVATAR REQUIREMENTS ready");
401
402 supported_mime_types = (GStrv) tp_asv_get_strv (properties,
403 "SupportedAvatarMIMETypes");
404 if (supported_mime_types == NULL)
405 supported_mime_types = empty_strv;
406
407 self->priv->avatar_requirements = tp_avatar_requirements_new (
408 supported_mime_types,
409 tp_asv_get_uint32 (properties, "MinimumAvatarWidth", NULL),
410 tp_asv_get_uint32 (properties, "MinimumAvatarHeight", NULL),
411 tp_asv_get_uint32 (properties, "RecommendedAvatarWidth", NULL),
412 tp_asv_get_uint32 (properties, "RecommendedAvatarHeight", NULL),
413 tp_asv_get_uint32 (properties, "MaximumAvatarWidth", NULL),
414 tp_asv_get_uint32 (properties, "MaximumAvatarHeight", NULL),
415 tp_asv_get_uint32 (properties, "MaximumAvatarBytes", NULL));
416
417 finally:
418 _tp_proxy_set_feature_prepared (proxy, TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS,
419 self->priv->avatar_requirements != NULL);
420 }
421
422 static void
423 tp_connection_maybe_prepare_avatar_requirements (TpProxy *proxy)
424 {
425 TpConnection *self = (TpConnection *) proxy;
426
427 if (self->priv->avatar_requirements != NULL)
428 return; /* already done */
429
430 if (!_tp_proxy_is_preparing (proxy, TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS))
431 return; /* not interested right now */
432
433 if (!self->priv->ready)
434 return; /* will try again when ready */
435
436 if (self->priv->fetching_avatar_requirements)
437 return; /* Another Get operation is running */
438
439 if (!tp_proxy_has_interface_by_id (proxy,
440 TP_IFACE_QUARK_CONNECTION_INTERFACE_AVATARS))
441 {
442 _tp_proxy_set_feature_prepared (proxy, TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS,
443 FALSE);
444 return;
445 }
446
447 self->priv->fetching_avatar_requirements = TRUE;
448
449 tp_cli_dbus_properties_call_get_all (self, -1,
450 TP_IFACE_CONNECTION_INTERFACE_AVATARS,
451 tp_connection_get_avatar_requirements_cb, NULL, NULL, NULL);
452 }
453
454 static void
353455 tp_connection_continue_introspection (TpConnection *self)
354456 {
355457 if (tp_proxy_get_invalidated (self) != NULL)
386488 g_object_notify ((GObject *) self, "connection-ready");
387489
388490 tp_connection_maybe_prepare_capabilities ((TpProxy *) self);
491 tp_connection_maybe_prepare_avatar_requirements ((TpProxy *) self);
389492 }
390493 else
391494 {
406509 GObject *weak_object G_GNUC_UNUSED)
407510 {
408511 TpConnection *self = TP_CONNECTION (proxy);
512 GArray *arr;
409513
410514 g_assert (self->priv->introspection_call != NULL);
411515 self->priv->introspection_call = NULL;
412516
413 if (error == NULL)
414 {
415 if (G_VALUE_HOLDS (value, G_TYPE_STRV))
517 if (error == NULL && G_VALUE_HOLDS (value, G_TYPE_STRV))
518 {
519 gchar **interfaces = g_value_get_boxed (value);
520 gchar **iter;
521
522 arr = g_array_sized_new (FALSE, FALSE, sizeof (GQuark),
523 interfaces == NULL ? 0 : g_strv_length (interfaces));
524
525 if (interfaces != NULL)
416526 {
417 GArray *arr;
418 gchar **interfaces = g_value_get_boxed (value);
419 gchar **iter;
420
421 arr = g_array_sized_new (FALSE, FALSE, sizeof (GQuark),
422 interfaces == NULL ? 0 : g_strv_length (interfaces));
423
424 if (interfaces != NULL)
527 for (iter = interfaces; *iter != NULL; iter++)
425528 {
426 for (iter = interfaces; *iter != NULL; iter++)
529 if (tp_dbus_check_valid_interface_name (*iter, NULL))
427530 {
428 if (tp_dbus_check_valid_interface_name (*iter, NULL))
429 {
430 GQuark q = g_quark_from_string (*iter);
431
432 DEBUG ("%p: ContactAttributeInterfaces has %s", self,
433 *iter);
434 g_array_append_val (arr, q);
435 }
436 else
437 {
438 DEBUG ("%p: ignoring invalid interface: %s", self,
439 *iter);
440 }
531 GQuark q = g_quark_from_string (*iter);
532
533 DEBUG ("%p: ContactAttributeInterfaces has %s", self,
534 *iter);
535 g_array_append_val (arr, q);
536 }
537 else
538 {
539 DEBUG ("%p: ignoring invalid interface: %s", self,
540 *iter);
441541 }
442542 }
443
444 if (self->priv->contact_attribute_interfaces != NULL)
445 g_array_free (self->priv->contact_attribute_interfaces, TRUE);
446
447 self->priv->contact_attribute_interfaces = arr;
448543 }
544 }
545 else
546 {
547 if (error == NULL)
548 DEBUG ("%p: ContactAttributeInterfaces had wrong type %s, "
549 "ignoring", self, G_VALUE_TYPE_NAME (value));
449550 else
450 {
451 DEBUG ("%p: ContactAttributeInterfaces had wrong type %s, "
452 "ignoring", self, G_VALUE_TYPE_NAME (value));
453 }
454 }
455 else
456 {
457 DEBUG ("%p: Get(Contacts, ContactAttributeInterfaces) failed with "
458 "%s %d: %s", self, g_quark_to_string (error->domain), error->code,
459 error->message);
460 }
551 DEBUG ("%p: Get(Contacts, ContactAttributeInterfaces) failed with "
552 "%s %d: %s", self, g_quark_to_string (error->domain), error->code,
553 error->message);
554
555 arr = g_array_sized_new (FALSE, FALSE, sizeof (GQuark), 0);
556 }
557
558 g_assert (self->priv->contact_attribute_interfaces == NULL);
559 self->priv->contact_attribute_interfaces = arr;
461560
462561 tp_connection_continue_introspection (self);
463562 }
651750 gpointer user_data,
652751 GObject *weak_object)
653752 {
654 if (self->priv->connection_error != NULL)
655 {
656 g_error_free (self->priv->connection_error);
657 self->priv->connection_error = NULL;
658 }
659
660 tp_proxy_dbus_error_to_gerror (self, error_name,
661 tp_asv_get_string (details, "debug-message"),
662 &(self->priv->connection_error));
753 g_free (self->priv->connection_error);
754 self->priv->connection_error = g_strdup (error_name);
755
756 if (self->priv->connection_error_details != NULL)
757 g_hash_table_unref (self->priv->connection_error_details);
758
759 self->priv->connection_error_details = g_boxed_copy (
760 TP_HASH_TYPE_STRING_VARIANT_MAP, details);
663761 }
664762
665763 static void
782880
783881 if (status == TP_CONNECTION_STATUS_DISCONNECTED)
784882 {
883 GError *error = NULL;
884
785885 if (self->priv->connection_error == NULL)
786886 {
787 tp_connection_status_reason_to_gerror (reason, prev_status,
788 &(self->priv->connection_error));
887 g_assert (self->priv->connection_error_details == NULL);
888
889 tp_connection_status_reason_to_gerror (reason, prev_status, &error);
789890 }
790
791 tp_proxy_invalidate ((TpProxy *) self, self->priv->connection_error);
792
793 g_error_free (self->priv->connection_error);
794 self->priv->connection_error = NULL;
891 else
892 {
893 g_assert (self->priv->connection_error_details != NULL);
894 tp_proxy_dbus_error_to_gerror (self, self->priv->connection_error,
895 tp_asv_get_string (self->priv->connection_error_details,
896 "debug-message"), &error);
897
898 /* ... but if we don't know anything about that D-Bus error
899 * name, we can still be more helpful by deriving an error code from
900 * TpConnectionStatusReason */
901 if (g_error_matches (error, TP_DBUS_ERRORS,
902 TP_DBUS_ERROR_UNKNOWN_REMOTE_ERROR))
903 {
904 GError *from_csr = NULL;
905
906 tp_connection_status_reason_to_gerror (reason, prev_status,
907 &from_csr);
908 error->domain = from_csr->domain;
909 error->code = from_csr->code;
910 g_error_free (from_csr);
911 }
912 }
913
914 tp_proxy_invalidate ((TpProxy *) self, error);
915 g_error_free (error);
795916 }
796917 }
797918
9111032 self->priv->contact_attribute_interfaces = NULL;
9121033 }
9131034
914 if (self->priv->connection_error != NULL)
915 {
916 g_error_free (self->priv->connection_error);
917 self->priv->connection_error = NULL;
1035 g_free (self->priv->connection_error);
1036 self->priv->connection_error = NULL;
1037
1038 if (self->priv->connection_error_details != NULL)
1039 {
1040 g_hash_table_unref (self->priv->connection_error_details);
1041 self->priv->connection_error_details = NULL;
9181042 }
9191043
9201044 ((GObjectClass *) tp_connection_parent_class)->finalize (object);
9511075 self->priv->capabilities = NULL;
9521076 }
9531077
1078 if (self->priv->avatar_requirements != NULL)
1079 {
1080 tp_avatar_requirements_destroy (self->priv->avatar_requirements);
1081 self->priv->avatar_requirements = NULL;
1082 }
1083
9541084 ((GObjectClass *) tp_connection_parent_class)->dispose (object);
9551085 }
9561086
9581088 FEAT_CORE,
9591089 FEAT_CONNECTED,
9601090 FEAT_CAPABILITIES,
1091 FEAT_AVATAR_REQUIREMENTS,
9611092 N_FEAT
9621093 };
9631094
9771108 features[FEAT_CAPABILITIES].name = TP_CONNECTION_FEATURE_CAPABILITIES;
9781109 features[FEAT_CAPABILITIES].start_preparing =
9791110 tp_connection_maybe_prepare_capabilities;
1111
1112 features[FEAT_AVATAR_REQUIREMENTS].name = TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS;
1113 features[FEAT_AVATAR_REQUIREMENTS].start_preparing =
1114 tp_connection_maybe_prepare_avatar_requirements;
9801115
9811116 /* assert that the terminator at the end is there */
9821117 g_assert (features[N_FEAT].name == 0);
11031238 /**
11041239 * tp_connection_new:
11051240 * @dbus: a D-Bus daemon; may not be %NULL
1106 * @bus_name: the well-known or unique name of the connection process;
1107 * if well-known, this function will make a blocking call to the bus daemon
1108 * to resolve the unique name. May be %NULL if @object_path is not, in which
1109 * case a well-known name will be derived from @object_path.
1110 * @object_path: the object path of the connection process. May be %NULL
1111 * if @bus_name is a well-known name, in which case the object path will
1112 * be derived from @bus_name.
1241 * @bus_name: (allow-none): the well-known or unique name of the connection
1242 * process; if well-known, this function will make a blocking call to the bus
1243 * daemon to resolve the unique name. May be %NULL if @object_path is not, in
1244 * which case a well-known name will be derived from @object_path.
1245 * @object_path: (allow-none): the object path of the connection process.
1246 * May be %NULL if @bus_name is a well-known name, in which case the object
1247 * path will be derived from @bus_name.
11131248 * @error: used to indicate the error if %NULL is returned
11141249 *
11151250 * <!-- -->
12081343 /**
12091344 * tp_connection_get_status:
12101345 * @self: a connection
1211 * @reason: a TpConnectionStatusReason, or %NULL
1346 * @reason: (out): a TpConnectionStatusReason, or %NULL
12121347 *
12131348 * If @reason is not %NULL it is set to the reason why "status" changed to its
12141349 * current value, or %TP_CONNECTION_STATUS_REASON_NONE_SPECIFIED if unknown.
12311366 }
12321367
12331368 /**
1234 * tp_connection_run_until_ready:
1369 * tp_connection_run_until_ready: (skip)
12351370 * @self: a connection
12361371 * @connect: if %TRUE, call Connect() if it appears to be necessary;
12371372 * if %FALSE, rely on Connect() to be called by another client
16861821 */
16871822
16881823 /**
1689 * tp_connection_call_when_ready:
1824 * tp_connection_call_when_ready: (skip)
16901825 * @self: a connection
16911826 * @callback: called when the connection becomes ready or invalidated,
16921827 * whichever happens first
18021937 /**
18031938 * tp_connection_parse_object_path:
18041939 * @self: a connection
1805 * @protocol: If not NULL, used to return the protocol of the connection
1806 * @cm_name: If not NULL, used to return the connection manager name of the
1807 * connection
1940 * @protocol: (out) (transfer full): If not NULL, used to return the protocol
1941 * of the connection
1942 * @cm_name: (out) (transfer full): If not NULL, used to return the connection
1943 * manager name of the connection
18081944 *
18091945 * If the object path of @connection is in the correct form, set
18101946 * @protocol and @cm_name, return TRUE. Otherwise leave them unchanged and
18722008
18732009
18742010 /**
1875 * tp_connection_is_ready:
2011 * tp_connection_is_ready: (skip)
18762012 * @self: a connection
18772013 *
18782014 * Returns the same thing as the #TpConnection:connection-ready property.
19052041
19062042 return self->priv->capabilities;
19072043 }
2044
2045 /**
2046 * tp_connection_get_avatar_requirements:
2047 * @self: a connection
2048 *
2049 * To wait for valid avatar requirements, call tp_proxy_prepare_async()
2050 * with the feature %TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS.
2051 *
2052 * This property cannot change after @self goes to the Connected state.
2053 *
2054 * Returns: (transfer none): a #TpAvatarRequirements struct, or %NULL if the
2055 * feature is not yet prepared or the connection doesn't have the necessary
2056 * properties.
2057 * Since: 0.11.4
2058 */
2059 TpAvatarRequirements *
2060 tp_connection_get_avatar_requirements (TpConnection *self)
2061 {
2062 g_return_val_if_fail (TP_IS_CONNECTION (self), NULL);
2063
2064 return self->priv->avatar_requirements;
2065 }
2066
2067 /**
2068 * TpAvatarRequirements:
2069 * @supported_mime_types: An array of supported MIME types (e.g. "image/jpeg")
2070 * Clients MAY assume that the first type in this array is preferred
2071 * @minimum_width: The minimum width in pixels of an avatar, which MAY be 0
2072 * @minimum_height: The minimum height in pixels of an avatar, which MAY be 0
2073 * @recommended_width: The recommended width in pixels of an avatar, or 0 if
2074 * there is no preferred width.
2075 * @recommended_height: The recommended height in pixels of an avatar, or 0 if
2076 * there is no preferred height
2077 * @maximum_width: The maximum width in pixels of an avatar on this protocol,
2078 * or 0 if there is no limit.
2079 * @maximum_height: The maximum height in pixels of an avatar, or 0 if there is
2080 * no limit.
2081 * @maximum_bytes: he maximum size in bytes of an avatar, or 0 if there is no
2082 * limit.
2083 *
2084 * The requirements for setting an avatar on a particular protocol.
2085 *
2086 * Since: 0.11.4
2087 */
2088
2089 /**
2090 * TP_TYPE_AVATAR_REQUIREMENTS:
2091 *
2092 * The boxed type of a #TpAvatarRequirements.
2093 *
2094 * Since: 0.11.4
2095 */
2096 GType
2097 tp_avatar_requirements_get_type (void)
2098 {
2099 static GType type = 0;
2100
2101 if (G_UNLIKELY (type == 0))
2102 {
2103 type = g_boxed_type_register_static (g_intern_static_string ("TpAvatarRequirements"),
2104 (GBoxedCopyFunc) tp_avatar_requirements_copy,
2105 (GBoxedFreeFunc) tp_avatar_requirements_destroy);
2106 }
2107
2108 return type;
2109 }
2110
2111 /**
2112 * tp_avatar_requirements_new:
2113 * @supported_mime_types: An array of supported MIME types (e.g. "image/jpeg")
2114 * Clients MAY assume that the first type in this array is preferred
2115 * @minimum_width: The minimum width in pixels of an avatar, which MAY be 0
2116 * @minimum_height: The minimum height in pixels of an avatar, which MAY be 0
2117 * @recommended_width: The recommended width in pixels of an avatar, or 0 if
2118 * there is no preferred width.
2119 * @recommended_height: The recommended height in pixels of an avatar, or 0 if
2120 * there is no preferred height
2121 * @maximum_width: The maximum width in pixels of an avatar on this protocol,
2122 * or 0 if there is no limit.
2123 * @maximum_height: The maximum height in pixels of an avatar, or 0 if there is
2124 * no limit.
2125 * @maximum_bytes: he maximum size in bytes of an avatar, or 0 if there is no
2126 * limit.
2127 *
2128 * <!--Returns: says it all-->
2129 *
2130 * Returns: a newly allocated #TpAvatarRequirements, free it with
2131 * tp_avatar_requirements_destroy()
2132 * Since: 0.11.4
2133 */
2134 TpAvatarRequirements *
2135 tp_avatar_requirements_new (GStrv supported_mime_types,
2136 guint minimum_width,
2137 guint minimum_height,
2138 guint recommended_width,
2139 guint recommended_height,
2140 guint maximum_width,
2141 guint maximum_height,
2142 guint maximum_bytes)
2143 {
2144 TpAvatarRequirements *self;
2145
2146 self = g_slice_new (TpAvatarRequirements);
2147 self->supported_mime_types = g_strdupv (supported_mime_types);
2148 self->minimum_width = minimum_width;
2149 self->minimum_height = minimum_height;
2150 self->recommended_width = recommended_width;
2151 self->recommended_height = recommended_height;
2152 self->maximum_width = maximum_width;
2153 self->maximum_height = maximum_height;
2154 self->maximum_bytes = maximum_bytes;
2155
2156 return self;
2157 }
2158
2159 /**
2160 * tp_avatar_requirements_copy:
2161 * @self: a #TpAvatarRequirements
2162 *
2163 * <!--Returns: says it all-->
2164 *
2165 * Returns: a newly allocated #TpAvatarRequirements, free it with
2166 * tp_avatar_requirements_destroy()
2167 * Since: 0.11.4
2168 */
2169 TpAvatarRequirements *
2170 tp_avatar_requirements_copy (TpAvatarRequirements *self)
2171 {
2172 g_return_val_if_fail (self != NULL, NULL);
2173
2174 return tp_avatar_requirements_new (self->supported_mime_types,
2175 self->minimum_width,
2176 self->minimum_height,
2177 self->recommended_width,
2178 self->recommended_height,
2179 self->maximum_width,
2180 self->maximum_height,
2181 self->maximum_bytes);
2182 }
2183
2184 /**
2185 * tp_avatar_requirements_destroy:
2186 * @self: a #TpAvatarRequirements
2187 *
2188 * Free all memory used by the #TpAvatarRequirements.
2189 *
2190 * Since: 0.11.4
2191 */
2192 void
2193 tp_avatar_requirements_destroy (TpAvatarRequirements *self)
2194 {
2195 g_return_if_fail (self != NULL);
2196
2197 g_strfreev (self->supported_mime_types);
2198 g_slice_free (TpAvatarRequirements, self);
2199 }
2200
2201 /**
2202 * tp_connection_get_detailed_error:
2203 * @self: a connection
2204 * @details: (out) (allow-none) (element-type utf8 GObject.Value) (transfer none):
2205 * optionally used to return a map from string to #GValue, which must not be
2206 * modified or destroyed by the caller
2207 *
2208 * If the connection has disconnected, return the D-Bus error name with which
2209 * it disconnected (in particular, this is %TP_ERROR_STR_CANCELLED if it was
2210 * disconnected by a user request).
2211 *
2212 * Otherwise, return %NULL, without altering @details.
2213 *
2214 * Returns: (transfer none) (allow-none): a D-Bus error name, or %NULL.
2215 *
2216 * Since: 0.11.4
2217 */
2218 const gchar *
2219 tp_connection_get_detailed_error (TpConnection *self,
2220 const GHashTable **details)
2221 {
2222 TpProxy *proxy = (TpProxy *) self;
2223
2224 if (proxy->invalidated == NULL)
2225 return NULL;
2226
2227 if (self->priv->connection_error != NULL)
2228 {
2229 g_assert (self->priv->connection_error_details != NULL);
2230
2231 if (details != NULL)
2232 *details = self->priv->connection_error_details;
2233
2234 return self->priv->connection_error;
2235 }
2236 else
2237 {
2238 /* no detailed error, but we *have* been invalidated - guess one based
2239 * on the invalidation reason, and don't give any details */
2240
2241 if (details != NULL)
2242 *details = tp_asv_new (NULL, NULL);
2243
2244 if (proxy->invalidated->domain == TP_ERRORS)
2245 {
2246 return tp_error_get_dbus_name (proxy->invalidated->code);
2247 }
2248 else if (proxy->invalidated->domain == TP_DBUS_ERRORS)
2249 {
2250 switch (proxy->invalidated->code)
2251 {
2252 case TP_DBUS_ERROR_NAME_OWNER_LOST:
2253 /* the CM probably crashed */
2254 return DBUS_ERROR_NO_REPLY;
2255 break;
2256
2257 case TP_DBUS_ERROR_OBJECT_REMOVED:
2258 case TP_DBUS_ERROR_UNKNOWN_REMOTE_ERROR:
2259 case TP_DBUS_ERROR_INCONSISTENT:
2260 /* ... and all other cases up to and including
2261 * TP_DBUS_ERROR_INCONSISTENT don't make sense in this context, so
2262 * just use the generic one for them too */
2263 default:
2264 return TP_ERROR_STR_DISCONNECTED;
2265 }
2266 }
2267 else
2268 {
2269 /* no idea what that means */
2270 return TP_ERROR_STR_DISCONNECTED;
2271 }
2272 }
2273 }
4747 TpProxy parent;
4848 TpConnectionPrivate *priv;
4949 };
50
51 typedef struct _TpAvatarRequirements TpAvatarRequirements;
52 struct _TpAvatarRequirements
53 {
54 gchar **supported_mime_types;
55 guint minimum_width;
56 guint minimum_height;
57 guint recommended_width;
58 guint recommended_height;
59 guint maximum_width;
60 guint maximum_height;
61 guint maximum_bytes;
62
63 /*<private>*/
64 gpointer _1;
65 gpointer _2;
66 gpointer _3;
67 gpointer _4;
68 };
69
70 #define TP_TYPE_AVATAR_REQUIREMENTS (tp_avatar_requirements_get_type ())
71 GType tp_avatar_requirements_get_type (void);
72
73 TpAvatarRequirements * tp_avatar_requirements_new (
74 GStrv supported_mime_types,
75 guint minimum_width,
76 guint minimum_height,
77 guint recommended_width,
78 guint recommended_height,
79 guint maximum_width,
80 guint maximum_height,
81 guint maximum_bytes);
82
83 TpAvatarRequirements * tp_avatar_requirements_copy (
84 TpAvatarRequirements *self);
85
86 void tp_avatar_requirements_destroy (TpAvatarRequirements *self);
87
5088
5189 GType tp_connection_get_type (void);
5290
82120
83121 TpCapabilities * tp_connection_get_capabilities (TpConnection *self);
84122
123 TpAvatarRequirements * tp_connection_get_avatar_requirements (
124 TpConnection *self);
125
85126 gboolean tp_connection_is_ready (TpConnection *self);
86127
87128 #ifndef TP_DISABLE_DEPRECATED
114155 gboolean tp_connection_parse_object_path (TpConnection *self, gchar **protocol,
115156 gchar **cm_name);
116157
158 const gchar *tp_connection_get_detailed_error (TpConnection *self,
159 const GHashTable **details);
160
117161 #define TP_CONNECTION_FEATURE_CORE \
118162 (tp_connection_get_feature_quark_core ())
119163 GQuark tp_connection_get_feature_quark_core (void) G_GNUC_CONST;
125169 #define TP_CONNECTION_FEATURE_CAPABILITIES \
126170 (tp_connection_get_feature_quark_capabilities ())
127171 GQuark tp_connection_get_feature_quark_capabilities (void) G_GNUC_CONST;
172
173 #define TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS \
174 (tp_connection_get_feature_quark_avatar_requirements ())
175 GQuark tp_connection_get_feature_quark_avatar_requirements (void) G_GNUC_CONST;
128176
129177 /* connection-handles.c */
130178
160160 *
161161 * <!-- nothing more to say -->
162162 *
163 * Returns: a borrowed reference to the #TpContact:connection
163 * Returns: (transfer none): a borrowed reference to the #TpContact:connection
164164 * (it must be referenced with g_object_ref if it must remain valid
165165 * longer than the contact)
166166 *
375375 * requires a hash table that will persist for longer than that, it must be
376376 * reffed with g_hash_table_ref().
377377 *
378 * Returns: the same #GHashTable (or %NULL) as the #TpContact:location property
378 * Returns: (element-type utf8 GObject.Value) (transfer none): the same
379 * #GHashTable (or %NULL) as the #TpContact:location property
379380 *
380381 * Since: 0.11.1
381382 */
995996 * @connection: The connection
996997 * @n_contacts: The number of TpContact objects successfully created
997998 * (one per valid ID), or 0 on unrecoverable errors
998 * @contacts: An array of @n_contacts TpContact objects (this callback is
999 * @contacts: (array length=n_contacts): An array of @n_contacts TpContact
1000 * objects (this callback is
9991001 * not given a reference to any of these objects, and must call
10001002 * g_object_ref() on any that it will keep), or %NULL on unrecoverable errors
1001 * @requested_ids: An array of @n_contacts valid IDs (JIDs, SIP URIs etc.)
1003 * @requested_ids: (array length=n_contacts): An array of @n_contacts valid IDs
1004 * (JIDs, SIP URIs etc.)
10021005 * that were passed to tp_connection_get_contacts_by_id(), in an order
10031006 * corresponding to @contacts, or %NULL on unrecoverable errors
1004 * @failed_id_errors: A hash table in which the keys are IDs
1005 * and the values are errors (#GError)
1007 * @failed_id_errors: (element-type utf8 GLib.Error): A hash table in which
1008 * the keys are IDs and the values are errors (#GError)
10061009 * @error: %NULL on success, or an unrecoverable error that caused everything
10071010 * to fail
10081011 * @user_data: the @user_data that was passed to
24102413 * @self: A connection, which must be ready (#TpConnection:connection-ready
24112414 * must be %TRUE)
24122415 * @n_contacts: The number of contacts in @contacts (must be at least 1)
2413 * @contacts: An array of #TpContact objects associated with @self
2416 * @contacts: (array length=n_contacts): An array of #TpContact objects
2417 * associated with @self
24142418 * @n_features: The number of features in @features (must be at least 1)
2415 * @features: An array of features that must be ready for use (if supported)
2416 * before the callback is called
2417 * @callback: A user callback to call when the contacts are ready
2419 * @features: (array length=n_features): An array of features that must be
2420 * ready for use (if supported) before the callback is called
2421 * @callback: (scope async): A user callback to call when the contacts are ready
24182422 * @user_data: Data to pass to the callback
24192423 * @destroy: Called to destroy @user_data either after @callback has been
24202424 * called, or if the operation is cancelled
2421 * @weak_object: An object to pass to the callback, which will be weakly
2422 * referenced; if this object is destroyed, the operation will be cancelled
2425 * @weak_object: (allow-none): An object to pass to the callback, which will be
2426 * weakly referenced; if this object is destroyed, the operation will be
2427 * cancelled
24232428 *
24242429 * Given several #TpContact objects, make asynchronous method calls
24252430 * ensure that all the features specified in @features are ready for use
26212626 * @self: A connection, which must be ready (#TpConnection:connection-ready
26222627 * must be %TRUE)
26232628 * @n_ids: The number of IDs in @ids (must be at least 1)
2624 * @ids: An array of strings representing the desired contacts by their
2629 * @ids: (array length=n_ids) (transfer none): An array of strings representing
2630 * the desired contacts by their
26252631 * identifiers in the IM protocol (XMPP JIDs, SIP URIs, MSN Passports,
26262632 * AOL screen-names etc.)
26272633 * @n_features: The number of features in @features (may be 0)
2628 * @features: An array of features that must be ready for use (if supported)
2634 * @features: (array length=n_features) (allow-none): An array of features
2635 * that must be ready for use (if supported)
26292636 * before the callback is called (may be %NULL if @n_features is 0)
2630 * @callback: A user callback to call when the contacts are ready
2637 * @callback: (scope async): A user callback to call when the contacts are ready
26312638 * @user_data: Data to pass to the callback
26322639 * @destroy: Called to destroy @user_data either after @callback has been
26332640 * called, or if the operation is cancelled
2634 * @weak_object: An object to pass to the callback, which will be weakly
2641 * @weak_object: (allow-none) (transfer none): An object to pass to the
2642 * callback, which will be weakly
26352643 * referenced; if this object is destroyed, the operation will be cancelled
26362644 *
26372645 * Create a number of #TpContact objects and make asynchronous method calls
193193 void
194194 tp_contacts_mixin_class_init (GObjectClass *obj_cls, glong offset)
195195 {
196 TpContactsMixinClass *mixin_cls;
197
198196 g_assert (G_IS_OBJECT_CLASS (obj_cls));
199197
200198 g_type_set_qdata (G_OBJECT_CLASS_TYPE (obj_cls),
201199 TP_CONTACTS_MIXIN_CLASS_OFFSET_QUARK,
202200 GINT_TO_POINTER (offset));
203
204 mixin_cls = TP_CONTACTS_MIXIN_CLASS (obj_cls);
205201
206202 tp_dbus_properties_mixin_implement_interface (obj_cls,
207203 TP_IFACE_QUARK_CONNECTION_INTERFACE_CONTACTS,
119119 }
120120
121121 /**
122 * tp_dbus_daemon_new:
122 * tp_dbus_daemon_new: (skip)
123123 * @connection: a connection to D-Bus
124124 *
125125 * Returns a proxy for signals and method calls on a particular bus
6464 #include <telepathy-glib/util.h>
6565
6666 /**
67 * tp_asv_size:
67 * tp_asv_size: (skip)
6868 * @asv: a GHashTable
6969 *
7070 * Return the size of @asv as if via g_hash_table_size().
7777 /* (#define + static inline in dbus.h) */
7878
7979 /**
80 * tp_dbus_g_method_return_not_implemented:
80 * tp_dbus_g_method_return_not_implemented: (skip)
8181 * @context: The D-Bus method invocation context
8282 *
8383 * Return the Telepathy error NotImplemented from the method invocation
105105 }
106106
107107 /**
108 * tp_get_bus:
108 * tp_get_bus: (skip)
109109 *
110110 * Returns a connection to the D-Bus daemon on which this process was
111111 * activated if it was launched by D-Bus service activation, or the session
137137 }
138138
139139 /**
140 * tp_get_bus_proxy:
140 * tp_get_bus_proxy: (skip)
141141 *
142142 * Return a #DBusGProxy for the bus daemon object. The same caveats as for
143143 * tp_get_bus() apply.
690690 }
691691
692692 /**
693 * tp_asv_new:
693 * tp_asv_new: (skip)
694694 * @first_key: the name of the first key (or NULL)
695695 * @...: type and value for the first key, followed by a NULL-terminated list
696696 * of (key, type, value) tuples
771771 }
772772
773773 /**
774 * tp_asv_get_boolean:
774 * tp_asv_get_boolean: (skip)
775775 * @asv: A GHashTable where the keys are strings and the values are GValues
776776 * @key: The key to look up
777777 * @valid: Either %NULL, or a location to store %TRUE if the key actually
812812 }
813813
814814 /**
815 * tp_asv_set_boolean:
815 * tp_asv_set_boolean: (skip)
816816 * @asv: a #GHashTable created with tp_asv_new()
817817 * @key: string key
818818 * @value: value
836836 }
837837
838838 /**
839 * tp_asv_get_bytes:
839 * tp_asv_get_bytes: (skip)
840840 * @asv: A GHashTable where the keys are strings and the values are GValues
841841 * @key: The key to look up
842842 *
871871 }
872872
873873 /**
874 * tp_asv_set_bytes:
874 * tp_asv_set_bytes: (skip)
875875 * @asv: a #GHashTable created with tp_asv_new()
876876 * @key: string key
877877 * @length: the number of bytes to copy
900900 }
901901
902902 /**
903 * tp_asv_take_bytes:
903 * tp_asv_take_bytes: (skip)
904904 * @asv: a #GHashTable created with tp_asv_new()
905905 * @key: string key
906906 * @value: a non-NULL #GArray of %guchar, ownership of which will be taken by
927927 }
928928
929929 /**
930 * tp_asv_get_string:
930 * tp_asv_get_string: (skip)
931931 * @asv: A GHashTable where the keys are strings and the values are GValues
932932 * @key: The key to look up
933933 *
960960 }
961961
962962 /**
963 * tp_asv_set_string:
963 * tp_asv_set_string: (skip)
964964 * @asv: a #GHashTable created with tp_asv_new()
965965 * @key: string key
966966 * @value: value
984984 }
985985
986986 /**
987 * tp_asv_take_string:
987 * tp_asv_take_string: (skip)
988988 * @asv: a #GHashTable created with tp_asv_new()
989989 * @key: string key
990990 * @value: value
10101010 }
10111011
10121012 /**
1013 * tp_asv_set_static_string:
1013 * tp_asv_set_static_string: (skip)
10141014 * @asv: a #GHashTable created with tp_asv_new()
10151015 * @key: string key
10161016 * @value: value
10361036 }
10371037
10381038 /**
1039 * tp_asv_get_int32:
1039 * tp_asv_get_int32: (skip)
10401040 * @asv: A GHashTable where the keys are strings and the values are GValues
10411041 * @key: The key to look up
10421042 * @valid: Either %NULL, or a location in which to store %TRUE on success or
11241124 }
11251125
11261126 /**
1127 * tp_asv_set_int32:
1127 * tp_asv_set_int32: (skip)
11281128 * @asv: a #GHashTable created with tp_asv_new()
11291129 * @key: string key
11301130 * @value: value
11481148 }
11491149
11501150 /**
1151 * tp_asv_get_uint32:
1151 * tp_asv_get_uint32: (skip)
11521152 * @asv: A GHashTable where the keys are strings and the values are GValues
11531153 * @key: The key to look up
11541154 * @valid: Either %NULL, or a location in which to store %TRUE on success or
12361236 }
12371237
12381238 /**
1239 * tp_asv_set_uint32:
1239 * tp_asv_set_uint32: (skip)
12401240 * @asv: a #GHashTable created with tp_asv_new()
12411241 * @key: string key
12421242 * @value: value
12601260 }
12611261
12621262 /**
1263 * tp_asv_get_int64:
1263 * tp_asv_get_int64: (skip)
12641264 * @asv: A GHashTable where the keys are strings and the values are GValues
12651265 * @key: The key to look up
12661266 * @valid: Either %NULL, or a location in which to store %TRUE on success or
13371337 }
13381338
13391339 /**
1340 * tp_asv_set_int64:
1340 * tp_asv_set_int64: (skip)
13411341 * @asv: a #GHashTable created with tp_asv_new()
13421342 * @key: string key
13431343 * @value: value
13611361 }
13621362
13631363 /**
1364 * tp_asv_get_uint64:
1364 * tp_asv_get_uint64: (skip)
13651365 * @asv: A GHashTable where the keys are strings and the values are GValues
13661366 * @key: The key to look up
13671367 * @valid: Either %NULL, or a location in which to store %TRUE on success or
14421442 }
14431443
14441444 /**
1445 * tp_asv_set_uint64:
1445 * tp_asv_set_uint64: (skip)
14461446 * @asv: a #GHashTable created with tp_asv_new()
14471447 * @key: string key
14481448 * @value: value
14661466 }
14671467
14681468 /**
1469 * tp_asv_get_double:
1469 * tp_asv_get_double: (skip)
14701470 * @asv: A GHashTable where the keys are strings and the values are GValues
14711471 * @key: The key to look up
14721472 * @valid: Either %NULL, or a location in which to store %TRUE on success or
15401540 }
15411541
15421542 /**
1543 * tp_asv_set_double:
1543 * tp_asv_set_double: (skip)
15441544 * @asv: a #GHashTable created with tp_asv_new()
15451545 * @key: string key
15461546 * @value: value
15641564 }
15651565
15661566 /**
1567 * tp_asv_get_object_path:
1567 * tp_asv_get_object_path: (skip)
15681568 * @asv: A GHashTable where the keys are strings and the values are GValues
15691569 * @key: The key to look up
15701570 *
15971597 }
15981598
15991599 /**
1600 * tp_asv_set_object_path:
1600 * tp_asv_set_object_path: (skip)
16011601 * @asv: a #GHashTable created with tp_asv_new()
16021602 * @key: string key
16031603 * @value: value
16231623 }
16241624
16251625 /**
1626 * tp_asv_take_object_path:
1626 * tp_asv_take_object_path: (skip)
16271627 * @asv: a #GHashTable created with tp_asv_new()
16281628 * @key: string key
16291629 * @value: value
16491649 }
16501650
16511651 /**
1652 * tp_asv_set_static_object_path:
1652 * tp_asv_set_static_object_path: (skip)
16531653 * @asv: a #GHashTable created with tp_asv_new()
16541654 * @key: string key
16551655 * @value: value
16751675 }
16761676
16771677 /**
1678 * tp_asv_get_boxed:
1678 * tp_asv_get_boxed: (skip)
16791679 * @asv: A GHashTable where the keys are strings and the values are GValues
16801680 * @key: The key to look up
16811681 * @type: The type that the key's value should have, which must be derived
17131713 }
17141714
17151715 /**
1716 * tp_asv_set_boxed:
1716 * tp_asv_set_boxed: (skip)
17171717 * @asv: a #GHashTable created with tp_asv_new()
17181718 * @key: string key
17191719 * @type: the type of the key's value, which must be derived from %G_TYPE_BOXED
17411741 }
17421742
17431743 /**
1744 * tp_asv_take_boxed:
1744 * tp_asv_take_boxed: (skip)
17451745 * @asv: a #GHashTable created with tp_asv_new()
17461746 * @key: string key
17471747 * @type: the type of the key's value, which must be derived from %G_TYPE_BOXED
17691769 }
17701770
17711771 /**
1772 * tp_asv_set_static_boxed:
1772 * tp_asv_set_static_boxed: (skip)
17731773 * @asv: a #GHashTable created with tp_asv_new()
17741774 * @key: string key
17751775 * @type: the type of the key's value, which must be derived from %G_TYPE_BOXED
17981798 }
17991799
18001800 /**
1801 * tp_asv_get_strv:
1801 * tp_asv_get_strv: (skip)
18021802 * @asv: A GHashTable where the keys are strings and the values are GValues
18031803 * @key: The key to look up
18041804 *
18321832 }
18331833
18341834 /**
1835 * tp_asv_set_strv:
1835 * tp_asv_set_strv: (skip)
18361836 * @asv: a #GHashTable created with tp_asv_new()
18371837 * @key: string key
18381838 * @value: a %NULL-terminated string array
18571857 }
18581858
18591859 /**
1860 * tp_asv_lookup:
1860 * tp_asv_lookup: (skip)
18611861 * @asv: A GHashTable where the keys are strings and the values are GValues
18621862 * @key: The key to look up
18631863 *
18811881 }
18821882
18831883 /**
1884 * tp_asv_dump:
1884 * tp_asv_dump: (skip)
18851885 * @asv: a #GHashTable created with tp_asv_new()
18861886 *
18871887 * Dumps the a{sv} map to the debugging console.
7777 static gboolean tp_debug_persistent = FALSE;
7878
7979 /**
80 * tp_debug_set_all_flags:
80 * tp_debug_set_all_flags: (skip)
8181 *
8282 * Activate all possible debug modes. This also activates persistent mode,
8383 * which should have been orthogonal.
174174 }
175175
176176 /**
177 * tp_debug_set_flags_from_string:
177 * tp_debug_set_flags_from_string: (skip)
178178 * @flags_string: The flags to set, comma-separated. If %NULL or empty,
179179 * no additional flags are set.
180180 *
203203 }
204204
205205 /**
206 * tp_debug_set_flags_from_env:
206 * tp_debug_set_flags_from_env: (skip)
207207 * @var: The name of the environment variable to parse
208208 *
209209 * Equivalent to
0 # To be included by Makefile.am.
1
2 introspection_extra_dist = kludge-616375.xsl
3
4 if HAVE_INTROSPECTION
5
6 INTROSPECTION_FILES = \
7 $(srcdir)/proxy.c _gen/proxy-introspectable.h \
8 $(srcdir)/account.c $(srcdir)/account.h \
9 $(srcdir)/account-manager.c $(srcdir)/account-manager.h \
10 $(srcdir)/connection.c $(srcdir)/connection.h \
11 $(srcdir)/connection-handles.c \
12 $(srcdir)/connection-manager.c $(srcdir)/connection-manager.h \
13 $(srcdir)/channel.c $(srcdir)/channel.h \
14 $(srcdir)/handle.c $(srcdir)/handle.h \
15 $(srcdir)/dbus-daemon.c $(srcdir)/dbus-daemon.h \
16 $(srcdir)/interfaces.c $(srcdir)/interfaces.h \
17 $(srcdir)/intset.c $(srcdir)/intset.h \
18 $(srcdir)/dbus.c $(srcdir)/dbus.h \
19 $(srcdir)/capabilities.c $(srcdir)/capabilities.h \
20 $(srcdir)/contact.c $(srcdir)/contact.h \
21 $(srcdir)/defs.h \
22 $(srcdir)/debug.c $(srcdir)/debug.h \
23 _gen/telepathy-enums.h \
24 _gen/telepathy-interfaces.h
25
26 _gen/proxy-introspectable.h: proxy.h introspection.am
27 @$(mkdir_p) _gen
28 $(AM_V_GEN)sed -e 's/gpointer self/TpProxy *self/' < $< > $@
29
30 TelepathyGLib-0.12.gir: $(INTROSPECTION_SCANNER) \
31 libtelepathy-glib.la \
32 $(srcdir)/kludge-616375.xsl \
33 $(INTROSPECTION_FILES)
34 $(AM_V_GEN)$(INTROSPECTION_SCANNER) -v \
35 --namespace TelepathyGLib \
36 --nsversion=$(VERSION) \
37 --strip-prefix=tp \
38 -I$(top_builddir) \
39 -I$(top_srcdir) \
40 --include=GLib-2.0 \
41 --include=Gio-2.0 \
42 --libtool="$(top_builddir)/libtool" \
43 --library=libtelepathy-glib.la \
44 --pkg gio-2.0 \
45 --pkg dbus-glib-1 \
46 --output _gen/$@.tmp \
47 $(INTROSPECTION_FILES)
48 @xsltproc $(srcdir)/kludge-616375.xsl _gen/$@.tmp > $@
49 @rm -f _gen/proxy-introspectable.h
50 @rm -f _gen/$@.tmp
51
52 girdir = $(datadir)/gir-1.0
53 gir_DATA = TelepathyGLib-0.12.gir
54
55 %.typelib: %.gir $(INTROSPECTION_COMPILER)
56 $(AM_V_GEN)$(top_builddir)/libtool --mode=execute \
57 $(INTROSPECTION_COMPILER) \
58 --includedir=$(srcdir) \
59 --includedir=. \
60 $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
61
62 typelibsdir = $(libdir)/girepository-1.0/
63 typelibs_DATA = $(gir_DATA:.gir=.typelib)
64
65 CLEANFILES += \
66 $(gir_DATA) \
67 $(typelibs_DATA)
68
69 endif
70
71 # vim:set ft=automake:
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!-- remove some items from the GIR
2
3 Tips from http://www.xmlplease.com/xsltidentity -->
4
5 <xsl:stylesheet xmlns:gi="http://www.gtk.org/introspection/core/1.0"
6 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
7 version="1.0">
8
9 <xsl:template match="@*|node()">
10 <xsl:copy>
11 <xsl:apply-templates select="@*|node()"/>
12 </xsl:copy>
13 </xsl:template>
14
15 <xsl:template match="gi:field[@name='dbus_connection']">
16 <xsl:message>Kludged around GNOME Bug #616375</xsl:message>
17 </xsl:template>
18
19 </xsl:stylesheet>
355355 static void tp_proxy_iface_destroyed_cb (DBusGProxy *dgproxy, TpProxy *self);
356356
357357 /**
358 * tp_proxy_borrow_interface_by_id:
358 * tp_proxy_borrow_interface_by_id: (skip)
359359 * @self: the TpProxy
360360 * @iface: quark representing the interface required
361361 * @error: used to raise an error in the #TP_DBUS_ERRORS domain if @iface
555555 }
556556
557557 /**
558 * tp_proxy_add_interface_by_id:
558 * tp_proxy_add_interface_by_id: (skip)
559559 * @self: the TpProxy, which must not have become #TpProxy::invalidated.
560560 * @iface: quark representing the interface to be added
561561 *
11381138 param_spec);
11391139
11401140 /**
1141 * TpProxy:dbus-connection:
1141 * TpProxy:dbus-connection: (skip)
11421142 *
11431143 * The D-Bus connection for this object. Read-only except during
11441144 * construction.
11881188 param_spec);
11891189
11901190 /**
1191 * TpProxy::interface-added:
1191 * TpProxy::interface-added: (skip)
11921192 * @self: the proxy object
11931193 * @id: the GQuark representing the interface
11941194 * @proxy: the dbus-glib proxy representing the interface
12351235 *
12361236 * <!-- -->
12371237 *
1238 * Returns: a borrowed reference to the #TpDBusDaemon for this object, if any;
1239 * always %NULL if this object is itself a #TpDBusDaemon. The caller must
1240 * reference the returned object with g_object_ref() if it will be kept.
1238 * Returns: (transfer none): a borrowed reference to the #TpDBusDaemon for
1239 * this object, if any; always %NULL if this object is itself a
1240 * #TpDBusDaemon. The caller must reference the returned object with
1241 * g_object_ref() if it will be kept.
12411242 *
12421243 * Since: 0.7.17
12431244 */
12501251 }
12511252
12521253 /**
1253 * tp_proxy_get_dbus_connection:
1254 * tp_proxy_get_dbus_connection: (skip)
12541255 * @self: a #TpProxy or subclass
12551256 *
12561257 * <!-- -->
15171518 /**
15181519 * tp_proxy_prepare_async:
15191520 * @self: an instance of a #TpProxy subclass
1520 * @features: an array of desired features, ending with 0; %NULL is
1521 * equivalent to an array containing only 0
1521 * @features: (transfer none) (array zero-terminated=1) (allow-none): an array
1522 * of desired features, ending with 0; %NULL is equivalent to an array
1523 * containing only 0
15221524 * @callback: if not %NULL, called exactly once, when the features have all
15231525 * been prepared or failed to prepare, or after the proxy is invalidated
15241526 * @user_data: user data for @callback
10871087 * <example>
10881088 * <title>using tp_value_array_unpack</title>
10891089 * <programlisting>
1090 * gchar *host;
1090 * const gchar *host;
10911091 * guint port;
10921092 *
10931093 * tp_value_array_unpack (array, 2,
0 Version: TELEPATHY_GLIB_0.11.4
1 Extends: TELEPATHY_GLIB_0.11.3
2 Release: 0.11.4
3
4 tp_avatar_requirements_copy
5 tp_avatar_requirements_destroy
6 tp_avatar_requirements_get_type
7 tp_avatar_requirements_new
8 tp_connection_get_avatar_requirements
9 tp_connection_get_detailed_error
10 tp_connection_get_feature_quark_avatar_requirements
3131 $(TESTS_ENVIRONMENT) \
3232 G_SLICE=always-malloc \
3333 $(top_builddir)/libtool --mode=execute \
34 $(VALGRIND) $(VALGRIND_FLAGS)
34 $(VALGRIND) --suppressions=$(top_srcdir)/tests/tests.supp $(VALGRIND_FLAGS)
3535
3636 check-valgrind:
3737 $(MAKE) check-TESTS \
4141 $(MAKE) -C dbus check-valgrind
4242
4343 EXTRA_DIST = README \
44 all-errors-documented.py
44 all-errors-documented.py \
45 tests.supp
4546
4647 test_asv_SOURCES = \
4748 asv.c
5051 test_capabilities_SOURCES = \
5152 capabilities.c
5253 test_capabilities_LDADD = \
54 $(top_builddir)/tests/lib/libtp-glib-tests.la \
5355 $(top_builddir)/telepathy-glib/libtelepathy-glib-internal.la \
5456 $(GLIB_LIBS)
5557
4444 subdir = tests
4545 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
4646 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
47 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
48 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
49 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
50 $(top_srcdir)/m4/lt~obsolete.m4 \
47 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/introspection.m4 \
48 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/linker.m4 \
49 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
50 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
5151 $(top_srcdir)/m4/tp-compiler-flag.m4 \
5252 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
5353 $(top_srcdir)/configure.ac
7777 am_test_capabilities_OBJECTS = capabilities.$(OBJEXT)
7878 test_capabilities_OBJECTS = $(am_test_capabilities_OBJECTS)
7979 test_capabilities_DEPENDENCIES = \
80 $(top_builddir)/tests/lib/libtp-glib-tests.la \
8081 $(top_builddir)/telepathy-glib/libtelepathy-glib-internal.la \
8182 $(am__DEPENDENCIES_1)
8283 am_test_debug_domain_OBJECTS = debug-domain.$(OBJEXT)
246247 INSTALL_PROGRAM = @INSTALL_PROGRAM@
247248 INSTALL_SCRIPT = @INSTALL_SCRIPT@
248249 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
250 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
251 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
252 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
253 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
254 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
249255 LD = @LD@
250256 LDFLAGS = @LDFLAGS@
251257 LIBOBJS = @LIBOBJS@
373379 $(TESTS_ENVIRONMENT) \
374380 G_SLICE=always-malloc \
375381 $(top_builddir)/libtool --mode=execute \
376 $(VALGRIND) $(VALGRIND_FLAGS)
382 $(VALGRIND) --suppressions=$(top_srcdir)/tests/tests.supp $(VALGRIND_FLAGS)
377383
378384 EXTRA_DIST = README \
379 all-errors-documented.py
385 all-errors-documented.py \
386 tests.supp
380387
381388 test_asv_SOURCES = \
382389 asv.c
387394 capabilities.c
388395
389396 test_capabilities_LDADD = \
397 $(top_builddir)/tests/lib/libtp-glib-tests.la \
390398 $(top_builddir)/telepathy-glib/libtelepathy-glib-internal.la \
391399 $(GLIB_LIBS)
392400
55 (a temporary session bus will be used)
66
77 /tests/tools/ if they're shell scripts that test the code generation tools
8
9 To run a single test:
10 make -C tests/dbus check TESTS=test-contacts
9494 add_text_chat_class (classes, TP_HANDLE_TYPE_CONTACT);
9595 add_ft_class (classes);
9696
97 caps = g_object_new (TP_TYPE_CAPABILITIES,
97 caps = test_object_new_static_class (TP_TYPE_CAPABILITIES,
9898 "channel-classes", classes,
9999 "contact-specific", FALSE,
100100 NULL);
163163 classes = g_ptr_array_sized_new (1);
164164 add_text_chat_class (classes, TP_HANDLE_TYPE_CONTACT);
165165
166 caps = g_object_new (TP_TYPE_CAPABILITIES,
166 caps = test_object_new_static_class (TP_TYPE_CAPABILITIES,
167167 "channel-classes", classes,
168168 "contact-specific", TRUE,
169169 NULL);
181181 classes = g_ptr_array_sized_new (1);
182182 add_text_chat_class (classes, TP_HANDLE_TYPE_ROOM);
183183
184 caps = g_object_new (TP_TYPE_CAPABILITIES,
184 caps = test_object_new_static_class (TP_TYPE_CAPABILITIES,
185185 "channel-classes", classes,
186186 "contact-specific", TRUE,
187187 NULL);
200200 add_text_chat_class (classes, TP_HANDLE_TYPE_CONTACT);
201201 add_text_chat_class (classes, TP_HANDLE_TYPE_ROOM);
202202
203 caps = g_object_new (TP_TYPE_CAPABILITIES,
203 caps = test_object_new_static_class (TP_TYPE_CAPABILITIES,
204204 "channel-classes", classes,
205205 "contact-specific", TRUE,
206206 NULL);
193193 $(TESTS_ENVIRONMENT) \
194194 env G_SLICE=always-malloc \
195195 $(top_builddir)/libtool --mode=execute \
196 $(VALGRIND) $(VALGRIND_FLAGS)
196 $(VALGRIND) --suppressions=$(top_srcdir)/tests/tests.supp $(VALGRIND_FLAGS)
197197
198198 BUILT_SOURCES = \
199199 dbus-1/session.conf \
6565 subdir = tests/dbus
6666 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
6767 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
68 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
69 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
70 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
71 $(top_srcdir)/m4/lt~obsolete.m4 \
68 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/introspection.m4 \
69 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/linker.m4 \
70 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
71 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
7272 $(top_srcdir)/m4/tp-compiler-flag.m4 \
7373 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
7474 $(top_srcdir)/configure.ac
517517 INSTALL_PROGRAM = @INSTALL_PROGRAM@
518518 INSTALL_SCRIPT = @INSTALL_SCRIPT@
519519 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
520 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
521 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
522 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
523 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
524 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
520525 LD = @LD@
521526 LDFLAGS = @LDFLAGS@
522527 LIBOBJS = @LIBOBJS@
738743 $(TESTS_ENVIRONMENT) \
739744 env G_SLICE=always-malloc \
740745 $(top_builddir)/libtool --mode=execute \
741 $(VALGRIND) $(VALGRIND_FLAGS)
746 $(VALGRIND) --suppressions=$(top_srcdir)/tests/tests.supp $(VALGRIND_FLAGS)
742747
743748 BUILT_SOURCES = \
744749 dbus-1/session.conf \
142142 g_assert (tp_dbus_daemon_request_name (test->dbus,
143143 TP_ACCOUNT_MANAGER_BUS_NAME, FALSE, &test->error));
144144
145 test->service = g_object_new (SIMPLE_TYPE_ACCOUNT_MANAGER, NULL);
145 test->service = test_object_new_static_class (SIMPLE_TYPE_ACCOUNT_MANAGER,
146 NULL);
146147 tp_dbus_daemon_register_object (test->dbus, TP_ACCOUNT_MANAGER_OBJECT_PATH,
147148 test->service);
148149 }
163164 }
164165 g_queue_free (test->script);
165166 test->script = NULL;
167
168 /* make sure any pending things have happened */
169 test_proxy_run_until_dbus_queue_processed (test->dbus);
170
166171 g_object_unref (test->dbus);
167172 test->dbus = NULL;
168173 g_main_loop_unref (test->mainloop);
1010 #include <telepathy-glib/account.h>
1111 #include <telepathy-glib/debug.h>
1212 #include <telepathy-glib/defs.h>
13 #include <telepathy-glib/svc-account.h>
1314
1415 #include "tests/lib/util.h"
16 #include "tests/lib/simple-account.h"
17 #include "tests/lib/util.h"
18
19 #define ACCOUNT_PATH TP_ACCOUNT_OBJECT_PATH_BASE "what/ev/er"
20 #define CONN1_PATH TP_CONN_OBJECT_PATH_BASE "what/ev/er"
21 #define CONN2_PATH TP_CONN_OBJECT_PATH_BASE "what/ev/s"
22 #define CONN1_BUS_NAME TP_CONN_BUS_NAME_BASE "what.ev.er"
23 #define CONN2_BUS_NAME TP_CONN_BUS_NAME_BASE "what.ev.s"
1524
1625 static void
1726 test_parse_failure (gconstpointer test_data)
7382 TpDBusDaemon *dbus;
7483
7584 TpAccount *account;
85 gulong notify_id;
86 /* g_strdup (property name) => GUINT_TO_POINTER (counter) */
87 GHashTable *times_notified;
7688 GError *error /* initialized where needed */;
89
90 SimpleAccount *account_service /* initialized in prepare_service */;
7791 } Test;
7892
7993 static void
8599 g_assert (test->dbus != NULL);
86100
87101 test->account = NULL;
102
103 test->times_notified = g_hash_table_new_full (g_str_hash, g_str_equal,
104 g_free, NULL);
105 }
106
107 static void
108 setup_service (Test *test,
109 gconstpointer data)
110 {
111 setup (test, data);
112
113 tp_dbus_daemon_request_name (test->dbus,
114 TP_ACCOUNT_MANAGER_BUS_NAME, FALSE, &test->error);
115 g_assert_no_error (test->error);
116
117 tp_dbus_daemon_request_name (test->dbus,
118 CONN1_BUS_NAME, FALSE, &test->error);
119 g_assert_no_error (test->error);
120
121 tp_dbus_daemon_request_name (test->dbus,
122 CONN2_BUS_NAME, FALSE, &test->error);
123 g_assert_no_error (test->error);
124
125 test->account_service = g_object_new (SIMPLE_TYPE_ACCOUNT, NULL);
126 tp_dbus_daemon_register_object (test->dbus, ACCOUNT_PATH,
127 test->account_service);
128 }
129
130 static guint
131 test_get_times_notified (Test *test,
132 const gchar *property)
133 {
134 return GPOINTER_TO_UINT (g_hash_table_lookup (test->times_notified,
135 property));
136 }
137
138 static void
139 test_notify_cb (Test *test,
140 GParamSpec *pspec,
141 TpAccount *account)
142 {
143 guint counter = test_get_times_notified (test, pspec->name);
144
145 g_hash_table_insert (test->times_notified, g_strdup (pspec->name),
146 GUINT_TO_POINTER (++counter));
147 }
148
149 static void
150 test_set_up_account_notify (Test *test)
151 {
152 g_assert (test->account != NULL);
153
154 g_hash_table_remove_all (test->times_notified);
155
156 if (test->notify_id != 0)
157 {
158 g_signal_handler_disconnect (test->account, test->notify_id);
159 }
160
161 test->notify_id = g_signal_connect_swapped (test->account, "notify",
162 G_CALLBACK (test_notify_cb), test);
88163 }
89164
90165 static void
93168 {
94169 if (test->account != NULL)
95170 {
171 test_proxy_run_until_dbus_queue_processed (test->account);
172
173 if (test->notify_id != 0)
174 {
175 g_signal_handler_disconnect (test->account, test->notify_id);
176 }
177
96178 g_object_unref (test->account);
97179 test->account = NULL;
98180 }
181
182 g_hash_table_destroy (test->times_notified);
183 test->times_notified = NULL;
184
185 /* make sure any pending calls on the account have happened, so it can die */
186 test_proxy_run_until_dbus_queue_processed (test->dbus);
99187
100188 g_object_unref (test->dbus);
101189 test->dbus = NULL;
104192 }
105193
106194 static void
195 teardown_service (Test *test,
196 gconstpointer data)
197 {
198 tp_dbus_daemon_release_name (test->dbus, TP_ACCOUNT_MANAGER_BUS_NAME,
199 &test->error);
200 g_assert_no_error (test->error);
201 tp_dbus_daemon_release_name (test->dbus, CONN1_BUS_NAME,
202 &test->error);
203 g_assert_no_error (test->error);
204 tp_dbus_daemon_release_name (test->dbus, CONN2_BUS_NAME,
205 &test->error);
206 g_assert_no_error (test->error);
207
208 tp_dbus_daemon_unregister_object (test->dbus, test->account_service);
209
210 g_object_unref (test->account_service);
211 test->account_service = NULL;
212
213 teardown (test, data);
214 }
215
216 static void
107217 test_new (Test *test,
108218 gconstpointer data G_GNUC_UNUSED)
109219 {
118228 test->account = tp_account_new (test->dbus,
119229 "/org/freedesktop/Telepathy/Account/what/ev/er", NULL);
120230 g_assert (test->account != NULL);
231 }
232
233 static void
234 account_prepare_cb (GObject *source,
235 GAsyncResult *result,
236 gpointer user_data)
237 {
238 Test *test = user_data;
239 GError *error = NULL;
240
241 tp_proxy_prepare_finish (source, result, &error);
242 g_assert_no_error (error);
243
244 g_main_loop_quit (test->mainloop);
245 }
246
247 static void
248 test_prepare_success (Test *test,
249 gconstpointer data G_GNUC_UNUSED)
250 {
251 GQuark account_features[] = { TP_ACCOUNT_FEATURE_CORE, 0 };
252 TpConnectionStatusReason reason;
253 gchar *status = NULL;
254 gchar *message = NULL;
255
256 test->account = tp_account_new (test->dbus, ACCOUNT_PATH, NULL);
257 g_assert (test->account != NULL);
258
259 tp_proxy_prepare_async (test->account, account_features,
260 account_prepare_cb, test);
261 g_main_loop_run (test->mainloop);
262
263 /* the obvious accessors */
264 g_assert (tp_account_is_prepared (test->account, TP_ACCOUNT_FEATURE_CORE));
265 g_assert (tp_account_is_enabled (test->account));
266 g_assert (tp_account_is_valid (test->account));
267 g_assert_cmpstr (tp_account_get_display_name (test->account), ==,
268 "Fake Account");
269 g_assert_cmpstr (tp_account_get_nickname (test->account), ==, "badger");
270 g_assert_cmpuint (tp_asv_size (tp_account_get_parameters (test->account)),
271 ==, 0);
272 g_assert (!tp_account_get_connect_automatically (test->account));
273 g_assert (tp_account_get_has_been_online (test->account));
274 g_assert_cmpint (tp_account_get_connection_status (test->account, NULL),
275 ==, TP_CONNECTION_STATUS_CONNECTED);
276 g_assert_cmpint (tp_account_get_connection_status (test->account, &reason),
277 ==, TP_CONNECTION_STATUS_CONNECTED);
278 g_assert_cmpint (reason, ==, TP_CONNECTION_STATUS_REASON_REQUESTED);
279
280 /* the CM and protocol come from the object path */
281 g_assert_cmpstr (tp_account_get_connection_manager (test->account),
282 ==, "what");
283 g_assert_cmpstr (tp_account_get_protocol (test->account), ==, "ev");
284
285 /* the icon name in SimpleAccount is "", so we guess based on the protocol */
286 g_assert_cmpstr (tp_account_get_icon_name (test->account), ==, "im-ev");
287
288 /* RequestedPresence is (Available, "available", "") */
289 g_assert_cmpint (tp_account_get_requested_presence (test->account, NULL,
290 NULL), ==, TP_CONNECTION_PRESENCE_TYPE_AVAILABLE);
291 g_assert_cmpint (tp_account_get_requested_presence (test->account, &status,
292 NULL), ==, TP_CONNECTION_PRESENCE_TYPE_AVAILABLE);
293 g_assert_cmpstr (status, ==, "available");
294 g_free (status);
295 g_assert_cmpint (tp_account_get_requested_presence (test->account, NULL,
296 &message), ==, TP_CONNECTION_PRESENCE_TYPE_AVAILABLE);
297 g_assert_cmpstr (message, ==, "");
298 g_free (message);
299
300 /* CurrentPresence is the same as RequestedPresence */
301 g_assert_cmpint (tp_account_get_current_presence (test->account, NULL,
302 NULL), ==, TP_CONNECTION_PRESENCE_TYPE_AVAILABLE);
303 g_assert_cmpint (tp_account_get_current_presence (test->account, &status,
304 NULL), ==, TP_CONNECTION_PRESENCE_TYPE_AVAILABLE);
305 g_assert_cmpstr (status, ==, "available");
306 g_free (status);
307 g_assert_cmpint (tp_account_get_current_presence (test->account, NULL,
308 &message), ==, TP_CONNECTION_PRESENCE_TYPE_AVAILABLE);
309 g_assert_cmpstr (message, ==, "");
310 g_free (message);
311
312 /* NormalizedName and AutomaticPresence aren't available yet */
313 }
314
315 static void
316 test_connection (Test *test,
317 gconstpointer data G_GNUC_UNUSED)
318 {
319 GQuark account_features[] = { TP_ACCOUNT_FEATURE_CORE, 0 };
320 GHashTable *change = tp_asv_new (NULL, NULL);
321 TpConnection *conn;
322
323 test->account = tp_account_new (test->dbus, ACCOUNT_PATH, NULL);
324 g_assert (test->account != NULL);
325
326 tp_proxy_prepare_async (test->account, account_features,
327 account_prepare_cb, test);
328 g_main_loop_run (test->mainloop);
329
330 g_assert (tp_account_is_prepared (test->account, TP_ACCOUNT_FEATURE_CORE));
331
332 /* a connection turns up */
333
334 test_set_up_account_notify (test);
335 tp_asv_set_object_path (change, "Connection", CONN1_PATH);
336 tp_asv_set_uint32 (change, "ConnectionStatus",
337 TP_CONNECTION_STATUS_CONNECTING);
338 tp_asv_set_uint32 (change, "ConnectionStatusReason",
339 TP_CONNECTION_STATUS_REASON_REQUESTED);
340 tp_svc_account_emit_account_property_changed (test->account_service, change);
341 g_hash_table_remove_all (change);
342
343 while (test_get_times_notified (test, "connection") < 1)
344 g_main_context_iteration (NULL, TRUE);
345
346 g_assert_cmpuint (test_get_times_notified (test, "connection"), ==, 1);
347 conn = tp_account_get_connection (test->account);
348 g_assert_cmpstr (tp_proxy_get_object_path (conn), ==, CONN1_PATH);
349 g_assert_cmpuint (test_get_times_notified (test, "connection"), ==, 1);
350
351 /* ensure the same connection - no change notification */
352
353 test_set_up_account_notify (test);
354 conn = tp_account_ensure_connection (test->account, CONN1_PATH);
355 g_assert_cmpstr (tp_proxy_get_object_path (conn), ==, CONN1_PATH);
356 g_assert_cmpuint (test_get_times_notified (test, "connection"), ==, 0);
357
358 /* a no-op "change" */
359
360 test_set_up_account_notify (test);
361 tp_asv_set_object_path (change, "Connection", CONN1_PATH);
362 tp_asv_set_uint32 (change, "ConnectionStatus",
363 TP_CONNECTION_STATUS_CONNECTING);
364 tp_asv_set_uint32 (change, "ConnectionStatusReason",
365 TP_CONNECTION_STATUS_REASON_REQUESTED);
366 tp_svc_account_emit_account_property_changed (test->account_service, change);
367 g_hash_table_remove_all (change);
368
369 test_proxy_run_until_dbus_queue_processed (test->account);
370
371 g_assert_cmpuint (test_get_times_notified (test, "connection"), ==, 0);
372 conn = tp_account_get_connection (test->account);
373 g_assert_cmpstr (tp_proxy_get_object_path (conn), ==, CONN1_PATH);
374 g_assert_cmpuint (test_get_times_notified (test, "connection"), ==, 0);
375
376 /* atomically flip from one connection to another (unlikely) */
377
378 test_set_up_account_notify (test);
379 tp_asv_set_object_path (change, "Connection", CONN2_PATH);
380 tp_asv_set_uint32 (change, "ConnectionStatus",
381 TP_CONNECTION_STATUS_CONNECTED);
382 tp_asv_set_uint32 (change, "ConnectionStatusReason",
383 TP_CONNECTION_STATUS_REASON_REQUESTED);
384 tp_svc_account_emit_account_property_changed (test->account_service, change);
385 g_hash_table_remove_all (change);
386
387 while (test_get_times_notified (test, "connection") < 1)
388 g_main_context_iteration (NULL, TRUE);
389
390 g_assert_cmpuint (test_get_times_notified (test, "connection"), ==, 1);
391 conn = tp_account_get_connection (test->account);
392 g_assert_cmpstr (tp_proxy_get_object_path (conn), ==, CONN2_PATH);
393 g_assert_cmpuint (test_get_times_notified (test, "connection"), ==, 1);
394
395 /* no more connection for you */
396
397 test_set_up_account_notify (test);
398 tp_asv_set_object_path (change, "Connection", "/");
399 tp_asv_set_uint32 (change, "ConnectionStatus",
400 TP_CONNECTION_STATUS_DISCONNECTED);
401 tp_asv_set_uint32 (change, "ConnectionStatusReason",
402 TP_CONNECTION_STATUS_REASON_ENCRYPTION_ERROR);
403 tp_svc_account_emit_account_property_changed (test->account_service, change);
404 g_hash_table_remove_all (change);
405
406 while (test_get_times_notified (test, "connection") < 1)
407 g_main_context_iteration (NULL, TRUE);
408
409 g_assert_cmpuint (test_get_times_notified (test, "connection"), ==, 1);
410 conn = tp_account_get_connection (test->account);
411 g_assert (conn == NULL);
412
413 /* staple on a Connection (this is intended for use in e.g. observers,
414 * if they're told about a Connection that the Account hasn't told them
415 * about yet) */
416
417 test_set_up_account_notify (test);
418 conn = tp_account_ensure_connection (test->account, CONN1_PATH);
419 g_assert_cmpstr (tp_proxy_get_object_path (conn), ==, CONN1_PATH);
420 g_assert_cmpuint (test_get_times_notified (test, "connection"), ==, 1);
421
422 g_hash_table_destroy (change);
121423 }
122424
123425 int
169471
170472 g_test_add ("/account/new", Test, NULL, setup, test_new, teardown);
171473
474 g_test_add ("/account/prepare/success", Test, NULL, setup_service,
475 test_prepare_success, teardown_service);
476
477 g_test_add ("/account/connection", Test, NULL, setup_service,
478 test_connection, teardown_service);
479
172480 return g_test_run ();
173481 }
218218
219219 /* b gets its pending call cancelled because the weak object is
220220 * destroyed */
221 b_stub = g_object_new (stub_object_get_type (), NULL);
221 b_stub = test_object_new_static_class (stub_object_get_type (), NULL);
222222 g_message ("Starting call on b");
223223 tp_cli_dbus_daemon_call_list_names (b, -1, listed_names, PTR (TEST_B),
224224 destroy_user_data, b_stub);
329329 * *and* there is a signal connection
330330 * (used to reproduce fd.o #14750 - see case h in test-disconnection.c
331331 * for the minimal regression test) */
332 i_stub = g_object_new (stub_object_get_type (), NULL);
332 i_stub = test_object_new_static_class (stub_object_get_type (), NULL);
333333 tp_cli_dbus_daemon_connect_to_name_owner_changed (i, noc, PTR (TEST_I),
334334 NULL, i_stub, NULL);
335335 g_message ("Starting call on i");
353353
354354 /* j gets its pending call cancelled explicitly, and j_stub is
355355 * destroyed in response (related to fd.o #14750) */
356 j_stub = g_object_new (stub_object_get_type (), NULL);
356 j_stub = test_object_new_static_class (stub_object_get_type (), NULL);
357357 g_object_weak_ref (j_stub, j_stub_destroyed, PTR (TEST_J));
358358 g_message ("Starting call on j");
359359 pc = tp_cli_dbus_daemon_call_list_names (j, -1, listed_names, j_stub,
368368 * is destroyed, meaning there are simultaneously two reasons for it
369369 * to become cancelled (equivalent to fd.o#14750, but for pending calls
370370 * rather than signal connections) */
371 k_stub = g_object_new (stub_object_get_type (), NULL);
371 k_stub = test_object_new_static_class (stub_object_get_type (), NULL);
372372 g_message ("Starting call on k");
373373 g_object_weak_ref (k_stub, k_stub_destroyed, &pc);
374374 tp_cli_dbus_daemon_call_list_names (k, -1, listed_names, PTR (TEST_K),
122122 test->mainloop = g_main_loop_new (NULL, FALSE);
123123 test->dbus = test_dbus_daemon_dup_or_die ();
124124
125 test->service_cm = EXAMPLE_CALL_CONNECTION_MANAGER (g_object_new (
125 test->service_cm = EXAMPLE_CALL_CONNECTION_MANAGER (test_object_new_static_class (
126126 EXAMPLE_TYPE_CALL_CONNECTION_MANAGER,
127127 NULL));
128128 g_assert (test->service_cm != NULL);
10741074
10751075 CLEAR_OBJECT (&test->service_cm);
10761076
1077 /* make sure any pending things have happened */
1078 test_proxy_run_until_dbus_queue_processed (test->dbus);
1079
10771080 CLEAR_OBJECT (&test->dbus);
10781081 g_main_loop_unref (test->mainloop);
10791082 test->mainloop = NULL;
239239 test->mainloop = g_main_loop_new (NULL, FALSE);
240240 test->dbus = test_dbus_daemon_dup_or_die ();
241241
242 test->service_cm = EXAMPLE_CALLABLE_CONNECTION_MANAGER (g_object_new (
242 test->service_cm = EXAMPLE_CALLABLE_CONNECTION_MANAGER (test_object_new_static_class (
243243 EXAMPLE_TYPE_CALLABLE_CONNECTION_MANAGER,
244244 NULL));
245245 g_assert (test->service_cm != NULL);
15511551
15521552 CLEAR_OBJECT (&test->service_cm);
15531553
1554 /* make sure any pending things have happened */
1555 test_proxy_run_until_dbus_queue_processed (test->dbus);
1556
15541557 CLEAR_OBJECT (&test->dbus);
15551558 g_main_loop_unref (test->mainloop);
15561559 test->mainloop = NULL;
8282
8383 test->cdo = NULL;
8484
85 test->cdo_service = g_object_new (test_simple_cdo_get_type (),
85 test->cdo_service = test_object_new_static_class (
86 test_simple_cdo_get_type (),
8687 NULL);
8788 tp_dbus_daemon_register_object (test->private_dbus, "/whatever",
8889 test->cdo_service);
123124 test->private_conn = NULL;
124125 }
125126
127 /* make sure any pending things have happened */
128 test_proxy_run_until_dbus_queue_processed (test->dbus);
129
126130 g_object_unref (test->dbus);
127131 test->dbus = NULL;
128132 g_main_loop_unref (test->mainloop);
4343 test->cd = NULL;
4444 }
4545
46 /* make sure any pending things have happened */
47 test_proxy_run_until_dbus_queue_processed (test->dbus);
48
4649 g_object_unref (test->dbus);
4750 test->dbus = NULL;
4851 g_main_loop_unref (test->mainloop);
130130 tp_debug_set_flags ("all");
131131 dbus = test_dbus_daemon_dup_or_die ();
132132
133 service_conn = SIMPLE_CONNECTION (g_object_new (SIMPLE_TYPE_CONNECTION,
133 service_conn = SIMPLE_CONNECTION (test_object_new_static_class (
134 SIMPLE_TYPE_CONNECTION,
134135 "account", "me@example.com",
135136 "protocol", "simple",
136137 NULL));
159160
160161 chan_path = g_strdup_printf ("%s/Channel", conn_path);
161162
162 service_chan = TEST_TEXT_CHANNEL_NULL (g_object_new (
163 service_chan = TEST_TEXT_CHANNEL_NULL (test_object_new_static_class (
163164 TEST_TYPE_TEXT_CHANNEL_NULL,
164165 "connection", service_conn,
165166 "object-path", chan_path,
168169
169170 props_chan_path = g_strdup_printf ("%s/PropertiesChannel", conn_path);
170171
171 service_props_chan = TEST_PROPS_TEXT_CHANNEL (g_object_new (
172 service_props_chan = TEST_PROPS_TEXT_CHANNEL (test_object_new_static_class (
172173 TEST_TYPE_PROPS_TEXT_CHANNEL,
173174 "connection", service_conn,
174175 "object-path", props_chan_path,
177178
178179 props_group_chan_path = g_strdup_printf ("%s/PropsGroupChannel", conn_path);
179180
180 service_props_group_chan = TEST_PROPS_GROUP_TEXT_CHANNEL (g_object_new (
181 service_props_group_chan = TEST_PROPS_GROUP_TEXT_CHANNEL (
182 test_object_new_static_class (
181183 TEST_TYPE_PROPS_GROUP_TEXT_CHANNEL,
182184 "connection", service_conn,
183185 "object-path", props_group_chan_path,
8585
8686 test->cr = NULL;
8787
88 test->cr_service = g_object_new (test_simple_cr_get_type (),
88 test->cr_service = test_object_new_static_class (test_simple_cr_get_type (),
8989 NULL);
9090 tp_dbus_daemon_register_object (test->private_dbus, "/whatever",
9191 test->cr_service);
122122 dbus_g_connection_unref (test->private_conn);
123123 test->private_conn = NULL;
124124 }
125
126 /* make sure any pending things have happened */
127 test_proxy_run_until_dbus_queue_processed (test->dbus);
125128
126129 g_object_unref (test->dbus);
127130 test->dbus = NULL;
256256 GError *error = NULL;
257257
258258 chan_path = g_strdup_printf ("%s/Channel%u", conn_path, channel_number);
259 service_chan = TEST_TEXT_CHANNEL_GROUP (g_object_new (
259 service_chan = TEST_TEXT_CHANNEL_GROUP (test_object_new_static_class (
260260 TEST_TYPE_TEXT_CHANNEL_GROUP,
261261 "connection", service_conn,
262262 "object-path", chan_path,
335335 GError *error = NULL;
336336
337337 chan_path = g_strdup_printf ("%s/Channel_1_6180339887", conn_path);
338 service_chan = TEST_TEXT_CHANNEL_GROUP (g_object_new (
338 service_chan = TEST_TEXT_CHANNEL_GROUP (test_object_new_static_class (
339339 TEST_TYPE_TEXT_CHANNEL_GROUP,
340340 "connection", service_conn,
341341 "object-path", chan_path,
402402 tp_debug_set_flags ("all");
403403 dbus = test_dbus_daemon_dup_or_die ();
404404
405 service_conn = SIMPLE_CONNECTION (g_object_new (SIMPLE_TYPE_CONNECTION,
405 service_conn = SIMPLE_CONNECTION (test_object_new_static_class (SIMPLE_TYPE_CONNECTION,
406406 "account", "me@example.com",
407407 "protocol", "simple",
408408 NULL));
5353 test_new (Test *test,
5454 gconstpointer data G_GNUC_UNUSED)
5555 {
56 test->client = g_object_new (TP_TYPE_CLIENT,
56 test->client = test_object_new_static_class (TP_TYPE_CLIENT,
5757 "dbus-daemon", test->dbus,
5858 "object-path", "/org/freedesktop/Telepathy/Client/whatever",
5959 "bus-name", "org.freedesktop.Telepathy.Client.whatever",
3636 test->mainloop = g_main_loop_new (NULL, FALSE);
3737 test->dbus = test_dbus_daemon_dup_or_die ();
3838
39 test->service_cm = EXAMPLE_ECHO_CONNECTION_MANAGER (g_object_new (
39 test->service_cm = EXAMPLE_ECHO_CONNECTION_MANAGER (test_object_new_static_class (
4040 EXAMPLE_TYPE_ECHO_CONNECTION_MANAGER,
4141 NULL));
4242 g_assert (test->service_cm != NULL);
4949 mainloop = g_main_loop_new (NULL, FALSE);
5050 dbus = test_dbus_daemon_dup_or_die ();
5151
52 service_conn = SIMPLE_CONNECTION (g_object_new (
52 service_conn = SIMPLE_CONNECTION (test_object_new_static_class (
5353 SIMPLE_TYPE_CONNECTION,
5454 "account", "me@example.com",
5555 "protocol", "simple",
9292 return (GQuark) quark;
9393 }
9494
95 int
96 main (int argc,
97 char **argv)
98 {
95 typedef struct {
9996 TpDBusDaemon *dbus;
97 GMainLoop *mainloop;
10098 SimpleConnection *service_conn;
10199 TpBaseConnection *service_conn_as_base;
102 gchar *name;
100 gchar *conn_name;
103101 gchar *conn_path;
104 GError *error = NULL;
105102 TpConnection *conn;
106 GMainLoop *mainloop;
103 } Test;
104
105 static void
106 global_setup (void)
107 {
108 static gboolean done = FALSE;
109
110 if (done)
111 return;
112
113 done = TRUE;
107114
108115 g_type_init ();
109116 tp_debug_set_flags ("all");
110 mainloop = g_main_loop_new (NULL, FALSE);
111 dbus = test_dbus_daemon_dup_or_die ();
112117
113118 tp_proxy_subclass_add_error_mapping (TP_TYPE_CONNECTION,
114119 "com.example", example_com_error_quark (), example_com_error_get_type ());
115
116 service_conn = SIMPLE_CONNECTION (g_object_new (
120 }
121
122 static void
123 setup (Test *test,
124 gconstpointer nil G_GNUC_UNUSED)
125 {
126 GError *error = NULL;
127
128 global_setup ();
129
130 test->mainloop = g_main_loop_new (NULL, FALSE);
131 test->dbus = test_dbus_daemon_dup_or_die ();
132
133 test->service_conn = SIMPLE_CONNECTION (test_object_new_static_class (
117134 SIMPLE_TYPE_CONNECTION,
118135 "account", "me@example.com",
119136 "protocol", "simple",
120137 NULL));
121 service_conn_as_base = TP_BASE_CONNECTION (service_conn);
122 MYASSERT (service_conn != NULL, "");
123 MYASSERT (service_conn_as_base != NULL, "");
124
125 MYASSERT (tp_base_connection_register (service_conn_as_base, "simple",
126 &name, &conn_path, &error), "");
138 test->service_conn_as_base = TP_BASE_CONNECTION (test->service_conn);
139 MYASSERT (test->service_conn != NULL, "");
140 MYASSERT (test->service_conn_as_base != NULL, "");
141
142 MYASSERT (tp_base_connection_register (test->service_conn_as_base, "simple",
143 &test->conn_name, &test->conn_path, &error), "");
127144 test_assert_no_error (error);
128145
129 conn = tp_connection_new (dbus, name, conn_path, &error);
130 MYASSERT (conn != NULL, "");
146 test->conn = tp_connection_new (test->dbus, test->conn_name, test->conn_path,
147 &error);
148 MYASSERT (test->conn != NULL, "");
131149 test_assert_no_error (error);
132 MYASSERT (tp_connection_run_until_ready (conn, TRUE, &error, NULL),
150 MYASSERT (tp_connection_run_until_ready (test->conn, TRUE, &error, NULL),
133151 "");
134152 test_assert_no_error (error);
153 }
154
155 static void
156 teardown (Test *test,
157 gconstpointer nil G_GNUC_UNUSED)
158 {
159 tp_cli_connection_run_disconnect (test->conn, -1, NULL, NULL);
160
161 test->service_conn_as_base = NULL;
162 g_object_unref (test->service_conn);
163 g_free (test->conn_name);
164 g_free (test->conn_path);
165 g_object_unref (test->dbus);
166 g_main_loop_unref (test->mainloop);
167 }
168
169 static void
170 test_registered_error (Test *test,
171 gconstpointer nil G_GNUC_UNUSED)
172 {
173 GError *error = NULL;
174 const GHashTable *asv;
175
176 asv = GUINT_TO_POINTER (0xDEADBEEF);
177 g_assert_cmpstr (tp_connection_get_detailed_error (test->conn, NULL), ==,
178 NULL);
179 g_assert_cmpstr (tp_connection_get_detailed_error (test->conn, &asv), ==,
180 NULL);
181 g_assert_cmpuint (GPOINTER_TO_UINT (asv), ==, 0xDEADBEEF);
135182
136183 connection_errors = 0;
137 tp_cli_connection_connect_to_connection_error (conn, on_connection_error,
138 NULL, NULL, NULL, NULL);
139 tp_cli_connection_connect_to_status_changed (conn, on_status_changed,
140 mainloop, NULL, NULL, NULL);
141
142 tp_base_connection_disconnect_with_dbus_error (service_conn_as_base,
184 tp_cli_connection_connect_to_connection_error (test->conn,
185 on_connection_error, NULL, NULL, NULL, NULL);
186 tp_cli_connection_connect_to_status_changed (test->conn, on_status_changed,
187 test->mainloop, NULL, NULL, NULL);
188
189 tp_base_connection_disconnect_with_dbus_error (test->service_conn_as_base,
143190 "com.example.DomainSpecificError", NULL,
144191 TP_CONNECTION_STATUS_REASON_NETWORK_ERROR);
145192
146 g_main_loop_run (mainloop);
193 g_main_loop_run (test->mainloop);
147194
148195 MYASSERT_SAME_UINT (connection_errors, 1);
149196
150 MYASSERT (!tp_connection_run_until_ready (conn, FALSE, &error, NULL), "");
197 MYASSERT (!tp_connection_run_until_ready (test->conn, FALSE, &error, NULL),
198 "");
199
200 g_assert_error (error, example_com_error_quark (), DOMAIN_SPECIFIC_ERROR);
201
202 g_assert_cmpstr (tp_connection_get_detailed_error (test->conn, NULL), ==,
203 "com.example.DomainSpecificError");
204 g_assert_cmpstr (tp_connection_get_detailed_error (test->conn, &asv), ==,
205 "com.example.DomainSpecificError");
206 g_assert (asv != NULL);
207
151208 MYASSERT_SAME_STRING (g_quark_to_string (error->domain),
152209 g_quark_to_string (example_com_error_quark ()));
153210 MYASSERT_SAME_UINT (error->code, DOMAIN_SPECIFIC_ERROR);
154211 g_error_free (error);
155212 error = NULL;
156
157 service_conn_as_base = NULL;
158 g_object_unref (service_conn);
159 g_free (name);
160 g_free (conn_path);
161
162 g_object_unref (dbus);
163 g_main_loop_unref (mainloop);
164
165 return 0;
166 }
213 }
214
215 static void
216 on_unregistered_connection_error (TpConnection *conn,
217 const gchar *error,
218 GHashTable *details,
219 gpointer user_data,
220 GObject *weak_object)
221 {
222 connection_errors++;
223 MYASSERT_SAME_STRING (error, "net.example.WTF");
224 MYASSERT_SAME_UINT (g_hash_table_size (details), 0);
225 }
226
227 static void
228 test_unregistered_error (Test *test,
229 gconstpointer nil G_GNUC_UNUSED)
230 {
231 GError *error = NULL;
232 const GHashTable *asv;
233
234 connection_errors = 0;
235 tp_cli_connection_connect_to_connection_error (test->conn,
236 on_unregistered_connection_error, NULL, NULL, NULL, NULL);
237 tp_cli_connection_connect_to_status_changed (test->conn, on_status_changed,
238 test->mainloop, NULL, NULL, NULL);
239
240 tp_base_connection_disconnect_with_dbus_error (test->service_conn_as_base,
241 "net.example.WTF", NULL,
242 TP_CONNECTION_STATUS_REASON_NETWORK_ERROR);
243
244 g_main_loop_run (test->mainloop);
245
246 MYASSERT_SAME_UINT (connection_errors, 1);
247
248 MYASSERT (!tp_connection_run_until_ready (test->conn, FALSE, &error, NULL),
249 "");
250
251 /* Because we didn't understand net.example.WTF as a GError, TpConnection
252 * falls back to turning the Connection_Status_Reason into a GError. */
253 g_assert_error (error, TP_ERRORS, TP_ERROR_NETWORK_ERROR);
254
255 g_assert_cmpstr (tp_connection_get_detailed_error (test->conn, NULL), ==,
256 "net.example.WTF");
257 g_assert_cmpstr (tp_connection_get_detailed_error (test->conn, &asv), ==,
258 "net.example.WTF");
259 g_assert (asv != NULL);
260
261 g_error_free (error);
262 error = NULL;
263 }
264
265 int
266 main (int argc,
267 char **argv)
268 {
269 g_test_init (&argc, &argv, NULL);
270
271 g_test_add ("/connection/registered-error", Test, NULL, setup,
272 test_registered_error, teardown);
273 g_test_add ("/connection/unregistered-error", Test, NULL, setup,
274 test_unregistered_error, teardown);
275
276 return g_test_run ();
277 }
9595 mainloop = g_main_loop_new (NULL, FALSE);
9696 dbus = test_dbus_daemon_dup_or_die ();
9797
98 service_conn = SIMPLE_CONNECTION (g_object_new (
98 service_conn = SIMPLE_CONNECTION (test_object_new_static_class (
9999 bug15306_connection_get_type (),
100100 "account", "me@example.com",
101101 "protocol", "simple",
311311 tp_debug_set_flags ("all");
312312 dbus = test_dbus_daemon_dup_or_die ();
313313
314 service_conn = SIMPLE_CONNECTION (g_object_new (
314 service_conn = SIMPLE_CONNECTION (test_object_new_static_class (
315315 SIMPLE_TYPE_CONNECTION,
316316 "account", "me@example.com",
317317 "protocol", "simple",
4242 dbus = test_dbus_daemon_dup_or_die ();
4343
4444 /* service side */
45 service_conn = BUG16307_CONNECTION (g_object_new (
45 service_conn = BUG16307_CONNECTION (test_object_new_static_class (
4646 BUG16307_TYPE_CONNECTION,
4747 "account", "me@example.com",
4848 "protocol", "simple",
5858 tp_debug_set_flags ("all");
5959 test->dbus = test_dbus_daemon_dup_or_die ();
6060
61 test->service_conn = SIMPLE_CONNECTION (g_object_new (
61 test->service_conn = SIMPLE_CONNECTION (test_object_new_static_class (
6262 SIMPLE_TYPE_CONNECTION,
6363 "account", "me@example.com",
6464 "protocol", "simple-protocol",
255255 gconstpointer nil G_GNUC_UNUSED)
256256 {
257257 GError *error = NULL;
258 GQuark features[] = { TP_CONNECTION_FEATURE_CONNECTED };
258 GQuark features[] = { TP_CONNECTION_FEATURE_CONNECTED, 0 };
259 const GHashTable *asv;
259260
260261 test->conn = tp_connection_new (test->dbus, test->conn_name, test->conn_path,
261262 &error);
304305 g_assert (!tp_proxy_is_prepared (test->conn, TP_CONNECTION_FEATURE_CORE));
305306 g_assert (!tp_proxy_is_prepared (test->conn,
306307 TP_CONNECTION_FEATURE_CONNECTED));
308
309 g_assert_cmpstr (tp_connection_get_detailed_error (test->conn, NULL), ==,
310 TP_ERROR_STR_PERMISSION_DENIED);
311 g_assert_cmpstr (tp_connection_get_detailed_error (test->conn, &asv), ==,
312 TP_ERROR_STR_PERMISSION_DENIED);
313 g_assert (asv != NULL);
307314 }
308315
309316 static void
147147 dbus = test_dbus_daemon_dup_or_die ();
148148
149149 DEBUG ("a");
150 service_conn = CONTACTS_CONNECTION (g_object_new (
150 service_conn = CONTACTS_CONNECTION (test_object_new_static_class (
151151 BUG_19101_TYPE_CONNECTION,
152152 "account", "me@example.com",
153153 "protocol", "simple",
157157 tp_debug_set_flags ("all");
158158 dbus = test_dbus_daemon_dup_or_die ();
159159
160 service_conn = CONTACTS_CONNECTION (g_object_new (
160 service_conn = CONTACTS_CONNECTION (test_object_new_static_class (
161161 CONTACTS_TYPE_CONNECTION,
162162 "account", "me@example.com",
163163 "protocol", "simple",
208208
209209 /* b gets its signal connection cancelled because stub is
210210 * destroyed */
211 stub = g_object_new (stub_object_get_type (), NULL);
211 stub = test_object_new_static_class (stub_object_get_type (), NULL);
212212 g_message ("Connecting signal to b");
213213 tp_cli_dbus_daemon_connect_to_name_owner_changed (b, noc, PTR (TEST_B),
214214 destroy_user_data, stub, &error_out);
305305 /* h gets its signal connection cancelled because its weak object is
306306 * destroyed, meaning there are simultaneously two reasons for it to become
307307 * cancelled (fd.o#14750) */
308 stub = g_object_new (stub_object_get_type (), NULL);
308 stub = test_object_new_static_class (stub_object_get_type (), NULL);
309309 g_object_weak_ref (stub, h_stub_destroyed, &sc);
310310 g_message ("Connecting signal to h");
311311 tp_cli_dbus_daemon_connect_to_name_owner_changed (h, noc, PTR (TEST_H),
7575 mainloop = g_main_loop_new (NULL, FALSE);
7676 dbus = test_dbus_daemon_dup_or_die ();
7777
78 service_conn = SIMPLE_CONNECTION (g_object_new (SIMPLE_TYPE_CONNECTION,
78 service_conn = SIMPLE_CONNECTION (test_object_new_static_class (SIMPLE_TYPE_CONNECTION,
7979 "account", "me@example.com",
8080 "protocol", "simple",
8181 NULL));
107107 test_assert_no_error (error);
108108 chan_path = g_strdup_printf ("%s/Channel", conn_path);
109109
110 service_chan = TEST_TEXT_CHANNEL_NULL (g_object_new (
110 service_chan = TEST_TEXT_CHANNEL_NULL (test_object_new_static_class (
111111 TEST_TYPE_TEXT_CHANNEL_NULL,
112112 "connection", service_conn,
113113 "object-path", chan_path,
526526 tp_debug_set_flags ("all");
527527 dbus = test_dbus_daemon_dup_or_die ();
528528
529 service_conn = SIMPLE_CONNECTION (g_object_new (SIMPLE_TYPE_CONNECTION,
529 service_conn = SIMPLE_CONNECTION (test_object_new_static_class (SIMPLE_TYPE_CONNECTION,
530530 "account", "me@example.com",
531531 "protocol", "simple",
532532 NULL));
553553
554554 chan_path = g_strdup_printf ("%s/Channel", conn_path);
555555
556 service_chan = TEST_TEXT_CHANNEL_GROUP (g_object_new (
556 service_chan = TEST_TEXT_CHANNEL_GROUP (test_object_new_static_class (
557557 TEST_TYPE_TEXT_CHANNEL_GROUP,
558558 "connection", service_conn,
559559 "object-path", chan_path,
2121 const gchar *jid = "handle.test@foobar";
2222 const gchar *return_jid;
2323
24 tp_repo = g_object_new (TP_TYPE_DYNAMIC_HANDLE_REPO,
24 tp_repo = test_object_new_static_class (TP_TYPE_DYNAMIC_HANDLE_REPO,
2525 "handle-type", TP_HANDLE_TYPE_CONTACT,
2626 NULL);
2727 g_assert (tp_repo != NULL);
88 #include <telepathy-glib/errors.h>
99
1010 #include "tests/lib/myassert.h"
11 #include "tests/lib/util.h"
1112
1213 int
1314 main (int argc,
2223
2324 g_type_init ();
2425
25 repo = (TpHandleRepoIface *) g_object_new (TP_TYPE_DYNAMIC_HANDLE_REPO,
26 repo = test_object_new_static_class (TP_TYPE_DYNAMIC_HANDLE_REPO,
2627 "handle-type", TP_HANDLE_TYPE_CONTACT,
2728 NULL);
2829 MYASSERT (repo != NULL, "");
6666 mainloop = g_main_loop_new (NULL, FALSE);
6767 dbus = test_dbus_daemon_dup_or_die ();
6868
69 service = SIMPLE_CONNECTION (g_object_new (SIMPLE_TYPE_CONNECTION,
69 service = SIMPLE_CONNECTION (test_object_new_static_class (SIMPLE_TYPE_CONNECTION,
7070 "account", "me@example.com",
7171 "protocol", "simple",
7272 NULL));
4141 g_type_init ();
4242
4343 MYASSERT (strlen (LONG_ACCOUNT_IS_LONG) == 256, "");
44 service_conn = EXAMPLE_ECHO_CONNECTION (g_object_new (
44 service_conn = EXAMPLE_ECHO_CONNECTION (test_object_new_static_class (
4545 EXAMPLE_TYPE_ECHO_CONNECTION,
4646 "account", LONG_ACCOUNT_IS_LONG,
4747 "protocol", "example",
210210 tp_debug_set_flags ("all");
211211 dbus = test_dbus_daemon_dup_or_die ();
212212
213 service_cm = EXAMPLE_ECHO_2_CONNECTION_MANAGER (g_object_new (
213 service_cm = EXAMPLE_ECHO_2_CONNECTION_MANAGER (test_object_new_static_class (
214214 EXAMPLE_TYPE_ECHO_2_CONNECTION_MANAGER,
215215 NULL));
216216 g_assert (service_cm != NULL);
6262 test->mainloop = g_main_loop_new (NULL, FALSE);
6363 test->dbus = test_dbus_daemon_dup_or_die ();
6464
65 test->service_cm = PARAM_CONNECTION_MANAGER (g_object_new (
65 test->service_cm = PARAM_CONNECTION_MANAGER (test_object_new_static_class (
6666 TYPE_PARAM_CONNECTION_MANAGER,
6767 NULL));
6868 g_assert (test->service_cm != NULL);
133133 g_type_init ();
134134 dbus_daemon = test_dbus_daemon_dup_or_die ();
135135
136 obj = g_object_new (TEST_TYPE_PROPERTIES, NULL);
136 obj = test_object_new_static_class (TEST_TYPE_PROPERTIES, NULL);
137137 tp_dbus_daemon_register_object (dbus_daemon, "/", obj);
138138
139139 /* Open a D-Bus connection to myself */
140 proxy = TP_PROXY (g_object_new (TP_TYPE_PROXY,
140 proxy = TP_PROXY (test_object_new_static_class (TP_TYPE_PROXY,
141141 "dbus-daemon", dbus_daemon,
142142 "bus-name", tp_dbus_daemon_get_unique_name (dbus_daemon),
143143 "object-path", "/",
9393 tp_debug_set_flags ("all");
9494 dbus = test_dbus_daemon_dup_or_die ();
9595
96 service_conn = SIMPLE_CONNECTION (g_object_new (
96 service_conn = SIMPLE_CONNECTION (test_object_new_static_class (
9797 SIMPLE_TYPE_CONNECTION,
9898 "account", "me@example.com",
9999 "protocol", "simple",
219219 tp_debug_set_flags ("all");
220220 dbus = test_dbus_daemon_dup_or_die ();
221221
222 service_conn = CONTACTS_CONNECTION (g_object_new (
222 service_conn = CONTACTS_CONNECTION (test_object_new_static_class (
223223 CONTACTS_TYPE_CONNECTION,
224224 "account", "me@example.com",
225225 "protocol", "simple",
9494 /* tp_debug_set_flags ("all"); */
9595 dbus = test_dbus_daemon_dup_or_die ();
9696
97 service_conn = EXAMPLE_ECHO_CONNECTION (g_object_new (
97 service_conn = EXAMPLE_ECHO_CONNECTION (test_object_new_static_class (
9898 EXAMPLE_TYPE_ECHO_CONNECTION,
9999 "account", "me@example.com",
100100 "protocol", "example",
126126
127127 chan_path = g_strdup_printf ("%s/Channel", conn_path);
128128
129 service_chan = EXAMPLE_ECHO_CHANNEL (g_object_new (
129 service_chan = EXAMPLE_ECHO_CHANNEL (test_object_new_static_class (
130130 EXAMPLE_TYPE_ECHO_CHANNEL,
131131 "connection", service_conn,
132132 "object-path", chan_path,
9696 /* tp_debug_set_flags ("all"); */
9797 dbus = test_dbus_daemon_dup_or_die ();
9898
99 service_conn = EXAMPLE_ECHO_CONNECTION (g_object_new (
99 service_conn = EXAMPLE_ECHO_CONNECTION (test_object_new_static_class (
100100 EXAMPLE_TYPE_ECHO_CONNECTION,
101101 "account", "me@example.com",
102102 "protocol", "example",
128128
129129 chan_path = g_strdup_printf ("%s/Channel", conn_path);
130130
131 service_chan = EXAMPLE_ECHO_CHANNEL (g_object_new (
131 service_chan = EXAMPLE_ECHO_CHANNEL (test_object_new_static_class (
132132 EXAMPLE_TYPE_ECHO_CHANNEL,
133133 "connection", service_conn,
134134 "object-path", chan_path,
1010 myassert.h \
1111 params-cm.h \
1212 params-cm.c \
13 simple-account.c \
14 simple-account.h \
1315 simple-account-manager.c\
1416 simple-account-manager.h\
1517 simple-conn.c \
3838 subdir = tests/lib
3939 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
4040 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
41 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
42 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
43 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
44 $(top_srcdir)/m4/lt~obsolete.m4 \
41 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/introspection.m4 \
42 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/linker.m4 \
43 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
44 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
4545 $(top_srcdir)/m4/tp-compiler-flag.m4 \
4646 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
4747 $(top_srcdir)/configure.ac
5757 $(am__DEPENDENCIES_1) \
5858 $(top_builddir)/telepathy-glib/libtelepathy-glib.la
5959 am_libtp_glib_tests_la_OBJECTS = bug-19101-conn.lo bug16307-conn.lo \
60 contacts-conn.lo params-cm.lo simple-account-manager.lo \
61 simple-conn.lo simple-manager.lo stub-object.lo \
62 textchan-null.lo textchan-group.lo util.lo
60 contacts-conn.lo params-cm.lo simple-account.lo \
61 simple-account-manager.lo simple-conn.lo simple-manager.lo \
62 stub-object.lo textchan-null.lo textchan-group.lo util.lo
6363 libtp_glib_tests_la_OBJECTS = $(am_libtp_glib_tests_la_OBJECTS)
6464 AM_V_lt = $(am__v_lt_$(V))
6565 am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
141141 INSTALL_PROGRAM = @INSTALL_PROGRAM@
142142 INSTALL_SCRIPT = @INSTALL_SCRIPT@
143143 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
144 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
145 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
146 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
147 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
148 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
144149 LD = @LD@
145150 LDFLAGS = @LDFLAGS@
146151 LIBOBJS = @LIBOBJS@
251256 myassert.h \
252257 params-cm.h \
253258 params-cm.c \
259 simple-account.c \
260 simple-account.h \
254261 simple-account-manager.c\
255262 simple-account-manager.h\
256263 simple-conn.c \
335342 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/contacts-conn.Plo@am__quote@
336343 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/params-cm.Plo@am__quote@
337344 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple-account-manager.Plo@am__quote@
345 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple-account.Plo@am__quote@
338346 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple-conn.Plo@am__quote@
339347 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple-manager.Plo@am__quote@
340348 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stub-object.Plo@am__quote@
0 /*
1 * simple-account.c - a simple account service.
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 "simple-account.h"
11
12 #include <telepathy-glib/dbus.h>
13 #include <telepathy-glib/defs.h>
14 #include <telepathy-glib/enums.h>
15 #include <telepathy-glib/gtypes.h>
16 #include <telepathy-glib/interfaces.h>
17 #include <telepathy-glib/util.h>
18 #include <telepathy-glib/svc-generic.h>
19 #include <telepathy-glib/svc-account.h>
20
21 static void account_iface_init (gpointer, gpointer);
22
23 G_DEFINE_TYPE_WITH_CODE (SimpleAccount,
24 simple_account,
25 G_TYPE_OBJECT,
26 G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_ACCOUNT,
27 account_iface_init);
28 G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_DBUS_PROPERTIES,
29 tp_dbus_properties_mixin_iface_init)
30 )
31
32 /* TP_IFACE_ACCOUNT is implied */
33 static const char *ACCOUNT_INTERFACES[] = { NULL };
34
35 enum
36 {
37 PROP_0,
38 PROP_INTERFACES,
39 PROP_DISPLAY_NAME,
40 PROP_ICON,
41 PROP_VALID,
42 PROP_ENABLED,
43 PROP_NICKNAME,
44 PROP_PARAMETERS,
45 PROP_AUTOMATIC_PRESENCE,
46 PROP_CONNECT_AUTO,
47 PROP_CONNECTION,
48 PROP_CONNECTION_STATUS,
49 PROP_CONNECTION_STATUS_REASON,
50 PROP_CURRENT_PRESENCE,
51 PROP_REQUESTED_PRESENCE,
52 PROP_NORMALIZED_NAME,
53 PROP_HAS_BEEN_ONLINE,
54 };
55
56 struct _SimpleAccountPrivate
57 {
58 gpointer unused;
59 };
60
61 static void
62 account_iface_init (gpointer klass,
63 gpointer unused G_GNUC_UNUSED)
64 {
65 #define IMPLEMENT(x) tp_svc_account_implement_##x (\
66 klass, simple_account_##x)
67 /* TODO */
68 #undef IMPLEMENT
69 }
70
71
72 static void
73 simple_account_init (SimpleAccount *self)
74 {
75 self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, SIMPLE_TYPE_ACCOUNT,
76 SimpleAccountPrivate);
77 }
78
79 static void
80 simple_account_get_property (GObject *object,
81 guint property_id,
82 GValue *value,
83 GParamSpec *spec)
84 {
85 GValueArray *presence;
86
87 presence = tp_value_array_build (3,
88 G_TYPE_UINT, TP_CONNECTION_PRESENCE_TYPE_AVAILABLE,
89 G_TYPE_STRING, "available",
90 G_TYPE_STRING, "",
91 G_TYPE_INVALID);
92
93 switch (property_id) {
94 case PROP_INTERFACES:
95 g_value_set_boxed (value, ACCOUNT_INTERFACES);
96 break;
97 case PROP_DISPLAY_NAME:
98 g_value_set_string (value, "Fake Account");
99 break;
100 case PROP_ICON:
101 g_value_set_string (value, "");
102 break;
103 case PROP_VALID:
104 g_value_set_boolean (value, TRUE);
105 break;
106 case PROP_ENABLED:
107 g_value_set_boolean (value, TRUE);
108 break;
109 case PROP_NICKNAME:
110 g_value_set_string (value, "badger");
111 break;
112 case PROP_PARAMETERS:
113 g_value_take_boxed (value, g_hash_table_new (NULL, NULL));
114 break;
115 case PROP_AUTOMATIC_PRESENCE:
116 g_value_set_boxed (value, presence);
117 break;
118 case PROP_CONNECT_AUTO:
119 g_value_set_boolean (value, FALSE);
120 break;
121 case PROP_CONNECTION:
122 g_value_set_boxed (value, "/");
123 break;
124 case PROP_CONNECTION_STATUS:
125 g_value_set_uint (value, TP_CONNECTION_STATUS_CONNECTED);
126 break;
127 case PROP_CONNECTION_STATUS_REASON:
128 g_value_set_uint (value, TP_CONNECTION_STATUS_REASON_REQUESTED);
129 break;
130 case PROP_CURRENT_PRESENCE:
131 g_value_set_boxed (value, presence);
132 break;
133 case PROP_REQUESTED_PRESENCE:
134 g_value_set_boxed (value, presence);
135 break;
136 case PROP_NORMALIZED_NAME:
137 g_value_set_string (value, "");
138 break;
139 case PROP_HAS_BEEN_ONLINE:
140 g_value_set_boolean (value, TRUE);
141 break;
142 default:
143 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, spec);
144 break;
145 }
146
147 g_boxed_free (TP_STRUCT_TYPE_SIMPLE_PRESENCE, presence);
148 }
149
150 /**
151 * This class currently only provides the minimum for
152 * tp_account_prepare to succeed. This turns out to be only a working
153 * Properties.GetAll().
154 */
155 static void
156 simple_account_class_init (SimpleAccountClass *klass)
157 {
158 GObjectClass *object_class = (GObjectClass *) klass;
159 GParamSpec *param_spec;
160
161 static TpDBusPropertiesMixinPropImpl a_props[] = {
162 { "Interfaces", "interfaces", NULL },
163 { "DisplayName", "display-name", NULL },
164 { "Icon", "icon", NULL },
165 { "Valid", "valid", NULL },
166 { "Enabled", "enabled", NULL },
167 { "Nickname", "nickname", NULL },
168 { "Parameters", "parameters", NULL },
169 { "AutomaticPresence", "automatic-presence", NULL },
170 { "ConnectAutomatically", "connect-automatically", NULL },
171 { "Connection", "connection", NULL },
172 { "ConnectionStatus", "connection-status", NULL },
173 { "ConnectionStatusReason", "connection-status-reason", NULL },
174 { "CurrentPresence", "current-presence", NULL },
175 { "RequestedPresence", "requested-presence", NULL },
176 { "NormalizedName", "normalized-name", NULL },
177 { "HasBeenOnline", "has-been-online", NULL },
178 { NULL }
179 };
180
181 static TpDBusPropertiesMixinIfaceImpl prop_interfaces[] = {
182 { TP_IFACE_ACCOUNT,
183 tp_dbus_properties_mixin_getter_gobject_properties,
184 NULL,
185 a_props
186 },
187 { NULL },
188 };
189
190 g_type_class_add_private (klass, sizeof (SimpleAccountPrivate));
191 object_class->get_property = simple_account_get_property;
192
193 param_spec = g_param_spec_boxed ("interfaces", "Extra D-Bus interfaces",
194 "In this case we only implement Account, so none.",
195 G_TYPE_STRV,
196 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
197 g_object_class_install_property (object_class, PROP_INTERFACES, param_spec);
198
199 param_spec = g_param_spec_string ("display-name", "display name",
200 "DisplayName property",
201 NULL,
202 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
203 g_object_class_install_property (object_class, PROP_DISPLAY_NAME, param_spec);
204
205 param_spec = g_param_spec_string ("icon", "icon",
206 "Icon property",
207 NULL,
208 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
209 g_object_class_install_property (object_class, PROP_ICON, param_spec);
210
211 param_spec = g_param_spec_boolean ("valid", "valid",
212 "Valid property",
213 FALSE,
214 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
215 g_object_class_install_property (object_class, PROP_VALID, param_spec);
216
217 param_spec = g_param_spec_boolean ("enabled", "enabled",
218 "Enabled property",
219 FALSE,
220 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
221 g_object_class_install_property (object_class, PROP_ENABLED, param_spec);
222
223 param_spec = g_param_spec_string ("nickname", "nickname",
224 "Nickname property",
225 NULL,
226 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
227 g_object_class_install_property (object_class, PROP_NICKNAME, param_spec);
228
229 param_spec = g_param_spec_boxed ("parameters", "parameters",
230 "Parameters property",
231 TP_HASH_TYPE_STRING_VARIANT_MAP,
232 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
233 g_object_class_install_property (object_class, PROP_PARAMETERS, param_spec);
234
235 param_spec = g_param_spec_boxed ("automatic-presence", "automatic presence",
236 "AutomaticPresence property",
237 TP_STRUCT_TYPE_SIMPLE_PRESENCE,
238 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
239 g_object_class_install_property (object_class, PROP_AUTOMATIC_PRESENCE,
240 param_spec);
241
242 param_spec = g_param_spec_boolean ("connect-automatically",
243 "connect automatically", "ConnectAutomatically property",
244 FALSE,
245 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
246 g_object_class_install_property (object_class, PROP_CONNECT_AUTO, param_spec);
247
248 param_spec = g_param_spec_boxed ("connection", "connection",
249 "Connection property",
250 DBUS_TYPE_G_OBJECT_PATH,
251 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
252 g_object_class_install_property (object_class, PROP_CONNECTION, param_spec);
253
254 param_spec = g_param_spec_uint ("connection-status", "connection status",
255 "ConnectionStatus property",
256 0, NUM_TP_CONNECTION_STATUSES, TP_CONNECTION_STATUS_DISCONNECTED,
257 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
258 g_object_class_install_property (object_class, PROP_CONNECTION_STATUS,
259 param_spec);
260
261 param_spec = g_param_spec_uint ("connection-status-reason",
262 "connection status reason", "ConnectionStatusReason property",
263 0, NUM_TP_CONNECTION_STATUS_REASONS,
264 TP_CONNECTION_STATUS_REASON_NONE_SPECIFIED,
265 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
266 g_object_class_install_property (object_class, PROP_CONNECTION_STATUS_REASON,
267 param_spec);
268
269 param_spec = g_param_spec_boxed ("current-presence", "current presence",
270 "CurrentPresence property",
271 TP_STRUCT_TYPE_SIMPLE_PRESENCE,
272 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
273 g_object_class_install_property (object_class, PROP_CURRENT_PRESENCE,
274 param_spec);
275
276 param_spec = g_param_spec_boxed ("requested-presence", "requested presence",
277 "RequestedPresence property",
278 TP_STRUCT_TYPE_SIMPLE_PRESENCE,
279 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
280 g_object_class_install_property (object_class, PROP_REQUESTED_PRESENCE,
281 param_spec);
282
283 param_spec = g_param_spec_string ("normalized-name", "normalized name",
284 "NormalizedName property",
285 NULL,
286 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
287 g_object_class_install_property (object_class, PROP_NORMALIZED_NAME,
288 param_spec);
289
290 param_spec = g_param_spec_boolean ("has-been-online", "has been online",
291 "HasBeenOnline property",
292 FALSE,
293 G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
294 g_object_class_install_property (object_class, PROP_HAS_BEEN_ONLINE,
295 param_spec);
296
297 klass->dbus_props_class.interfaces = prop_interfaces;
298 tp_dbus_properties_mixin_class_init (object_class,
299 G_STRUCT_OFFSET (SimpleAccountClass, dbus_props_class));
300 }
0 /*
1 * simple-account.h - header for a simple account service.
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 __SIMPLE_ACCOUNT_H__
11 #define __SIMPLE_ACCOUNT_H__
12
13 #include <glib-object.h>
14 #include <telepathy-glib/dbus-properties-mixin.h>
15
16
17 G_BEGIN_DECLS
18
19 typedef struct _SimpleAccount SimpleAccount;
20 typedef struct _SimpleAccountClass SimpleAccountClass;
21 typedef struct _SimpleAccountPrivate SimpleAccountPrivate;
22
23 struct _SimpleAccountClass {
24 GObjectClass parent_class;
25 TpDBusPropertiesMixinClass dbus_props_class;
26 };
27
28 struct _SimpleAccount {
29 GObject parent;
30
31 SimpleAccountPrivate *priv;
32 };
33
34 GType simple_account_get_type (void);
35
36 /* TYPE MACROS */
37 #define SIMPLE_TYPE_ACCOUNT \
38 (simple_account_get_type ())
39 #define SIMPLE_ACCOUNT(obj) \
40 (G_TYPE_CHECK_INSTANCE_CAST((obj), SIMPLE_TYPE_ACCOUNT, \
41 SimpleAccount))
42 #define SIMPLE_ACCOUNT_CLASS(klass) \
43 (G_TYPE_CHECK_CLASS_CAST((klass), SIMPLE_TYPE_ACCOUNT, \
44 SimpleAccountClass))
45 #define SIMPLE_IS_ACCOUNT(obj) \
46 (G_TYPE_CHECK_INSTANCE_TYPE((obj), SIMPLE_TYPE_ACCOUNT))
47 #define SIMPLE_IS_ACCOUNT_CLASS(klass) \
48 (G_TYPE_CHECK_CLASS_TYPE((klass), SIMPLE_TYPE_ACCOUNT))
49 #define SIMPLE_ACCOUNT_GET_CLASS(obj) \
50 (G_TYPE_INSTANCE_GET_CLASS ((obj), SIMPLE_TYPE_ACCOUNT, \
51 SimpleAccountClass))
52
53 G_END_DECLS
54
55 #endif /* #ifndef __SIMPLE_ACCOUNT_H__ */
1717 #include <telepathy-glib/errors.h>
1818
1919 #include "simple-conn.h"
20 #include "tests/lib/util.h"
2021
2122 G_DEFINE_TYPE (SimpleConnectionManager,
2223 simple_connection_manager,
7475 {
7576 SimpleParams *params = parsed_params;
7677 SimpleConnection *conn = SIMPLE_CONNECTION
77 (g_object_new (SIMPLE_TYPE_CONNECTION,
78 (test_object_new_static_class (SIMPLE_TYPE_CONNECTION,
7879 "account", params->account,
7980 "protocol", proto,
8081 NULL));
281281
282282 dbus = test_dbus_daemon_dup_or_die ();
283283
284 *service_conn = g_object_new (
284 *service_conn = test_object_new_static_class (
285285 conn_type,
286286 "account", account,
287287 "protocol", "simple",
305305
306306 g_object_unref (dbus);
307307 }
308
309 /* This object exists solely so that tests/tests.supp can ignore "leaked"
310 * classes. */
311 gpointer
312 test_object_new_static_class (GType type,
313 ...)
314 {
315 va_list ap;
316 GObject *object;
317 const gchar *first_property;
318
319 va_start (ap, type);
320 first_property = va_arg (ap, const gchar *);
321 object = g_object_new_valist (type, first_property, ap);
322 va_end (ap);
323 return object;
324 }
5656 } \
5757 G_STMT_END
5858
59
5960 void test_create_and_connect_conn (GType conn_type,
6061 const gchar *account,
6162 TpBaseConnection **service_conn,
6263 TpConnection **client_conn);
6364
65 gpointer test_object_new_static_class (GType type,
66 ...) G_GNUC_NULL_TERMINATED;
67
6468 #endif
6161 tp_debug_set_flags ("all");
6262
6363 test->caught = 0;
64 test->observer = g_object_new (stub_object_get_type (),
64 test->observer = test_object_new_static_class (stub_object_get_type (),
6565 NULL);
6666 g_object_set_data (test->observer, DATA_KEY, test);
67 test->emitter = g_object_new (stub_object_get_type (),
67 test->emitter = test_object_new_static_class (stub_object_get_type (),
6868 NULL);
6969 }
7070
0 # Valgrind error suppression file
1
2 {
3 static classes in tests
4 Memcheck:Leak
5 ...
6 fun:g_type_class_ref
7 ...
8 fun:test_object_new_static_class
9 }
3838 $(srcdir)/Makefile.in
3939 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
4040 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
41 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
42 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
43 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
44 $(top_srcdir)/m4/lt~obsolete.m4 \
41 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/introspection.m4 \
42 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/linker.m4 \
43 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
44 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
4545 $(top_srcdir)/m4/tp-compiler-flag.m4 \
4646 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
4747 $(top_srcdir)/configure.ac
109109 INSTALL_PROGRAM = @INSTALL_PROGRAM@
110110 INSTALL_SCRIPT = @INSTALL_SCRIPT@
111111 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
112 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
113 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
114 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
115 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
116 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
112117 LD = @LD@
113118 LDFLAGS = @LDFLAGS@
114119 LIBOBJS = @LIBOBJS@
3737 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
3838 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
3939 am__aclocal_m4_deps = $(top_srcdir)/m4/compiler.m4 \
40 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
41 $(top_srcdir)/m4/linker.m4 $(top_srcdir)/m4/ltoptions.m4 \
42 $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
43 $(top_srcdir)/m4/lt~obsolete.m4 \
40 $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/introspection.m4 \
41 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/linker.m4 \
42 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
43 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
4444 $(top_srcdir)/m4/tp-compiler-flag.m4 \
4545 $(top_srcdir)/m4/tp-compiler-warnings.m4 \
4646 $(top_srcdir)/configure.ac
106106 INSTALL_PROGRAM = @INSTALL_PROGRAM@
107107 INSTALL_SCRIPT = @INSTALL_SCRIPT@
108108 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
109 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
110 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
111 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
112 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
113 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
109114 LD = @LD@
110115 LDFLAGS = @LDFLAGS@
111116 LIBOBJS = @LIBOBJS@
1919 fun:handle_leak_debug_bt
2020 fun:dynamic_ensure_handle
2121 fun:tp_handle_ensure
22 }
23
24 # ============================= GLib ==================================
25
26 {
27 g_set_prgname copies its argument
28 Memcheck:Leak
29 ...
30 fun:g_set_prgname
31 }
32
33 {
34 one g_get_charset per child^Wprocess
35 Memcheck:Leak
36 ...
37 fun:g_get_charset
38 }
39
40 {
41 GQuarks can't be freed
42 Memcheck:Leak
43 ...
44 fun:g_quark_from_static_string
45 }
46
47 {
48 GQuarks can't be freed
49 Memcheck:Leak
50 ...
51 fun:g_quark_from_string
52 }
53
54 {
55 interned strings can't be freed
56 Memcheck:Leak
57 ...
58 fun:g_intern_string
59 }
60
61 {
62 interned strings can't be freed
63 Memcheck:Leak
64 ...
65 fun:g_intern_static_string
66 }
67
68 {
69 shared global default g_main_context
70 Memcheck:Leak
71 ...
72 fun:g_main_context_new
73 fun:g_main_context_default
74 }
75
76 {
77 GTest initialization
78 Memcheck:Leak
79 ...
80 fun:g_test_init
81 fun:main
82 }
83
84 {
85 GTest admin
86 Memcheck:Leak
87 ...
88 fun:g_test_add_vtable
89 }
90
91 {
92 GTest pseudorandomness
93 Memcheck:Leak
94 ...
95 fun:g_rand_new_with_seed_array
96 fun:test_run_seed
97 ...
98 fun:g_test_run
99 }
100
101 {
102 GSLice initialization
103 Memcheck:Leak
104 ...
105 fun:g_malloc0
106 fun:g_slice_init_nomessage
107 fun:g_slice_alloc
108 }
109
110 # ============================= GObject ===============================
111
112 {
113 g_type_init
114 Memcheck:Leak
115 ...
116 fun:g_type_init
117 }
118
119 {
120 g_type_init_with_debug_flags
121 Memcheck:Leak
122 ...
123 fun:g_type_init_with_debug_flags
124 }
125
126 {
127 g_type_register_static
128 Memcheck:Leak
129 ...
130 fun:g_type_register_static
131 }
132
133 # ============================= dbus-glib =============================
134
135 {
136 dbus-glib, https://bugs.freedesktop.org/show_bug.cgi?id=14125
137 Memcheck:Addr4
138 fun:g_hash_table_foreach
139 obj:/usr/lib/libdbus-glib-1.so.2.1.0
140 fun:g_object_run_dispose
141 }
142
143 {
144 registering marshallers is permanent
145 Memcheck:Leak
146 ...
147 fun:dbus_g_object_register_marshaller_array
148 fun:dbus_g_object_register_marshaller
149 }
150
151 {
152 dbus-glib specialized GTypes are permanent
153 Memcheck:Leak
154 ...
155 fun:dbus_g_type_specialized_init
156 }
157
158 {
159 libdbus shared connection
160 Memcheck:Leak
161 ...
162 fun:dbus_g_bus_get
163 }
164
165 {
166 dbus-gobject registrations aren't freed unless we fall off the bus
167 Memcheck:Leak
168 ...
169 fun:g_slist_append
170 fun:dbus_g_connection_register_g_object
171 }
172
173 {
174 DBusGProxy slots aren't freed unless we fall off the bus
175 Memcheck:Leak
176 ...
177 fun:dbus_connection_allocate_data_slot
178 ...
179 fun:dbus_g_proxy_constructor
180 }
181
182 {
183 error registrations are for life, not just for Christmas
184 Memcheck:Leak
185 ...
186 fun:dbus_g_error_domain_register
187 }
188
189 # ============================= telepathy-glib ========================
190
191 {
192 tp_dbus_daemon_constructor @daemons once per DBusConnection
193 Memcheck:Leak
194 ...
195 fun:g_slice_alloc
196 fun:tp_dbus_daemon_constructor
197 }
198
199 {
200 tp_proxy_subclass_add_error_mapping refs the enum
201 Memcheck:Leak
202 ...
203 fun:g_type_class_ref
204 fun:tp_proxy_subclass_add_error_mapping
205 }
206
207 {
208 tp_proxy_or_subclass_hook_on_interface_add never frees its list
209 Memcheck:Leak
210 ...
211 fun:tp_proxy_or_subclass_hook_on_interface_add
212 }
213
214 {
215 tp_dbus_daemon_constructor filter not freed til we fall off the bus
216 Memcheck:Leak
217 ...
218 fun:dbus_connection_add_filter
219 fun:tp_dbus_daemon_constructor
220 }
221
222 # ============================= unclassified ==========================
223
224 {
225 creating param specs in tp_proxy_class_intern_init
226 Memcheck:Leak
227 fun:memalign
228 fun:posix_memalign
229 fun:slab_allocator_alloc_chunk
230 fun:g_slice_alloc
231 fun:g_slice_alloc0
232 fun:g_type_create_instance
233 fun:g_param_spec_internal
234 fun:g_param_spec_string
23522 }
23623
23724 {
25441 fun:_dl_start
25542 obj:/lib/ld-2.9.so
25643 }
44
45 {
46 selinux, we just don't know
47 Memcheck:Leak
48 fun:malloc
49 fun:getdelim
50 obj:/lib/libselinux.so.1
51 }
52
53 # ============================= GLib ==================================
54
55 {
56 g_set_prgname copies its argument
57 Memcheck:Leak
58 ...
59 fun:g_set_prgname
60 }
61
62 {
63 one g_get_charset per child^Wprocess
64 Memcheck:Leak
65 ...
66 fun:g_get_charset
67 }
68
69 {
70 GQuarks can't be freed
71 Memcheck:Leak
72 ...
73 fun:g_quark_from_static_string
74 }
75
76 {
77 GQuarks can't be freed
78 Memcheck:Leak
79 ...
80 fun:g_quark_from_string
81 }
82
83 {
84 interned strings can't be freed
85 Memcheck:Leak
86 ...
87 fun:g_intern_string
88 }
89
90 {
91 interned strings can't be freed
92 Memcheck:Leak
93 ...
94 fun:g_intern_static_string
95 }
96
97 {
98 shared global default g_main_context
99 Memcheck:Leak
100 ...
101 fun:g_main_context_new
102 fun:g_main_context_default
103 }
104
105 {
106 GTest initialization
107 Memcheck:Leak
108 ...
109 fun:g_test_init
110 fun:main
111 }
112
113 {
114 GTest admin
115 Memcheck:Leak
116 ...
117 fun:g_test_add_vtable
118 }
119
120 {
121 GTest pseudorandomness
122 Memcheck:Leak
123 ...
124 fun:g_rand_new_with_seed_array
125 fun:test_run_seed
126 ...
127 fun:g_test_run
128 }
129
130 {
131 GSLice initialization
132 Memcheck:Leak
133 ...
134 fun:g_malloc0
135 fun:g_slice_init_nomessage
136 fun:g_slice_alloc
137 }
138
139 # ============================= GObject ===============================
140
141 {
142 g_type_init
143 Memcheck:Leak
144 ...
145 fun:g_type_init
146 }
147
148 {
149 g_type_init_with_debug_flags
150 Memcheck:Leak
151 ...
152 fun:g_type_init_with_debug_flags
153 }
154
155 {
156 g_type_register_static
157 Memcheck:Leak
158 ...
159 fun:g_type_register_static
160 }
161
162 {
163 g_type_add_interface_static
164 Memcheck:Leak
165 ...
166 fun:g_type_add_interface_static
167 }
168
169 # ============================= GIO ===================================
170
171 {
172 g_simple_async_result class
173 Memcheck:Leak
174 ...
175 fun:g_type_class_ref
176 ...
177 fun:g_simple_async_result_new
178 }
179
180 # ============================= dbus-glib =============================
181
182 {
183 dbus-glib, https://bugs.freedesktop.org/show_bug.cgi?id=14125
184 Memcheck:Addr4
185 fun:g_hash_table_foreach
186 obj:/usr/lib/libdbus-glib-1.so.2.1.0
187 fun:g_object_run_dispose
188 }
189
190 {
191 registering marshallers is permanent
192 Memcheck:Leak
193 ...
194 fun:dbus_g_object_register_marshaller_array
195 fun:dbus_g_object_register_marshaller
196 }
197
198 {
199 dbus-glib specialized GTypes are permanent
200 Memcheck:Leak
201 ...
202 fun:dbus_g_type_specialized_init
203 }
204
205 {
206 libdbus shared connection
207 Memcheck:Leak
208 ...
209 fun:dbus_g_bus_get
210 }
211
212 {
213 dbus-gobject registrations aren't freed unless we fall off the bus
214 Memcheck:Leak
215 ...
216 fun:g_slist_append
217 fun:dbus_g_connection_register_g_object
218 }
219
220 {
221 DBusGProxy slots aren't freed unless we fall off the bus
222 Memcheck:Leak
223 ...
224 fun:dbus_connection_allocate_data_slot
225 ...
226 fun:dbus_g_proxy_constructor
227 }
228
229 {
230 error registrations are for life, not just for Christmas
231 Memcheck:Leak
232 ...
233 fun:dbus_g_error_domain_register
234 }
235
236 # ============================= telepathy-glib ========================
237
238 {
239 tp_dbus_daemon_constructor @daemons once per DBusConnection
240 Memcheck:Leak
241 ...
242 fun:g_slice_alloc
243 fun:tp_dbus_daemon_constructor
244 }
245
246 {
247 tp_proxy_subclass_add_error_mapping refs the enum
248 Memcheck:Leak
249 ...
250 fun:g_type_class_ref
251 fun:tp_proxy_subclass_add_error_mapping
252 }
253
254 {
255 tp_proxy_or_subclass_hook_on_interface_add never frees its list
256 Memcheck:Leak
257 ...
258 fun:tp_proxy_or_subclass_hook_on_interface_add
259 }
260
261 {
262 tp_dbus_daemon_constructor filter not freed til we fall off the bus
263 Memcheck:Leak
264 ...
265 fun:dbus_connection_add_filter
266 fun:tp_dbus_daemon_constructor
267 }
268
269 {
270 tp_g_socket_address_from_variant reffing GNIO types
271 Memcheck:Leak
272 ...
273 fun:g_type_class_ref
274 ...
275 fun:tp_g_socket_address_from_variant
276 }
277
278 {
279 creating classes for DBusGProxy
280 Memcheck:Leak
281 ...
282 fun:g_type_class_ref
283 ...
284 fun:g_object_new
285 ...
286 fun:tp_proxy_borrow_interface_by_id
287 }
288
289 {
290 creating classes for tp_dbus_daemon_new
291 Memcheck:Leak
292 ...
293 fun:g_type_class_ref
294 ...
295 fun:g_object_new
296 ...
297 fun:tp_dbus_daemon_new
298 }
299
300 {
301 creating classes for TpCHannel
302 Memcheck:Leak
303 ...
304 fun:g_type_class_ref
305 ...
306 fun:g_object_new
307 ...
308 fun:tp_channel_new
309 }
310
311 {
312 creating a boxed type to use in TpCapabilities
313 Memcheck:Leak
314 ...
315 fun:g_type_class_ref
316 ...
317 fun:g_param_spec_boxed
318 fun:tp_capabilities_class_intern_init
319 }
320
321 # ============================= questionable ==========================
322
323 {
324 creating classes for instances (this is a pretty big hammer)
325 Memcheck:Leak
326 ...
327 fun:g_type_class_ref
328 ...
329 fun:g_type_create_instance
330 ...
331 fun:g_param_spec_string
332 }