4 When first started, reports all read conversations when some might have been read
5 When first started, reports all of an SMS conversation even though some has been reported previously
6 Still leaking one of two contact lists
19 _moduleLogger = logging.getLogger("connection_manager")
22 class TheOneRingConnectionManager(telepathy.server.ConnectionManager):
24 def __init__(self, shutdown_func=None):
25 telepathy.server.ConnectionManager.__init__(self, constants._telepathy_implementation_name_)
27 # self._protos is from super
28 self._protos[constants._telepathy_protocol_name_] = connection.TheOneRingConnection
29 self._on_shutdown = shutdown_func
30 _moduleLogger.info("Connection manager created")
32 @gtk_toolbox.log_exception(_moduleLogger)
33 def GetParameters(self, proto):
35 For org.freedesktop.telepathy.ConnectionManager
37 @returns the mandatory and optional parameters for creating a connection
39 if proto not in self._protos:
40 raise telepathy.errors.NotImplemented('unknown protocol %s' % proto)
43 ConnectionClass = self._protos[proto]
44 mandatoryParameters = ConnectionClass._mandatory_parameters
45 optionalParameters = ConnectionClass._optional_parameters
46 defaultParameters = ConnectionClass._parameter_defaults
48 for parameterName, parameterType in mandatoryParameters.iteritems():
49 flags = telepathy.CONN_MGR_PARAM_FLAG_REQUIRED
50 if parameterName == "password":
51 flags |= telepathy.CONN_MGR_PARAM_FLAG_SECRET
60 for parameterName, parameterType in optionalParameters.iteritems():
61 if parameterName in defaultParameters:
62 flags = telepathy.CONN_MGR_PARAM_FLAG_HAS_DEFAULT
63 if parameterName == "password":
64 flags |= telepathy.CONN_MGR_PARAM_FLAG_SECRET
65 default = defaultParameters[parameterName]
79 def disconnected(self, conn):
81 Overrides telepathy.server.ConnectionManager
83 result = telepathy.server.ConnectionManager.disconnected(self, conn)
84 gobject.timeout_add(5000, self._shutdown)
88 Terminates all connections. Must be called upon quit
90 for connection in self._connections:
91 connection.Disconnect()
92 _moduleLogger.info("Connection manager quitting")
94 @gtk_toolbox.log_exception(_moduleLogger)
97 self._on_shutdown is not None and
98 len(self._connections) == 0