projects
/
theonering
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Forgot to log exceptions for these calls, no wonder it was harder to find the issue
[theonering]
/
src
/
connection_manager.py
diff --git
a/src/connection_manager.py
b/src/connection_manager.py
index
63e943a
..
b9a8e37
100644
(file)
--- a/
src/connection_manager.py
+++ b/
src/connection_manager.py
@@
-1,69
+1,78
@@
import logging
import logging
-import gobject
import telepathy
import constants
import telepathy
import constants
+import tp
+import util.go_utils as gobject_utils
+import util.misc as misc_utils
import connection
import connection
-class TheOneRingConnectionManager(telepathy.server.ConnectionManager):
+_moduleLogger = logging.getLogger(__name__)
+
+
+class TheOneRingConnectionManager(tp.ConnectionManager):
+
+ IDLE_TIMEOUT = 10
def __init__(self, shutdown_func=None):
def __init__(self, shutdown_func=None):
- telepathy.server.ConnectionManager.__init__(self, constants._telepathy_implementation_name_)
+ tp.ConnectionManager.__init__(self, constants._telepathy_implementation_name_)
+ # self._protos is from super
self._protos[constants._telepathy_protocol_name_] = connection.TheOneRingConnection
self._on_shutdown = shutdown_func
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):
"""
def GetParameters(self, proto):
"""
+ For org.freedesktop.telepathy.ConnectionManager
+
@returns the mandatory and optional parameters for creating a connection
"""
if proto not in self._protos:
@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 = []
ConnectionClass = self._protos[proto]
result = []
ConnectionClass = self._protos[proto]
- mandatoryParameters = ConnectionClass.MANDATORY_PARAMETERS
- optionalParameters = ConnectionClass.OPTIONAL_PARAMETERS
- defaultParameters = ConnectionClass.PARAMETER_DEFAULTS
+ mandatoryParameters = ConnectionClass._mandatory_parameters
+ optionalParameters = ConnectionClass._optional_parameters
+ defaultParameters = ConnectionClass._parameter_defaults
+ secretParameters = ConnectionClass._secret_parameters
for parameterName, parameterType in mandatoryParameters.iteritems():
for parameterName, parameterType in mandatoryParameters.iteritems():
- param = (
- parameterName,
- telepathy.CONN_MGR_PARAM_FLAG_REQUIRED,
- parameterType,
- '',
- )
+ 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 parameterName, parameterType in optionalParameters.iteritems():
result.append(param)
for parameterName, parameterType in optionalParameters.iteritems():
+ flags = 0
+ default = ""
+ if parameterName in secretParameters:
+ flags |= telepathy.CONN_MGR_PARAM_FLAG_SECRET
if parameterName in defaultParameters:
if parameterName in defaultParameters:
- param = (
- parameterName,
- telepathy.CONN_MGR_PARAM_FLAG_HAS_DEFAULT,
- parameterName,
- defaultParameters[parameterName],
- )
- else:
- param = (parameterName, 0, parameterName, '')
+ flags |= telepathy.CONN_MGR_PARAM_FLAG_HAS_DEFAULT
+ default = defaultParameters[parameterName]
+ param = (parameterName, flags, parameterType, default)
result.append(param)
return result
result.append(param)
return result
- def disconnected(self, conn):
- result = telepathy.server.ConnectionManager.disconnected(self, conn)
- gobject.timeout_add(5000, self.shutdown)
+ def disconnect_completed(self):
+ gobject_utils.timeout_add_seconds(self.IDLE_TIMEOUT, self._shutdown)
def quit(self):
"""
Terminates all connections. Must be called upon quit
"""
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
def _shutdown(self):
if (
self._on_shutdown is not None and