diff options
author | Louis-Francis Ratté-Boulianne <louis-francis.ratte-boulianne@collabora.co.uk> | 2010-10-28 16:41:41 -0400 |
---|---|---|
committer | Louis-Francis Ratté-Boulianne <louis-francis.ratte-boulianne@collabora.co.uk> | 2010-12-03 10:55:44 -0500 |
commit | 6bfba32a582e3ee29033206c9d5c547817ca7dce (patch) | |
tree | 2ab4e39e0dcf2206ac8e28e4e2480ccb2590269d | |
parent | 8a9fa626c7ee9183a6d275e8cb1134ee35c73eef (diff) |
Add default implementation of GetParameters using Protocol
Connection managers that don't support Protocol have to override the method (should already be the case in actual CMs)
-rw-r--r-- | src/server/connmgr.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/server/connmgr.py b/src/server/connmgr.py index bdf1dc6..b490834 100644 --- a/src/server/connmgr.py +++ b/src/server/connmgr.py @@ -75,6 +75,18 @@ class ConnectionManager(_ConnectionManager, DBusProperties): if proto not in self._protos: raise NotImplemented('unknown protocol %s' % proto) + def check_protocol(self, proto): + if proto not in self._protocols: + raise NotImplemented('no protocol object for %s' % proto) + + @dbus.service.method(CONN_MGR_INTERFACE, in_signature='s', out_signature='a(susv)') + def GetParameters(self, proto): + "Returns the mandatory and optional parameters for the given proto." + self.check_proto(proto) + self.check_protocol(proto) + + return self._protocols[proto].parameters + @dbus.service.method(CONN_MGR_INTERFACE, in_signature='', out_signature='as') def ListProtocols(self): return self._protos.keys() |