Difference between revisions of "Development Team/Presence Service Removal"

From Sugar Labs
Jump to navigation Jump to search
Line 9: Line 9:
 
  @dbus.service.signal(PRESENCE_INTERFACE, signature="o")
 
  @dbus.service.signal(PRESENCE_INTERFACE, signature="o")
 
  def ActivityDisappeared(self, activity):
 
  def ActivityDisappeared(self, activity):
 +
    pass
  
 
Is fired when the properties contained in org.laptop.Telepathy.ActivityProperties stop being all non-None, and when the last buddy leaves the activity.
 
Is fired when the properties contained in org.laptop.Telepathy.ActivityProperties stop being all non-None, and when the last buddy leaves the activity.
Line 17: Line 18:
 
  def BuddyAppeared(self, buddy):
 
  def BuddyAppeared(self, buddy):
 
     pass
 
     pass
 +
 +
Is fired when the properties contained in org.laptop.Telepathy.BuddyInfo become all non-None. We start tracking a BuddyInfo when it appears as online in the signal PresenceUpdate of org.freedesktop.Telepathy.Connection.Interface.Presence (which is deprecated).
  
 
  @dbus.service.signal(PRESENCE_INTERFACE, signature="o")
 
  @dbus.service.signal(PRESENCE_INTERFACE, signature="o")
Line 26: Line 29:
 
  def ActivityInvitation(self, activity, buddy, message):
 
  def ActivityInvitation(self, activity, buddy, message):
 
     pass
 
     pass
 +
 +
Gets fired when a new channel that communicates with a room becomes ready.
  
 
  @dbus.service.signal(PRESENCE_INTERFACE, signature="soos")
 
  @dbus.service.signal(PRESENCE_INTERFACE, signature="soos")
 
  def PrivateInvitation(self, bus_name, connection, channel, chan_type):
 
  def PrivateInvitation(self, bus_name, connection, channel, chan_type):
 
     pass
 
     pass
 +
 +
Gets fired when a new channel that communicates with a contact is created.
  
 
  @dbus.service.method(PRESENCE_INTERFACE, in_signature="",
 
  @dbus.service.method(PRESENCE_INTERFACE, in_signature="",

Revision as of 08:12, 6 March 2010

Some notes follow about how we can replace the implementation of the signals and methods in the Presence Service by another that uses more fully the telepathy framework and is stateless.

@dbus.service.signal(PRESENCE_INTERFACE, signature="o")
def ActivityAppeared(self, activity):
    pass

Is fired when the properties contained in org.laptop.Telepathy.ActivityProperties become all non-None. We start tracking an ActivityProperties when a Buddy we track joins/shares an activity, and we know that via the ActivitiesChanged signal in the interface org.laptop.Telepathy.BuddyInfo.

@dbus.service.signal(PRESENCE_INTERFACE, signature="o")
def ActivityDisappeared(self, activity):
    pass

Is fired when the properties contained in org.laptop.Telepathy.ActivityProperties stop being all non-None, and when the last buddy leaves the activity.

A buddy is known to have left an activity when disappears (see BuddyDisappeared) and when the MembersChanged signal in org.freedesktop.Telepathy.Channel.Interface.Group says so.

@dbus.service.signal(PRESENCE_INTERFACE, signature="o")
def BuddyAppeared(self, buddy):
    pass

Is fired when the properties contained in org.laptop.Telepathy.BuddyInfo become all non-None. We start tracking a BuddyInfo when it appears as online in the signal PresenceUpdate of org.freedesktop.Telepathy.Connection.Interface.Presence (which is deprecated).

@dbus.service.signal(PRESENCE_INTERFACE, signature="o")
def BuddyDisappeared(self, buddy):

A buddy is known to have disappeared when PresenceUpdate notifies us it has gone offline.

@dbus.service.signal(PRESENCE_INTERFACE, signature="oos")
def ActivityInvitation(self, activity, buddy, message):
    pass

Gets fired when a new channel that communicates with a room becomes ready.

@dbus.service.signal(PRESENCE_INTERFACE, signature="soos")
def PrivateInvitation(self, bus_name, connection, channel, chan_type):
    pass

Gets fired when a new channel that communicates with a contact is created.

@dbus.service.method(PRESENCE_INTERFACE, in_signature="",
                        out_signature="ao")
def GetActivities(self):
    pass
@dbus.service.method(PRESENCE_INTERFACE, in_signature="s",
                        out_signature="o")
def GetActivityById(self, actid):
    pass
@dbus.service.method(PRESENCE_INTERFACE, in_signature="",
                        out_signature="ao")
def GetBuddies(self):
    pass
@dbus.service.method(PRESENCE_INTERFACE, in_signature="ay", out_signature="o",
                        byte_arrays=True)
def GetBuddyByPublicKey(self, key):
    pass
@dbus.service.method(PRESENCE_INTERFACE, in_signature="sou",
                        out_signature="o")
def GetBuddyByTelepathyHandle(self, tp_conn_name, tp_conn_path, handle):
    pass
@dbus.service.method(PRESENCE_INTERFACE, in_signature="", out_signature="o")
def GetOwner(self):
    pass
@dbus.service.method(PRESENCE_INTERFACE, in_signature="", out_signature="so")
def GetPreferredConnection(self):
    pass
@dbus.service.method(PRESENCE_INTERFACE, in_signature="sssa{sv}",
        out_signature="o", async_callbacks=("async_cb", "async_err_cb"),
        sender_keyword="sender")
def ShareActivity(self, actid, atype, name, properties, async_cb,
                    async_err_cb, sender):
    pass
@dbus.service.method(PRESENCE_INTERFACE, in_signature="as", out_signature="")
def SyncFriends(self, keys):
    pass
@dbus.service.method(PRESENCE_INTERFACE, in_signature="", out_signature="")
def RestartServerConnection(self):
    pass