+class UserHandle(Action):
+
+ def __init__(self, connAction):
+ super(UserHandle, self).__init__()
+ self._connAction = connAction
+ self._handle = None
+
+ @property
+ def handle(self):
+ return self._handle
+
+ @property
+ def handles(self):
+ return [self._handle]
+
+ def queue_action(self):
+ self._connAction.conn[telepathy.server.CONNECTION].GetSelfHandle(
+ reply_handler = self._on_done,
+ error_handler = self._on_error,
+ )
+
+ def _on_done(self, handle):
+ self._handle = handle
+ super(UserHandle, self)._on_done()
+
+
+class RequestContactListHandle(Action):
+
+ def __init__(self, connAction):
+ super(RequestContactListHandle, self).__init__()
+ self._connAction = connAction
+ self._handle = None
+
+ @property
+ def handle(self):
+ return self._handle
+
+ @property
+ def handles(self):
+ return [self._handle]
+
+ def queue_action(self):
+ pass
+
+ def _on_done(self, handles):
+ self._handle = handles[0]
+ super(RequestContactListHandle, self)._on_done()
+
+
+class RequestContactListChannel(Action):
+
+ def __init__(self, connAction, handleAction):
+ super(RequestContactListChannel, self).__init__()
+ self._connAction = connAction
+ self._handleAction = handleAction
+ self._channel = None
+
+ @property
+ def channel(self):
+ return self._channel
+
+ def queue_action(self):
+ pass
+
+ def _on_done(self, channel):
+ self._channel = channel
+ super(RequestContactListChannel, self)._on_done()
+
+
+class ContactHandles(Action):
+
+ def __init__(self, connAction):
+ super(UserHandle, self).__init__()
+ self._connAction = connAction
+ self._handles = []
+
+ @property
+ def handles(self):
+ return self._handles
+
+ def queue_action(self):
+ pass
+
+ def _on_done(self, handle):
+ super(UserHandle, self)._on_done()
+
+
+class Aliases(Action):
+
+ def __init__(self, connAction, handleAction):
+ super(Aliases, self).__init__()
+ self._connAction = connAction
+ self._handleAction = handleAction
+
+ def queue_action(self):
+ self._connAction.conn[telepathy.server.CONNECTION_INTERFACE_ALIASING].RequestAliases(
+ self._handleAction.handles,
+ reply_handler = self._on_done,
+ error_handler = self._on_error,
+ )
+
+ def _on_done(self, aliases):
+ print "\tAliases:"
+ for alias in aliases:
+ print "\t\t", alias
+ super(Aliases, self)._on_done()
+
+