summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2010-04-18 18:03:21 (GMT)
committerKevin Smith <git@kismith.co.uk>2010-04-18 18:03:21 (GMT)
commit427f6b307aa35fc921aa8d8538b8c653219bb065 (patch)
treebc195c8f2fef00401d934bedc4605105abaf6544 /Swiften/Roster/Roster.h
parentb63315fa2b1a6f571dc0fa09a9d5ec0c6392372f (diff)
downloadswift-427f6b307aa35fc921aa8d8538b8c653219bb065.zip
swift-427f6b307aa35fc921aa8d8538b8c653219bb065.tar.bz2
Improve roster performance through map lookups on operations
Diffstat (limited to 'Swiften/Roster/Roster.h')
-rw-r--r--Swiften/Roster/Roster.h4
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_;
};
}