Codebase list telepathy-glib / 832e15a
Imported Upstream version 0.7.13 Simon McVittie 15 years ago
72 changed file(s) with 5090 addition(s) and 323 deletion(s). Raw diff Collapse all Expand all
0 Tue Jul 29 12:26:41 BST 2008 Simon McVittie <simon.mcvittie@collabora.co.uk>
1 tagged telepathy-glib 0.7.13
2
3 Tue Jul 29 12:25:47 BST 2008 Simon McVittie <simon.mcvittie@collabora.co.uk>
4 * Bump version to 0.7.13 and libtool c:r:a to 14:0:14
5
6 Tue Jul 29 12:25:37 BST 2008 Simon McVittie <simon.mcvittie@collabora.co.uk>
7 * Commit to 0.7.13's ABI
8
9 Tue Jul 29 12:25:20 BST 2008 Simon McVittie <simon.mcvittie@collabora.co.uk>
10 * TpPresenceMixin: commit to including the simple presence stuff in 0.7.13
11
12 Tue Jul 29 12:25:01 BST 2008 Simon McVittie <simon.mcvittie@collabora.co.uk>
13 * Update NEWS for 0.7.13
14
15 Thu Jul 24 17:06:24 BST 2008 Sjoerd Simons <sjoerd@luon.net>
16 * Put SimplePresence in its own client side section
17
18 Thu Jul 24 16:13:06 BST 2008 Sjoerd Simons <sjoerd@luon.net>
19 * Add SimplePresence to the documentation
20
21 Thu Jul 24 16:12:46 BST 2008 Sjoerd Simons <sjoerd@luon.net>
22 * Also rename the documentation comments
23
24 Wed Jul 23 18:50:20 BST 2008 Sjoerd Simons <sjoerd@luon.net>
25 * Small coding-style fix
26
27 Wed Jul 23 18:50:40 BST 2008 Sjoerd Simons <sjoerd@luon.net>
28 * Remove trailing space
29
30 Wed Jul 23 18:41:27 BST 2008 Sjoerd Simons <sjoerd@luon.net>
31 * Add missing ; (woops)
32
33 Wed Jul 23 18:35:12 BST 2008 Sjoerd Simons <sjoerd@luon.net>
34 * s/Unreleased/UNRELEASED/
35
36 Wed Jul 23 18:34:50 BST 2008 Sjoerd Simons <sjoerd@luon.net>
37 * Fix construct_simple_presence_hash definition to comply with tp coding style
38
39 Fri Jul 18 17:14:52 BST 2008 Sjoerd Simons <sjoerd@luon.net>
40 * Use tp_svc_connection_interface_simple_presence_return_from_get_presence instead of tp_svc_connection_interface_presence_return_from_get_presence in the SimplePresence GetPresences implementation
41
42 Fri Jul 18 17:12:30 BST 2008 Sjoerd Simons <sjoerd@luon.net>
43 * Reorder code so there is no need for a goto doing backflips
44
45 Fri Jul 18 17:04:23 BST 2008 Sjoerd Simons <sjoerd@luon.net>
46 * More explicit and clear naming for the functions referring to the SimplePresence interface
47
48 Thu Jul 17 17:17:29 BST 2008 Sjoerd Simons <sjoerd@luon.net>
49 * PresenceMixin: Set uint values using g_value_set_uint instead of g_value_set_string
50
51 Thu Jul 17 17:17:06 BST 2008 Sjoerd Simons <sjoerd@luon.net>
52 * PresenceMixin: Fix some typos
53
54 Thu Jul 17 17:09:01 BST 2008 Sjoerd Simons <sjoerd@luon.net>
55 * PresenceMixin: Set the message boolean in the Status property as per the merged version of SimplePresence
56
57 Thu Jul 17 17:08:11 BST 2008 Sjoerd Simons <sjoerd@luon.net>
58 * PresenceMixin: add type in GetPresences and PresencesChanged as per the merged version of SimplePresence
59
60 Mon Jun 16 14:11:54 BST 2008 Sjoerd Simons <sjoerd@luon.net>
61 * Coding style fix
62
63 Mon Jun 16 14:11:38 BST 2008 Sjoerd Simons <sjoerd@luon.net>
64 * language cleanup
65
66 Mon Jun 16 12:22:50 BST 2008 Sjoerd Simons <sjoerd@luon.net>
67 * Implement SimplePresence on top of the presence mixin
68
69 Thu Jun 12 10:28:30 BST 2008 Sjoerd Simons <sjoerd@luon.net>
70 * Generate code for the simple presence
71
72 Thu Jul 24 18:21:26 BST 2008 Simon McVittie <simon.mcvittie@collabora.co.uk>
73 * Add tp_text_mixin_has_pending_messages
74
75 The proposal of "closed text channels are resurrected if they still have
76 incoming messages" is much easier to implement if we do this - it's possible
77 to use tp_text_mixin_list_pending_messages(), but that does wasteful copying.
78
79 The idea of returning the first sender handle is that callers can use it
80 as the initiator of the resurrected channel.
81
82 Wed Jul 23 22:59:25 BST 2008 Simon McVittie <simon.mcvittie@collabora.co.uk>
83 * Add tp_dbus_properties_mixin_get()
84
85 Wed Jul 23 22:58:25 BST 2008 Simon McVittie <simon.mcvittie@collabora.co.uk>
86 * Remove unnecessary argument from dbus-properties-mixin internal functions
87
88 Wed Jul 23 20:55:35 BST 2008 Simon McVittie <simon.mcvittie@collabora.co.uk>
89 * Update doc-generator.xsl from telepathy-spec 0.17.8
90
91 Wed Jul 23 20:53:55 BST 2008 Simon McVittie <simon.mcvittie@collabora.co.uk>
92 * Add Qualified_Property_Value_Map to gtkdoc
93
94 Wed Jul 23 20:49:40 BST 2008 Simon McVittie <simon.mcvittie@collabora.co.uk>
95 * Update spec to 0.17.8 (add draft inspectotron spec)
96
97 Thu Jul 17 16:45:11 BST 2008 Sjoerd Simons <sjoerd@luon.net>
98 * Update to tp-spec head
99
100 Mon Jun 16 12:21:36 BST 2008 Sjoerd Simons <sjoerd@luon.net>
101 * Update the telepathy spec
102
103 Thu Jun 12 16:41:49 BST 2008 Sjoerd Simons <sjoerd@luon.net>
104 * Update SimplePresence spec
105
106 Thu Jun 12 10:28:56 BST 2008 Sjoerd Simons <sjoerd@luon.net>
107 * Add simple presence to EXTRA_DIST
108
109 Thu Jun 12 10:28:01 BST 2008 Sjoerd Simons <sjoerd@luon.net>
110 * Update preliminary simple presence spec
111
112 Wed Jun 11 19:40:40 BST 2008 Sjoerd Simons <sjoerd@luon.net>
113 * Add first iteration of SimplePresence interface
114
115 Mon Jul 21 15:02:23 BST 2008 Simon McVittie <simon.mcvittie@collabora.co.uk>
116 * Correct spec-formatting issues in Hats example interface, as picked up by the new doc-generator.xsl
117
118 Mon Jul 21 15:01:04 BST 2008 Simon McVittie <simon.mcvittie@collabora.co.uk>
119 * Update doc-generator.xsl from telepathy-spec
120
121 Mon Jul 21 14:43:13 BST 2008 Simon McVittie <simon.mcvittie@collabora.co.uk>
122 * Tighten coding style checking
123
124 Mon Jul 21 14:42:35 BST 2008 Simon McVittie <simon.mcvittie@collabora.co.uk>
125 * Remove unnecessary cast which tripped the new coding style check
126
127 Mon Jul 21 14:38:34 BST 2008 Simon McVittie <simon.mcvittie@collabora.co.uk>
128 * Nano version 0.7.12.1
129
0130 Mon Jul 21 10:40:24 BST 2008 Simon McVittie <simon.mcvittie@collabora.co.uk>
1131 tagged telepathy-glib 0.7.12
2132
0 telepathy-glib 0.7.13 (2008-07-29)
1 ==================================
2
3 The "presence made easy" release.
4
5 Enhancements:
6
7 * TpPresenceMixin implements the new SimplePresence interface
8
9 * The spec text and doc-generator.xsl have been updated
10
11 * The coding-style checks have been removed
12
13 * A couple of supporting functions for Requests API development have
14 been added (tp_text_mixin_has_pending_messages and
15 tp_dbus_properties_mixin_get)
16
17 Release notes for projects using code generation:
18
19 * We now ship the more pedantic doc-generator.xsl from telepathy-spec 0.17.8:
20 - you'll probably need to clean up your spec markup!
21 - set the allow-undefined-interfaces XSLT parameter to a true value (e.g.
22 run xsltproc with --param allow-undefined-interfaces "true()") if you are
23 compiling documentation for interfaces that are not self-contained
24 (e.g. Telepathy extensions that reference the main Telepathy spec)
25
26 * If you're trying to use Telepathy coding style, upgrading the coding-style
27 checks is recommended, but might require you to make code changes
28
029 telepathy-glib 0.7.12 (2008-07-21)
130 ==================================
231
00 #! /bin/sh
11 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.61 for Telepathy-GLib 0.7.12.
2 # Generated by GNU Autoconf 2.61 for Telepathy-GLib 0.7.13.
33 #
44 # Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=Telepathy>.
55 #
727727 # Identity of this package.
728728 PACKAGE_NAME='Telepathy-GLib'
729729 PACKAGE_TARNAME='telepathy-glib'
730 PACKAGE_VERSION='0.7.12'
731 PACKAGE_STRING='Telepathy-GLib 0.7.12'
730 PACKAGE_VERSION='0.7.13'
731 PACKAGE_STRING='Telepathy-GLib 0.7.13'
732732 PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=Telepathy'
733733
734734 # Factoring default headers for most tests.
14281428 # Omit some internal or obsolete options to make the list less imposing.
14291429 # This message is too long to be a string in the A/UX 3.1 sh.
14301430 cat <<_ACEOF
1431 \`configure' configures Telepathy-GLib 0.7.12 to adapt to many kinds of systems.
1431 \`configure' configures Telepathy-GLib 0.7.13 to adapt to many kinds of systems.
14321432
14331433 Usage: $0 [OPTION]... [VAR=VALUE]...
14341434
14981498
14991499 if test -n "$ac_init_help"; then
15001500 case $ac_init_help in
1501 short | recursive ) echo "Configuration of Telepathy-GLib 0.7.12:";;
1501 short | recursive ) echo "Configuration of Telepathy-GLib 0.7.13:";;
15021502 esac
15031503 cat <<\_ACEOF
15041504
16251625 test -n "$ac_init_help" && exit $ac_status
16261626 if $ac_init_version; then
16271627 cat <<\_ACEOF
1628 Telepathy-GLib configure 0.7.12
1628 Telepathy-GLib configure 0.7.13
16291629 generated by GNU Autoconf 2.61
16301630
16311631 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
16391639 This file contains any messages produced by compilers while
16401640 running configure, to aid debugging if configure makes a mistake.
16411641
1642 It was created by Telepathy-GLib $as_me 0.7.12, which was
1642 It was created by Telepathy-GLib $as_me 0.7.13, which was
16431643 generated by GNU Autoconf 2.61. Invocation command line was
16441644
16451645 $ $0 $@
23122312
23132313 # Define the identity of the package.
23142314 PACKAGE='telepathy-glib'
2315 VERSION='0.7.12'
2315 VERSION='0.7.13'
23162316
23172317
23182318 cat >>confdefs.h <<_ACEOF
2048920489
2049020490
2049120491
20492 LT_CURRENT=13
20492 LT_CURRENT=14
2049320493 LT_REVISION=0
20494 LT_AGE=13
20494 LT_AGE=14
2049520495
2049620496
2049720497
2269722697 # report actual input values of CONFIG_FILES etc. instead of their
2269822698 # values after options handling.
2269922699 ac_log="
22700 This file was extended by Telepathy-GLib $as_me 0.7.12, which was
22700 This file was extended by Telepathy-GLib $as_me 0.7.13, which was
2270122701 generated by GNU Autoconf 2.61. Invocation command line was
2270222702
2270322703 CONFIG_FILES = $CONFIG_FILES
2275022750 _ACEOF
2275122751 cat >>$CONFIG_STATUS <<_ACEOF
2275222752 ac_cs_version="\\
22753 Telepathy-GLib config.status 0.7.12
22753 Telepathy-GLib config.status 0.7.13
2275422754 configured by $0, generated by GNU Autoconf 2.61,
2275522755 with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
2275622756
1010
1111 m4_define([tp_glib_major_version], [0])
1212 m4_define([tp_glib_minor_version], [7])
13 m4_define([tp_glib_micro_version], [12])
13 m4_define([tp_glib_micro_version], [13])
1414 m4_define([tp_glib_nano_version], [0])
1515
1616 # If library source has changed since last release, increment revision
2525 # (we don't guarantee that we won't add ABI then remove it again, if it was
2626 # never seen in a release).
2727
28 m4_define([tp_glib_lt_current], [13])
28 m4_define([tp_glib_lt_current], [14])
2929 m4_define([tp_glib_lt_revision], [0])
30 m4_define([tp_glib_lt_age], [13])
30 m4_define([tp_glib_lt_age], [14])
3131
3232 # Some magic
3333 m4_define([tp_glib_base_version],
4545 <span class="refentrytitle"><a href="telepathy-glib-connection-caps.html">Connection Capabilities interface</a></span><span class="refpurpose"> — client-side wrappers for the Capabilities interface</span>
4646 </dt>
4747 <dt>
48 <span class="refentrytitle"><a href="telepathy-glib-connection-simple-presence.html">Connection SimplePresence interface</a></span><span class="refpurpose"> — client-side wrappers for the SimplePresence interface</span>
49 </dt>
50 <dt>
4851 <span class="refentrytitle"><a href="telepathy-glib-connection-presence.html">Connection Presence interface</a></span><span class="refpurpose"> — client-side wrappers for the Presence interface</span>
4952 </dt>
5053 <dt>
9595 <span class="refentrytitle"><a href="telepathy-glib-connection-caps.html">Connection Capabilities interface</a></span><span class="refpurpose"> — client-side wrappers for the Capabilities interface</span>
9696 </dt>
9797 <dt>
98 <span class="refentrytitle"><a href="telepathy-glib-connection-simple-presence.html">Connection SimplePresence interface</a></span><span class="refpurpose"> — client-side wrappers for the SimplePresence interface</span>
99 </dt>
100 <dt>
98101 <span class="refentrytitle"><a href="telepathy-glib-connection-presence.html">Connection Presence interface</a></span><span class="refpurpose"> — client-side wrappers for the Presence interface</span>
99102 </dt>
100103 <dt>
217217 <ANCHOR id="TP-IFACE-QUARK-CONNECTION-INTERFACE-AVATARS:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-AVATARS:CAPS">
218218 <ANCHOR id="TP-IFACE-CONNECTION-INTERFACE-CAPABILITIES:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-CAPABILITIES:CAPS">
219219 <ANCHOR id="TP-IFACE-QUARK-CONNECTION-INTERFACE-CAPABILITIES:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-CAPABILITIES:CAPS">
220 <ANCHOR id="TP-IFACE-CONNECTION-INTERFACE-SIMPLE-PRESENCE:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-SIMPLE-PRESENCE:CAPS">
221 <ANCHOR id="TP-IFACE-QUARK-CONNECTION-INTERFACE-SIMPLE-PRESENCE:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-SIMPLE-PRESENCE:CAPS">
220222 <ANCHOR id="TP-IFACE-CONNECTION-INTERFACE-PRESENCE:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-PRESENCE:CAPS">
221223 <ANCHOR id="TP-IFACE-QUARK-CONNECTION-INTERFACE-PRESENCE:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-PRESENCE:CAPS">
222224 <ANCHOR id="TP-IFACE-CHANNEL:CAPS" href="telepathy-glib/telepathy-glib-interfaces.html#TP-IFACE-CHANNEL:CAPS">
324326 <ANCHOR id="tp-dbus-specialized-value-slice-new" href="telepathy-glib/telepathy-glib-gtypes.html#tp-dbus-specialized-value-slice-new">
325327 <ANCHOR id="TP-HASH-TYPE-STRING-STRING-MAP:CAPS" href="telepathy-glib/telepathy-glib-gtypes.html#TP-HASH-TYPE-STRING-STRING-MAP:CAPS">
326328 <ANCHOR id="TP-HASH-TYPE-STRING-VARIANT-MAP:CAPS" href="telepathy-glib/telepathy-glib-gtypes.html#TP-HASH-TYPE-STRING-VARIANT-MAP:CAPS">
329 <ANCHOR id="TP-HASH-TYPE-QUALIFIED-PROPERTY-VALUE-MAP:CAPS" href="telepathy-glib/telepathy-glib-gtypes.html#TP-HASH-TYPE-QUALIFIED-PROPERTY-VALUE-MAP:CAPS">
327330 <ANCHOR id="TP-STRUCT-TYPE-PARAM-SPEC:CAPS" href="telepathy-glib/telepathy-glib-gtypes.html#TP-STRUCT-TYPE-PARAM-SPEC:CAPS">
328331 <ANCHOR id="TP-ARRAY-TYPE-PARAM-SPEC-LIST:CAPS" href="telepathy-glib/telepathy-glib-gtypes.html#TP-ARRAY-TYPE-PARAM-SPEC-LIST:CAPS">
329332 <ANCHOR id="TP-STRUCT-TYPE-CHANNEL-INFO:CAPS" href="telepathy-glib/telepathy-glib-gtypes.html#TP-STRUCT-TYPE-CHANNEL-INFO:CAPS">
338341 <ANCHOR id="TP-ARRAY-TYPE-CAPABILITY-PAIR-LIST:CAPS" href="telepathy-glib/telepathy-glib-gtypes.html#TP-ARRAY-TYPE-CAPABILITY-PAIR-LIST:CAPS">
339342 <ANCHOR id="TP-STRUCT-TYPE-CONTACT-CAPABILITY:CAPS" href="telepathy-glib/telepathy-glib-gtypes.html#TP-STRUCT-TYPE-CONTACT-CAPABILITY:CAPS">
340343 <ANCHOR id="TP-ARRAY-TYPE-CONTACT-CAPABILITY-LIST:CAPS" href="telepathy-glib/telepathy-glib-gtypes.html#TP-ARRAY-TYPE-CONTACT-CAPABILITY-LIST:CAPS">
344 <ANCHOR id="TP-HASH-TYPE-SIMPLE-CONTACT-PRESENCES:CAPS" href="telepathy-glib/telepathy-glib-gtypes.html#TP-HASH-TYPE-SIMPLE-CONTACT-PRESENCES:CAPS">
345 <ANCHOR id="TP-HASH-TYPE-SIMPLE-STATUS-SPEC-MAP:CAPS" href="telepathy-glib/telepathy-glib-gtypes.html#TP-HASH-TYPE-SIMPLE-STATUS-SPEC-MAP:CAPS">
346 <ANCHOR id="TP-STRUCT-TYPE-SIMPLE-PRESENCE:CAPS" href="telepathy-glib/telepathy-glib-gtypes.html#TP-STRUCT-TYPE-SIMPLE-PRESENCE:CAPS">
347 <ANCHOR id="TP-STRUCT-TYPE-SIMPLE-STATUS-SPEC:CAPS" href="telepathy-glib/telepathy-glib-gtypes.html#TP-STRUCT-TYPE-SIMPLE-STATUS-SPEC:CAPS">
341348 <ANCHOR id="TP-HASH-TYPE-CONTACT-PRESENCES:CAPS" href="telepathy-glib/telepathy-glib-gtypes.html#TP-HASH-TYPE-CONTACT-PRESENCES:CAPS">
342349 <ANCHOR id="TP-HASH-TYPE-MULTIPLE-STATUS-MAP:CAPS" href="telepathy-glib/telepathy-glib-gtypes.html#TP-HASH-TYPE-MULTIPLE-STATUS-MAP:CAPS">
343350 <ANCHOR id="TP-HASH-TYPE-STATUS-SPEC-MAP:CAPS" href="telepathy-glib/telepathy-glib-gtypes.html#TP-HASH-TYPE-STATUS-SPEC-MAP:CAPS">
548555 <ANCHOR id="tp-cli-connection-interface-capabilities-connect-to-capabilities-changed" href="telepathy-glib/telepathy-glib-connection-caps.html#tp-cli-connection-interface-capabilities-connect-to-capabilities-changed">
549556 <ANCHOR id="tp-cli-connection-interface-capabilities-signal-callback-capabilities-changed" href="telepathy-glib/telepathy-glib-connection-caps.html#tp-cli-connection-interface-capabilities-signal-callback-capabilities-changed">
550557 <ANCHOR id="telepathy-glib-connection-caps.see-also" href="telepathy-glib/telepathy-glib-connection-caps.html#telepathy-glib-connection-caps.see-also">
558 <ANCHOR id="telepathy-glib-connection-simple-presence" href="telepathy-glib/telepathy-glib-connection-simple-presence.html">
559 <ANCHOR id="telepathy-glib-connection-simple-presence.synopsis" href="telepathy-glib/telepathy-glib-connection-simple-presence.html#telepathy-glib-connection-simple-presence.synopsis">
560 <ANCHOR id="telepathy-glib-connection-simple-presence.description" href="telepathy-glib/telepathy-glib-connection-simple-presence.html#telepathy-glib-connection-simple-presence.description">
561 <ANCHOR id="telepathy-glib-connection-simple-presence.details" href="telepathy-glib/telepathy-glib-connection-simple-presence.html#telepathy-glib-connection-simple-presence.details">
562 <ANCHOR id="tp-cli-connection-interface-simple-presence-run-get-presences" href="telepathy-glib/telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-run-get-presences">
563 <ANCHOR id="tp-cli-connection-interface-simple-presence-run-set-presence" href="telepathy-glib/telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-run-set-presence">
564 <ANCHOR id="tp-cli-connection-interface-simple-presence-call-get-presences" href="telepathy-glib/telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-call-get-presences">
565 <ANCHOR id="tp-cli-connection-interface-simple-presence-call-set-presence" href="telepathy-glib/telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-call-set-presence">
566 <ANCHOR id="tp-cli-connection-interface-simple-presence-callback-for-get-presences" href="telepathy-glib/telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-callback-for-get-presences">
567 <ANCHOR id="tp-cli-connection-interface-simple-presence-callback-for-set-presence" href="telepathy-glib/telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-callback-for-set-presence">
568 <ANCHOR id="tp-cli-connection-interface-simple-presence-connect-to-presences-changed" href="telepathy-glib/telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-connect-to-presences-changed">
569 <ANCHOR id="tp-cli-connection-interface-simple-presence-signal-callback-presences-changed" href="telepathy-glib/telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-signal-callback-presences-changed">
570 <ANCHOR id="telepathy-glib-connection-simple-presence.see-also" href="telepathy-glib/telepathy-glib-connection-simple-presence.html#telepathy-glib-connection-simple-presence.see-also">
551571 <ANCHOR id="telepathy-glib-connection-presence" href="telepathy-glib/telepathy-glib-connection-presence.html">
552572 <ANCHOR id="telepathy-glib-connection-presence.synopsis" href="telepathy-glib/telepathy-glib-connection-presence.html#telepathy-glib-connection-presence.synopsis">
553573 <ANCHOR id="telepathy-glib-connection-presence.description" href="telepathy-glib/telepathy-glib-connection-presence.html#telepathy-glib-connection-presence.description">
12121232 <ANCHOR id="tp-svc-connection-return-from-request-handles" href="telepathy-glib/telepathy-glib-svc-connection.html#tp-svc-connection-return-from-request-handles">
12131233 <ANCHOR id="tp-svc-connection-emit-new-channel" href="telepathy-glib/telepathy-glib-svc-connection.html#tp-svc-connection-emit-new-channel">
12141234 <ANCHOR id="tp-svc-connection-emit-status-changed" href="telepathy-glib/telepathy-glib-svc-connection.html#tp-svc-connection-emit-status-changed">
1235 <ANCHOR id="TpSvcConnectionInterfaceSimplePresence" href="telepathy-glib/telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceSimplePresence">
1236 <ANCHOR id="TpSvcConnectionInterfaceSimplePresenceClass" href="telepathy-glib/telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceSimplePresenceClass">
1237 <ANCHOR id="tp-svc-connection-interface-simple-presence-emit-presences-changed" href="telepathy-glib/telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-emit-presences-changed">
1238 <ANCHOR id="tp-svc-connection-interface-simple-presence-get-presences-impl" href="telepathy-glib/telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-get-presences-impl">
1239 <ANCHOR id="tp-svc-connection-interface-simple-presence-implement-get-presences" href="telepathy-glib/telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-implement-get-presences">
1240 <ANCHOR id="tp-svc-connection-interface-simple-presence-implement-set-presence" href="telepathy-glib/telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-implement-set-presence">
1241 <ANCHOR id="tp-svc-connection-interface-simple-presence-return-from-get-presences" href="telepathy-glib/telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-return-from-get-presences">
1242 <ANCHOR id="tp-svc-connection-interface-simple-presence-return-from-set-presence" href="telepathy-glib/telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-return-from-set-presence">
1243 <ANCHOR id="tp-svc-connection-interface-simple-presence-set-presence-impl" href="telepathy-glib/telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-set-presence-impl">
12151244 <ANCHOR id="TpSvcConnectionInterfacePresence" href="telepathy-glib/telepathy-glib-svc-connection.html#TpSvcConnectionInterfacePresence">
12161245 <ANCHOR id="TpSvcConnectionInterfacePresenceClass" href="telepathy-glib/telepathy-glib-svc-connection.html#TpSvcConnectionInterfacePresenceClass">
12171246 <ANCHOR id="tp-svc-connection-interface-presence-add-status-impl" href="telepathy-glib/telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-add-status-impl">
14571486 <ANCHOR id="tp-dbus-properties-mixin-class-init" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-class-init">
14581487 <ANCHOR id="tp-dbus-properties-mixin-implement-interface" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-implement-interface">
14591488 <ANCHOR id="tp-dbus-properties-mixin-iface-init" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-iface-init">
1489 <ANCHOR id="tp-dbus-properties-mixin-get" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-get">
14601490 <ANCHOR id="telepathy-glib-dbus-properties-mixin.see-also" href="telepathy-glib/telepathy-glib-dbus-properties-mixin.html#telepathy-glib-dbus-properties-mixin.see-also">
14611491 <ANCHOR id="telepathy-glib-TpPresenceMixin" href="telepathy-glib/telepathy-glib-TpPresenceMixin.html">
14621492 <ANCHOR id="telepathy-glib-TpPresenceMixin.synopsis" href="telepathy-glib/telepathy-glib-TpPresenceMixin.html#telepathy-glib-TpPresenceMixin.synopsis">
14781508 <ANCHOR id="tp-presence-mixin-emit-presence-update" href="telepathy-glib/telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-emit-presence-update">
14791509 <ANCHOR id="tp-presence-mixin-emit-one-presence-update" href="telepathy-glib/telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-emit-one-presence-update">
14801510 <ANCHOR id="tp-presence-mixin-iface-init" href="telepathy-glib/telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-iface-init">
1511 <ANCHOR id="tp-presence-mixin-simple-presence-iface-init" href="telepathy-glib/telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-simple-presence-iface-init">
1512 <ANCHOR id="tp-presence-mixin-simple-presence-init-dbus-properties" href="telepathy-glib/telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-simple-presence-init-dbus-properties">
14811513 <ANCHOR id="telepathy-glib-TpPresenceMixin.see-also" href="telepathy-glib/telepathy-glib-TpPresenceMixin.html#telepathy-glib-TpPresenceMixin.see-also">
14821514 <ANCHOR id="telepathy-glib-TpPropertiesMixin" href="telepathy-glib/telepathy-glib-TpPropertiesMixin.html">
14831515 <ANCHOR id="telepathy-glib-TpPropertiesMixin.synopsis" href="telepathy-glib/telepathy-glib-TpPropertiesMixin.html#telepathy-glib-TpPropertiesMixin.synopsis">
15721604 <ANCHOR id="tp-text-mixin-list-pending-messages" href="telepathy-glib/telepathy-glib-TpTextMixin.html#tp-text-mixin-list-pending-messages">
15731605 <ANCHOR id="tp-text-mixin-get-message-types" href="telepathy-glib/telepathy-glib-TpTextMixin.html#tp-text-mixin-get-message-types">
15741606 <ANCHOR id="tp-text-mixin-clear" href="telepathy-glib/telepathy-glib-TpTextMixin.html#tp-text-mixin-clear">
1607 <ANCHOR id="tp-text-mixin-has-pending-messages" href="telepathy-glib/telepathy-glib-TpTextMixin.html#tp-text-mixin-has-pending-messages">
15751608 <ANCHOR id="tp-text-mixin-iface-init" href="telepathy-glib/telepathy-glib-TpTextMixin.html#tp-text-mixin-iface-init">
15761609 <ANCHOR id="telepathy-glib-TpTextMixin.see-also" href="telepathy-glib/telepathy-glib-TpTextMixin.html#telepathy-glib-TpTextMixin.see-also">
15771610 <ANCHOR id="telepathy-glib-handle-repo" href="telepathy-glib/telepathy-glib-handle-repo.html">
126126 <a
127127 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
128128 >gpointer</a> iface_data);
129 void <a class="link" href="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-simple-presence-iface-init" title="tp_presence_mixin_simple_presence_iface_init ()">tp_presence_mixin_simple_presence_iface_init</a>
130 (<a
131 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
132 >gpointer</a> g_iface,
133 <a
134 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
135 >gpointer</a> iface_data);
136 void <a class="link" href="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-simple-presence-init-dbus-properties" title="tp_presence_mixin_simple_presence_init_dbus_properties ()">tp_presence_mixin_simple_presence_init_dbus_properties</a>
137 (<a
138 href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObjectClass"
139 >GObjectClass</a> *cls);
129140 </pre>
130141 </div>
131142 <div class="refsect1" lang="en">
155166 <a class="link" href="telepathy-glib-svc-connection.html#TpSvcConnectionInterfacePresence" title="TpSvcConnectionInterfacePresence"><span class="type">TpSvcConnectionInterfacePresence</span></a>, in the function you pass to
156167 G_IMPLEMENT_INTERFACE, you should call tp_presence_mixin_iface_init.
157168 TpPresenceMixin implements all of the D-Bus methods in the Presence
158 interface.</p>
169 interface.
170 </p>
171 <p>
172 Since 0.7.13 you can also implement
173 <a class="link" href="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceSimplePresence" title="TpSvcConnectionInterfaceSimplePresence"><span class="type">TpSvcConnectionInterfaceSimplePresence</span></a> by using this mixin, in this case
174 you should pass tp_presence_mixin_iface_init as an argument to
175 G_IMPLEMENT_INTERFACE. Note that this can cause the status_available
176 callback to be called while disconnected. Also to fully implement this
177 interface some dbus properties need to be supported. To do that using this
178 mixin the instance needs to use the dbus properties mixin and call
179 tp_presence_mixin_simple_presence_init_dbus_properties in the class init
180 function</p>
159181 <p>
160182
161183 </p>
270292 >guint</a> which);</pre>
271293 <p>
272294 Signature of the callback used to determine if a given status is currently
273 available to be set on the connection.</p>
295 available to be set on the connection.
296 </p>
297 <p>
298 When implementing the
299 org.freedesktop.Telepathy.Connection.Interface.SimplePresence interface
300 this can be called while DISCONNECTED to determine which statuses can be set
301 in that state.</p>
274302 <p>
275303
276304 </p>
820848 </tbody>
821849 </table></div>
822850 </div>
851 <hr>
852 <div class="refsect2" lang="en">
853 <a name="tp-presence-mixin-simple-presence-iface-init"></a><h3>tp_presence_mixin_simple_presence_iface_init ()</h3>
854 <pre class="programlisting">void tp_presence_mixin_simple_presence_iface_init
855 (<a
856 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
857 >gpointer</a> g_iface,
858 <a
859 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
860 >gpointer</a> iface_data);</pre>
861 <p>
862 Fill in the vtable entries needed to implement the simple presence interface
863 using this mixin. This function should usually be called via
864 G_IMPLEMENT_INTERFACE.</p>
865 <p>
866
867 </p>
868 <div class="variablelist"><table border="0">
869 <col align="left" valign="top">
870 <tbody>
871 <tr>
872 <td><p><span class="term"><em class="parameter"><code>g_iface</code></em> :</span></p></td>
873 <td> A pointer to the <a class="link" href="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceSimplePresenceClass" title="TpSvcConnectionInterfaceSimplePresenceClass"><span class="type">TpSvcConnectionInterfaceSimplePresenceClass</span></a> in
874 an object class
875 </td>
876 </tr>
877 <tr>
878 <td><p><span class="term"><em class="parameter"><code>iface_data</code></em> :</span></p></td>
879 <td> Ignored
880 </td>
881 </tr>
882 </tbody>
883 </table></div>
884 <p class="since">Since 0.7.13
885 </p>
886 </div>
887 <hr>
888 <div class="refsect2" lang="en">
889 <a name="tp-presence-mixin-simple-presence-init-dbus-properties"></a><h3>tp_presence_mixin_simple_presence_init_dbus_properties ()</h3>
890 <pre class="programlisting">void tp_presence_mixin_simple_presence_init_dbus_properties
891 (<a
892 href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObjectClass"
893 >GObjectClass</a> *cls);</pre>
894 <p>
895 Set up <a class="link" href="telepathy-glib-dbus-properties-mixin.html#TpDBusPropertiesMixinClass" title="TpDBusPropertiesMixinClass"><span class="type">TpDBusPropertiesMixinClass</span></a> to use this mixin's implementation of
896 the SimplePresence interface's properties.
897 </p>
898 <p>
899 This uses <code class="function">tp_presence_mixin_get_simple_dbus_property()</code> as the property
900 getter and sets up a list of the supported properties for it.</p>
901 <p>
902
903 </p>
904 <div class="variablelist"><table border="0">
905 <col align="left" valign="top">
906 <tbody><tr>
907 <td><p><span class="term"><em class="parameter"><code>cls</code></em> :</span></p></td>
908 <td> The class of an object with this mixin
909 </td>
910 </tr></tbody>
911 </table></div>
912 <p class="since">Since 0.7.13
913 </p>
914 </div>
823915 </div>
824916 <div class="refsect1" lang="en">
825917 <a name="telepathy-glib-TpPresenceMixin.see-also"></a><h2>See Also</h2>
123123 void <a class="link" href="telepathy-glib-TpTextMixin.html#tp-text-mixin-clear" title="tp_text_mixin_clear ()">tp_text_mixin_clear</a> (<a
124124 href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"
125125 >GObject</a> *obj);
126 <a
127 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
128 >gboolean</a> <a class="link" href="telepathy-glib-TpTextMixin.html#tp-text-mixin-has-pending-messages" title="tp_text_mixin_has_pending_messages ()">tp_text_mixin_has_pending_messages</a> (<a
129 href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"
130 >GObject</a> *obj,
131 <a class="link" href="telepathy-glib-handle.html#TpHandle" title="TpHandle">TpHandle</a> *first_sender);
126132 void <a class="link" href="telepathy-glib-TpTextMixin.html#tp-text-mixin-iface-init" title="tp_text_mixin_iface_init ()">tp_text_mixin_iface_init</a> (<a
127133 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
128134 >gpointer</a> g_iface,
599605 </div>
600606 <hr>
601607 <div class="refsect2" lang="en">
608 <a name="tp-text-mixin-has-pending-messages"></a><h3>tp_text_mixin_has_pending_messages ()</h3>
609 <pre class="programlisting"><a
610 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
611 >gboolean</a> tp_text_mixin_has_pending_messages (<a
612 href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"
613 >GObject</a> *obj,
614 <a class="link" href="telepathy-glib-handle.html#TpHandle" title="TpHandle">TpHandle</a> *first_sender);</pre>
615 <p>
616 Return whether the channel <em class="parameter"><code>obj</code></em> has unacknowledged messages. If so, and
617 <em class="parameter"><code>first_sender</code></em> is not <a
618 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
619 ><code class="literal">NULL</code></a>, the handle of the sender of the first message
620 is placed in it, without incrementing the handle's reference count.</p>
621 <p>
622
623 </p>
624 <div class="variablelist"><table border="0">
625 <col align="left" valign="top">
626 <tbody>
627 <tr>
628 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
629 <td> An object with this mixin
630 </td>
631 </tr>
632 <tr>
633 <td><p><span class="term"><em class="parameter"><code>first_sender</code></em> :</span></p></td>
634 <td> If not <a
635 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
636 ><code class="literal">NULL</code></a>, used to store the sender of the oldest pending
637 message
638 </td>
639 </tr>
640 <tr>
641 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
642 <td> <a
643 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"
644 ><code class="literal">TRUE</code></a> if there are pending messages
645 </td>
646 </tr>
647 </tbody>
648 </table></div>
649 </div>
650 <hr>
651 <div class="refsect2" lang="en">
602652 <a name="tp-text-mixin-iface-init"></a><h3>tp_text_mixin_iface_init ()</h3>
603653 <pre class="programlisting">void tp_text_mixin_iface_init (<a
604654 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
66 <link rel="start" href="index.html" title="telepathy-glib Reference Manual">
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
88 <link rel="prev" href="telepathy-glib-connection-avatars.html" title="Connection Avatars interface">
9 <link rel="next" href="telepathy-glib-connection-presence.html" title="Connection Presence interface">
9 <link rel="next" href="telepathy-glib-connection-simple-presence.html" title="Connection SimplePresence interface">
1010 <meta name="generator" content="GTK-Doc V1.10 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 <link rel="chapter" href="ch-dbus.html" title="General D-Bus support">
2424 <td><a accesskey="u" href="ch-client.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
2525 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
2626 <th width="100%" align="center">telepathy-glib Reference Manual</th>
27 <td><a accesskey="n" href="telepathy-glib-connection-presence.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
27 <td><a accesskey="n" href="telepathy-glib-connection-simple-presence.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
2828 </tr>
2929 <tr><td colspan="5" class="shortcuts"><nobr><a href="#telepathy-glib-connection-caps.synopsis" class="shortcut">Top</a>
3030  | 
230230 state.
231231 </p>
232232 <p>
233 &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;Used by user interfaces to indicate which channel types they are able to handle on this connection. Because these may be provided by different client processes, this method accepts channel types to add and remove from the set already advertised on this connection. The type of advertised capabilities (create versus invite) is protocol-dependent and hence cannot be set by the this method. In the case of a client adding an already advertised channel type but with new channel type specific flags, the connection manager should simply add the new flags to the set of advertised capabilities.&lt;/p&gt; &lt;p&gt;Upon a successful invocation of this method, the CapabilitiesChanged signal will be emitted for the user's own handle (as returned by GetSelfHandle) the by the connection manager to indicate the changes that have been made. This signal should also be monitored to ensure that the set is kept accurate - for example, a client may remove capabilities or type specific capability flags when it exits which are still provided by another client.&lt;/p&gt;</p>
233 &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;Used by user interfaces to indicate which channel types they are able to handle on this connection. Because these may be provided by different client processes, this method accepts channel types to add and remove from the set already advertised on this connection. The type of advertised capabilities (create versus invite) is protocol-dependent and hence cannot be set by the this method. In the case of a client adding an already advertised channel type but with new channel type specific flags, the connection manager should simply add the new flags to the set of advertised capabilities.&lt;/p&gt; &lt;p&gt;Upon a successful invocation of this method, the CapabilitiesChanged signal will be emitted for the user's own handle (as returned by GetSelfHandle) by the connection manager to indicate the changes that have been made. This signal should also be monitored to ensure that the set is kept accurate - for example, a client may remove capabilities or type specific capability flags when it exits which are still provided by another client.&lt;/p&gt;</p>
234234 <p>
235235
236236 </p>
329329 state.
330330 </p>
331331 <p>
332 Returns an array of capabilities for the given contact handles, or the connection itself (where handle is zero).</p>
332 Returns an array of capabilities for the given contact handles.</p>
333333 <p>
334334
335335 </p>
348348 </tr>
349349 <tr>
350350 <td><p><span class="term"><em class="parameter"><code>in_handles</code></em> :</span></p></td>
351 <td> Used to pass an 'in' argument: An array of contact handles for this connection, or zero to query capabilities available on the connection itself
351 <td> Used to pass an 'in' argument: &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;An array of contact handles for this connection.&lt;/p&gt; &lt;p&gt;This may include zero, which originally meant a query for capabilities available on the connection itself. This usage is deprecated; clients SHOULD NOT do this, and connection managers SHOULD proceed as though zero had not been present in this list.&lt;/p&gt;
352352 </td>
353353 </tr>
354354 <tr>
355355 <td><p><span class="term"><em class="parameter"><code>out0</code></em> :</span></p></td>
356356 <td> Used to return an 'out' argument if <a
357357 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"
358 ><code class="literal">TRUE</code></a> is returned: An array of structures containing: &lt;ul&gt; &lt;li&gt;an integer handle representing the contact&lt;/li&gt; &lt;li&gt;a string channel type&lt;/li&gt; &lt;li&gt;a bitwise OR of generic capability flags for the type&lt;/li&gt; &lt;li&gt;a bitwise OR of type specific capability flags for the type&lt;/li&gt; &lt;/ul&gt;
358 ><code class="literal">TRUE</code></a> is returned: &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; An array of structures containing: &lt;ul&gt; &lt;li&gt;an integer handle representing the contact&lt;/li&gt; &lt;li&gt;a string channel type&lt;/li&gt; &lt;li&gt;a bitwise OR of generic capability flags for the type&lt;/li&gt; &lt;li&gt;a bitwise OR of type specific capability flags for the type&lt;/li&gt; &lt;/ul&gt;
359359 </td>
360360 </tr>
361361 <tr>
421421 Start a AdvertiseCapabilities method call.
422422 </p>
423423 <p>
424 &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;Used by user interfaces to indicate which channel types they are able to handle on this connection. Because these may be provided by different client processes, this method accepts channel types to add and remove from the set already advertised on this connection. The type of advertised capabilities (create versus invite) is protocol-dependent and hence cannot be set by the this method. In the case of a client adding an already advertised channel type but with new channel type specific flags, the connection manager should simply add the new flags to the set of advertised capabilities.&lt;/p&gt; &lt;p&gt;Upon a successful invocation of this method, the CapabilitiesChanged signal will be emitted for the user's own handle (as returned by GetSelfHandle) the by the connection manager to indicate the changes that have been made. This signal should also be monitored to ensure that the set is kept accurate - for example, a client may remove capabilities or type specific capability flags when it exits which are still provided by another client.&lt;/p&gt;</p>
424 &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;Used by user interfaces to indicate which channel types they are able to handle on this connection. Because these may be provided by different client processes, this method accepts channel types to add and remove from the set already advertised on this connection. The type of advertised capabilities (create versus invite) is protocol-dependent and hence cannot be set by the this method. In the case of a client adding an already advertised channel type but with new channel type specific flags, the connection manager should simply add the new flags to the set of advertised capabilities.&lt;/p&gt; &lt;p&gt;Upon a successful invocation of this method, the CapabilitiesChanged signal will be emitted for the user's own handle (as returned by GetSelfHandle) by the connection manager to indicate the changes that have been made. This signal should also be monitored to ensure that the set is kept accurate - for example, a client may remove capabilities or type specific capability flags when it exits which are still provided by another client.&lt;/p&gt;</p>
425425 <p>
426426
427427 </p>
531531 Start a GetCapabilities method call.
532532 </p>
533533 <p>
534 Returns an array of capabilities for the given contact handles, or the connection itself (where handle is zero).</p>
534 Returns an array of capabilities for the given contact handles.</p>
535535 <p>
536536
537537 </p>
551551 </tr>
552552 <tr>
553553 <td><p><span class="term"><em class="parameter"><code>in_handles</code></em> :</span></p></td>
554 <td> Used to pass an 'in' argument: An array of contact handles for this connection, or zero to query capabilities available on the connection itself
554 <td> Used to pass an 'in' argument: &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;An array of contact handles for this connection.&lt;/p&gt; &lt;p&gt;This may include zero, which originally meant a query for capabilities available on the connection itself. This usage is deprecated; clients SHOULD NOT do this, and connection managers SHOULD proceed as though zero had not been present in this list.&lt;/p&gt;
555555 </td>
556556 </tr>
557557 <tr>
704704 <td><p><span class="term"><em class="parameter"><code>out0</code></em> :</span></p></td>
705705 <td> Used to return an 'out' argument if <em class="parameter"><code>error</code></em> is <a
706706 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
707 ><code class="literal">NULL</code></a>: An array of structures containing: &lt;ul&gt; &lt;li&gt;an integer handle representing the contact&lt;/li&gt; &lt;li&gt;a string channel type&lt;/li&gt; &lt;li&gt;a bitwise OR of generic capability flags for the type&lt;/li&gt; &lt;li&gt;a bitwise OR of type specific capability flags for the type&lt;/li&gt; &lt;/ul&gt;
707 ><code class="literal">NULL</code></a>: &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; An array of structures containing: &lt;ul&gt; &lt;li&gt;an integer handle representing the contact&lt;/li&gt; &lt;li&gt;a string channel type&lt;/li&gt; &lt;li&gt;a bitwise OR of generic capability flags for the type&lt;/li&gt; &lt;li&gt;a bitwise OR of type specific capability flags for the type&lt;/li&gt; &lt;/ul&gt;
708708 </td>
709709 </tr>
710710 <tr>
749749 Connect a handler to the signal CapabilitiesChanged.
750750 </p>
751751 <p>
752 Announce that there has been a change of capabilities on the given handle, or on the connection itself if the handle is zero.</p>
752 &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;Announce that there has been a change of capabilities on the given handle.&lt;/p&gt; &lt;p&gt;If the handle is zero, the capabilities refer to the connection itself, in some poorly defined way. This usage is deprecated and clients should ignore it.&lt;/p&gt;</p>
753753 <p>
754754
755755 </p>
55 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
66 <link rel="start" href="index.html" title="telepathy-glib Reference Manual">
77 <link rel="up" href="ch-client.html" title="Client-side proxies">
8 <link rel="prev" href="telepathy-glib-connection-caps.html" title="Connection Capabilities interface">
8 <link rel="prev" href="telepathy-glib-connection-simple-presence.html" title="Connection SimplePresence interface">
99 <link rel="next" href="telepathy-glib-channel.html" title="TpChannel">
1010 <meta name="generator" content="GTK-Doc V1.10 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
2020 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
2121 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
2222 <tr valign="middle">
23 <td><a accesskey="p" href="telepathy-glib-connection-caps.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
23 <td><a accesskey="p" href="telepathy-glib-connection-simple-presence.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
2424 <td><a accesskey="u" href="ch-client.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
2525 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
2626 <th width="100%" align="center">telepathy-glib Reference Manual</th>
0 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4 <title>Connection SimplePresence interface</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
6 <link rel="start" href="index.html" title="telepathy-glib Reference Manual">
7 <link rel="up" href="ch-client.html" title="Client-side proxies">
8 <link rel="prev" href="telepathy-glib-connection-caps.html" title="Connection Capabilities interface">
9 <link rel="next" href="telepathy-glib-connection-presence.html" title="Connection Presence interface">
10 <meta name="generator" content="GTK-Doc V1.10 (XML mode)">
11 <link rel="stylesheet" href="style.css" type="text/css">
12 <link rel="chapter" href="ch-dbus.html" title="General D-Bus support">
13 <link rel="chapter" href="ch-protocol.html" title="The Telepathy protocol">
14 <link rel="chapter" href="ch-client.html" title="Client-side proxies">
15 <link rel="chapter" href="ch-service-dbus.html" title="Service-side D-Bus interfaces">
16 <link rel="chapter" href="ch-service-base.html" title="Service-side implementation">
17 <link rel="chapter" href="ch-service-handles.html" title="Service-side handle repositories">
18 <link rel="chapter" href="ch-utilities.html" title="Utilities">
19 </head>
20 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
21 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
22 <tr valign="middle">
23 <td><a accesskey="p" href="telepathy-glib-connection-caps.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
24 <td><a accesskey="u" href="ch-client.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
25 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
26 <th width="100%" align="center">telepathy-glib Reference Manual</th>
27 <td><a accesskey="n" href="telepathy-glib-connection-presence.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
28 </tr>
29 <tr><td colspan="5" class="shortcuts"><nobr><a href="#telepathy-glib-connection-simple-presence.synopsis" class="shortcut">Top</a>
30  | 
31 <a href="#telepathy-glib-connection-simple-presence.description" class="shortcut">Description</a></nobr></td></tr>
32 </table>
33 <div class="refentry" lang="en">
34 <a name="telepathy-glib-connection-simple-presence"></a><div class="titlepage"></div>
35 <div class="refnamediv"><table width="100%"><tr>
36 <td valign="top">
37 <h2><span class="refentrytitle"><a name="telepathy-glib-connection-simple-presence.top_of_page"></a>Connection SimplePresence interface</span></h2>
38 <p>Connection SimplePresence interface — client-side wrappers for the SimplePresence interface</p>
39 </td>
40 <td valign="top" align="right"></td>
41 </tr></table></div>
42 <div class="refsynopsisdiv">
43 <a name="telepathy-glib-connection-simple-presence.synopsis"></a><h2>Synopsis</h2>
44 <pre class="synopsis">
45
46 #include &lt;telepathy-glib/connection.h&gt;
47
48 <a
49 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
50 >gboolean</a> <a class="link" href="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-run-get-presences" title="tp_cli_connection_interface_simple_presence_run_get_presences ()">tp_cli_connection_interface_simple_presence_run_get_presences</a>
51 (<a class="link" href="telepathy-glib-connection.html#TpConnection">TpConnection</a> *proxy,
52 <a
53 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"
54 >gint</a> timeout_ms,
55 const <a
56 href="/usr/share/gtk-doc/html/glib/glib-Arrays.html#GArray"
57 >GArray</a> *in_contacts,
58 <a
59 href="/usr/share/gtk-doc/html/glib/glib-Hash-Tables.html#GHashTable"
60 >GHashTable</a> **out_presence,
61 <a
62 href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"
63 >GError</a> **error,
64 <a
65 href="/usr/share/gtk-doc/html/glib/glib-The-Main-Event-Loop.html#GMainLoop"
66 >GMainLoop</a> **loop);
67 <a
68 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
69 >gboolean</a> <a class="link" href="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-run-set-presence" title="tp_cli_connection_interface_simple_presence_run_set_presence ()">tp_cli_connection_interface_simple_presence_run_set_presence</a>
70 (<a class="link" href="telepathy-glib-connection.html#TpConnection">TpConnection</a> *proxy,
71 <a
72 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"
73 >gint</a> timeout_ms,
74 const <a
75 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"
76 >gchar</a> *in_status,
77 const <a
78 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"
79 >gchar</a> *in_status_message,
80 <a
81 href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"
82 >GError</a> **error,
83 <a
84 href="/usr/share/gtk-doc/html/glib/glib-The-Main-Event-Loop.html#GMainLoop"
85 >GMainLoop</a> **loop);
86 <a class="link" href="telepathy-glib-proxy.html#TpProxyPendingCall" title="TpProxyPendingCall">TpProxyPendingCall</a>* <a class="link" href="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-call-get-presences" title="tp_cli_connection_interface_simple_presence_call_get_presences ()">tp_cli_connection_interface_simple_presence_call_get_presences</a>
87 (<a class="link" href="telepathy-glib-connection.html#TpConnection">TpConnection</a> *proxy,
88 <a
89 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"
90 >gint</a> timeout_ms,
91 const <a
92 href="/usr/share/gtk-doc/html/glib/glib-Arrays.html#GArray"
93 >GArray</a> *in_contacts,
94 <a class="link" href="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-callback-for-get-presences" title="tp_cli_connection_interface_simple_presence_callback_for_get_presences ()">tp_cli_connection_interface_simple_presence_callback_for_get_presences</a> callback,
95 <a
96 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
97 >gpointer</a> user_data,
98 <a
99 href="/usr/share/gtk-doc/html/glib/glib-Datasets.html#GDestroyNotify"
100 >GDestroyNotify</a> destroy,
101 <a
102 href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"
103 >GObject</a> *weak_object);
104 <a class="link" href="telepathy-glib-proxy.html#TpProxyPendingCall" title="TpProxyPendingCall">TpProxyPendingCall</a>* <a class="link" href="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-call-set-presence" title="tp_cli_connection_interface_simple_presence_call_set_presence ()">tp_cli_connection_interface_simple_presence_call_set_presence</a>
105 (<a class="link" href="telepathy-glib-connection.html#TpConnection">TpConnection</a> *proxy,
106 <a
107 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"
108 >gint</a> timeout_ms,
109 const <a
110 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"
111 >gchar</a> *in_status,
112 const <a
113 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"
114 >gchar</a> *in_status_message,
115 <a class="link" href="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-callback-for-set-presence" title="tp_cli_connection_interface_simple_presence_callback_for_set_presence ()">tp_cli_connection_interface_simple_presence_callback_for_set_presence</a> callback,
116 <a
117 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
118 >gpointer</a> user_data,
119 <a
120 href="/usr/share/gtk-doc/html/glib/glib-Datasets.html#GDestroyNotify"
121 >GDestroyNotify</a> destroy,
122 <a
123 href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"
124 >GObject</a> *weak_object);
125 void (<a class="link" href="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-callback-for-get-presences" title="tp_cli_connection_interface_simple_presence_callback_for_get_presences ()">*tp_cli_connection_interface_simple_presence_callback_for_get_presences</a>)
126 (<a class="link" href="telepathy-glib-connection.html#TpConnection">TpConnection</a> *proxy,
127 <a
128 href="/usr/share/gtk-doc/html/glib/glib-Hash-Tables.html#GHashTable"
129 >GHashTable</a> *out_presence,
130 const <a
131 href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"
132 >GError</a> *error,
133 <a
134 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
135 >gpointer</a> user_data,
136 <a
137 href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"
138 >GObject</a> *weak_object);
139 void (<a class="link" href="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-callback-for-set-presence" title="tp_cli_connection_interface_simple_presence_callback_for_set_presence ()">*tp_cli_connection_interface_simple_presence_callback_for_set_presence</a>)
140 (<a class="link" href="telepathy-glib-connection.html#TpConnection">TpConnection</a> *proxy,
141 const <a
142 href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"
143 >GError</a> *error,
144 <a
145 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
146 >gpointer</a> user_data,
147 <a
148 href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"
149 >GObject</a> *weak_object);
150 <a class="link" href="telepathy-glib-proxy.html#TpProxySignalConnection" title="TpProxySignalConnection">TpProxySignalConnection</a>* <a class="link" href="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-connect-to-presences-changed" title="tp_cli_connection_interface_simple_presence_connect_to_presences_changed ()">tp_cli_connection_interface_simple_presence_connect_to_presences_changed</a>
151 (<a class="link" href="telepathy-glib-connection.html#TpConnection">TpConnection</a> *proxy,
152 <a class="link" href="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-signal-callback-presences-changed" title="tp_cli_connection_interface_simple_presence_signal_callback_presences_changed ()">tp_cli_connection_interface_simple_presence_signal_callback_presences_changed</a> callback,
153 <a
154 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
155 >gpointer</a> user_data,
156 <a
157 href="/usr/share/gtk-doc/html/glib/glib-Datasets.html#GDestroyNotify"
158 >GDestroyNotify</a> destroy,
159 <a
160 href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"
161 >GObject</a> *weak_object,
162 <a
163 href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"
164 >GError</a> **error);
165 void (<a class="link" href="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-signal-callback-presences-changed" title="tp_cli_connection_interface_simple_presence_signal_callback_presences_changed ()">*tp_cli_connection_interface_simple_presence_signal_callback_presences_changed</a>)
166 (<a class="link" href="telepathy-glib-connection.html#TpConnection">TpConnection</a> *proxy,
167 <a
168 href="/usr/share/gtk-doc/html/glib/glib-Hash-Tables.html#GHashTable"
169 >GHashTable</a> *arg_presence,
170 <a
171 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
172 >gpointer</a> user_data,
173 <a
174 href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"
175 >GObject</a> *weak_object);
176 </pre>
177 </div>
178 <div class="refsect1" lang="en">
179 <a name="telepathy-glib-connection-simple-presence.description"></a><h2>Description</h2>
180 <p>
181 Most instant messaging protocols allow users to advertise their presence
182 status. In Telepathy, this is represented by the SimplePresence
183 interface, which lets applications advertise the presence status of the
184 local user, and query the presence status of their contacts.
185 </p>
186 <p>
187 This section documents the auto-generated C wrappers for the
188 SimplePresence interface, used with <a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a> objects.</p>
189 <p>
190
191 </p>
192 </div>
193 <div class="refsect1" lang="en">
194 <a name="telepathy-glib-connection-simple-presence.details"></a><h2>Details</h2>
195 <div class="refsect2" lang="en">
196 <a name="tp-cli-connection-interface-simple-presence-run-get-presences"></a><h3>tp_cli_connection_interface_simple_presence_run_get_presences ()</h3>
197 <pre class="programlisting"><a
198 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
199 >gboolean</a> tp_cli_connection_interface_simple_presence_run_get_presences
200 (<a class="link" href="telepathy-glib-connection.html#TpConnection">TpConnection</a> *proxy,
201 <a
202 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"
203 >gint</a> timeout_ms,
204 const <a
205 href="/usr/share/gtk-doc/html/glib/glib-Arrays.html#GArray"
206 >GArray</a> *in_contacts,
207 <a
208 href="/usr/share/gtk-doc/html/glib/glib-Hash-Tables.html#GHashTable"
209 >GHashTable</a> **out_presence,
210 <a
211 href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"
212 >GError</a> **error,
213 <a
214 href="/usr/share/gtk-doc/html/glib/glib-The-Main-Event-Loop.html#GMainLoop"
215 >GMainLoop</a> **loop);</pre>
216 <p>
217 Call the method GetPresences and run the main loop
218 until it returns. Before calling this method, you must
219 add a reference to any borrowed objects you need to keep,
220 and generally ensure that everything is in a consistent
221 state.
222 </p>
223 <p>
224 Get presence previously emitted by PresencesChanged for the given contacts. Data is returned in the same structure as the PresencesChanged signal; no additional network requests are made.</p>
225 <p>
226
227 </p>
228 <div class="variablelist"><table border="0">
229 <col align="left" valign="top">
230 <tbody>
231 <tr>
232 <td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
233 <td> A <a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a> or subclass
234 </td>
235 </tr>
236 <tr>
237 <td><p><span class="term"><em class="parameter"><code>timeout_ms</code></em> :</span></p></td>
238 <td> Timeout in milliseconds, or -1 for default
239 </td>
240 </tr>
241 <tr>
242 <td><p><span class="term"><em class="parameter"><code>in_contacts</code></em> :</span></p></td>
243 <td> Used to pass an 'in' argument: An array of the contacts whose presence should be obtained.
244 </td>
245 </tr>
246 <tr>
247 <td><p><span class="term"><em class="parameter"><code>out_presence</code></em> :</span></p></td>
248 <td> Used to return an 'out' argument if <a
249 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"
250 ><code class="literal">TRUE</code></a> is returned: &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;Presence information in the same format as for the &lt;tp:member-ref&gt;PresencesChanged&lt;/tp:member-ref&gt; signal. The returned mapping MUST include an entry for each contact in the method's argument.&lt;/p&gt; &lt;p&gt;The definition of the connection presence types Unknown and Offline means that if a connection manager will return Unknown for contacts not on the subscribe list, it MUST delay the reply to this method call until it has found out which contacts are, in fact, on the subscribe list.&lt;/p&gt;
251 </td>
252 </tr>
253 <tr>
254 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
255 <td> If not <a
256 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
257 ><code class="literal">NULL</code></a>, used to return errors if <a
258 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"
259 ><code class="literal">FALSE</code></a>
260 is returned
261 </td>
262 </tr>
263 <tr>
264 <td><p><span class="term"><em class="parameter"><code>loop</code></em> :</span></p></td>
265 <td> If not <a
266 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
267 ><code class="literal">NULL</code></a>, set before re-entering
268 the main loop, to point to a <a
269 href="/usr/share/gtk-doc/html/glib/glib-The-Main-Event-Loop.html#GMainLoop"
270 ><span class="type">GMainLoop</span></a>
271 which can be used to cancel this call with
272 <a
273 href="/usr/share/gtk-doc/html/glib/glib-The-Main-Event-Loop.html#g-main-loop-quit"
274 ><code class="function">g_main_loop_quit()</code></a>, causing a return of
275 <a
276 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"
277 ><code class="literal">FALSE</code></a> with <em class="parameter"><code>error</code></em> set to <a class="link" href="telepathy-glib-proxy.html#TP-DBUS-ERROR-CANCELLED:CAPS"><code class="literal">TP_DBUS_ERROR_CANCELLED</code></a>
278 </td>
279 </tr>
280 <tr>
281 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
282 <td> TRUE on success, FALSE and sets <em class="parameter"><code>error</code></em> on error
283 </td>
284 </tr>
285 </tbody>
286 </table></div>
287 </div>
288 <hr>
289 <div class="refsect2" lang="en">
290 <a name="tp-cli-connection-interface-simple-presence-run-set-presence"></a><h3>tp_cli_connection_interface_simple_presence_run_set_presence ()</h3>
291 <pre class="programlisting"><a
292 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
293 >gboolean</a> tp_cli_connection_interface_simple_presence_run_set_presence
294 (<a class="link" href="telepathy-glib-connection.html#TpConnection">TpConnection</a> *proxy,
295 <a
296 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"
297 >gint</a> timeout_ms,
298 const <a
299 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"
300 >gchar</a> *in_status,
301 const <a
302 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"
303 >gchar</a> *in_status_message,
304 <a
305 href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"
306 >GError</a> **error,
307 <a
308 href="/usr/share/gtk-doc/html/glib/glib-The-Main-Event-Loop.html#GMainLoop"
309 >GMainLoop</a> **loop);</pre>
310 <p>
311 Call the method SetPresence and run the main loop
312 until it returns. Before calling this method, you must
313 add a reference to any borrowed objects you need to keep,
314 and generally ensure that everything is in a consistent
315 state.
316 </p>
317 <p>
318 &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;Request that the presence status and status message are published for the connection. Changes will be indicated by &lt;tp:member-ref&gt;PresencesChanged&lt;/tp:member-ref&gt; signals being emitted.&lt;/p&gt; &lt;p&gt;This method may be called on a newly-created connection while it is still in the DISCONNECTED state, to request that when the connection connects, it will do so with the selected status.&lt;/p&gt; &lt;p&gt;In DISCONNECTED state the &lt;tp:member-ref&gt;Statuses&lt;/tp:member-ref&gt; property will indicate which statuses are allowed to be set while DISCONNECTED (none, if the Connection Manager doesn't allow this). This value MUST NOT be cached, as the set of allowed presences might change upon connecting.&lt;/p&gt;</p>
319 <p>
320
321 </p>
322 <div class="variablelist"><table border="0">
323 <col align="left" valign="top">
324 <tbody>
325 <tr>
326 <td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
327 <td> A <a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a> or subclass
328 </td>
329 </tr>
330 <tr>
331 <td><p><span class="term"><em class="parameter"><code>timeout_ms</code></em> :</span></p></td>
332 <td> Timeout in milliseconds, or -1 for default
333 </td>
334 </tr>
335 <tr>
336 <td><p><span class="term"><em class="parameter"><code>in_status</code></em> :</span></p></td>
337 <td> Used to pass an 'in' argument: &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;The string identifier of the desired status. Possible status identifiers are defined in the &lt;tp:member-ref&gt;Statuses&lt;/tp:member-ref&gt; property.&lt;/p&gt; &lt;p&gt;Clients MUST NOT set a status whose string value they do not recognise, even if its presence type in Statuses matches what the user requested.&lt;/p&gt; &lt;tp:rationale&gt; &lt;p&gt;Suppose a protocol has statuses that include 'phone' (of type BUSY) and 'in-a-meeting' (of type BUSY), but there is no generic 'busy' status.&lt;/p&gt; &lt;p&gt;If the user requests &amp;quot;Busy&amp;quot; status from a menu, a client author might be tempted to pick an arbitrary status that has type BUSY. However, on this protocol, neither of the choices would be appropriate, and incorrect information about the user would be conveyed.&lt;/p&gt; &lt;/tp:rationale&gt;
338 </td>
339 </tr>
340 <tr>
341 <td><p><span class="term"><em class="parameter"><code>in_status_message</code></em> :</span></p></td>
342 <td> Used to pass an 'in' argument: The status message associated with the current status.
343 </td>
344 </tr>
345 <tr>
346 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
347 <td> If not <a
348 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
349 ><code class="literal">NULL</code></a>, used to return errors if <a
350 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"
351 ><code class="literal">FALSE</code></a>
352 is returned
353 </td>
354 </tr>
355 <tr>
356 <td><p><span class="term"><em class="parameter"><code>loop</code></em> :</span></p></td>
357 <td> If not <a
358 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
359 ><code class="literal">NULL</code></a>, set before re-entering
360 the main loop, to point to a <a
361 href="/usr/share/gtk-doc/html/glib/glib-The-Main-Event-Loop.html#GMainLoop"
362 ><span class="type">GMainLoop</span></a>
363 which can be used to cancel this call with
364 <a
365 href="/usr/share/gtk-doc/html/glib/glib-The-Main-Event-Loop.html#g-main-loop-quit"
366 ><code class="function">g_main_loop_quit()</code></a>, causing a return of
367 <a
368 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"
369 ><code class="literal">FALSE</code></a> with <em class="parameter"><code>error</code></em> set to <a class="link" href="telepathy-glib-proxy.html#TP-DBUS-ERROR-CANCELLED:CAPS"><code class="literal">TP_DBUS_ERROR_CANCELLED</code></a>
370 </td>
371 </tr>
372 <tr>
373 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
374 <td> TRUE on success, FALSE and sets <em class="parameter"><code>error</code></em> on error
375 </td>
376 </tr>
377 </tbody>
378 </table></div>
379 </div>
380 <hr>
381 <div class="refsect2" lang="en">
382 <a name="tp-cli-connection-interface-simple-presence-call-get-presences"></a><h3>tp_cli_connection_interface_simple_presence_call_get_presences ()</h3>
383 <pre class="programlisting"><a class="link" href="telepathy-glib-proxy.html#TpProxyPendingCall" title="TpProxyPendingCall">TpProxyPendingCall</a>* tp_cli_connection_interface_simple_presence_call_get_presences
384 (<a class="link" href="telepathy-glib-connection.html#TpConnection">TpConnection</a> *proxy,
385 <a
386 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"
387 >gint</a> timeout_ms,
388 const <a
389 href="/usr/share/gtk-doc/html/glib/glib-Arrays.html#GArray"
390 >GArray</a> *in_contacts,
391 <a class="link" href="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-callback-for-get-presences" title="tp_cli_connection_interface_simple_presence_callback_for_get_presences ()">tp_cli_connection_interface_simple_presence_callback_for_get_presences</a> callback,
392 <a
393 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
394 >gpointer</a> user_data,
395 <a
396 href="/usr/share/gtk-doc/html/glib/glib-Datasets.html#GDestroyNotify"
397 >GDestroyNotify</a> destroy,
398 <a
399 href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"
400 >GObject</a> *weak_object);</pre>
401 <p>
402 Start a GetPresences method call.
403 </p>
404 <p>
405 Get presence previously emitted by PresencesChanged for the given contacts. Data is returned in the same structure as the PresencesChanged signal; no additional network requests are made.</p>
406 <p>
407
408 </p>
409 <div class="variablelist"><table border="0">
410 <col align="left" valign="top">
411 <tbody>
412 <tr>
413 <td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
414 <td> the <a class="link" href="telepathy-glib-proxy.html#TpProxy"><span class="type">TpProxy</span></a>
415 </td>
416 </tr>
417 <tr>
418 <td><p><span class="term"><em class="parameter"><code>timeout_ms</code></em> :</span></p></td>
419 <td> the timeout in milliseconds, or -1 to use the
420 default
421 </td>
422 </tr>
423 <tr>
424 <td><p><span class="term"><em class="parameter"><code>in_contacts</code></em> :</span></p></td>
425 <td> Used to pass an 'in' argument: An array of the contacts whose presence should be obtained.
426 </td>
427 </tr>
428 <tr>
429 <td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
430 <td> called when the method call succeeds or fails;
431 may be <a
432 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
433 ><code class="literal">NULL</code></a> to make a "fire and forget" call with no
434 reply tracking
435 </td>
436 </tr>
437 <tr>
438 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
439 <td> user-supplied data passed to the callback;
440 must be <a
441 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
442 ><code class="literal">NULL</code></a> if <em class="parameter"><code>callback</code></em> is <a
443 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
444 ><code class="literal">NULL</code></a>
445 </td>
446 </tr>
447 <tr>
448 <td><p><span class="term"><em class="parameter"><code>destroy</code></em> :</span></p></td>
449 <td> called with the user_data as argument, after the
450 call has succeeded, failed or been cancelled;
451 must be <a
452 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
453 ><code class="literal">NULL</code></a> if <em class="parameter"><code>callback</code></em> is <a
454 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
455 ><code class="literal">NULL</code></a>
456 </td>
457 </tr>
458 <tr>
459 <td><p><span class="term"><em class="parameter"><code>weak_object</code></em> :</span></p></td>
460 <td> If not <a
461 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
462 ><code class="literal">NULL</code></a>, a <a
463 href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"
464 ><span class="type">GObject</span></a> which will be
465 weakly referenced; if it is destroyed, this call
466 will automatically be cancelled. Must be <a
467 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
468 ><code class="literal">NULL</code></a> if
469 <em class="parameter"><code>callback</code></em> is <a
470 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
471 ><code class="literal">NULL</code></a>
472 </td>
473 </tr>
474 <tr>
475 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
476 <td> a <a class="link" href="telepathy-glib-proxy.html#TpProxyPendingCall" title="TpProxyPendingCall"><span class="type">TpProxyPendingCall</span></a> representing the call in
477 progress. It is borrowed from the object, and will become
478 invalid when the callback is called, the call is
479 cancelled or the <a class="link" href="telepathy-glib-proxy.html#TpProxy"><span class="type">TpProxy</span></a> becomes invalid.
480 </td>
481 </tr>
482 </tbody>
483 </table></div>
484 </div>
485 <hr>
486 <div class="refsect2" lang="en">
487 <a name="tp-cli-connection-interface-simple-presence-call-set-presence"></a><h3>tp_cli_connection_interface_simple_presence_call_set_presence ()</h3>
488 <pre class="programlisting"><a class="link" href="telepathy-glib-proxy.html#TpProxyPendingCall" title="TpProxyPendingCall">TpProxyPendingCall</a>* tp_cli_connection_interface_simple_presence_call_set_presence
489 (<a class="link" href="telepathy-glib-connection.html#TpConnection">TpConnection</a> *proxy,
490 <a
491 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"
492 >gint</a> timeout_ms,
493 const <a
494 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"
495 >gchar</a> *in_status,
496 const <a
497 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"
498 >gchar</a> *in_status_message,
499 <a class="link" href="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-callback-for-set-presence" title="tp_cli_connection_interface_simple_presence_callback_for_set_presence ()">tp_cli_connection_interface_simple_presence_callback_for_set_presence</a> callback,
500 <a
501 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
502 >gpointer</a> user_data,
503 <a
504 href="/usr/share/gtk-doc/html/glib/glib-Datasets.html#GDestroyNotify"
505 >GDestroyNotify</a> destroy,
506 <a
507 href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"
508 >GObject</a> *weak_object);</pre>
509 <p>
510 Start a SetPresence method call.
511 </p>
512 <p>
513 &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;Request that the presence status and status message are published for the connection. Changes will be indicated by &lt;tp:member-ref&gt;PresencesChanged&lt;/tp:member-ref&gt; signals being emitted.&lt;/p&gt; &lt;p&gt;This method may be called on a newly-created connection while it is still in the DISCONNECTED state, to request that when the connection connects, it will do so with the selected status.&lt;/p&gt; &lt;p&gt;In DISCONNECTED state the &lt;tp:member-ref&gt;Statuses&lt;/tp:member-ref&gt; property will indicate which statuses are allowed to be set while DISCONNECTED (none, if the Connection Manager doesn't allow this). This value MUST NOT be cached, as the set of allowed presences might change upon connecting.&lt;/p&gt;</p>
514 <p>
515
516 </p>
517 <div class="variablelist"><table border="0">
518 <col align="left" valign="top">
519 <tbody>
520 <tr>
521 <td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
522 <td> the <a class="link" href="telepathy-glib-proxy.html#TpProxy"><span class="type">TpProxy</span></a>
523 </td>
524 </tr>
525 <tr>
526 <td><p><span class="term"><em class="parameter"><code>timeout_ms</code></em> :</span></p></td>
527 <td> the timeout in milliseconds, or -1 to use the
528 default
529 </td>
530 </tr>
531 <tr>
532 <td><p><span class="term"><em class="parameter"><code>in_status</code></em> :</span></p></td>
533 <td> Used to pass an 'in' argument: &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;The string identifier of the desired status. Possible status identifiers are defined in the &lt;tp:member-ref&gt;Statuses&lt;/tp:member-ref&gt; property.&lt;/p&gt; &lt;p&gt;Clients MUST NOT set a status whose string value they do not recognise, even if its presence type in Statuses matches what the user requested.&lt;/p&gt; &lt;tp:rationale&gt; &lt;p&gt;Suppose a protocol has statuses that include 'phone' (of type BUSY) and 'in-a-meeting' (of type BUSY), but there is no generic 'busy' status.&lt;/p&gt; &lt;p&gt;If the user requests &amp;quot;Busy&amp;quot; status from a menu, a client author might be tempted to pick an arbitrary status that has type BUSY. However, on this protocol, neither of the choices would be appropriate, and incorrect information about the user would be conveyed.&lt;/p&gt; &lt;/tp:rationale&gt;
534 </td>
535 </tr>
536 <tr>
537 <td><p><span class="term"><em class="parameter"><code>in_status_message</code></em> :</span></p></td>
538 <td> Used to pass an 'in' argument: The status message associated with the current status.
539 </td>
540 </tr>
541 <tr>
542 <td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
543 <td> called when the method call succeeds or fails;
544 may be <a
545 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
546 ><code class="literal">NULL</code></a> to make a "fire and forget" call with no
547 reply tracking
548 </td>
549 </tr>
550 <tr>
551 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
552 <td> user-supplied data passed to the callback;
553 must be <a
554 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
555 ><code class="literal">NULL</code></a> if <em class="parameter"><code>callback</code></em> is <a
556 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
557 ><code class="literal">NULL</code></a>
558 </td>
559 </tr>
560 <tr>
561 <td><p><span class="term"><em class="parameter"><code>destroy</code></em> :</span></p></td>
562 <td> called with the user_data as argument, after the
563 call has succeeded, failed or been cancelled;
564 must be <a
565 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
566 ><code class="literal">NULL</code></a> if <em class="parameter"><code>callback</code></em> is <a
567 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
568 ><code class="literal">NULL</code></a>
569 </td>
570 </tr>
571 <tr>
572 <td><p><span class="term"><em class="parameter"><code>weak_object</code></em> :</span></p></td>
573 <td> If not <a
574 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
575 ><code class="literal">NULL</code></a>, a <a
576 href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"
577 ><span class="type">GObject</span></a> which will be
578 weakly referenced; if it is destroyed, this call
579 will automatically be cancelled. Must be <a
580 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
581 ><code class="literal">NULL</code></a> if
582 <em class="parameter"><code>callback</code></em> is <a
583 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
584 ><code class="literal">NULL</code></a>
585 </td>
586 </tr>
587 <tr>
588 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
589 <td> a <a class="link" href="telepathy-glib-proxy.html#TpProxyPendingCall" title="TpProxyPendingCall"><span class="type">TpProxyPendingCall</span></a> representing the call in
590 progress. It is borrowed from the object, and will become
591 invalid when the callback is called, the call is
592 cancelled or the <a class="link" href="telepathy-glib-proxy.html#TpProxy"><span class="type">TpProxy</span></a> becomes invalid.
593 </td>
594 </tr>
595 </tbody>
596 </table></div>
597 </div>
598 <hr>
599 <div class="refsect2" lang="en">
600 <a name="tp-cli-connection-interface-simple-presence-callback-for-get-presences"></a><h3>tp_cli_connection_interface_simple_presence_callback_for_get_presences ()</h3>
601 <pre class="programlisting">void (*tp_cli_connection_interface_simple_presence_callback_for_get_presences)
602 (<a class="link" href="telepathy-glib-connection.html#TpConnection">TpConnection</a> *proxy,
603 <a
604 href="/usr/share/gtk-doc/html/glib/glib-Hash-Tables.html#GHashTable"
605 >GHashTable</a> *out_presence,
606 const <a
607 href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"
608 >GError</a> *error,
609 <a
610 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
611 >gpointer</a> user_data,
612 <a
613 href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"
614 >GObject</a> *weak_object);</pre>
615 <p>
616 Signature of the callback called when a GetPresences method call
617 succeeds or fails.</p>
618 <p>
619
620 </p>
621 <div class="variablelist"><table border="0">
622 <col align="left" valign="top">
623 <tbody>
624 <tr>
625 <td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
626 <td> the proxy on which the call was made
627 </td>
628 </tr>
629 <tr>
630 <td><p><span class="term"><em class="parameter"><code>out_presence</code></em> :</span></p></td>
631 <td> Used to return an 'out' argument if <em class="parameter"><code>error</code></em> is <a
632 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
633 ><code class="literal">NULL</code></a>: &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;Presence information in the same format as for the &lt;tp:member-ref&gt;PresencesChanged&lt;/tp:member-ref&gt; signal. The returned mapping MUST include an entry for each contact in the method's argument.&lt;/p&gt; &lt;p&gt;The definition of the connection presence types Unknown and Offline means that if a connection manager will return Unknown for contacts not on the subscribe list, it MUST delay the reply to this method call until it has found out which contacts are, in fact, on the subscribe list.&lt;/p&gt;
634 </td>
635 </tr>
636 <tr>
637 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
638 <td> <a
639 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
640 ><code class="literal">NULL</code></a> on success, or an error on failure
641 </td>
642 </tr>
643 <tr>
644 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
645 <td> user-supplied data
646 </td>
647 </tr>
648 <tr>
649 <td><p><span class="term"><em class="parameter"><code>weak_object</code></em> :</span></p></td>
650 <td> user-supplied object
651 </td>
652 </tr>
653 </tbody>
654 </table></div>
655 </div>
656 <hr>
657 <div class="refsect2" lang="en">
658 <a name="tp-cli-connection-interface-simple-presence-callback-for-set-presence"></a><h3>tp_cli_connection_interface_simple_presence_callback_for_set_presence ()</h3>
659 <pre class="programlisting">void (*tp_cli_connection_interface_simple_presence_callback_for_set_presence)
660 (<a class="link" href="telepathy-glib-connection.html#TpConnection">TpConnection</a> *proxy,
661 const <a
662 href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"
663 >GError</a> *error,
664 <a
665 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
666 >gpointer</a> user_data,
667 <a
668 href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"
669 >GObject</a> *weak_object);</pre>
670 <p>
671 Signature of the callback called when a SetPresence method call
672 succeeds or fails.</p>
673 <p>
674
675 </p>
676 <div class="variablelist"><table border="0">
677 <col align="left" valign="top">
678 <tbody>
679 <tr>
680 <td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
681 <td> the proxy on which the call was made
682 </td>
683 </tr>
684 <tr>
685 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
686 <td> <a
687 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
688 ><code class="literal">NULL</code></a> on success, or an error on failure
689 </td>
690 </tr>
691 <tr>
692 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
693 <td> user-supplied data
694 </td>
695 </tr>
696 <tr>
697 <td><p><span class="term"><em class="parameter"><code>weak_object</code></em> :</span></p></td>
698 <td> user-supplied object
699 </td>
700 </tr>
701 </tbody>
702 </table></div>
703 </div>
704 <hr>
705 <div class="refsect2" lang="en">
706 <a name="tp-cli-connection-interface-simple-presence-connect-to-presences-changed"></a><h3>tp_cli_connection_interface_simple_presence_connect_to_presences_changed ()</h3>
707 <pre class="programlisting"><a class="link" href="telepathy-glib-proxy.html#TpProxySignalConnection" title="TpProxySignalConnection">TpProxySignalConnection</a>* tp_cli_connection_interface_simple_presence_connect_to_presences_changed
708 (<a class="link" href="telepathy-glib-connection.html#TpConnection">TpConnection</a> *proxy,
709 <a class="link" href="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-signal-callback-presences-changed" title="tp_cli_connection_interface_simple_presence_signal_callback_presences_changed ()">tp_cli_connection_interface_simple_presence_signal_callback_presences_changed</a> callback,
710 <a
711 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
712 >gpointer</a> user_data,
713 <a
714 href="/usr/share/gtk-doc/html/glib/glib-Datasets.html#GDestroyNotify"
715 >GDestroyNotify</a> destroy,
716 <a
717 href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"
718 >GObject</a> *weak_object,
719 <a
720 href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"
721 >GError</a> **error);</pre>
722 <p>
723 Connect a handler to the signal PresencesChanged.
724 </p>
725 <p>
726 This signal should be emitted when your own presence has been changed, or the presence of the member of any of the connection's channels has been changed.</p>
727 <p>
728
729 </p>
730 <div class="variablelist"><table border="0">
731 <col align="left" valign="top">
732 <tbody>
733 <tr>
734 <td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
735 <td> A <a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a> or subclass
736 </td>
737 </tr>
738 <tr>
739 <td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
740 <td> Callback to be called when the signal is
741 received
742 </td>
743 </tr>
744 <tr>
745 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
746 <td> User-supplied data for the callback
747 </td>
748 </tr>
749 <tr>
750 <td><p><span class="term"><em class="parameter"><code>destroy</code></em> :</span></p></td>
751 <td> Destructor for the user-supplied data, which
752 will be called when this signal is disconnected, or
753 before this function returns <a
754 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
755 ><code class="literal">NULL</code></a>
756 </td>
757 </tr>
758 <tr>
759 <td><p><span class="term"><em class="parameter"><code>weak_object</code></em> :</span></p></td>
760 <td> A <a
761 href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"
762 ><span class="type">GObject</span></a> which will be weakly referenced;
763 if it is destroyed, this callback will automatically be
764 disconnected
765 </td>
766 </tr>
767 <tr>
768 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
769 <td> If not <a
770 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
771 ><code class="literal">NULL</code></a>, used to raise an error if <a
772 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
773 ><code class="literal">NULL</code></a> is
774 returned
775 </td>
776 </tr>
777 <tr>
778 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
779 <td> a <a class="link" href="telepathy-glib-proxy.html#TpProxySignalConnection" title="TpProxySignalConnection"><span class="type">TpProxySignalConnection</span></a> containing all of the
780 above, which can be used to disconnect the signal; or
781 <a
782 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
783 ><code class="literal">NULL</code></a> if the proxy does not have the desired interface
784 or has become invalid.
785 </td>
786 </tr>
787 </tbody>
788 </table></div>
789 </div>
790 <hr>
791 <div class="refsect2" lang="en">
792 <a name="tp-cli-connection-interface-simple-presence-signal-callback-presences-changed"></a><h3>tp_cli_connection_interface_simple_presence_signal_callback_presences_changed ()</h3>
793 <pre class="programlisting">void (*tp_cli_connection_interface_simple_presence_signal_callback_presences_changed)
794 (<a class="link" href="telepathy-glib-connection.html#TpConnection">TpConnection</a> *proxy,
795 <a
796 href="/usr/share/gtk-doc/html/glib/glib-Hash-Tables.html#GHashTable"
797 >GHashTable</a> *arg_presence,
798 <a
799 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
800 >gpointer</a> user_data,
801 <a
802 href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"
803 >GObject</a> *weak_object);</pre>
804 <p>
805 Represents the signature of a callback for the signal PresencesChanged.</p>
806 <p>
807
808 </p>
809 <div class="variablelist"><table border="0">
810 <col align="left" valign="top">
811 <tbody>
812 <tr>
813 <td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
814 <td> The proxy on which <a class="link" href="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-connect-to-presences-changed" title="tp_cli_connection_interface_simple_presence_connect_to_presences_changed ()"><code class="function">tp_cli_connection_interface_simple_presence_connect_to_presences_changed()</code></a>
815 was called
816 </td>
817 </tr>
818 <tr>
819 <td><p><span class="term"><em class="parameter"><code>arg_presence</code></em> :</span></p></td>
820 <td> A dictionary of contact handles mapped to the status, presence type and status message.
821 </td>
822 </tr>
823 <tr>
824 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
825 <td> User-supplied data
826 </td>
827 </tr>
828 <tr>
829 <td><p><span class="term"><em class="parameter"><code>weak_object</code></em> :</span></p></td>
830 <td> User-supplied weakly referenced object
831 </td>
832 </tr>
833 </tbody>
834 </table></div>
835 </div>
836 </div>
837 <div class="refsect1" lang="en">
838 <a name="telepathy-glib-connection-simple-presence.see-also"></a><h2>See Also</h2>
839 <a class="link" href="telepathy-glib-connection.html#TpConnection"><span class="type">TpConnection</span></a>
840 </div>
841 </div>
842 <div class="footer">
843 <hr>
844 Generated by GTK-Doc V1.10</div>
845 </body>
846 </html>
18191819 Start a GetInterfaces method call.
18201820 </p>
18211821 <p>
1822 Get the optional interfaces supported by this connection.</p>
1822 &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;Get the optional interfaces supported by this connection. Before the connection status changes to CONNECTED, the return from this method may change at any time, but it is guaranteed that interfaces will only be added, not removed. After the connection status changes to CONNECTED, the return from this method cannot change further.&lt;/p&gt; &lt;p&gt;There is no explicit change notification; reasonable behaviour for a client would be to retrieve the interfaces list once initially, and once more when it becomes CONNECTED.&lt;/p&gt; &lt;tp:rationale&gt; &lt;p&gt;In some connection managers, certain capabilities of a connection are known to be implemented for all connections (e.g. support for SimplePresence), and some interfaces (like SimplePresence) can even be used before connecting. Other capabilities may or may not exist, depending on server functionality; by the time the connection goes CONNECTED, the connection manager is expected to have evaluated the server's functionality and enabled any extra interfaces for the remainder of the Connection's lifetime.&lt;/p&gt; &lt;/tp:rationale&gt;</p>
18231823 <p>
18241824
18251825 </p>
19211921 state.
19221922 </p>
19231923 <p>
1924 Get the optional interfaces supported by this connection.</p>
1924 &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;Get the optional interfaces supported by this connection. Before the connection status changes to CONNECTED, the return from this method may change at any time, but it is guaranteed that interfaces will only be added, not removed. After the connection status changes to CONNECTED, the return from this method cannot change further.&lt;/p&gt; &lt;p&gt;There is no explicit change notification; reasonable behaviour for a client would be to retrieve the interfaces list once initially, and once more when it becomes CONNECTED.&lt;/p&gt; &lt;tp:rationale&gt; &lt;p&gt;In some connection managers, certain capabilities of a connection are known to be implemented for all connections (e.g. support for SimplePresence), and some interfaces (like SimplePresence) can even be used before connecting. Other capabilities may or may not exist, depending on server functionality; by the time the connection goes CONNECTED, the connection manager is expected to have evaluated the server's functionality and enabled any extra interfaces for the remainder of the Connection's lifetime.&lt;/p&gt; &lt;/tp:rationale&gt;</p>
19251925 <p>
19261926
19271927 </p>
151151 <a
152152 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
153153 >gpointer</a> iface_data);
154 <a
155 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
156 >gboolean</a> <a class="link" href="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-get" title="tp_dbus_properties_mixin_get ()">tp_dbus_properties_mixin_get</a> (<a
157 href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"
158 >GObject</a> *self,
159 const <a
160 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"
161 >gchar</a> *interface_name,
162 const <a
163 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"
164 >gchar</a> *property_name,
165 <a
166 href="/usr/share/gtk-doc/html/gobject/gobject-Generic-values.html#GValue"
167 >GValue</a> *value,
168 <a
169 href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"
170 >GError</a> **error);
154171 </pre>
155172 </div>
156173 <div class="refsect1" lang="en">
948965 </tbody>
949966 </table></div>
950967 </div>
968 <hr>
969 <div class="refsect2" lang="en">
970 <a name="tp-dbus-properties-mixin-get"></a><h3>tp_dbus_properties_mixin_get ()</h3>
971 <pre class="programlisting"><a
972 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
973 >gboolean</a> tp_dbus_properties_mixin_get (<a
974 href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"
975 >GObject</a> *self,
976 const <a
977 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"
978 >gchar</a> *interface_name,
979 const <a
980 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"
981 >gchar</a> *property_name,
982 <a
983 href="/usr/share/gtk-doc/html/gobject/gobject-Generic-values.html#GValue"
984 >GValue</a> *value,
985 <a
986 href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"
987 >GError</a> **error);</pre>
988 <p>
989 Initialize <em class="parameter"><code>value</code></em> with the type of the property <em class="parameter"><code>property_name</code></em> on
990 <em class="parameter"><code>interface_name</code></em>, and write the value of that property into it as if
991 by calling the D-Bus method org.freedesktop.DBus.Properties.Get.
992 </p>
993 <p>
994 If Get would return a D-Bus error, <em class="parameter"><code>value</code></em> remains unset and <em class="parameter"><code>error</code></em>
995 is filled in instead.</p>
996 <p>
997
998 </p>
999 <div class="variablelist"><table border="0">
1000 <col align="left" valign="top">
1001 <tbody>
1002 <tr>
1003 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
1004 <td> an object with this mixin
1005 </td>
1006 </tr>
1007 <tr>
1008 <td><p><span class="term"><em class="parameter"><code>interface_name</code></em> :</span></p></td>
1009 <td> a D-Bus interface name
1010 </td>
1011 </tr>
1012 <tr>
1013 <td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
1014 <td> a D-Bus property name
1015 </td>
1016 </tr>
1017 <tr>
1018 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
1019 <td> an unset GValue (initialized to all zeroes)
1020 </td>
1021 </tr>
1022 <tr>
1023 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
1024 <td> used to return an error on failure
1025 </td>
1026 </tr>
1027 <tr>
1028 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1029 <td> <a
1030 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"
1031 ><code class="literal">TRUE</code></a> (filling <em class="parameter"><code>value</code></em>) on success, <a
1032 href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"
1033 ><code class="literal">FALSE</code></a> (setting <em class="parameter"><code>error</code></em>)
1034 on failure
1035 </td>
1036 </tr>
1037 </tbody>
1038 </table></div>
1039 <p class="since">Since 0.7.13
1040 </p>
1041 </div>
9511042 </div>
9521043 <div class="refsect1" lang="en">
9531044 <a name="telepathy-glib-dbus-properties-mixin.see-also"></a><h2>See Also</h2>
439439 TP_CONNECTION_PRESENCE_TYPE_EXTENDED_AWAY = 4,
440440 TP_CONNECTION_PRESENCE_TYPE_HIDDEN = 5,
441441 TP_CONNECTION_PRESENCE_TYPE_BUSY = 6,
442 TP_CONNECTION_PRESENCE_TYPE_UNKNOWN = 7,
443 TP_CONNECTION_PRESENCE_TYPE_ERROR = 8,
442444 } TpConnectionPresenceType;
443445 </pre>
444446 <p>
451453 <tbody>
452454 <tr>
453455 <td><p><a name="TP-CONNECTION-PRESENCE-TYPE-UNSET:CAPS"></a><span class="term"><code class="literal">TP_CONNECTION_PRESENCE_TYPE_UNSET</code></span></p></td>
454 <td> An invalid presence type used as a null value
456 <td> An invalid presence type used as a null value. This value MUST NOT appear in the result of GetStatuses, or in the Statuses property of the SimplePresence interface.
455457 </td>
456458 </tr>
457459 <tr>
482484 <tr>
483485 <td><p><a name="TP-CONNECTION-PRESENCE-TYPE-BUSY:CAPS"></a><span class="term"><code class="literal">TP_CONNECTION_PRESENCE_TYPE_BUSY</code></span></p></td>
484486 <td> Busy, Do Not Disturb.
487 </td>
488 </tr>
489 <tr>
490 <td><p><a name="TP-CONNECTION-PRESENCE-TYPE-UNKNOWN:CAPS"></a><span class="term"><code class="literal">TP_CONNECTION_PRESENCE_TYPE_UNKNOWN</code></span></p></td>
491 <td> Unknown, unable to determine presence for this contact, for example if the protocol only allows presence of subscribed contacts.
492 </td>
493 </tr>
494 <tr>
495 <td><p><a name="TP-CONNECTION-PRESENCE-TYPE-ERROR:CAPS"></a><span class="term"><code class="literal">TP_CONNECTION_PRESENCE_TYPE_ERROR</code></span></p></td>
496 <td> Error, an error occurred while trying to determine presence. The message, if set, is an error from the server.
485497 </td>
486498 </tr>
487499 </tbody>
11151127 </tr>
11161128 <tr>
11171129 <td><p><a name="TP-CHANNEL-GROUP-FLAG-HANDLE-OWNERS-NOT-AVAILABLE:CAPS"></a><span class="term"><code class="literal">TP_CHANNEL_GROUP_FLAG_HANDLE_OWNERS_NOT_AVAILABLE</code></span></p></td>
1118 <td> In rooms with channel specific handles (ie Channel_Specific_Handles flag is set), this flag indicates that none of the handle owners are available, and that GetHandleOwners method will always return 0 for channel members other than the self handle.
1130 <td> In rooms with channel specific handles (ie Channel_Specific_Handles flag is set), this flag indicates that no handle owners are available, apart from the owner of the SelfHandle. This used to be an important optimization to avoid repeated GetHandleOwners calls, before we introduced the HandleOwner property and HandleOwnerChanged signal.
11191131 </td>
11201132 </tr>
11211133 <tr>
5353 >GType</a> type);
5454 #define <a class="link" href="telepathy-glib-gtypes.html#TP-HASH-TYPE-STRING-STRING-MAP:CAPS" title="TP_HASH_TYPE_STRING_STRING_MAP">TP_HASH_TYPE_STRING_STRING_MAP</a>
5555 #define <a class="link" href="telepathy-glib-gtypes.html#TP-HASH-TYPE-STRING-VARIANT-MAP:CAPS" title="TP_HASH_TYPE_STRING_VARIANT_MAP">TP_HASH_TYPE_STRING_VARIANT_MAP</a>
56 #define <a class="link" href="telepathy-glib-gtypes.html#TP-HASH-TYPE-QUALIFIED-PROPERTY-VALUE-MAP:CAPS" title="TP_HASH_TYPE_QUALIFIED_PROPERTY_VALUE_MAP">TP_HASH_TYPE_QUALIFIED_PROPERTY_VALUE_MAP</a>
5657
5758 #define <a class="link" href="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-PARAM-SPEC:CAPS" title="TP_STRUCT_TYPE_PARAM_SPEC">TP_STRUCT_TYPE_PARAM_SPEC</a>
5859 #define <a class="link" href="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-PARAM-SPEC-LIST:CAPS" title="TP_ARRAY_TYPE_PARAM_SPEC_LIST">TP_ARRAY_TYPE_PARAM_SPEC_LIST</a>
7273 #define <a class="link" href="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-CAPABILITY-PAIR-LIST:CAPS" title="TP_ARRAY_TYPE_CAPABILITY_PAIR_LIST">TP_ARRAY_TYPE_CAPABILITY_PAIR_LIST</a>
7374 #define <a class="link" href="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-CONTACT-CAPABILITY:CAPS" title="TP_STRUCT_TYPE_CONTACT_CAPABILITY">TP_STRUCT_TYPE_CONTACT_CAPABILITY</a>
7475 #define <a class="link" href="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-CONTACT-CAPABILITY-LIST:CAPS" title="TP_ARRAY_TYPE_CONTACT_CAPABILITY_LIST">TP_ARRAY_TYPE_CONTACT_CAPABILITY_LIST</a>
76
77 #define <a class="link" href="telepathy-glib-gtypes.html#TP-HASH-TYPE-SIMPLE-CONTACT-PRESENCES:CAPS" title="TP_HASH_TYPE_SIMPLE_CONTACT_PRESENCES">TP_HASH_TYPE_SIMPLE_CONTACT_PRESENCES</a>
78 #define <a class="link" href="telepathy-glib-gtypes.html#TP-HASH-TYPE-SIMPLE-STATUS-SPEC-MAP:CAPS" title="TP_HASH_TYPE_SIMPLE_STATUS_SPEC_MAP">TP_HASH_TYPE_SIMPLE_STATUS_SPEC_MAP</a>
79 #define <a class="link" href="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-SIMPLE-PRESENCE:CAPS" title="TP_STRUCT_TYPE_SIMPLE_PRESENCE">TP_STRUCT_TYPE_SIMPLE_PRESENCE</a>
80 #define <a class="link" href="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-SIMPLE-STATUS-SPEC:CAPS" title="TP_STRUCT_TYPE_SIMPLE_STATUS_SPEC">TP_STRUCT_TYPE_SIMPLE_STATUS_SPEC</a>
7581
7682 #define <a class="link" href="telepathy-glib-gtypes.html#TP-HASH-TYPE-CONTACT-PRESENCES:CAPS" title="TP_HASH_TYPE_CONTACT_PRESENCES">TP_HASH_TYPE_CONTACT_PRESENCES</a>
7783 #define <a class="link" href="telepathy-glib-gtypes.html#TP-HASH-TYPE-MULTIPLE-STATUS-MAP:CAPS" title="TP_HASH_TYPE_MULTIPLE_STATUS_MAP">TP_HASH_TYPE_MULTIPLE_STATUS_MAP</a>
229235 </div>
230236 <hr>
231237 <div class="refsect2" lang="en">
238 <a name="TP-HASH-TYPE-QUALIFIED-PROPERTY-VALUE-MAP:CAPS"></a><h3>TP_HASH_TYPE_QUALIFIED_PROPERTY_VALUE_MAP</h3>
239 <pre class="programlisting">#define TP_HASH_TYPE_QUALIFIED_PROPERTY_VALUE_MAP</pre>
240 <p>
241 A mapping from strings representing D-Bus properties (by their namespaced names) to their values.
242 </p>
243 <p>
244 This macro expands to a call to a function
245 that returns the <a
246 href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"
247 ><span class="type">GType</span></a> of a <a
248 href="/usr/share/gtk-doc/html/glib/glib-Hash-Tables.html#GHashTable"
249 ><span class="type">GHashTable</span></a>
250 appropriate for representing a D-Bus
251 dictionary of signature
252 <code class="literal">a{sv}</code>.
253 </p>
254 <p>
255 Keys (D-Bus type <code class="literal">s</code>,
256 type <code class="literal">DBus_Qualified_Member</code>,
257 named <code class="literal">Key</code>):
258 A D-Bus interface name, followed by a dot and a D-Bus property name.
259 </p>
260 <p>
261 Values (D-Bus type <code class="literal">v</code>,
262 named <code class="literal">Value</code>):
263 The value of the property.</p>
264 <p>
265
266 </p>
267 </div>
268 <hr>
269 <div class="refsect2" lang="en">
232270 <a name="TP-STRUCT-TYPE-PARAM-SPEC:CAPS"></a><h3>TP_STRUCT_TYPE_PARAM_SPEC</h3>
233271 <pre class="programlisting">#define TP_STRUCT_TYPE_PARAM_SPEC</pre>
234272 <p>
643681 </div>
644682 <hr>
645683 <div class="refsect2" lang="en">
684 <a name="TP-HASH-TYPE-SIMPLE-CONTACT-PRESENCES:CAPS"></a><h3>TP_HASH_TYPE_SIMPLE_CONTACT_PRESENCES</h3>
685 <pre class="programlisting">#define TP_HASH_TYPE_SIMPLE_CONTACT_PRESENCES</pre>
686 <p>
687 Mapping returned by &lt;tp:member-ref&gt;GetPresences&lt;/tp:member-ref&gt; and signalled by &lt;tp:member-ref&gt;PresencesChanged&lt;/tp:member-ref&gt;, indicating the presence of a number of contacts.
688 </p>
689 <p>
690 This macro expands to a call to a function
691 that returns the <a
692 href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"
693 ><span class="type">GType</span></a> of a <a
694 href="/usr/share/gtk-doc/html/glib/glib-Hash-Tables.html#GHashTable"
695 ><span class="type">GHashTable</span></a>
696 appropriate for representing a D-Bus
697 dictionary of signature
698 <code class="literal">a{u(uss)}</code>.
699 </p>
700 <p>
701 Keys (D-Bus type <code class="literal">u</code>,
702 type <code class="literal">Contact_Handle</code>,
703 named <code class="literal">Contact</code>):
704 A contact
705 </p>
706 <p>
707 Values (D-Bus type <code class="literal">(uss)</code>,
708 type <code class="literal">Simple_Presence</code>,
709 named <code class="literal">Presence</code>):
710 The contact's presence</p>
711 <p>
712
713 </p>
714 </div>
715 <hr>
716 <div class="refsect2" lang="en">
717 <a name="TP-HASH-TYPE-SIMPLE-STATUS-SPEC-MAP:CAPS"></a><h3>TP_HASH_TYPE_SIMPLE_STATUS_SPEC_MAP</h3>
718 <pre class="programlisting">#define TP_HASH_TYPE_SIMPLE_STATUS_SPEC_MAP</pre>
719 <p>
720 A mapping describing possible statuses.
721 </p>
722 <p>
723 This macro expands to a call to a function
724 that returns the <a
725 href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"
726 ><span class="type">GType</span></a> of a <a
727 href="/usr/share/gtk-doc/html/glib/glib-Hash-Tables.html#GHashTable"
728 ><span class="type">GHashTable</span></a>
729 appropriate for representing a D-Bus
730 dictionary of signature
731 <code class="literal">a{s(ubb)}</code>.
732 </p>
733 <p>
734 Keys (D-Bus type <code class="literal">s</code>,
735 named <code class="literal">Identifier</code>):
736 The string identifier of this status.
737 </p>
738 <p>
739 Values (D-Bus type <code class="literal">(ubb)</code>,
740 type <code class="literal">Simple_Status_Spec</code>,
741 named <code class="literal">Spec</code>):
742 Details of this status.</p>
743 <p>
744
745 </p>
746 </div>
747 <hr>
748 <div class="refsect2" lang="en">
749 <a name="TP-STRUCT-TYPE-SIMPLE-PRESENCE:CAPS"></a><h3>TP_STRUCT_TYPE_SIMPLE_PRESENCE</h3>
750 <pre class="programlisting">#define TP_STRUCT_TYPE_SIMPLE_PRESENCE</pre>
751 <p>
752 A struct representing the presence of a contact.
753
754 </p>
755 <p>
756 This macro expands to a call to a function
757 that returns the <a
758 href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"
759 ><span class="type">GType</span></a> of a <a
760 href="/usr/share/gtk-doc/html/gobject/gobject-Value-arrays.html#GValueArray"
761 ><span class="type">GValueArray</span></a>
762 appropriate for representing a D-Bus struct
763 with signature <code class="literal">(uss)</code>.
764 </p>
765 <p>
766 Member 0 (D-Bus type <code class="literal">u</code>,
767 type <code class="literal">Connection_Presence_Type</code>,
768 named <code class="literal">Type</code>):
769 The presence type, e.g. Connection_Presence_Type_Away.
770 </p>
771 <p>
772 Member 1 (D-Bus type <code class="literal">s</code>,
773 named <code class="literal">Status</code>):
774 The string identifier of the status, e.g. &amp;quot;brb&amp;quot;, as defined in the &lt;tp:member-ref&gt;Statuses&lt;/tp:member-ref&gt; property.
775 </p>
776 <p>
777 Member 2 (D-Bus type <code class="literal">s</code>,
778 named <code class="literal">Status_Message</code>):
779 &lt;tp:docstring xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;p&gt;The user-defined status message, e.g. &amp;quot;Back soon!&amp;quot;.&lt;/p&gt; &lt;p&gt;Clients SHOULD set the status message for the local user to the empty string, unless the user has actually provided a specific message (i.e. one that conveys more information than the Status).&lt;/p&gt; &lt;p&gt;User interfaces SHOULD regard an empty status message as unset, and MAY replace it with a localized string corresponding to the Status or Type.&lt;/p&gt; &lt;tp:rationale&gt; Use case: Daf sets his status in Empathy by choosing the Welsh translation of &amp;quot;Available&amp;quot; from a menu. It is more informative for his English-speaking colleagues to see the English translation of &amp;quot;Available&amp;quot; (as localized by their own clients) than to see the Welsh version (which they don't understand anyway). &lt;/tp:rationale&gt;</p>
780 <p>
781
782 </p>
783 </div>
784 <hr>
785 <div class="refsect2" lang="en">
786 <a name="TP-STRUCT-TYPE-SIMPLE-STATUS-SPEC:CAPS"></a><h3>TP_STRUCT_TYPE_SIMPLE_STATUS_SPEC</h3>
787 <pre class="programlisting">#define TP_STRUCT_TYPE_SIMPLE_STATUS_SPEC</pre>
788 <p>
789 A struct containing information about a status.
790
791 </p>
792 <p>
793 This macro expands to a call to a function
794 that returns the <a
795 href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"
796 ><span class="type">GType</span></a> of a <a
797 href="/usr/share/gtk-doc/html/gobject/gobject-Value-arrays.html#GValueArray"
798 ><span class="type">GValueArray</span></a>
799 appropriate for representing a D-Bus struct
800 with signature <code class="literal">(ubb)</code>.
801 </p>
802 <p>
803 Member 0 (D-Bus type <code class="literal">u</code>,
804 type <code class="literal">Connection_Presence_Type</code>,
805 named <code class="literal">Type</code>):
806 The type of a presence. This SHOULD NOT be used as a way to set statuses that the client does not recognise (as explained in &lt;tp:member-ref&gt;SetPresence&lt;/tp:member-ref&gt;), but MAY be used to check that the client's assumptions about a particular status name match the connection manager's.
807 </p>
808 <p>
809 Member 1 (D-Bus type <code class="literal">b</code>,
810 named <code class="literal">May_Set_On_Self</code>):
811 If true, the user can set this status on themselves using &lt;tp:member-ref&gt;SetPresence&lt;/tp:member-ref&gt;.
812 </p>
813 <p>
814 Member 2 (D-Bus type <code class="literal">b</code>,
815 named <code class="literal">Can_Have_Message</code>):
816 If true, a non-empty message can be set for this status. Otherwise, the empty string is the only acceptable message. &lt;tp:rationale&gt; On IRC you can be Away with a status message, but if you are available you cannot set a status message. &lt;/tp:rationale&gt;</p>
817 <p>
818
819 </p>
820 </div>
821 <hr>
822 <div class="refsect2" lang="en">
646823 <a name="TP-HASH-TYPE-CONTACT-PRESENCES:CAPS"></a><h3>TP_HASH_TYPE_CONTACT_PRESENCES</h3>
647824 <pre class="programlisting">#define TP_HASH_TYPE_CONTACT_PRESENCES</pre>
648825 <p>
6363 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-AVATARS:CAPS" title="TP_IFACE_QUARK_CONNECTION_INTERFACE_AVATARS">TP_IFACE_QUARK_CONNECTION_INTERFACE_AVATARS</a>
6464 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-CAPABILITIES:CAPS" title="TP_IFACE_CONNECTION_INTERFACE_CAPABILITIES">TP_IFACE_CONNECTION_INTERFACE_CAPABILITIES</a>
6565 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-CAPABILITIES:CAPS" title="TP_IFACE_QUARK_CONNECTION_INTERFACE_CAPABILITIES">TP_IFACE_QUARK_CONNECTION_INTERFACE_CAPABILITIES</a>
66 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-SIMPLE-PRESENCE:CAPS" title="TP_IFACE_CONNECTION_INTERFACE_SIMPLE_PRESENCE">TP_IFACE_CONNECTION_INTERFACE_SIMPLE_PRESENCE</a>
67 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-SIMPLE-PRESENCE:CAPS" title="TP_IFACE_QUARK_CONNECTION_INTERFACE_SIMPLE_PRESENCE">TP_IFACE_QUARK_CONNECTION_INTERFACE_SIMPLE_PRESENCE</a>
6668 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-PRESENCE:CAPS" title="TP_IFACE_CONNECTION_INTERFACE_PRESENCE">TP_IFACE_CONNECTION_INTERFACE_PRESENCE</a>
6769 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-PRESENCE:CAPS" title="TP_IFACE_QUARK_CONNECTION_INTERFACE_PRESENCE">TP_IFACE_QUARK_CONNECTION_INTERFACE_PRESENCE</a>
6870 #define <a class="link" href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL:CAPS" title="TP_IFACE_CHANNEL">TP_IFACE_CHANNEL</a>
297299 </div>
298300 <hr>
299301 <div class="refsect2" lang="en">
302 <a name="TP-IFACE-CONNECTION-INTERFACE-SIMPLE-PRESENCE:CAPS"></a><h3>TP_IFACE_CONNECTION_INTERFACE_SIMPLE_PRESENCE</h3>
303 <pre class="programlisting">#define TP_IFACE_CONNECTION_INTERFACE_SIMPLE_PRESENCE</pre>
304 <p>
305 The interface name "org.freedesktop.Telepathy.Connection.Interface.SimplePresence"</p>
306 <p>
307
308 </p>
309 </div>
310 <hr>
311 <div class="refsect2" lang="en">
312 <a name="TP-IFACE-QUARK-CONNECTION-INTERFACE-SIMPLE-PRESENCE:CAPS"></a><h3>TP_IFACE_QUARK_CONNECTION_INTERFACE_SIMPLE_PRESENCE</h3>
313 <pre class="programlisting">#define TP_IFACE_QUARK_CONNECTION_INTERFACE_SIMPLE_PRESENCE</pre>
314 <p>
315 Expands to a call to a function that returns a quark for the interface name "org.freedesktop.Telepathy.Connection.Interface.SimplePresence"</p>
316 <p>
317
318 </p>
319 </div>
320 <hr>
321 <div class="refsect2" lang="en">
300322 <a name="TP-IFACE-CONNECTION-INTERFACE-PRESENCE:CAPS"></a><h3>TP_IFACE_CONNECTION_INTERFACE_PRESENCE</h3>
301323 <pre class="programlisting">#define TP_IFACE_CONNECTION_INTERFACE_PRESENCE</pre>
302324 <p>
283283 >guint</a> arg_reason);
284284
285285
286 <a class="link" href="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceSimplePresence" title="TpSvcConnectionInterfaceSimplePresence">TpSvcConnectionInterfaceSimplePresence</a>;
287 <a class="link" href="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceSimplePresenceClass" title="TpSvcConnectionInterfaceSimplePresenceClass">TpSvcConnectionInterfaceSimplePresenceClass</a>;
288 void <a class="link" href="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-emit-presences-changed" title="tp_svc_connection_interface_simple_presence_emit_presences_changed ()">tp_svc_connection_interface_simple_presence_emit_presences_changed</a>
289 (<a
290 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
291 >gpointer</a> instance,
292 <a
293 href="/usr/share/gtk-doc/html/glib/glib-Hash-Tables.html#GHashTable"
294 >GHashTable</a> *arg_presence);
295 void (<a class="link" href="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-get-presences-impl" title="tp_svc_connection_interface_simple_presence_get_presences_impl ()">*tp_svc_connection_interface_simple_presence_get_presences_impl</a>)
296 (<a class="link" href="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceSimplePresence" title="TpSvcConnectionInterfaceSimplePresence">TpSvcConnectionInterfaceSimplePresence</a> *self,
297 const <a
298 href="/usr/share/gtk-doc/html/glib/glib-Arrays.html#GArray"
299 >GArray</a> *in_contacts,
300 <a
301 href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGMethod.html#DBusGMethodInvocation"
302 >DBusGMethodInvocation</a> *context);
303 void <a class="link" href="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-implement-get-presences" title="tp_svc_connection_interface_simple_presence_implement_get_presences ()">tp_svc_connection_interface_simple_presence_implement_get_presences</a>
304 (<a class="link" href="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceSimplePresenceClass" title="TpSvcConnectionInterfaceSimplePresenceClass">TpSvcConnectionInterfaceSimplePresenceClass</a> *klass,
305 <a class="link" href="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-get-presences-impl" title="tp_svc_connection_interface_simple_presence_get_presences_impl ()">tp_svc_connection_interface_simple_presence_get_presences_impl</a> impl);
306 void <a class="link" href="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-implement-set-presence" title="tp_svc_connection_interface_simple_presence_implement_set_presence ()">tp_svc_connection_interface_simple_presence_implement_set_presence</a>
307 (<a class="link" href="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceSimplePresenceClass" title="TpSvcConnectionInterfaceSimplePresenceClass">TpSvcConnectionInterfaceSimplePresenceClass</a> *klass,
308 <a class="link" href="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-set-presence-impl" title="tp_svc_connection_interface_simple_presence_set_presence_impl ()">tp_svc_connection_interface_simple_presence_set_presence_impl</a> impl);
309 void <a class="link" href="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-return-from-get-presences" title="tp_svc_connection_interface_simple_presence_return_from_get_presences ()">tp_svc_connection_interface_simple_presence_return_from_get_presences</a>
310 (<a
311 href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGMethod.html#DBusGMethodInvocation"
312 >DBusGMethodInvocation</a> *context,
313 <a
314 href="/usr/share/gtk-doc/html/glib/glib-Hash-Tables.html#GHashTable"
315 >GHashTable</a> *out_presence);
316 void <a class="link" href="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-return-from-set-presence" title="tp_svc_connection_interface_simple_presence_return_from_set_presence ()">tp_svc_connection_interface_simple_presence_return_from_set_presence</a>
317 (<a
318 href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGMethod.html#DBusGMethodInvocation"
319 >DBusGMethodInvocation</a> *context);
320 void (<a class="link" href="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-set-presence-impl" title="tp_svc_connection_interface_simple_presence_set_presence_impl ()">*tp_svc_connection_interface_simple_presence_set_presence_impl</a>)
321 (<a class="link" href="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceSimplePresence" title="TpSvcConnectionInterfaceSimplePresence">TpSvcConnectionInterfaceSimplePresence</a> *self,
322 const <a
323 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"
324 >gchar</a> *in_status,
325 const <a
326 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"
327 >gchar</a> *in_status_message,
328 <a
329 href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGMethod.html#DBusGMethodInvocation"
330 >DBusGMethodInvocation</a> *context);
331
332
286333 <a class="link" href="telepathy-glib-svc-connection.html#TpSvcConnectionInterfacePresence" title="TpSvcConnectionInterfacePresence">TpSvcConnectionInterfacePresence</a>;
287334 <a class="link" href="telepathy-glib-svc-connection.html#TpSvcConnectionInterfacePresenceClass" title="TpSvcConnectionInterfacePresenceClass">TpSvcConnectionInterfacePresenceClass</a>;
288335 void (<a class="link" href="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-add-status-impl" title="tp_svc_connection_interface_presence_add_status_impl ()">*tp_svc_connection_interface_presence_add_status_impl</a>)
20112058 </div>
20122059 <hr>
20132060 <div class="refsect2" lang="en">
2061 <a name="TpSvcConnectionInterfaceSimplePresence"></a><h3>TpSvcConnectionInterfaceSimplePresence</h3>
2062 <pre class="programlisting">typedef struct _TpSvcConnectionInterfaceSimplePresence TpSvcConnectionInterfaceSimplePresence;</pre>
2063 <p>
2064 Dummy typedef representing any implementation of this interface.</p>
2065 <p>
2066
2067 </p>
2068 </div>
2069 <hr>
2070 <div class="refsect2" lang="en">
2071 <a name="TpSvcConnectionInterfaceSimplePresenceClass"></a><h3>TpSvcConnectionInterfaceSimplePresenceClass</h3>
2072 <pre class="programlisting">typedef struct _TpSvcConnectionInterfaceSimplePresenceClass TpSvcConnectionInterfaceSimplePresenceClass;</pre>
2073 <p>
2074 The class of TpSvcConnectionInterfaceSimplePresence.</p>
2075 <p>
2076
2077 </p>
2078 </div>
2079 <hr>
2080 <div class="refsect2" lang="en">
2081 <a name="tp-svc-connection-interface-simple-presence-emit-presences-changed"></a><h3>tp_svc_connection_interface_simple_presence_emit_presences_changed ()</h3>
2082 <pre class="programlisting">void tp_svc_connection_interface_simple_presence_emit_presences_changed
2083 (<a
2084 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
2085 >gpointer</a> instance,
2086 <a
2087 href="/usr/share/gtk-doc/html/glib/glib-Hash-Tables.html#GHashTable"
2088 >GHashTable</a> *arg_presence);</pre>
2089 <p>
2090 Type-safe wrapper around g_signal_emit to emit the
2091 PresencesChanged signal on interface org.freedesktop.Telepathy.Connection.Interface.SimplePresence.</p>
2092 <p>
2093
2094 </p>
2095 <div class="variablelist"><table border="0">
2096 <col align="left" valign="top">
2097 <tbody>
2098 <tr>
2099 <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td>
2100 <td> The object implementing this interface
2101 </td>
2102 </tr>
2103 <tr>
2104 <td><p><span class="term"><em class="parameter"><code>arg_presence</code></em> :</span></p></td>
2105 <td> GHashTable * (FIXME, generate documentation)
2106 </td>
2107 </tr>
2108 </tbody>
2109 </table></div>
2110 </div>
2111 <hr>
2112 <div class="refsect2" lang="en">
2113 <a name="tp-svc-connection-interface-simple-presence-get-presences-impl"></a><h3>tp_svc_connection_interface_simple_presence_get_presences_impl ()</h3>
2114 <pre class="programlisting">void (*tp_svc_connection_interface_simple_presence_get_presences_impl)
2115 (<a class="link" href="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceSimplePresence" title="TpSvcConnectionInterfaceSimplePresence">TpSvcConnectionInterfaceSimplePresence</a> *self,
2116 const <a
2117 href="/usr/share/gtk-doc/html/glib/glib-Arrays.html#GArray"
2118 >GArray</a> *in_contacts,
2119 <a
2120 href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGMethod.html#DBusGMethodInvocation"
2121 >DBusGMethodInvocation</a> *context);</pre>
2122 <p>
2123 The signature of an implementation of the D-Bus method
2124 GetPresences on interface org.freedesktop.Telepathy.Connection.Interface.SimplePresence.</p>
2125 <p>
2126
2127 </p>
2128 <div class="variablelist"><table border="0">
2129 <col align="left" valign="top">
2130 <tbody>
2131 <tr>
2132 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
2133 <td> The object implementing this interface
2134 </td>
2135 </tr>
2136 <tr>
2137 <td><p><span class="term"><em class="parameter"><code>in_contacts</code></em> :</span></p></td>
2138 <td> const GArray * (FIXME, generate documentation)
2139 </td>
2140 </tr>
2141 <tr>
2142 <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
2143 <td> Used to return values or throw an error
2144 </td>
2145 </tr>
2146 </tbody>
2147 </table></div>
2148 </div>
2149 <hr>
2150 <div class="refsect2" lang="en">
2151 <a name="tp-svc-connection-interface-simple-presence-implement-get-presences"></a><h3>tp_svc_connection_interface_simple_presence_implement_get_presences ()</h3>
2152 <pre class="programlisting">void tp_svc_connection_interface_simple_presence_implement_get_presences
2153 (<a class="link" href="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceSimplePresenceClass" title="TpSvcConnectionInterfaceSimplePresenceClass">TpSvcConnectionInterfaceSimplePresenceClass</a> *klass,
2154 <a class="link" href="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-get-presences-impl" title="tp_svc_connection_interface_simple_presence_get_presences_impl ()">tp_svc_connection_interface_simple_presence_get_presences_impl</a> impl);</pre>
2155 <p>
2156 Register an implementation for the GetPresences method in the vtable
2157 of an implementation of this interface. To be called from
2158 the interface init function.</p>
2159 <p>
2160
2161 </p>
2162 <div class="variablelist"><table border="0">
2163 <col align="left" valign="top">
2164 <tbody>
2165 <tr>
2166 <td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
2167 <td> A class whose instances implement this interface
2168 </td>
2169 </tr>
2170 <tr>
2171 <td><p><span class="term"><em class="parameter"><code>impl</code></em> :</span></p></td>
2172 <td> A callback used to implement the GetPresences D-Bus method
2173 </td>
2174 </tr>
2175 </tbody>
2176 </table></div>
2177 </div>
2178 <hr>
2179 <div class="refsect2" lang="en">
2180 <a name="tp-svc-connection-interface-simple-presence-implement-set-presence"></a><h3>tp_svc_connection_interface_simple_presence_implement_set_presence ()</h3>
2181 <pre class="programlisting">void tp_svc_connection_interface_simple_presence_implement_set_presence
2182 (<a class="link" href="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceSimplePresenceClass" title="TpSvcConnectionInterfaceSimplePresenceClass">TpSvcConnectionInterfaceSimplePresenceClass</a> *klass,
2183 <a class="link" href="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-set-presence-impl" title="tp_svc_connection_interface_simple_presence_set_presence_impl ()">tp_svc_connection_interface_simple_presence_set_presence_impl</a> impl);</pre>
2184 <p>
2185 Register an implementation for the SetPresence method in the vtable
2186 of an implementation of this interface. To be called from
2187 the interface init function.</p>
2188 <p>
2189
2190 </p>
2191 <div class="variablelist"><table border="0">
2192 <col align="left" valign="top">
2193 <tbody>
2194 <tr>
2195 <td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
2196 <td> A class whose instances implement this interface
2197 </td>
2198 </tr>
2199 <tr>
2200 <td><p><span class="term"><em class="parameter"><code>impl</code></em> :</span></p></td>
2201 <td> A callback used to implement the SetPresence D-Bus method
2202 </td>
2203 </tr>
2204 </tbody>
2205 </table></div>
2206 </div>
2207 <hr>
2208 <div class="refsect2" lang="en">
2209 <a name="tp-svc-connection-interface-simple-presence-return-from-get-presences"></a><h3>tp_svc_connection_interface_simple_presence_return_from_get_presences ()</h3>
2210 <pre class="programlisting">void tp_svc_connection_interface_simple_presence_return_from_get_presences
2211 (<a
2212 href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGMethod.html#DBusGMethodInvocation"
2213 >DBusGMethodInvocation</a> *context,
2214 <a
2215 href="/usr/share/gtk-doc/html/glib/glib-Hash-Tables.html#GHashTable"
2216 >GHashTable</a> *out_presence);</pre>
2217 <p>
2218 Return successfully by calling <a
2219 href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGMethod.html#dbus-g-method-return"
2220 ><code class="function">dbus_g_method_return()</code></a>.
2221 This inline function exists only to provide type-safety.</p>
2222 <p>
2223
2224 </p>
2225 <div class="variablelist"><table border="0">
2226 <col align="left" valign="top">
2227 <tbody>
2228 <tr>
2229 <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
2230 <td> The D-Bus method invocation context
2231 </td>
2232 </tr>
2233 <tr>
2234 <td><p><span class="term"><em class="parameter"><code>out_presence</code></em> :</span></p></td>
2235 <td> GHashTable * (FIXME, generate documentation)
2236 </td>
2237 </tr>
2238 </tbody>
2239 </table></div>
2240 </div>
2241 <hr>
2242 <div class="refsect2" lang="en">
2243 <a name="tp-svc-connection-interface-simple-presence-return-from-set-presence"></a><h3>tp_svc_connection_interface_simple_presence_return_from_set_presence ()</h3>
2244 <pre class="programlisting">void tp_svc_connection_interface_simple_presence_return_from_set_presence
2245 (<a
2246 href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGMethod.html#DBusGMethodInvocation"
2247 >DBusGMethodInvocation</a> *context);</pre>
2248 <p>
2249 Return successfully by calling <a
2250 href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGMethod.html#dbus-g-method-return"
2251 ><code class="function">dbus_g_method_return()</code></a>.
2252 This inline function exists only to provide type-safety.</p>
2253 <p>
2254
2255 </p>
2256 <div class="variablelist"><table border="0">
2257 <col align="left" valign="top">
2258 <tbody><tr>
2259 <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
2260 <td> The D-Bus method invocation context
2261 </td>
2262 </tr></tbody>
2263 </table></div>
2264 </div>
2265 <hr>
2266 <div class="refsect2" lang="en">
2267 <a name="tp-svc-connection-interface-simple-presence-set-presence-impl"></a><h3>tp_svc_connection_interface_simple_presence_set_presence_impl ()</h3>
2268 <pre class="programlisting">void (*tp_svc_connection_interface_simple_presence_set_presence_impl)
2269 (<a class="link" href="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceSimplePresence" title="TpSvcConnectionInterfaceSimplePresence">TpSvcConnectionInterfaceSimplePresence</a> *self,
2270 const <a
2271 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"
2272 >gchar</a> *in_status,
2273 const <a
2274 href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"
2275 >gchar</a> *in_status_message,
2276 <a
2277 href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGMethod.html#DBusGMethodInvocation"
2278 >DBusGMethodInvocation</a> *context);</pre>
2279 <p>
2280 The signature of an implementation of the D-Bus method
2281 SetPresence on interface org.freedesktop.Telepathy.Connection.Interface.SimplePresence.</p>
2282 <p>
2283
2284 </p>
2285 <div class="variablelist"><table border="0">
2286 <col align="left" valign="top">
2287 <tbody>
2288 <tr>
2289 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
2290 <td> The object implementing this interface
2291 </td>
2292 </tr>
2293 <tr>
2294 <td><p><span class="term"><em class="parameter"><code>in_status</code></em> :</span></p></td>
2295 <td> const gchar * (FIXME, generate documentation)
2296 </td>
2297 </tr>
2298 <tr>
2299 <td><p><span class="term"><em class="parameter"><code>in_status_message</code></em> :</span></p></td>
2300 <td> const gchar * (FIXME, generate documentation)
2301 </td>
2302 </tr>
2303 <tr>
2304 <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
2305 <td> Used to return values or throw an error
2306 </td>
2307 </tr>
2308 </tbody>
2309 </table></div>
2310 </div>
2311 <hr>
2312 <div class="refsect2" lang="en">
20142313 <a name="TpSvcConnectionInterfacePresence"></a><h3>TpSvcConnectionInterfacePresence</h3>
20152314 <pre class="programlisting">typedef struct _TpSvcConnectionInterfacePresence TpSvcConnectionInterfacePresence;</pre>
20162315 <p>
2424 <sub name="Connection Aliasing interface" link="telepathy-glib-connection-aliasing.html"/>
2525 <sub name="Connection Avatars interface" link="telepathy-glib-connection-avatars.html"/>
2626 <sub name="Connection Capabilities interface" link="telepathy-glib-connection-caps.html"/>
27 <sub name="Connection SimplePresence interface" link="telepathy-glib-connection-simple-presence.html"/>
2728 <sub name="Connection Presence interface" link="telepathy-glib-connection-presence.html"/>
2829 <sub name="TpChannel" link="telepathy-glib-channel.html"/>
2930 <sub name="Group interface on Channels" link="telepathy-glib-channel-group.html"/>
243244 <function name="TP_IFACE_QUARK_CONNECTION_INTERFACE_AVATARS" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-AVATARS:CAPS"/>
244245 <function name="TP_IFACE_CONNECTION_INTERFACE_CAPABILITIES" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-CAPABILITIES:CAPS"/>
245246 <function name="TP_IFACE_QUARK_CONNECTION_INTERFACE_CAPABILITIES" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-CAPABILITIES:CAPS"/>
247 <function name="TP_IFACE_CONNECTION_INTERFACE_SIMPLE_PRESENCE" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-SIMPLE-PRESENCE:CAPS"/>
248 <function name="TP_IFACE_QUARK_CONNECTION_INTERFACE_SIMPLE_PRESENCE" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-SIMPLE-PRESENCE:CAPS"/>
246249 <function name="TP_IFACE_CONNECTION_INTERFACE_PRESENCE" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-PRESENCE:CAPS"/>
247250 <function name="TP_IFACE_QUARK_CONNECTION_INTERFACE_PRESENCE" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-PRESENCE:CAPS"/>
248251 <function name="TP_IFACE_CHANNEL" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL:CAPS"/>
338341 <function name="tp_dbus_specialized_value_slice_new ()" link="telepathy-glib-gtypes.html#tp-dbus-specialized-value-slice-new"/>
339342 <function name="TP_HASH_TYPE_STRING_STRING_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-STRING-STRING-MAP:CAPS"/>
340343 <function name="TP_HASH_TYPE_STRING_VARIANT_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-STRING-VARIANT-MAP:CAPS"/>
344 <function name="TP_HASH_TYPE_QUALIFIED_PROPERTY_VALUE_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-QUALIFIED-PROPERTY-VALUE-MAP:CAPS"/>
341345 <function name="TP_STRUCT_TYPE_PARAM_SPEC" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-PARAM-SPEC:CAPS"/>
342346 <function name="TP_ARRAY_TYPE_PARAM_SPEC_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-PARAM-SPEC-LIST:CAPS"/>
343347 <function name="TP_STRUCT_TYPE_CHANNEL_INFO" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-CHANNEL-INFO:CAPS"/>
352356 <function name="TP_ARRAY_TYPE_CAPABILITY_PAIR_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-CAPABILITY-PAIR-LIST:CAPS"/>
353357 <function name="TP_STRUCT_TYPE_CONTACT_CAPABILITY" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-CONTACT-CAPABILITY:CAPS"/>
354358 <function name="TP_ARRAY_TYPE_CONTACT_CAPABILITY_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-CONTACT-CAPABILITY-LIST:CAPS"/>
359 <function name="TP_HASH_TYPE_SIMPLE_CONTACT_PRESENCES" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-SIMPLE-CONTACT-PRESENCES:CAPS"/>
360 <function name="TP_HASH_TYPE_SIMPLE_STATUS_SPEC_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-SIMPLE-STATUS-SPEC-MAP:CAPS"/>
361 <function name="TP_STRUCT_TYPE_SIMPLE_PRESENCE" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-SIMPLE-PRESENCE:CAPS"/>
362 <function name="TP_STRUCT_TYPE_SIMPLE_STATUS_SPEC" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-SIMPLE-STATUS-SPEC:CAPS"/>
355363 <function name="TP_HASH_TYPE_CONTACT_PRESENCES" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-CONTACT-PRESENCES:CAPS"/>
356364 <function name="TP_HASH_TYPE_MULTIPLE_STATUS_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-MULTIPLE-STATUS-MAP:CAPS"/>
357365 <function name="TP_HASH_TYPE_STATUS_SPEC_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-STATUS-SPEC-MAP:CAPS"/>
520528 <function name="tp_cli_connection_interface_capabilities_callback_for_get_capabilities ()" link="telepathy-glib-connection-caps.html#tp-cli-connection-interface-capabilities-callback-for-get-capabilities"/>
521529 <function name="tp_cli_connection_interface_capabilities_connect_to_capabilities_changed ()" link="telepathy-glib-connection-caps.html#tp-cli-connection-interface-capabilities-connect-to-capabilities-changed"/>
522530 <function name="tp_cli_connection_interface_capabilities_signal_callback_capabilities_changed ()" link="telepathy-glib-connection-caps.html#tp-cli-connection-interface-capabilities-signal-callback-capabilities-changed"/>
531 <function name="tp_cli_connection_interface_simple_presence_run_get_presences ()" link="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-run-get-presences"/>
532 <function name="tp_cli_connection_interface_simple_presence_run_set_presence ()" link="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-run-set-presence"/>
533 <function name="tp_cli_connection_interface_simple_presence_call_get_presences ()" link="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-call-get-presences"/>
534 <function name="tp_cli_connection_interface_simple_presence_call_set_presence ()" link="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-call-set-presence"/>
535 <function name="tp_cli_connection_interface_simple_presence_callback_for_get_presences ()" link="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-callback-for-get-presences"/>
536 <function name="tp_cli_connection_interface_simple_presence_callback_for_set_presence ()" link="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-callback-for-set-presence"/>
537 <function name="tp_cli_connection_interface_simple_presence_connect_to_presences_changed ()" link="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-connect-to-presences-changed"/>
538 <function name="tp_cli_connection_interface_simple_presence_signal_callback_presences_changed ()" link="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-signal-callback-presences-changed"/>
523539 <function name="tp_cli_connection_interface_presence_run_add_status ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-run-add-status"/>
524540 <function name="tp_cli_connection_interface_presence_run_clear_status ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-run-clear-status"/>
525541 <function name="tp_cli_connection_interface_presence_run_get_presence ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-run-get-presence"/>
10901106 <function name="tp_svc_connection_return_from_request_handles ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-return-from-request-handles"/>
10911107 <function name="tp_svc_connection_emit_new_channel ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-emit-new-channel"/>
10921108 <function name="tp_svc_connection_emit_status_changed ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-emit-status-changed"/>
1109 <function name="TpSvcConnectionInterfaceSimplePresence" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceSimplePresence"/>
1110 <function name="TpSvcConnectionInterfaceSimplePresenceClass" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceSimplePresenceClass"/>
1111 <function name="tp_svc_connection_interface_simple_presence_emit_presences_changed ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-emit-presences-changed"/>
1112 <function name="tp_svc_connection_interface_simple_presence_get_presences_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-get-presences-impl"/>
1113 <function name="tp_svc_connection_interface_simple_presence_implement_get_presences ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-implement-get-presences"/>
1114 <function name="tp_svc_connection_interface_simple_presence_implement_set_presence ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-implement-set-presence"/>
1115 <function name="tp_svc_connection_interface_simple_presence_return_from_get_presences ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-return-from-get-presences"/>
1116 <function name="tp_svc_connection_interface_simple_presence_return_from_set_presence ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-return-from-set-presence"/>
1117 <function name="tp_svc_connection_interface_simple_presence_set_presence_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-set-presence-impl"/>
10931118 <function name="TpSvcConnectionInterfacePresence" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfacePresence"/>
10941119 <function name="TpSvcConnectionInterfacePresenceClass" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfacePresenceClass"/>
10951120 <function name="tp_svc_connection_interface_presence_add_status_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-add-status-impl"/>
12881313 <function name="tp_dbus_properties_mixin_class_init ()" link="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-class-init"/>
12891314 <function name="tp_dbus_properties_mixin_implement_interface ()" link="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-implement-interface"/>
12901315 <function name="tp_dbus_properties_mixin_iface_init ()" link="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-iface-init"/>
1316 <function name="tp_dbus_properties_mixin_get ()" link="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-get"/>
12911317 <function name="struct TpPresenceStatusOptionalArgumentSpec" link="telepathy-glib-TpPresenceMixin.html#TpPresenceStatusOptionalArgumentSpec"/>
12921318 <function name="TpPresenceStatusSpec" link="telepathy-glib-TpPresenceMixin.html#TpPresenceStatusSpec"/>
12931319 <function name="TpPresenceMixinStatusAvailableFunc ()" link="telepathy-glib-TpPresenceMixin.html#TpPresenceMixinStatusAvailableFunc"/>
13041330 <function name="tp_presence_mixin_emit_presence_update ()" link="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-emit-presence-update"/>
13051331 <function name="tp_presence_mixin_emit_one_presence_update ()" link="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-emit-one-presence-update"/>
13061332 <function name="tp_presence_mixin_iface_init ()" link="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-iface-init"/>
1333 <function name="tp_presence_mixin_simple_presence_iface_init ()" link="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-simple-presence-iface-init"/>
1334 <function name="tp_presence_mixin_simple_presence_init_dbus_properties ()" link="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-simple-presence-init-dbus-properties"/>
13071335 <function name="TpPropertySignature" link="telepathy-glib-TpPropertiesMixin.html#TpPropertySignature"/>
13081336 <function name="TpProperty" link="telepathy-glib-TpPropertiesMixin.html#TpProperty"/>
13091337 <function name="TpPropertiesContext" link="telepathy-glib-TpPropertiesMixin.html#TpPropertiesContext"/>
13831411 <function name="tp_text_mixin_list_pending_messages ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-list-pending-messages"/>
13841412 <function name="tp_text_mixin_get_message_types ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-get-message-types"/>
13851413 <function name="tp_text_mixin_clear ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-clear"/>
1414 <function name="tp_text_mixin_has_pending_messages ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-has-pending-messages"/>
13861415 <function name="tp_text_mixin_iface_init ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-iface-init"/>
13871416 <function name="TpHandleRepoIface" link="telepathy-glib-handle-repo.html#TpHandleRepoIface-struct"/>
13881417 <function name="TpHandleRepoIfaceClass" link="telepathy-glib-handle-repo.html#TpHandleRepoIfaceClass"/>
2424 <sub name="Connection Aliasing interface" link="telepathy-glib-connection-aliasing.html"/>
2525 <sub name="Connection Avatars interface" link="telepathy-glib-connection-avatars.html"/>
2626 <sub name="Connection Capabilities interface" link="telepathy-glib-connection-caps.html"/>
27 <sub name="Connection SimplePresence interface" link="telepathy-glib-connection-simple-presence.html"/>
2728 <sub name="Connection Presence interface" link="telepathy-glib-connection-presence.html"/>
2829 <sub name="TpChannel" link="telepathy-glib-channel.html"/>
2930 <sub name="Group interface on Channels" link="telepathy-glib-channel-group.html"/>
243244 <keyword type="macro" name="TP_IFACE_QUARK_CONNECTION_INTERFACE_AVATARS" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-AVATARS:CAPS"/>
244245 <keyword type="macro" name="TP_IFACE_CONNECTION_INTERFACE_CAPABILITIES" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-CAPABILITIES:CAPS"/>
245246 <keyword type="macro" name="TP_IFACE_QUARK_CONNECTION_INTERFACE_CAPABILITIES" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-CAPABILITIES:CAPS"/>
247 <keyword type="macro" name="TP_IFACE_CONNECTION_INTERFACE_SIMPLE_PRESENCE" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-SIMPLE-PRESENCE:CAPS"/>
248 <keyword type="macro" name="TP_IFACE_QUARK_CONNECTION_INTERFACE_SIMPLE_PRESENCE" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-SIMPLE-PRESENCE:CAPS"/>
246249 <keyword type="macro" name="TP_IFACE_CONNECTION_INTERFACE_PRESENCE" link="telepathy-glib-interfaces.html#TP-IFACE-CONNECTION-INTERFACE-PRESENCE:CAPS"/>
247250 <keyword type="macro" name="TP_IFACE_QUARK_CONNECTION_INTERFACE_PRESENCE" link="telepathy-glib-interfaces.html#TP-IFACE-QUARK-CONNECTION-INTERFACE-PRESENCE:CAPS"/>
248251 <keyword type="macro" name="TP_IFACE_CHANNEL" link="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL:CAPS"/>
338341 <keyword type="function" name="tp_dbus_specialized_value_slice_new ()" link="telepathy-glib-gtypes.html#tp-dbus-specialized-value-slice-new"/>
339342 <keyword type="macro" name="TP_HASH_TYPE_STRING_STRING_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-STRING-STRING-MAP:CAPS"/>
340343 <keyword type="macro" name="TP_HASH_TYPE_STRING_VARIANT_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-STRING-VARIANT-MAP:CAPS"/>
344 <keyword type="macro" name="TP_HASH_TYPE_QUALIFIED_PROPERTY_VALUE_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-QUALIFIED-PROPERTY-VALUE-MAP:CAPS"/>
341345 <keyword type="macro" name="TP_STRUCT_TYPE_PARAM_SPEC" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-PARAM-SPEC:CAPS"/>
342346 <keyword type="macro" name="TP_ARRAY_TYPE_PARAM_SPEC_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-PARAM-SPEC-LIST:CAPS"/>
343347 <keyword type="macro" name="TP_STRUCT_TYPE_CHANNEL_INFO" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-CHANNEL-INFO:CAPS"/>
352356 <keyword type="macro" name="TP_ARRAY_TYPE_CAPABILITY_PAIR_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-CAPABILITY-PAIR-LIST:CAPS"/>
353357 <keyword type="macro" name="TP_STRUCT_TYPE_CONTACT_CAPABILITY" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-CONTACT-CAPABILITY:CAPS"/>
354358 <keyword type="macro" name="TP_ARRAY_TYPE_CONTACT_CAPABILITY_LIST" link="telepathy-glib-gtypes.html#TP-ARRAY-TYPE-CONTACT-CAPABILITY-LIST:CAPS"/>
359 <keyword type="macro" name="TP_HASH_TYPE_SIMPLE_CONTACT_PRESENCES" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-SIMPLE-CONTACT-PRESENCES:CAPS"/>
360 <keyword type="macro" name="TP_HASH_TYPE_SIMPLE_STATUS_SPEC_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-SIMPLE-STATUS-SPEC-MAP:CAPS"/>
361 <keyword type="macro" name="TP_STRUCT_TYPE_SIMPLE_PRESENCE" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-SIMPLE-PRESENCE:CAPS"/>
362 <keyword type="macro" name="TP_STRUCT_TYPE_SIMPLE_STATUS_SPEC" link="telepathy-glib-gtypes.html#TP-STRUCT-TYPE-SIMPLE-STATUS-SPEC:CAPS"/>
355363 <keyword type="macro" name="TP_HASH_TYPE_CONTACT_PRESENCES" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-CONTACT-PRESENCES:CAPS"/>
356364 <keyword type="macro" name="TP_HASH_TYPE_MULTIPLE_STATUS_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-MULTIPLE-STATUS-MAP:CAPS"/>
357365 <keyword type="macro" name="TP_HASH_TYPE_STATUS_SPEC_MAP" link="telepathy-glib-gtypes.html#TP-HASH-TYPE-STATUS-SPEC-MAP:CAPS"/>
520528 <keyword type="function" name="tp_cli_connection_interface_capabilities_callback_for_get_capabilities ()" link="telepathy-glib-connection-caps.html#tp-cli-connection-interface-capabilities-callback-for-get-capabilities"/>
521529 <keyword type="function" name="tp_cli_connection_interface_capabilities_connect_to_capabilities_changed ()" link="telepathy-glib-connection-caps.html#tp-cli-connection-interface-capabilities-connect-to-capabilities-changed"/>
522530 <keyword type="function" name="tp_cli_connection_interface_capabilities_signal_callback_capabilities_changed ()" link="telepathy-glib-connection-caps.html#tp-cli-connection-interface-capabilities-signal-callback-capabilities-changed"/>
531 <keyword type="function" name="tp_cli_connection_interface_simple_presence_run_get_presences ()" link="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-run-get-presences"/>
532 <keyword type="function" name="tp_cli_connection_interface_simple_presence_run_set_presence ()" link="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-run-set-presence"/>
533 <keyword type="function" name="tp_cli_connection_interface_simple_presence_call_get_presences ()" link="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-call-get-presences"/>
534 <keyword type="function" name="tp_cli_connection_interface_simple_presence_call_set_presence ()" link="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-call-set-presence"/>
535 <keyword type="function" name="tp_cli_connection_interface_simple_presence_callback_for_get_presences ()" link="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-callback-for-get-presences"/>
536 <keyword type="function" name="tp_cli_connection_interface_simple_presence_callback_for_set_presence ()" link="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-callback-for-set-presence"/>
537 <keyword type="function" name="tp_cli_connection_interface_simple_presence_connect_to_presences_changed ()" link="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-connect-to-presences-changed"/>
538 <keyword type="function" name="tp_cli_connection_interface_simple_presence_signal_callback_presences_changed ()" link="telepathy-glib-connection-simple-presence.html#tp-cli-connection-interface-simple-presence-signal-callback-presences-changed"/>
523539 <keyword type="function" name="tp_cli_connection_interface_presence_run_add_status ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-run-add-status"/>
524540 <keyword type="function" name="tp_cli_connection_interface_presence_run_clear_status ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-run-clear-status"/>
525541 <keyword type="function" name="tp_cli_connection_interface_presence_run_get_presence ()" link="telepathy-glib-connection-presence.html#tp-cli-connection-interface-presence-run-get-presence"/>
10901106 <keyword type="function" name="tp_svc_connection_return_from_request_handles ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-return-from-request-handles"/>
10911107 <keyword type="function" name="tp_svc_connection_emit_new_channel ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-emit-new-channel"/>
10921108 <keyword type="function" name="tp_svc_connection_emit_status_changed ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-emit-status-changed"/>
1109 <keyword type="struct" name="TpSvcConnectionInterfaceSimplePresence" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceSimplePresence"/>
1110 <keyword type="struct" name="TpSvcConnectionInterfaceSimplePresenceClass" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfaceSimplePresenceClass"/>
1111 <keyword type="function" name="tp_svc_connection_interface_simple_presence_emit_presences_changed ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-emit-presences-changed"/>
1112 <keyword type="function" name="tp_svc_connection_interface_simple_presence_get_presences_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-get-presences-impl"/>
1113 <keyword type="function" name="tp_svc_connection_interface_simple_presence_implement_get_presences ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-implement-get-presences"/>
1114 <keyword type="function" name="tp_svc_connection_interface_simple_presence_implement_set_presence ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-implement-set-presence"/>
1115 <keyword type="function" name="tp_svc_connection_interface_simple_presence_return_from_get_presences ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-return-from-get-presences"/>
1116 <keyword type="function" name="tp_svc_connection_interface_simple_presence_return_from_set_presence ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-return-from-set-presence"/>
1117 <keyword type="function" name="tp_svc_connection_interface_simple_presence_set_presence_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-simple-presence-set-presence-impl"/>
10931118 <keyword type="struct" name="TpSvcConnectionInterfacePresence" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfacePresence"/>
10941119 <keyword type="struct" name="TpSvcConnectionInterfacePresenceClass" link="telepathy-glib-svc-connection.html#TpSvcConnectionInterfacePresenceClass"/>
10951120 <keyword type="function" name="tp_svc_connection_interface_presence_add_status_impl ()" link="telepathy-glib-svc-connection.html#tp-svc-connection-interface-presence-add-status-impl"/>
12881313 <keyword type="function" name="tp_dbus_properties_mixin_class_init ()" link="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-class-init" since="0.7.3"/>
12891314 <keyword type="function" name="tp_dbus_properties_mixin_implement_interface ()" link="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-implement-interface"/>
12901315 <keyword type="function" name="tp_dbus_properties_mixin_iface_init ()" link="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-iface-init"/>
1316 <keyword type="function" name="tp_dbus_properties_mixin_get ()" link="telepathy-glib-dbus-properties-mixin.html#tp-dbus-properties-mixin-get" since="0.7.13"/>
12911317 <keyword type="struct" name="struct TpPresenceStatusOptionalArgumentSpec" link="telepathy-glib-TpPresenceMixin.html#TpPresenceStatusOptionalArgumentSpec"/>
12921318 <keyword type="struct" name="TpPresenceStatusSpec" link="telepathy-glib-TpPresenceMixin.html#TpPresenceStatusSpec"/>
12931319 <keyword type="function" name="TpPresenceMixinStatusAvailableFunc ()" link="telepathy-glib-TpPresenceMixin.html#TpPresenceMixinStatusAvailableFunc"/>
13041330 <keyword type="function" name="tp_presence_mixin_emit_presence_update ()" link="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-emit-presence-update"/>
13051331 <keyword type="function" name="tp_presence_mixin_emit_one_presence_update ()" link="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-emit-one-presence-update"/>
13061332 <keyword type="function" name="tp_presence_mixin_iface_init ()" link="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-iface-init"/>
1333 <keyword type="function" name="tp_presence_mixin_simple_presence_iface_init ()" link="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-simple-presence-iface-init" since="0.7.13"/>
1334 <keyword type="function" name="tp_presence_mixin_simple_presence_init_dbus_properties ()" link="telepathy-glib-TpPresenceMixin.html#tp-presence-mixin-simple-presence-init-dbus-properties" since="0.7.13"/>
13071335 <keyword type="struct" name="TpPropertySignature" link="telepathy-glib-TpPropertiesMixin.html#TpPropertySignature"/>
13081336 <keyword type="struct" name="TpProperty" link="telepathy-glib-TpPropertiesMixin.html#TpProperty"/>
13091337 <keyword type="struct" name="TpPropertiesContext" link="telepathy-glib-TpPropertiesMixin.html#TpPropertiesContext"/>
13831411 <keyword type="function" name="tp_text_mixin_list_pending_messages ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-list-pending-messages"/>
13841412 <keyword type="function" name="tp_text_mixin_get_message_types ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-get-message-types"/>
13851413 <keyword type="function" name="tp_text_mixin_clear ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-clear"/>
1414 <keyword type="function" name="tp_text_mixin_has_pending_messages ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-has-pending-messages"/>
13861415 <keyword type="function" name="tp_text_mixin_iface_init ()" link="telepathy-glib-TpTextMixin.html#tp-text-mixin-iface-init"/>
13871416 <keyword type="struct" name="TpHandleRepoIface" link="telepathy-glib-handle-repo.html#TpHandleRepoIface-struct"/>
13881417 <keyword type="struct" name="TpHandleRepoIfaceClass" link="telepathy-glib-handle-repo.html#TpHandleRepoIfaceClass"/>
3131 <xi:include href="xml/connection-aliasing.xml"/>
3232 <xi:include href="xml/connection-avatars.xml"/>
3333 <xi:include href="xml/connection-caps.xml"/>
34 <xi:include href="xml/connection-simple-presence.xml"/>
3435 <xi:include href="xml/connection-presence.xml"/>
3536 <xi:include href="xml/channel.xml"/>
3637 <xi:include href="xml/channel-group.xml"/>
602602 TP_TYPE_SVC_CONNECTION
603603 tp_svc_connection_get_type
604604 TP_SVC_CONNECTION_GET_CLASS
605 <SUBSECTION>
606 TpSvcConnectionInterfaceSimplePresence
607 TpSvcConnectionInterfaceSimplePresenceClass
608 tp_svc_connection_interface_simple_presence_emit_presences_changed
609 tp_svc_connection_interface_simple_presence_get_presences_impl
610 tp_svc_connection_interface_simple_presence_implement_get_presences
611 tp_svc_connection_interface_simple_presence_implement_set_presence
612 tp_svc_connection_interface_simple_presence_return_from_get_presences
613 tp_svc_connection_interface_simple_presence_return_from_set_presence
614 tp_svc_connection_interface_simple_presence_set_presence_impl
615 <SUBSECTION Standard>
616 TP_TYPE_SVC_CONNECTION_INTERFACE_SIMPLE_PRESENCE
617 TP_SVC_CONNECTION_INTERFACE_SIMPLE_PRESENCE
618 TP_IS_SVC_CONNECTION_INTERFACE_SIMPLE_PRESENCE
619 tp_svc_connection_interface_simple_presence_get_type
620 TP_SVC_CONNECTION_INTERFACE_SIMPLE_PRESENCE_GET_CLASS
605621 <SUBSECTION>
606622 TpSvcConnectionInterfacePresence
607623 TpSvcConnectionInterfacePresenceClass
827843 tp_dbus_specialized_value_slice_new
828844 TP_HASH_TYPE_STRING_STRING_MAP
829845 TP_HASH_TYPE_STRING_VARIANT_MAP
846 TP_HASH_TYPE_QUALIFIED_PROPERTY_VALUE_MAP
830847 <SUBSECTION>
831848 # Connection Manager
832849 TP_STRUCT_TYPE_PARAM_SPEC
851868 TP_ARRAY_TYPE_CAPABILITY_PAIR_LIST
852869 TP_STRUCT_TYPE_CONTACT_CAPABILITY
853870 TP_ARRAY_TYPE_CONTACT_CAPABILITY_LIST
871 <SUBSECTION>
872 # Connection - SimplePresence
873 TP_HASH_TYPE_SIMPLE_CONTACT_PRESENCES
874 TP_HASH_TYPE_SIMPLE_STATUS_SPEC_MAP
875 TP_STRUCT_TYPE_SIMPLE_PRESENCE
876 TP_STRUCT_TYPE_SIMPLE_STATUS_SPEC
854877 <SUBSECTION>
855878 # Connection - Presence (0.16)
856879 TP_HASH_TYPE_CONTACT_PRESENCES
925948 tp_type_dbus_array_uv
926949 tp_type_dbus_hash_s_28ubba_7bss_7d_29
927950 tp_type_dbus_hash_sa_7bsv_7d
951 tp_type_dbus_hash_s_28ubb_29
928952 tp_type_dbus_hash_ss
929953 tp_type_dbus_hash_sv
930954 tp_type_dbus_hash_u_28ua_7bsa_7bsv_7d_7d_29
955 tp_type_dbus_hash_u_28uss_29
931956 tp_type_dbus_hash_uau
932957 tp_type_dbus_struct_osuu
933958 tp_type_dbus_struct_sq
935960 tp_type_dbus_struct_susv
936961 tp_type_dbus_struct_sy
937962 tp_type_dbus_struct_ua_7bsa_7bsv_7d_7d
963 tp_type_dbus_struct_ubb
938964 tp_type_dbus_struct_ubba_7bss_7d
939965 tp_type_dbus_struct_us
966 tp_type_dbus_struct_uss
940967 tp_type_dbus_struct_usa_7bsv_7d
941968 tp_type_dbus_struct_ussu
942969 tp_type_dbus_struct_usuu
10571084 tp_presence_mixin_emit_presence_update
10581085 tp_presence_mixin_emit_one_presence_update
10591086 tp_presence_mixin_iface_init
1087 tp_presence_mixin_simple_presence_iface_init
1088 tp_presence_mixin_simple_presence_init_dbus_properties
10601089 <SUBSECTION Private>
10611090 TP_PRESENCE_MIXIN_CLASS_OFFSET_QUARK
10621091 TP_PRESENCE_MIXIN_CLASS_OFFSET
12991328 tp_dbus_properties_mixin_class_init
13001329 tp_dbus_properties_mixin_implement_interface
13011330 tp_dbus_properties_mixin_iface_init
1331 tp_dbus_properties_mixin_get
13021332 </SECTION>
13031333
13041334 <SECTION>
13481378 tp_text_mixin_list_pending_messages
13491379 tp_text_mixin_get_message_types
13501380 tp_text_mixin_clear
1381 tp_text_mixin_has_pending_messages
13511382 tp_text_mixin_iface_init
13521383 <SUBSECTION Private>
13531384 TP_TEXT_MIXIN_CLASS_OFFSET_QUARK
14411472 TP_IFACE_QUARK_CONNECTION_INTERFACE_AVATARS
14421473 TP_IFACE_CONNECTION_INTERFACE_CAPABILITIES
14431474 TP_IFACE_QUARK_CONNECTION_INTERFACE_CAPABILITIES
1475 TP_IFACE_CONNECTION_INTERFACE_SIMPLE_PRESENCE
1476 TP_IFACE_QUARK_CONNECTION_INTERFACE_SIMPLE_PRESENCE
14441477 TP_IFACE_CONNECTION_INTERFACE_PRESENCE
14451478 TP_IFACE_QUARK_CONNECTION_INTERFACE_PRESENCE
14461479 TP_IFACE_CHANNEL
14951528 tp_iface_quark_connection_interface_aliasing
14961529 tp_iface_quark_connection_interface_avatars
14971530 tp_iface_quark_connection_interface_capabilities
1531 tp_iface_quark_connection_interface_simple_presence
14981532 tp_iface_quark_connection_interface_presence
14991533 tp_iface_quark_connection_manager
15001534 tp_iface_quark_dbus_daemon
19872021 tp_cli_connection_interface_capabilities_callback_for_get_capabilities
19882022 tp_cli_connection_interface_capabilities_connect_to_capabilities_changed
19892023 tp_cli_connection_interface_capabilities_signal_callback_capabilities_changed
2024 </SECTION>
2025
2026 <SECTION>
2027 <FILE>connection-simple-presence</FILE>
2028 <TITLE>connection-simple-presence</TITLE>
2029 <INCLUDE>telepathy-glib/connection.h</INCLUDE>
2030 tp_cli_connection_interface_simple_presence_run_get_presences
2031 tp_cli_connection_interface_simple_presence_run_set_presence
2032 tp_cli_connection_interface_simple_presence_call_get_presences
2033 tp_cli_connection_interface_simple_presence_call_set_presence
2034 tp_cli_connection_interface_simple_presence_callback_for_get_presences
2035 tp_cli_connection_interface_simple_presence_callback_for_set_presence
2036 tp_cli_connection_interface_simple_presence_connect_to_presences_changed
2037 tp_cli_connection_interface_simple_presence_signal_callback_presences_changed
19902038 </SECTION>
19912039
19922040 <SECTION>
0 <!-- ##### SECTION Title ##### -->
1 connection-simple-presence
2
3 <!-- ##### SECTION Short_Description ##### -->
4
5
6 <!-- ##### SECTION Long_Description ##### -->
7 <para>
8
9 </para>
10
11
12 <!-- ##### SECTION See_Also ##### -->
13 <para>
14
15 </para>
16
17
18 <!-- ##### SECTION Stability_Level ##### -->
19
20
21 <!-- ##### FUNCTION tp_cli_connection_interface_simple_presence_run_get_presences ##### -->
22 <para>
23
24 </para>
25
26 @proxy:
27 @timeout_ms:
28 @in_contacts:
29 @out_presence:
30 @error:
31 @loop:
32 @Returns:
33
34
35 <!-- ##### FUNCTION tp_cli_connection_interface_simple_presence_run_set_presence ##### -->
36 <para>
37
38 </para>
39
40 @proxy:
41 @timeout_ms:
42 @in_status:
43 @in_status_message:
44 @error:
45 @loop:
46 @Returns:
47
48
49 <!-- ##### FUNCTION tp_cli_connection_interface_simple_presence_call_get_presences ##### -->
50 <para>
51
52 </para>
53
54 @proxy:
55 @timeout_ms:
56 @in_contacts:
57 @callback:
58 @user_data:
59 @destroy:
60 @weak_object:
61 @Returns:
62
63
64 <!-- ##### FUNCTION tp_cli_connection_interface_simple_presence_call_set_presence ##### -->
65 <para>
66
67 </para>
68
69 @proxy:
70 @timeout_ms:
71 @in_status:
72 @in_status_message:
73 @callback:
74 @user_data:
75 @destroy:
76 @weak_object:
77 @Returns:
78
79
80 <!-- ##### USER_FUNCTION tp_cli_connection_interface_simple_presence_callback_for_get_presences ##### -->
81 <para>
82
83 </para>
84
85 @proxy:
86 @out_presence:
87 @error:
88 @user_data:
89 @weak_object:
90
91
92 <!-- ##### USER_FUNCTION tp_cli_connection_interface_simple_presence_callback_for_set_presence ##### -->
93 <para>
94
95 </para>
96
97 @proxy:
98 @error:
99 @user_data:
100 @weak_object:
101
102
103 <!-- ##### FUNCTION tp_cli_connection_interface_simple_presence_connect_to_presences_changed ##### -->
104 <para>
105
106 </para>
107
108 @proxy:
109 @callback:
110 @user_data:
111 @destroy:
112 @weak_object:
113 @error:
114 @Returns:
115
116
117 <!-- ##### USER_FUNCTION tp_cli_connection_interface_simple_presence_signal_callback_presences_changed ##### -->
118 <para>
119
120 </para>
121
122 @proxy:
123 @arg_presence:
124 @user_data:
125 @weak_object:
126
127
159159 @iface_data:
160160
161161
162 <!-- ##### FUNCTION tp_dbus_properties_mixin_get ##### -->
163 <para>
164
165 </para>
166
167 @self:
168 @interface_name:
169 @property_name:
170 @value:
171 @error:
172 @Returns:
173
174
114114 @TP_CONNECTION_PRESENCE_TYPE_EXTENDED_AWAY:
115115 @TP_CONNECTION_PRESENCE_TYPE_HIDDEN:
116116 @TP_CONNECTION_PRESENCE_TYPE_BUSY:
117 @TP_CONNECTION_PRESENCE_TYPE_UNKNOWN:
118 @TP_CONNECTION_PRESENCE_TYPE_ERROR:
117119
118120 <!-- ##### MACRO NUM_TP_CONNECTION_PRESENCE_TYPES ##### -->
119121 <para>
3939
4040
4141
42 <!-- ##### MACRO TP_HASH_TYPE_QUALIFIED_PROPERTY_VALUE_MAP ##### -->
43 <para>
44
45 </para>
46
47
48
4249 <!-- ##### MACRO TP_STRUCT_TYPE_PARAM_SPEC ##### -->
4350 <para>
4451
137144
138145
139146
147 <!-- ##### MACRO TP_HASH_TYPE_SIMPLE_CONTACT_PRESENCES ##### -->
148 <para>
149
150 </para>
151
152
153
154 <!-- ##### MACRO TP_HASH_TYPE_SIMPLE_STATUS_SPEC_MAP ##### -->
155 <para>
156
157 </para>
158
159
160
161 <!-- ##### MACRO TP_STRUCT_TYPE_SIMPLE_PRESENCE ##### -->
162 <para>
163
164 </para>
165
166
167
168 <!-- ##### MACRO TP_STRUCT_TYPE_SIMPLE_STATUS_SPEC ##### -->
169 <para>
170
171 </para>
172
173
174
140175 <!-- ##### MACRO TP_HASH_TYPE_CONTACT_PRESENCES ##### -->
141176 <para>
142177
142142
143143
144144
145 <!-- ##### MACRO TP_IFACE_CONNECTION_INTERFACE_SIMPLE_PRESENCE ##### -->
146 <para>
147
148 </para>
149
150
151
152 <!-- ##### MACRO TP_IFACE_QUARK_CONNECTION_INTERFACE_SIMPLE_PRESENCE ##### -->
153 <para>
154
155 </para>
156
157
158
145159 <!-- ##### MACRO TP_IFACE_CONNECTION_INTERFACE_PRESENCE ##### -->
146160 <para>
147161
166166 @iface_data:
167167
168168
169 <!-- ##### FUNCTION tp_presence_mixin_simple_presence_iface_init ##### -->
170 <para>
171
172 </para>
173
174 @g_iface:
175 @iface_data:
176
177
178 <!-- ##### FUNCTION tp_presence_mixin_simple_presence_init_dbus_properties ##### -->
179 <para>
180
181 </para>
182
183 @cls:
184
185
383383 @arg_reason:
384384
385385
386 <!-- ##### STRUCT TpSvcConnectionInterfaceSimplePresence ##### -->
387 <para>
388
389 </para>
390
391
392 <!-- ##### STRUCT TpSvcConnectionInterfaceSimplePresenceClass ##### -->
393 <para>
394
395 </para>
396
397
398 <!-- ##### FUNCTION tp_svc_connection_interface_simple_presence_emit_presences_changed ##### -->
399 <para>
400
401 </para>
402
403 @instance:
404 @arg_presence:
405
406
407 <!-- ##### USER_FUNCTION tp_svc_connection_interface_simple_presence_get_presences_impl ##### -->
408 <para>
409
410 </para>
411
412 @self:
413 @in_contacts:
414 @context:
415
416
417 <!-- ##### FUNCTION tp_svc_connection_interface_simple_presence_implement_get_presences ##### -->
418 <para>
419
420 </para>
421
422 @klass:
423 @impl:
424
425
426 <!-- ##### FUNCTION tp_svc_connection_interface_simple_presence_implement_set_presence ##### -->
427 <para>
428
429 </para>
430
431 @klass:
432 @impl:
433
434
435 <!-- ##### FUNCTION tp_svc_connection_interface_simple_presence_return_from_get_presences ##### -->
436 <para>
437
438 </para>
439
440 @context:
441 @out_presence:
442
443
444 <!-- ##### FUNCTION tp_svc_connection_interface_simple_presence_return_from_set_presence ##### -->
445 <para>
446
447 </para>
448
449 @context:
450
451
452 <!-- ##### USER_FUNCTION tp_svc_connection_interface_simple_presence_set_presence_impl ##### -->
453 <para>
454
455 </para>
456
457 @self:
458 @in_status:
459 @in_status_message:
460 @context:
461
462
386463 <!-- ##### STRUCT TpSvcConnectionInterfacePresence ##### -->
387464 <para>
388465
135135 @obj:
136136
137137
138 <!-- ##### FUNCTION tp_text_mixin_has_pending_messages ##### -->
139 <para>
140
141 </para>
142
143 @obj:
144 @first_sender:
145 @Returns:
146
147
138148 <!-- ##### FUNCTION tp_text_mixin_iface_init ##### -->
139149 <para>
140150
123123 state.
124124 </para>
125125 <para>
126 &lt;tp:docstring xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt; &lt;p&gt;Used by user interfaces to indicate which channel types they are able to handle on this connection. Because these may be provided by different client processes, this method accepts channel types to add and remove from the set already advertised on this connection. The type of advertised capabilities (create versus invite) is protocol-dependent and hence cannot be set by the this method. In the case of a client adding an already advertised channel type but with new channel type specific flags, the connection manager should simply add the new flags to the set of advertised capabilities.&lt;/p&gt; &lt;p&gt;Upon a successful invocation of this method, the CapabilitiesChanged signal will be emitted for the user&apos;s own handle (as returned by GetSelfHandle) the by the connection manager to indicate the changes that have been made. This signal should also be monitored to ensure that the set is kept accurate - for example, a client may remove capabilities or type specific capability flags when it exits which are still provided by another client.&lt;/p&gt;</para>
126 &lt;tp:docstring xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt; &lt;p&gt;Used by user interfaces to indicate which channel types they are able to handle on this connection. Because these may be provided by different client processes, this method accepts channel types to add and remove from the set already advertised on this connection. The type of advertised capabilities (create versus invite) is protocol-dependent and hence cannot be set by the this method. In the case of a client adding an already advertised channel type but with new channel type specific flags, the connection manager should simply add the new flags to the set of advertised capabilities.&lt;/p&gt; &lt;p&gt;Upon a successful invocation of this method, the CapabilitiesChanged signal will be emitted for the user&apos;s own handle (as returned by GetSelfHandle) by the connection manager to indicate the changes that have been made. This signal should also be monitored to ensure that the set is kept accurate - for example, a client may remove capabilities or type specific capability flags when it exits which are still provided by another client.&lt;/p&gt;</para>
127127 <para>
128128
129129 </para><variablelist role="params">
173173 state.
174174 </para>
175175 <para>
176 Returns an array of capabilities for the given contact handles, or the connection itself (where handle is zero).</para>
176 Returns an array of capabilities for the given contact handles.</para>
177177 <para>
178178
179179 </para><variablelist role="params">
184184 <listitem><simpara> Timeout in milliseconds, or -1 for default
185185 </simpara></listitem></varlistentry>
186186 <varlistentry><term><parameter>in_handles</parameter>&nbsp;:</term>
187 <listitem><simpara> Used to pass an 'in' argument: An array of contact handles for this connection, or zero to query capabilities available on the connection itself
187 <listitem><simpara> Used to pass an 'in' argument: &lt;tp:docstring xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt; &lt;p&gt;An array of contact handles for this connection.&lt;/p&gt; &lt;p&gt;This may include zero, which originally meant a query for capabilities available on the connection itself. This usage is deprecated; clients SHOULD NOT do this, and connection managers SHOULD proceed as though zero had not been present in this list.&lt;/p&gt;
188188 </simpara></listitem></varlistentry>
189189 <varlistentry><term><parameter>out0</parameter>&nbsp;:</term>
190 <listitem><simpara> Used to return an 'out' argument if <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> is returned: An array of structures containing: &lt;ul&gt; &lt;li&gt;an integer handle representing the contact&lt;/li&gt; &lt;li&gt;a string channel type&lt;/li&gt; &lt;li&gt;a bitwise OR of generic capability flags for the type&lt;/li&gt; &lt;li&gt;a bitwise OR of type specific capability flags for the type&lt;/li&gt; &lt;/ul&gt;
190 <listitem><simpara> Used to return an 'out' argument if <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> is returned: &lt;tp:docstring xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt; An array of structures containing: &lt;ul&gt; &lt;li&gt;an integer handle representing the contact&lt;/li&gt; &lt;li&gt;a string channel type&lt;/li&gt; &lt;li&gt;a bitwise OR of generic capability flags for the type&lt;/li&gt; &lt;li&gt;a bitwise OR of type specific capability flags for the type&lt;/li&gt; &lt;/ul&gt;
191191 </simpara></listitem></varlistentry>
192192 <varlistentry><term><parameter>error</parameter>&nbsp;:</term>
193193 <listitem><simpara> If not <link linkend="NULL:CAPS"><literal>NULL</literal></link>, used to return errors if <link linkend="FALSE:CAPS"><literal>FALSE</literal></link>
218218 Start a AdvertiseCapabilities method call.
219219 </para>
220220 <para>
221 &lt;tp:docstring xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt; &lt;p&gt;Used by user interfaces to indicate which channel types they are able to handle on this connection. Because these may be provided by different client processes, this method accepts channel types to add and remove from the set already advertised on this connection. The type of advertised capabilities (create versus invite) is protocol-dependent and hence cannot be set by the this method. In the case of a client adding an already advertised channel type but with new channel type specific flags, the connection manager should simply add the new flags to the set of advertised capabilities.&lt;/p&gt; &lt;p&gt;Upon a successful invocation of this method, the CapabilitiesChanged signal will be emitted for the user&apos;s own handle (as returned by GetSelfHandle) the by the connection manager to indicate the changes that have been made. This signal should also be monitored to ensure that the set is kept accurate - for example, a client may remove capabilities or type specific capability flags when it exits which are still provided by another client.&lt;/p&gt;</para>
221 &lt;tp:docstring xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt; &lt;p&gt;Used by user interfaces to indicate which channel types they are able to handle on this connection. Because these may be provided by different client processes, this method accepts channel types to add and remove from the set already advertised on this connection. The type of advertised capabilities (create versus invite) is protocol-dependent and hence cannot be set by the this method. In the case of a client adding an already advertised channel type but with new channel type specific flags, the connection manager should simply add the new flags to the set of advertised capabilities.&lt;/p&gt; &lt;p&gt;Upon a successful invocation of this method, the CapabilitiesChanged signal will be emitted for the user&apos;s own handle (as returned by GetSelfHandle) by the connection manager to indicate the changes that have been made. This signal should also be monitored to ensure that the set is kept accurate - for example, a client may remove capabilities or type specific capability flags when it exits which are still provided by another client.&lt;/p&gt;</para>
222222 <para>
223223
224224 </para><variablelist role="params">
275275 Start a GetCapabilities method call.
276276 </para>
277277 <para>
278 Returns an array of capabilities for the given contact handles, or the connection itself (where handle is zero).</para>
278 Returns an array of capabilities for the given contact handles.</para>
279279 <para>
280280
281281 </para><variablelist role="params">
287287 default
288288 </simpara></listitem></varlistentry>
289289 <varlistentry><term><parameter>in_handles</parameter>&nbsp;:</term>
290 <listitem><simpara> Used to pass an 'in' argument: An array of contact handles for this connection, or zero to query capabilities available on the connection itself
290 <listitem><simpara> Used to pass an 'in' argument: &lt;tp:docstring xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt; &lt;p&gt;An array of contact handles for this connection.&lt;/p&gt; &lt;p&gt;This may include zero, which originally meant a query for capabilities available on the connection itself. This usage is deprecated; clients SHOULD NOT do this, and connection managers SHOULD proceed as though zero had not been present in this list.&lt;/p&gt;
291291 </simpara></listitem></varlistentry>
292292 <varlistentry><term><parameter>callback</parameter>&nbsp;:</term>
293293 <listitem><simpara> called when the method call succeeds or fails;
363363 <listitem><simpara> the proxy on which the call was made
364364 </simpara></listitem></varlistentry>
365365 <varlistentry><term><parameter>out0</parameter>&nbsp;:</term>
366 <listitem><simpara> Used to return an 'out' argument if <parameter>error</parameter> is <link linkend="NULL:CAPS"><literal>NULL</literal></link>: An array of structures containing: &lt;ul&gt; &lt;li&gt;an integer handle representing the contact&lt;/li&gt; &lt;li&gt;a string channel type&lt;/li&gt; &lt;li&gt;a bitwise OR of generic capability flags for the type&lt;/li&gt; &lt;li&gt;a bitwise OR of type specific capability flags for the type&lt;/li&gt; &lt;/ul&gt;
366 <listitem><simpara> Used to return an 'out' argument if <parameter>error</parameter> is <link linkend="NULL:CAPS"><literal>NULL</literal></link>: &lt;tp:docstring xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt; An array of structures containing: &lt;ul&gt; &lt;li&gt;an integer handle representing the contact&lt;/li&gt; &lt;li&gt;a string channel type&lt;/li&gt; &lt;li&gt;a bitwise OR of generic capability flags for the type&lt;/li&gt; &lt;li&gt;a bitwise OR of type specific capability flags for the type&lt;/li&gt; &lt;/ul&gt;
367367 </simpara></listitem></varlistentry>
368368 <varlistentry><term><parameter>error</parameter>&nbsp;:</term>
369369 <listitem><simpara> <link linkend="NULL:CAPS"><literal>NULL</literal></link> on success, or an error on failure
388388 Connect a handler to the signal CapabilitiesChanged.
389389 </para>
390390 <para>
391 Announce that there has been a change of capabilities on the given handle, or on the connection itself if the handle is zero.</para>
391 &lt;tp:docstring xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt; &lt;p&gt;Announce that there has been a change of capabilities on the given handle.&lt;/p&gt; &lt;p&gt;If the handle is zero, the capabilities refer to the connection itself, in some poorly defined way. This usage is deprecated and clients should ignore it.&lt;/p&gt;</para>
392392 <para>
393393
394394 </para><variablelist role="params">
0 <?xml version="1.0"?>
1 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
2 "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
3 <refentry id="telepathy-glib-connection-simple-presence">
4 <refmeta>
5 <refentrytitle role="top_of_page" id="telepathy-glib-connection-simple-presence.top_of_page">Connection SimplePresence interface</refentrytitle>
6 <manvolnum>3</manvolnum>
7 <refmiscinfo>TELEPATHY-GLIB Library</refmiscinfo>
8 </refmeta>
9
10 <refnamediv>
11 <refname>Connection SimplePresence interface</refname>
12 <refpurpose>client-side wrappers for the SimplePresence interface</refpurpose>
13 <!--[<xref linkend="desc" endterm="desc.title"/>]-->
14 </refnamediv>
15
16 <refsynopsisdiv id="telepathy-glib-connection-simple-presence.synopsis" role="synopsis">
17 <title role="synopsis.title">Synopsis</title>
18
19 <synopsis>
20
21 #include &lt;telepathy-glib/connection.h&gt;
22
23 <link linkend="gboolean">gboolean</link> <link linkend="tp-cli-connection-interface-simple-presence-run-get-presences">tp_cli_connection_interface_simple_presence_run_get_presences</link>
24 (<link linkend="TpConnection">TpConnection</link> *proxy,
25 <link linkend="gint">gint</link> timeout_ms,
26 const <link linkend="GArray">GArray</link> *in_contacts,
27 <link linkend="GHashTable">GHashTable</link> **out_presence,
28 <link linkend="GError">GError</link> **error,
29 <link linkend="GMainLoop">GMainLoop</link> **loop);
30 <link linkend="gboolean">gboolean</link> <link linkend="tp-cli-connection-interface-simple-presence-run-set-presence">tp_cli_connection_interface_simple_presence_run_set_presence</link>
31 (<link linkend="TpConnection">TpConnection</link> *proxy,
32 <link linkend="gint">gint</link> timeout_ms,
33 const <link linkend="gchar">gchar</link> *in_status,
34 const <link linkend="gchar">gchar</link> *in_status_message,
35 <link linkend="GError">GError</link> **error,
36 <link linkend="GMainLoop">GMainLoop</link> **loop);
37 <link linkend="TpProxyPendingCall">TpProxyPendingCall</link>* <link linkend="tp-cli-connection-interface-simple-presence-call-get-presences">tp_cli_connection_interface_simple_presence_call_get_presences</link>
38 (<link linkend="TpConnection">TpConnection</link> *proxy,
39 <link linkend="gint">gint</link> timeout_ms,
40 const <link linkend="GArray">GArray</link> *in_contacts,
41 <link linkend="tp-cli-connection-interface-simple-presence-callback-for-get-presences">tp_cli_connection_interface_simple_presence_callback_for_get_presences</link> callback,
42 <link linkend="gpointer">gpointer</link> user_data,
43 <link linkend="GDestroyNotify">GDestroyNotify</link> destroy,
44 <link linkend="GObject">GObject</link> *weak_object);
45 <link linkend="TpProxyPendingCall">TpProxyPendingCall</link>* <link linkend="tp-cli-connection-interface-simple-presence-call-set-presence">tp_cli_connection_interface_simple_presence_call_set_presence</link>
46 (<link linkend="TpConnection">TpConnection</link> *proxy,
47 <link linkend="gint">gint</link> timeout_ms,
48 const <link linkend="gchar">gchar</link> *in_status,
49 const <link linkend="gchar">gchar</link> *in_status_message,
50 <link linkend="tp-cli-connection-interface-simple-presence-callback-for-set-presence">tp_cli_connection_interface_simple_presence_callback_for_set_presence</link> callback,
51 <link linkend="gpointer">gpointer</link> user_data,
52 <link linkend="GDestroyNotify">GDestroyNotify</link> destroy,
53 <link linkend="GObject">GObject</link> *weak_object);
54 <link linkend="void">void</link> (<link linkend="tp-cli-connection-interface-simple-presence-callback-for-get-presences">*tp_cli_connection_interface_simple_presence_callback_for_get_presences</link>)
55 (<link linkend="TpConnection">TpConnection</link> *proxy,
56 <link linkend="GHashTable">GHashTable</link> *out_presence,
57 const <link linkend="GError">GError</link> *error,
58 <link linkend="gpointer">gpointer</link> user_data,
59 <link linkend="GObject">GObject</link> *weak_object);
60 <link linkend="void">void</link> (<link linkend="tp-cli-connection-interface-simple-presence-callback-for-set-presence">*tp_cli_connection_interface_simple_presence_callback_for_set_presence</link>)
61 (<link linkend="TpConnection">TpConnection</link> *proxy,
62 const <link linkend="GError">GError</link> *error,
63 <link linkend="gpointer">gpointer</link> user_data,
64 <link linkend="GObject">GObject</link> *weak_object);
65 <link linkend="TpProxySignalConnection">TpProxySignalConnection</link>* <link linkend="tp-cli-connection-interface-simple-presence-connect-to-presences-changed">tp_cli_connection_interface_simple_presence_connect_to_presences_changed</link>
66 (<link linkend="TpConnection">TpConnection</link> *proxy,
67 <link linkend="tp-cli-connection-interface-simple-presence-signal-callback-presences-changed">tp_cli_connection_interface_simple_presence_signal_callback_presences_changed</link> callback,
68 <link linkend="gpointer">gpointer</link> user_data,
69 <link linkend="GDestroyNotify">GDestroyNotify</link> destroy,
70 <link linkend="GObject">GObject</link> *weak_object,
71 <link linkend="GError">GError</link> **error);
72 <link linkend="void">void</link> (<link linkend="tp-cli-connection-interface-simple-presence-signal-callback-presences-changed">*tp_cli_connection_interface_simple_presence_signal_callback_presences_changed</link>)
73 (<link linkend="TpConnection">TpConnection</link> *proxy,
74 <link linkend="GHashTable">GHashTable</link> *arg_presence,
75 <link linkend="gpointer">gpointer</link> user_data,
76 <link linkend="GObject">GObject</link> *weak_object);
77 </synopsis>
78 </refsynopsisdiv>
79
80
81
82
83
84
85
86
87
88 <refsect1 id="telepathy-glib-connection-simple-presence.description" role="desc">
89 <title role="desc.title">Description</title>
90 <para>
91 Most instant messaging protocols allow users to advertise their presence
92 status. In Telepathy, this is represented by the SimplePresence
93 interface, which lets applications advertise the presence status of the
94 local user, and query the presence status of their contacts.
95 </para>
96 <para>
97 This section documents the auto-generated C wrappers for the
98 SimplePresence interface, used with <link linkend="TpConnection"><type>TpConnection</type></link> objects.</para>
99 <para>
100
101 </para>
102 </refsect1>
103
104 <refsect1 id="telepathy-glib-connection-simple-presence.details" role="details">
105 <title role="details.title">Details</title>
106 <refsect2 id="tp-cli-connection-interface-simple-presence-run-get-presences" role="function">
107 <title>tp_cli_connection_interface_simple_presence_run_get_presences ()</title>
108 <indexterm zone="tp-cli-connection-interface-simple-presence-run-get-presences"><primary>tp_cli_connection_interface_simple_presence_run_get_presences</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> tp_cli_connection_interface_simple_presence_run_get_presences
109 (<link linkend="TpConnection">TpConnection</link> *proxy,
110 <link linkend="gint">gint</link> timeout_ms,
111 const <link linkend="GArray">GArray</link> *in_contacts,
112 <link linkend="GHashTable">GHashTable</link> **out_presence,
113 <link linkend="GError">GError</link> **error,
114 <link linkend="GMainLoop">GMainLoop</link> **loop);</programlisting>
115 <para>
116 Call the method GetPresences and run the main loop
117 until it returns. Before calling this method, you must
118 add a reference to any borrowed objects you need to keep,
119 and generally ensure that everything is in a consistent
120 state.
121 </para>
122 <para>
123 Get presence previously emitted by PresencesChanged for the given contacts. Data is returned in the same structure as the PresencesChanged signal; no additional network requests are made.</para>
124 <para>
125
126 </para><variablelist role="params">
127 <varlistentry><term><parameter>proxy</parameter>&nbsp;:</term>
128 <listitem><simpara> A <link linkend="TpConnection"><type>TpConnection</type></link> or subclass
129 </simpara></listitem></varlistentry>
130 <varlistentry><term><parameter>timeout_ms</parameter>&nbsp;:</term>
131 <listitem><simpara> Timeout in milliseconds, or -1 for default
132 </simpara></listitem></varlistentry>
133 <varlistentry><term><parameter>in_contacts</parameter>&nbsp;:</term>
134 <listitem><simpara> Used to pass an 'in' argument: An array of the contacts whose presence should be obtained.
135 </simpara></listitem></varlistentry>
136 <varlistentry><term><parameter>out_presence</parameter>&nbsp;:</term>
137 <listitem><simpara> Used to return an 'out' argument if <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> is returned: &lt;tp:docstring xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt; &lt;p&gt;Presence information in the same format as for the &lt;tp:member-ref&gt;PresencesChanged&lt;/tp:member-ref&gt; signal. The returned mapping MUST include an entry for each contact in the method&apos;s argument.&lt;/p&gt; &lt;p&gt;The definition of the connection presence types Unknown and Offline means that if a connection manager will return Unknown for contacts not on the subscribe list, it MUST delay the reply to this method call until it has found out which contacts are, in fact, on the subscribe list.&lt;/p&gt;
138 </simpara></listitem></varlistentry>
139 <varlistentry><term><parameter>error</parameter>&nbsp;:</term>
140 <listitem><simpara> If not <link linkend="NULL:CAPS"><literal>NULL</literal></link>, used to return errors if <link linkend="FALSE:CAPS"><literal>FALSE</literal></link>
141 is returned
142 </simpara></listitem></varlistentry>
143 <varlistentry><term><parameter>loop</parameter>&nbsp;:</term>
144 <listitem><simpara> If not <link linkend="NULL:CAPS"><literal>NULL</literal></link>, set before re-entering
145 the main loop, to point to a <link linkend="GMainLoop"><type>GMainLoop</type></link>
146 which can be used to cancel this call with
147 <link linkend="g-main-loop-quit"><function>g_main_loop_quit()</function></link>, causing a return of
148 <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> with <parameter>error</parameter> set to <link linkend="TP-DBUS-ERROR-CANCELLED:CAPS"><literal>TP_DBUS_ERROR_CANCELLED</literal></link>
149 </simpara></listitem></varlistentry>
150 <varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE on success, FALSE and sets <parameter>error</parameter> on error
151 </simpara></listitem></varlistentry>
152 </variablelist></refsect2>
153 <refsect2 id="tp-cli-connection-interface-simple-presence-run-set-presence" role="function">
154 <title>tp_cli_connection_interface_simple_presence_run_set_presence ()</title>
155 <indexterm zone="tp-cli-connection-interface-simple-presence-run-set-presence"><primary>tp_cli_connection_interface_simple_presence_run_set_presence</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> tp_cli_connection_interface_simple_presence_run_set_presence
156 (<link linkend="TpConnection">TpConnection</link> *proxy,
157 <link linkend="gint">gint</link> timeout_ms,
158 const <link linkend="gchar">gchar</link> *in_status,
159 const <link linkend="gchar">gchar</link> *in_status_message,
160 <link linkend="GError">GError</link> **error,
161 <link linkend="GMainLoop">GMainLoop</link> **loop);</programlisting>
162 <para>
163 Call the method SetPresence and run the main loop
164 until it returns. Before calling this method, you must
165 add a reference to any borrowed objects you need to keep,
166 and generally ensure that everything is in a consistent
167 state.
168 </para>
169 <para>
170 &lt;tp:docstring xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt; &lt;p&gt;Request that the presence status and status message are published for the connection. Changes will be indicated by &lt;tp:member-ref&gt;PresencesChanged&lt;/tp:member-ref&gt; signals being emitted.&lt;/p&gt; &lt;p&gt;This method may be called on a newly-created connection while it is still in the DISCONNECTED state, to request that when the connection connects, it will do so with the selected status.&lt;/p&gt; &lt;p&gt;In DISCONNECTED state the &lt;tp:member-ref&gt;Statuses&lt;/tp:member-ref&gt; property will indicate which statuses are allowed to be set while DISCONNECTED (none, if the Connection Manager doesn&apos;t allow this). This value MUST NOT be cached, as the set of allowed presences might change upon connecting.&lt;/p&gt;</para>
171 <para>
172
173 </para><variablelist role="params">
174 <varlistentry><term><parameter>proxy</parameter>&nbsp;:</term>
175 <listitem><simpara> A <link linkend="TpConnection"><type>TpConnection</type></link> or subclass
176 </simpara></listitem></varlistentry>
177 <varlistentry><term><parameter>timeout_ms</parameter>&nbsp;:</term>
178 <listitem><simpara> Timeout in milliseconds, or -1 for default
179 </simpara></listitem></varlistentry>
180 <varlistentry><term><parameter>in_status</parameter>&nbsp;:</term>
181 <listitem><simpara> Used to pass an 'in' argument: &lt;tp:docstring xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt; &lt;p&gt;The string identifier of the desired status. Possible status identifiers are defined in the &lt;tp:member-ref&gt;Statuses&lt;/tp:member-ref&gt; property.&lt;/p&gt; &lt;p&gt;Clients MUST NOT set a status whose string value they do not recognise, even if its presence type in Statuses matches what the user requested.&lt;/p&gt; &lt;tp:rationale&gt; &lt;p&gt;Suppose a protocol has statuses that include &apos;phone&apos; (of type BUSY) and &apos;in-a-meeting&apos; (of type BUSY), but there is no generic &apos;busy&apos; status.&lt;/p&gt; &lt;p&gt;If the user requests &amp;quot;Busy&amp;quot; status from a menu, a client author might be tempted to pick an arbitrary status that has type BUSY. However, on this protocol, neither of the choices would be appropriate, and incorrect information about the user would be conveyed.&lt;/p&gt; &lt;/tp:rationale&gt;
182 </simpara></listitem></varlistentry>
183 <varlistentry><term><parameter>in_status_message</parameter>&nbsp;:</term>
184 <listitem><simpara> Used to pass an 'in' argument: The status message associated with the current status.
185 </simpara></listitem></varlistentry>
186 <varlistentry><term><parameter>error</parameter>&nbsp;:</term>
187 <listitem><simpara> If not <link linkend="NULL:CAPS"><literal>NULL</literal></link>, used to return errors if <link linkend="FALSE:CAPS"><literal>FALSE</literal></link>
188 is returned
189 </simpara></listitem></varlistentry>
190 <varlistentry><term><parameter>loop</parameter>&nbsp;:</term>
191 <listitem><simpara> If not <link linkend="NULL:CAPS"><literal>NULL</literal></link>, set before re-entering
192 the main loop, to point to a <link linkend="GMainLoop"><type>GMainLoop</type></link>
193 which can be used to cancel this call with
194 <link linkend="g-main-loop-quit"><function>g_main_loop_quit()</function></link>, causing a return of
195 <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> with <parameter>error</parameter> set to <link linkend="TP-DBUS-ERROR-CANCELLED:CAPS"><literal>TP_DBUS_ERROR_CANCELLED</literal></link>
196 </simpara></listitem></varlistentry>
197 <varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE on success, FALSE and sets <parameter>error</parameter> on error
198 </simpara></listitem></varlistentry>
199 </variablelist></refsect2>
200 <refsect2 id="tp-cli-connection-interface-simple-presence-call-get-presences" role="function">
201 <title>tp_cli_connection_interface_simple_presence_call_get_presences ()</title>
202 <indexterm zone="tp-cli-connection-interface-simple-presence-call-get-presences"><primary>tp_cli_connection_interface_simple_presence_call_get_presences</primary></indexterm><programlisting><link linkend="TpProxyPendingCall">TpProxyPendingCall</link>* tp_cli_connection_interface_simple_presence_call_get_presences
203 (<link linkend="TpConnection">TpConnection</link> *proxy,
204 <link linkend="gint">gint</link> timeout_ms,
205 const <link linkend="GArray">GArray</link> *in_contacts,
206 <link linkend="tp-cli-connection-interface-simple-presence-callback-for-get-presences">tp_cli_connection_interface_simple_presence_callback_for_get_presences</link> callback,
207 <link linkend="gpointer">gpointer</link> user_data,
208 <link linkend="GDestroyNotify">GDestroyNotify</link> destroy,
209 <link linkend="GObject">GObject</link> *weak_object);</programlisting>
210 <para>
211 Start a GetPresences method call.
212 </para>
213 <para>
214 Get presence previously emitted by PresencesChanged for the given contacts. Data is returned in the same structure as the PresencesChanged signal; no additional network requests are made.</para>
215 <para>
216
217 </para><variablelist role="params">
218 <varlistentry><term><parameter>proxy</parameter>&nbsp;:</term>
219 <listitem><simpara> the <link linkend="TpProxy"><type>TpProxy</type></link>
220 </simpara></listitem></varlistentry>
221 <varlistentry><term><parameter>timeout_ms</parameter>&nbsp;:</term>
222 <listitem><simpara> the timeout in milliseconds, or -1 to use the
223 default
224 </simpara></listitem></varlistentry>
225 <varlistentry><term><parameter>in_contacts</parameter>&nbsp;:</term>
226 <listitem><simpara> Used to pass an 'in' argument: An array of the contacts whose presence should be obtained.
227 </simpara></listitem></varlistentry>
228 <varlistentry><term><parameter>callback</parameter>&nbsp;:</term>
229 <listitem><simpara> called when the method call succeeds or fails;
230 may be <link linkend="NULL:CAPS"><literal>NULL</literal></link> to make a "fire and forget" call with no
231 reply tracking
232 </simpara></listitem></varlistentry>
233 <varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
234 <listitem><simpara> user-supplied data passed to the callback;
235 must be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if <parameter>callback</parameter> is <link linkend="NULL:CAPS"><literal>NULL</literal></link>
236 </simpara></listitem></varlistentry>
237 <varlistentry><term><parameter>destroy</parameter>&nbsp;:</term>
238 <listitem><simpara> called with the user_data as argument, after the
239 call has succeeded, failed or been cancelled;
240 must be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if <parameter>callback</parameter> is <link linkend="NULL:CAPS"><literal>NULL</literal></link>
241 </simpara></listitem></varlistentry>
242 <varlistentry><term><parameter>weak_object</parameter>&nbsp;:</term>
243 <listitem><simpara> If not <link linkend="NULL:CAPS"><literal>NULL</literal></link>, a <link linkend="GObject"><type>GObject</type></link> which will be
244 weakly referenced; if it is destroyed, this call
245 will automatically be cancelled. Must be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if
246 <parameter>callback</parameter> is <link linkend="NULL:CAPS"><literal>NULL</literal></link>
247 </simpara></listitem></varlistentry>
248 <varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> a <link linkend="TpProxyPendingCall"><type>TpProxyPendingCall</type></link> representing the call in
249 progress. It is borrowed from the object, and will become
250 invalid when the callback is called, the call is
251 cancelled or the <link linkend="TpProxy"><type>TpProxy</type></link> becomes invalid.
252 </simpara></listitem></varlistentry>
253 </variablelist></refsect2>
254 <refsect2 id="tp-cli-connection-interface-simple-presence-call-set-presence" role="function">
255 <title>tp_cli_connection_interface_simple_presence_call_set_presence ()</title>
256 <indexterm zone="tp-cli-connection-interface-simple-presence-call-set-presence"><primary>tp_cli_connection_interface_simple_presence_call_set_presence</primary></indexterm><programlisting><link linkend="TpProxyPendingCall">TpProxyPendingCall</link>* tp_cli_connection_interface_simple_presence_call_set_presence
257 (<link linkend="TpConnection">TpConnection</link> *proxy,
258 <link linkend="gint">gint</link> timeout_ms,
259 const <link linkend="gchar">gchar</link> *in_status,
260 const <link linkend="gchar">gchar</link> *in_status_message,
261 <link linkend="tp-cli-connection-interface-simple-presence-callback-for-set-presence">tp_cli_connection_interface_simple_presence_callback_for_set_presence</link> callback,
262 <link linkend="gpointer">gpointer</link> user_data,
263 <link linkend="GDestroyNotify">GDestroyNotify</link> destroy,
264 <link linkend="GObject">GObject</link> *weak_object);</programlisting>
265 <para>
266 Start a SetPresence method call.
267 </para>
268 <para>
269 &lt;tp:docstring xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt; &lt;p&gt;Request that the presence status and status message are published for the connection. Changes will be indicated by &lt;tp:member-ref&gt;PresencesChanged&lt;/tp:member-ref&gt; signals being emitted.&lt;/p&gt; &lt;p&gt;This method may be called on a newly-created connection while it is still in the DISCONNECTED state, to request that when the connection connects, it will do so with the selected status.&lt;/p&gt; &lt;p&gt;In DISCONNECTED state the &lt;tp:member-ref&gt;Statuses&lt;/tp:member-ref&gt; property will indicate which statuses are allowed to be set while DISCONNECTED (none, if the Connection Manager doesn&apos;t allow this). This value MUST NOT be cached, as the set of allowed presences might change upon connecting.&lt;/p&gt;</para>
270 <para>
271
272 </para><variablelist role="params">
273 <varlistentry><term><parameter>proxy</parameter>&nbsp;:</term>
274 <listitem><simpara> the <link linkend="TpProxy"><type>TpProxy</type></link>
275 </simpara></listitem></varlistentry>
276 <varlistentry><term><parameter>timeout_ms</parameter>&nbsp;:</term>
277 <listitem><simpara> the timeout in milliseconds, or -1 to use the
278 default
279 </simpara></listitem></varlistentry>
280 <varlistentry><term><parameter>in_status</parameter>&nbsp;:</term>
281 <listitem><simpara> Used to pass an 'in' argument: &lt;tp:docstring xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt; &lt;p&gt;The string identifier of the desired status. Possible status identifiers are defined in the &lt;tp:member-ref&gt;Statuses&lt;/tp:member-ref&gt; property.&lt;/p&gt; &lt;p&gt;Clients MUST NOT set a status whose string value they do not recognise, even if its presence type in Statuses matches what the user requested.&lt;/p&gt; &lt;tp:rationale&gt; &lt;p&gt;Suppose a protocol has statuses that include &apos;phone&apos; (of type BUSY) and &apos;in-a-meeting&apos; (of type BUSY), but there is no generic &apos;busy&apos; status.&lt;/p&gt; &lt;p&gt;If the user requests &amp;quot;Busy&amp;quot; status from a menu, a client author might be tempted to pick an arbitrary status that has type BUSY. However, on this protocol, neither of the choices would be appropriate, and incorrect information about the user would be conveyed.&lt;/p&gt; &lt;/tp:rationale&gt;
282 </simpara></listitem></varlistentry>
283 <varlistentry><term><parameter>in_status_message</parameter>&nbsp;:</term>
284 <listitem><simpara> Used to pass an 'in' argument: The status message associated with the current status.
285 </simpara></listitem></varlistentry>
286 <varlistentry><term><parameter>callback</parameter>&nbsp;:</term>
287 <listitem><simpara> called when the method call succeeds or fails;
288 may be <link linkend="NULL:CAPS"><literal>NULL</literal></link> to make a "fire and forget" call with no
289 reply tracking
290 </simpara></listitem></varlistentry>
291 <varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
292 <listitem><simpara> user-supplied data passed to the callback;
293 must be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if <parameter>callback</parameter> is <link linkend="NULL:CAPS"><literal>NULL</literal></link>
294 </simpara></listitem></varlistentry>
295 <varlistentry><term><parameter>destroy</parameter>&nbsp;:</term>
296 <listitem><simpara> called with the user_data as argument, after the
297 call has succeeded, failed or been cancelled;
298 must be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if <parameter>callback</parameter> is <link linkend="NULL:CAPS"><literal>NULL</literal></link>
299 </simpara></listitem></varlistentry>
300 <varlistentry><term><parameter>weak_object</parameter>&nbsp;:</term>
301 <listitem><simpara> If not <link linkend="NULL:CAPS"><literal>NULL</literal></link>, a <link linkend="GObject"><type>GObject</type></link> which will be
302 weakly referenced; if it is destroyed, this call
303 will automatically be cancelled. Must be <link linkend="NULL:CAPS"><literal>NULL</literal></link> if
304 <parameter>callback</parameter> is <link linkend="NULL:CAPS"><literal>NULL</literal></link>
305 </simpara></listitem></varlistentry>
306 <varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> a <link linkend="TpProxyPendingCall"><type>TpProxyPendingCall</type></link> representing the call in
307 progress. It is borrowed from the object, and will become
308 invalid when the callback is called, the call is
309 cancelled or the <link linkend="TpProxy"><type>TpProxy</type></link> becomes invalid.
310 </simpara></listitem></varlistentry>
311 </variablelist></refsect2>
312 <refsect2 id="tp-cli-connection-interface-simple-presence-callback-for-get-presences" role="function">
313 <title>tp_cli_connection_interface_simple_presence_callback_for_get_presences ()</title>
314 <indexterm zone="tp-cli-connection-interface-simple-presence-callback-for-get-presences"><primary>tp_cli_connection_interface_simple_presence_callback_for_get_presences</primary></indexterm><programlisting><link linkend="void">void</link> (*tp_cli_connection_interface_simple_presence_callback_for_get_presences)
315 (<link linkend="TpConnection">TpConnection</link> *proxy,
316 <link linkend="GHashTable">GHashTable</link> *out_presence,
317 const <link linkend="GError">GError</link> *error,
318 <link linkend="gpointer">gpointer</link> user_data,
319 <link linkend="GObject">GObject</link> *weak_object);</programlisting>
320 <para>
321 Signature of the callback called when a GetPresences method call
322 succeeds or fails.</para>
323 <para>
324
325 </para><variablelist role="params">
326 <varlistentry><term><parameter>proxy</parameter>&nbsp;:</term>
327 <listitem><simpara> the proxy on which the call was made
328 </simpara></listitem></varlistentry>
329 <varlistentry><term><parameter>out_presence</parameter>&nbsp;:</term>
330 <listitem><simpara> Used to return an 'out' argument if <parameter>error</parameter> is <link linkend="NULL:CAPS"><literal>NULL</literal></link>: &lt;tp:docstring xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt; &lt;p&gt;Presence information in the same format as for the &lt;tp:member-ref&gt;PresencesChanged&lt;/tp:member-ref&gt; signal. The returned mapping MUST include an entry for each contact in the method&apos;s argument.&lt;/p&gt; &lt;p&gt;The definition of the connection presence types Unknown and Offline means that if a connection manager will return Unknown for contacts not on the subscribe list, it MUST delay the reply to this method call until it has found out which contacts are, in fact, on the subscribe list.&lt;/p&gt;
331 </simpara></listitem></varlistentry>
332 <varlistentry><term><parameter>error</parameter>&nbsp;:</term>
333 <listitem><simpara> <link linkend="NULL:CAPS"><literal>NULL</literal></link> on success, or an error on failure
334 </simpara></listitem></varlistentry>
335 <varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
336 <listitem><simpara> user-supplied data
337 </simpara></listitem></varlistentry>
338 <varlistentry><term><parameter>weak_object</parameter>&nbsp;:</term>
339 <listitem><simpara> user-supplied object
340 </simpara></listitem></varlistentry>
341 </variablelist></refsect2>
342 <refsect2 id="tp-cli-connection-interface-simple-presence-callback-for-set-presence" role="function">
343 <title>tp_cli_connection_interface_simple_presence_callback_for_set_presence ()</title>
344 <indexterm zone="tp-cli-connection-interface-simple-presence-callback-for-set-presence"><primary>tp_cli_connection_interface_simple_presence_callback_for_set_presence</primary></indexterm><programlisting><link linkend="void">void</link> (*tp_cli_connection_interface_simple_presence_callback_for_set_presence)
345 (<link linkend="TpConnection">TpConnection</link> *proxy,
346 const <link linkend="GError">GError</link> *error,
347 <link linkend="gpointer">gpointer</link> user_data,
348 <link linkend="GObject">GObject</link> *weak_object);</programlisting>
349 <para>
350 Signature of the callback called when a SetPresence method call
351 succeeds or fails.</para>
352 <para>
353
354 </para><variablelist role="params">
355 <varlistentry><term><parameter>proxy</parameter>&nbsp;:</term>
356 <listitem><simpara> the proxy on which the call was made
357 </simpara></listitem></varlistentry>
358 <varlistentry><term><parameter>error</parameter>&nbsp;:</term>
359 <listitem><simpara> <link linkend="NULL:CAPS"><literal>NULL</literal></link> on success, or an error on failure
360 </simpara></listitem></varlistentry>
361 <varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
362 <listitem><simpara> user-supplied data
363 </simpara></listitem></varlistentry>
364 <varlistentry><term><parameter>weak_object</parameter>&nbsp;:</term>
365 <listitem><simpara> user-supplied object
366 </simpara></listitem></varlistentry>
367 </variablelist></refsect2>
368 <refsect2 id="tp-cli-connection-interface-simple-presence-connect-to-presences-changed" role="function">
369 <title>tp_cli_connection_interface_simple_presence_connect_to_presences_changed ()</title>
370 <indexterm zone="tp-cli-connection-interface-simple-presence-connect-to-presences-changed"><primary>tp_cli_connection_interface_simple_presence_connect_to_presences_changed</primary></indexterm><programlisting><link linkend="TpProxySignalConnection">TpProxySignalConnection</link>* tp_cli_connection_interface_simple_presence_connect_to_presences_changed
371 (<link linkend="TpConnection">TpConnection</link> *proxy,
372 <link linkend="tp-cli-connection-interface-simple-presence-signal-callback-presences-changed">tp_cli_connection_interface_simple_presence_signal_callback_presences_changed</link> callback,
373 <link linkend="gpointer">gpointer</link> user_data,
374 <link linkend="GDestroyNotify">GDestroyNotify</link> destroy,
375 <link linkend="GObject">GObject</link> *weak_object,
376 <link linkend="GError">GError</link> **error);</programlisting>
377 <para>
378 Connect a handler to the signal PresencesChanged.
379 </para>
380 <para>
381 This signal should be emitted when your own presence has been changed, or the presence of the member of any of the connection&apos;s channels has been changed.</para>
382 <para>
383
384 </para><variablelist role="params">
385 <varlistentry><term><parameter>proxy</parameter>&nbsp;:</term>
386 <listitem><simpara> A <link linkend="TpConnection"><type>TpConnection</type></link> or subclass
387 </simpara></listitem></varlistentry>
388 <varlistentry><term><parameter>callback</parameter>&nbsp;:</term>
389 <listitem><simpara> Callback to be called when the signal is
390 received
391 </simpara></listitem></varlistentry>
392 <varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
393 <listitem><simpara> User-supplied data for the callback
394 </simpara></listitem></varlistentry>
395 <varlistentry><term><parameter>destroy</parameter>&nbsp;:</term>
396 <listitem><simpara> Destructor for the user-supplied data, which
397 will be called when this signal is disconnected, or
398 before this function returns <link linkend="NULL:CAPS"><literal>NULL</literal></link>
399 </simpara></listitem></varlistentry>
400 <varlistentry><term><parameter>weak_object</parameter>&nbsp;:</term>
401 <listitem><simpara> A <link linkend="GObject"><type>GObject</type></link> which will be weakly referenced;
402 if it is destroyed, this callback will automatically be
403 disconnected
404 </simpara></listitem></varlistentry>
405 <varlistentry><term><parameter>error</parameter>&nbsp;:</term>
406 <listitem><simpara> If not <link linkend="NULL:CAPS"><literal>NULL</literal></link>, used to raise an error if <link linkend="NULL:CAPS"><literal>NULL</literal></link> is
407 returned
408 </simpara></listitem></varlistentry>
409 <varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> a <link linkend="TpProxySignalConnection"><type>TpProxySignalConnection</type></link> containing all of the
410 above, which can be used to disconnect the signal; or
411 <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the proxy does not have the desired interface
412 or has become invalid.
413 </simpara></listitem></varlistentry>
414 </variablelist></refsect2>
415 <refsect2 id="tp-cli-connection-interface-simple-presence-signal-callback-presences-changed" role="function">
416 <title>tp_cli_connection_interface_simple_presence_signal_callback_presences_changed ()</title>
417 <indexterm zone="tp-cli-connection-interface-simple-presence-signal-callback-presences-changed"><primary>tp_cli_connection_interface_simple_presence_signal_callback_presences_changed</primary></indexterm><programlisting><link linkend="void">void</link> (*tp_cli_connection_interface_simple_presence_signal_callback_presences_changed)
418 (<link linkend="TpConnection">TpConnection</link> *proxy,
419 <link linkend="GHashTable">GHashTable</link> *arg_presence,
420 <link linkend="gpointer">gpointer</link> user_data,
421 <link linkend="GObject">GObject</link> *weak_object);</programlisting>
422 <para>
423 Represents the signature of a callback for the signal PresencesChanged.</para>
424 <para>
425
426 </para><variablelist role="params">
427 <varlistentry><term><parameter>proxy</parameter>&nbsp;:</term>
428 <listitem><simpara> The proxy on which <link linkend="tp-cli-connection-interface-simple-presence-connect-to-presences-changed"><function>tp_cli_connection_interface_simple_presence_connect_to_presences_changed()</function></link>
429 was called
430 </simpara></listitem></varlistentry>
431 <varlistentry><term><parameter>arg_presence</parameter>&nbsp;:</term>
432 <listitem><simpara> A dictionary of contact handles mapped to the status, presence type and status message.
433 </simpara></listitem></varlistentry>
434 <varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
435 <listitem><simpara> User-supplied data
436 </simpara></listitem></varlistentry>
437 <varlistentry><term><parameter>weak_object</parameter>&nbsp;:</term>
438 <listitem><simpara> User-supplied weakly referenced object
439 </simpara></listitem></varlistentry>
440 </variablelist></refsect2>
441
442 </refsect1>
443
444
445
446 <refsect1 id="telepathy-glib-connection-simple-presence.see-also">
447 <title>See Also</title>
448 <link linkend="TpConnection"><type>TpConnection</type></link>
449 </refsect1>
450
451 </refentry>
904904 Start a GetInterfaces method call.
905905 </para>
906906 <para>
907 Get the optional interfaces supported by this connection.</para>
907 &lt;tp:docstring xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt; &lt;p&gt;Get the optional interfaces supported by this connection. Before the connection status changes to CONNECTED, the return from this method may change at any time, but it is guaranteed that interfaces will only be added, not removed. After the connection status changes to CONNECTED, the return from this method cannot change further.&lt;/p&gt; &lt;p&gt;There is no explicit change notification; reasonable behaviour for a client would be to retrieve the interfaces list once initially, and once more when it becomes CONNECTED.&lt;/p&gt; &lt;tp:rationale&gt; &lt;p&gt;In some connection managers, certain capabilities of a connection are known to be implemented for all connections (e.g. support for SimplePresence), and some interfaces (like SimplePresence) can even be used before connecting. Other capabilities may or may not exist, depending on server functionality; by the time the connection goes CONNECTED, the connection manager is expected to have evaluated the server&apos;s functionality and enabled any extra interfaces for the remainder of the Connection&apos;s lifetime.&lt;/p&gt; &lt;/tp:rationale&gt;</para>
908908 <para>
909909
910910 </para><variablelist role="params">
957957 state.
958958 </para>
959959 <para>
960 Get the optional interfaces supported by this connection.</para>
960 &lt;tp:docstring xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt; &lt;p&gt;Get the optional interfaces supported by this connection. Before the connection status changes to CONNECTED, the return from this method may change at any time, but it is guaranteed that interfaces will only be added, not removed. After the connection status changes to CONNECTED, the return from this method cannot change further.&lt;/p&gt; &lt;p&gt;There is no explicit change notification; reasonable behaviour for a client would be to retrieve the interfaces list once initially, and once more when it becomes CONNECTED.&lt;/p&gt; &lt;tp:rationale&gt; &lt;p&gt;In some connection managers, certain capabilities of a connection are known to be implemented for all connections (e.g. support for SimplePresence), and some interfaces (like SimplePresence) can even be used before connecting. Other capabilities may or may not exist, depending on server functionality; by the time the connection goes CONNECTED, the connection manager is expected to have evaluated the server&apos;s functionality and enabled any extra interfaces for the remainder of the Connection&apos;s lifetime.&lt;/p&gt; &lt;/tp:rationale&gt;</para>
961961 <para>
962962
963963 </para><variablelist role="params">
6464 <link linkend="TpDBusPropertiesMixinPropImpl">TpDBusPropertiesMixinPropImpl</link> *props);
6565 <link linkend="void">void</link> <link linkend="tp-dbus-properties-mixin-iface-init">tp_dbus_properties_mixin_iface_init</link> (<link linkend="gpointer">gpointer</link> g_iface,
6666 <link linkend="gpointer">gpointer</link> iface_data);
67 <link linkend="gboolean">gboolean</link> <link linkend="tp-dbus-properties-mixin-get">tp_dbus_properties_mixin_get</link> (<link linkend="GObject">GObject</link> *self,
68 const <link linkend="gchar">gchar</link> *interface_name,
69 const <link linkend="gchar">gchar</link> *property_name,
70 <link linkend="GValue">GValue</link> *value,
71 <link linkend="GError">GError</link> **error);
6772 </synopsis>
6873 </refsynopsisdiv>
6974
590595 <listitem><simpara> ignored
591596 </simpara></listitem></varlistentry>
592597 </variablelist></refsect2>
598 <refsect2 id="tp-dbus-properties-mixin-get" role="function" condition="since:0.7.13">
599 <title>tp_dbus_properties_mixin_get ()</title>
600 <indexterm zone="tp-dbus-properties-mixin-get" role="0.7.13"><primary>tp_dbus_properties_mixin_get</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> tp_dbus_properties_mixin_get (<link linkend="GObject">GObject</link> *self,
601 const <link linkend="gchar">gchar</link> *interface_name,
602 const <link linkend="gchar">gchar</link> *property_name,
603 <link linkend="GValue">GValue</link> *value,
604 <link linkend="GError">GError</link> **error);</programlisting>
605 <para>
606 Initialize <parameter>value</parameter> with the type of the property <parameter>property_name</parameter> on
607 <parameter>interface_name</parameter>, and write the value of that property into it as if
608 by calling the D-Bus method org.freedesktop.DBus.Properties.Get.
609 </para>
610 <para>
611 If Get would return a D-Bus error, <parameter>value</parameter> remains unset and <parameter>error</parameter>
612 is filled in instead.</para>
613 <para>
614
615 </para><variablelist role="params">
616 <varlistentry><term><parameter>self</parameter>&nbsp;:</term>
617 <listitem><simpara> an object with this mixin
618 </simpara></listitem></varlistentry>
619 <varlistentry><term><parameter>interface_name</parameter>&nbsp;:</term>
620 <listitem><simpara> a D-Bus interface name
621 </simpara></listitem></varlistentry>
622 <varlistentry><term><parameter>property_name</parameter>&nbsp;:</term>
623 <listitem><simpara> a D-Bus property name
624 </simpara></listitem></varlistentry>
625 <varlistentry><term><parameter>value</parameter>&nbsp;:</term>
626 <listitem><simpara> an unset GValue (initialized to all zeroes)
627 </simpara></listitem></varlistentry>
628 <varlistentry><term><parameter>error</parameter>&nbsp;:</term>
629 <listitem><simpara> used to return an error on failure
630 </simpara></listitem></varlistentry>
631 <varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> (filling <parameter>value</parameter>) on success, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> (setting <parameter>error</parameter>)
632 on failure
633 </simpara></listitem></varlistentry>
634 </variablelist><para role="since">Since 0.7.13
635 </para></refsect2>
593636
594637 </refsect1>
595638
384384 TP_CONNECTION_PRESENCE_TYPE_EXTENDED_AWAY = 4,
385385 TP_CONNECTION_PRESENCE_TYPE_HIDDEN = 5,
386386 TP_CONNECTION_PRESENCE_TYPE_BUSY = 6,
387 TP_CONNECTION_PRESENCE_TYPE_UNKNOWN = 7,
388 TP_CONNECTION_PRESENCE_TYPE_ERROR = 8,
387389 } TpConnectionPresenceType;
388390 </programlisting>
389391 <para>
393395 </para><variablelist role="enum">
394396 <varlistentry id="TP-CONNECTION-PRESENCE-TYPE-UNSET:CAPS" role="constant">
395397 <term><literal>TP_CONNECTION_PRESENCE_TYPE_UNSET</literal></term>
396 <listitem><simpara> <![CDATA[ An invalid presence type used as a null value ]]>
398 <listitem><simpara> <![CDATA[ An invalid presence type used as a null value. This value MUST NOT appear in the result of GetStatuses, or in the Statuses property of the SimplePresence interface. ]]>
397399 </simpara></listitem>
398400 </varlistentry>
399401 <varlistentry id="TP-CONNECTION-PRESENCE-TYPE-OFFLINE:CAPS" role="constant">
424426 <varlistentry id="TP-CONNECTION-PRESENCE-TYPE-BUSY:CAPS" role="constant">
425427 <term><literal>TP_CONNECTION_PRESENCE_TYPE_BUSY</literal></term>
426428 <listitem><simpara> <![CDATA[ Busy, Do Not Disturb. ]]>
429 </simpara></listitem>
430 </varlistentry>
431 <varlistentry id="TP-CONNECTION-PRESENCE-TYPE-UNKNOWN:CAPS" role="constant">
432 <term><literal>TP_CONNECTION_PRESENCE_TYPE_UNKNOWN</literal></term>
433 <listitem><simpara> <![CDATA[ Unknown, unable to determine presence for this contact, for example if the protocol only allows presence of subscribed contacts. ]]>
434 </simpara></listitem>
435 </varlistentry>
436 <varlistentry id="TP-CONNECTION-PRESENCE-TYPE-ERROR:CAPS" role="constant">
437 <term><literal>TP_CONNECTION_PRESENCE_TYPE_ERROR</literal></term>
438 <listitem><simpara> <![CDATA[ Error, an error occurred while trying to determine presence. The message, if set, is an error from the server. ]]>
427439 </simpara></listitem>
428440 </varlistentry>
429441 </variablelist></refsect2>
975987 </varlistentry>
976988 <varlistentry id="TP-CHANNEL-GROUP-FLAG-HANDLE-OWNERS-NOT-AVAILABLE:CAPS" role="constant">
977989 <term><literal>TP_CHANNEL_GROUP_FLAG_HANDLE_OWNERS_NOT_AVAILABLE</literal></term>
978 <listitem><simpara> <![CDATA[ In rooms with channel specific handles (ie Channel_Specific_Handles flag is set), this flag indicates that none of the handle owners are available, and that GetHandleOwners method will always return 0 for channel members other than the self handle. ]]>
990 <listitem><simpara> <![CDATA[ In rooms with channel specific handles (ie Channel_Specific_Handles flag is set), this flag indicates that no handle owners are available, apart from the owner of the SelfHandle. This used to be an important optimization to avoid repeated GetHandleOwners calls, before we introduced the HandleOwner property and HandleOwnerChanged signal. ]]>
979991 </simpara></listitem>
980992 </varlistentry>
981993 <varlistentry id="TP-CHANNEL-GROUP-FLAG-PROPERTIES:CAPS" role="constant">
2424 <link linkend="GValue">GValue</link>* <link linkend="tp-dbus-specialized-value-slice-new">tp_dbus_specialized_value_slice_new</link> (<link linkend="GType">GType</link> type);
2525 #define <link linkend="TP-HASH-TYPE-STRING-STRING-MAP:CAPS">TP_HASH_TYPE_STRING_STRING_MAP</link>
2626 #define <link linkend="TP-HASH-TYPE-STRING-VARIANT-MAP:CAPS">TP_HASH_TYPE_STRING_VARIANT_MAP</link>
27 #define <link linkend="TP-HASH-TYPE-QUALIFIED-PROPERTY-VALUE-MAP:CAPS">TP_HASH_TYPE_QUALIFIED_PROPERTY_VALUE_MAP</link>
2728
2829 #define <link linkend="TP-STRUCT-TYPE-PARAM-SPEC:CAPS">TP_STRUCT_TYPE_PARAM_SPEC</link>
2930 #define <link linkend="TP-ARRAY-TYPE-PARAM-SPEC-LIST:CAPS">TP_ARRAY_TYPE_PARAM_SPEC_LIST</link>
4344 #define <link linkend="TP-ARRAY-TYPE-CAPABILITY-PAIR-LIST:CAPS">TP_ARRAY_TYPE_CAPABILITY_PAIR_LIST</link>
4445 #define <link linkend="TP-STRUCT-TYPE-CONTACT-CAPABILITY:CAPS">TP_STRUCT_TYPE_CONTACT_CAPABILITY</link>
4546 #define <link linkend="TP-ARRAY-TYPE-CONTACT-CAPABILITY-LIST:CAPS">TP_ARRAY_TYPE_CONTACT_CAPABILITY_LIST</link>
47
48 #define <link linkend="TP-HASH-TYPE-SIMPLE-CONTACT-PRESENCES:CAPS">TP_HASH_TYPE_SIMPLE_CONTACT_PRESENCES</link>
49 #define <link linkend="TP-HASH-TYPE-SIMPLE-STATUS-SPEC-MAP:CAPS">TP_HASH_TYPE_SIMPLE_STATUS_SPEC_MAP</link>
50 #define <link linkend="TP-STRUCT-TYPE-SIMPLE-PRESENCE:CAPS">TP_STRUCT_TYPE_SIMPLE_PRESENCE</link>
51 #define <link linkend="TP-STRUCT-TYPE-SIMPLE-STATUS-SPEC:CAPS">TP_STRUCT_TYPE_SIMPLE_STATUS_SPEC</link>
4652
4753 #define <link linkend="TP-HASH-TYPE-CONTACT-PRESENCES:CAPS">TP_HASH_TYPE_CONTACT_PRESENCES</link>
4854 #define <link linkend="TP-HASH-TYPE-MULTIPLE-STATUS-MAP:CAPS">TP_HASH_TYPE_MULTIPLE_STATUS_MAP</link>
182188 <para>
183189
184190 </para></refsect2>
191 <refsect2 id="TP-HASH-TYPE-QUALIFIED-PROPERTY-VALUE-MAP:CAPS" role="macro">
192 <title>TP_HASH_TYPE_QUALIFIED_PROPERTY_VALUE_MAP</title>
193 <indexterm zone="TP-HASH-TYPE-QUALIFIED-PROPERTY-VALUE-MAP:CAPS"><primary>TP_HASH_TYPE_QUALIFIED_PROPERTY_VALUE_MAP</primary></indexterm><programlisting>#define TP_HASH_TYPE_QUALIFIED_PROPERTY_VALUE_MAP</programlisting>
194 <para>
195 A mapping from strings representing D-Bus properties (by their namespaced names) to their values.
196 </para>
197 <para>
198 This macro expands to a call to a function
199 that returns the <link linkend="GType"><type>GType</type></link> of a <link linkend="GHashTable"><type>GHashTable</type></link>
200 appropriate for representing a D-Bus
201 dictionary of signature
202 <literal>a{sv}</literal>.
203 </para>
204 <para>
205 Keys (D-Bus type <literal>s</literal>,
206 type <literal>DBus_Qualified_Member</literal>,
207 named <literal>Key</literal>):
208 A D-Bus interface name, followed by a dot and a D-Bus property name.
209 </para>
210 <para>
211 Values (D-Bus type <literal>v</literal>,
212 named <literal>Value</literal>):
213 The value of the property.</para>
214 <para>
215
216 </para></refsect2>
185217 <refsect2 id="TP-STRUCT-TYPE-PARAM-SPEC:CAPS" role="macro">
186218 <title>TP_STRUCT_TYPE_PARAM_SPEC</title>
187219 <indexterm zone="TP-STRUCT-TYPE-PARAM-SPEC:CAPS"><primary>TP_STRUCT_TYPE_PARAM_SPEC</primary></indexterm><programlisting>#define TP_STRUCT_TYPE_PARAM_SPEC</programlisting>
509541 Expands to a call to a function
510542 that returns the <link linkend="GType"><type>GType</type></link> of a <link linkend="GPtrArray"><type>GPtrArray</type></link>
511543 of <link linkend="TP-STRUCT-TYPE-CONTACT-CAPABILITY:CAPS"><type>TP_STRUCT_TYPE_CONTACT_CAPABILITY</type></link>.</para>
544 <para>
545
546 </para></refsect2>
547 <refsect2 id="TP-HASH-TYPE-SIMPLE-CONTACT-PRESENCES:CAPS" role="macro">
548 <title>TP_HASH_TYPE_SIMPLE_CONTACT_PRESENCES</title>
549 <indexterm zone="TP-HASH-TYPE-SIMPLE-CONTACT-PRESENCES:CAPS"><primary>TP_HASH_TYPE_SIMPLE_CONTACT_PRESENCES</primary></indexterm><programlisting>#define TP_HASH_TYPE_SIMPLE_CONTACT_PRESENCES</programlisting>
550 <para>
551 Mapping returned by &lt;tp:member-ref&gt;GetPresences&lt;/tp:member-ref&gt; and signalled by &lt;tp:member-ref&gt;PresencesChanged&lt;/tp:member-ref&gt;, indicating the presence of a number of contacts.
552 </para>
553 <para>
554 This macro expands to a call to a function
555 that returns the <link linkend="GType"><type>GType</type></link> of a <link linkend="GHashTable"><type>GHashTable</type></link>
556 appropriate for representing a D-Bus
557 dictionary of signature
558 <literal>a{u(uss)}</literal>.
559 </para>
560 <para>
561 Keys (D-Bus type <literal>u</literal>,
562 type <literal>Contact_Handle</literal>,
563 named <literal>Contact</literal>):
564 A contact
565 </para>
566 <para>
567 Values (D-Bus type <literal>(uss)</literal>,
568 type <literal>Simple_Presence</literal>,
569 named <literal>Presence</literal>):
570 The contact&apos;s presence</para>
571 <para>
572
573 </para></refsect2>
574 <refsect2 id="TP-HASH-TYPE-SIMPLE-STATUS-SPEC-MAP:CAPS" role="macro">
575 <title>TP_HASH_TYPE_SIMPLE_STATUS_SPEC_MAP</title>
576 <indexterm zone="TP-HASH-TYPE-SIMPLE-STATUS-SPEC-MAP:CAPS"><primary>TP_HASH_TYPE_SIMPLE_STATUS_SPEC_MAP</primary></indexterm><programlisting>#define TP_HASH_TYPE_SIMPLE_STATUS_SPEC_MAP</programlisting>
577 <para>
578 A mapping describing possible statuses.
579 </para>
580 <para>
581 This macro expands to a call to a function
582 that returns the <link linkend="GType"><type>GType</type></link> of a <link linkend="GHashTable"><type>GHashTable</type></link>
583 appropriate for representing a D-Bus
584 dictionary of signature
585 <literal>a{s(ubb)}</literal>.
586 </para>
587 <para>
588 Keys (D-Bus type <literal>s</literal>,
589 named <literal>Identifier</literal>):
590 The string identifier of this status.
591 </para>
592 <para>
593 Values (D-Bus type <literal>(ubb)</literal>,
594 type <literal>Simple_Status_Spec</literal>,
595 named <literal>Spec</literal>):
596 Details of this status.</para>
597 <para>
598
599 </para></refsect2>
600 <refsect2 id="TP-STRUCT-TYPE-SIMPLE-PRESENCE:CAPS" role="macro">
601 <title>TP_STRUCT_TYPE_SIMPLE_PRESENCE</title>
602 <indexterm zone="TP-STRUCT-TYPE-SIMPLE-PRESENCE:CAPS"><primary>TP_STRUCT_TYPE_SIMPLE_PRESENCE</primary></indexterm><programlisting>#define TP_STRUCT_TYPE_SIMPLE_PRESENCE</programlisting>
603 <para>
604 A struct representing the presence of a contact.
605
606 </para>
607 <para>
608 This macro expands to a call to a function
609 that returns the <link linkend="GType"><type>GType</type></link> of a <link linkend="GValueArray"><type>GValueArray</type></link>
610 appropriate for representing a D-Bus struct
611 with signature <literal>(uss)</literal>.
612 </para>
613 <para>
614 Member 0 (D-Bus type <literal>u</literal>,
615 type <literal>Connection_Presence_Type</literal>,
616 named <literal>Type</literal>):
617 The presence type, e.g. Connection_Presence_Type_Away.
618 </para>
619 <para>
620 Member 1 (D-Bus type <literal>s</literal>,
621 named <literal>Status</literal>):
622 The string identifier of the status, e.g. &amp;quot;brb&amp;quot;, as defined in the &lt;tp:member-ref&gt;Statuses&lt;/tp:member-ref&gt; property.
623 </para>
624 <para>
625 Member 2 (D-Bus type <literal>s</literal>,
626 named <literal>Status_Message</literal>):
627 &lt;tp:docstring xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt; &lt;p&gt;The user-defined status message, e.g. &amp;quot;Back soon!&amp;quot;.&lt;/p&gt; &lt;p&gt;Clients SHOULD set the status message for the local user to the empty string, unless the user has actually provided a specific message (i.e. one that conveys more information than the Status).&lt;/p&gt; &lt;p&gt;User interfaces SHOULD regard an empty status message as unset, and MAY replace it with a localized string corresponding to the Status or Type.&lt;/p&gt; &lt;tp:rationale&gt; Use case: Daf sets his status in Empathy by choosing the Welsh translation of &amp;quot;Available&amp;quot; from a menu. It is more informative for his English-speaking colleagues to see the English translation of &amp;quot;Available&amp;quot; (as localized by their own clients) than to see the Welsh version (which they don&apos;t understand anyway). &lt;/tp:rationale&gt;</para>
628 <para>
629
630 </para></refsect2>
631 <refsect2 id="TP-STRUCT-TYPE-SIMPLE-STATUS-SPEC:CAPS" role="macro">
632 <title>TP_STRUCT_TYPE_SIMPLE_STATUS_SPEC</title>
633 <indexterm zone="TP-STRUCT-TYPE-SIMPLE-STATUS-SPEC:CAPS"><primary>TP_STRUCT_TYPE_SIMPLE_STATUS_SPEC</primary></indexterm><programlisting>#define TP_STRUCT_TYPE_SIMPLE_STATUS_SPEC</programlisting>
634 <para>
635 A struct containing information about a status.
636
637 </para>
638 <para>
639 This macro expands to a call to a function
640 that returns the <link linkend="GType"><type>GType</type></link> of a <link linkend="GValueArray"><type>GValueArray</type></link>
641 appropriate for representing a D-Bus struct
642 with signature <literal>(ubb)</literal>.
643 </para>
644 <para>
645 Member 0 (D-Bus type <literal>u</literal>,
646 type <literal>Connection_Presence_Type</literal>,
647 named <literal>Type</literal>):
648 The type of a presence. This SHOULD NOT be used as a way to set statuses that the client does not recognise (as explained in &lt;tp:member-ref&gt;SetPresence&lt;/tp:member-ref&gt;), but MAY be used to check that the client&apos;s assumptions about a particular status name match the connection manager&apos;s.
649 </para>
650 <para>
651 Member 1 (D-Bus type <literal>b</literal>,
652 named <literal>May_Set_On_Self</literal>):
653 If true, the user can set this status on themselves using &lt;tp:member-ref&gt;SetPresence&lt;/tp:member-ref&gt;.
654 </para>
655 <para>
656 Member 2 (D-Bus type <literal>b</literal>,
657 named <literal>Can_Have_Message</literal>):
658 If true, a non-empty message can be set for this status. Otherwise, the empty string is the only acceptable message. &lt;tp:rationale&gt; On IRC you can be Away with a status message, but if you are available you cannot set a status message. &lt;/tp:rationale&gt;</para>
512659 <para>
513660
514661 </para></refsect2>
3838 #define <link linkend="TP-IFACE-QUARK-CONNECTION-INTERFACE-AVATARS:CAPS">TP_IFACE_QUARK_CONNECTION_INTERFACE_AVATARS</link>
3939 #define <link linkend="TP-IFACE-CONNECTION-INTERFACE-CAPABILITIES:CAPS">TP_IFACE_CONNECTION_INTERFACE_CAPABILITIES</link>
4040 #define <link linkend="TP-IFACE-QUARK-CONNECTION-INTERFACE-CAPABILITIES:CAPS">TP_IFACE_QUARK_CONNECTION_INTERFACE_CAPABILITIES</link>
41 #define <link linkend="TP-IFACE-CONNECTION-INTERFACE-SIMPLE-PRESENCE:CAPS">TP_IFACE_CONNECTION_INTERFACE_SIMPLE_PRESENCE</link>
42 #define <link linkend="TP-IFACE-QUARK-CONNECTION-INTERFACE-SIMPLE-PRESENCE:CAPS">TP_IFACE_QUARK_CONNECTION_INTERFACE_SIMPLE_PRESENCE</link>
4143 #define <link linkend="TP-IFACE-CONNECTION-INTERFACE-PRESENCE:CAPS">TP_IFACE_CONNECTION_INTERFACE_PRESENCE</link>
4244 #define <link linkend="TP-IFACE-QUARK-CONNECTION-INTERFACE-PRESENCE:CAPS">TP_IFACE_QUARK_CONNECTION_INTERFACE_PRESENCE</link>
4345 #define <link linkend="TP-IFACE-CHANNEL:CAPS">TP_IFACE_CHANNEL</link>
245247 <para>
246248
247249 </para></refsect2>
250 <refsect2 id="TP-IFACE-CONNECTION-INTERFACE-SIMPLE-PRESENCE:CAPS" role="macro">
251 <title>TP_IFACE_CONNECTION_INTERFACE_SIMPLE_PRESENCE</title>
252 <indexterm zone="TP-IFACE-CONNECTION-INTERFACE-SIMPLE-PRESENCE:CAPS"><primary>TP_IFACE_CONNECTION_INTERFACE_SIMPLE_PRESENCE</primary></indexterm><programlisting>#define TP_IFACE_CONNECTION_INTERFACE_SIMPLE_PRESENCE</programlisting>
253 <para>
254 The interface name "org.freedesktop.Telepathy.Connection.Interface.SimplePresence"</para>
255 <para>
256
257 </para></refsect2>
258 <refsect2 id="TP-IFACE-QUARK-CONNECTION-INTERFACE-SIMPLE-PRESENCE:CAPS" role="macro">
259 <title>TP_IFACE_QUARK_CONNECTION_INTERFACE_SIMPLE_PRESENCE</title>
260 <indexterm zone="TP-IFACE-QUARK-CONNECTION-INTERFACE-SIMPLE-PRESENCE:CAPS"><primary>TP_IFACE_QUARK_CONNECTION_INTERFACE_SIMPLE_PRESENCE</primary></indexterm><programlisting>#define TP_IFACE_QUARK_CONNECTION_INTERFACE_SIMPLE_PRESENCE</programlisting>
261 <para>
262 Expands to a call to a function that returns a quark for the interface name "org.freedesktop.Telepathy.Connection.Interface.SimplePresence"</para>
263 <para>
264
265 </para></refsect2>
248266 <refsect2 id="TP-IFACE-CONNECTION-INTERFACE-PRESENCE:CAPS" role="macro">
249267 <title>TP_IFACE_CONNECTION_INTERFACE_PRESENCE</title>
250268 <indexterm zone="TP-IFACE-CONNECTION-INTERFACE-PRESENCE:CAPS"><primary>TP_IFACE_CONNECTION_INTERFACE_PRESENCE</primary></indexterm><programlisting>#define TP_IFACE_CONNECTION_INTERFACE_PRESENCE</programlisting>
5757 const <link linkend="TpPresenceStatus">TpPresenceStatus</link> *status);
5858 <link linkend="void">void</link> <link linkend="tp-presence-mixin-iface-init">tp_presence_mixin_iface_init</link> (<link linkend="gpointer">gpointer</link> g_iface,
5959 <link linkend="gpointer">gpointer</link> iface_data);
60 <link linkend="void">void</link> <link linkend="tp-presence-mixin-simple-presence-iface-init">tp_presence_mixin_simple_presence_iface_init</link>
61 (<link linkend="gpointer">gpointer</link> g_iface,
62 <link linkend="gpointer">gpointer</link> iface_data);
63 <link linkend="void">void</link> <link linkend="tp-presence-mixin-simple-presence-init-dbus-properties">tp_presence_mixin_simple_presence_init_dbus_properties</link>
64 (<link linkend="GObjectClass">GObjectClass</link> *cls);
6065 </synopsis>
6166 </refsynopsisdiv>
6267
95100 <link linkend="TpSvcConnectionInterfacePresence"><type>TpSvcConnectionInterfacePresence</type></link>, in the function you pass to
96101 G_IMPLEMENT_INTERFACE, you should call tp_presence_mixin_iface_init.
97102 TpPresenceMixin implements all of the D-Bus methods in the Presence
98 interface.</para>
103 interface.
104 </para>
105 <para>
106 Since 0.7.13 you can also implement
107 <link linkend="TpSvcConnectionInterfaceSimplePresence"><type>TpSvcConnectionInterfaceSimplePresence</type></link> by using this mixin, in this case
108 you should pass tp_presence_mixin_iface_init as an argument to
109 G_IMPLEMENT_INTERFACE. Note that this can cause the status_available
110 callback to be called while disconnected. Also to fully implement this
111 interface some dbus properties need to be supported. To do that using this
112 mixin the instance needs to use the dbus properties mixin and call
113 tp_presence_mixin_simple_presence_init_dbus_properties in the class init
114 function</para>
99115 <para>
100116
101117 </para>
181197 <link linkend="guint">guint</link> which);</programlisting>
182198 <para>
183199 Signature of the callback used to determine if a given status is currently
184 available to be set on the connection.</para>
200 available to be set on the connection.
201 </para>
202 <para>
203 When implementing the
204 org.freedesktop.Telepathy.Connection.Interface.SimplePresence interface
205 this can be called while DISCONNECTED to determine which statuses can be set
206 in that state.</para>
185207 <para>
186208
187209 </para><variablelist role="params">
528550 <listitem><simpara> Ignored
529551 </simpara></listitem></varlistentry>
530552 </variablelist></refsect2>
553 <refsect2 id="tp-presence-mixin-simple-presence-iface-init" role="function" condition="since:0.7.13">
554 <title>tp_presence_mixin_simple_presence_iface_init ()</title>
555 <indexterm zone="tp-presence-mixin-simple-presence-iface-init" role="0.7.13"><primary>tp_presence_mixin_simple_presence_iface_init</primary></indexterm><programlisting><link linkend="void">void</link> tp_presence_mixin_simple_presence_iface_init
556 (<link linkend="gpointer">gpointer</link> g_iface,
557 <link linkend="gpointer">gpointer</link> iface_data);</programlisting>
558 <para>
559 Fill in the vtable entries needed to implement the simple presence interface
560 using this mixin. This function should usually be called via
561 G_IMPLEMENT_INTERFACE.</para>
562 <para>
563
564 </para><variablelist role="params">
565 <varlistentry><term><parameter>g_iface</parameter>&nbsp;:</term>
566 <listitem><simpara> A pointer to the <link linkend="TpSvcConnectionInterfaceSimplePresenceClass"><type>TpSvcConnectionInterfaceSimplePresenceClass</type></link> in
567 an object class
568 </simpara></listitem></varlistentry>
569 <varlistentry><term><parameter>iface_data</parameter>&nbsp;:</term>
570 <listitem><simpara> Ignored
571 </simpara></listitem></varlistentry>
572 </variablelist><para role="since">Since 0.7.13
573 </para></refsect2>
574 <refsect2 id="tp-presence-mixin-simple-presence-init-dbus-properties" role="function" condition="since:0.7.13">
575 <title>tp_presence_mixin_simple_presence_init_dbus_properties ()</title>
576 <indexterm zone="tp-presence-mixin-simple-presence-init-dbus-properties" role="0.7.13"><primary>tp_presence_mixin_simple_presence_init_dbus_properties</primary></indexterm><programlisting><link linkend="void">void</link> tp_presence_mixin_simple_presence_init_dbus_properties
577 (<link linkend="GObjectClass">GObjectClass</link> *cls);</programlisting>
578 <para>
579 Set up <link linkend="TpDBusPropertiesMixinClass"><type>TpDBusPropertiesMixinClass</type></link> to use this mixin's implementation of
580 the SimplePresence interface's properties.
581 </para>
582 <para>
583 This uses <link linkend="tp-presence-mixin-get-simple-dbus-property"><function>tp_presence_mixin_get_simple_dbus_property()</function></link> as the property
584 getter and sets up a list of the supported properties for it.</para>
585 <para>
586
587 </para><variablelist role="params">
588 <varlistentry><term><parameter>cls</parameter>&nbsp;:</term>
589 <listitem><simpara> The class of an object with this mixin
590 </simpara></listitem></varlistentry>
591 </variablelist><para role="since">Since 0.7.13
592 </para></refsect2>
531593
532594 </refsect1>
533595
146146 (<link linkend="gpointer">gpointer</link> instance,
147147 <link linkend="guint">guint</link> arg_status,
148148 <link linkend="guint">guint</link> arg_reason);
149
150
151 <link linkend="TpSvcConnectionInterfaceSimplePresence">TpSvcConnectionInterfaceSimplePresence</link>;
152 <link linkend="TpSvcConnectionInterfaceSimplePresenceClass">TpSvcConnectionInterfaceSimplePresenceClass</link>;
153 <link linkend="void">void</link> <link linkend="tp-svc-connection-interface-simple-presence-emit-presences-changed">tp_svc_connection_interface_simple_presence_emit_presences_changed</link>
154 (<link linkend="gpointer">gpointer</link> instance,
155 <link linkend="GHashTable">GHashTable</link> *arg_presence);
156 <link linkend="void">void</link> (<link linkend="tp-svc-connection-interface-simple-presence-get-presences-impl">*tp_svc_connection_interface_simple_presence_get_presences_impl</link>)
157 (<link linkend="TpSvcConnectionInterfaceSimplePresence">TpSvcConnectionInterfaceSimplePresence</link> *self,
158 const <link linkend="GArray">GArray</link> *in_contacts,
159 <link linkend="DBusGMethodInvocation">DBusGMethodInvocation</link> *context);
160 <link linkend="void">void</link> <link linkend="tp-svc-connection-interface-simple-presence-implement-get-presences">tp_svc_connection_interface_simple_presence_implement_get_presences</link>
161 (<link linkend="TpSvcConnectionInterfaceSimplePresenceClass">TpSvcConnectionInterfaceSimplePresenceClass</link> *klass,
162 <link linkend="tp-svc-connection-interface-simple-presence-get-presences-impl">tp_svc_connection_interface_simple_presence_get_presences_impl</link> impl);
163 <link linkend="void">void</link> <link linkend="tp-svc-connection-interface-simple-presence-implement-set-presence">tp_svc_connection_interface_simple_presence_implement_set_presence</link>
164 (<link linkend="TpSvcConnectionInterfaceSimplePresenceClass">TpSvcConnectionInterfaceSimplePresenceClass</link> *klass,
165 <link linkend="tp-svc-connection-interface-simple-presence-set-presence-impl">tp_svc_connection_interface_simple_presence_set_presence_impl</link> impl);
166 <link linkend="void">void</link> <link linkend="tp-svc-connection-interface-simple-presence-return-from-get-presences">tp_svc_connection_interface_simple_presence_return_from_get_presences</link>
167 (<link linkend="DBusGMethodInvocation">DBusGMethodInvocation</link> *context,
168 <link linkend="GHashTable">GHashTable</link> *out_presence);
169 <link linkend="void">void</link> <link linkend="tp-svc-connection-interface-simple-presence-return-from-set-presence">tp_svc_connection_interface_simple_presence_return_from_set_presence</link>
170 (<link linkend="DBusGMethodInvocation">DBusGMethodInvocation</link> *context);
171 <link linkend="void">void</link> (<link linkend="tp-svc-connection-interface-simple-presence-set-presence-impl">*tp_svc_connection_interface_simple_presence_set_presence_impl</link>)
172 (<link linkend="TpSvcConnectionInterfaceSimplePresence">TpSvcConnectionInterfaceSimplePresence</link> *self,
173 const <link linkend="gchar">gchar</link> *in_status,
174 const <link linkend="gchar">gchar</link> *in_status_message,
175 <link linkend="DBusGMethodInvocation">DBusGMethodInvocation</link> *context);
149176
150177
151178 <link linkend="TpSvcConnectionInterfacePresence">TpSvcConnectionInterfacePresence</link>;
11771204 <listitem><simpara> guint (FIXME, generate documentation)
11781205 </simpara></listitem></varlistentry>
11791206 </variablelist></refsect2>
1207 <refsect2 id="TpSvcConnectionInterfaceSimplePresence" role="struct">
1208 <title>TpSvcConnectionInterfaceSimplePresence</title>
1209 <indexterm zone="TpSvcConnectionInterfaceSimplePresence"><primary>TpSvcConnectionInterfaceSimplePresence</primary></indexterm><programlisting>typedef struct _TpSvcConnectionInterfaceSimplePresence TpSvcConnectionInterfaceSimplePresence;</programlisting>
1210 <para>
1211 Dummy typedef representing any implementation of this interface.</para>
1212 <para>
1213
1214 </para></refsect2>
1215 <refsect2 id="TpSvcConnectionInterfaceSimplePresenceClass" role="struct">
1216 <title>TpSvcConnectionInterfaceSimplePresenceClass</title>
1217 <indexterm zone="TpSvcConnectionInterfaceSimplePresenceClass"><primary>TpSvcConnectionInterfaceSimplePresenceClass</primary></indexterm><programlisting>typedef struct _TpSvcConnectionInterfaceSimplePresenceClass TpSvcConnectionInterfaceSimplePresenceClass;</programlisting>
1218 <para>
1219 The class of TpSvcConnectionInterfaceSimplePresence.</para>
1220 <para>
1221
1222 </para></refsect2>
1223 <refsect2 id="tp-svc-connection-interface-simple-presence-emit-presences-changed" role="function">
1224 <title>tp_svc_connection_interface_simple_presence_emit_presences_changed ()</title>
1225 <indexterm zone="tp-svc-connection-interface-simple-presence-emit-presences-changed"><primary>tp_svc_connection_interface_simple_presence_emit_presences_changed</primary></indexterm><programlisting><link linkend="void">void</link> tp_svc_connection_interface_simple_presence_emit_presences_changed
1226 (<link linkend="gpointer">gpointer</link> instance,
1227 <link linkend="GHashTable">GHashTable</link> *arg_presence);</programlisting>
1228 <para>
1229 Type-safe wrapper around g_signal_emit to emit the
1230 PresencesChanged signal on interface org.freedesktop.Telepathy.Connection.Interface.SimplePresence.</para>
1231 <para>
1232
1233 </para><variablelist role="params">
1234 <varlistentry><term><parameter>instance</parameter>&nbsp;:</term>
1235 <listitem><simpara> The object implementing this interface
1236 </simpara></listitem></varlistentry>
1237 <varlistentry><term><parameter>arg_presence</parameter>&nbsp;:</term>
1238 <listitem><simpara> GHashTable * (FIXME, generate documentation)
1239 </simpara></listitem></varlistentry>
1240 </variablelist></refsect2>
1241 <refsect2 id="tp-svc-connection-interface-simple-presence-get-presences-impl" role="function">
1242 <title>tp_svc_connection_interface_simple_presence_get_presences_impl ()</title>
1243 <indexterm zone="tp-svc-connection-interface-simple-presence-get-presences-impl"><primary>tp_svc_connection_interface_simple_presence_get_presences_impl</primary></indexterm><programlisting><link linkend="void">void</link> (*tp_svc_connection_interface_simple_presence_get_presences_impl)
1244 (<link linkend="TpSvcConnectionInterfaceSimplePresence">TpSvcConnectionInterfaceSimplePresence</link> *self,
1245 const <link linkend="GArray">GArray</link> *in_contacts,
1246 <link linkend="DBusGMethodInvocation">DBusGMethodInvocation</link> *context);</programlisting>
1247 <para>
1248 The signature of an implementation of the D-Bus method
1249 GetPresences on interface org.freedesktop.Telepathy.Connection.Interface.SimplePresence.</para>
1250 <para>
1251
1252 </para><variablelist role="params">
1253 <varlistentry><term><parameter>self</parameter>&nbsp;:</term>
1254 <listitem><simpara> The object implementing this interface
1255 </simpara></listitem></varlistentry>
1256 <varlistentry><term><parameter>in_contacts</parameter>&nbsp;:</term>
1257 <listitem><simpara> const GArray * (FIXME, generate documentation)
1258 </simpara></listitem></varlistentry>
1259 <varlistentry><term><parameter>context</parameter>&nbsp;:</term>
1260 <listitem><simpara> Used to return values or throw an error
1261 </simpara></listitem></varlistentry>
1262 </variablelist></refsect2>
1263 <refsect2 id="tp-svc-connection-interface-simple-presence-implement-get-presences" role="function">
1264 <title>tp_svc_connection_interface_simple_presence_implement_get_presences ()</title>
1265 <indexterm zone="tp-svc-connection-interface-simple-presence-implement-get-presences"><primary>tp_svc_connection_interface_simple_presence_implement_get_presences</primary></indexterm><programlisting><link linkend="void">void</link> tp_svc_connection_interface_simple_presence_implement_get_presences
1266 (<link linkend="TpSvcConnectionInterfaceSimplePresenceClass">TpSvcConnectionInterfaceSimplePresenceClass</link> *klass,
1267 <link linkend="tp-svc-connection-interface-simple-presence-get-presences-impl">tp_svc_connection_interface_simple_presence_get_presences_impl</link> impl);</programlisting>
1268 <para>
1269 Register an implementation for the GetPresences method in the vtable
1270 of an implementation of this interface. To be called from
1271 the interface init function.</para>
1272 <para>
1273
1274 </para><variablelist role="params">
1275 <varlistentry><term><parameter>klass</parameter>&nbsp;:</term>
1276 <listitem><simpara> A class whose instances implement this interface
1277 </simpara></listitem></varlistentry>
1278 <varlistentry><term><parameter>impl</parameter>&nbsp;:</term>
1279 <listitem><simpara> A callback used to implement the GetPresences D-Bus method
1280 </simpara></listitem></varlistentry>
1281 </variablelist></refsect2>
1282 <refsect2 id="tp-svc-connection-interface-simple-presence-implement-set-presence" role="function">
1283 <title>tp_svc_connection_interface_simple_presence_implement_set_presence ()</title>
1284 <indexterm zone="tp-svc-connection-interface-simple-presence-implement-set-presence"><primary>tp_svc_connection_interface_simple_presence_implement_set_presence</primary></indexterm><programlisting><link linkend="void">void</link> tp_svc_connection_interface_simple_presence_implement_set_presence
1285 (<link linkend="TpSvcConnectionInterfaceSimplePresenceClass">TpSvcConnectionInterfaceSimplePresenceClass</link> *klass,
1286 <link linkend="tp-svc-connection-interface-simple-presence-set-presence-impl">tp_svc_connection_interface_simple_presence_set_presence_impl</link> impl);</programlisting>
1287 <para>
1288 Register an implementation for the SetPresence method in the vtable
1289 of an implementation of this interface. To be called from
1290 the interface init function.</para>
1291 <para>
1292
1293 </para><variablelist role="params">
1294 <varlistentry><term><parameter>klass</parameter>&nbsp;:</term>
1295 <listitem><simpara> A class whose instances implement this interface
1296 </simpara></listitem></varlistentry>
1297 <varlistentry><term><parameter>impl</parameter>&nbsp;:</term>
1298 <listitem><simpara> A callback used to implement the SetPresence D-Bus method
1299 </simpara></listitem></varlistentry>
1300 </variablelist></refsect2>
1301 <refsect2 id="tp-svc-connection-interface-simple-presence-return-from-get-presences" role="function">
1302 <title>tp_svc_connection_interface_simple_presence_return_from_get_presences ()</title>
1303 <indexterm zone="tp-svc-connection-interface-simple-presence-return-from-get-presences"><primary>tp_svc_connection_interface_simple_presence_return_from_get_presences</primary></indexterm><programlisting><link linkend="void">void</link> tp_svc_connection_interface_simple_presence_return_from_get_presences
1304 (<link linkend="DBusGMethodInvocation">DBusGMethodInvocation</link> *context,
1305 <link linkend="GHashTable">GHashTable</link> *out_presence);</programlisting>
1306 <para>
1307 Return successfully by calling <link linkend="dbus-g-method-return"><function>dbus_g_method_return()</function></link>.
1308 This inline function exists only to provide type-safety.</para>
1309 <para>
1310
1311 </para><variablelist role="params">
1312 <varlistentry><term><parameter>context</parameter>&nbsp;:</term>
1313 <listitem><simpara> The D-Bus method invocation context
1314 </simpara></listitem></varlistentry>
1315 <varlistentry><term><parameter>out_presence</parameter>&nbsp;:</term>
1316 <listitem><simpara> GHashTable * (FIXME, generate documentation)
1317 </simpara></listitem></varlistentry>
1318 </variablelist></refsect2>
1319 <refsect2 id="tp-svc-connection-interface-simple-presence-return-from-set-presence" role="function">
1320 <title>tp_svc_connection_interface_simple_presence_return_from_set_presence ()</title>
1321 <indexterm zone="tp-svc-connection-interface-simple-presence-return-from-set-presence"><primary>tp_svc_connection_interface_simple_presence_return_from_set_presence</primary></indexterm><programlisting><link linkend="void">void</link> tp_svc_connection_interface_simple_presence_return_from_set_presence
1322 (<link linkend="DBusGMethodInvocation">DBusGMethodInvocation</link> *context);</programlisting>
1323 <para>
1324 Return successfully by calling <link linkend="dbus-g-method-return"><function>dbus_g_method_return()</function></link>.
1325 This inline function exists only to provide type-safety.</para>
1326 <para>
1327
1328 </para><variablelist role="params">
1329 <varlistentry><term><parameter>context</parameter>&nbsp;:</term>
1330 <listitem><simpara> The D-Bus method invocation context
1331 </simpara></listitem></varlistentry>
1332 </variablelist></refsect2>
1333 <refsect2 id="tp-svc-connection-interface-simple-presence-set-presence-impl" role="function">
1334 <title>tp_svc_connection_interface_simple_presence_set_presence_impl ()</title>
1335 <indexterm zone="tp-svc-connection-interface-simple-presence-set-presence-impl"><primary>tp_svc_connection_interface_simple_presence_set_presence_impl</primary></indexterm><programlisting><link linkend="void">void</link> (*tp_svc_connection_interface_simple_presence_set_presence_impl)
1336 (<link linkend="TpSvcConnectionInterfaceSimplePresence">TpSvcConnectionInterfaceSimplePresence</link> *self,
1337 const <link linkend="gchar">gchar</link> *in_status,
1338 const <link linkend="gchar">gchar</link> *in_status_message,
1339 <link linkend="DBusGMethodInvocation">DBusGMethodInvocation</link> *context);</programlisting>
1340 <para>
1341 The signature of an implementation of the D-Bus method
1342 SetPresence on interface org.freedesktop.Telepathy.Connection.Interface.SimplePresence.</para>
1343 <para>
1344
1345 </para><variablelist role="params">
1346 <varlistentry><term><parameter>self</parameter>&nbsp;:</term>
1347 <listitem><simpara> The object implementing this interface
1348 </simpara></listitem></varlistentry>
1349 <varlistentry><term><parameter>in_status</parameter>&nbsp;:</term>
1350 <listitem><simpara> const gchar * (FIXME, generate documentation)
1351 </simpara></listitem></varlistentry>
1352 <varlistentry><term><parameter>in_status_message</parameter>&nbsp;:</term>
1353 <listitem><simpara> const gchar * (FIXME, generate documentation)
1354 </simpara></listitem></varlistentry>
1355 <varlistentry><term><parameter>context</parameter>&nbsp;:</term>
1356 <listitem><simpara> Used to return values or throw an error
1357 </simpara></listitem></varlistentry>
1358 </variablelist></refsect2>
11801359 <refsect2 id="TpSvcConnectionInterfacePresence" role="struct">
11811360 <title>TpSvcConnectionInterfacePresence</title>
11821361 <indexterm zone="TpSvcConnectionInterfacePresence"><primary>TpSvcConnectionInterfacePresence</primary></indexterm><programlisting>typedef struct _TpSvcConnectionInterfacePresence TpSvcConnectionInterfacePresence;</programlisting>
5050 <link linkend="GArray">GArray</link> **ret,
5151 <link linkend="GError">GError</link> **error);
5252 <link linkend="void">void</link> <link linkend="tp-text-mixin-clear">tp_text_mixin_clear</link> (<link linkend="GObject">GObject</link> *obj);
53 <link linkend="gboolean">gboolean</link> <link linkend="tp-text-mixin-has-pending-messages">tp_text_mixin_has_pending_messages</link> (<link linkend="GObject">GObject</link> *obj,
54 <link linkend="TpHandle">TpHandle</link> *first_sender);
5355 <link linkend="void">void</link> <link linkend="tp-text-mixin-iface-init">tp_text_mixin_iface_init</link> (<link linkend="gpointer">gpointer</link> g_iface,
5456 <link linkend="gpointer">gpointer</link> iface_data);
5557 </synopsis>
343345 <listitem><simpara> An object with this mixin
344346 </simpara></listitem></varlistentry>
345347 </variablelist></refsect2>
348 <refsect2 id="tp-text-mixin-has-pending-messages" role="function">
349 <title>tp_text_mixin_has_pending_messages ()</title>
350 <indexterm zone="tp-text-mixin-has-pending-messages"><primary>tp_text_mixin_has_pending_messages</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> tp_text_mixin_has_pending_messages (<link linkend="GObject">GObject</link> *obj,
351 <link linkend="TpHandle">TpHandle</link> *first_sender);</programlisting>
352 <para>
353 Return whether the channel <parameter>obj</parameter> has unacknowledged messages. If so, and
354 <parameter>first_sender</parameter> is not <link linkend="NULL:CAPS"><literal>NULL</literal></link>, the handle of the sender of the first message
355 is placed in it, without incrementing the handle's reference count.</para>
356 <para>
357
358 </para><variablelist role="params">
359 <varlistentry><term><parameter>obj</parameter>&nbsp;:</term>
360 <listitem><simpara> An object with this mixin
361 </simpara></listitem></varlistentry>
362 <varlistentry><term><parameter>first_sender</parameter>&nbsp;:</term>
363 <listitem><simpara> If not <link linkend="NULL:CAPS"><literal>NULL</literal></link>, used to store the sender of the oldest pending
364 message
365 </simpara></listitem></varlistentry>
366 <varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if there are pending messages
367 </simpara></listitem></varlistentry>
368 </variablelist></refsect2>
346369 <refsect2 id="tp-text-mixin-iface-init" role="function">
347370 <title>tp_text_mixin_iface_init ()</title>
348371 <indexterm zone="tp-text-mixin-iface-init"><primary>tp_text_mixin_iface_init</primary></indexterm><programlisting><link linkend="void">void</link> tp_text_mixin_iface_init (<link linkend="gpointer">gpointer</link> g_iface,
9090 <tp:docstring>
9191 Request a list of the hats worn by the given contacts.
9292 </tp:docstring>
93 <arg direction="in" name="Contact" type="au" tp:type="Contact_Handle">
93 <arg direction="in" name="Contact" type="au" tp:type="Contact_Handle[]">
9494 <tp:docstring>
9595 The handles of the contacts whose hats are requested
9696 </tp:docstring>
115115 Indicate that the hat currently being worn by the local user
116116 has changed.
117117 </tp:docstring>
118 <arg name="Color" type="s">
118 <arg name="Color" type="s" direction="in">
119119 <tp:docstring>
120120 The color of the contact's hat.
121121 </tp:docstring>
122122 </arg>
123 <arg name="Style" type="u" tp:type="Hat_Style">
123 <arg name="Style" type="u" tp:type="Hat_Style" direction="in">
124124 <tp:docstring>
125125 The style of the contact's hat.
126126 </tp:docstring>
127127 </arg>
128 <arg name="Properties" type="a{sv}" tp:type="String_Variant_Map">
128 <arg name="Properties" type="a{sv}" tp:type="String_Variant_Map"
129 direction="in">
129130 <tp:docstring>
130131 There's always an a{sv}...
131132 </tp:docstring>
297297 </tp:possible-errors>
298298 </method>
299299
300 <tp:struct name="Account_Presence">
301 <tp:docstring>
302 A simplified form of the presence statuses seen in the Presence
303 interface.
304 </tp:docstring>
305
306 <tp:member name="Type" type="u" tp:type="Connection_Presence_Type">
307 <tp:docstring>
308 The presence type, e.g. Connection_Presence_Type_Away.
309 </tp:docstring>
310 </tp:member>
311
312 <tp:member name="Status" type="s">
313 <tp:docstring>
314 The connection-manager-specific string identifier of the presence
315 status, e.g. "brb".
316 </tp:docstring>
317 </tp:member>
318
319 <tp:member name="Message" type="s">
320 <tp:docstring>
321 The user-defined status message, e.g. "Back soon!". This will be
322 used as the value for the 'message' keyword in the Presence
323 interface's dictionary, if possible.
324 </tp:docstring>
325 </tp:member>
326 </tp:struct>
327
328300 <property name="AutomaticPresence" type="(uss)" access="readwrite"
329 tp:type="Account_Presence">
301 tp:type="Simple_Presence">
330302 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
331303 <p>The presence status that this account should have if it is brought
332304 online.</p>
404376 </property>
405377
406378 <property name="CurrentPresence" type="(uss)" access="read"
407 tp:type="Account_Presence">
379 tp:type="Simple_Presence">
408380 <tp:docstring>
409381 The actual presence. If the connection is not online, this should be
410382 (Connection_Presence_Type_Offline, "", "").
420392 </property>
421393
422394 <property name="RequestedPresence" type="(uss)" access="readwrite"
423 tp:type="Account_Presence">
395 tp:type="Simple_Presence">
424396 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
425397 <p>The requested presence for this account. When this is changed, the
426398 account manager should attempt to manipulate the connection manager
248248 </dl>
249249 </tp:docstring>
250250
251 <tp:enum name="Delivery_Status" value-prefix="Delivery_Status">
251 <tp:enum name="Delivery_Status" value-prefix="Delivery_Status" type="u">
252252 <tp:docstring>
253253 <p>The status of a message as indicated by a delivery report.</p>
254254
303303 </tp:enum>
304304
305305 <tp:flags name="Delivery_Reporting_Support_Flags"
306 value-prefix="Delivery_Reporting_Support_Flag">
306 value-prefix="Delivery_Reporting_Support_Flag" type="u">
307307 <tp:docstring>
308308 Flags indicating the level of support for delivery reporting on this
309309 channel. Any future flags added to this set will conform to the
191191 <tp:flag suffix="Handle_Owners_Not_Available" value="1024">
192192 <tp:docstring>
193193 In rooms with channel specific handles (ie Channel_Specific_Handles
194 flag is set), this flag indicates that none of the handle owners are
195 available, and that GetHandleOwners method will always return 0 for
196 channel members other than the self handle.
194 flag is set), this flag indicates that no handle owners are
195 available, apart from the owner of the SelfHandle.
196
197 <tp:rationale>
198 This used to be an important optimization to avoid repeated
199 GetHandleOwners calls, before we introduced the HandleOwner
200 property and HandleOwnerChanged signal.
201 </tp:rationale>
197202 </tp:docstring>
198203 </tp:flag>
199204 <tp:flag suffix="Properties" value="2048">
6464 another process.
6565 </tp:docstring>
6666
67 <arg name="HoldState" direction="out" type="u"
68 tp:type="Local_Hold_State">
67 <arg name="HoldState" type="u" tp:type="Local_Hold_State">
6968 <tp:docstring>
7069 The state of the channel
7170 </tp:docstring>
7271 </arg>
7372
74 <arg name="Reason" direction="out" type="u"
75 tp:type="Local_Hold_State_Reason">
73 <arg name="Reason" type="u" tp:type="Local_Hold_State_Reason">
7674 <tp:docstring>
7775 The reason for the state change
7876 </tp:docstring>
8080 </property>
8181
8282 <tp:flags name="Message_Part_Support_Flags"
83 value-prefix="Message_Part_Support_Flag">
83 value-prefix="Message_Part_Support_Flag" type="u">
8484 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
8585 <p>Flags indicating the level of support for message parts on this
8686 channel. They are designed such that setting more flags always
470470 </tp:possible-errors>
471471 </method>
472472
473 <tp:flags name="Message_Sending_Flags" value-prefix="Message_Sending_Flag">
473 <tp:flags name="Message_Sending_Flags" value-prefix="Message_Sending_Flag"
474 type="u">
474475 <tp:docstring>
475476 Flags altering the way a message is sent. The "most usual" action
476477 should always be to have these flags unset.
456456
457457 <p>On protocols where a conversation with a user is actually just
458458 a nameless chat room starting with exactly two members, to which
459 more members can be invited, calling RequestChannel with type Text
459 more members can be invited, calling
460 <tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection">RequestChannel</tp:dbus-ref>
461 with type Text
460462 and handle type CONTACT should continue to succeed, but may return
461463 a channel with handle type 0, handle 0, the group interface,
462464 and the local and remote contacts in its members.</p>
7272 </tp:docstring>
7373 </arg>
7474
75 <tp:docstring>
76 Get the optional interfaces supported by this connection.
77 </tp:docstring>
78
79 <tp:possible-errors>
80 <tp:error name="org.freedesktop.Telepathy.Error.Disconnected"/>
75 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
76 <p>Get the optional interfaces supported by this connection.
77 Before the connection status changes to CONNECTED, the return
78 from this method may change at any time, but it is guaranteed that
79 interfaces will only be added, not removed. After the connection
80 status changes to CONNECTED, the return from this method cannot
81 change further.</p>
82
83 <p>There is no explicit change notification; reasonable behaviour
84 for a client would be to retrieve the interfaces list once
85 initially, and once more when it becomes CONNECTED.</p>
86
87 <tp:rationale>
88 <p>In some connection managers, certain capabilities of a connection
89 are known to be implemented for all connections (e.g. support
90 for SimplePresence), and some interfaces (like SimplePresence) can
91 even be used before connecting. Other capabilities may
92 or may not exist, depending on server functionality; by the time
93 the connection goes CONNECTED, the connection manager is expected
94 to have evaluated the server's functionality and enabled any extra
95 interfaces for the remainder of the Connection's lifetime.</p>
96 </tp:rationale>
97 </tp:docstring>
98
99 <tp:possible-errors>
100 <tp:error name="org.freedesktop.Telepathy.Error.Disconnected">
101 <tp:docstring>
102 Before version 0.17.UNRELEASED calling GetInterfaces while
103 on a connection that is not yet CONNECTED wasn't allowed. If a
104 CM returns this error, its list of interfaces should be regarded
105 as empty until it becomes CONNECTED.
106 </tp:docstring>
107 </tp:error>
81108 </tp:possible-errors>
82109 </method>
83110
293320 <tp:possible-errors>
294321 <tp:error name="org.freedesktop.Telepathy.Error.Disconnected"/>
295322 <tp:error name="org.freedesktop.Telepathy.Error.InvalidArgument">
296 The handle type is invalid
323 <tp:docstring>
324 The handle type is invalid
325 </tp:docstring>
297326 </tp:error>
298327 <tp:error name="org.freedesktop.Telepathy.Error.InvalidHandle">
299 One of the given handles is not valid
328 <tp:docstring>
329 One of the given handles is not valid
330 </tp:docstring>
300331 </tp:error>
301332 <tp:error name="org.freedesktop.Telepathy.Error.NotAvailable">
302 One of the given handles is not held by this client
333 <tp:docstring>
334 One of the given handles is not held by this client
335 </tp:docstring>
303336 </tp:error>
304337 </tp:possible-errors>
305338 </method>
482515 <tp:possible-errors>
483516 <tp:error name="org.freedesktop.Telepathy.Error.Disconnected"/>
484517 <tp:error name="org.freedesktop.Telepathy.Error.InvalidArgument">
485 The handle type is invalid
518 <tp:docstring>
519 The handle type is invalid
520 </tp:docstring>
486521 </tp:error>
487522 <tp:error name="org.freedesktop.Telepathy.Error.NotAvailable">
488 The given name is not a valid entity of the given type
523 <tp:docstring>
524 The given name is not a valid entity of the given type
525 </tp:docstring>
489526 </tp:error>
490527 </tp:possible-errors>
491528 </method>
2727 manager that it will ordinarily be able to create a channel when given
2828 a request with the given type and handle.</p>
2929
30 <p>Capabilities can pertain to a certain contact handle, representing
31 activities such as having a text chat or a voice call with the user, or
32 can be on the connection itself (where the handle will be zero), where
33 they represent the ability to create channels for chat rooms or
34 activities such as searching and room listing. The activities are
35 represented by the D-Bus interface name of the channel type for that
36 activity.</p>
30 <p>Capabilities pertain to particular contact handles, and represent
31 activities such as having a text chat or a voice call with the user.
32 The activities are represented by the D-Bus interface name of the
33 channel type for that activity.</p>
3734
3835 <p>The generic capability flags are defined by
39 Connection_Capability_Flags.</p>
36 <tp:type>Connection_Capability_Flags</tp:type>.</p>
4037
4138 <p>In addition, channel types may have type specific capability flags of
4239 their own, which are described in the documentation for each channel
4845 interface names of channel types and the type specific flags pertaining
4946 to them which are implemented by available client processes.</p>
5047 </tp:docstring>
48
49 <tp:changed version="0.17.UNRELEASED">Previously, this interface
50 also expressed capabilities of the connection itself, indicating what
51 sorts of channels could be requested (for instance, the ability to
52 open chatroom lists or chatrooms). However, this was never very
53 well-defined or consistent, and as far as we know it was never
54 implemented correctly. This usage is now deprecated.</tp:changed>
55
56 <!-- FIXME: are the type-specific flags sufficient, in a world that has
57 the Requests interface? It'd be nice if we could advertise capabilities
58 that are not defined in terms of a channel type but rather in terms of
59 a property or something, e.g. Channel.Interface.TLS.Secure for
60 individually TLS'd channels. -->
5161
5262 <tp:flags name="Connection_Capability_Flags"
5363 value-prefix="Connection_Capability_Flag" type="u">
135145
136146 <p>Upon a successful invocation of this method, the CapabilitiesChanged
137147 signal will be emitted for the user's own handle (as returned by
138 GetSelfHandle) the by the connection manager to indicate the changes
148 GetSelfHandle) by the connection manager to indicate the changes
139149 that have been made. This signal should also be monitored to ensure
140150 that the set is kept accurate - for example, a client may remove
141151 capabilities or type specific capability flags when it exits
161171 </ul>
162172 </tp:docstring>
163173 </arg>
164 <tp:docstring>
165 Announce that there has been a change of capabilities on the
166 given handle, or on the connection itself if the handle is zero.
174 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
175 <p>Announce that there has been a change of capabilities on the
176 given handle.</p>
177
178 <p>If the handle is zero, the capabilities refer to the connection
179 itself, in some poorly defined way. This usage is deprecated and
180 clients should ignore it.</p>
167181 </tp:docstring>
168182 </signal>
169183
170184 <method name="GetCapabilities">
171185 <arg direction="in" name="handles" type="au" tp:type="Contact_Handle[]">
172 <tp:docstring>
173 An array of contact handles for this connection, or zero to query capabilities available on the connection itself
186 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
187 <p>An array of contact handles for this connection.</p>
188
189 <p>This may include zero, which originally meant a query for
190 capabilities available on the connection itself. This usage
191 is deprecated; clients SHOULD NOT do this, and connection managers
192 SHOULD proceed as though zero had not been present in this
193 list.</p>
174194 </tp:docstring>
175195 </arg>
176196 <arg direction="out" type="a(usuu)" tp:type="Contact_Capability[]">
177 <tp:docstring>
197 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
178198 An array of structures containing:
179199 <ul>
180200 <li>an integer handle representing the contact</li>
185205 </tp:docstring>
186206 </arg>
187207 <tp:docstring>
188 Returns an array of capabilities for the given contact handles, or
189 the connection itself (where handle is zero).
208 Returns an array of capabilities for the given contact handles.
190209 </tp:docstring>
191210 <tp:possible-errors>
192211 <tp:error name="org.freedesktop.Telepathy.Error.NetworkError"/>
193212 <tp:error name="org.freedesktop.Telepathy.Error.Disconnected"/>
194213 <tp:error name="org.freedesktop.Telepathy.Error.InvalidHandle">
195214 <tp:docstring>
196 The handle does not represent a contact
215 The handle does not represent a contact and is not zero
197216 </tp:docstring>
198217 </tp:error>
199218 <tp:error name="org.freedesktop.Telepathy.Error.PermissionDenied"/>
0 <?xml version="1.0" ?>
1 <node name="/Connection_Interface_Contact_Attributes" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
2 <tp:copyright> Copyright (C) 2005-2008 Collabora Limited </tp:copyright>
3 <tp:copyright> Copyright (C) 2005, 2006 Nokia Corporation </tp:copyright>
4 <tp:copyright> Copyright (C) 2006 INdT </tp:copyright>
5 <tp:license xmlns="http://www.w3.org/1999/xhtml">
6 <p>This library is free software; you can redistribute it and/or modify it
7 under the terms of the GNU Lesser General Public License as published by
8 the Free Software Foundation; either version 2.1 of the License, or (at
9 your option) any later version.</p>
10
11 <p>This library is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
14 General Public License for more details.</p>
15
16 <p>You should have received a copy of the GNU Lesser General Public License
17 along with this library; if not, write to the Free Software Foundation,
18 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</p>
19 </tp:license>
20 <interface name="org.freedesktop.Telepathy.Connection.Interface.Contacts.DRAFT"
21 tp:causes-havoc="experimental">
22 <tp:requires interface="org.freedesktop.Telepathy.Connection"/>
23
24 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
25 <p>This interface allows many attributes of many contacts to be
26 obtained in a single D-Bus round trip.</p>
27
28 <p>Each contact attribute has an string identifier
29 (<tp:type>Contact_Attribute</tp:type>), which is namespaced
30 by the D-Bus interface which defines it.</p>
31
32 <p>While this interface is a draft, an initial set of contact
33 attributes is defined here. The definitions of these attributes
34 will be moved to the spec for individual interfaces when this interface
35 is finalized.</p>
36
37 <dl>
38 <dt>org.freedesktop.Telepathy.Connection/contact-id
39 (type s)</dt>
40 <dd>The same string that would be returned by <tp:dbus-ref
41 namespace="org.freedesktop.Telepathy.Connection">InspectHandles</tp:dbus-ref>
42 (always present in the result)
43 </dd>
44 <dt>org.freedesktop.Telepathy.Connection.Interface.Aliasing/alias
45 (type s)</dt>
46 <dd>The contact's alias as defined by the <tp:dbus-ref
47 namespace="org.freedesktop.Telepathy.Connection.Interface">Aliasing</tp:dbus-ref>
48 interface (always present with some value, possibly the
49 same as Connection/contact-id, if information from the
50 Aliasing interface was requested)
51 </dd>
52 <dt>org.freedesktop.Telepathy.Connection.Interface.Avatars/token
53 (type s</dt>
54 <dd>The same string that would be returned by <tp:dbus-ref
55 namespace="org.freedesktop.Telepathy.Connection.Interface.Avatars">GetAvatarTokens</tp:dbus-ref>
56 (omitted from the result if the contact's avatar token is not known,
57 present as an empty string if the contact is known not to have
58 an avatar)
59 </dd>
60 <dt>org.freedesktop.Telepathy.Connection.Interface.SimplePresence/presence
61 (type (uss), <tp:type>Simple_Presence</tp:type>)</dt>
62 <dd> The same struct that would be returned by
63 <tp:dbus-ref
64 namespace="org.freedesktop.Telepathy.Connection.Interface.SimplePresence">GetPresences</tp:dbus-ref>
65 (always present with some value if information from the
66 SimplePresence interface was requested)
67 </dd>
68 <dt>org.freedesktop.Telepathy.Connection.Interface.Capabilities/caps
69 (type a(usuu), <tp:type>Contact_Capability</tp:type>)</dt>
70 <dd>The same structs that would be returned by
71 <tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection.Interface.Capabilities">GetCapabilities</tp:dbus-ref>
72 (all of them will redundantly have the contact's handle as the
73 first member). Omitted from the result if the contact's capabilities
74 are not known; present in the result as an empty array if the
75 contact is known to have no capabilities at all.</dd>
76 </dl>
77 </tp:docstring>
78
79 <tp:simple-type name="Contact_Attribute" type="s">
80 <tp:docstring>
81 A <tp:type>DBus_Interface</tp:type>, followed by a slash '/' character
82 and an identifier for an attribute defined by that interface. The
83 attribute identifier SHOULD be in lower case.
84
85 <tp:rationale>
86 These aren't D-Bus core Properties, and we want them to look visibly
87 different.
88 </tp:rationale>
89 </tp:docstring>
90 </tp:simple-type>
91
92 <tp:mapping name="Single_Contact_Attributes_Map">
93 <tp:docstring>
94 Some of the attributes of a single contact.
95 </tp:docstring>
96
97 <tp:member type="s" tp:type="Contact_Attribute" name="Attribute">
98 <tp:docstring>
99 The name of the attribute
100 </tp:docstring>
101 </tp:member>
102
103 <tp:member type="v" name="Value">
104 <tp:docstring>
105 The value of the attribute
106 </tp:docstring>
107 </tp:member>
108 </tp:mapping>
109
110 <tp:mapping name="Contact_Attributes_Map">
111 <tp:docstring>Mapping returned by InspectContacts, representing a
112 collection of Contacts and their requested attributes.</tp:docstring>
113
114 <tp:member type="u" tp:type="Contact_Handle" name="Contact">
115 <tp:docstring>
116 A contact
117 </tp:docstring>
118 </tp:member>
119
120 <tp:member type="a{sv}" tp:type="Single_Contact_Attributes_Map"
121 name="Attributes">
122 <tp:docstring>
123 Attributes of that contact
124 </tp:docstring>
125 </tp:member>
126 </tp:mapping>
127
128 <property name="InspectableInterfaces" access="read" type="as"
129 tp:type="DBus_Interface[]">
130 <tp:docstring>
131 A list of D-Bus interfaces for which
132 <tp:member-ref>InspectContacts</tp:member-ref> is expected to work.
133 This cannot change during the lifetime of the Connection.
134 </tp:docstring>
135 </property>
136
137 <method name="InspectContacts">
138 <tp:docstring>
139 Return any number of contact attributes for the given handles.
140 </tp:docstring>
141
142 <arg direction="in" name="Handles" type="au" tp:type="Contact_Handle[]">
143 <tp:docstring>
144 An array of handles representing contacts.
145 </tp:docstring>
146 </arg>
147
148 <arg direction="in" name="Interfaces" type="as"
149 tp:type="DBus_Interface[]">
150 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
151 <p>A list of strings indicating which D-Bus interfaces the calling
152 process is interested in. All supported attributes from these
153 interfaces, whose values can be obtained without additional network
154 activity, will be in the reply.</p>
155
156 <p>It is an error to request interfaces that are not supported by
157 this Connection (i.e. mentioned in the
158 <tp:member-ref>InspectableInterfaces</tp:member-ref> property).</p>
159
160 <tp:rationale>
161 <p>This makes it possible to distinguish between interfaces for
162 which the Connection has nothing to say (e.g. we don't know the
163 avatar tokens of any of the contacts, so we omitted them all),
164 and interfaces for which this API isn't supported.</p>
165 </tp:rationale>
166
167 <p>Attributes from the interface
168 <tp:dbus-ref>org.freedesktop.Telepathy.Connection</tp:dbus-ref>
169 are always returned, and need not be requested explicitly.</p>
170
171 <p>As well as returning cached information immediately, the
172 connection MAY start asynchronous requests to obtain better
173 values for the contact attributes. If better values are later
174 obtained by this process, they will be indicated with the usual
175 signals (such as AliasesChanged).</p>
176
177 <tp:rationale>
178 For instance, an XMPP connection manager could download vCards
179 in response to a request for Aliasing attributes.
180 </tp:rationale>
181 </tp:docstring>
182 </arg>
183
184 <arg direction="in" name="Hold" type="b">
185 <tp:docstring>
186 If true, all handles in the result have been held on behalf of the
187 calling process, as if by a call to
188 <tp:dbus-ref namespace="org.freedesktop.Telepathy">Connection.HoldHandles</tp:dbus-ref>.
189
190 <tp:rationale>
191 For further round-trip avoidance.
192 </tp:rationale>
193 </tp:docstring>
194 </arg>
195
196 <arg direction="out" type="a{ua{sv}}" name="Attributes"
197 tp:type="Contact_Attributes_Map">
198 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
199 <p>A dictionary mapping the contact handles to contact attributes.
200 If any of the requested handles are in fact invalid, they are
201 simply omitted from this mapping. If contact attributes are not
202 immediately known, the behaviour is defined by the interface;
203 the attribute should either be omitted from the result or
204 replaced with a default value.</p>
205
206 <p>Each contact's attributes will always include at least the
207 identifier that would be obtained by inspecting the handle
208 (<code>org.freedesktop.Telepathy.Connection/contact-id</code>).</p>
209 </tp:docstring>
210 </arg>
211
212 <tp:possible-errors>
213 <tp:error name="org.freedesktop.Telepathy.Error.Disconnected"/>
214 <tp:error name="org.freedesktop.Telepathy.Error.InvalidArgument">
215 <tp:docstring>
216 One of the requested interfaces is not supported (mentioned in
217 <tp:member-ref>InspectableInterfaces</tp:member-ref>).
218 </tp:docstring>
219 </tp:error>
220 </tp:possible-errors>
221 </method>
222 </interface>
223 </node>
224 <!-- vim:set sw=2 sts=2 et ft=xml: -->
257257 </tp:possible-errors>
258258 </method>
259259 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
260 <p>This interface is for services which have a concept of presence which can
261 be published for yourself and monitored on your contacts. Telepathy's
262 definition of presence is based on that used by the Galago project
263 (see http://www.galago-project.org/).</p>
260 <p>This interface will become deprecated in future versions. New
261 client implementations MAY use
262 org.freedesktop.Telepathy.Connection.Interface.SimplePresence
263 instead; new connection managers SHOULD implement both
264 Presence and SimplePresence.</p>
265
266 <p>This interface is for services which have a concept of presence which
267 can be published for yourself and monitored on your contacts.
268 Telepathy's definition of presence is based on that used by
269 <a href="http://www.galago-project.org/">the Galago
270 project</a>.</p>
264271
265272 <p>Presence on an individual (yourself or one of your contacts) is modelled as
266273 a last activity time along with a set of zero or more statuses, each of
275282 choices:</p>
276283
277284 <ul>
278 <li>available</li>
279 <li>away</li>
280 <li>brb (Be Right Back)</li>
281 <li>busy</li>
282 <li>dnd (Do Not Disturb),</li>
283 <li>xa (Extended Away)</li>
284 <li>hidden (aka Invisible)</li>
285 <li>offline</li>
285 <li>available (corresponding to Connection_Presence_Type_Available)</li>
286 <li>away (corresponding to Connection_Presence_Type_Away)</li>
287 <li>brb (Be Right Back) (corresponding to
288 Connection_Presence_Type_Away, but more specific)</li>
289 <li>busy (corresponding to Connection_Presence_Type_Busy)</li>
290 <li>dnd (Do Not Disturb) (corresponding to
291 Connection_Presence_Type_Busy, but more specific)</li>
292 <li>xa (Extended Away) (corresponding to
293 Connection_Presence_Type_Extended_Away)</li>
294 <li>hidden (aka Invisible) (corresponding to
295 Connection_Presence_Type_Hidden)</li>
296 <li>offline (corresponding to Connection_Presence_Type_Offline)</li>
297 <li>unknown (corresponding to Connection_Presence_Type_Unknown)</li>
298 <li>error (corresponding to Connection_Presence_Type_Error)</li>
286299 </ul>
287300
288301 <p>As well as these well-known status identifiers, every status also has a
316329 <tp:enum name="Connection_Presence_Type" type="u">
317330 <tp:enumvalue suffix="Unset" value="0">
318331 <tp:docstring>
319 An invalid presence type used as a null value
332 An invalid presence type used as a null value. This value MUST NOT
333 appear in the result of GetStatuses, or in the Statuses property
334 of the SimplePresence interface.
320335 </tp:docstring>
321336 </tp:enumvalue>
322337 <tp:enumvalue suffix="Offline" value="1">
348363 <tp:added version="0.17.0"/>
349364 <tp:docstring>
350365 Busy, Do Not Disturb.
366 </tp:docstring>
367 </tp:enumvalue>
368 <tp:enumvalue suffix="Unknown" value="7">
369 <tp:added version="0.17.UNRELEASED"/>
370 <tp:docstring>
371 Unknown, unable to determine presence for this contact, for example
372 if the protocol only allows presence of subscribed contacts.
373 </tp:docstring>
374 </tp:enumvalue>
375 <tp:enumvalue suffix="Error" value="8">
376 <tp:added version="0.17.UNRELEASED"/>
377 <tp:docstring>
378 Error, an error occurred while trying to determine presence. The
379 message, if set, is an error from the server.
351380 </tp:docstring>
352381 </tp:enumvalue>
353382 </tp:enum>
0 <?xml version="1.0" ?>
1 <node name="/Connection_Interface_Simple_Presence" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
2 <tp:copyright> Copyright (C) 2005-2008 Collabora Limited </tp:copyright>
3 <tp:copyright> Copyright (C) 2005, 2006 Nokia Corporation </tp:copyright>
4 <tp:copyright> Copyright (C) 2006 INdT </tp:copyright>
5 <tp:license xmlns="http://www.w3.org/1999/xhtml">
6 <p>This library is free software; you can redistribute it and/or modify it
7 under the terms of the GNU Lesser General Public License as published by
8 the Free Software Foundation; either version 2.1 of the License, or (at
9 your option) any later version.</p>
10
11 <p>This library is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
14 General Public License for more details.</p>
15
16 <p>You should have received a copy of the GNU Lesser General Public License
17 along with this library; if not, write to the Free Software Foundation,
18 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</p>
19 </tp:license>
20
21 <interface name="org.freedesktop.Telepathy.Connection.Interface.SimplePresence">
22 <tp:requires interface="org.freedesktop.Telepathy.Connection"/>
23
24 <tp:struct name="Simple_Presence">
25 <tp:docstring>
26 A struct representing the presence of a contact.
27 </tp:docstring>
28 <tp:member type="u" tp:type="Connection_Presence_Type" name="Type">
29 <tp:docstring>
30 The presence type, e.g. Connection_Presence_Type_Away.
31 </tp:docstring>
32 </tp:member>
33 <tp:member type="s" name="Status">
34 <tp:docstring>
35 The string identifier of the status, e.g. "brb", as defined in the
36 <tp:member-ref>Statuses</tp:member-ref> property.
37 </tp:docstring>
38 </tp:member>
39 <tp:member type="s" name="Status_Message">
40 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
41 <p>The user-defined status message, e.g. "Back soon!".</p>
42
43 <p>Clients SHOULD set the status message for the local
44 user to the empty string, unless the user has actually provided
45 a specific message (i.e. one that conveys more information than the
46 Status).</p>
47
48 <p>User interfaces SHOULD regard an empty status message as unset,
49 and MAY replace it with a localized string corresponding to the
50 Status or Type.</p>
51
52 <tp:rationale>
53 Use case: Daf sets his status in Empathy by choosing the Welsh
54 translation of "Available" from a menu.
55 It is more informative for his English-speaking colleagues
56 to see the English translation of "Available" (as localized
57 by their own clients) than to see the Welsh version (which they
58 don't understand anyway).
59 </tp:rationale>
60 </tp:docstring>
61 </tp:member>
62 </tp:struct>
63
64 <tp:mapping name="Simple_Contact_Presences">
65 <tp:docstring>
66 Mapping returned by <tp:member-ref>GetPresences</tp:member-ref>
67 and signalled by <tp:member-ref>PresencesChanged</tp:member-ref>,
68 indicating the presence of a number of contacts.
69 </tp:docstring>
70 <tp:member type="u" tp:type="Contact_Handle" name="Contact">
71 <tp:docstring>
72 A contact
73 </tp:docstring>
74 </tp:member>
75 <tp:member type="(uss)" tp:type="Simple_Presence" name="Presence">
76 <tp:docstring>
77 The contact's presence
78 </tp:docstring>
79 </tp:member>
80 </tp:mapping>
81
82 <tp:struct name="Simple_Status_Spec">
83 <tp:docstring>
84 A struct containing information about a status.
85 </tp:docstring>
86 <tp:member type="u" tp:type="Connection_Presence_Type" name="Type">
87 <tp:docstring>
88 The type of a presence. This SHOULD NOT be used as a way to set
89 statuses that the client does not recognise (as explained in
90 <tp:member-ref>SetPresence</tp:member-ref>), but MAY be used to check
91 that the client's assumptions about a particular status name
92 match the connection manager's.
93 </tp:docstring>
94 </tp:member>
95 <tp:member type="b" name="May_Set_On_Self">
96 <tp:docstring>
97 If true, the user can set this status on themselves using
98 <tp:member-ref>SetPresence</tp:member-ref>.
99 </tp:docstring>
100 </tp:member>
101 <tp:member type="b" name="Can_Have_Message">
102 <tp:docstring>
103 If true, a non-empty message can be set for this status. Otherwise,
104 the empty string is the only acceptable message.
105
106 <tp:rationale>
107 On IRC you can be Away with a status message, but if you are
108 available you cannot set a status message.
109 </tp:rationale>
110 </tp:docstring>
111 </tp:member>
112 </tp:struct>
113
114 <tp:mapping name="Simple_Status_Spec_Map">
115 <tp:docstring>
116 A mapping describing possible statuses.
117 </tp:docstring>
118
119 <tp:member type="s" name="Identifier">
120 <tp:docstring>
121 The string identifier of this status.
122 </tp:docstring>
123 </tp:member>
124 <tp:member type="(ubb)" tp:type="Simple_Status_Spec" name="Spec">
125 <tp:docstring>
126 Details of this status.
127 </tp:docstring>
128 </tp:member>
129 </tp:mapping>
130
131 <method name="SetPresence">
132 <arg direction="in" name="status" type="s">
133 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
134 <p>The string identifier of the desired status. Possible status
135 identifiers are defined in the
136 <tp:member-ref>Statuses</tp:member-ref> property.</p>
137
138 <p>Clients MUST NOT set a status whose string value they do not
139 recognise, even if its presence type in Statuses
140 matches what the user requested.</p>
141
142 <tp:rationale>
143 <p>Suppose a protocol has statuses that include 'phone' (of type
144 BUSY) and 'in-a-meeting' (of type BUSY), but there is no
145 generic 'busy' status.</p>
146
147 <p>If the user requests "Busy" status from a menu, a
148 client author might be tempted to pick an arbitrary status
149 that has type BUSY. However, on this protocol, neither of
150 the choices would be appropriate, and incorrect information
151 about the user would be conveyed.</p>
152 </tp:rationale>
153 </tp:docstring>
154 </arg>
155 <arg direction="in" name="status_message" type="s">
156 <tp:docstring>
157 The status message associated with the current status.
158 </tp:docstring>
159 </arg>
160 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
161 <p>Request that the presence status and status message are published for
162 the connection. Changes will be indicated by
163 <tp:member-ref>PresencesChanged</tp:member-ref>
164 signals being emitted.</p>
165
166 <p>This method may be called on a newly-created connection while it
167 is still in the DISCONNECTED state, to request that when the
168 connection connects, it will do so with the selected status.</p>
169
170 <p>In DISCONNECTED state the
171 <tp:member-ref>Statuses</tp:member-ref>
172 property will indicate which statuses are allowed to be set
173 while DISCONNECTED (none, if the Connection Manager doesn't allow
174 this). This value MUST NOT be cached, as the set of allowed
175 presences might change upon connecting.</p>
176 </tp:docstring>
177 <tp:possible-errors>
178 <tp:error name="org.freedesktop.Telepathy.Error.NetworkError"/>
179 <tp:error name="org.freedesktop.Telepathy.Error.InvalidArgument">
180 <tp:docstring>
181 Either the specified status is not supported, the specified
182 status cannot be set on the user themselves, or a non-empty
183 message was supplied for a status that does not
184 accept a message.
185 </tp:docstring>
186 </tp:error>
187 <tp:error name="org.freedesktop.Telepathy.Error.NotAvailable"/>
188 </tp:possible-errors>
189 </method>
190
191 <method name="GetPresences">
192 <arg direction="in" name="contacts" type="au" tp:type="Contact_Handle[]">
193 <tp:docstring>
194 An array of the contacts whose presence should be obtained.
195 </tp:docstring>
196 </arg>
197 <arg direction="out" name="presence" type="a{u(uss)}"
198 tp:type="Simple_Contact_Presences">
199 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
200 <p>Presence information in the same format as for the
201 <tp:member-ref>PresencesChanged</tp:member-ref> signal.
202 The returned mapping MUST include an entry for each contact
203 in the method's argument.</p>
204
205 <p>The definition of the connection presence types Unknown
206 and Offline means that if a connection manager will return
207 Unknown for contacts not on the subscribe list, it MUST delay
208 the reply to this method call until it has found out which
209 contacts are, in fact, on the subscribe list.</p>
210 </tp:docstring>
211 </arg>
212 <tp:docstring>
213 Get presence previously emitted by PresencesChanged for the given
214 contacts. Data is returned in the same structure as the
215 PresencesChanged signal; no additional network requests are made.
216 </tp:docstring>
217 <tp:possible-errors>
218 <tp:error name="org.freedesktop.Telepathy.Error.Disconnected"/>
219 <tp:error name="org.freedesktop.Telepathy.Error.InvalidHandle"/>
220 <tp:error name="org.freedesktop.Telepathy.Error.NetworkError">
221 <tp:docstring>
222 While discovering the subscribe list in order to distinguish
223 between Unknown and Offline statuses, a network error occurred.
224 </tp:docstring>
225 </tp:error>
226 <tp:error name="org.freedesktop.Telepathy.Error.NotAvailable"/>
227 </tp:possible-errors>
228 </method>
229
230 <property name="Statuses" access="read"
231 type="a{s(ubb)}" tp:type="Simple_Status_Spec_Map">
232 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
233 <p>A dictionary where the keys are the presence statuses that the user
234 can set on themselves for this connection, and the values are the
235 corresponding presence types.</p>
236
237 <p>While the connection is in the DISCONNECTED state, it contains
238 the set of presence statuses allowed to be set before connecting.
239 The connection manager will attempt to set the appropriate status
240 when the connection becomes connected, but cannot necessarily
241 guarantee it. The available statuses cannot change until the
242 connection status changes, so there is no change notification.</p>
243
244 <p>While the connection is in the CONNECTED state, this property
245 contains the set of presence statuses which are actually available
246 on this protocol. This set is constant for the remaining lifetime
247 of the connection, so again, there is no change notification.</p>
248
249 <p>While the connection is in the CONNECTING state, the value of
250 this property is undefined and SHOULD NOT be used. It can change
251 at any time without notification (in particular, any cached values
252 from when the connection was in the DISCONNECTED or CONNECTING
253 state MUST NOT be assumed to still be correct when the state has
254 become CONNECTED).</p>
255
256 <p>This property MUST include the special statuses "unknown" and
257 "error" if and only if the connection manager can emit them
258 as a contact's status.</p>
259
260 <tp:rationale>
261 For instance, connection managers for local-xmpp (XEP-0174) would
262 omit "unknown" since there is no such concept.
263 </tp:rationale>
264 </tp:docstring>
265 </property>
266
267 <signal name="PresencesChanged">
268 <arg name="presence" type="a{u(uss)}" tp:type="Simple_Contact_Presences">
269 <tp:docstring>
270 A dictionary of contact handles mapped to the status,
271 presence type and status message.
272 </tp:docstring>
273 </arg>
274 <tp:docstring>
275 This signal should be emitted when your own presence has been changed,
276 or the presence of the member of any of the connection's channels has
277 been changed.
278 </tp:docstring>
279 </signal>
280
281 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
282 <p>This interface is for services which have a concept of presence which
283 can be published for yourself and monitored on your contacts.</p>
284
285 <p>Presence on an individual (yourself or one of your contacts) is
286 modelled as a status and a status message. Valid statuses are defined
287 per connection, and a list of those that can be set on youself
288 can be obtained from the
289 <tp:member-ref>Statuses</tp:member-ref>
290 property.</p>
291
292 <p>Each status has an arbitrary string identifier which should have an
293 agreed meaning between the connection manager and any client which is
294 expected to make use of it. The following well-known values should be
295 used where possible to allow clients to identify common choices:</p>
296
297 <table>
298 <tr>
299 <th>status identifier</th>
300 <th>Connection_Presence_Type</th>
301 <th>comments</th>
302 </tr>
303 <tr>
304 <td>available</td>
305 <td>Connection_Presence_Type_Available</td>
306 <td></td>
307 </tr>
308 <tr>
309 <td>away</td>
310 <td>Connection_Presence_Type_Away</td>
311 <td></td>
312 </tr>
313 <tr>
314 <td>brb</td>
315 <td>Connection_Presence_Type_Away</td>
316 <td>Be Right Back (a more specific form of Away)</td>
317 </tr>
318 <tr>
319 <td>busy</td>
320 <td>Connection_Presence_Type_Busy</td>
321 <td></td>
322 </tr>
323 <tr><td>dnd</td>
324 <td>Connection_Presence_Type_Busy</td>
325 <td>Do Not Disturb (a more specific form of Busy)</td>
326 </tr>
327 <tr>
328 <td>xa</td>
329 <td>Connection_Presence_Type_Extended_Away</td>
330 <td>Extended Away</td>
331 </tr>
332 <tr>
333 <td>hidden</td>
334 <td>Connection_Presence_Type_Hidden</td>
335 <td>Also known as "Invisible" or "Appear Offline"</td>
336 </tr>
337 <tr>
338 <td>offline</td>
339 <td>Connection_Presence_Type_Offline</td>
340 <td></td>
341 </tr>
342 <tr>
343 <td>unknown</td>
344 <td>Connection_Presence_Type_Unknown</td>
345 <td>special, see below</td>
346 </tr>
347 <tr>
348 <td>error</td>
349 <td>Connection_Presence_Type_Error</td>
350 <td>special, see below</td>
351 </tr>
352 </table>
353
354 <p>As well as these well-known status identifiers, every status also has
355 a numerical type value chosen from ConnectionPresenceType which can be
356 used by the client to classify even unknown statuses into different
357 fundamental types.</p>
358
359 <p>These numerical types exist so that even if a client does not
360 understand the string identifier being used, and hence cannot present
361 the presence to the user to set on themselves, it may display an
362 approximation of the presence if it is set on a contact.</p>
363
364 <p>As well as the normal status identifiers, there are two special ones
365 that may be present: 'unknown' with type Unknown and 'error' with type
366 Error. 'unknown' indicates that it is impossible to determine the
367 presence of a contact at this time, for example because it's not on the
368 'subscribe' list and the protocol only allows one to determine the
369 presence of contacts you're subscribed to. 'error' indicates that there
370 was a failure in determining the status of a contact.</p>
371
372 <p>If the connection has a 'subscribe' contact list, PresencesChanged
373 signals should be emitted to indicate changes of contacts on this list,
374 and should also be emitted for changes in your own presence. Depending
375 on the protocol, the signal may also be emitted for others such as
376 people with whom you are communicating, and any user interface should
377 be updated accordingly.</p>
378 </tp:docstring>
379 </interface>
380 </node>
381 <!-- vim:set sw=2 sts=2 et ft=xml: -->
2020 <interface name="org.freedesktop.Telepathy.ConnectionManager">
2121
2222 <tp:simple-type name="Connection_Manager_Name" type="s">
23 <tp:docstring>
24 The name of a connection manager, found in its well-known
25 bus name and object path. This must be a non-empty string of
26 ASCII letters, digits and underscores, starting with a letter.
27 This is typically the name of the executable with any "telepathy-"
28 prefix removed, and any hyphen/minus signs replaced by
29 underscores.
23 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
24 <p>The name of a connection manager, found in its well-known
25 bus name and object path. This must be a non-empty string of
26 ASCII letters, digits and underscores, starting with a letter.
27 This is typically the name of the executable with any "telepathy-"
28 prefix removed, and any hyphen/minus signs replaced by
29 underscores.</p>
30
31 <p>Connection manager names SHOULD NOT be the same as the name of
32 the protocol they implement.</p>
33
34 <tp:rationale>
35 <p>This is likely to lead to conflicts between different
36 implementations of the same protocol (or indeed inability
37 to distinguish between the different implementations!). The
38 Telepathy project traditionally uses some sort of pun (Haze is
39 based on libpurple, Salut implements a protocol often called
40 Bonjour, and Wilde implements the OSCAR protocol).</p>
41 </tp:rationale>
42
43 <p>Connection manager names SHOULD NOT be the same as the name of
44 a library on which they are based.</p>
45
46 <tp:rationale>
47 <p>We often abbreviate, for instance, telepathy-haze as "Haze",
48 but abbreviating telepathy-sofiasip to "Sofia-SIP" would cause
49 confusion between the connection manager and the library it
50 uses. Please don't repeat that mistake.</p>
51 </tp:rationale>
3052 </tp:docstring>
3153 <tp:changed version="0.17.1">Prior to version 0.17.1, the allowed
3254 characters were not specified</tp:changed>
297319 </tp:possible-errors>
298320 </method>
299321
322 <property name="Interfaces" type="as" access="read">
323 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
324 <p>A list of the extra interfaces provided by this connection manager
325 (i.e. extra functionality that can be provided even before a
326 connection has been created).</p>
327
328 <p>No interfaces suitable for listing in this property are currently
329 defined; it's provided as a hook for possible future
330 functionality.</p>
331
332 <p>To be compatible with older connection managers, if retrieving
333 this property fails, clients SHOULD assume that its value is
334 an empty list.</p>
335 </tp:docstring>
336 <tp:added version="0.17.UNRELEASED"/>
337 </property>
338
339 <!-- FIXME: One thing we could perhaps use Interfaces for would be a
340 ConnectionManager.Interface.Capabilities that can give hints regarding
341 the capabilities (in the sense of
342 Connection.Interface.Requests.AvailableChannelClasses and/or
343 Connection.GetInterfaces()) that a Connection from this CM is likely
344 to have -->
345
300346 <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
301347 <p>A D-Bus service which allows connections to be created. The manager
302348 processes are intended to be started by D-Bus service activation.</p>
2727 Connection_Interface_Avatars.xml \
2828 Connection_Interface_Capabilities.xml \
2929 Connection_Interface_Contact_Info.xml \
30 Connection_Interface_Contacts.xml \
3031 Connection_Interface_Forwarding.xml \
32 Connection_Interface_Simple_Presence.xml \
3133 Connection_Interface_Presence.xml \
3234 Connection_Interface_Privacy.xml \
3335 Connection_Interface_Renaming.xml \
215215 Connection_Interface_Avatars.xml \
216216 Connection_Interface_Capabilities.xml \
217217 Connection_Interface_Contact_Info.xml \
218 Connection_Interface_Contacts.xml \
218219 Connection_Interface_Forwarding.xml \
220 Connection_Interface_Simple_Presence.xml \
219221 Connection_Interface_Presence.xml \
220222 Connection_Interface_Privacy.xml \
221223 Connection_Interface_Renaming.xml \
22 xmlns:xi="http://www.w3.org/2001/XInclude">
33
44 <tp:title>Telepathy D-Bus Interface Specification</tp:title>
5 <tp:version>0.17.7</tp:version>
5 <tp:version>0.17.8</tp:version>
66
77 <tp:copyright>Copyright (C) 2005-2008 Collabora Limited</tp:copyright>
88 <tp:copyright>Copyright (C) 2005-2008 Nokia Corporation</tp:copyright>
2929 <xi:include href="Connection_Interface_Aliasing.xml"/>
3030 <xi:include href="Connection_Interface_Avatars.xml"/>
3131 <xi:include href="Connection_Interface_Capabilities.xml"/>
32 <xi:include href="Connection_Interface_Contacts.xml"/>
3233 <!-- Never implemented, is a terrible API
3334 <xi:include href="Connection_Interface_Contact_Info.xml"/> -->
3435 <!-- Never implemented, insufficient (needs conditions)
3536 <xi:include href="Connection_Interface_Forwarding.xml"/> -->
37 <xi:include href="Connection_Interface_Simple_Presence.xml"/>
3638 <xi:include href="Connection_Interface_Presence.xml"/>
3739 <!-- Never implemented, vague
3840 <xi:include href="Connection_Interface_Privacy.xml"/> -->
1616 </tp:simple-type>
1717
1818 <tp:simple-type name="DBus_Interface" type="s">
19 <tp:docstring>A string representing a D-Bus interface</tp:docstring>
19 <tp:docstring>An ASCII string representing a D-Bus interface - two or more
20 elements separated by dots, where each element is a non-empty
21 string of ASCII letters, digits and underscores, not starting with
22 a digit. The maximum total length is 255 characters. For example,
23 "org.freedesktop.DBus.Peer".</tp:docstring>
2024 </tp:simple-type>
2125
2226 <tp:simple-type name="DBus_Signature" type="s">
2428 (the 'g' type isn't used because of poor interoperability, particularly
2529 with dbus-glib)</tp:docstring>
2630 </tp:simple-type>
31
32 <tp:simple-type name="DBus_Member" type="s">
33 <tp:docstring>An ASCII string representing a D-Bus method, signal
34 or property name - a non-empty string of ASCII letters, digits and
35 underscores, not starting with a digit, with a maximum length of 255
36 characters. For example, "Ping".</tp:docstring>
37 </tp:simple-type>
38
39 <tp:simple-type name="DBus_Qualified_Member" type="s">
40 <tp:docstring>A string representing the full name of a D-Bus method,
41 signal or property, consisting of a DBus_Interface, followed by
42 a dot, followed by a DBus_Member. For example,
43 "org.freedesktop.DBus.Peer.Ping".</tp:docstring>
44 </tp:simple-type>
45
46 <tp:mapping name="Qualified_Property_Value_Map">
47 <tp:docstring>A mapping from strings representing D-Bus
48 properties (by their namespaced names) to their values.</tp:docstring>
49 <tp:member type="s" name="Key" tp:type="DBus_Qualified_Member">
50 <tp:docstring>
51 A D-Bus interface name, followed by a dot and a D-Bus property name.
52 </tp:docstring>
53 </tp:member>
54 <tp:member type="v" name="Value">
55 <tp:docstring>
56 The value of the property.
57 </tp:docstring>
58 </tp:member>
59 </tp:mapping>
2760
2861 <tp:mapping name="String_Variant_Map">
2962 <tp:docstring>A mapping from strings to variants representing extra
1414 versions/0.7.8.abi \
1515 versions/0.7.9.abi \
1616 versions/0.7.10.abi \
17 versions/0.7.12.abi
17 versions/0.7.12.abi \
18 versions/0.7.13.abi
1819
1920 EXTRA_DIST = \
2021 $(ABI_LISTS) \
266266 versions/0.7.8.abi \
267267 versions/0.7.9.abi \
268268 versions/0.7.10.abi \
269 versions/0.7.12.abi
269 versions/0.7.12.abi \
270 versions/0.7.13.abi
270271
271272 EXTRA_DIST = \
272273 $(ABI_LISTS) \
836836 tp_channel_is_ready;
837837 } TELEPATHY_GLIB_0.7.10;
838838
839 TELEPATHY_GLIB_0.7.13 {
840 global:
841 tp_cli_connection_interface_simple_presence_call_get_presences;
842 tp_cli_connection_interface_simple_presence_call_set_presence;
843 tp_cli_connection_interface_simple_presence_connect_to_presences_changed;
844 tp_cli_connection_interface_simple_presence_run_get_presences;
845 tp_cli_connection_interface_simple_presence_run_set_presence;
846 tp_dbus_properties_mixin_get;
847 tp_iface_quark_connection_interface_simple_presence;
848 tp_presence_mixin_simple_presence_iface_init;
849 tp_presence_mixin_simple_presence_init_dbus_properties;
850 tp_svc_connection_interface_simple_presence_emit_presences_changed;
851 tp_svc_connection_interface_simple_presence_get_type;
852 tp_svc_connection_interface_simple_presence_implement_get_presences;
853 tp_svc_connection_interface_simple_presence_implement_set_presence;
854 tp_text_mixin_has_pending_messages;
855 tp_type_dbus_hash_s_28ubb_29;
856 tp_type_dbus_hash_u_28uss_29;
857 tp_type_dbus_struct_ubb;
858 tp_type_dbus_struct_uss;
859 } TELEPATHY_GLIB_0.7.12;
860
88 <xi:include href="../spec/Connection_Interface_Aliasing.xml"/>
99 <xi:include href="../spec/Connection_Interface_Avatars.xml"/>
1010 <xi:include href="../spec/Connection_Interface_Capabilities.xml"/>
11 <xi:include href="../spec/Connection_Interface_Simple_Presence.xml"/>
1112 <xi:include href="../spec/Connection_Interface_Presence.xml"/>
1213
1314 </tp:spec>
592592
593593 static TpDBusPropertiesMixinIfaceImpl *
594594 _tp_dbus_properties_mixin_find_iface_impl (GObject *self,
595 const gchar *name,
596 DBusGMethodInvocation *context)
595 const gchar *name)
597596 {
598597 GType type;
599598 GQuark offset_quark = _prop_mixin_offset_quark ();
645644 static TpDBusPropertiesMixinPropImpl *
646645 _tp_dbus_properties_mixin_find_prop_impl
647646 (TpDBusPropertiesMixinIfaceImpl *iface_impl,
648 const gchar *name,
649 DBusGMethodInvocation *context)
647 const gchar *name)
650648 {
651649 GQuark prop_quark = g_quark_try_string (name);
652650 TpDBusPropertiesMixinPropImpl *prop_impl;
665663 }
666664
667665 return NULL;
666 }
667
668
669 /**
670 * tp_dbus_properties_mixin_get:
671 * @self: an object with this mixin
672 * @interface_name: a D-Bus interface name
673 * @property_name: a D-Bus property name
674 * @value: an unset GValue (initialized to all zeroes)
675 * @error: used to return an error on failure
676 *
677 * Initialize @value with the type of the property @property_name on
678 * @interface_name, and write the value of that property into it as if
679 * by calling the D-Bus method org.freedesktop.DBus.Properties.Get.
680 *
681 * If Get would return a D-Bus error, @value remains unset and @error
682 * is filled in instead.
683 *
684 * Returns: %TRUE (filling @value) on success, %FALSE (setting @error)
685 * on failure
686 * Since: 0.7.13
687 */
688 gboolean
689 tp_dbus_properties_mixin_get (GObject *self,
690 const gchar *interface_name,
691 const gchar *property_name,
692 GValue *value,
693 GError **error)
694 {
695 TpDBusPropertiesMixinIfaceImpl *iface_impl;
696 TpDBusPropertiesMixinIfaceInfo *iface_info;
697 TpDBusPropertiesMixinPropImpl *prop_impl;
698 TpDBusPropertiesMixinPropInfo *prop_info;
699
700 iface_impl = _tp_dbus_properties_mixin_find_iface_impl (self,
701 interface_name);
702
703 if (iface_impl == NULL)
704 {
705 g_set_error (error, TP_ERRORS, TP_ERROR_NOT_IMPLEMENTED,
706 "No properties known for interface %s", interface_name);
707 return FALSE;
708 }
709
710 iface_info = iface_impl->mixin_priv;
711
712 prop_impl = _tp_dbus_properties_mixin_find_prop_impl (iface_impl,
713 property_name);
714
715 if (prop_impl == NULL)
716 {
717 g_set_error (error, TP_ERRORS, TP_ERROR_NOT_IMPLEMENTED,
718 "Unknown property %s on %s", property_name, interface_name);
719 return FALSE;
720 }
721
722 prop_info = prop_impl->mixin_priv;
723
724 if ((prop_info->flags & TP_DBUS_PROPERTIES_MIXIN_FLAG_READ) == 0)
725 {
726 g_set_error (error, TP_ERRORS, TP_ERROR_PERMISSION_DENIED,
727 "Property %s on %s is read-only", property_name, interface_name);
728 return FALSE;
729 }
730
731 g_value_init (value, prop_info->type);
732 iface_impl->getter (self, iface_info->dbus_interface,
733 prop_info->name, value, prop_impl->getter_data);
734
735 return TRUE;
668736 }
669737
670738 static void
674742 DBusGMethodInvocation *context)
675743 {
676744 GObject *self = G_OBJECT (iface);
677 TpDBusPropertiesMixinIfaceImpl *iface_impl;
678 TpDBusPropertiesMixinIfaceInfo *iface_info;
679 TpDBusPropertiesMixinPropImpl *prop_impl;
680 TpDBusPropertiesMixinPropInfo *prop_info;
681745 GValue value = { 0 };
682
683 iface_impl = _tp_dbus_properties_mixin_find_iface_impl (self,
684 interface_name, context);
685
686 if (iface_impl == NULL)
687 {
688 GError e = { TP_ERRORS, TP_ERROR_NOT_IMPLEMENTED,
689 "No properties known for that interface" };
690
691 dbus_g_method_return_error (context, &e);
692 return;
693 }
694
695 iface_info = iface_impl->mixin_priv;
696
697 prop_impl = _tp_dbus_properties_mixin_find_prop_impl (iface_impl,
698 property_name, context);
699
700 if (prop_impl == NULL)
701 {
702 GError e = { TP_ERRORS, TP_ERROR_NOT_IMPLEMENTED,
703 "Unknown property" };
704
705 dbus_g_method_return_error (context, &e);
706 return;
707 }
708
709 prop_info = prop_impl->mixin_priv;
710
711 if ((prop_info->flags & TP_DBUS_PROPERTIES_MIXIN_FLAG_READ) == 0)
712 {
713 GError e = { TP_ERRORS, TP_ERROR_PERMISSION_DENIED,
714 "This property is write-only" };
715
716 dbus_g_method_return_error (context, &e);
717 return;
718 }
719
720 g_value_init (&value, prop_info->type);
721 iface_impl->getter (self, iface_info->dbus_interface,
722 prop_info->name, &value, prop_impl->getter_data);
723 tp_svc_dbus_properties_return_from_get (context, &value);
724 g_value_unset (&value);
746 GError *error = NULL;
747
748 if (tp_dbus_properties_mixin_get (self, interface_name, property_name,
749 &value, &error))
750 {
751 tp_svc_dbus_properties_return_from_get (context, &value);
752 g_value_unset (&value);
753 }
754 else
755 {
756 dbus_g_method_return_error (context, error);
757 g_error_free (error);
758 }
725759 }
726760
727761 static void
738772 (GDestroyNotify) tp_g_value_slice_free);
739773
740774 iface_impl = _tp_dbus_properties_mixin_find_iface_impl (self,
741 interface_name, context);
775 interface_name);
742776
743777 if (iface_impl == NULL)
744778 goto out; /* no properties, but we need to return that */
782816 GError *error = NULL;
783817
784818 iface_impl = _tp_dbus_properties_mixin_find_iface_impl (self,
785 interface_name, context);
819 interface_name);
786820
787821 if (iface_impl == NULL)
788822 {
796830 iface_info = iface_impl->mixin_priv;
797831
798832 prop_impl = _tp_dbus_properties_mixin_find_prop_impl (iface_impl,
799 property_name, context);
833 property_name);
800834
801835 if (prop_impl == NULL)
802836 {
120120 void tp_dbus_properties_mixin_iface_init (gpointer g_iface,
121121 gpointer iface_data);
122122
123 gboolean tp_dbus_properties_mixin_get (GObject *self,
124 const gchar *interface_name, const gchar *property_name,
125 GValue *value, GError **error);
126
123127 G_END_DECLS
124128
125129 #endif /* #ifndef __TP_DBUS_PROPERTIES_MIXIN_H__ */
397397 */
398398
399399 /**
400 * SECTION:connection-simple-presence
401 * @title: Connection SimplePresence interface
402 * @short_description: client-side wrappers for the SimplePresence interface
403 * @see_also: #TpConnection
404 *
405 * Most instant messaging protocols allow users to advertise their presence
406 * status. In Telepathy, this is represented by the SimplePresence
407 * interface, which lets applications advertise the presence status of the
408 * local user, and query the presence status of their contacts.
409 *
410 * This section documents the auto-generated C wrappers for the
411 * SimplePresence interface, used with #TpConnection objects.
412 */
413
414 /**
400415 * SECTION:connection-presence
401416 * @title: Connection Presence interface
402417 * @short_description: client-side wrappers for the Presence interface
00 /*
11 * presence-mixin.c - Source for TpPresenceMixin
2 * Copyright (C) 2005-2007 Collabora Ltd.
2 * Copyright (C) 2005-2008 Collabora Ltd.
33 * Copyright (C) 2005-2007 Nokia Corporation
44 *
55 * This library is free software; you can redistribute it and/or
4747 * TpPresenceMixin implements all of the D-Bus methods in the Presence
4848 * interface.
4949 *
50 * Since 0.7.13 you can also implement
51 * #TpSvcConnectionInterfaceSimplePresence by using this mixin, in this case
52 * you should pass tp_presence_mixin_iface_init as an argument to
53 * G_IMPLEMENT_INTERFACE. Note that this can cause the status_available
54 * callback to be called while disconnected. Also to fully implement this
55 * interface some dbus properties need to be supported. To do that using this
56 * mixin the instance needs to use the dbus properties mixin and call
57 * tp_presence_mixin_simple_presence_init_dbus_properties in the class init
58 * function
59 *
60 *
5061 * Since: 0.5.13
5162 */
5263
5970 #include <telepathy-glib/enums.h>
6071 #include <telepathy-glib/errors.h>
6172 #include <telepathy-glib/gtypes.h>
73 #include <telepathy-glib/interfaces.h>
6274
6375 #define DEBUG_FLAG TP_DEBUG_PRESENCE
6476
7082 /* ... */
7183 };
7284
85 static GHashTable *construct_simple_presence_hash (
86 const TpPresenceStatusSpec *supported_statuses,
87 GHashTable *contact_statuses);
7388
7489 /**
7590 * deep_copy_hashtable
369384 presence_hash);
370385
371386 g_hash_table_destroy (presence_hash);
387
388 if (g_type_interface_peek (G_OBJECT_GET_CLASS (obj),
389 TP_TYPE_SVC_CONNECTION_INTERFACE_SIMPLE_PRESENCE) != NULL)
390 {
391 presence_hash = construct_simple_presence_hash (mixin_cls->statuses,
392 contact_statuses);
393 tp_svc_connection_interface_simple_presence_emit_presences_changed (obj,
394 presence_hash);
395
396 g_hash_table_destroy (presence_hash);
397 }
372398 }
373399
374400
764790 };
765791
766792
793 static int
794 check_for_status (GObject *object, const gchar *status, GError **error)
795 {
796 TpPresenceMixinClass *mixin_cls =
797 TP_PRESENCE_MIXIN_CLASS (G_OBJECT_GET_CLASS (object));
798 int i;
799
800 for (i = 0; mixin_cls->statuses[i].name != NULL; i++)
801 {
802 if (!tp_strdiff (mixin_cls->statuses[i].name, status))
803 break;
804 }
805
806 if (mixin_cls->statuses[i].name != NULL)
807 {
808 DEBUG ("Found status \"%s\", checking if it's available...",
809 (const gchar *) status);
810
811 if (mixin_cls->status_available
812 && !mixin_cls->status_available (object, i))
813 {
814 DEBUG ("requested status %s is not available",
815 (const gchar *) status);
816 g_set_error (error, TP_ERRORS, TP_ERROR_NOT_AVAILABLE,
817 "requested status '%s' is not available on this connection",
818 (const gchar *) status);
819 return -1;
820 }
821 }
822 else
823 {
824 DEBUG ("got unknown status identifier %s", status);
825 g_set_error (error, TP_ERRORS, TP_ERROR_INVALID_ARGUMENT,
826 "unknown status identifier: %s", status);
827 return -1;
828 }
829
830 return i;
831 }
832
767833 static void
768834 set_status_foreach (gpointer key, gpointer value, gpointer user_data)
769835 {
772838 TpPresenceMixinClass *mixin_cls =
773839 TP_PRESENCE_MIXIN_CLASS (G_OBJECT_GET_CLASS (data->obj));
774840 TpPresenceStatus status_to_set = { 0, };
775 int i;
841 int status;
842 GHashTable *optional_arguments = NULL;
776843
777844 DEBUG ("called.");
778845
781848 * tp_presence_mixin_set_status(). Therefore there are no problems with
782849 * sharing the foreach data like this.
783850 */
784
785 for (i = 0; mixin_cls->statuses[i].name != NULL; i++)
786 {
787 if (!tp_strdiff (mixin_cls->statuses[i].name, (const gchar *) key))
788 break;
789 }
790
791 if (mixin_cls->statuses[i].name != NULL)
792 {
793 GHashTable *optional_arguments = NULL;
794
795 DEBUG ("Found status \"%s\", checking if it's available...",
796 (const gchar *) key);
797
798 if (mixin_cls->status_available
799 && !mixin_cls->status_available (data->obj, i))
851 status = check_for_status (data->obj, (const gchar *) key, data->error);
852
853 if (status == -1)
854 {
855 data->retval = FALSE;
856 return;
857 }
858
859 DEBUG ("The status is available.");
860
861 if (value)
862 {
863 GHashTable *provided_arguments = (GHashTable *) value;
864 int j;
865 const TpPresenceStatusOptionalArgumentSpec *specs =
866 mixin_cls->statuses[status].optional_arguments;
867
868 for (j=0; specs != NULL && specs[j].name != NULL; j++)
800869 {
801 DEBUG ("requested status %s is not available", (const gchar *) key);
802 g_set_error (data->error, TP_ERRORS, TP_ERROR_NOT_AVAILABLE,
803 "requested status '%s' is not available on this connection",
804 (const gchar *) key);
805 data->retval = FALSE;
806 return;
870 GValue *provided_value =
871 g_hash_table_lookup (provided_arguments, specs[j].name);
872 GValue *new_value;
873
874 if (!provided_value)
875 continue;
876 new_value = tp_g_value_slice_dup (provided_value);
877
878 if (!optional_arguments)
879 optional_arguments =
880 g_hash_table_new_full (g_str_hash, g_str_equal, NULL,
881 (GDestroyNotify) tp_g_value_slice_free);
882
883 if (DEBUGGING)
884 {
885 gchar *value_contents = g_strdup_value_contents (new_value);
886 DEBUG ("Got optional argument (\"%s\", %s)", specs[j].name,
887 value_contents);
888 g_free (value_contents);
889 }
890
891 g_hash_table_insert (optional_arguments,
892 (gpointer) specs[j].name, new_value);
807893 }
808
809 DEBUG ("The status is available.");
810
811 if (value)
812 {
813 GHashTable *provided_arguments = (GHashTable *) value;
814 int j;
815 const TpPresenceStatusOptionalArgumentSpec *specs =
816 mixin_cls->statuses[i].optional_arguments;
817
818 for (j=0; specs != NULL && specs[j].name != NULL; j++)
819 {
820 GValue *provided_value =
821 g_hash_table_lookup (provided_arguments, specs[j].name);
822 GValue *new_value;
823
824 if (!provided_value)
825 continue;
826 new_value = tp_g_value_slice_dup (provided_value);
827
828 if (!optional_arguments)
829 optional_arguments =
830 g_hash_table_new_full (g_str_hash, g_str_equal, NULL,
831 (GDestroyNotify) tp_g_value_slice_free);
832
833 if (DEBUGGING)
834 {
835 gchar *value_contents = g_strdup_value_contents (new_value);
836 DEBUG ("Got optional argument (\"%s\", %s)", specs[j].name,
837 value_contents);
838 g_free (value_contents);
839 }
840
841 g_hash_table_insert (optional_arguments,
842 (gpointer) specs[j].name, new_value);
843 }
844 }
845
846 status_to_set.index = i;
847 status_to_set.optional_arguments = optional_arguments;
848
849 DEBUG ("About to try setting status \"%s\"", mixin_cls->statuses[i].name);
850
851 if (!mixin_cls->set_own_status (data->obj, &status_to_set, data->error))
852 {
853 DEBUG ("failed to set status");
854 data->retval = FALSE;
855 }
856
857 if (optional_arguments)
858 g_hash_table_destroy (optional_arguments);
859 }
860 else
861 {
862 DEBUG ("got unknown status identifier %s", (const gchar *) key);
863 g_set_error (data->error, TP_ERRORS, TP_ERROR_INVALID_ARGUMENT,
864 "unknown status identifier: %s", (const gchar *) key);
894 }
895
896 status_to_set.index = status;
897 status_to_set.optional_arguments = optional_arguments;
898
899 DEBUG ("About to try setting status \"%s\"",
900 mixin_cls->statuses[status].name);
901
902 if (!mixin_cls->set_own_status (data->obj, &status_to_set, data->error))
903 {
904 DEBUG ("failed to set status");
865905 data->retval = FALSE;
866906 }
907
908 if (optional_arguments)
909 g_hash_table_destroy (optional_arguments);
867910 }
868911
869912
943986 IMPLEMENT(set_status);
944987 #undef IMPLEMENT
945988 }
989
990 enum {
991 MIXIN_DP_SIMPLE_STATUSES,
992 NUM_MIXIN_SIMPLE_DBUS_PROPERTIES
993 };
994
995 static TpDBusPropertiesMixinPropImpl known_simple_presence_props[] = {
996 { "Statuses", NULL, NULL },
997 { NULL }
998 };
999
1000 static void
1001 tp_presence_mixin_get_simple_presence_dbus_property (GObject *object,
1002 GQuark interface,
1003 GQuark name,
1004 GValue *value,
1005 gpointer unused
1006 G_GNUC_UNUSED)
1007 {
1008 static GQuark q[NUM_MIXIN_SIMPLE_DBUS_PROPERTIES] = { 0, };
1009
1010 DEBUG ("called.");
1011
1012 if (G_UNLIKELY (q[0] == 0))
1013 {
1014 q[MIXIN_DP_SIMPLE_STATUSES] = g_quark_from_static_string ("Statuses");
1015 }
1016
1017 g_return_if_fail (object != NULL);
1018
1019 if (name == q[MIXIN_DP_SIMPLE_STATUSES])
1020 {
1021 TpPresenceMixinClass *mixin_cls =
1022 TP_PRESENCE_MIXIN_CLASS (G_OBJECT_GET_CLASS (object));
1023 GHashTable *ret;
1024 GValueArray *status;
1025 int i;
1026
1027 g_return_if_fail (G_VALUE_HOLDS_BOXED (value));
1028
1029 ret = g_hash_table_new_full (g_str_hash, g_str_equal,
1030 NULL, (GDestroyNotify) g_value_array_free);
1031
1032 for (i=0; mixin_cls->statuses[i].name != NULL; i++)
1033 {
1034 const TpPresenceStatusOptionalArgumentSpec *specs;
1035 int j;
1036 gboolean message = FALSE;
1037
1038 if (mixin_cls->status_available
1039 && !mixin_cls->status_available(object, i))
1040 continue;
1041
1042 specs = mixin_cls->statuses[i].optional_arguments;
1043
1044 for (j = 0; specs != NULL && specs[j].name != NULL; j++)
1045 {
1046 if (!tp_strdiff (specs[j].name, "message"))
1047 {
1048 message = TRUE;
1049 break;
1050 }
1051 }
1052
1053 status = g_value_array_new (3);
1054
1055 g_value_array_append (status, NULL);
1056 g_value_init (g_value_array_get_nth (status, 0), G_TYPE_UINT);
1057 g_value_set_uint (g_value_array_get_nth (status, 0),
1058 mixin_cls->statuses[i].presence_type);
1059
1060 g_value_array_append (status, NULL);
1061 g_value_init (g_value_array_get_nth (status, 1), G_TYPE_BOOLEAN);
1062 g_value_set_boolean (g_value_array_get_nth (status, 1),
1063 mixin_cls->statuses[i].self);
1064
1065 g_value_array_append (status, NULL);
1066 g_value_init (g_value_array_get_nth (status, 2), G_TYPE_BOOLEAN);
1067 g_value_set_boolean (g_value_array_get_nth (status, 2), message);
1068
1069 g_hash_table_insert (ret, (gchar*) mixin_cls->statuses[i].name,
1070 status);
1071 }
1072 g_value_take_boxed (value, ret);
1073 }
1074 else
1075 {
1076 g_return_if_reached ();
1077 }
1078
1079 }
1080
1081 /**
1082 * tp_presence_mixin_simple_presence_init_dbus_properties:
1083 * @cls: The class of an object with this mixin
1084 *
1085 * Set up #TpDBusPropertiesMixinClass to use this mixin's implementation of
1086 * the SimplePresence interface's properties.
1087 *
1088 * This uses tp_presence_mixin_get_simple_dbus_property() as the property
1089 * getter and sets up a list of the supported properties for it.
1090 *
1091 * Since: 0.7.13
1092 */
1093 void
1094 tp_presence_mixin_simple_presence_init_dbus_properties (GObjectClass *cls)
1095 {
1096
1097 tp_dbus_properties_mixin_implement_interface (cls,
1098 TP_IFACE_QUARK_CONNECTION_INTERFACE_SIMPLE_PRESENCE,
1099 tp_presence_mixin_get_simple_presence_dbus_property,
1100 NULL, known_simple_presence_props);
1101 }
1102
1103 /**
1104 * tp_presence_mixin_simple_presence_set_presence
1105 *
1106 * Implements D-Bus method SetPresence
1107 * on interface org.freedesktop.Telepathy.Connection.Interface.SimplePresence
1108 *
1109 * @context: The D-Bus invocation context to use to return values
1110 * or throw an error.
1111 */
1112 static void
1113 tp_presence_mixin_simple_presence_set_presence (
1114 TpSvcConnectionInterfaceSimplePresence *iface,
1115 const gchar *status,
1116 const gchar *message,
1117 DBusGMethodInvocation *context)
1118 {
1119 GObject *obj = (GObject *) iface;
1120 TpPresenceMixinClass *mixin_cls =
1121 TP_PRESENCE_MIXIN_CLASS (G_OBJECT_GET_CLASS (obj));
1122 TpPresenceStatus status_to_set = { 0, };
1123 int s;
1124 GError *error = NULL;
1125 GHashTable *optional_arguments = NULL;
1126 GValue vmessage = { 0, };
1127
1128 DEBUG ("called.");
1129
1130 s = check_for_status (obj, status, &error);
1131 if (s == -1)
1132 goto out;
1133
1134 status_to_set.index = s;
1135
1136 if (*message != '\0')
1137 {
1138 g_value_init (&vmessage, G_TYPE_STRING);
1139 g_value_set_string (&vmessage, message);
1140
1141 optional_arguments = g_hash_table_new (g_str_hash, g_str_equal);
1142
1143 g_hash_table_insert (optional_arguments, "message", &vmessage);
1144
1145 status_to_set.optional_arguments = optional_arguments;
1146 }
1147
1148 mixin_cls->set_own_status (obj, &status_to_set, &error);
1149
1150 out:
1151 if (error == NULL)
1152 {
1153 tp_svc_connection_interface_simple_presence_return_from_set_presence (
1154 context);
1155 }
1156 else
1157 {
1158 dbus_g_method_return_error (context, error);
1159 g_error_free (error);
1160 }
1161
1162 if (optional_arguments != NULL)
1163 g_hash_table_destroy (optional_arguments);
1164 }
1165
1166 static void
1167 construct_simple_presence_hash_foreach (gpointer key,
1168 gpointer value,
1169 gpointer user_data)
1170 {
1171 TpHandle handle = GPOINTER_TO_UINT (key);
1172 TpPresenceStatus *status = (TpPresenceStatus *) value;
1173 struct _i_absolutely_love_g_hash_table_foreach *data =
1174 (struct _i_absolutely_love_g_hash_table_foreach *) user_data;
1175 GValueArray *presence;
1176 const gchar *status_name;
1177 TpConnectionPresenceType status_type;
1178 const gchar *message = NULL;
1179
1180 status_name = data->supported_statuses[status->index].name;
1181 status_type = data->supported_statuses[status->index].presence_type;
1182
1183 if (status->optional_arguments != NULL)
1184 {
1185 GValue *val;
1186 val = g_hash_table_lookup (status->optional_arguments, "message");
1187 if (val != NULL)
1188 message = g_value_get_string (val);
1189 }
1190
1191 if (message == NULL)
1192 message = "";
1193
1194 presence = g_value_array_new (3);
1195
1196 g_value_array_append (presence, NULL);
1197 g_value_init (g_value_array_get_nth (presence, 0), G_TYPE_UINT);
1198 g_value_set_uint (g_value_array_get_nth (presence, 0), status_type);
1199
1200 g_value_array_append (presence, NULL);
1201 g_value_init (g_value_array_get_nth (presence, 1), G_TYPE_STRING);
1202 g_value_set_string (g_value_array_get_nth (presence, 1), status_name);
1203
1204 g_value_array_append (presence, NULL);
1205 g_value_init (g_value_array_get_nth (presence, 2), G_TYPE_STRING);
1206 g_value_set_string (g_value_array_get_nth (presence, 2), message);
1207
1208 g_hash_table_insert (data->presence_hash, GUINT_TO_POINTER (handle),
1209 presence);
1210 }
1211
1212 static GHashTable *
1213 construct_simple_presence_hash (const TpPresenceStatusSpec *supported_statuses,
1214 GHashTable *contact_statuses)
1215 {
1216 struct _i_absolutely_love_g_hash_table_foreach data = { supported_statuses,
1217 contact_statuses, NULL };
1218
1219 DEBUG ("called.");
1220
1221 data.presence_hash = g_hash_table_new_full (NULL, NULL, NULL,
1222 (GDestroyNotify) (GDestroyNotify) g_value_array_free);
1223
1224 g_hash_table_foreach (contact_statuses,
1225 construct_simple_presence_hash_foreach, &data);
1226
1227 return data.presence_hash;
1228 }
1229
1230 /**
1231 * tp_presence_mixin_get_simple_presence:
1232 *
1233 * Implements D-Bus method GetPresence
1234 * on interface org.freedesktop.Telepathy.Connection.Interface.SimplePresence
1235 *
1236 * @context: The D-Bus invocation context to use to return values
1237 * or throw an error.
1238 */
1239 static void
1240 tp_presence_mixin_simple_presence_get_presences (
1241 TpSvcConnectionInterfaceSimplePresence *iface,
1242 const GArray *contacts,
1243 DBusGMethodInvocation *context)
1244 {
1245 GObject *obj = (GObject *) iface;
1246 TpBaseConnection *conn = TP_BASE_CONNECTION (obj);
1247 TpHandleRepoIface *contact_repo = tp_base_connection_get_handles (conn,
1248 TP_HANDLE_TYPE_CONTACT);
1249 TpPresenceMixinClass *mixin_cls =
1250 TP_PRESENCE_MIXIN_CLASS (G_OBJECT_GET_CLASS (obj));
1251 GHashTable *contact_statuses;
1252 GHashTable *presence_hash;
1253 GError *error = NULL;
1254
1255 DEBUG ("called.");
1256
1257 TP_BASE_CONNECTION_ERROR_IF_NOT_CONNECTED (conn, context);
1258
1259 if (contacts->len == 0)
1260 {
1261 presence_hash = g_hash_table_new (g_direct_hash, g_direct_equal);
1262 tp_svc_connection_interface_simple_presence_return_from_get_presences (
1263 context, presence_hash);
1264 g_hash_table_destroy (presence_hash);
1265 return;
1266 }
1267
1268 if (!tp_handles_are_valid (contact_repo, contacts, FALSE, &error))
1269 {
1270 dbus_g_method_return_error (context, error);
1271 g_error_free (error);
1272 return;
1273 }
1274
1275 contact_statuses = mixin_cls->get_contact_statuses (obj, contacts, &error);
1276
1277 if (!contact_statuses)
1278 {
1279 dbus_g_method_return_error (context, error);
1280 g_error_free(error);
1281 return;
1282 }
1283
1284 presence_hash = construct_simple_presence_hash (mixin_cls->statuses,
1285 contact_statuses);
1286 tp_svc_connection_interface_simple_presence_return_from_get_presences (
1287 context, presence_hash);
1288 g_hash_table_destroy (presence_hash);
1289 g_hash_table_destroy (contact_statuses);
1290 }
1291
1292 /**
1293 * tp_presence_mixin_simple_presence_iface_init:
1294 * @g_iface: A pointer to the #TpSvcConnectionInterfaceSimplePresenceClass in
1295 * an object class
1296 * @iface_data: Ignored
1297 *
1298 * Fill in the vtable entries needed to implement the simple presence interface
1299 * using this mixin. This function should usually be called via
1300 * G_IMPLEMENT_INTERFACE.
1301 *
1302 * Since: 0.7.13
1303 */
1304 void
1305 tp_presence_mixin_simple_presence_iface_init (gpointer g_iface,
1306 gpointer iface_data)
1307 {
1308 TpSvcConnectionInterfaceSimplePresenceClass *klass =
1309 (TpSvcConnectionInterfaceSimplePresenceClass *)g_iface;
1310
1311 #define IMPLEMENT(x) tp_svc_connection_interface_simple_presence_implement_##x\
1312 (klass, tp_presence_mixin_simple_presence_##x)
1313 IMPLEMENT(set_presence);
1314 IMPLEMENT(get_presences);
1315 #undef IMPLEMENT
1316 }
115115 *
116116 * Signature of the callback used to determine if a given status is currently
117117 * available to be set on the connection.
118 *
119 * When implementing the
120 * org.freedesktop.Telepathy.Connection.Interface.SimplePresence interface
121 * this can be called while DISCONNECTED to determine which statuses can be set
122 * in that state.
118123 *
119124 * Returns: %TRUE if the status is available, %FALSE if not.
120125 */
250255 TpHandle handle, const TpPresenceStatus *status);
251256
252257 void tp_presence_mixin_iface_init (gpointer g_iface, gpointer iface_data);
258 void tp_presence_mixin_simple_presence_iface_init (gpointer g_iface, gpointer iface_data);
259 void tp_presence_mixin_simple_presence_init_dbus_properties (GObjectClass *cls);
253260
254261 G_END_DECLS
255262
576576 }
577577
578578 /**
579 * tp_text_mixin_has_pending_messages:
580 * @obj: An object with this mixin
581 * @first_sender: If not %NULL, used to store the sender of the oldest pending
582 * message
583 *
584 * Return whether the channel @obj has unacknowledged messages. If so, and
585 * @first_sender is not %NULL, the handle of the sender of the first message
586 * is placed in it, without incrementing the handle's reference count.
587 *
588 * Returns: %TRUE if there are pending messages
589 */
590 gboolean
591 tp_text_mixin_has_pending_messages (GObject *obj,
592 TpHandle *first_sender)
593 {
594 TpTextMixin *mixin = TP_TEXT_MIXIN (obj);
595 _PendingMessage *msg = g_queue_peek_head (mixin->priv->pending);
596
597 if (msg != NULL && first_sender != NULL)
598 {
599 *first_sender = msg->sender;
600 }
601
602 return (msg != NULL);
603 }
604
605 /**
579606 * tp_text_mixin_iface_init:
580607 * @g_iface: A pointer to the #TpSvcChannelTypeTextClass in an object class
581608 * @iface_data: Ignored
9696 GError **error);
9797 void tp_text_mixin_clear (GObject *obj);
9898
99 gboolean tp_text_mixin_has_pending_messages (GObject *obj,
100 TpHandle *first_sender);
101
99102 void tp_text_mixin_iface_init (gpointer g_iface, gpointer iface_data);
100103
101104 G_END_DECLS
0 Version: TELEPATHY_GLIB_0.7.13
1 Extends: TELEPATHY_GLIB_0.7.12
2 Release: 0.7.13
3
4 tp_cli_connection_interface_simple_presence_call_get_presences
5 tp_cli_connection_interface_simple_presence_call_set_presence
6 tp_cli_connection_interface_simple_presence_connect_to_presences_changed
7 tp_cli_connection_interface_simple_presence_run_get_presences
8 tp_cli_connection_interface_simple_presence_run_set_presence
9 tp_dbus_properties_mixin_get
10 tp_iface_quark_connection_interface_simple_presence
11 tp_presence_mixin_simple_presence_iface_init
12 tp_presence_mixin_simple_presence_init_dbus_properties
13 tp_svc_connection_interface_simple_presence_emit_presences_changed
14 tp_svc_connection_interface_simple_presence_get_type
15 tp_svc_connection_interface_simple_presence_implement_get_presences
16 tp_svc_connection_interface_simple_presence_implement_set_presence
17 tp_text_mixin_has_pending_messages
18 tp_type_dbus_hash_s_28ubb_29
19 tp_type_dbus_hash_u_28uss_29
20 tp_type_dbus_struct_ubb
21 tp_type_dbus_struct_uss
196196 static void
197197 service_iface_init (gpointer g_iface, gpointer iface_data)
198198 {
199 TpSvcConnectionClass *klass = (TpSvcConnectionClass *)g_iface;
199 TpSvcConnectionClass *klass = g_iface;
200200
201201 #define IMPLEMENT(prefix,x) tp_svc_connection_implement_##x (klass, \
202202 bug16307_connection_##prefix##x)
2323 fail=1
2424 fi
2525
26 if grep -En '[(][[:alnum:]_]+ ?\*[)][(]?[[:alpha:]_]' "$@"; then
27 echo "^^^ Our coding style is to have a space between a cast and the "
28 echo " thing being cast"
29 fail=1
30 fi
31
32 # this only spots casts
33 if grep -En '[(][[:alnum:]_]+\*+[)]' "$@"; then
34 echo "^^^ Our coding style is to have a space before the * of pointer types"
35 echo " (regex 1)"
36 fail=1
37 fi
38 # ... and this only spots variable declarations and function return types
39 if grep -En '^ *(static |const |)* *[[:alnum:]_]+\*+([[:alnum:]_]|;|$)' \
40 "$@"; then
41 echo "^^^ Our coding style is to have a space before the * of pointer types"
42 echo " (regex 2)"
43 fail=1
44 fi
45
2646 if test -n "$CHECK_FOR_LONG_LINES"
2747 then
2848 if egrep -n '.{80,}' "$@"
2222 xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0"
2323 xmlns:html="http://www.w3.org/1999/xhtml"
2424 exclude-result-prefixes="tp html">
25 <!--Don't move the declaration of the HTML namespace up here - XMLNSs
25 <!--Don't move the declaration of the HTML namespace up here — XMLNSs
2626 don't work ideally in the presence of two things that want to use the
2727 absence of a prefix, sadly. -->
28
29 <xsl:param name="allow-undefined-interfaces" select="false()"/>
2830
2931 <xsl:template match="html:* | @*" mode="html">
3032 <xsl:copy>
3840 </xsl:call-template>
3941 </xsl:template>
4042
43 <!-- tp:dbus-ref: reference a D-Bus interface, signal, method or property -->
44 <xsl:template match="tp:dbus-ref" mode="html">
45 <xsl:variable name="name">
46 <xsl:choose>
47 <xsl:when test="@namespace">
48 <xsl:value-of select="@namespace"/>
49 <xsl:text>.</xsl:text>
50 </xsl:when>
51 </xsl:choose>
52 <xsl:value-of select="string(.)"/>
53 </xsl:variable>
54
55 <xsl:choose>
56 <xsl:when test="//interface[@name=$name]
57 or //interface/method[concat(../@name, '.', @name)=$name]
58 or //interface/signal[concat(../@name, '.', @name)=$name]
59 or //interface/property[concat(../@name, '.', @name)=$name]
60 or //interface[@name=concat($name, '.DRAFT')]
61 or //interface/method[
62 concat(../@name, '.', @name)=concat($name, '.DRAFT')]
63 or //interface/signal[
64 concat(../@name, '.', @name)=concat($name, '.DRAFT')]
65 or //interface/property[
66 concat(../@name, '.', @name)=concat($name, '.DRAFT')]
67 ">
68 <a xmlns="http://www.w3.org/1999/xhtml" href="#{$name}">
69 <xsl:value-of select="string(.)"/>
70 </a>
71 </xsl:when>
72
73 <xsl:when test="$allow-undefined-interfaces">
74 <span xmlns="http://www.w3.org/1999/xhtml" title="defined elsewhere">
75 <xsl:value-of select="string(.)"/>
76 </span>
77 </xsl:when>
78
79 <xsl:otherwise>
80 <xsl:message terminate="yes">
81 <xsl:text>ERR: cannot find D-Bus interface, method, </xsl:text>
82 <xsl:text>signal or property called '</xsl:text>
83 <xsl:value-of select="$name"/>
84 <xsl:text>'&#10;</xsl:text>
85 </xsl:message>
86 </xsl:otherwise>
87 </xsl:choose>
88 </xsl:template>
89
90 <!-- tp:member-ref: reference a property of the current interface -->
91 <xsl:template match="tp:member-ref" mode="html">
92 <xsl:variable name="prefix" select="concat(ancestor::interface/@name,
93 '.')"/>
94 <xsl:variable name="name" select="string(.)"/>
95
96 <xsl:if test="not(ancestor::interface)">
97 <xsl:message terminate="yes">
98 <xsl:text>ERR: Cannot use tp:member-ref when not in an</xsl:text>
99 <xsl:text> &lt;interface&gt;&#10;</xsl:text>
100 </xsl:message>
101 </xsl:if>
102
103 <xsl:choose>
104 <xsl:when test="ancestor::interface/signal[@name=$name]"/>
105 <xsl:when test="ancestor::interface/method[@name=$name]"/>
106 <xsl:when test="ancestor::interface/property[@name=$name]"/>
107 <xsl:otherwise>
108 <xsl:message terminate="yes">
109 <xsl:text>ERR: interface </xsl:text>
110 <xsl:value-of select="ancestor::interface/@name"/>
111 <xsl:text> has no signal/method/property called </xsl:text>
112 <xsl:value-of select="$name"/>
113 <xsl:text>&#10;</xsl:text>
114 </xsl:message>
115 </xsl:otherwise>
116 </xsl:choose>
117
118 <a xmlns="http://www.w3.org/1999/xhtml" href="#{$prefix}{$name}">
119 <xsl:value-of select="$name"/>
120 </a>
121 </xsl:template>
122
41123 <xsl:template match="*" mode="identity">
42124 <xsl:copy>
43125 <xsl:apply-templates mode="identity"/>
45127 </xsl:template>
46128
47129 <xsl:template match="tp:docstring">
48 <xsl:apply-templates select="text() | html:* | tp:rationale" mode="html"/>
130 <xsl:apply-templates mode="html"/>
49131 </xsl:template>
50132
51133 <xsl:template match="tp:added">
52 <p class="added">Added in version <xsl:value-of select="@version"/>.
134 <p class="added" xmlns="http://www.w3.org/1999/xhtml">Added in
135 version <xsl:value-of select="@version"/>.
53136 <xsl:apply-templates select="node()" mode="html"/></p>
54137 </xsl:template>
55138
56139 <xsl:template match="tp:changed">
57140 <xsl:choose>
58141 <xsl:when test="node()">
59 <p class="changed">Changed in version <xsl:value-of select="@version"/>:
142 <p class="changed" xmlns="http://www.w3.org/1999/xhtml">Changed in
143 version <xsl:value-of select="@version"/>:
60144 <xsl:apply-templates select="node()" mode="html"/></p>
61145 </xsl:when>
62146 <xsl:otherwise>
67151 </xsl:template>
68152
69153 <xsl:template match="tp:deprecated">
70 <p class="deprecated">Deprecated since version
71 <xsl:value-of select="@version"/>.
154 <p class="deprecated" xmlns="http://www.w3.org/1999/xhtml">Deprecated
155 since version <xsl:value-of select="@version"/>.
72156 <xsl:apply-templates select="node()" mode="html"/></p>
73157 </xsl:template>
74158
130214
131215 <xsl:template match="/tp:spec/tp:copyright">
132216 <div xmlns="http://www.w3.org/1999/xhtml">
133 <xsl:apply-templates/>
217 <xsl:apply-templates mode="text"/>
134218 </div>
135219 </xsl:template>
136220 <xsl:template match="/tp:spec/tp:license">
223307 </xsl:template>
224308
225309 <xsl:template match="tp:flags">
310
311 <xsl:if test="not(@name) or @name = ''">
312 <xsl:message terminate="yes">
313 <xsl:text>ERR: missing @name on a tp:flags type&#10;</xsl:text>
314 </xsl:message>
315 </xsl:if>
316
317 <xsl:if test="not(@type) or @type = ''">
318 <xsl:message terminate="yes">
319 <xsl:text>ERR: missing @type on tp:flags type</xsl:text>
320 <xsl:value-of select="@name"/>
321 <xsl:text>&#10;</xsl:text>
322 </xsl:message>
323 </xsl:if>
324
226325 <h3>
227326 <a name="type-{@name}">
228327 <xsl:value-of select="@name"/>
263362 </xsl:template>
264363
265364 <xsl:template match="tp:enum">
365
366 <xsl:if test="not(@name) or @name = ''">
367 <xsl:message terminate="yes">
368 <xsl:text>ERR: missing @name on a tp:enum type&#10;</xsl:text>
369 </xsl:message>
370 </xsl:if>
371
372 <xsl:if test="not(@type) or @type = ''">
373 <xsl:message terminate="yes">
374 <xsl:text>ERR: missing @type on tp:enum type</xsl:text>
375 <xsl:value-of select="@name"/>
376 <xsl:text>&#10;</xsl:text>
377 </xsl:message>
378 </xsl:if>
379
266380 <h3 xmlns="http://www.w3.org/1999/xhtml">
267381 <a name="type-{@name}">
268382 <xsl:value-of select="@name"/>
303417 </xsl:template>
304418
305419 <xsl:template match="property">
420
421 <xsl:if test="not(parent::interface)">
422 <xsl:message terminate="yes">
423 <xsl:text>ERR: property </xsl:text>
424 <xsl:value-of select="@name"/>
425 <xsl:text> does not have an interface as parent&#10;</xsl:text>
426 </xsl:message>
427 </xsl:if>
428
429 <xsl:if test="not(@name) or @name = ''">
430 <xsl:message terminate="yes">
431 <xsl:text>ERR: missing @name on a property of </xsl:text>
432 <xsl:value-of select="../@name"/>
433 <xsl:text>&#10;</xsl:text>
434 </xsl:message>
435 </xsl:if>
436
437 <xsl:if test="not(@type) or @type = ''">
438 <xsl:message terminate="yes">
439 <xsl:text>ERR: missing @type on property </xsl:text>
440 <xsl:value-of select="concat(../@name, '.', @name)"/>
441 <xsl:text>: '</xsl:text>
442 <xsl:value-of select="@access"/>
443 <xsl:text>'&#10;</xsl:text>
444 </xsl:message>
445 </xsl:if>
446
306447 <dt xmlns="http://www.w3.org/1999/xhtml">
307448 <a name="{concat(../@name, '.', @name)}">
308449 <code><xsl:value-of select="@name"/></code>
309450 </a>
310 <xsl:text> - </xsl:text>
451 <xsl:text> − </xsl:text>
311452 <code><xsl:value-of select="@type"/></code>
312453 <xsl:call-template name="parenthesized-tp-type"/>
313454 <xsl:text>, </xsl:text>
322463 <xsl:text>read/write</xsl:text>
323464 </xsl:when>
324465 <xsl:otherwise>
325 <xsl:text>access: </xsl:text>
326 <code><xsl:value-of select="@access"/></code>
466 <xsl:message terminate="yes">
467 <xsl:text>ERR: unknown or missing value for </xsl:text>
468 <xsl:text>@access on property </xsl:text>
469 <xsl:value-of select="concat(../@name, '.', @name)"/>
470 <xsl:text>: '</xsl:text>
471 <xsl:value-of select="@access"/>
472 <xsl:text>'&#10;</xsl:text>
473 </xsl:message>
327474 </xsl:otherwise>
328475 </xsl:choose>
329476 </dt>
338485 <xsl:template match="tp:property">
339486 <dt xmlns="http://www.w3.org/1999/xhtml">
340487 <xsl:if test="@name">
341 <code><xsl:value-of select="@name"/></code> -
488 <code><xsl:value-of select="@name"/></code> −
342489 </xsl:if>
343490 <code><xsl:value-of select="@type"/></code>
344491 </dt>
355502 <h3>
356503 <a name="type-{@name}">
357504 <xsl:value-of select="@name"/>
358 </a> - a{
505 </a> − a{
359506 <xsl:for-each select="tp:member">
360507 <xsl:value-of select="@type"/>
361508 <xsl:text>: </xsl:text>
385532
386533 <xsl:template match="tp:simple-type | tp:enum | tp:flags | tp:external-type"
387534 mode="in-index">
388 - <xsl:value-of select="@type"/>
535 − <xsl:value-of select="@type"/>
389536 </xsl:template>
390537
391538 <xsl:template match="tp:simple-type">
539
540 <xsl:if test="not(@name) or @name = ''">
541 <xsl:message terminate="yes">
542 <xsl:text>ERR: missing @name on a tp:simple-type&#10;</xsl:text>
543 </xsl:message>
544 </xsl:if>
545
546 <xsl:if test="not(@type) or @type = ''">
547 <xsl:message terminate="yes">
548 <xsl:text>ERR: missing @type on tp:simple-type</xsl:text>
549 <xsl:value-of select="@name"/>
550 <xsl:text>&#10;</xsl:text>
551 </xsl:message>
552 </xsl:if>
553
392554 <div xmlns="http://www.w3.org/1999/xhtml" class="simple-type">
393555 <h3>
394556 <a name="type-{@name}">
395557 <xsl:value-of select="@name"/>
396 </a> - <xsl:value-of select="@type"/>
558 </a> − <xsl:value-of select="@type"/>
397559 </h3>
398560 <div class="docstring">
399561 <xsl:apply-templates select="tp:docstring"/>
405567 </xsl:template>
406568
407569 <xsl:template match="tp:external-type">
570
571 <xsl:if test="not(@name) or @name = ''">
572 <xsl:message terminate="yes">
573 <xsl:text>ERR: missing @name on a tp:external-type&#10;</xsl:text>
574 </xsl:message>
575 </xsl:if>
576
577 <xsl:if test="not(@type) or @type = ''">
578 <xsl:message terminate="yes">
579 <xsl:text>ERR: missing @type on tp:external-type</xsl:text>
580 <xsl:value-of select="@name"/>
581 <xsl:text>&#10;</xsl:text>
582 </xsl:message>
583 </xsl:if>
584
408585 <div xmlns="http://www.w3.org/1999/xhtml" class="external-type">
409586 <dt>
410587 <a name="type-{@name}">
411588 <xsl:value-of select="@name"/>
412 </a> - <xsl:value-of select="@type"/>
589 </a> − <xsl:value-of select="@type"/>
413590 </dt>
414591 <dd>Defined by: <xsl:value-of select="@from"/></dd>
415592 </div>
416593 </xsl:template>
417594
418595 <xsl:template match="tp:struct" mode="in-index">
419 - ( <xsl:for-each select="tp:member">
596 − ( <xsl:for-each select="tp:member">
420597 <xsl:value-of select="@type"/>
421598 <xsl:if test="position() != last()">, </xsl:if>
422599 </xsl:for-each> )
423600 </xsl:template>
424601
425602 <xsl:template match="tp:mapping" mode="in-index">
426 - a{ <xsl:for-each select="tp:member">
603 − a{ <xsl:for-each select="tp:member">
427604 <xsl:value-of select="@type"/>
428605 <xsl:if test="position() != last()"> &#x2192; </xsl:if>
429606 </xsl:for-each> }
434611 <h3>
435612 <a name="type-{@name}">
436613 <xsl:value-of select="@name"/>
437 </a> - (
614 </a> − (
438615 <xsl:for-each select="tp:member">
439616 <xsl:value-of select="@type"/>
440617 <xsl:text>: </xsl:text>
470647 </xsl:template>
471648
472649 <xsl:template match="method">
650
651 <xsl:if test="not(parent::interface)">
652 <xsl:message terminate="yes">
653 <xsl:text>ERR: method </xsl:text>
654 <xsl:value-of select="@name"/>
655 <xsl:text> does not have an interface as parent&#10;</xsl:text>
656 </xsl:message>
657 </xsl:if>
658
659 <xsl:if test="not(@name) or @name = ''">
660 <xsl:message terminate="yes">
661 <xsl:text>ERR: missing @name on a method of </xsl:text>
662 <xsl:value-of select="../@name"/>
663 <xsl:text>&#10;</xsl:text>
664 </xsl:message>
665 </xsl:if>
666
667 <xsl:for-each select="arg">
668 <xsl:if test="not(@type) or @type = ''">
669 <xsl:message terminate="yes">
670 <xsl:text>ERR: an arg of method </xsl:text>
671 <xsl:value-of select="concat(../../@name, '.', ../@name)"/>
672 <xsl:text> has no type</xsl:text>
673 </xsl:message>
674 </xsl:if>
675 <xsl:choose>
676 <xsl:when test="@direction='in'">
677 <xsl:if test="not(@name) or @name = ''">
678 <xsl:message terminate="yes">
679 <xsl:text>ERR: an 'in' arg of method </xsl:text>
680 <xsl:value-of select="concat(../../@name, '.', ../@name)"/>
681 <xsl:text> has no name</xsl:text>
682 </xsl:message>
683 </xsl:if>
684 </xsl:when>
685 <xsl:when test="@direction='out'">
686 <!-- FIXME: This is commented out until someone with a lot of time
687 on their hands goes through the spec adding names to all the "out"
688 arguments
689
690 <xsl:if test="not(@name) or @name = ''">
691 <xsl:message terminate="no">
692 <xsl:text>INFO: an 'out' arg of method </xsl:text>
693 <xsl:value-of select="concat(../../@name, '.', ../@name)"/>
694 <xsl:text> has no name</xsl:text>
695 </xsl:message>
696 </xsl:if>-->
697 </xsl:when>
698 <xsl:otherwise>
699 <xsl:message terminate="yes">
700 <xsl:text>ERR: an arg of method </xsl:text>
701 <xsl:value-of select="concat(../../@name, '.', ../@name)"/>
702 <xsl:text> has direction neither 'in' nor 'out'</xsl:text>
703 </xsl:message>
704 </xsl:otherwise>
705 </xsl:choose>
706 </xsl:for-each>
707
473708 <div xmlns="http://www.w3.org/1999/xhtml" class="method">
474709 <h3 xmlns="http://www.w3.org/1999/xhtml">
475710 <a name="{concat(../@name, concat('.', @name))}">
531766
532767 <xsl:template name="tp-type">
533768 <xsl:param name="tp-type"/>
769 <xsl:param name="type"/>
534770
535771 <xsl:variable name="single-type">
536772 <xsl:choose>
543779 </xsl:choose>
544780 </xsl:variable>
545781
546 <xsl:choose>
547 <xsl:when test="//tp:simple-type[@name=$single-type]" />
548 <xsl:when test="//tp:struct[@name=$single-type]" />
549 <xsl:when test="//tp:enum[@name=$single-type]" />
550 <xsl:when test="//tp:flags[@name=$single-type]" />
551 <xsl:when test="//tp:mapping[@name=$single-type]" />
552 <xsl:when test="//tp:external-type[@name=$single-type]" />
553 <xsl:otherwise>
554 <xsl:message terminate="yes">
555 <xsl:text>ERR: Unable to find type '</xsl:text>
556 <xsl:value-of select="$tp-type"/>
557 <xsl:text>'&#10;</xsl:text>
558 </xsl:message>
559 </xsl:otherwise>
560 </xsl:choose>
782 <xsl:variable name="type-of-tp-type">
783 <xsl:if test="contains($tp-type, '[]')">
784 <!-- one 'a', plus one for each [ after the [], and delete all ] -->
785 <xsl:value-of select="concat('a',
786 translate(substring-after($tp-type, '[]'), '[]', 'a'))"/>
787 </xsl:if>
788
789 <xsl:choose>
790 <xsl:when test="//tp:simple-type[@name=$single-type]">
791 <xsl:value-of select="string(//tp:simple-type[@name=$single-type]/@type)"/>
792 </xsl:when>
793 <xsl:when test="//tp:struct[@name=$single-type]">
794 <xsl:text>(</xsl:text>
795 <xsl:for-each select="//tp:struct[@name=$single-type]/tp:member">
796 <xsl:value-of select="@type"/>
797 </xsl:for-each>
798 <xsl:text>)</xsl:text>
799 </xsl:when>
800 <xsl:when test="//tp:enum[@name=$single-type]">
801 <xsl:value-of select="string(//tp:enum[@name=$single-type]/@type)"/>
802 </xsl:when>
803 <xsl:when test="//tp:flags[@name=$single-type]">
804 <xsl:value-of select="string(//tp:flags[@name=$single-type]/@type)"/>
805 </xsl:when>
806 <xsl:when test="//tp:mapping[@name=$single-type]">
807 <xsl:text>a{</xsl:text>
808 <xsl:for-each select="//tp:mapping[@name=$single-type]/tp:member">
809 <xsl:value-of select="@type"/>
810 </xsl:for-each>
811 <xsl:text>}</xsl:text>
812 </xsl:when>
813 <xsl:when test="//tp:external-type[@name=$single-type]">
814 <xsl:value-of select="string(//tp:external-type[@name=$single-type]/@type)"/>
815 </xsl:when>
816 <xsl:otherwise>
817 <xsl:message terminate="yes">
818 <xsl:text>ERR: Unable to find type '</xsl:text>
819 <xsl:value-of select="$tp-type"/>
820 <xsl:text>'&#10;</xsl:text>
821 </xsl:message>
822 </xsl:otherwise>
823 </xsl:choose>
824 </xsl:variable>
825
826 <xsl:if test="string($type) != '' and
827 string($type-of-tp-type) != string($type)">
828 <xsl:message terminate="yes">
829 <xsl:text>ERR: tp:type '</xsl:text>
830 <xsl:value-of select="$tp-type"/>
831 <xsl:text>' has D-Bus type '</xsl:text>
832 <xsl:value-of select="$type-of-tp-type"/>
833 <xsl:text>' but has been used with type='</xsl:text>
834 <xsl:value-of select="$type"/>
835 <xsl:text>'&#10;</xsl:text>
836 </xsl:message>
837 </xsl:if>
838
561839 <a href="#type-{$single-type}"><xsl:value-of select="$tp-type"/></a>
562840
563841 </xsl:template>
564842
565843 <xsl:template name="parenthesized-tp-type">
566844 <xsl:if test="@tp:type">
567 <xsl:text>(</xsl:text>
845 <xsl:text> (</xsl:text>
568846 <xsl:call-template name="tp-type">
569847 <xsl:with-param name="tp-type" select="@tp:type"/>
848 <xsl:with-param name="type" select="@type"/>
570849 </xsl:call-template>
571850 <xsl:text>)</xsl:text>
572851 </xsl:if>
574853
575854 <xsl:template match="tp:member" mode="members-in-docstring">
576855 <dt xmlns="http://www.w3.org/1999/xhtml">
577 <code><xsl:value-of select="@name"/></code> -
856 <code><xsl:value-of select="@name"/></code> −
578857 <code><xsl:value-of select="@type"/></code>
579858 <xsl:call-template name="parenthesized-tp-type"/>
580859 </dt>
592871
593872 <xsl:template match="arg" mode="parameters-in-docstring">
594873 <dt xmlns="http://www.w3.org/1999/xhtml">
595 <code><xsl:value-of select="@name"/></code> -
874 <code><xsl:value-of select="@name"/></code> −
596875 <code><xsl:value-of select="@type"/></code>
597876 <xsl:call-template name="parenthesized-tp-type"/>
598877 </dt>
604883 <xsl:template match="arg" mode="returns-in-docstring">
605884 <dt xmlns="http://www.w3.org/1999/xhtml">
606885 <xsl:if test="@name">
607 <code><xsl:value-of select="@name"/></code> -
886 <code><xsl:value-of select="@name"/></code> −
608887 </xsl:if>
609888 <code><xsl:value-of select="@type"/></code>
610889 <xsl:call-template name="parenthesized-tp-type"/>
635914 </xsl:template>
636915
637916 <xsl:template match="signal">
917
918 <xsl:if test="not(parent::interface)">
919 <xsl:message terminate="yes">
920 <xsl:text>ERR: signal </xsl:text>
921 <xsl:value-of select="@name"/>
922 <xsl:text> does not have an interface as parent&#10;</xsl:text>
923 </xsl:message>
924 </xsl:if>
925
926 <xsl:if test="not(@name) or @name = ''">
927 <xsl:message terminate="yes">
928 <xsl:text>ERR: missing @name on a signal of </xsl:text>
929 <xsl:value-of select="../@name"/>
930 <xsl:text>&#10;</xsl:text>
931 </xsl:message>
932 </xsl:if>
933
934 <xsl:for-each select="arg">
935 <xsl:if test="not(@type) or @type = ''">
936 <xsl:message terminate="yes">
937 <xsl:text>ERR: an arg of signal </xsl:text>
938 <xsl:value-of select="concat(../../@name, '.', ../@name)"/>
939 <xsl:text> has no type</xsl:text>
940 </xsl:message>
941 </xsl:if>
942 <xsl:if test="not(@name) or @name = ''">
943 <xsl:message terminate="yes">
944 <xsl:text>ERR: an arg of signal </xsl:text>
945 <xsl:value-of select="concat(../../@name, '.', ../@name)"/>
946 <xsl:text> has no name</xsl:text>
947 </xsl:message>
948 </xsl:if>
949 <xsl:choose>
950 <xsl:when test="not(@direction)"/>
951 <xsl:when test="@direction='in'">
952 <xsl:message terminate="no">
953 <xsl:text>INFO: an arg of signal </xsl:text>
954 <xsl:value-of select="concat(../../@name, '.', ../@name)"/>
955 <xsl:text> has unnecessary direction 'in'</xsl:text>
956 </xsl:message>
957 </xsl:when>
958 <xsl:otherwise>
959 <xsl:message terminate="yes">
960 <xsl:text>ERR: an arg of signal </xsl:text>
961 <xsl:value-of select="concat(../../@name, '.', ../@name)"/>
962 <xsl:text> has direction other than 'in'</xsl:text>
963 </xsl:message>
964 </xsl:otherwise>
965 </xsl:choose>
966 </xsl:for-each>
967
638968 <div xmlns="http://www.w3.org/1999/xhtml" class="signal">
639969 <h3 xmlns="http://www.w3.org/1999/xhtml">
640970 <a name="{concat(../@name, concat('.', @name))}">
7871117 color: #ff0000;
7881118 background: #ffffff;
7891119 }
1120 table, tr, td, th {
1121 border: 1px solid #666;
1122 }
7901123
7911124 </style>
7921125 </head>
7951128 <xsl:value-of select="tp:title" />
7961129 </h1>
7971130 <xsl:if test="tp:version">
798 <h2>Version <xsl:apply-templates select="tp:version"/></h2>
1131 <h2>Version <xsl:value-of select="string(tp:version)"/></h2>
7991132 </xsl:if>
8001133 <xsl:apply-templates select="tp:copyright"/>
8011134 <xsl:apply-templates select="tp:license"/>
8371170 </html>
8381171 </xsl:template>
8391172
1173 <xsl:template match="node">
1174 <xsl:apply-templates />
1175 </xsl:template>
1176
1177 <xsl:template match="text()">
1178 <xsl:if test="normalize-space(.) != ''">
1179 <xsl:message terminate="yes">
1180 <xsl:text>Stray text: {{{</xsl:text>
1181 <xsl:value-of select="." />
1182 <xsl:text>}}}&#10;</xsl:text>
1183 </xsl:message>
1184 </xsl:if>
1185 </xsl:template>
1186
1187 <xsl:template match="*">
1188 <xsl:message terminate="yes">
1189 <xsl:text>Unrecognised element: {</xsl:text>
1190 <xsl:value-of select="namespace-uri(.)" />
1191 <xsl:text>}</xsl:text>
1192 <xsl:value-of select="local-name(.)" />
1193 <xsl:text>&#10;</xsl:text>
1194 </xsl:message>
1195 </xsl:template>
8401196 </xsl:stylesheet>
8411197
8421198 <!-- vim:set sw=2 sts=2 et: -->