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
20 _moduleLogger = logging.getLogger("connection_manager")
23 class TheOneRingConnectionManager(tp.ConnectionManager):
25 def __init__(self, shutdown_func=None):
26 tp.ConnectionManager.__init__(self, constants._telepathy_implementation_name_)
28 # self._protos is from super
29 self._protos[constants._telepathy_protocol_name_] = connection.TheOneRingConnection
30 self._on_shutdown = shutdown_func
31 _moduleLogger.info("Connection manager created")
33 @gtk_toolbox.log_exception(_moduleLogger)
34 def GetParameters(self, proto):
36 For org.freedesktop.telepathy.ConnectionManager
38 @returns the mandatory and optional parameters for creating a connection
40 if proto not in self._protos:
41 raise telepathy.errors.NotImplemented('unknown protocol %s' % proto)
44 ConnectionClass = self._protos[proto]
45 mandatoryParameters = ConnectionClass._mandatory_parameters
46 optionalParameters = ConnectionClass._optional_parameters
47 defaultParameters = ConnectionClass._parameter_defaults
48 secretParameters = ConnectionClass._secret_parameters
50 for parameterName, parameterType in mandatoryParameters.iteritems():
51 flags = telepathy.CONN_MGR_PARAM_FLAG_REQUIRED
52 if parameterName in secretParameters:
53 flags |= telepathy.CONN_MGR_PARAM_FLAG_SECRET
54 param = (parameterName, flags, parameterType, "")
57 for parameterName, parameterType in optionalParameters.iteritems():
60 if parameterName in secretParameters:
61 flags |= telepathy.CONN_MGR_PARAM_FLAG_SECRET
62 if parameterName in defaultParameters:
63 flags |= telepathy.CONN_MGR_PARAM_FLAG_HAS_DEFAULT
64 default = defaultParameters[parameterName]
65 param = (parameterName, flags, parameterType, default)
70 def disconnected(self, conn):
72 Overrides tp.ConnectionManager
74 result = tp.ConnectionManager.disconnected(self, conn)
75 gobject.timeout_add(5000, self._shutdown)
79 Terminates all connections. Must be called upon quit
81 for connection in self._connections:
82 connection.Disconnect()
83 _moduleLogger.info("Connection manager quitting")
85 @gtk_toolbox.log_exception(_moduleLogger)
88 self._on_shutdown is not None and
89 len(self._connections) == 0