/usr/share/pyshared/telepathy/_generated/Client_Observer.py is in python-telepathy 0.15.19-2.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | # -*- coding: utf-8 -*-
# Generated from the Telepathy spec
"""Copyright © 2008-2009 Collabora Ltd.
Copyright © 2008-2009 Nokia Corporation
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
"""
import dbus.service
class ClientObserver(dbus.service.Object):
"""\
Observers monitor the creation of new channels. This
functionality can be used for things like message logging.
All observers are notified simultaneously.
Observers SHOULD NOT modify the state of a channel except
via user interaction.
We want Observer UIs for file transfer channels (a progress
bar for the transfer) to be able to have a Cancel button.
Observers MUST NOT carry out actions that exactly one process
must take responsibility for (e.g. acknowledging Text
messages, or carrying out the actual transfer in a file transfer
channel).
Since arbitrarily many observers can be activated for
each channel, it would not make sense for observers to do things
that can only be done by one process (acknowledging
Text
messages, carrying out streaming for
StreamedMedia
channels, doing the actual data transfer for file transfers,
setting up the out-of-band connection for Tubes). The
Handler
is responsible for such tasks.
Handlers MAY, of course, delegate responsibility for these
tasks to other processes (including those run as observers),
but this MUST be done explicitly via a request from the Handler
to the Observer.
Whenever a collection of new channels is signalled, the channel
dispatcher will notify all running or activatable observers whose
ObserverChannelFilter property
(possibly as cached in the .client file) indicates that they are
interested in some of the channels.
Observers are activated for all channels in which they have
registered an interest - incoming, outgoing or automatically created -
although of course the ObserverChannelFilter property can be set
to filter on the
Requested
property.
Because it might take time for an observer to become ready (for
instance, a Text logger needs to wait until pending messages have been
downloaded), the channel dispatcher must wait (up to some timeout) for
all observers to return from
ObserveChannels before letting anything
destructive happen. Destructive things (e.g. acknowledging messages)
are defined to be done by handlers, therefore HandleWith and Claim
aren't allowed to succeed until all observers are ready.
"""
@dbus.service.method('org.freedesktop.Telepathy.Client.Observer', in_signature='ooa(oa{sv})oaoa{sv}', out_signature='')
def ObserveChannels(self, Account, Connection, Channels, Dispatch_Operation, Requests_Satisfied, Observer_Info):
"""
Called by the channel dispatcher when channels in which the
observer has registered an interest are announced in a NewChannels
signal.
If the same NewChannels signal announces some channels that match
the filter, and some that do not, then only a subset of the channels
(those that do match the filter) are passed to this method.
If the channel dispatcher will split up the channels from a single
NewChannels signal and dispatch them separately (for instance
because no installed Handler can handle all of them), it will call
ObserveChannels several times.
The observer MUST NOT return from this method call until it is ready
for a handler for the channel to run (which may change the channel's
state).
The channel dispatcher must wait for observers to start up,
to avoid the following race: text channel logger (observer) gets
ObserveChannels, text channel handler gets
HandleChannels
channel handler starts up faster and acknowledges messages,
logger never sees those messages.
The channel dispatcher SHOULD NOT change its behaviour based on
whether this method succeeds or fails: there are no defined D-Bus
errors for this method, and if it fails, this only indicates that
an Observer is somehow broken.
The expected error response in the channel dispatcher is to
log a warning, and otherwise continue as though this method
had succeeded.
"""
raise NotImplementedError
|