summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Roster/XMPPRosterImpl.h')
-rw-r--r--Swiften/Roster/XMPPRosterImpl.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/Swiften/Roster/XMPPRosterImpl.h b/Swiften/Roster/XMPPRosterImpl.h
new file mode 100644
index 0000000..c2d2458
--- /dev/null
+++ b/Swiften/Roster/XMPPRosterImpl.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2010 Remko Tronçon
+ * Licensed under the GNU General Public License v3.
+ * See Documentation/Licenses/GPLv3.txt for more information.
+ */
+
+#pragma once
+
+#include <map>
+
+#include "Swiften/Roster/XMPPRoster.h"
+
+namespace Swift {
+ class XMPPRosterImpl : public XMPPRoster {
+ public:
+ XMPPRosterImpl();
+
+ void addContact(const JID& jid, const String& name, const std::vector<String>& groups, const RosterItemPayload::Subscription subscription);
+ void removeContact(const JID& jid);
+ void clear();
+
+ bool containsJID(const JID& jid);
+ RosterItemPayload::Subscription getSubscriptionStateForJID(const JID& jid);
+ String getNameForJID(const JID& jid) const;
+ const std::vector<String>& getGroupsForJID(const JID& jid);
+
+ private:
+ struct XMPPRosterItem {
+ JID jid;
+ String name;
+ std::vector<String> groups;
+ RosterItemPayload::Subscription subscription;
+ };
+ std::map<JID, XMPPRosterItem> entries_;
+ };
+}