[telepathy-python/master] Port Observer example to the whole DBusProperties interface

Danielle Madeley danielle.madeley at collabora.co.uk
Sun Nov 8 15:43:31 PST 2009


---
 examples/observer.py |   36 +++++++++++-------------------------
 1 files changed, 11 insertions(+), 25 deletions(-)

diff --git a/examples/observer.py b/examples/observer.py
index 6c3c3a6..5c30de8 100644
--- a/examples/observer.py
+++ b/examples/observer.py
@@ -8,39 +8,25 @@ from telepathy.interfaces import CLIENT, \
 
 class ExampleObserver(telepathy.server.ClientObserver,
                       telepathy.server.DBusProperties):
-    properties = {
-        CLIENT: {
-            'Interfaces': [ CLIENT_OBSERVER ],
-        },
-        CLIENT_OBSERVER: {
-            'ObserverChannelFilter': dbus.Array([
-                    dbus.Dictionary({
-                    }, signature='sv')
-                ], signature='a{sv}')
-        },
-    }
 
     def __init__(self, client_name):
         bus_name = '.'.join ([CLIENT, client_name])
         object_path = '/' + bus_name.replace('.', '/')
 
         bus_name = dbus.service.BusName(bus_name, bus=dbus.SessionBus())
+
         telepathy.server.ClientObserver.__init__(self, bus_name, object_path)
+        telepathy.server.DBusProperties.__init__(self)
 
-    def GetAll(self, interface):
-        print "GetAll", interface
-        if interface in self.properties:
-            return self.properties[interface]
-        else:
-            return {}
-
-    def Get(self, interface, property):
-        print "Get", interface, property
-        if interface in self.properties and \
-           property in self.properties[interface]:
-            return self.properties[interface][property]
-        else:
-            return 0
+        self._implement_property_get(CLIENT, {
+            'Interfaces': lambda: [ CLIENT_OBSERVER ],
+          })
+        self._implement_property_get(CLIENT_OBSERVER, {
+            'ObserverChannelFilter': lambda: dbus.Array([
+                    dbus.Dictionary({
+                    }, signature='sv')
+                ], signature='a{sv}')
+          })
 
     def ObserveChannels(self, account, connection, channels, dispatch_operation,
                         requests_satisfied, observer_info):
-- 
1.5.6.5




More information about the telepathy-commits mailing list