diff options
author | Kevin Smith <git@kismith.co.uk> | 2010-08-27 18:58:01 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2010-08-27 18:58:01 (GMT) |
commit | ba774f85e77531c7971804cb738c6b434a197258 (patch) | |
tree | eed0887a9494256b5271e14045cfb537737bcd00 /Swiften/Roster | |
parent | dd9e8b6bb212128c0e5c82a7cf80e2f49597bc31 (diff) | |
download | swift-contrib-ba774f85e77531c7971804cb738c6b434a197258.zip swift-contrib-ba774f85e77531c7971804cb738c6b434a197258.tar.bz2 |
Rerequest the roster at reconnect.
Resolves: #548
Diffstat (limited to 'Swiften/Roster')
-rw-r--r-- | Swiften/Roster/XMPPRoster.cpp | 5 | ||||
-rw-r--r-- | Swiften/Roster/XMPPRoster.h | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/Swiften/Roster/XMPPRoster.cpp b/Swiften/Roster/XMPPRoster.cpp index 4478f86..28b04c6 100644 --- a/Swiften/Roster/XMPPRoster.cpp +++ b/Swiften/Roster/XMPPRoster.cpp @@ -34,6 +34,11 @@ void XMPPRoster::removeContact(const JID& jid) { onJIDRemoved(jid); } +void XMPPRoster::clear() { + entries_.clear(); + onRosterCleared(); +} + bool XMPPRoster::containsJID(const JID& jid) { return entries_.find(JID(jid.toBare())) != entries_.end(); } diff --git a/Swiften/Roster/XMPPRoster.h b/Swiften/Roster/XMPPRoster.h index 97477bc..e449d28 100644 --- a/Swiften/Roster/XMPPRoster.h +++ b/Swiften/Roster/XMPPRoster.h @@ -32,6 +32,7 @@ class XMPPRoster { void addContact(const JID& jid, const String& name, const std::vector<String>& groups, const RosterItemPayload::Subscription subscription); bool containsJID(const JID& jid); void removeContact(const JID& jid); + void clear(); RosterItemPayload::Subscription getSubscriptionStateForJID(const JID& jid); const String& getNameForJID(const JID& jid); const std::vector<String>& getGroupsForJID(const JID& jid); @@ -39,6 +40,7 @@ class XMPPRoster { boost::signal<void (const JID&)> onJIDAdded; boost::signal<void (const JID&)> onJIDRemoved; boost::signal<void (const JID&, const String&, const std::vector<String>&)> onJIDUpdated; + boost::signal<void ()> onRosterCleared; private: //std::map<JID, std::pair<String, std::vector<String> > > entries_; |