Imported Upstream version 0.11.4
Simon McVittie
14 years ago
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 | ||
0 | 618 | commit 49fcaecfdfb03c5aa8f5fd79eac4be0d7bfb25a3 |
1 | 619 | Author: Simon McVittie <simon.mcvittie@collabora.co.uk> |
2 | 620 | Date: 2010-04-20 16:11:39 +0100 |
529 | 1147 | contacts_got_attributes: look for the right contacts attribute key for location |
530 | 1148 | |
531 | 1149 | 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(). | |
532 | 1198 | |
533 | 1199 | commit 2f8ec7dc831e091bc32c11001b74ccc57ccd258f |
534 | 1200 | Merge: 73bf2bb bf879d2 |
40 | 40 | subdir = . |
41 | 41 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
42 | 42 | 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 \ | |
47 | 47 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
48 | 48 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
49 | 49 | $(top_srcdir)/configure.ac |
160 | 160 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
161 | 161 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
162 | 162 | 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@ | |
163 | 168 | LD = @LD@ |
164 | 169 | LDFLAGS = @LDFLAGS@ |
165 | 170 | 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 | ||
0 | 42 | telepathy-glib 0.11.3 (2010-04-20) |
1 | 43 | ================================== |
2 | 44 |
61 | 61 | between one release tarball and the next, we will change the SONAME of the |
62 | 62 | library; we will attempt to avoid incompatible API or ABI changes. |
63 | 63 | |
64 | The GObject-Introspection bindings are not currently considered to be stable, | |
65 | so they have no API/ABI guarantees yet. | |
66 | ||
64 | 67 | Unreleased builds straight from git identify themselves as version |
65 | 68 | "x.y.z.1". We DO NOT make any API guarantees about unreleased builds: |
66 | 69 | any binary relying on new functionality from an unreleased build is not |
1369 | 1369 | |
1370 | 1370 | m4_include([m4/compiler.m4]) |
1371 | 1371 | m4_include([m4/gtk-doc.m4]) |
1372 | m4_include([m4/introspection.m4]) | |
1372 | 1373 | m4_include([m4/libtool.m4]) |
1373 | 1374 | m4_include([m4/linker.m4]) |
1374 | 1375 | m4_include([m4/ltoptions.m4]) |
0 | 0 | #! /bin/sh |
1 | 1 | # 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. | |
3 | 3 | # |
4 | 4 | # Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=Telepathy&component=tp-glib>. |
5 | 5 | # |
701 | 701 | # Identity of this package. |
702 | 702 | PACKAGE_NAME='Telepathy-GLib' |
703 | 703 | 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' | |
706 | 706 | PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=Telepathy&component=tp-glib' |
707 | 707 | PACKAGE_URL='' |
708 | 708 | |
797 | 797 | GTKDOC_MKPDF |
798 | 798 | GTKDOC_REBASE |
799 | 799 | 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 | |
800 | 807 | PKG_CONFIG |
801 | 808 | CPP |
802 | 809 | OTOOL64 |
916 | 923 | enable_fast_install |
917 | 924 | with_gnu_ld |
918 | 925 | enable_libtool_lock |
926 | enable_introspection | |
919 | 927 | with_html_dir |
920 | 928 | enable_gtk_doc |
921 | 929 | enable_gtk_doc_html |
1488 | 1496 | # Omit some internal or obsolete options to make the list less imposing. |
1489 | 1497 | # This message is too long to be a string in the A/UX 3.1 sh. |
1490 | 1498 | 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. | |
1492 | 1500 | |
1493 | 1501 | Usage: $0 [OPTION]... [VAR=VALUE]... |
1494 | 1502 | |
1558 | 1566 | |
1559 | 1567 | if test -n "$ac_init_help"; then |
1560 | 1568 | 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:";; | |
1562 | 1570 | esac |
1563 | 1571 | cat <<\_ACEOF |
1564 | 1572 | |
1575 | 1583 | --enable-fast-install[=PKGS] |
1576 | 1584 | optimize for fast installation [default=yes] |
1577 | 1585 | --disable-libtool-lock avoid locking (might break parallel builds) |
1586 | --enable-introspection=[no/auto/yes] | |
1587 | Enable introspection for this build | |
1578 | 1588 | --enable-gtk-doc use gtk-doc to build documentation [[default=no]] |
1579 | 1589 | --enable-gtk-doc-html build documentation in html format [[default=yes]] |
1580 | 1590 | --enable-gtk-doc-pdf build documentation in pdf format [[default=no]] |
1693 | 1703 | test -n "$ac_init_help" && exit $ac_status |
1694 | 1704 | if $ac_init_version; then |
1695 | 1705 | cat <<\_ACEOF |
1696 | Telepathy-GLib configure 0.11.3 | |
1706 | Telepathy-GLib configure 0.11.4 | |
1697 | 1707 | generated by GNU Autoconf 2.65 |
1698 | 1708 | |
1699 | 1709 | Copyright (C) 2009 Free Software Foundation, Inc. |
2064 | 2074 | This file contains any messages produced by compilers while |
2065 | 2075 | running configure, to aid debugging if configure makes a mistake. |
2066 | 2076 | |
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 | |
2068 | 2078 | generated by GNU Autoconf 2.65. Invocation command line was |
2069 | 2079 | |
2070 | 2080 | $ $0 $@ |
2875 | 2885 | |
2876 | 2886 | # Define the identity of the package. |
2877 | 2887 | PACKAGE='telepathy-glib' |
2878 | VERSION='0.11.3' | |
2888 | VERSION='0.11.4' | |
2879 | 2889 | |
2880 | 2890 | |
2881 | 2891 | cat >>confdefs.h <<_ACEOF |
4885 | 4895 | else |
4886 | 4896 | lt_cv_nm_interface="BSD nm" |
4887 | 4897 | 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) | |
4889 | 4899 | (eval "$ac_compile" 2>conftest.err) |
4890 | 4900 | 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) | |
4892 | 4902 | (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) |
4893 | 4903 | cat conftest.err >&5 |
4894 | (eval echo "\"\$as_me:4895: output\"" >&5) | |
4904 | (eval echo "\"\$as_me:4905: output\"" >&5) | |
4895 | 4905 | cat conftest.out >&5 |
4896 | 4906 | if $GREP 'External.*some_variable' conftest.out > /dev/null; then |
4897 | 4907 | lt_cv_nm_interface="MS dumpbin" |
6097 | 6107 | ;; |
6098 | 6108 | *-*-irix6*) |
6099 | 6109 | # Find out which ABI we are using. |
6100 | echo '#line 6101 "configure"' > conftest.$ac_ext | |
6110 | echo '#line 6111 "configure"' > conftest.$ac_ext | |
6101 | 6111 | if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 |
6102 | 6112 | (eval $ac_compile) 2>&5 |
6103 | 6113 | ac_status=$? |
7627 | 7637 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ |
7628 | 7638 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ |
7629 | 7639 | -e 's:$: $lt_compiler_flag:'` |
7630 | (eval echo "\"\$as_me:7631: $lt_compile\"" >&5) | |
7640 | (eval echo "\"\$as_me:7641: $lt_compile\"" >&5) | |
7631 | 7641 | (eval "$lt_compile" 2>conftest.err) |
7632 | 7642 | ac_status=$? |
7633 | 7643 | cat conftest.err >&5 |
7634 | echo "$as_me:7635: \$? = $ac_status" >&5 | |
7644 | echo "$as_me:7645: \$? = $ac_status" >&5 | |
7635 | 7645 | if (exit $ac_status) && test -s "$ac_outfile"; then |
7636 | 7646 | # The compiler can only warn and ignore the option if not recognized |
7637 | 7647 | # So say no if there are warnings other than the usual output. |
7966 | 7976 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ |
7967 | 7977 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ |
7968 | 7978 | -e 's:$: $lt_compiler_flag:'` |
7969 | (eval echo "\"\$as_me:7970: $lt_compile\"" >&5) | |
7979 | (eval echo "\"\$as_me:7980: $lt_compile\"" >&5) | |
7970 | 7980 | (eval "$lt_compile" 2>conftest.err) |
7971 | 7981 | ac_status=$? |
7972 | 7982 | cat conftest.err >&5 |
7973 | echo "$as_me:7974: \$? = $ac_status" >&5 | |
7983 | echo "$as_me:7984: \$? = $ac_status" >&5 | |
7974 | 7984 | if (exit $ac_status) && test -s "$ac_outfile"; then |
7975 | 7985 | # The compiler can only warn and ignore the option if not recognized |
7976 | 7986 | # So say no if there are warnings other than the usual output. |
8071 | 8081 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ |
8072 | 8082 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ |
8073 | 8083 | -e 's:$: $lt_compiler_flag:'` |
8074 | (eval echo "\"\$as_me:8075: $lt_compile\"" >&5) | |
8084 | (eval echo "\"\$as_me:8085: $lt_compile\"" >&5) | |
8075 | 8085 | (eval "$lt_compile" 2>out/conftest.err) |
8076 | 8086 | ac_status=$? |
8077 | 8087 | cat out/conftest.err >&5 |
8078 | echo "$as_me:8079: \$? = $ac_status" >&5 | |
8088 | echo "$as_me:8089: \$? = $ac_status" >&5 | |
8079 | 8089 | if (exit $ac_status) && test -s out/conftest2.$ac_objext |
8080 | 8090 | then |
8081 | 8091 | # The compiler can only warn and ignore the option if not recognized |
8126 | 8136 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ |
8127 | 8137 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ |
8128 | 8138 | -e 's:$: $lt_compiler_flag:'` |
8129 | (eval echo "\"\$as_me:8130: $lt_compile\"" >&5) | |
8139 | (eval echo "\"\$as_me:8140: $lt_compile\"" >&5) | |
8130 | 8140 | (eval "$lt_compile" 2>out/conftest.err) |
8131 | 8141 | ac_status=$? |
8132 | 8142 | cat out/conftest.err >&5 |
8133 | echo "$as_me:8134: \$? = $ac_status" >&5 | |
8143 | echo "$as_me:8144: \$? = $ac_status" >&5 | |
8134 | 8144 | if (exit $ac_status) && test -s out/conftest2.$ac_objext |
8135 | 8145 | then |
8136 | 8146 | # The compiler can only warn and ignore the option if not recognized |
10510 | 10520 | lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 |
10511 | 10521 | lt_status=$lt_dlunknown |
10512 | 10522 | cat > conftest.$ac_ext <<_LT_EOF |
10513 | #line 10514 "configure" | |
10523 | #line 10524 "configure" | |
10514 | 10524 | #include "confdefs.h" |
10515 | 10525 | |
10516 | 10526 | #if HAVE_DLFCN_H |
10606 | 10616 | lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 |
10607 | 10617 | lt_status=$lt_dlunknown |
10608 | 10618 | cat > conftest.$ac_ext <<_LT_EOF |
10609 | #line 10610 "configure" | |
10619 | #line 10620 "configure" | |
10610 | 10620 | #include "confdefs.h" |
10611 | 10621 | |
10612 | 10622 | #if HAVE_DLFCN_H |
10960 | 10970 | |
10961 | 10971 | |
10962 | 10972 | |
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 | ||
10963 | 11060 | # Extract the first word of "gtkdoc-check", so it can be a program name with args. |
10964 | 11061 | set dummy gtkdoc-check; ac_word=$2 |
10965 | 11062 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
11108 | 11205 | |
11109 | 11206 | if test x$enable_gtk_doc = xyes; then |
11110 | 11207 | 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 | |
11113 | 11210 | ac_status=$? |
11114 | 11211 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 |
11115 | 11212 | test $ac_status = 0; }; then |
11116 | 11213 | : |
11117 | 11214 | 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 | |
11119 | 11216 | fi |
11120 | 11217 | fi |
11121 | 11218 | |
11186 | 11283 | |
11187 | 11284 | |
11188 | 11285 | |
11189 | LT_CURRENT=35 | |
11190 | LT_REVISION=1 | |
11191 | LT_AGE=35 | |
11286 | LT_CURRENT=36 | |
11287 | LT_REVISION=0 | |
11288 | LT_AGE=36 | |
11192 | 11289 | |
11193 | 11290 | |
11194 | 11291 | |
12409 | 12506 | fi |
12410 | 12507 | if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then |
12411 | 12508 | 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. | |
12412 | 12513 | Usually this means the macro was only invoked conditionally." "$LINENO" 5 |
12413 | 12514 | fi |
12414 | 12515 | if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then |
12859 | 12960 | # report actual input values of CONFIG_FILES etc. instead of their |
12860 | 12961 | # values after options handling. |
12861 | 12962 | 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 | |
12863 | 12964 | generated by GNU Autoconf 2.65. Invocation command line was |
12864 | 12965 | |
12865 | 12966 | CONFIG_FILES = $CONFIG_FILES |
12925 | 13026 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 |
12926 | 13027 | ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" |
12927 | 13028 | ac_cs_version="\\ |
12928 | Telepathy-GLib config.status 0.11.3 | |
13029 | Telepathy-GLib config.status 0.11.4 | |
12929 | 13030 | configured by $0, generated by GNU Autoconf 2.65, |
12930 | 13031 | with options \\"\$ac_cs_config\\" |
12931 | 13032 |
10 | 10 | |
11 | 11 | m4_define([tp_glib_major_version], [0]) |
12 | 12 | m4_define([tp_glib_minor_version], [11]) |
13 | m4_define([tp_glib_micro_version], [3]) | |
13 | m4_define([tp_glib_micro_version], [4]) | |
14 | 14 | m4_define([tp_glib_nano_version], [0]) |
15 | 15 | |
16 | 16 | # If library source has changed since last release, increment revision |
25 | 25 | # (we don't guarantee that we won't add ABI then remove it again, if it was |
26 | 26 | # never seen in a release). |
27 | 27 | |
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]) | |
31 | 31 | |
32 | 32 | # Some magic |
33 | 33 | m4_define([tp_glib_base_version], |
56 | 56 | # pkg-config 0.21 adds CFLAGS from Requires.private, which we need |
57 | 57 | PKG_PROG_PKG_CONFIG([0.21]) |
58 | 58 | |
59 | GTK_DOC_CHECK([1.10]) | |
59 | GOBJECT_INTROSPECTION_CHECK([0.6.4]) | |
60 | GTK_DOC_CHECK([1.14]) | |
60 | 61 | |
61 | 62 | LT_CURRENT=tp_glib_lt_current |
62 | 63 | LT_REVISION=tp_glib_lt_revision |
36 | 36 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
37 | 37 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
38 | 38 | 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 \ | |
43 | 43 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
44 | 44 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
45 | 45 | $(top_srcdir)/configure.ac |
144 | 144 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
145 | 145 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
146 | 146 | 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@ | |
147 | 152 | LD = @LD@ |
148 | 153 | LDFLAGS = @LDFLAGS@ |
149 | 154 | LIBOBJS = @LIBOBJS@ |
51 | 51 | subdir = docs/reference |
52 | 52 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
53 | 53 | 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 \ | |
58 | 58 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
59 | 59 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
60 | 60 | $(top_srcdir)/configure.ac |
119 | 119 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
120 | 120 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
121 | 121 | 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@ | |
122 | 127 | LD = @LD@ |
123 | 128 | LDFLAGS = @LDFLAGS@ |
124 | 129 | LIBOBJS = @LIBOBJS@ |
18 | 18 | <th width="100%" align="center">telepathy-glib Reference Manual</th> |
19 | 19 | <td> </td> |
20 | 20 | </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> | |
22 | 34 | </table> |
23 | 35 | <div class="glossary" title="Annotation Glossary"> |
24 | 36 | <div class="titlepage"><div><div><h2 class="title"> |
25 | 37 | <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> | |
26 | 58 | <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> | |
27 | 62 | <dt> |
28 | 63 | <a name="annotation-glossterm-transfer%20full"></a>transfer full</dt> |
29 | 64 | <dd><p>Free data after the code is done.</p></dd> |
1057 | 1057 | <ANCHOR id="TP-CONNECTION-FEATURE-CORE:CAPS" href="telepathy-glib/telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CORE:CAPS"> |
1058 | 1058 | <ANCHOR id="TP-CONNECTION-FEATURE-CONNECTED:CAPS" href="telepathy-glib/telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CONNECTED:CAPS"> |
1059 | 1059 | <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"> | |
1060 | 1061 | <ANCHOR id="tp-connection-run-until-ready" href="telepathy-glib/telepathy-glib-connection.html#tp-connection-run-until-ready"> |
1061 | 1062 | <ANCHOR id="TpConnectionWhenReadyCb" href="telepathy-glib/telepathy-glib-connection.html#TpConnectionWhenReadyCb"> |
1062 | 1063 | <ANCHOR id="tp-connection-call-when-ready" href="telepathy-glib/telepathy-glib-connection.html#tp-connection-call-when-ready"> |
1073 | 1074 | <ANCHOR id="tp-connection-presence-type-cmp-availability" href="telepathy-glib/telepathy-glib-connection.html#tp-connection-presence-type-cmp-availability"> |
1074 | 1075 | <ANCHOR id="tp-connection-parse-object-path" href="telepathy-glib/telepathy-glib-connection.html#tp-connection-parse-object-path"> |
1075 | 1076 | <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"> | |
1076 | 1078 | <ANCHOR id="TP-UNKNOWN-CONNECTION-STATUS:CAPS" href="telepathy-glib/telepathy-glib-connection.html#TP-UNKNOWN-CONNECTION-STATUS:CAPS"> |
1077 | 1079 | <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"> | |
1078 | 1086 | <ANCHOR id="tp-cli-connection-callback-for-connect" href="telepathy-glib/telepathy-glib-connection.html#tp-cli-connection-callback-for-connect"> |
1079 | 1087 | <ANCHOR id="tp-cli-connection-call-connect" href="telepathy-glib/telepathy-glib-connection.html#tp-cli-connection-call-connect"> |
1080 | 1088 | <ANCHOR id="tp-cli-connection-run-connect" href="telepathy-glib/telepathy-glib-connection.html#tp-cli-connection-run-connect"> |
3347 | 3355 | <ANCHOR id="tp-heap-peek-first" href="telepathy-glib/telepathy-glib-TpHeap.html#tp-heap-peek-first"> |
3348 | 3356 | <ANCHOR id="tp-heap-extract-first" href="telepathy-glib/telepathy-glib-TpHeap.html#tp-heap-extract-first"> |
3349 | 3357 | <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"> | |
3350 | 3364 | <ANCHOR id="annotation-glossterm-transfer full" href="telepathy-glib/annotation-glossary.html#annotation-glossterm-transfer full"> |
3351 | 3365 | <ANCHOR id="annotation-glossterm-transfer none" href="telepathy-glib/annotation-glossary.html#annotation-glossterm-transfer none"> |
302 | 302 | </tr> |
303 | 303 | <tr> |
304 | 304 | <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> | |
307 | 307 | </tr> |
308 | 308 | <tr> |
309 | 309 | <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> | |
312 | 312 | </tr> |
313 | 313 | <tr> |
314 | 314 | <td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td> |
335 | 335 | 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> |
336 | 336 | 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. |
337 | 337 | </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> | |
338 | 342 | <div class="variablelist"><table border="0"> |
339 | 343 | <col align="left" valign="top"> |
340 | 344 | <tbody> |
355 | 359 | </tr> |
356 | 360 | <tr> |
357 | 361 | <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> | |
362 | 365 | </tr> |
363 | 366 | </tbody> |
364 | 367 | </table></div> |
397 | 400 | <tr> |
398 | 401 | <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
399 | 402 | <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> | |
402 | 404 | </tr> |
403 | 405 | </tbody> |
404 | 406 | </table></div> |
453 | 455 | <tr> |
454 | 456 | <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
455 | 457 | <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> | |
458 | 459 | </tr> |
459 | 460 | </tbody> |
460 | 461 | </table></div> |
493 | 494 | </tr> |
494 | 495 | <tr> |
495 | 496 | <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> | |
498 | 498 | </tr> |
499 | 499 | <tr> |
500 | 500 | <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> | |
503 | 503 | </tr> |
504 | 504 | <tr> |
505 | 505 | <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
407 | 407 | </tr> |
408 | 408 | <tr> |
409 | 409 | <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> | |
412 | 412 | </tr> |
413 | 413 | <tr> |
414 | 414 | <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> | |
417 | 417 | </tr> |
418 | 418 | <tr> |
419 | 419 | <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> | |
422 | 422 | </tr> |
423 | 423 | <tr> |
424 | 424 | <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td> |
454 | 454 | <tr> |
455 | 455 | <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
456 | 456 | <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> | |
459 | 458 | </tr> |
460 | 459 | </tbody> |
461 | 460 | </table></div> |
491 | 490 | </tr> |
492 | 491 | <tr> |
493 | 492 | <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> | |
498 | 496 | </tr> |
499 | 497 | </tbody> |
500 | 498 | </table></div> |
819 | 817 | </tr> |
820 | 818 | <tr> |
821 | 819 | <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> | |
824 | 822 | </tr> |
825 | 823 | <tr> |
826 | 824 | <td><p><span class="term"><em class="parameter"><code>unset_parameters</code></em> :</span></p></td> |
866 | 864 | </tr> |
867 | 865 | <tr> |
868 | 866 | <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> | |
872 | 869 | </tr> |
873 | 870 | <tr> |
874 | 871 | <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td> |
1345 | 1342 | </tr> |
1346 | 1343 | <tr> |
1347 | 1344 | <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> | |
1350 | 1346 | </tr> |
1351 | 1347 | <tr> |
1352 | 1348 | <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
1380 | 1376 | </tr> |
1381 | 1377 | <tr> |
1382 | 1378 | <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> | |
1385 | 1380 | </tr> |
1386 | 1381 | <tr> |
1387 | 1382 | <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> | |
1390 | 1385 | </tr> |
1391 | 1386 | <tr> |
1392 | 1387 | <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
1421 | 1416 | </tr> |
1422 | 1417 | <tr> |
1423 | 1418 | <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> | |
1426 | 1420 | </tr> |
1427 | 1421 | <tr> |
1428 | 1422 | <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> | |
1431 | 1425 | </tr> |
1432 | 1426 | <tr> |
1433 | 1427 | <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
1468 | 1462 | </tr> |
1469 | 1463 | <tr> |
1470 | 1464 | <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> | |
1474 | 1468 | </tr> |
1475 | 1469 | </tbody> |
1476 | 1470 | </table></div> |
1675 | 1669 | </tr> |
1676 | 1670 | <tr> |
1677 | 1671 | <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> | |
1680 | 1674 | </tr> |
1681 | 1675 | <tr> |
1682 | 1676 | <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td> |
1685 | 1679 | </tr> |
1686 | 1680 | <tr> |
1687 | 1681 | <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> | |
1691 | 1684 | </tr> |
1692 | 1685 | <tr> |
1693 | 1686 | <td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td> |
234 | 234 | <p> |
235 | 235 | </p> |
236 | 236 | <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> | |
238 | 238 | <div class="example-contents"> |
239 | 239 | <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> |
240 | 240 | <tbody> |
380 | 380 | </tr> |
381 | 381 | <tr> |
382 | 382 | <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, | |
384 | 385 | as signalled by the NewChannel D-Bus signal or returned by the |
385 | 386 | 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> | |
388 | 388 | </tr> |
389 | 389 | <tr> |
390 | 390 | <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td> |
632 | 632 | </tr> |
633 | 633 | <tr> |
634 | 634 | <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> | |
637 | 636 | </tr> |
638 | 637 | </tbody> |
639 | 638 | </table></div> |
672 | 671 | </tr> |
673 | 672 | <tr> |
674 | 673 | <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, | |
676 | 676 | 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> | |
679 | 678 | </tr> |
680 | 679 | </tbody> |
681 | 680 | </table></div> |
773 | 772 | </tr> |
774 | 773 | <tr> |
775 | 774 | <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> | |
778 | 776 | </tr> |
779 | 777 | <tr> |
780 | 778 | <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
790 | 788 | <a name="tp-channel-get-identifier"></a><h3>tp_channel_get_identifier ()</h3> |
791 | 789 | <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> |
792 | 790 | <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> | |
797 | 795 | 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. | |
799 | 802 | </p> |
800 | 803 | <div class="variablelist"><table border="0"> |
801 | 804 | <col align="left" valign="top"> |
2282 | 2285 | <a name="TpChannel--identifier"></a><h3>The <code class="literal">"identifier"</code> property</h3> |
2283 | 2286 | <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> |
2284 | 2287 | <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>. | |
2289 | 2294 | </p> |
2290 | 2295 | <p> |
2291 | 2296 | 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> | |
2295 | 2306 | </div> |
2296 | 2307 | </div> |
2297 | 2308 | <div class="refsect1" title="Signal Details"> |
2465 | 2476 | </tr> |
2466 | 2477 | <tr> |
2467 | 2478 | <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> | |
2470 | 2481 | </tr> |
2471 | 2482 | <tr> |
2472 | 2483 | <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> | |
2476 | 2486 | </tr> |
2477 | 2487 | <tr> |
2478 | 2488 | <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> | |
2482 | 2491 | </tr> |
2483 | 2492 | <tr> |
2484 | 2493 | <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> | |
2488 | 2496 | </tr> |
2489 | 2497 | <tr> |
2490 | 2498 | <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 | |
2492 | 2501 | 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> | |
2495 | 2503 | </tr> |
2496 | 2504 | <tr> |
2497 | 2505 | <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> |
266 | 266 | <tbody> |
267 | 267 | <tr> |
268 | 268 | <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 | |
271 | 271 | be unreferenced and the array will be freed after the callback returns, |
272 | 272 | 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> | |
275 | 274 | </tr> |
276 | 275 | <tr> |
277 | 276 | <td><p><span class="term"><em class="parameter"><code>n_cms</code></em> :</span></p></td> |
327 | 326 | </tr> |
328 | 327 | <tr> |
329 | 328 | <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> | |
333 | 331 | </tr> |
334 | 332 | <tr> |
335 | 333 | <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> |
344 | 342 | </tr> |
345 | 343 | <tr> |
346 | 344 | <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> | |
350 | 348 | </tr> |
351 | 349 | </tbody> |
352 | 350 | </table></div> |
480 | 478 | </tr> |
481 | 479 | <tr> |
482 | 480 | <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> | |
486 | 483 | </tr> |
487 | 484 | <tr> |
488 | 485 | <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td> |
837 | 834 | </tr> |
838 | 835 | <tr> |
839 | 836 | <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> | |
842 | 838 | </tr> |
843 | 839 | </tbody> |
844 | 840 | </table></div> |
914 | 910 | </tr> |
915 | 911 | <tr> |
916 | 912 | <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> | |
919 | 914 | </tr> |
920 | 915 | </tbody> |
921 | 916 | </table></div> |
1000 | 995 | </tr> |
1001 | 996 | <tr> |
1002 | 997 | <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> | |
1005 | 999 | </tr> |
1006 | 1000 | </tbody> |
1007 | 1001 | </table></div> |
64 | 64 | #define <a class="link" href="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CORE:CAPS" title="TP_CONNECTION_FEATURE_CORE">TP_CONNECTION_FEATURE_CORE</a> |
65 | 65 | #define <a class="link" href="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CONNECTED:CAPS" title="TP_CONNECTION_FEATURE_CONNECTED">TP_CONNECTION_FEATURE_CONNECTED</a> |
66 | 66 | #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> | |
67 | 68 | <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>, |
68 | 69 | <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> connect</code></em>, |
69 | 70 | <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>, |
133 | 134 | <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>, |
134 | 135 | <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>); |
135 | 136 | <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>); | |
136 | 139 | #define <a class="link" href="telepathy-glib-connection.html#TP-UNKNOWN-CONNECTION-STATUS:CAPS" title="TP_UNKNOWN_CONNECTION_STATUS">TP_UNKNOWN_CONNECTION_STATUS</a> |
137 | 140 | #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>); | |
138 | 143 | |
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>); | |
139 | 157 | |
140 | 158 | <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>) |
141 | 159 | (<em class="parameter"><code><a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a> *proxy</code></em>, |
642 | 660 | </tr> |
643 | 661 | <tr> |
644 | 662 | <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> | |
650 | 667 | </tr> |
651 | 668 | <tr> |
652 | 669 | <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> | |
657 | 673 | </tr> |
658 | 674 | <tr> |
659 | 675 | <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td> |
784 | 800 | <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. |
785 | 801 | </p> |
786 | 802 | <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> | |
787 | 822 | </div> |
788 | 823 | <hr> |
789 | 824 | <div class="refsect2" title="tp_connection_run_until_ready ()"> |
962 | 997 | </tr> |
963 | 998 | <tr> |
964 | 999 | <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> | |
967 | 1001 | </tr> |
968 | 1002 | <tr> |
969 | 1003 | <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
1304 | 1338 | </tr> |
1305 | 1339 | <tr> |
1306 | 1340 | <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> | |
1310 | 1343 | </tr> |
1311 | 1344 | <tr> |
1312 | 1345 | <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> |
1534 | 1567 | </tr> |
1535 | 1568 | <tr> |
1536 | 1569 | <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> | |
1539 | 1572 | </tr> |
1540 | 1573 | <tr> |
1541 | 1574 | <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> | |
1545 | 1577 | </tr> |
1546 | 1578 | <tr> |
1547 | 1579 | <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
1577 | 1609 | </tbody> |
1578 | 1610 | </table></div> |
1579 | 1611 | <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> | |
1580 | 1642 | </div> |
1581 | 1643 | <hr> |
1582 | 1644 | <div class="refsect2" title="TP_UNKNOWN_CONNECTION_STATUS"> |
1602 | 1664 | <p> |
1603 | 1665 | 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>. |
1604 | 1666 | </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> | |
1605 | 1671 | <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> | |
1606 | 1903 | </div> |
1607 | 1904 | <hr> |
1608 | 1905 | <div class="refsect2" title="tp_cli_connection_callback_for_connect ()"> |
453 | 453 | </tr> |
454 | 454 | <tr> |
455 | 455 | <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 | |
457 | 458 | 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> | |
460 | 460 | </tr> |
461 | 461 | <tr> |
462 | 462 | <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.) | |
464 | 465 | 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> | |
467 | 467 | </tr> |
468 | 468 | <tr> |
469 | 469 | <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> | |
473 | 472 | </tr> |
474 | 473 | <tr> |
475 | 474 | <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td> |
533 | 532 | </tr> |
534 | 533 | <tr> |
535 | 534 | <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 | |
537 | 537 | 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> | |
540 | 539 | </tr> |
541 | 540 | <tr> |
542 | 541 | <td><p><span class="term"><em class="parameter"><code>n_features</code></em> :</span></p></td> |
545 | 544 | </tr> |
546 | 545 | <tr> |
547 | 546 | <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> | |
551 | 550 | </tr> |
552 | 551 | <tr> |
553 | 552 | <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> | |
556 | 554 | </tr> |
557 | 555 | <tr> |
558 | 556 | <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> |
567 | 565 | </tr> |
568 | 566 | <tr> |
569 | 567 | <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> | |
573 | 571 | </tr> |
574 | 572 | </tbody> |
575 | 573 | </table></div> |
674 | 672 | </tr> |
675 | 673 | <tr> |
676 | 674 | <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> | |
679 | 677 | </tr> |
680 | 678 | <tr> |
681 | 679 | <td><p><span class="term"><em class="parameter"><code>n_features</code></em> :</span></p></td> |
684 | 682 | </tr> |
685 | 683 | <tr> |
686 | 684 | <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> | |
690 | 687 | </tr> |
691 | 688 | <tr> |
692 | 689 | <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> | |
695 | 691 | </tr> |
696 | 692 | <tr> |
697 | 693 | <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> |
706 | 702 | </tr> |
707 | 703 | <tr> |
708 | 704 | <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> | |
712 | 708 | </tr> |
713 | 709 | </tbody> |
714 | 710 | </table></div> |
789 | 785 | <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> |
790 | 786 | (it must be referenced with g_object_ref if it must remain valid |
791 | 787 | 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> | |
794 | 789 | </tr> |
795 | 790 | </tbody> |
796 | 791 | </table></div> |
967 | 962 | </tr> |
968 | 963 | <tr> |
969 | 964 | <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> | |
973 | 968 | </tr> |
974 | 969 | </tbody> |
975 | 970 | </table></div> |
429 | 429 | </tr> |
430 | 430 | <tr> |
431 | 431 | <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> | |
435 | 435 | </tr> |
436 | 436 | <tr> |
437 | 437 | <td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td> |
577 | 577 | </tr> |
578 | 578 | <tr> |
579 | 579 | <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> | |
585 | 585 | </tr> |
586 | 586 | </tbody> |
587 | 587 | </table></div> |
1123 | 1123 | <p> |
1124 | 1124 | </p> |
1125 | 1125 | <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> | |
1127 | 1127 | <div class="example-contents"> |
1128 | 1128 | <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> |
1129 | 1129 | <tbody> |
1189 | 1189 | <p> |
1190 | 1190 | </p> |
1191 | 1191 | <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> | |
1193 | 1193 | <div class="example-contents"> |
1194 | 1194 | <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> |
1195 | 1195 | <tbody> |
1200 | 1200 | 4 |
1201 | 1201 | 5 |
1202 | 1202 | 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> | |
1204 | 1204 | guint port<span class="symbol">;</span> |
1205 | 1205 | |
1206 | 1206 | <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> |
813 | 813 | <function name="TP_CONNECTION_FEATURE_CORE" link="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CORE:CAPS"/> |
814 | 814 | <function name="TP_CONNECTION_FEATURE_CONNECTED" link="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CONNECTED:CAPS"/> |
815 | 815 | <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"/> | |
816 | 817 | <function name="tp_connection_run_until_ready ()" link="telepathy-glib-connection.html#tp-connection-run-until-ready"/> |
817 | 818 | <function name="TpConnectionWhenReadyCb ()" link="telepathy-glib-connection.html#TpConnectionWhenReadyCb"/> |
818 | 819 | <function name="tp_connection_call_when_ready ()" link="telepathy-glib-connection.html#tp-connection-call-when-ready"/> |
829 | 830 | <function name="tp_connection_presence_type_cmp_availability ()" link="telepathy-glib-connection.html#tp-connection-presence-type-cmp-availability"/> |
830 | 831 | <function name="tp_connection_parse_object_path ()" link="telepathy-glib-connection.html#tp-connection-parse-object-path"/> |
831 | 832 | <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"/> | |
832 | 834 | <function name="TP_UNKNOWN_CONNECTION_STATUS" link="telepathy-glib-connection.html#TP-UNKNOWN-CONNECTION-STATUS:CAPS"/> |
833 | 835 | <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"/> | |
834 | 842 | <function name="tp_cli_connection_callback_for_connect ()" link="telepathy-glib-connection.html#tp-cli-connection-callback-for-connect"/> |
835 | 843 | <function name="tp_cli_connection_call_connect ()" link="telepathy-glib-connection.html#tp-cli-connection-call-connect"/> |
836 | 844 | <function name="tp_cli_connection_run_connect ()" link="telepathy-glib-connection.html#tp-cli-connection-run-connect"/> |
813 | 813 | <keyword type="macro" name="TP_CONNECTION_FEATURE_CORE" link="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CORE:CAPS" since="0.11.3"/> |
814 | 814 | <keyword type="macro" name="TP_CONNECTION_FEATURE_CONNECTED" link="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CONNECTED:CAPS" since="0.11.3"/> |
815 | 815 | <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"/> | |
816 | 817 | <keyword type="function" name="tp_connection_run_until_ready ()" link="telepathy-glib-connection.html#tp-connection-run-until-ready" deprecated="" since="0.7.1"/> |
817 | 818 | <keyword type="function" name="TpConnectionWhenReadyCb ()" link="telepathy-glib-connection.html#TpConnectionWhenReadyCb"/> |
818 | 819 | <keyword type="function" name="tp_connection_call_when_ready ()" link="telepathy-glib-connection.html#tp-connection-call-when-ready" since="0.7.7"/> |
829 | 830 | <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"/> |
830 | 831 | <keyword type="function" name="tp_connection_parse_object_path ()" link="telepathy-glib-connection.html#tp-connection-parse-object-path" since="0.7.27"/> |
831 | 832 | <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"/> | |
832 | 834 | <keyword type="macro" name="TP_UNKNOWN_CONNECTION_STATUS" link="telepathy-glib-connection.html#TP-UNKNOWN-CONNECTION-STATUS:CAPS" since="0.7.1"/> |
833 | 835 | <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"/> | |
834 | 842 | <keyword type="function" name="tp_cli_connection_callback_for_connect ()" link="telepathy-glib-connection.html#tp-cli-connection-callback-for-connect"/> |
835 | 843 | <keyword type="function" name="tp_cli_connection_call_connect ()" link="telepathy-glib-connection.html#tp-cli-connection-call-connect"/> |
836 | 844 | <keyword type="function" name="tp_cli_connection_run_connect ()" link="telepathy-glib-connection.html#tp-cli-connection-run-connect" deprecated=""/> |
2751 | 2751 | TP_CONNECTION_FEATURE_CORE |
2752 | 2752 | TP_CONNECTION_FEATURE_CONNECTED |
2753 | 2753 | TP_CONNECTION_FEATURE_CAPABILITIES |
2754 | TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS | |
2754 | 2755 | tp_connection_run_until_ready |
2755 | 2756 | TpConnectionWhenReadyCb |
2756 | 2757 | tp_connection_call_when_ready |
2767 | 2768 | tp_connection_presence_type_cmp_availability |
2768 | 2769 | tp_connection_parse_object_path |
2769 | 2770 | tp_connection_get_capabilities |
2771 | tp_connection_get_avatar_requirements | |
2770 | 2772 | TP_UNKNOWN_CONNECTION_STATUS |
2771 | 2773 | TP_ERRORS_DISCONNECTED |
2774 | tp_connection_get_detailed_error | |
2772 | 2775 | <SUBSECTION Standard> |
2773 | 2776 | tp_errors_disconnected_quark |
2774 | 2777 | tp_connection_get_type |
2779 | 2782 | TP_IS_CONNECTION |
2780 | 2783 | TP_IS_CONNECTION_CLASS |
2781 | 2784 | TpConnectionPrivate |
2785 | tp_avatar_requirements_get_type | |
2782 | 2786 | tp_connection_get_feature_quark_core |
2783 | 2787 | tp_connection_get_feature_quark_connected |
2784 | 2788 | 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 | |
2785 | 2796 | <SUBSECTION> |
2786 | 2797 | tp_cli_connection_callback_for_connect |
2787 | 2798 | tp_cli_connection_call_connect |
8 | 8 | |
9 | 9 | </para> |
10 | 10 | |
11 | ||
11 | 12 | <!-- ##### SECTION See_Also ##### --> |
12 | 13 | <para> |
13 | 14 | |
14 | 15 | </para> |
16 | ||
15 | 17 | |
16 | 18 | <!-- ##### SECTION Stability_Level ##### --> |
17 | 19 |
8 | 8 | |
9 | 9 | </para> |
10 | 10 | |
11 | ||
11 | 12 | <!-- ##### SECTION See_Also ##### --> |
12 | 13 | <para> |
13 | 14 | |
14 | 15 | </para> |
16 | ||
15 | 17 | |
16 | 18 | <!-- ##### SECTION Stability_Level ##### --> |
17 | 19 |
8 | 8 | |
9 | 9 | </para> |
10 | 10 | |
11 | ||
11 | 12 | <!-- ##### SECTION See_Also ##### --> |
12 | 13 | <para> |
13 | 14 | |
14 | 15 | </para> |
16 | ||
15 | 17 | |
16 | 18 | <!-- ##### SECTION Stability_Level ##### --> |
17 | 19 |
110 | 110 | |
111 | 111 | |
112 | 112 | <!-- ##### MACRO TP_CONNECTION_FEATURE_CAPABILITIES ##### --> |
113 | <para> | |
114 | ||
115 | </para> | |
116 | ||
117 | ||
118 | ||
119 | <!-- ##### MACRO TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS ##### --> | |
113 | 120 | <para> |
114 | 121 | |
115 | 122 | </para> |
302 | 309 | @Returns: |
303 | 310 | |
304 | 311 | |
312 | <!-- ##### FUNCTION tp_connection_get_avatar_requirements ##### --> | |
313 | <para> | |
314 | ||
315 | </para> | |
316 | ||
317 | @self: | |
318 | @Returns: | |
319 | ||
320 | ||
305 | 321 | <!-- ##### MACRO TP_UNKNOWN_CONNECTION_STATUS ##### --> |
306 | 322 | <para> |
307 | 323 | |
314 | 330 | |
315 | 331 | </para> |
316 | 332 | |
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: | |
317 | 397 | |
318 | 398 | |
319 | 399 | <!-- ##### USER_FUNCTION tp_cli_connection_callback_for_connect ##### --> |
8 | 8 | |
9 | 9 | </para> |
10 | 10 | |
11 | ||
11 | 12 | <!-- ##### SECTION See_Also ##### --> |
12 | 13 | <para> |
13 | 14 | |
14 | 15 | </para> |
16 | ||
15 | 17 | |
16 | 18 | <!-- ##### SECTION Stability_Level ##### --> |
17 | 19 |
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 |
36 | 36 | DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
37 | 37 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
38 | 38 | 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 \ | |
43 | 43 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
44 | 44 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
45 | 45 | $(top_srcdir)/configure.ac |
144 | 144 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
145 | 145 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
146 | 146 | 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@ | |
147 | 152 | LD = @LD@ |
148 | 153 | LDFLAGS = @LDFLAGS@ |
149 | 154 | LIBOBJS = @LIBOBJS@ |
39 | 39 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
40 | 40 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
41 | 41 | 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 \ | |
46 | 46 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
47 | 47 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
48 | 48 | $(top_srcdir)/configure.ac |
202 | 202 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
203 | 203 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
204 | 204 | 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@ | |
205 | 210 | LD = @LD@ |
206 | 211 | LDFLAGS = @LDFLAGS@ |
207 | 212 | LIBOBJS = @LIBOBJS@ |
36 | 36 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
37 | 37 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
38 | 38 | 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 \ | |
43 | 43 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
44 | 44 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
45 | 45 | $(top_srcdir)/configure.ac |
144 | 144 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
145 | 145 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
146 | 146 | 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@ | |
147 | 152 | LD = @LD@ |
148 | 153 | LDFLAGS = @LDFLAGS@ |
149 | 154 | LIBOBJS = @LIBOBJS@ |
43 | 43 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
44 | 44 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
45 | 45 | 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 \ | |
50 | 50 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
51 | 51 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
52 | 52 | $(top_srcdir)/configure.ac |
177 | 177 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
178 | 178 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
179 | 179 | 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@ | |
180 | 185 | LD = @LD@ |
181 | 186 | LDFLAGS = @LDFLAGS@ |
182 | 187 | LIBOBJS = @LIBOBJS@ |
44 | 44 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
45 | 45 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
46 | 46 | 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 \ | |
51 | 51 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
52 | 52 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
53 | 53 | $(top_srcdir)/configure.ac |
177 | 177 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
178 | 178 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
179 | 179 | 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@ | |
180 | 185 | LD = @LD@ |
181 | 186 | LDFLAGS = @LDFLAGS@ |
182 | 187 | LIBOBJS = @LIBOBJS@ |
43 | 43 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
44 | 44 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
45 | 45 | 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 \ | |
50 | 50 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
51 | 51 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
52 | 52 | $(top_srcdir)/configure.ac |
177 | 177 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
178 | 178 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
179 | 179 | 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@ | |
180 | 185 | LD = @LD@ |
181 | 186 | LDFLAGS = @LDFLAGS@ |
182 | 187 | LIBOBJS = @LIBOBJS@ |
41 | 41 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
42 | 42 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
43 | 43 | 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 \ | |
48 | 48 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
49 | 49 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
50 | 50 | $(top_srcdir)/configure.ac |
174 | 174 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
175 | 175 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
176 | 176 | 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@ | |
177 | 182 | LD = @LD@ |
178 | 183 | LDFLAGS = @LDFLAGS@ |
179 | 184 | LIBOBJS = @LIBOBJS@ |
220 | 220 | } |
221 | 221 | } |
222 | 222 | |
223 | static ExampleEchoChannel * | |
223 | static void | |
224 | 224 | new_channel (ExampleEchoImManager *self, |
225 | 225 | TpHandle handle, |
226 | 226 | TpHandle initiator, |
244 | 244 | |
245 | 245 | g_signal_connect (chan, "closed", (GCallback) channel_closed_cb, self); |
246 | 246 | |
247 | /* self->priv->channels takes ownership of 'chan' */ | |
247 | 248 | g_hash_table_insert (self->priv->channels, GUINT_TO_POINTER (handle), chan); |
248 | 249 | |
249 | 250 | if (request_token != NULL) |
252 | 253 | tp_channel_manager_emit_new_channel (self, TP_EXPORTABLE_CHANNEL (chan), |
253 | 254 | requests); |
254 | 255 | g_slist_free (requests); |
255 | ||
256 | return chan; | |
257 | 256 | } |
258 | 257 | |
259 | 258 | static const gchar * const fixed_properties[] = { |
322 | 321 | |
323 | 322 | if (chan == NULL) |
324 | 323 | { |
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); | |
327 | 325 | } |
328 | 326 | else if (require_new) |
329 | 327 | { |
41 | 41 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
42 | 42 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
43 | 43 | 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 \ | |
48 | 48 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
49 | 49 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
50 | 50 | $(top_srcdir)/configure.ac |
175 | 175 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
176 | 176 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
177 | 177 | 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@ | |
178 | 183 | LD = @LD@ |
179 | 184 | LDFLAGS = @LDFLAGS@ |
180 | 185 | LIBOBJS = @LIBOBJS@ |
40 | 40 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
41 | 41 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
42 | 42 | 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 \ | |
47 | 47 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
48 | 48 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
49 | 49 | $(top_srcdir)/configure.ac |
168 | 168 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
169 | 169 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
170 | 170 | 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@ | |
171 | 176 | LD = @LD@ |
172 | 177 | LDFLAGS = @LDFLAGS@ |
173 | 178 | LIBOBJS = @LIBOBJS@ |
40 | 40 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
41 | 41 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
42 | 42 | 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 \ | |
47 | 47 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
48 | 48 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
49 | 49 | $(top_srcdir)/configure.ac |
167 | 167 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
168 | 168 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
169 | 169 | 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@ | |
170 | 175 | LD = @LD@ |
171 | 176 | LDFLAGS = @LDFLAGS@ |
172 | 177 | LIBOBJS = @LIBOBJS@ |
46 | 46 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
47 | 47 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
48 | 48 | 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 \ | |
53 | 53 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
54 | 54 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
55 | 55 | $(top_srcdir)/configure.ac |
151 | 151 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
152 | 152 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
153 | 153 | 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@ | |
154 | 159 | LD = @LD@ |
155 | 160 | LDFLAGS = @LDFLAGS@ |
156 | 161 | LIBOBJS = @LIBOBJS@ |
36 | 36 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
37 | 37 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
38 | 38 | 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 \ | |
43 | 43 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
44 | 44 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
45 | 45 | $(top_srcdir)/configure.ac |
144 | 144 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
145 | 145 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
146 | 146 | 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@ | |
147 | 152 | LD = @LD@ |
148 | 153 | LDFLAGS = @LDFLAGS@ |
149 | 154 | LIBOBJS = @LIBOBJS@ |
43 | 43 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
44 | 44 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
45 | 45 | 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 \ | |
50 | 50 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
51 | 51 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
52 | 52 | $(top_srcdir)/configure.ac |
177 | 177 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
178 | 178 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
179 | 179 | 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@ | |
180 | 185 | LD = @LD@ |
181 | 186 | LDFLAGS = @LDFLAGS@ |
182 | 187 | LIBOBJS = @LIBOBJS@ |
41 | 41 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
42 | 42 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
43 | 43 | 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 \ | |
48 | 48 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
49 | 49 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
50 | 50 | $(top_srcdir)/configure.ac |
148 | 148 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
149 | 149 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
150 | 150 | 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@ | |
151 | 156 | LD = @LD@ |
152 | 157 | LDFLAGS = @LDFLAGS@ |
153 | 158 | LIBOBJS = @LIBOBJS@ |
36 | 36 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
37 | 37 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
38 | 38 | 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 \ | |
43 | 43 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
44 | 44 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
45 | 45 | $(top_srcdir)/configure.ac |
104 | 104 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
105 | 105 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
106 | 106 | 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@ | |
107 | 112 | LD = @LD@ |
108 | 113 | LDFLAGS = @LDFLAGS@ |
109 | 114 | 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 | ]) |
36 | 36 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
37 | 37 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
38 | 38 | 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 \ | |
43 | 43 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
44 | 44 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
45 | 45 | $(top_srcdir)/configure.ac |
104 | 104 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
105 | 105 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
106 | 106 | 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@ | |
107 | 112 | LD = @LD@ |
108 | 113 | LDFLAGS = @LDFLAGS@ |
109 | 114 | LIBOBJS = @LIBOBJS@ |
5 | 5 | pkgconfigdir = ${libdir}/pkgconfig |
6 | 6 | pkgconfig_DATA = telepathy-glib.pc |
7 | 7 | |
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 | ||
48 | 8 | EXTRA_DIST = \ |
49 | 9 | $(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. | |
69 | 19 | |
70 | 20 | lib_LTLIBRARIES = libtelepathy-glib.la |
71 | 21 | 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 | |
130 | 22 | |
131 | 23 | # headers that are subject to coding-style checks |
132 | 24 | our_headers = \ |
195 | 87 | $(our_headers) \ |
196 | 88 | verify.h |
197 | 89 | |
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) | |
272 | 91 | |
273 | 92 | CLEANFILES = \ |
274 | 93 | $(BUILT_SOURCES) |
357 | 176 | @DBUS_LIBS@ \ |
358 | 177 | @GLIB_LIBS@ |
359 | 178 | |
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 |
13 | 13 | # PARTICULAR PURPOSE. |
14 | 14 | |
15 | 15 | @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. | |
16 | 22 | |
17 | 23 | |
18 | 24 | |
36 | 42 | build_triplet = @build@ |
37 | 43 | host_triplet = @host@ |
38 | 44 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ |
45 | $(srcdir)/abi.am $(srcdir)/codegen.am \ | |
46 | $(srcdir)/introspection.am \ | |
39 | 47 | $(srcdir)/telepathy-glib-uninstalled.pc.in \ |
40 | 48 | $(srcdir)/telepathy-glib.pc.in \ |
41 | 49 | $(top_srcdir)/tools/check-coding-style.mk \ |
46 | 54 | @HAVE_LD_VERSION_SCRIPT_TRUE@ $(VERSION_SCRIPT_ARG)=_gen/version-script.txt |
47 | 55 | |
48 | 56 | @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 | ||
49 | 61 | subdir = telepathy-glib |
50 | 62 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
51 | 63 | 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 \ | |
56 | 68 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
57 | 69 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
58 | 70 | $(top_srcdir)/configure.ac |
83 | 95 | am__base_list = \ |
84 | 96 | sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ |
85 | 97 | 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)" \ | |
87 | 100 | "$(DESTDIR)$(genincludedir)" "$(DESTDIR)$(tpgincludedir)" |
88 | 101 | LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) |
89 | 102 | am__DEPENDENCIES_1 = |
154 | 167 | $(nodist_libtelepathy_glib_internal_la_SOURCES) \ |
155 | 168 | $(nodist_libtelepathy_glib_la_SOURCES) |
156 | 169 | DIST_SOURCES = $(libtelepathy_glib_internal_la_SOURCES) |
157 | DATA = $(pkgconfig_DATA) | |
170 | DATA = $(gir_DATA) $(pkgconfig_DATA) $(typelibs_DATA) | |
158 | 171 | HEADERS = $(nodist_geninclude_HEADERS) $(tpginclude_HEADERS) |
159 | 172 | ETAGS = etags |
160 | 173 | CTAGS = ctags |
205 | 218 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
206 | 219 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
207 | 220 | 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@ | |
208 | 226 | LD = @LD@ |
209 | 227 | LDFLAGS = @LDFLAGS@ |
210 | 228 | LIBOBJS = @LIBOBJS@ |
307 | 325 | genincludedir = $(tpgincludedir)/_gen |
308 | 326 | pkgconfigdir = ${libdir}/pkgconfig |
309 | 327 | 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 | ||
350 | 328 | EXTRA_DIST = \ |
351 | 329 | $(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. | |
372 | 340 | lib_LTLIBRARIES = libtelepathy-glib.la |
373 | 341 | 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 = | |
397 | 342 | |
398 | 343 | # headers that are subject to coding-style checks |
399 | 344 | our_headers = \ |
462 | 407 | $(our_headers) \ |
463 | 408 | verify.h |
464 | 409 | |
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) | |
543 | 412 | check_c_sources = \ |
544 | 413 | $(our_headers) \ |
545 | 414 | $(libtelepathy_glib_internal_la_SOURCES) |
618 | 487 | @DBUS_LIBS@ \ |
619 | 488 | @GLIB_LIBS@ |
620 | 489 | |
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 | ||
621 | 645 | |
622 | 646 | # Generated stuff |
623 | 647 | DROP_NAMESPACE = sed -e 's@xmlns:tp="http://telepathy\.freedesktop\.org/wiki/DbusSpec.extensions-v0"@@g' |
624 | 648 | 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) | |
625 | 674 | all: $(BUILT_SOURCES) |
626 | 675 | $(MAKE) $(AM_MAKEFLAGS) all-am |
627 | 676 | |
628 | 677 | .SUFFIXES: |
629 | 678 | .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) | |
631 | 680 | @for dep in $?; do \ |
632 | 681 | case '$(am__configure_deps)' in \ |
633 | 682 | *$$dep*) \ |
924 | 973 | |
925 | 974 | clean-libtool: |
926 | 975 | -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 | |
927 | 996 | install-pkgconfigDATA: $(pkgconfig_DATA) |
928 | 997 | @$(NORMAL_INSTALL) |
929 | 998 | test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" |
944 | 1013 | test -n "$$files" || exit 0; \ |
945 | 1014 | echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \ |
946 | 1015 | 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 | |
947 | 1036 | install-nodist_genincludeHEADERS: $(nodist_geninclude_HEADERS) |
948 | 1037 | @$(NORMAL_INSTALL) |
949 | 1038 | test -z "$(genincludedir)" || $(MKDIR_P) "$(DESTDIR)$(genincludedir)" |
1073 | 1162 | $(MAKE) $(AM_MAKEFLAGS) check-am |
1074 | 1163 | all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) |
1075 | 1164 | 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 \ | |
1077 | 1166 | test -z "$$dir" || $(MKDIR_P) "$$dir"; \ |
1078 | 1167 | done |
1079 | 1168 | install: $(BUILT_SOURCES) |
1127 | 1216 | |
1128 | 1217 | info-am: |
1129 | 1218 | |
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 | |
1132 | 1222 | |
1133 | 1223 | install-dvi: install-dvi-am |
1134 | 1224 | |
1174 | 1264 | |
1175 | 1265 | ps-am: |
1176 | 1266 | |
1177 | uninstall-am: uninstall-libLTLIBRARIES \ | |
1267 | uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \ | |
1178 | 1268 | uninstall-nodist_genincludeHEADERS uninstall-pkgconfigDATA \ |
1179 | uninstall-tpgincludeHEADERS | |
1269 | uninstall-tpgincludeHEADERS uninstall-typelibsDATA | |
1180 | 1270 | |
1181 | 1271 | .MAKE: all check check-am install install-am install-strip |
1182 | 1272 | |
1186 | 1276 | distclean-generic distclean-libtool distclean-local \ |
1187 | 1277 | distclean-tags distdir dvi dvi-am html html-am info info-am \ |
1188 | 1278 | 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 \ | |
1191 | 1281 | install-libLTLIBRARIES install-man \ |
1192 | 1282 | install-nodist_genincludeHEADERS install-pdf install-pdf-am \ |
1193 | 1283 | 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 | |
1201 | 1292 | |
1202 | 1293 | check-syntax: |
1203 | 1294 | $(CC) $(AM_CPPFLAGS) $(AM_CFLAGS) -fsyntax-only $(CHK_SOURCES) |
1204 | 1295 | |
1205 | 1296 | .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 > $@ | |
1228 | 1297 | |
1229 | 1298 | distclean-local: |
1230 | 1299 | rm -rf _gen |
1248 | 1317 | |
1249 | 1318 | check-local: check-coding-style |
1250 | 1319 | |
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 | ||
1251 | 1344 | # Bootstrapping |
1252 | 1345 | |
1253 | 1346 | _gen/spec-stamp: $(wildcard $(top_srcdir)/spec/*.xml) |
1291 | 1384 | _gen/signals-marshal.list: signals-marshal.list _gen/tp-signals-marshal.list |
1292 | 1385 | $(AM_V_GEN)sort -u $^ > $@ |
1293 | 1386 | |
1294 | _gen/signals-marshal.h: _gen/signals-marshal.list Makefile.am | |
1387 | _gen/signals-marshal.h: _gen/signals-marshal.list codegen.am | |
1295 | 1388 | $(AM_V_GEN)$(GLIB_GENMARSHAL) --header --prefix=_tp_marshal $< > $@ |
1296 | 1389 | |
1297 | _gen/signals-marshal.c: _gen/signals-marshal.list Makefile.am | |
1390 | _gen/signals-marshal.c: _gen/signals-marshal.list codegen.am | |
1298 | 1391 | $(AM_V_GEN){ echo '#include "_gen/signals-marshal.h"' && \ |
1299 | 1392 | $(GLIB_GENMARSHAL) --body --prefix=_tp_marshal $< ; } > $@ |
1300 | 1393 | |
1310 | 1403 | |
1311 | 1404 | _gen/tp-svc-%.c _gen/tp-svc-%.h: _gen/tp-spec-%.xml \ |
1312 | 1405 | $(tools_dir)/glib-ginterface-gen.py \ |
1313 | Makefile.am | |
1406 | codegen.am | |
1314 | 1407 | $(AM_V_GEN)$(PYTHON) $(tools_dir)/glib-ginterface-gen.py \ |
1315 | 1408 | --filename=_gen/tp-svc-$* \ |
1316 | 1409 | --signal-marshal-prefix=_tp \ |
1321 | 1414 | |
1322 | 1415 | _gen/tp-cli-%-body.h _gen/tp-cli-%.h: _gen/tp-spec-%.xml \ |
1323 | 1416 | $(tools_dir)/glib-client-gen.py \ |
1324 | Makefile.am | |
1417 | codegen.am | |
1325 | 1418 | $(AM_V_GEN)set -e; \ |
1326 | 1419 | subclass= ; \ |
1327 | 1420 | subclass_assert= ; \ |
1393 | 1486 | $$maybe_reentrant \ |
1394 | 1487 | $< Tp_Cli _gen/tp-cli-$* |
1395 | 1488 | |
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 | ||
1396 | 1526 | # Tell versions [3.59,3.63) of GNU make to not export all variables. |
1397 | 1527 | # Otherwise a system limit (for SysV at least) may be exceeded. |
1398 | 1528 | .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: |
868 | 868 | * The caller must keep a ref to the returned object using g_object_ref() if |
869 | 869 | * it is to be kept. |
870 | 870 | * |
871 | * Returns: a new #TpAccount at @path | |
871 | * Returns: (transfer none): a new #TpAccount at @path | |
872 | 872 | * |
873 | 873 | * Since: 0.9.0 |
874 | 874 | */ |
921 | 921 | * (tp_proxy_prepare_async() has returned). Until this feature has |
922 | 922 | * been prepared, an empty list (%NULL) will be returned. |
923 | 923 | * |
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 | |
925 | 925 | * |
926 | 926 | * Since: 0.9.0 |
927 | 927 | */ |
1007 | 1007 | /** |
1008 | 1008 | * tp_account_manager_get_most_available_presence: |
1009 | 1009 | * @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 | |
1012 | 1013 | * |
1013 | 1014 | * Gets the most available presence over all accounts in @manager. This |
1014 | 1015 | * function does not average presences across all accounts, but it merely |
1081 | 1082 | * @connection_manager: the name of a connection manager |
1082 | 1083 | * @protocol: the name of a protocol |
1083 | 1084 | * @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 | |
1086 | 1089 | * @callback: a callback to call when the request is satisfied |
1087 | 1090 | * @user_data: data to pass to @callback |
1088 | 1091 | * |
1136 | 1139 | * Finishes an async create account operation, and returns a new #TpAccount |
1137 | 1140 | * object, with the %TP_ACCOUNT_FEATURE_CORE feature ready on it. |
1138 | 1141 | * |
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 | |
1141 | 1147 | * |
1142 | 1148 | * Since: 0.9.0 |
1143 | 1149 | */ |
1168 | 1174 | } |
1169 | 1175 | |
1170 | 1176 | /** |
1171 | * tp_account_manager_is_prepared: | |
1177 | * tp_account_manager_is_prepared: (skip) | |
1172 | 1178 | * @manager: a #TpAccountManager |
1173 | 1179 | * @feature: a feature which is required |
1174 | 1180 | * |
1186 | 1192 | } |
1187 | 1193 | |
1188 | 1194 | /** |
1189 | * tp_account_manager_prepare_async: | |
1195 | * tp_account_manager_prepare_async: (skip) | |
1190 | 1196 | * @manager: a #TpAccountManager |
1191 | 1197 | * @features: a 0-terminated list of features, or %NULL |
1192 | 1198 | * @callback: a callback to call when the request is satisfied |
1217 | 1223 | } |
1218 | 1224 | |
1219 | 1225 | /** |
1220 | * tp_account_manager_prepare_finish: | |
1226 | * tp_account_manager_prepare_finish: (skip) | |
1221 | 1227 | * @manager: a #TpAccountManager |
1222 | 1228 | * @result: a #GAsyncResult |
1223 | 1229 | * @error: a #GError to fill |
297 | 297 | } |
298 | 298 | } |
299 | 299 | |
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 | } | |
301 | 306 | } |
302 | 307 | |
303 | 308 | static void |
466 | 471 | |
467 | 472 | if (g_hash_table_lookup (properties, "Connection") != NULL) |
468 | 473 | { |
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)) | |
475 | 477 | { |
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) | |
478 | 483 | _tp_account_free_connection (account); |
484 | ||
485 | g_object_notify (G_OBJECT (account), "connection"); | |
479 | 486 | } |
480 | 487 | } |
481 | 488 | |
690 | 697 | g_free (priv->icon_name); |
691 | 698 | g_free (priv->display_name); |
692 | 699 | |
700 | if (priv->parameters != NULL) | |
701 | g_hash_table_unref (priv->parameters); | |
702 | ||
693 | 703 | /* free any data held directly by the object here */ |
694 | 704 | if (G_OBJECT_CLASS (tp_account_parent_class)->finalize != NULL) |
695 | 705 | G_OBJECT_CLASS (tp_account_parent_class)->finalize (object); |
1229 | 1239 | * |
1230 | 1240 | * <!-- --> |
1231 | 1241 | * |
1232 | * Returns: the same as the #TpAccount:connection property | |
1242 | * Returns: (transfer none): the same as the #TpAccount:connection property | |
1233 | 1243 | * |
1234 | 1244 | * Since: 0.9.0 |
1235 | 1245 | **/ |
1261 | 1271 | * already know the object path for the connection, so you can let @account |
1262 | 1272 | * create its #TpConnection and return it for use. |
1263 | 1273 | * |
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 "/" | |
1266 | 1276 | * |
1267 | 1277 | * Since: 0.9.0 |
1268 | 1278 | **/ |
1396 | 1406 | * <ulink url="http://telepathy.freedesktop.org/spec/org.freedesktop.Telepathy.ConnectionManager.html#org.freedesktop.Telepathy.ConnectionManager.RequestConnection">in |
1397 | 1407 | * the Telepathy D-Bus Interface Specification</ulink>. |
1398 | 1408 | * |
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 | |
1400 | 1411 | * |
1401 | 1412 | * Since: 0.9.0 |
1402 | 1413 | */ |
1701 | 1712 | /** |
1702 | 1713 | * tp_account_update_parameters_async: |
1703 | 1714 | * @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 | |
1705 | 1717 | * @unset_parameters: list of parameters to unset on @account |
1706 | 1718 | * @callback: a callback to call when the request is satisfied |
1707 | 1719 | * @user_data: data to pass to @callback |
1735 | 1747 | * tp_account_update_parameters_finish: |
1736 | 1748 | * @account: a #TpAccount |
1737 | 1749 | * @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 | |
1740 | 1752 | * @error: a #GError to fill |
1741 | 1753 | * |
1742 | 1754 | * Finishes an async update of the parameters on @account. |
2110 | 2122 | /** |
2111 | 2123 | * tp_account_get_connection_status: |
2112 | 2124 | * @account: a #TpAccount |
2113 | * @reason: a #TpConnectionStatusReason to fill, or %NULL | |
2125 | * @reason: (out): a #TpConnectionStatusReason to fill, or %NULL | |
2114 | 2126 | * |
2115 | 2127 | * Gets the connection status and reason from @account. The two values |
2116 | 2128 | * are the same as the #TpAccount:connection-status and |
2136 | 2148 | /** |
2137 | 2149 | * tp_account_get_current_presence: |
2138 | 2150 | * @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 | |
2141 | 2154 | * |
2142 | 2155 | * Gets the current presence, status and status message of @account. These |
2143 | 2156 | * values are the same as the #TpAccount:current-presence-type, |
2167 | 2180 | /** |
2168 | 2181 | * tp_account_get_requested_presence: |
2169 | 2182 | * @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 | |
2172 | 2186 | * |
2173 | 2187 | * Gets the requested presence, status and status message of @account. These |
2174 | 2188 | * values are the same as the #TpAccount:requested-presence-type, |
2385 | 2399 | } |
2386 | 2400 | |
2387 | 2401 | /** |
2388 | * tp_account_is_prepared: | |
2402 | * tp_account_is_prepared: (skip) | |
2389 | 2403 | * @account: a #TpAccount |
2390 | 2404 | * @feature: a feature which is required |
2391 | 2405 | * |
2403 | 2417 | } |
2404 | 2418 | |
2405 | 2419 | /** |
2406 | * tp_account_prepare_async: | |
2420 | * tp_account_prepare_async: (skip) | |
2407 | 2421 | * @account: a #TpAccount |
2408 | 2422 | * @features: a 0-terminated list of features, or %NULL |
2409 | 2423 | * @callback: a callback to call when the request is satisfied |
2436 | 2450 | } |
2437 | 2451 | |
2438 | 2452 | /** |
2439 | * tp_account_prepare_finish: | |
2453 | * tp_account_prepare_finish: (skip) | |
2440 | 2454 | * @account: a #TpAccount |
2441 | 2455 | * @result: a #GAsyncResult |
2442 | 2456 | * @error: a #GError to fill |
2468 | 2482 | /** |
2469 | 2483 | * tp_account_parse_object_path: |
2470 | 2484 | * @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 | |
2474 | 2491 | * @error: location at which to return an error |
2475 | 2492 | * |
2476 | 2493 | * Validates and parses a Telepathy Account's object path, extracting the |
2613 | 2630 | /** |
2614 | 2631 | * tp_account_set_avatar_async: |
2615 | 2632 | * @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 | |
2617 | 2635 | * @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 | |
2620 | 2638 | * @callback: a callback to call when the request is satisfied |
2621 | 2639 | * @user_data: data to pass to @callback |
2622 | 2640 | * |
1728 | 1728 | { |
1729 | 1729 | switch (error->code) |
1730 | 1730 | { |
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: | |
1732 | 1769 | 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 */ | |
1735 | 1773 | } |
1736 | 1774 | } |
1737 | 1775 |
253 | 253 | /** |
254 | 254 | * tp_channel_get_handle: |
255 | 255 | * @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 | |
257 | 257 | * |
258 | 258 | * Get the handle representing the contact, chatroom, etc. with which this |
259 | 259 | * channel communicates for its whole lifetime, or 0 if there is no such |
289 | 289 | * tp_channel_get_identifier: |
290 | 290 | * @self: a channel |
291 | 291 | * |
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 | * | |
295 | 295 | * 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. | |
297 | 301 | * |
298 | 302 | * Returns: the identifier |
299 | 303 | * Since: 0.7.21 |
303 | 307 | { |
304 | 308 | g_return_val_if_fail (TP_IS_CHANNEL (self), NULL); |
305 | 309 | |
310 | if (self->priv->identifier == NULL) | |
311 | return ""; | |
312 | ||
306 | 313 | return self->priv->identifier; |
307 | 314 | } |
308 | 315 | |
309 | 316 | /** |
310 | * tp_channel_is_ready: | |
317 | * tp_channel_is_ready: (skip) | |
311 | 318 | * @self: a channel |
312 | 319 | * |
313 | 320 | * Returns the same thing as the #TpChannel:channel-ready property. |
344 | 351 | * Returns the connection for this channel. The returned pointer is only valid |
345 | 352 | * while this channel is valid - reference it with g_object_ref() if needed. |
346 | 353 | * |
347 | * Returns: the value of #TpChannel:connection | |
354 | * Returns: (transfer none): the value of #TpChannel:connection | |
348 | 355 | * Since: 0.7.12 |
349 | 356 | */ |
350 | 357 | TpConnection * |
375 | 382 | * progressively more complete values until the %TP_CHANNEL_FEATURE_CORE |
376 | 383 | * feature is prepared. |
377 | 384 | * |
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, | |
379 | 387 | * D-Bus interface name + "." + property name, and the values are #GValue |
380 | 388 | * instances |
381 | 389 | */ |
415 | 423 | g_value_set_uint (value, self->priv->handle); |
416 | 424 | break; |
417 | 425 | case PROP_IDENTIFIER: |
418 | g_value_set_string (value, self->priv->identifier); | |
426 | g_value_set_string (value, tp_channel_get_identifier (self)); | |
419 | 427 | break; |
420 | 428 | case PROP_CHANNEL_PROPERTIES: |
421 | 429 | g_value_set_boxed (value, self->priv->channel_properties); |
598 | 606 | { |
599 | 607 | guint u; |
600 | 608 | |
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 | ||
601 | 613 | tp_g_hash_table_update (self->priv->channel_properties, |
602 | 614 | asv, (GBoxedCopyFunc) g_strdup, |
603 | 615 | (GBoxedCopyFunc) tp_g_value_slice_dup); |
941 | 953 | { |
942 | 954 | TpChannel *self = user_data; |
943 | 955 | |
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) | |
958 | 957 | { |
959 | 958 | _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: | |
962 | 980 | g_object_unref (self); |
963 | 981 | } |
964 | 982 | |
966 | 984 | static void |
967 | 985 | _tp_channel_get_identifier (TpChannel *self) |
968 | 986 | { |
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) | |
971 | 996 | { |
972 | 997 | GArray handles = {(gchar *) &self->priv->handle, 1}; |
973 | 998 | |
1430 | 1455 | /** |
1431 | 1456 | * TpChannel:identifier: |
1432 | 1457 | * |
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. | |
1436 | 1463 | * |
1437 | 1464 | * 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. | |
1439 | 1471 | */ |
1440 | 1472 | param_spec = g_param_spec_string ("identifier", |
1441 | 1473 | "The identifier", |
1442 | 1474 | "The identifier of the channel", |
1443 | NULL, | |
1475 | "", | |
1444 | 1476 | G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); |
1445 | 1477 | g_object_class_install_property (object_class, PROP_IDENTIFIER, |
1446 | 1478 | param_spec); |
1564 | 1596 | G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT); |
1565 | 1597 | |
1566 | 1598 | /** |
1567 | * TpChannel::group-members-changed: | |
1599 | * TpChannel::group-members-changed: (skip) | |
1568 | 1600 | * @self: a channel |
1569 | 1601 | * @message: an optional textual message |
1570 | 1602 | * @added: a #GArray of #guint containing the full members added |
1594 | 1626 | /** |
1595 | 1627 | * TpChannel::group-members-changed-detailed: |
1596 | 1628 | * @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 | |
1601 | 1630 | * 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 | |
1605 | 1639 | * about the change, as described in the specification of the |
1606 | 1640 | * MembersChangedDetailed signal. |
1607 | 1641 | * |
1646 | 1680 | * tp_channel_new_from_properties: |
1647 | 1681 | * @conn: a connection; may not be %NULL |
1648 | 1682 | * @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, | |
1650 | 1685 | * as signalled by the NewChannel D-Bus signal or returned by the |
1651 | 1686 | * CreateChannel and EnsureChannel D-Bus methods: a mapping from |
1652 | 1687 | * strings (D-Bus interface name + "." + property name) to #GValue instances |
1770 | 1805 | } |
1771 | 1806 | |
1772 | 1807 | /** |
1773 | * tp_channel_run_until_ready: | |
1808 | * tp_channel_run_until_ready: (skip) | |
1774 | 1809 | * @self: a channel |
1775 | 1810 | * @error: if not %NULL and %FALSE is returned, used to raise an error |
1776 | 1811 | * @loop: if not %NULL, a #GMainLoop is placed here while it is being run |
1906 | 1941 | */ |
1907 | 1942 | |
1908 | 1943 | /** |
1909 | * tp_channel_call_when_ready: | |
1944 | * tp_channel_call_when_ready: (skip) | |
1910 | 1945 | * @self: a channel |
1911 | 1946 | * @callback: called when the channel becomes ready or invalidated, whichever |
1912 | 1947 | * 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: |
737 | 737 | * @handles: an array of handles |
738 | 738 | * @interfaces: a #GStrv of interfaces |
739 | 739 | * @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) | |
742 | 742 | * @user_data: arbitrary user-supplied data |
743 | 743 | * @destroy: called to destroy @user_data after calling @callback, or when |
744 | 744 | * @weak_object becomes unreferenced (whichever occurs sooner) |
36 | 36 | TpHandle self_handle; |
37 | 37 | TpConnectionStatus status; |
38 | 38 | 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; | |
40 | 42 | |
41 | 43 | /* GArray of GQuark */ |
42 | 44 | GArray *contact_attribute_interfaces; |
46 | 48 | |
47 | 49 | TpCapabilities *capabilities; |
48 | 50 | |
51 | TpAvatarRequirements *avatar_requirements; | |
52 | ||
49 | 53 | TpProxyPendingCall *introspection_call; |
50 | 54 | unsigned fetching_rcc:1; |
55 | unsigned fetching_avatar_requirements:1; | |
51 | 56 | |
52 | 57 | unsigned ready:1; |
53 | 58 | unsigned tracking_aliases_changed:1; |
50 | 50 | |
51 | 51 | /** |
52 | 52 | * 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 | |
54 | 55 | * be unreferenced and the array will be freed after the callback returns, |
55 | 56 | * so the callback must reference any CMs it stores a pointer to), |
56 | 57 | * or %NULL on error |
534 | 535 | */ |
535 | 536 | |
536 | 537 | /** |
537 | * tp_connection_manager_call_when_ready: | |
538 | * tp_connection_manager_call_when_ready: (skip) | |
538 | 539 | * @self: a connection manager |
539 | 540 | * @callback: callback to call when information has been retrieved or on |
540 | 541 | * error |
1800 | 1801 | * tp_connection_manager_new: |
1801 | 1802 | * @dbus: Proxy for the D-Bus daemon |
1802 | 1803 | * @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. | |
1805 | 1806 | * @error: used to return an error if %NULL is returned |
1806 | 1807 | * |
1807 | 1808 | * Convenience function to create a new connection manager proxy. If |
1844 | 1845 | } |
1845 | 1846 | |
1846 | 1847 | /** |
1847 | * tp_connection_manager_activate: | |
1848 | * tp_connection_manager_activate: (skip) | |
1848 | 1849 | * @self: a connection manager proxy |
1849 | 1850 | * |
1850 | 1851 | * Attempt to run and introspect the connection manager, asynchronously. |
2046 | 2047 | /** |
2047 | 2048 | * tp_list_connection_managers: |
2048 | 2049 | * @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 | |
2051 | 2052 | * @user_data: user-supplied data for the callback |
2052 | 2053 | * @destroy: callback to destroy the user-supplied data, called after |
2053 | 2054 | * @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 | |
2056 | 2058 | * |
2057 | 2059 | * List the available (running or installed) connection managers. Call the |
2058 | 2060 | * callback when done. |
2210 | 2212 | } |
2211 | 2213 | |
2212 | 2214 | /** |
2213 | * tp_connection_manager_is_ready: | |
2215 | * tp_connection_manager_is_ready: (skip) | |
2214 | 2216 | * @self: a connection manager |
2215 | 2217 | * |
2216 | 2218 | * If protocol and parameter information has been obtained from the connection |
2291 | 2293 | * The result is copied and must be freed by the caller, but it is not |
2292 | 2294 | * necessarily still true after the main loop is re-entered. |
2293 | 2295 | * |
2294 | * Returns: a #GStrv of protocol names | |
2296 | * Returns: (type GLib.Strv) (transfer full): a #GStrv of protocol names | |
2295 | 2297 | * Since: 0.7.26 |
2296 | 2298 | */ |
2297 | 2299 | gchar ** |
2338 | 2340 | * |
2339 | 2341 | * The result is not necessarily valid after the main loop is re-entered. |
2340 | 2342 | * |
2341 | * Returns: a structure representing the protocol | |
2343 | * Returns: (transfer none): a structure representing the protocol | |
2342 | 2344 | * Since: 0.7.26 |
2343 | 2345 | */ |
2344 | 2346 | const TpConnectionManagerProtocol * |
2465 | 2467 | * |
2466 | 2468 | * The result is copied and must be freed by the caller with g_strfreev(). |
2467 | 2469 | * |
2468 | * Returns: a #GStrv of protocol names | |
2470 | * Returns: (type GLib.Strv) (transfer full): a #GStrv of protocol names | |
2469 | 2471 | * Since: 0.7.26 |
2470 | 2472 | */ |
2471 | 2473 | gchar ** |
21 | 21 | #include "telepathy-glib/connection.h" |
22 | 22 | |
23 | 23 | #include <string.h> |
24 | ||
25 | #include <dbus/dbus-protocol.h> | |
24 | 26 | |
25 | 27 | #include <telepathy-glib/connection-manager.h> |
26 | 28 | #include <telepathy-glib/dbus.h> |
168 | 170 | } |
169 | 171 | |
170 | 172 | /** |
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 | /** | |
171 | 195 | * TP_ERRORS_DISCONNECTED: |
172 | 196 | * |
173 | 197 | * #GError domain representing a Telepathy connection becoming disconnected. |
175 | 199 | * #TpConnectionStatusReason. |
176 | 200 | * |
177 | 201 | * 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. | |
178 | 205 | * |
179 | 206 | * Since: 0.7.1 |
180 | 207 | */ |
350 | 377 | } |
351 | 378 | |
352 | 379 | 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 | |
353 | 455 | tp_connection_continue_introspection (TpConnection *self) |
354 | 456 | { |
355 | 457 | if (tp_proxy_get_invalidated (self) != NULL) |
386 | 488 | g_object_notify ((GObject *) self, "connection-ready"); |
387 | 489 | |
388 | 490 | tp_connection_maybe_prepare_capabilities ((TpProxy *) self); |
491 | tp_connection_maybe_prepare_avatar_requirements ((TpProxy *) self); | |
389 | 492 | } |
390 | 493 | else |
391 | 494 | { |
406 | 509 | GObject *weak_object G_GNUC_UNUSED) |
407 | 510 | { |
408 | 511 | TpConnection *self = TP_CONNECTION (proxy); |
512 | GArray *arr; | |
409 | 513 | |
410 | 514 | g_assert (self->priv->introspection_call != NULL); |
411 | 515 | self->priv->introspection_call = NULL; |
412 | 516 | |
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) | |
416 | 526 | { |
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++) | |
425 | 528 | { |
426 | for (iter = interfaces; *iter != NULL; iter++) | |
529 | if (tp_dbus_check_valid_interface_name (*iter, NULL)) | |
427 | 530 | { |
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); | |
441 | 541 | } |
442 | 542 | } |
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; | |
448 | 543 | } |
544 | } | |
545 | else | |
546 | { | |
547 | if (error == NULL) | |
548 | DEBUG ("%p: ContactAttributeInterfaces had wrong type %s, " | |
549 | "ignoring", self, G_VALUE_TYPE_NAME (value)); | |
449 | 550 | 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; | |
461 | 560 | |
462 | 561 | tp_connection_continue_introspection (self); |
463 | 562 | } |
651 | 750 | gpointer user_data, |
652 | 751 | GObject *weak_object) |
653 | 752 | { |
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); | |
663 | 761 | } |
664 | 762 | |
665 | 763 | static void |
782 | 880 | |
783 | 881 | if (status == TP_CONNECTION_STATUS_DISCONNECTED) |
784 | 882 | { |
883 | GError *error = NULL; | |
884 | ||
785 | 885 | if (self->priv->connection_error == NULL) |
786 | 886 | { |
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); | |
789 | 890 | } |
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); | |
795 | 916 | } |
796 | 917 | } |
797 | 918 | |
911 | 1032 | self->priv->contact_attribute_interfaces = NULL; |
912 | 1033 | } |
913 | 1034 | |
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; | |
918 | 1042 | } |
919 | 1043 | |
920 | 1044 | ((GObjectClass *) tp_connection_parent_class)->finalize (object); |
951 | 1075 | self->priv->capabilities = NULL; |
952 | 1076 | } |
953 | 1077 | |
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 | ||
954 | 1084 | ((GObjectClass *) tp_connection_parent_class)->dispose (object); |
955 | 1085 | } |
956 | 1086 | |
958 | 1088 | FEAT_CORE, |
959 | 1089 | FEAT_CONNECTED, |
960 | 1090 | FEAT_CAPABILITIES, |
1091 | FEAT_AVATAR_REQUIREMENTS, | |
961 | 1092 | N_FEAT |
962 | 1093 | }; |
963 | 1094 | |
977 | 1108 | features[FEAT_CAPABILITIES].name = TP_CONNECTION_FEATURE_CAPABILITIES; |
978 | 1109 | features[FEAT_CAPABILITIES].start_preparing = |
979 | 1110 | 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; | |
980 | 1115 | |
981 | 1116 | /* assert that the terminator at the end is there */ |
982 | 1117 | g_assert (features[N_FEAT].name == 0); |
1103 | 1238 | /** |
1104 | 1239 | * tp_connection_new: |
1105 | 1240 | * @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. | |
1113 | 1248 | * @error: used to indicate the error if %NULL is returned |
1114 | 1249 | * |
1115 | 1250 | * <!-- --> |
1208 | 1343 | /** |
1209 | 1344 | * tp_connection_get_status: |
1210 | 1345 | * @self: a connection |
1211 | * @reason: a TpConnectionStatusReason, or %NULL | |
1346 | * @reason: (out): a TpConnectionStatusReason, or %NULL | |
1212 | 1347 | * |
1213 | 1348 | * If @reason is not %NULL it is set to the reason why "status" changed to its |
1214 | 1349 | * current value, or %TP_CONNECTION_STATUS_REASON_NONE_SPECIFIED if unknown. |
1231 | 1366 | } |
1232 | 1367 | |
1233 | 1368 | /** |
1234 | * tp_connection_run_until_ready: | |
1369 | * tp_connection_run_until_ready: (skip) | |
1235 | 1370 | * @self: a connection |
1236 | 1371 | * @connect: if %TRUE, call Connect() if it appears to be necessary; |
1237 | 1372 | * if %FALSE, rely on Connect() to be called by another client |
1686 | 1821 | */ |
1687 | 1822 | |
1688 | 1823 | /** |
1689 | * tp_connection_call_when_ready: | |
1824 | * tp_connection_call_when_ready: (skip) | |
1690 | 1825 | * @self: a connection |
1691 | 1826 | * @callback: called when the connection becomes ready or invalidated, |
1692 | 1827 | * whichever happens first |
1802 | 1937 | /** |
1803 | 1938 | * tp_connection_parse_object_path: |
1804 | 1939 | * @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 | |
1808 | 1944 | * |
1809 | 1945 | * If the object path of @connection is in the correct form, set |
1810 | 1946 | * @protocol and @cm_name, return TRUE. Otherwise leave them unchanged and |
1872 | 2008 | |
1873 | 2009 | |
1874 | 2010 | /** |
1875 | * tp_connection_is_ready: | |
2011 | * tp_connection_is_ready: (skip) | |
1876 | 2012 | * @self: a connection |
1877 | 2013 | * |
1878 | 2014 | * Returns the same thing as the #TpConnection:connection-ready property. |
1905 | 2041 | |
1906 | 2042 | return self->priv->capabilities; |
1907 | 2043 | } |
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 | } |
47 | 47 | TpProxy parent; |
48 | 48 | TpConnectionPrivate *priv; |
49 | 49 | }; |
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 | ||
50 | 88 | |
51 | 89 | GType tp_connection_get_type (void); |
52 | 90 | |
82 | 120 | |
83 | 121 | TpCapabilities * tp_connection_get_capabilities (TpConnection *self); |
84 | 122 | |
123 | TpAvatarRequirements * tp_connection_get_avatar_requirements ( | |
124 | TpConnection *self); | |
125 | ||
85 | 126 | gboolean tp_connection_is_ready (TpConnection *self); |
86 | 127 | |
87 | 128 | #ifndef TP_DISABLE_DEPRECATED |
114 | 155 | gboolean tp_connection_parse_object_path (TpConnection *self, gchar **protocol, |
115 | 156 | gchar **cm_name); |
116 | 157 | |
158 | const gchar *tp_connection_get_detailed_error (TpConnection *self, | |
159 | const GHashTable **details); | |
160 | ||
117 | 161 | #define TP_CONNECTION_FEATURE_CORE \ |
118 | 162 | (tp_connection_get_feature_quark_core ()) |
119 | 163 | GQuark tp_connection_get_feature_quark_core (void) G_GNUC_CONST; |
125 | 169 | #define TP_CONNECTION_FEATURE_CAPABILITIES \ |
126 | 170 | (tp_connection_get_feature_quark_capabilities ()) |
127 | 171 | 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; | |
128 | 176 | |
129 | 177 | /* connection-handles.c */ |
130 | 178 |
160 | 160 | * |
161 | 161 | * <!-- nothing more to say --> |
162 | 162 | * |
163 | * Returns: a borrowed reference to the #TpContact:connection | |
163 | * Returns: (transfer none): a borrowed reference to the #TpContact:connection | |
164 | 164 | * (it must be referenced with g_object_ref if it must remain valid |
165 | 165 | * longer than the contact) |
166 | 166 | * |
375 | 375 | * requires a hash table that will persist for longer than that, it must be |
376 | 376 | * reffed with g_hash_table_ref(). |
377 | 377 | * |
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 | |
379 | 380 | * |
380 | 381 | * Since: 0.11.1 |
381 | 382 | */ |
995 | 996 | * @connection: The connection |
996 | 997 | * @n_contacts: The number of TpContact objects successfully created |
997 | 998 | * (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 | |
999 | 1001 | * not given a reference to any of these objects, and must call |
1000 | 1002 | * 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.) | |
1002 | 1005 | * that were passed to tp_connection_get_contacts_by_id(), in an order |
1003 | 1006 | * 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) | |
1006 | 1009 | * @error: %NULL on success, or an unrecoverable error that caused everything |
1007 | 1010 | * to fail |
1008 | 1011 | * @user_data: the @user_data that was passed to |
2410 | 2413 | * @self: A connection, which must be ready (#TpConnection:connection-ready |
2411 | 2414 | * must be %TRUE) |
2412 | 2415 | * @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 | |
2414 | 2418 | * @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 | |
2418 | 2422 | * @user_data: Data to pass to the callback |
2419 | 2423 | * @destroy: Called to destroy @user_data either after @callback has been |
2420 | 2424 | * 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 | |
2423 | 2428 | * |
2424 | 2429 | * Given several #TpContact objects, make asynchronous method calls |
2425 | 2430 | * ensure that all the features specified in @features are ready for use |
2621 | 2626 | * @self: A connection, which must be ready (#TpConnection:connection-ready |
2622 | 2627 | * must be %TRUE) |
2623 | 2628 | * @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 | |
2625 | 2631 | * identifiers in the IM protocol (XMPP JIDs, SIP URIs, MSN Passports, |
2626 | 2632 | * AOL screen-names etc.) |
2627 | 2633 | * @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) | |
2629 | 2636 | * 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 | |
2631 | 2638 | * @user_data: Data to pass to the callback |
2632 | 2639 | * @destroy: Called to destroy @user_data either after @callback has been |
2633 | 2640 | * 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 | |
2635 | 2643 | * referenced; if this object is destroyed, the operation will be cancelled |
2636 | 2644 | * |
2637 | 2645 | * Create a number of #TpContact objects and make asynchronous method calls |
193 | 193 | void |
194 | 194 | tp_contacts_mixin_class_init (GObjectClass *obj_cls, glong offset) |
195 | 195 | { |
196 | TpContactsMixinClass *mixin_cls; | |
197 | ||
198 | 196 | g_assert (G_IS_OBJECT_CLASS (obj_cls)); |
199 | 197 | |
200 | 198 | g_type_set_qdata (G_OBJECT_CLASS_TYPE (obj_cls), |
201 | 199 | TP_CONTACTS_MIXIN_CLASS_OFFSET_QUARK, |
202 | 200 | GINT_TO_POINTER (offset)); |
203 | ||
204 | mixin_cls = TP_CONTACTS_MIXIN_CLASS (obj_cls); | |
205 | 201 | |
206 | 202 | tp_dbus_properties_mixin_implement_interface (obj_cls, |
207 | 203 | TP_IFACE_QUARK_CONNECTION_INTERFACE_CONTACTS, |
119 | 119 | } |
120 | 120 | |
121 | 121 | /** |
122 | * tp_dbus_daemon_new: | |
122 | * tp_dbus_daemon_new: (skip) | |
123 | 123 | * @connection: a connection to D-Bus |
124 | 124 | * |
125 | 125 | * Returns a proxy for signals and method calls on a particular bus |
64 | 64 | #include <telepathy-glib/util.h> |
65 | 65 | |
66 | 66 | /** |
67 | * tp_asv_size: | |
67 | * tp_asv_size: (skip) | |
68 | 68 | * @asv: a GHashTable |
69 | 69 | * |
70 | 70 | * Return the size of @asv as if via g_hash_table_size(). |
77 | 77 | /* (#define + static inline in dbus.h) */ |
78 | 78 | |
79 | 79 | /** |
80 | * tp_dbus_g_method_return_not_implemented: | |
80 | * tp_dbus_g_method_return_not_implemented: (skip) | |
81 | 81 | * @context: The D-Bus method invocation context |
82 | 82 | * |
83 | 83 | * Return the Telepathy error NotImplemented from the method invocation |
105 | 105 | } |
106 | 106 | |
107 | 107 | /** |
108 | * tp_get_bus: | |
108 | * tp_get_bus: (skip) | |
109 | 109 | * |
110 | 110 | * Returns a connection to the D-Bus daemon on which this process was |
111 | 111 | * activated if it was launched by D-Bus service activation, or the session |
137 | 137 | } |
138 | 138 | |
139 | 139 | /** |
140 | * tp_get_bus_proxy: | |
140 | * tp_get_bus_proxy: (skip) | |
141 | 141 | * |
142 | 142 | * Return a #DBusGProxy for the bus daemon object. The same caveats as for |
143 | 143 | * tp_get_bus() apply. |
690 | 690 | } |
691 | 691 | |
692 | 692 | /** |
693 | * tp_asv_new: | |
693 | * tp_asv_new: (skip) | |
694 | 694 | * @first_key: the name of the first key (or NULL) |
695 | 695 | * @...: type and value for the first key, followed by a NULL-terminated list |
696 | 696 | * of (key, type, value) tuples |
771 | 771 | } |
772 | 772 | |
773 | 773 | /** |
774 | * tp_asv_get_boolean: | |
774 | * tp_asv_get_boolean: (skip) | |
775 | 775 | * @asv: A GHashTable where the keys are strings and the values are GValues |
776 | 776 | * @key: The key to look up |
777 | 777 | * @valid: Either %NULL, or a location to store %TRUE if the key actually |
812 | 812 | } |
813 | 813 | |
814 | 814 | /** |
815 | * tp_asv_set_boolean: | |
815 | * tp_asv_set_boolean: (skip) | |
816 | 816 | * @asv: a #GHashTable created with tp_asv_new() |
817 | 817 | * @key: string key |
818 | 818 | * @value: value |
836 | 836 | } |
837 | 837 | |
838 | 838 | /** |
839 | * tp_asv_get_bytes: | |
839 | * tp_asv_get_bytes: (skip) | |
840 | 840 | * @asv: A GHashTable where the keys are strings and the values are GValues |
841 | 841 | * @key: The key to look up |
842 | 842 | * |
871 | 871 | } |
872 | 872 | |
873 | 873 | /** |
874 | * tp_asv_set_bytes: | |
874 | * tp_asv_set_bytes: (skip) | |
875 | 875 | * @asv: a #GHashTable created with tp_asv_new() |
876 | 876 | * @key: string key |
877 | 877 | * @length: the number of bytes to copy |
900 | 900 | } |
901 | 901 | |
902 | 902 | /** |
903 | * tp_asv_take_bytes: | |
903 | * tp_asv_take_bytes: (skip) | |
904 | 904 | * @asv: a #GHashTable created with tp_asv_new() |
905 | 905 | * @key: string key |
906 | 906 | * @value: a non-NULL #GArray of %guchar, ownership of which will be taken by |
927 | 927 | } |
928 | 928 | |
929 | 929 | /** |
930 | * tp_asv_get_string: | |
930 | * tp_asv_get_string: (skip) | |
931 | 931 | * @asv: A GHashTable where the keys are strings and the values are GValues |
932 | 932 | * @key: The key to look up |
933 | 933 | * |
960 | 960 | } |
961 | 961 | |
962 | 962 | /** |
963 | * tp_asv_set_string: | |
963 | * tp_asv_set_string: (skip) | |
964 | 964 | * @asv: a #GHashTable created with tp_asv_new() |
965 | 965 | * @key: string key |
966 | 966 | * @value: value |
984 | 984 | } |
985 | 985 | |
986 | 986 | /** |
987 | * tp_asv_take_string: | |
987 | * tp_asv_take_string: (skip) | |
988 | 988 | * @asv: a #GHashTable created with tp_asv_new() |
989 | 989 | * @key: string key |
990 | 990 | * @value: value |
1010 | 1010 | } |
1011 | 1011 | |
1012 | 1012 | /** |
1013 | * tp_asv_set_static_string: | |
1013 | * tp_asv_set_static_string: (skip) | |
1014 | 1014 | * @asv: a #GHashTable created with tp_asv_new() |
1015 | 1015 | * @key: string key |
1016 | 1016 | * @value: value |
1036 | 1036 | } |
1037 | 1037 | |
1038 | 1038 | /** |
1039 | * tp_asv_get_int32: | |
1039 | * tp_asv_get_int32: (skip) | |
1040 | 1040 | * @asv: A GHashTable where the keys are strings and the values are GValues |
1041 | 1041 | * @key: The key to look up |
1042 | 1042 | * @valid: Either %NULL, or a location in which to store %TRUE on success or |
1124 | 1124 | } |
1125 | 1125 | |
1126 | 1126 | /** |
1127 | * tp_asv_set_int32: | |
1127 | * tp_asv_set_int32: (skip) | |
1128 | 1128 | * @asv: a #GHashTable created with tp_asv_new() |
1129 | 1129 | * @key: string key |
1130 | 1130 | * @value: value |
1148 | 1148 | } |
1149 | 1149 | |
1150 | 1150 | /** |
1151 | * tp_asv_get_uint32: | |
1151 | * tp_asv_get_uint32: (skip) | |
1152 | 1152 | * @asv: A GHashTable where the keys are strings and the values are GValues |
1153 | 1153 | * @key: The key to look up |
1154 | 1154 | * @valid: Either %NULL, or a location in which to store %TRUE on success or |
1236 | 1236 | } |
1237 | 1237 | |
1238 | 1238 | /** |
1239 | * tp_asv_set_uint32: | |
1239 | * tp_asv_set_uint32: (skip) | |
1240 | 1240 | * @asv: a #GHashTable created with tp_asv_new() |
1241 | 1241 | * @key: string key |
1242 | 1242 | * @value: value |
1260 | 1260 | } |
1261 | 1261 | |
1262 | 1262 | /** |
1263 | * tp_asv_get_int64: | |
1263 | * tp_asv_get_int64: (skip) | |
1264 | 1264 | * @asv: A GHashTable where the keys are strings and the values are GValues |
1265 | 1265 | * @key: The key to look up |
1266 | 1266 | * @valid: Either %NULL, or a location in which to store %TRUE on success or |
1337 | 1337 | } |
1338 | 1338 | |
1339 | 1339 | /** |
1340 | * tp_asv_set_int64: | |
1340 | * tp_asv_set_int64: (skip) | |
1341 | 1341 | * @asv: a #GHashTable created with tp_asv_new() |
1342 | 1342 | * @key: string key |
1343 | 1343 | * @value: value |
1361 | 1361 | } |
1362 | 1362 | |
1363 | 1363 | /** |
1364 | * tp_asv_get_uint64: | |
1364 | * tp_asv_get_uint64: (skip) | |
1365 | 1365 | * @asv: A GHashTable where the keys are strings and the values are GValues |
1366 | 1366 | * @key: The key to look up |
1367 | 1367 | * @valid: Either %NULL, or a location in which to store %TRUE on success or |
1442 | 1442 | } |
1443 | 1443 | |
1444 | 1444 | /** |
1445 | * tp_asv_set_uint64: | |
1445 | * tp_asv_set_uint64: (skip) | |
1446 | 1446 | * @asv: a #GHashTable created with tp_asv_new() |
1447 | 1447 | * @key: string key |
1448 | 1448 | * @value: value |
1466 | 1466 | } |
1467 | 1467 | |
1468 | 1468 | /** |
1469 | * tp_asv_get_double: | |
1469 | * tp_asv_get_double: (skip) | |
1470 | 1470 | * @asv: A GHashTable where the keys are strings and the values are GValues |
1471 | 1471 | * @key: The key to look up |
1472 | 1472 | * @valid: Either %NULL, or a location in which to store %TRUE on success or |
1540 | 1540 | } |
1541 | 1541 | |
1542 | 1542 | /** |
1543 | * tp_asv_set_double: | |
1543 | * tp_asv_set_double: (skip) | |
1544 | 1544 | * @asv: a #GHashTable created with tp_asv_new() |
1545 | 1545 | * @key: string key |
1546 | 1546 | * @value: value |
1564 | 1564 | } |
1565 | 1565 | |
1566 | 1566 | /** |
1567 | * tp_asv_get_object_path: | |
1567 | * tp_asv_get_object_path: (skip) | |
1568 | 1568 | * @asv: A GHashTable where the keys are strings and the values are GValues |
1569 | 1569 | * @key: The key to look up |
1570 | 1570 | * |
1597 | 1597 | } |
1598 | 1598 | |
1599 | 1599 | /** |
1600 | * tp_asv_set_object_path: | |
1600 | * tp_asv_set_object_path: (skip) | |
1601 | 1601 | * @asv: a #GHashTable created with tp_asv_new() |
1602 | 1602 | * @key: string key |
1603 | 1603 | * @value: value |
1623 | 1623 | } |
1624 | 1624 | |
1625 | 1625 | /** |
1626 | * tp_asv_take_object_path: | |
1626 | * tp_asv_take_object_path: (skip) | |
1627 | 1627 | * @asv: a #GHashTable created with tp_asv_new() |
1628 | 1628 | * @key: string key |
1629 | 1629 | * @value: value |
1649 | 1649 | } |
1650 | 1650 | |
1651 | 1651 | /** |
1652 | * tp_asv_set_static_object_path: | |
1652 | * tp_asv_set_static_object_path: (skip) | |
1653 | 1653 | * @asv: a #GHashTable created with tp_asv_new() |
1654 | 1654 | * @key: string key |
1655 | 1655 | * @value: value |
1675 | 1675 | } |
1676 | 1676 | |
1677 | 1677 | /** |
1678 | * tp_asv_get_boxed: | |
1678 | * tp_asv_get_boxed: (skip) | |
1679 | 1679 | * @asv: A GHashTable where the keys are strings and the values are GValues |
1680 | 1680 | * @key: The key to look up |
1681 | 1681 | * @type: The type that the key's value should have, which must be derived |
1713 | 1713 | } |
1714 | 1714 | |
1715 | 1715 | /** |
1716 | * tp_asv_set_boxed: | |
1716 | * tp_asv_set_boxed: (skip) | |
1717 | 1717 | * @asv: a #GHashTable created with tp_asv_new() |
1718 | 1718 | * @key: string key |
1719 | 1719 | * @type: the type of the key's value, which must be derived from %G_TYPE_BOXED |
1741 | 1741 | } |
1742 | 1742 | |
1743 | 1743 | /** |
1744 | * tp_asv_take_boxed: | |
1744 | * tp_asv_take_boxed: (skip) | |
1745 | 1745 | * @asv: a #GHashTable created with tp_asv_new() |
1746 | 1746 | * @key: string key |
1747 | 1747 | * @type: the type of the key's value, which must be derived from %G_TYPE_BOXED |
1769 | 1769 | } |
1770 | 1770 | |
1771 | 1771 | /** |
1772 | * tp_asv_set_static_boxed: | |
1772 | * tp_asv_set_static_boxed: (skip) | |
1773 | 1773 | * @asv: a #GHashTable created with tp_asv_new() |
1774 | 1774 | * @key: string key |
1775 | 1775 | * @type: the type of the key's value, which must be derived from %G_TYPE_BOXED |
1798 | 1798 | } |
1799 | 1799 | |
1800 | 1800 | /** |
1801 | * tp_asv_get_strv: | |
1801 | * tp_asv_get_strv: (skip) | |
1802 | 1802 | * @asv: A GHashTable where the keys are strings and the values are GValues |
1803 | 1803 | * @key: The key to look up |
1804 | 1804 | * |
1832 | 1832 | } |
1833 | 1833 | |
1834 | 1834 | /** |
1835 | * tp_asv_set_strv: | |
1835 | * tp_asv_set_strv: (skip) | |
1836 | 1836 | * @asv: a #GHashTable created with tp_asv_new() |
1837 | 1837 | * @key: string key |
1838 | 1838 | * @value: a %NULL-terminated string array |
1857 | 1857 | } |
1858 | 1858 | |
1859 | 1859 | /** |
1860 | * tp_asv_lookup: | |
1860 | * tp_asv_lookup: (skip) | |
1861 | 1861 | * @asv: A GHashTable where the keys are strings and the values are GValues |
1862 | 1862 | * @key: The key to look up |
1863 | 1863 | * |
1881 | 1881 | } |
1882 | 1882 | |
1883 | 1883 | /** |
1884 | * tp_asv_dump: | |
1884 | * tp_asv_dump: (skip) | |
1885 | 1885 | * @asv: a #GHashTable created with tp_asv_new() |
1886 | 1886 | * |
1887 | 1887 | * Dumps the a{sv} map to the debugging console. |
77 | 77 | static gboolean tp_debug_persistent = FALSE; |
78 | 78 | |
79 | 79 | /** |
80 | * tp_debug_set_all_flags: | |
80 | * tp_debug_set_all_flags: (skip) | |
81 | 81 | * |
82 | 82 | * Activate all possible debug modes. This also activates persistent mode, |
83 | 83 | * which should have been orthogonal. |
174 | 174 | } |
175 | 175 | |
176 | 176 | /** |
177 | * tp_debug_set_flags_from_string: | |
177 | * tp_debug_set_flags_from_string: (skip) | |
178 | 178 | * @flags_string: The flags to set, comma-separated. If %NULL or empty, |
179 | 179 | * no additional flags are set. |
180 | 180 | * |
203 | 203 | } |
204 | 204 | |
205 | 205 | /** |
206 | * tp_debug_set_flags_from_env: | |
206 | * tp_debug_set_flags_from_env: (skip) | |
207 | 207 | * @var: The name of the environment variable to parse |
208 | 208 | * |
209 | 209 | * 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> |
355 | 355 | static void tp_proxy_iface_destroyed_cb (DBusGProxy *dgproxy, TpProxy *self); |
356 | 356 | |
357 | 357 | /** |
358 | * tp_proxy_borrow_interface_by_id: | |
358 | * tp_proxy_borrow_interface_by_id: (skip) | |
359 | 359 | * @self: the TpProxy |
360 | 360 | * @iface: quark representing the interface required |
361 | 361 | * @error: used to raise an error in the #TP_DBUS_ERRORS domain if @iface |
555 | 555 | } |
556 | 556 | |
557 | 557 | /** |
558 | * tp_proxy_add_interface_by_id: | |
558 | * tp_proxy_add_interface_by_id: (skip) | |
559 | 559 | * @self: the TpProxy, which must not have become #TpProxy::invalidated. |
560 | 560 | * @iface: quark representing the interface to be added |
561 | 561 | * |
1138 | 1138 | param_spec); |
1139 | 1139 | |
1140 | 1140 | /** |
1141 | * TpProxy:dbus-connection: | |
1141 | * TpProxy:dbus-connection: (skip) | |
1142 | 1142 | * |
1143 | 1143 | * The D-Bus connection for this object. Read-only except during |
1144 | 1144 | * construction. |
1188 | 1188 | param_spec); |
1189 | 1189 | |
1190 | 1190 | /** |
1191 | * TpProxy::interface-added: | |
1191 | * TpProxy::interface-added: (skip) | |
1192 | 1192 | * @self: the proxy object |
1193 | 1193 | * @id: the GQuark representing the interface |
1194 | 1194 | * @proxy: the dbus-glib proxy representing the interface |
1235 | 1235 | * |
1236 | 1236 | * <!-- --> |
1237 | 1237 | * |
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. | |
1241 | 1242 | * |
1242 | 1243 | * Since: 0.7.17 |
1243 | 1244 | */ |
1250 | 1251 | } |
1251 | 1252 | |
1252 | 1253 | /** |
1253 | * tp_proxy_get_dbus_connection: | |
1254 | * tp_proxy_get_dbus_connection: (skip) | |
1254 | 1255 | * @self: a #TpProxy or subclass |
1255 | 1256 | * |
1256 | 1257 | * <!-- --> |
1517 | 1518 | /** |
1518 | 1519 | * tp_proxy_prepare_async: |
1519 | 1520 | * @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 | |
1522 | 1524 | * @callback: if not %NULL, called exactly once, when the features have all |
1523 | 1525 | * been prepared or failed to prepare, or after the proxy is invalidated |
1524 | 1526 | * @user_data: user data for @callback |
1087 | 1087 | * <example> |
1088 | 1088 | * <title>using tp_value_array_unpack</title> |
1089 | 1089 | * <programlisting> |
1090 | * gchar *host; | |
1090 | * const gchar *host; | |
1091 | 1091 | * guint port; |
1092 | 1092 | * |
1093 | 1093 | * 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 |
31 | 31 | $(TESTS_ENVIRONMENT) \ |
32 | 32 | G_SLICE=always-malloc \ |
33 | 33 | $(top_builddir)/libtool --mode=execute \ |
34 | $(VALGRIND) $(VALGRIND_FLAGS) | |
34 | $(VALGRIND) --suppressions=$(top_srcdir)/tests/tests.supp $(VALGRIND_FLAGS) | |
35 | 35 | |
36 | 36 | check-valgrind: |
37 | 37 | $(MAKE) check-TESTS \ |
41 | 41 | $(MAKE) -C dbus check-valgrind |
42 | 42 | |
43 | 43 | EXTRA_DIST = README \ |
44 | all-errors-documented.py | |
44 | all-errors-documented.py \ | |
45 | tests.supp | |
45 | 46 | |
46 | 47 | test_asv_SOURCES = \ |
47 | 48 | asv.c |
50 | 51 | test_capabilities_SOURCES = \ |
51 | 52 | capabilities.c |
52 | 53 | test_capabilities_LDADD = \ |
54 | $(top_builddir)/tests/lib/libtp-glib-tests.la \ | |
53 | 55 | $(top_builddir)/telepathy-glib/libtelepathy-glib-internal.la \ |
54 | 56 | $(GLIB_LIBS) |
55 | 57 |
44 | 44 | subdir = tests |
45 | 45 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
46 | 46 | 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 \ | |
51 | 51 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
52 | 52 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
53 | 53 | $(top_srcdir)/configure.ac |
77 | 77 | am_test_capabilities_OBJECTS = capabilities.$(OBJEXT) |
78 | 78 | test_capabilities_OBJECTS = $(am_test_capabilities_OBJECTS) |
79 | 79 | test_capabilities_DEPENDENCIES = \ |
80 | $(top_builddir)/tests/lib/libtp-glib-tests.la \ | |
80 | 81 | $(top_builddir)/telepathy-glib/libtelepathy-glib-internal.la \ |
81 | 82 | $(am__DEPENDENCIES_1) |
82 | 83 | am_test_debug_domain_OBJECTS = debug-domain.$(OBJEXT) |
246 | 247 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
247 | 248 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
248 | 249 | 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@ | |
249 | 255 | LD = @LD@ |
250 | 256 | LDFLAGS = @LDFLAGS@ |
251 | 257 | LIBOBJS = @LIBOBJS@ |
373 | 379 | $(TESTS_ENVIRONMENT) \ |
374 | 380 | G_SLICE=always-malloc \ |
375 | 381 | $(top_builddir)/libtool --mode=execute \ |
376 | $(VALGRIND) $(VALGRIND_FLAGS) | |
382 | $(VALGRIND) --suppressions=$(top_srcdir)/tests/tests.supp $(VALGRIND_FLAGS) | |
377 | 383 | |
378 | 384 | EXTRA_DIST = README \ |
379 | all-errors-documented.py | |
385 | all-errors-documented.py \ | |
386 | tests.supp | |
380 | 387 | |
381 | 388 | test_asv_SOURCES = \ |
382 | 389 | asv.c |
387 | 394 | capabilities.c |
388 | 395 | |
389 | 396 | test_capabilities_LDADD = \ |
397 | $(top_builddir)/tests/lib/libtp-glib-tests.la \ | |
390 | 398 | $(top_builddir)/telepathy-glib/libtelepathy-glib-internal.la \ |
391 | 399 | $(GLIB_LIBS) |
392 | 400 |
5 | 5 | (a temporary session bus will be used) |
6 | 6 | |
7 | 7 | /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 |
94 | 94 | add_text_chat_class (classes, TP_HANDLE_TYPE_CONTACT); |
95 | 95 | add_ft_class (classes); |
96 | 96 | |
97 | caps = g_object_new (TP_TYPE_CAPABILITIES, | |
97 | caps = test_object_new_static_class (TP_TYPE_CAPABILITIES, | |
98 | 98 | "channel-classes", classes, |
99 | 99 | "contact-specific", FALSE, |
100 | 100 | NULL); |
163 | 163 | classes = g_ptr_array_sized_new (1); |
164 | 164 | add_text_chat_class (classes, TP_HANDLE_TYPE_CONTACT); |
165 | 165 | |
166 | caps = g_object_new (TP_TYPE_CAPABILITIES, | |
166 | caps = test_object_new_static_class (TP_TYPE_CAPABILITIES, | |
167 | 167 | "channel-classes", classes, |
168 | 168 | "contact-specific", TRUE, |
169 | 169 | NULL); |
181 | 181 | classes = g_ptr_array_sized_new (1); |
182 | 182 | add_text_chat_class (classes, TP_HANDLE_TYPE_ROOM); |
183 | 183 | |
184 | caps = g_object_new (TP_TYPE_CAPABILITIES, | |
184 | caps = test_object_new_static_class (TP_TYPE_CAPABILITIES, | |
185 | 185 | "channel-classes", classes, |
186 | 186 | "contact-specific", TRUE, |
187 | 187 | NULL); |
200 | 200 | add_text_chat_class (classes, TP_HANDLE_TYPE_CONTACT); |
201 | 201 | add_text_chat_class (classes, TP_HANDLE_TYPE_ROOM); |
202 | 202 | |
203 | caps = g_object_new (TP_TYPE_CAPABILITIES, | |
203 | caps = test_object_new_static_class (TP_TYPE_CAPABILITIES, | |
204 | 204 | "channel-classes", classes, |
205 | 205 | "contact-specific", TRUE, |
206 | 206 | NULL); |
193 | 193 | $(TESTS_ENVIRONMENT) \ |
194 | 194 | env G_SLICE=always-malloc \ |
195 | 195 | $(top_builddir)/libtool --mode=execute \ |
196 | $(VALGRIND) $(VALGRIND_FLAGS) | |
196 | $(VALGRIND) --suppressions=$(top_srcdir)/tests/tests.supp $(VALGRIND_FLAGS) | |
197 | 197 | |
198 | 198 | BUILT_SOURCES = \ |
199 | 199 | dbus-1/session.conf \ |
65 | 65 | subdir = tests/dbus |
66 | 66 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
67 | 67 | 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 \ | |
72 | 72 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
73 | 73 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
74 | 74 | $(top_srcdir)/configure.ac |
517 | 517 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
518 | 518 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
519 | 519 | 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@ | |
520 | 525 | LD = @LD@ |
521 | 526 | LDFLAGS = @LDFLAGS@ |
522 | 527 | LIBOBJS = @LIBOBJS@ |
738 | 743 | $(TESTS_ENVIRONMENT) \ |
739 | 744 | env G_SLICE=always-malloc \ |
740 | 745 | $(top_builddir)/libtool --mode=execute \ |
741 | $(VALGRIND) $(VALGRIND_FLAGS) | |
746 | $(VALGRIND) --suppressions=$(top_srcdir)/tests/tests.supp $(VALGRIND_FLAGS) | |
742 | 747 | |
743 | 748 | BUILT_SOURCES = \ |
744 | 749 | dbus-1/session.conf \ |
142 | 142 | g_assert (tp_dbus_daemon_request_name (test->dbus, |
143 | 143 | TP_ACCOUNT_MANAGER_BUS_NAME, FALSE, &test->error)); |
144 | 144 | |
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); | |
146 | 147 | tp_dbus_daemon_register_object (test->dbus, TP_ACCOUNT_MANAGER_OBJECT_PATH, |
147 | 148 | test->service); |
148 | 149 | } |
163 | 164 | } |
164 | 165 | g_queue_free (test->script); |
165 | 166 | test->script = NULL; |
167 | ||
168 | /* make sure any pending things have happened */ | |
169 | test_proxy_run_until_dbus_queue_processed (test->dbus); | |
170 | ||
166 | 171 | g_object_unref (test->dbus); |
167 | 172 | test->dbus = NULL; |
168 | 173 | g_main_loop_unref (test->mainloop); |
10 | 10 | #include <telepathy-glib/account.h> |
11 | 11 | #include <telepathy-glib/debug.h> |
12 | 12 | #include <telepathy-glib/defs.h> |
13 | #include <telepathy-glib/svc-account.h> | |
13 | 14 | |
14 | 15 | #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" | |
15 | 24 | |
16 | 25 | static void |
17 | 26 | test_parse_failure (gconstpointer test_data) |
73 | 82 | TpDBusDaemon *dbus; |
74 | 83 | |
75 | 84 | TpAccount *account; |
85 | gulong notify_id; | |
86 | /* g_strdup (property name) => GUINT_TO_POINTER (counter) */ | |
87 | GHashTable *times_notified; | |
76 | 88 | GError *error /* initialized where needed */; |
89 | ||
90 | SimpleAccount *account_service /* initialized in prepare_service */; | |
77 | 91 | } Test; |
78 | 92 | |
79 | 93 | static void |
85 | 99 | g_assert (test->dbus != NULL); |
86 | 100 | |
87 | 101 | 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); | |
88 | 163 | } |
89 | 164 | |
90 | 165 | static void |
93 | 168 | { |
94 | 169 | if (test->account != NULL) |
95 | 170 | { |
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 | ||
96 | 178 | g_object_unref (test->account); |
97 | 179 | test->account = NULL; |
98 | 180 | } |
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); | |
99 | 187 | |
100 | 188 | g_object_unref (test->dbus); |
101 | 189 | test->dbus = NULL; |
104 | 192 | } |
105 | 193 | |
106 | 194 | 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 | |
107 | 217 | test_new (Test *test, |
108 | 218 | gconstpointer data G_GNUC_UNUSED) |
109 | 219 | { |
118 | 228 | test->account = tp_account_new (test->dbus, |
119 | 229 | "/org/freedesktop/Telepathy/Account/what/ev/er", NULL); |
120 | 230 | 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); | |
121 | 423 | } |
122 | 424 | |
123 | 425 | int |
169 | 471 | |
170 | 472 | g_test_add ("/account/new", Test, NULL, setup, test_new, teardown); |
171 | 473 | |
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 | ||
172 | 480 | return g_test_run (); |
173 | 481 | } |
218 | 218 | |
219 | 219 | /* b gets its pending call cancelled because the weak object is |
220 | 220 | * 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); | |
222 | 222 | g_message ("Starting call on b"); |
223 | 223 | tp_cli_dbus_daemon_call_list_names (b, -1, listed_names, PTR (TEST_B), |
224 | 224 | destroy_user_data, b_stub); |
329 | 329 | * *and* there is a signal connection |
330 | 330 | * (used to reproduce fd.o #14750 - see case h in test-disconnection.c |
331 | 331 | * 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); | |
333 | 333 | tp_cli_dbus_daemon_connect_to_name_owner_changed (i, noc, PTR (TEST_I), |
334 | 334 | NULL, i_stub, NULL); |
335 | 335 | g_message ("Starting call on i"); |
353 | 353 | |
354 | 354 | /* j gets its pending call cancelled explicitly, and j_stub is |
355 | 355 | * 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); | |
357 | 357 | g_object_weak_ref (j_stub, j_stub_destroyed, PTR (TEST_J)); |
358 | 358 | g_message ("Starting call on j"); |
359 | 359 | pc = tp_cli_dbus_daemon_call_list_names (j, -1, listed_names, j_stub, |
368 | 368 | * is destroyed, meaning there are simultaneously two reasons for it |
369 | 369 | * to become cancelled (equivalent to fd.o#14750, but for pending calls |
370 | 370 | * 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); | |
372 | 372 | g_message ("Starting call on k"); |
373 | 373 | g_object_weak_ref (k_stub, k_stub_destroyed, &pc); |
374 | 374 | tp_cli_dbus_daemon_call_list_names (k, -1, listed_names, PTR (TEST_K), |
122 | 122 | test->mainloop = g_main_loop_new (NULL, FALSE); |
123 | 123 | test->dbus = test_dbus_daemon_dup_or_die (); |
124 | 124 | |
125 | test->service_cm = EXAMPLE_CALL_CONNECTION_MANAGER (g_object_new ( | |
125 | test->service_cm = EXAMPLE_CALL_CONNECTION_MANAGER (test_object_new_static_class ( | |
126 | 126 | EXAMPLE_TYPE_CALL_CONNECTION_MANAGER, |
127 | 127 | NULL)); |
128 | 128 | g_assert (test->service_cm != NULL); |
1074 | 1074 | |
1075 | 1075 | CLEAR_OBJECT (&test->service_cm); |
1076 | 1076 | |
1077 | /* make sure any pending things have happened */ | |
1078 | test_proxy_run_until_dbus_queue_processed (test->dbus); | |
1079 | ||
1077 | 1080 | CLEAR_OBJECT (&test->dbus); |
1078 | 1081 | g_main_loop_unref (test->mainloop); |
1079 | 1082 | test->mainloop = NULL; |
239 | 239 | test->mainloop = g_main_loop_new (NULL, FALSE); |
240 | 240 | test->dbus = test_dbus_daemon_dup_or_die (); |
241 | 241 | |
242 | test->service_cm = EXAMPLE_CALLABLE_CONNECTION_MANAGER (g_object_new ( | |
242 | test->service_cm = EXAMPLE_CALLABLE_CONNECTION_MANAGER (test_object_new_static_class ( | |
243 | 243 | EXAMPLE_TYPE_CALLABLE_CONNECTION_MANAGER, |
244 | 244 | NULL)); |
245 | 245 | g_assert (test->service_cm != NULL); |
1551 | 1551 | |
1552 | 1552 | CLEAR_OBJECT (&test->service_cm); |
1553 | 1553 | |
1554 | /* make sure any pending things have happened */ | |
1555 | test_proxy_run_until_dbus_queue_processed (test->dbus); | |
1556 | ||
1554 | 1557 | CLEAR_OBJECT (&test->dbus); |
1555 | 1558 | g_main_loop_unref (test->mainloop); |
1556 | 1559 | test->mainloop = NULL; |
82 | 82 | |
83 | 83 | test->cdo = NULL; |
84 | 84 | |
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 (), | |
86 | 87 | NULL); |
87 | 88 | tp_dbus_daemon_register_object (test->private_dbus, "/whatever", |
88 | 89 | test->cdo_service); |
123 | 124 | test->private_conn = NULL; |
124 | 125 | } |
125 | 126 | |
127 | /* make sure any pending things have happened */ | |
128 | test_proxy_run_until_dbus_queue_processed (test->dbus); | |
129 | ||
126 | 130 | g_object_unref (test->dbus); |
127 | 131 | test->dbus = NULL; |
128 | 132 | g_main_loop_unref (test->mainloop); |
43 | 43 | test->cd = NULL; |
44 | 44 | } |
45 | 45 | |
46 | /* make sure any pending things have happened */ | |
47 | test_proxy_run_until_dbus_queue_processed (test->dbus); | |
48 | ||
46 | 49 | g_object_unref (test->dbus); |
47 | 50 | test->dbus = NULL; |
48 | 51 | g_main_loop_unref (test->mainloop); |
130 | 130 | tp_debug_set_flags ("all"); |
131 | 131 | dbus = test_dbus_daemon_dup_or_die (); |
132 | 132 | |
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, | |
134 | 135 | "account", "me@example.com", |
135 | 136 | "protocol", "simple", |
136 | 137 | NULL)); |
159 | 160 | |
160 | 161 | chan_path = g_strdup_printf ("%s/Channel", conn_path); |
161 | 162 | |
162 | service_chan = TEST_TEXT_CHANNEL_NULL (g_object_new ( | |
163 | service_chan = TEST_TEXT_CHANNEL_NULL (test_object_new_static_class ( | |
163 | 164 | TEST_TYPE_TEXT_CHANNEL_NULL, |
164 | 165 | "connection", service_conn, |
165 | 166 | "object-path", chan_path, |
168 | 169 | |
169 | 170 | props_chan_path = g_strdup_printf ("%s/PropertiesChannel", conn_path); |
170 | 171 | |
171 | service_props_chan = TEST_PROPS_TEXT_CHANNEL (g_object_new ( | |
172 | service_props_chan = TEST_PROPS_TEXT_CHANNEL (test_object_new_static_class ( | |
172 | 173 | TEST_TYPE_PROPS_TEXT_CHANNEL, |
173 | 174 | "connection", service_conn, |
174 | 175 | "object-path", props_chan_path, |
177 | 178 | |
178 | 179 | props_group_chan_path = g_strdup_printf ("%s/PropsGroupChannel", conn_path); |
179 | 180 | |
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 ( | |
181 | 183 | TEST_TYPE_PROPS_GROUP_TEXT_CHANNEL, |
182 | 184 | "connection", service_conn, |
183 | 185 | "object-path", props_group_chan_path, |
85 | 85 | |
86 | 86 | test->cr = NULL; |
87 | 87 | |
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 (), | |
89 | 89 | NULL); |
90 | 90 | tp_dbus_daemon_register_object (test->private_dbus, "/whatever", |
91 | 91 | test->cr_service); |
122 | 122 | dbus_g_connection_unref (test->private_conn); |
123 | 123 | test->private_conn = NULL; |
124 | 124 | } |
125 | ||
126 | /* make sure any pending things have happened */ | |
127 | test_proxy_run_until_dbus_queue_processed (test->dbus); | |
125 | 128 | |
126 | 129 | g_object_unref (test->dbus); |
127 | 130 | test->dbus = NULL; |
256 | 256 | GError *error = NULL; |
257 | 257 | |
258 | 258 | 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 ( | |
260 | 260 | TEST_TYPE_TEXT_CHANNEL_GROUP, |
261 | 261 | "connection", service_conn, |
262 | 262 | "object-path", chan_path, |
335 | 335 | GError *error = NULL; |
336 | 336 | |
337 | 337 | 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 ( | |
339 | 339 | TEST_TYPE_TEXT_CHANNEL_GROUP, |
340 | 340 | "connection", service_conn, |
341 | 341 | "object-path", chan_path, |
402 | 402 | tp_debug_set_flags ("all"); |
403 | 403 | dbus = test_dbus_daemon_dup_or_die (); |
404 | 404 | |
405 | service_conn = SIMPLE_CONNECTION (g_object_new (SIMPLE_TYPE_CONNECTION, | |
405 | service_conn = SIMPLE_CONNECTION (test_object_new_static_class (SIMPLE_TYPE_CONNECTION, | |
406 | 406 | "account", "me@example.com", |
407 | 407 | "protocol", "simple", |
408 | 408 | NULL)); |
53 | 53 | test_new (Test *test, |
54 | 54 | gconstpointer data G_GNUC_UNUSED) |
55 | 55 | { |
56 | test->client = g_object_new (TP_TYPE_CLIENT, | |
56 | test->client = test_object_new_static_class (TP_TYPE_CLIENT, | |
57 | 57 | "dbus-daemon", test->dbus, |
58 | 58 | "object-path", "/org/freedesktop/Telepathy/Client/whatever", |
59 | 59 | "bus-name", "org.freedesktop.Telepathy.Client.whatever", |
36 | 36 | test->mainloop = g_main_loop_new (NULL, FALSE); |
37 | 37 | test->dbus = test_dbus_daemon_dup_or_die (); |
38 | 38 | |
39 | test->service_cm = EXAMPLE_ECHO_CONNECTION_MANAGER (g_object_new ( | |
39 | test->service_cm = EXAMPLE_ECHO_CONNECTION_MANAGER (test_object_new_static_class ( | |
40 | 40 | EXAMPLE_TYPE_ECHO_CONNECTION_MANAGER, |
41 | 41 | NULL)); |
42 | 42 | g_assert (test->service_cm != NULL); |
49 | 49 | mainloop = g_main_loop_new (NULL, FALSE); |
50 | 50 | dbus = test_dbus_daemon_dup_or_die (); |
51 | 51 | |
52 | service_conn = SIMPLE_CONNECTION (g_object_new ( | |
52 | service_conn = SIMPLE_CONNECTION (test_object_new_static_class ( | |
53 | 53 | SIMPLE_TYPE_CONNECTION, |
54 | 54 | "account", "me@example.com", |
55 | 55 | "protocol", "simple", |
92 | 92 | return (GQuark) quark; |
93 | 93 | } |
94 | 94 | |
95 | int | |
96 | main (int argc, | |
97 | char **argv) | |
98 | { | |
95 | typedef struct { | |
99 | 96 | TpDBusDaemon *dbus; |
97 | GMainLoop *mainloop; | |
100 | 98 | SimpleConnection *service_conn; |
101 | 99 | TpBaseConnection *service_conn_as_base; |
102 | gchar *name; | |
100 | gchar *conn_name; | |
103 | 101 | gchar *conn_path; |
104 | GError *error = NULL; | |
105 | 102 | 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; | |
107 | 114 | |
108 | 115 | g_type_init (); |
109 | 116 | tp_debug_set_flags ("all"); |
110 | mainloop = g_main_loop_new (NULL, FALSE); | |
111 | dbus = test_dbus_daemon_dup_or_die (); | |
112 | 117 | |
113 | 118 | tp_proxy_subclass_add_error_mapping (TP_TYPE_CONNECTION, |
114 | 119 | "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 ( | |
117 | 134 | SIMPLE_TYPE_CONNECTION, |
118 | 135 | "account", "me@example.com", |
119 | 136 | "protocol", "simple", |
120 | 137 | 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), ""); | |
127 | 144 | test_assert_no_error (error); |
128 | 145 | |
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, ""); | |
131 | 149 | 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), | |
133 | 151 | ""); |
134 | 152 | 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); | |
135 | 182 | |
136 | 183 | 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, | |
143 | 190 | "com.example.DomainSpecificError", NULL, |
144 | 191 | TP_CONNECTION_STATUS_REASON_NETWORK_ERROR); |
145 | 192 | |
146 | g_main_loop_run (mainloop); | |
193 | g_main_loop_run (test->mainloop); | |
147 | 194 | |
148 | 195 | MYASSERT_SAME_UINT (connection_errors, 1); |
149 | 196 | |
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 | ||
151 | 208 | MYASSERT_SAME_STRING (g_quark_to_string (error->domain), |
152 | 209 | g_quark_to_string (example_com_error_quark ())); |
153 | 210 | MYASSERT_SAME_UINT (error->code, DOMAIN_SPECIFIC_ERROR); |
154 | 211 | g_error_free (error); |
155 | 212 | 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 | } |
95 | 95 | mainloop = g_main_loop_new (NULL, FALSE); |
96 | 96 | dbus = test_dbus_daemon_dup_or_die (); |
97 | 97 | |
98 | service_conn = SIMPLE_CONNECTION (g_object_new ( | |
98 | service_conn = SIMPLE_CONNECTION (test_object_new_static_class ( | |
99 | 99 | bug15306_connection_get_type (), |
100 | 100 | "account", "me@example.com", |
101 | 101 | "protocol", "simple", |
311 | 311 | tp_debug_set_flags ("all"); |
312 | 312 | dbus = test_dbus_daemon_dup_or_die (); |
313 | 313 | |
314 | service_conn = SIMPLE_CONNECTION (g_object_new ( | |
314 | service_conn = SIMPLE_CONNECTION (test_object_new_static_class ( | |
315 | 315 | SIMPLE_TYPE_CONNECTION, |
316 | 316 | "account", "me@example.com", |
317 | 317 | "protocol", "simple", |
42 | 42 | dbus = test_dbus_daemon_dup_or_die (); |
43 | 43 | |
44 | 44 | /* service side */ |
45 | service_conn = BUG16307_CONNECTION (g_object_new ( | |
45 | service_conn = BUG16307_CONNECTION (test_object_new_static_class ( | |
46 | 46 | BUG16307_TYPE_CONNECTION, |
47 | 47 | "account", "me@example.com", |
48 | 48 | "protocol", "simple", |
58 | 58 | tp_debug_set_flags ("all"); |
59 | 59 | test->dbus = test_dbus_daemon_dup_or_die (); |
60 | 60 | |
61 | test->service_conn = SIMPLE_CONNECTION (g_object_new ( | |
61 | test->service_conn = SIMPLE_CONNECTION (test_object_new_static_class ( | |
62 | 62 | SIMPLE_TYPE_CONNECTION, |
63 | 63 | "account", "me@example.com", |
64 | 64 | "protocol", "simple-protocol", |
255 | 255 | gconstpointer nil G_GNUC_UNUSED) |
256 | 256 | { |
257 | 257 | GError *error = NULL; |
258 | GQuark features[] = { TP_CONNECTION_FEATURE_CONNECTED }; | |
258 | GQuark features[] = { TP_CONNECTION_FEATURE_CONNECTED, 0 }; | |
259 | const GHashTable *asv; | |
259 | 260 | |
260 | 261 | test->conn = tp_connection_new (test->dbus, test->conn_name, test->conn_path, |
261 | 262 | &error); |
304 | 305 | g_assert (!tp_proxy_is_prepared (test->conn, TP_CONNECTION_FEATURE_CORE)); |
305 | 306 | g_assert (!tp_proxy_is_prepared (test->conn, |
306 | 307 | 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); | |
307 | 314 | } |
308 | 315 | |
309 | 316 | static void |
147 | 147 | dbus = test_dbus_daemon_dup_or_die (); |
148 | 148 | |
149 | 149 | DEBUG ("a"); |
150 | service_conn = CONTACTS_CONNECTION (g_object_new ( | |
150 | service_conn = CONTACTS_CONNECTION (test_object_new_static_class ( | |
151 | 151 | BUG_19101_TYPE_CONNECTION, |
152 | 152 | "account", "me@example.com", |
153 | 153 | "protocol", "simple", |
157 | 157 | tp_debug_set_flags ("all"); |
158 | 158 | dbus = test_dbus_daemon_dup_or_die (); |
159 | 159 | |
160 | service_conn = CONTACTS_CONNECTION (g_object_new ( | |
160 | service_conn = CONTACTS_CONNECTION (test_object_new_static_class ( | |
161 | 161 | CONTACTS_TYPE_CONNECTION, |
162 | 162 | "account", "me@example.com", |
163 | 163 | "protocol", "simple", |
208 | 208 | |
209 | 209 | /* b gets its signal connection cancelled because stub is |
210 | 210 | * destroyed */ |
211 | stub = g_object_new (stub_object_get_type (), NULL); | |
211 | stub = test_object_new_static_class (stub_object_get_type (), NULL); | |
212 | 212 | g_message ("Connecting signal to b"); |
213 | 213 | tp_cli_dbus_daemon_connect_to_name_owner_changed (b, noc, PTR (TEST_B), |
214 | 214 | destroy_user_data, stub, &error_out); |
305 | 305 | /* h gets its signal connection cancelled because its weak object is |
306 | 306 | * destroyed, meaning there are simultaneously two reasons for it to become |
307 | 307 | * 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); | |
309 | 309 | g_object_weak_ref (stub, h_stub_destroyed, &sc); |
310 | 310 | g_message ("Connecting signal to h"); |
311 | 311 | tp_cli_dbus_daemon_connect_to_name_owner_changed (h, noc, PTR (TEST_H), |
75 | 75 | mainloop = g_main_loop_new (NULL, FALSE); |
76 | 76 | dbus = test_dbus_daemon_dup_or_die (); |
77 | 77 | |
78 | service_conn = SIMPLE_CONNECTION (g_object_new (SIMPLE_TYPE_CONNECTION, | |
78 | service_conn = SIMPLE_CONNECTION (test_object_new_static_class (SIMPLE_TYPE_CONNECTION, | |
79 | 79 | "account", "me@example.com", |
80 | 80 | "protocol", "simple", |
81 | 81 | NULL)); |
107 | 107 | test_assert_no_error (error); |
108 | 108 | chan_path = g_strdup_printf ("%s/Channel", conn_path); |
109 | 109 | |
110 | service_chan = TEST_TEXT_CHANNEL_NULL (g_object_new ( | |
110 | service_chan = TEST_TEXT_CHANNEL_NULL (test_object_new_static_class ( | |
111 | 111 | TEST_TYPE_TEXT_CHANNEL_NULL, |
112 | 112 | "connection", service_conn, |
113 | 113 | "object-path", chan_path, |
526 | 526 | tp_debug_set_flags ("all"); |
527 | 527 | dbus = test_dbus_daemon_dup_or_die (); |
528 | 528 | |
529 | service_conn = SIMPLE_CONNECTION (g_object_new (SIMPLE_TYPE_CONNECTION, | |
529 | service_conn = SIMPLE_CONNECTION (test_object_new_static_class (SIMPLE_TYPE_CONNECTION, | |
530 | 530 | "account", "me@example.com", |
531 | 531 | "protocol", "simple", |
532 | 532 | NULL)); |
553 | 553 | |
554 | 554 | chan_path = g_strdup_printf ("%s/Channel", conn_path); |
555 | 555 | |
556 | service_chan = TEST_TEXT_CHANNEL_GROUP (g_object_new ( | |
556 | service_chan = TEST_TEXT_CHANNEL_GROUP (test_object_new_static_class ( | |
557 | 557 | TEST_TYPE_TEXT_CHANNEL_GROUP, |
558 | 558 | "connection", service_conn, |
559 | 559 | "object-path", chan_path, |
21 | 21 | const gchar *jid = "handle.test@foobar"; |
22 | 22 | const gchar *return_jid; |
23 | 23 | |
24 | tp_repo = g_object_new (TP_TYPE_DYNAMIC_HANDLE_REPO, | |
24 | tp_repo = test_object_new_static_class (TP_TYPE_DYNAMIC_HANDLE_REPO, | |
25 | 25 | "handle-type", TP_HANDLE_TYPE_CONTACT, |
26 | 26 | NULL); |
27 | 27 | g_assert (tp_repo != NULL); |
8 | 8 | #include <telepathy-glib/errors.h> |
9 | 9 | |
10 | 10 | #include "tests/lib/myassert.h" |
11 | #include "tests/lib/util.h" | |
11 | 12 | |
12 | 13 | int |
13 | 14 | main (int argc, |
22 | 23 | |
23 | 24 | g_type_init (); |
24 | 25 | |
25 | repo = (TpHandleRepoIface *) g_object_new (TP_TYPE_DYNAMIC_HANDLE_REPO, | |
26 | repo = test_object_new_static_class (TP_TYPE_DYNAMIC_HANDLE_REPO, | |
26 | 27 | "handle-type", TP_HANDLE_TYPE_CONTACT, |
27 | 28 | NULL); |
28 | 29 | MYASSERT (repo != NULL, ""); |
66 | 66 | mainloop = g_main_loop_new (NULL, FALSE); |
67 | 67 | dbus = test_dbus_daemon_dup_or_die (); |
68 | 68 | |
69 | service = SIMPLE_CONNECTION (g_object_new (SIMPLE_TYPE_CONNECTION, | |
69 | service = SIMPLE_CONNECTION (test_object_new_static_class (SIMPLE_TYPE_CONNECTION, | |
70 | 70 | "account", "me@example.com", |
71 | 71 | "protocol", "simple", |
72 | 72 | NULL)); |
41 | 41 | g_type_init (); |
42 | 42 | |
43 | 43 | 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 ( | |
45 | 45 | EXAMPLE_TYPE_ECHO_CONNECTION, |
46 | 46 | "account", LONG_ACCOUNT_IS_LONG, |
47 | 47 | "protocol", "example", |
210 | 210 | tp_debug_set_flags ("all"); |
211 | 211 | dbus = test_dbus_daemon_dup_or_die (); |
212 | 212 | |
213 | service_cm = EXAMPLE_ECHO_2_CONNECTION_MANAGER (g_object_new ( | |
213 | service_cm = EXAMPLE_ECHO_2_CONNECTION_MANAGER (test_object_new_static_class ( | |
214 | 214 | EXAMPLE_TYPE_ECHO_2_CONNECTION_MANAGER, |
215 | 215 | NULL)); |
216 | 216 | g_assert (service_cm != NULL); |
62 | 62 | test->mainloop = g_main_loop_new (NULL, FALSE); |
63 | 63 | test->dbus = test_dbus_daemon_dup_or_die (); |
64 | 64 | |
65 | test->service_cm = PARAM_CONNECTION_MANAGER (g_object_new ( | |
65 | test->service_cm = PARAM_CONNECTION_MANAGER (test_object_new_static_class ( | |
66 | 66 | TYPE_PARAM_CONNECTION_MANAGER, |
67 | 67 | NULL)); |
68 | 68 | g_assert (test->service_cm != NULL); |
133 | 133 | g_type_init (); |
134 | 134 | dbus_daemon = test_dbus_daemon_dup_or_die (); |
135 | 135 | |
136 | obj = g_object_new (TEST_TYPE_PROPERTIES, NULL); | |
136 | obj = test_object_new_static_class (TEST_TYPE_PROPERTIES, NULL); | |
137 | 137 | tp_dbus_daemon_register_object (dbus_daemon, "/", obj); |
138 | 138 | |
139 | 139 | /* 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, | |
141 | 141 | "dbus-daemon", dbus_daemon, |
142 | 142 | "bus-name", tp_dbus_daemon_get_unique_name (dbus_daemon), |
143 | 143 | "object-path", "/", |
93 | 93 | tp_debug_set_flags ("all"); |
94 | 94 | dbus = test_dbus_daemon_dup_or_die (); |
95 | 95 | |
96 | service_conn = SIMPLE_CONNECTION (g_object_new ( | |
96 | service_conn = SIMPLE_CONNECTION (test_object_new_static_class ( | |
97 | 97 | SIMPLE_TYPE_CONNECTION, |
98 | 98 | "account", "me@example.com", |
99 | 99 | "protocol", "simple", |
219 | 219 | tp_debug_set_flags ("all"); |
220 | 220 | dbus = test_dbus_daemon_dup_or_die (); |
221 | 221 | |
222 | service_conn = CONTACTS_CONNECTION (g_object_new ( | |
222 | service_conn = CONTACTS_CONNECTION (test_object_new_static_class ( | |
223 | 223 | CONTACTS_TYPE_CONNECTION, |
224 | 224 | "account", "me@example.com", |
225 | 225 | "protocol", "simple", |
94 | 94 | /* tp_debug_set_flags ("all"); */ |
95 | 95 | dbus = test_dbus_daemon_dup_or_die (); |
96 | 96 | |
97 | service_conn = EXAMPLE_ECHO_CONNECTION (g_object_new ( | |
97 | service_conn = EXAMPLE_ECHO_CONNECTION (test_object_new_static_class ( | |
98 | 98 | EXAMPLE_TYPE_ECHO_CONNECTION, |
99 | 99 | "account", "me@example.com", |
100 | 100 | "protocol", "example", |
126 | 126 | |
127 | 127 | chan_path = g_strdup_printf ("%s/Channel", conn_path); |
128 | 128 | |
129 | service_chan = EXAMPLE_ECHO_CHANNEL (g_object_new ( | |
129 | service_chan = EXAMPLE_ECHO_CHANNEL (test_object_new_static_class ( | |
130 | 130 | EXAMPLE_TYPE_ECHO_CHANNEL, |
131 | 131 | "connection", service_conn, |
132 | 132 | "object-path", chan_path, |
96 | 96 | /* tp_debug_set_flags ("all"); */ |
97 | 97 | dbus = test_dbus_daemon_dup_or_die (); |
98 | 98 | |
99 | service_conn = EXAMPLE_ECHO_CONNECTION (g_object_new ( | |
99 | service_conn = EXAMPLE_ECHO_CONNECTION (test_object_new_static_class ( | |
100 | 100 | EXAMPLE_TYPE_ECHO_CONNECTION, |
101 | 101 | "account", "me@example.com", |
102 | 102 | "protocol", "example", |
128 | 128 | |
129 | 129 | chan_path = g_strdup_printf ("%s/Channel", conn_path); |
130 | 130 | |
131 | service_chan = EXAMPLE_ECHO_CHANNEL (g_object_new ( | |
131 | service_chan = EXAMPLE_ECHO_CHANNEL (test_object_new_static_class ( | |
132 | 132 | EXAMPLE_TYPE_ECHO_CHANNEL, |
133 | 133 | "connection", service_conn, |
134 | 134 | "object-path", chan_path, |
10 | 10 | myassert.h \ |
11 | 11 | params-cm.h \ |
12 | 12 | params-cm.c \ |
13 | simple-account.c \ | |
14 | simple-account.h \ | |
13 | 15 | simple-account-manager.c\ |
14 | 16 | simple-account-manager.h\ |
15 | 17 | simple-conn.c \ |
38 | 38 | subdir = tests/lib |
39 | 39 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
40 | 40 | 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 \ | |
45 | 45 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
46 | 46 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
47 | 47 | $(top_srcdir)/configure.ac |
57 | 57 | $(am__DEPENDENCIES_1) \ |
58 | 58 | $(top_builddir)/telepathy-glib/libtelepathy-glib.la |
59 | 59 | 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 | |
63 | 63 | libtp_glib_tests_la_OBJECTS = $(am_libtp_glib_tests_la_OBJECTS) |
64 | 64 | AM_V_lt = $(am__v_lt_$(V)) |
65 | 65 | am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) |
141 | 141 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
142 | 142 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
143 | 143 | 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@ | |
144 | 149 | LD = @LD@ |
145 | 150 | LDFLAGS = @LDFLAGS@ |
146 | 151 | LIBOBJS = @LIBOBJS@ |
251 | 256 | myassert.h \ |
252 | 257 | params-cm.h \ |
253 | 258 | params-cm.c \ |
259 | simple-account.c \ | |
260 | simple-account.h \ | |
254 | 261 | simple-account-manager.c\ |
255 | 262 | simple-account-manager.h\ |
256 | 263 | simple-conn.c \ |
335 | 342 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/contacts-conn.Plo@am__quote@ |
336 | 343 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/params-cm.Plo@am__quote@ |
337 | 344 | @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@ | |
338 | 346 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple-conn.Plo@am__quote@ |
339 | 347 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple-manager.Plo@am__quote@ |
340 | 348 | @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__ */ |
17 | 17 | #include <telepathy-glib/errors.h> |
18 | 18 | |
19 | 19 | #include "simple-conn.h" |
20 | #include "tests/lib/util.h" | |
20 | 21 | |
21 | 22 | G_DEFINE_TYPE (SimpleConnectionManager, |
22 | 23 | simple_connection_manager, |
74 | 75 | { |
75 | 76 | SimpleParams *params = parsed_params; |
76 | 77 | SimpleConnection *conn = SIMPLE_CONNECTION |
77 | (g_object_new (SIMPLE_TYPE_CONNECTION, | |
78 | (test_object_new_static_class (SIMPLE_TYPE_CONNECTION, | |
78 | 79 | "account", params->account, |
79 | 80 | "protocol", proto, |
80 | 81 | NULL)); |
281 | 281 | |
282 | 282 | dbus = test_dbus_daemon_dup_or_die (); |
283 | 283 | |
284 | *service_conn = g_object_new ( | |
284 | *service_conn = test_object_new_static_class ( | |
285 | 285 | conn_type, |
286 | 286 | "account", account, |
287 | 287 | "protocol", "simple", |
305 | 305 | |
306 | 306 | g_object_unref (dbus); |
307 | 307 | } |
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 | } |
56 | 56 | } \ |
57 | 57 | G_STMT_END |
58 | 58 | |
59 | ||
59 | 60 | void test_create_and_connect_conn (GType conn_type, |
60 | 61 | const gchar *account, |
61 | 62 | TpBaseConnection **service_conn, |
62 | 63 | TpConnection **client_conn); |
63 | 64 | |
65 | gpointer test_object_new_static_class (GType type, | |
66 | ...) G_GNUC_NULL_TERMINATED; | |
67 | ||
64 | 68 | #endif |
61 | 61 | tp_debug_set_flags ("all"); |
62 | 62 | |
63 | 63 | 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 (), | |
65 | 65 | NULL); |
66 | 66 | 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 (), | |
68 | 68 | NULL); |
69 | 69 | } |
70 | 70 |
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 | } |
38 | 38 | $(srcdir)/Makefile.in |
39 | 39 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
40 | 40 | 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 \ | |
45 | 45 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
46 | 46 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
47 | 47 | $(top_srcdir)/configure.ac |
109 | 109 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
110 | 110 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
111 | 111 | 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@ | |
112 | 117 | LD = @LD@ |
113 | 118 | LDFLAGS = @LDFLAGS@ |
114 | 119 | LIBOBJS = @LIBOBJS@ |
37 | 37 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in |
38 | 38 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
39 | 39 | 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 \ | |
44 | 44 | $(top_srcdir)/m4/tp-compiler-flag.m4 \ |
45 | 45 | $(top_srcdir)/m4/tp-compiler-warnings.m4 \ |
46 | 46 | $(top_srcdir)/configure.ac |
106 | 106 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
107 | 107 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
108 | 108 | 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@ | |
109 | 114 | LD = @LD@ |
110 | 115 | LDFLAGS = @LDFLAGS@ |
111 | 116 | LIBOBJS = @LIBOBJS@ |
19 | 19 | fun:handle_leak_debug_bt |
20 | 20 | fun:dynamic_ensure_handle |
21 | 21 | 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 | |
235 | 22 | } |
236 | 23 | |
237 | 24 | { |
254 | 41 | fun:_dl_start |
255 | 42 | obj:/lib/ld-2.9.so |
256 | 43 | } |
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 | } |