148
148
<p>For observers that have a .client file, the channel dispatcher
149
149
may discover this property from keys of the form
150
<code><em>propertyname</em>/<em>type</em></code>,
150
"<code><em>propertyname</em> <em>type</em></code>",
151
151
in groups in the .client file whose name is the name of this
152
152
interface followed by <code>.ObserverChannelFilter</code>,
153
153
a space and an ASCII decimal number starting from 0.</p>
155
<p>Integers in the .client file are encoded in ASCII decimal, booleans
156
are encoded as "true" or "false", and strings are encoded in the usual
157
way for desktop files (including the C-style backslash escapes
158
documented in the Desktop Entry specification).</p>
155
<p>Values in the .client file are encoded in exactly the same way as
156
the <code>default-<em>p</em></code> keys in .manager files, as
157
described in the <tp:dbus-ref namespace="org.freedesktop.Telepathy"
158
>ConnectionManager</tp:dbus-ref> interface (but note that not all
159
types supported in .manager files can appear in .client files).</p>
160
161
<p>For instance, a .client file for an observer that is only interested
161
162
in Text channels, with CONTACT or ROOM handles, that were requested by
166
167
Interfaces=org.freedesktop.Telepathy.Client.Observer;
168
169
[org.freedesktop.Telepathy.Client.Observer.ObserverChannelFilter 0]
169
org.freedesktop.Telepathy.Channel.Type s=org.freedesktop.Telepathy.Channel.Type.Text
170
org.freedesktop.Telepathy.Channel.ChannelType s=org.freedesktop.Telepathy.Channel.Type.Text
170
171
org.freedesktop.Telepathy.Channel.TargetHandleType u=1
171
172
org.freedesktop.Telepathy.Channel.Requested b=true
173
174
[org.freedesktop.Telepathy.Client.Observer.ObserverChannelFilter 1]
174
org.freedesktop.Telepathy.Channel.Type s=org.freedesktop.Telepathy.Channel.Type.Text
175
org.freedesktop.Telepathy.Channel.ChannelType s=org.freedesktop.Telepathy.Channel.Type.Text
175
176
org.freedesktop.Telepathy.Channel.TargetHandleType u=2
176
177
org.freedesktop.Telepathy.Channel.Requested b=true
183
<property name="Recover" tp:name-for-bindings="Recover" type="b"
185
<tp:added version="0.19.4">
186
When using telepathy-mission-control, version 5.4.0 or later is
187
needed for this property to be useful.
190
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
191
<p>If true, upon the startup of this observer, <tp:dbus-ref
192
namespace="org.freedesktop.Telepathy.Client.Observer">ObserveChannels</tp:dbus-ref>
193
will be called for every already existing channel matching
195
namespace="org.freedesktop.Telepathy.Client.Observer">ObserverChannelFilter</tp:dbus-ref></p>
197
<p>When activatable client having this property disappears from the bus
198
and there are channels matching its ObserverChannelFilter,
199
ObserveChannels will be called immediately to reactivate it again.</p>
201
<p>This means that if an activatable Observer crashes, it will
202
be restarted as soon as possible; while there is an unavoidable
203
possibility that it will miss some events during this process
204
(particularly <tp:dbus-ref
205
namespace="org.freedesktop.Telepathy.Channel.Type">Text</tp:dbus-ref>
206
messages), this window of event loss is kept to a minimum.</p>
208
<p>Non-activatable observers can't take advantage of this
209
mechanism, but setting this property on a non-activatable
210
observer does allow it to "catch up" on channels that are
211
currently active at the time that it starts up.</p>
214
<p>When the ObserveChannels method is called due to observer recovery,
215
the "Observer_Info" dictionary will contain one extra item with key
216
"recovering" and boolean value of True.</p>
182
220
<method name="ObserveChannels" tp:name-for-bindings="Observe_Channels">
183
221
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
184
222
<p>Called by the channel dispatcher when channels in which the
294
332
<arg name="Observer_Info" type="a{sv}" direction="in">
295
333
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
296
<p>Additional information about these channels. No keys are
297
currently defined.</p>
299
<p>If keys are defined for this dictionary, all will be optional;
334
<p>Additional information about these channels. Currently defined
338
<dt><code>recovering</code> - b</dt>
339
<dd>True if ObserveChannels was called on existing channel due to
340
observer recovery, otherwise False.
342
This allows observers to distinguish between new channels (the normal
343
case), and existing channels that were given to the observer in order
344
to catch up on previous events (perhaps after a previous instance of
345
the same observer crashed).
350
<p>All defined keys for this dictionary are optional;
300
351
observers MAY safely ignore any entry in this dictionary.</p>