diff options
author | Kevin Smith <git@kismith.co.uk> | 2010-04-18 18:03:21 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2010-04-18 18:03:21 (GMT) |
commit | 427f6b307aa35fc921aa8d8538b8c653219bb065 (patch) | |
tree | bc195c8f2fef00401d934bedc4605105abaf6544 /Swiften/Roster/Roster.h | |
parent | b63315fa2b1a6f571dc0fa09a9d5ec0c6392372f (diff) | |
download | swift-contrib-427f6b307aa35fc921aa8d8538b8c653219bb065.zip swift-contrib-427f6b307aa35fc921aa8d8538b8c653219bb065.tar.bz2 |
Improve roster performance through map lookups on operations
Diffstat (limited to 'Swiften/Roster/Roster.h')
-rw-r--r-- | Swiften/Roster/Roster.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/Swiften/Roster/Roster.h b/Swiften/Roster/Roster.h index 2e88c5d..5fc3cfb 100644 --- a/Swiften/Roster/Roster.h +++ b/Swiften/Roster/Roster.h @@ -14,6 +14,7 @@ #include "Swiften/Roster/RosterFilter.h" #include <vector> +#include <map> #include <boost/signal.hpp> #include <boost/shared_ptr.hpp> @@ -35,6 +36,8 @@ class Roster { void removeContact(const JID& jid); void removeContactFromGroup(const JID& jid, const String& group); void applyOnItems(const RosterItemOperation& operation); + void applyOnAllItems(const RosterItemOperation& operation); + void applyOnItem(const RosterItemOperation& operation, const JID& jid); boost::signal<void (boost::shared_ptr<UserRosterAction>)> onUserAction; void addFilter(RosterFilter *filter) {filters_.push_back(filter);filterAll();} void removeFilter(RosterFilter *filter); @@ -49,6 +52,7 @@ class Roster { std::vector<RosterItem*> children_; std::vector<RosterItem*> items_; std::vector<RosterFilter*> filters_; + std::map<JID, std::vector<RosterItem*> > itemMap_; }; } |