+class SimplePresenceMixin(tp.ConnectionInterfaceSimplePresence):
+
+ def __init__(self, torPresence):
+ tp.ConnectionInterfaceSimplePresence.__init__(self)
+ self.__torPresence = torPresence
+
+ self._implement_property_get(
+ tp.CONNECTION_INTERFACE_SIMPLE_PRESENCE,
+ {'Statuses' : self._get_statuses}
+ )
+
+ @misc_utils.log_exception(_moduleLogger)
+ def GetPresences(self, contacts):
+ """
+ @return {ContactHandle: (Status, Presence Type, Message)}
+ """
+ personalMessage = u""
+ return dbus.Dictionary(
+ (
+ (h, dbus.Struct((presenceType, presence, personalMessage), signature="uss"))
+ for (h, (presenceType, presence)) in
+ self.__torPresence.get_presences(contacts).iteritems()
+ ),
+ signature="u(uss)"
+ )
+
+ @misc_utils.log_exception(_moduleLogger)
+ def SetPresence(self, status, message):
+ if message:
+ raise telepathy.errors.InvalidArgument("Messages aren't supported")
+
+ self.__torPresence.set_presence(status)
+