9 class TheOneRingConnectionManager(telepathy.server.ConnectionManager):
11 def __init__(self, shutdown_func=None):
12 telepathy.server.ConnectionManager.__init__(self, 'theonering')
14 self._protos['gvoice'] = connection.TheOneRingConnection
15 self._on_shutdown = shutdown_func
16 logging.info("Connection manager created")
18 def GetParameters(self, proto):
20 org.freedesktop.telepathy.ConnectionManager
22 @returns the mandatory and optional parameters for creating a connection
24 if proto not in self._protos:
25 raise telepathy.NotImplemented('unknown protocol %s' % proto)
28 connection_class = self._protos[proto]
29 mandatory_parameters = connection_class._mandatory_parameters
30 optional_parameters = connection_class._optional_parameters
31 default_parameters = connection_class._parameter_defaults
33 for parameter_name, parameter_type in mandatory_parameters.iteritems():
36 telepathy.CONN_MGR_PARAM_FLAG_REQUIRED,
42 for parameter_name, parameter_type in optional_parameters.iteritems():
43 if parameter_name in default_parameters:
46 telepathy.CONN_MGR_PARAM_FLAG_HAS_DEFAULT,
48 default_parameters[parameter_name],
51 param = (parameter_name, 0, parameter_name, '')
56 def disconnected(self, conn):
57 result = telepathy.server.ConnectionManager.disconnected(self, conn)
58 gobject.timeout_add(5000, self.shutdown)
62 Terminates all connections. Must be called upon quit
64 for connection in self._connections:
65 connection.Disconnect()
66 logging.info("Connection manager quitting")
70 self._on_shutdown is not None and
71 len(self._connections) == 0