[telepathy-python/master] Implement RequestableChannelClasses property.
Jonny Lamb
jonny.lamb at collabora.co.uk
Thu Jul 16 01:49:36 PDT 2009
Signed-off-by: Jonny Lamb <jonny.lamb at collabora.co.uk>
---
src/server/channelmanager.py | 16 +++++++++++++++-
src/server/conn.py | 6 ++++--
2 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/src/server/channelmanager.py b/src/server/channelmanager.py
index 901246e..750fe7c 100644
--- a/src/server/channelmanager.py
+++ b/src/server/channelmanager.py
@@ -29,6 +29,8 @@ class ChannelManager(object):
self._requestable_channel_classes = dict()
self._channels = dict()
+ self._fixed_properties = dict()
+ self._available_properties = dict()
def close(self):
for channel_type in self._requestable_channel_classes:
@@ -74,6 +76,18 @@ class ChannelManager(object):
return channel
- def _implement_channel_class(self, type, make_channel):
+ def _implement_channel_class(self, type, make_channel, fixed, available):
self._requestable_channel_classes[type] = make_channel
self._channels.setdefault(type, {})
+
+ self._fixed_properties[type] = fixed
+ self._available_properties[type] = available
+
+ def get_requestable_channel_classes(self):
+ retval = []
+
+ for channel_type in self._requestable_channel_classes:
+ retval.append((self._fixed_properties[channel_type],
+ self._available_properties[channel_type]))
+
+ return retval
diff --git a/src/server/conn.py b/src/server/conn.py
index db37d73..3790a59 100644
--- a/src/server/conn.py
+++ b/src/server/conn.py
@@ -387,8 +387,10 @@ class ConnectionInterfaceRequests(
self._implement_property_get(CONNECTION_INTERFACE_REQUESTS,
{'Channels': lambda: dbus.Array(self._get_channels(),
- signature='(oa{sv})')})
- # TODO: Implement RequestableChannelClasses
+ signature='(oa{sv})'),
+ 'RequestableChannelClasses': lambda: dbus.Array( \
+ self._channel_manager.get_requestable_channel_classes(),
+ signature='(a{sv}as)')})
def _get_channels(self):
return [(c._object_path, c.get_props()) for c in self._channels]
--
1.5.6.5
More information about the telepathy-commits
mailing list