diff options
Diffstat (limited to 'sleekxmpp/roster.py')
-rw-r--r-- | sleekxmpp/roster.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/sleekxmpp/roster.py b/sleekxmpp/roster.py index 60a13c11..043981e3 100644 --- a/sleekxmpp/roster.py +++ b/sleekxmpp/roster.py @@ -105,6 +105,14 @@ class Roster(object): for node in self._rosters: self._rosters[node].set_backend(db) + def reset(self): + """ + Reset the state of the roster to forget any current + presence information. Useful after a disconnection occurs. + """ + for node in self: + self[node].reset() + class RosterNode(object): @@ -305,6 +313,15 @@ class RosterNode(object): return self[jid].resources.get(resource, default_presence) + def reset(self): + """ + Reset the state of the roster to forget any current + presence information. Useful after a disconnection occurs. + """ + for jid in self: + self[jid].reset() + + class RosterItem(object): @@ -725,3 +742,10 @@ class RosterItem(object): self.subscribe() if not self['to']: self._unsubscribed() + + def reset(self): + """ + Forgot current resource presence information as part of + a roster reset request. + """ + self.resources = {} |