core: client.roster has now a got_roster deferred which is fired when roster is available

This commit is contained in:
Goffi 2012-11-22 00:44:56 +01:00
commit d1f411f59c

View file

@ -133,6 +133,7 @@ class SatRosterProtocol(xmppim.RosterClientProtocol):
def __init__(self, host):
xmppim.RosterClientProtocol.__init__(self)
self.host = host
self.got_roster = defer.Deferred()
#XXX: the two following dicts keep a local copy of the roster
self._groups = {} #map from groups to bare jids: key=group value=set of bare jids
self._jids = {} #map from bare jids to RosterItem: key=jid value=RosterItem
@ -144,7 +145,8 @@ class SatRosterProtocol(xmppim.RosterClientProtocol):
def requestRoster(self):
""" ask the server for Roster list """
debug("requestRoster")
self.getRoster().addCallback(self.rosterCb)
d = self.getRoster().addCallback(self.rosterCb)
d.chainDeferred(self.got_roster)
def removeItem(self, to):
"""Remove a contact from roster list"""