X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fconnection_manager.py;h=d21c8a7e93ff09bb38faf79f21af1424768cc5a7;hb=472d5669384d85ddc85aff8050fbb6150b47152e;hp=dfcb91aabdae242d2c04f1989205c825a746c43d;hpb=ab4da214c520d763bbbddeb828c8e7c838374fe3;p=theonering diff --git a/src/connection_manager.py b/src/connection_manager.py index dfcb91a..d21c8a7 100644 --- a/src/connection_manager.py +++ b/src/connection_manager.py @@ -1,70 +1,80 @@ import logging -import gobject import telepathy +import constants +import tp +import util.go_utils as gobject_utils +import util.misc as misc_utils import connection -class TheOneRingConnectionManager(telepathy.server.ConnectionManager): +_moduleLogger = logging.getLogger(__name__) + + +class TheOneRingConnectionManager(tp.ConnectionManager): def __init__(self, shutdown_func=None): - telepathy.server.ConnectionManager.__init__(self, 'theonering') + tp.ConnectionManager.__init__(self, constants._telepathy_implementation_name_) - self._protos['gvoice'] = connection.TheOneRingConnection + # self._protos is from super + self._protos[constants._telepathy_protocol_name_] = connection.TheOneRingConnection self._on_shutdown = shutdown_func - logging.info("Connection manager created") + _moduleLogger.info("Connection manager created") + @misc_utils.log_exception(_moduleLogger) def GetParameters(self, proto): """ - org.freedesktop.telepathy.ConnectionManager + For org.freedesktop.telepathy.ConnectionManager @returns the mandatory and optional parameters for creating a connection """ if proto not in self._protos: - raise telepathy.NotImplemented('unknown protocol %s' % proto) + raise telepathy.errors.NotImplemented('unknown protocol %s' % proto) result = [] - connection_class = self._protos[proto] - mandatory_parameters = connection_class._mandatory_parameters - optional_parameters = connection_class._optional_parameters - default_parameters = connection_class._parameter_defaults - - for parameter_name, parameter_type in mandatory_parameters.iteritems(): - param = ( - parameter_name, - telepathy.CONN_MGR_PARAM_FLAG_REQUIRED, - parameter_type, - '', - ) + ConnectionClass = self._protos[proto] + mandatoryParameters = ConnectionClass._mandatory_parameters + optionalParameters = ConnectionClass._optional_parameters + defaultParameters = ConnectionClass._parameter_defaults + secretParameters = ConnectionClass._secret_parameters + + for parameterName, parameterType in mandatoryParameters.iteritems(): + flags = telepathy.CONN_MGR_PARAM_FLAG_REQUIRED + if parameterName in secretParameters: + flags |= telepathy.CONN_MGR_PARAM_FLAG_SECRET + param = (parameterName, flags, parameterType, "") result.append(param) - for parameter_name, parameter_type in optional_parameters.iteritems(): - if parameter_name in default_parameters: - param = ( - parameter_name, - telepathy.CONN_MGR_PARAM_FLAG_HAS_DEFAULT, - parameter_name, - default_parameters[parameter_name], - ) - else: - param = (parameter_name, 0, parameter_name, '') + for parameterName, parameterType in optionalParameters.iteritems(): + flags = 0 + default = "" + if parameterName in secretParameters: + flags |= telepathy.CONN_MGR_PARAM_FLAG_SECRET + if parameterName in defaultParameters: + flags |= telepathy.CONN_MGR_PARAM_FLAG_HAS_DEFAULT + default = defaultParameters[parameterName] + param = (parameterName, flags, parameterType, default) result.append(param) return result def disconnected(self, conn): - result = telepathy.server.ConnectionManager.disconnected(self, conn) - gobject.timeout_add(5000, self.shutdown) + """ + Overrides tp.ConnectionManager + """ + result = tp.ConnectionManager.disconnected(self, conn) + gobject_utils.timeout_add_seconds(5, self._shutdown) def quit(self): """ Terminates all connections. Must be called upon quit """ - for connection in self._connections: - connection.Disconnect() - logging.info("Connection manager quitting") + for conn in self._connections: + conn.Disconnect() + _moduleLogger.info("Connection manager quitting") + @misc_utils.log_exception(_moduleLogger) def _shutdown(self): if ( self._on_shutdown is not None and