diff options
Diffstat (limited to 'Swiften/Elements/MIXJoin.h')
-rw-r--r-- | Swiften/Elements/MIXJoin.h | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/Swiften/Elements/MIXJoin.h b/Swiften/Elements/MIXJoin.h index 2d82adc..ecd7b12 100644 --- a/Swiften/Elements/MIXJoin.h +++ b/Swiften/Elements/MIXJoin.h @@ -8,12 +8,12 @@ #include <memory> #include <string> +#include <unordered_set> #include <boost/optional.hpp> #include <Swiften/Base/API.h> #include <Swiften/Elements/Payload.h> -#include <Swiften/Elements/MIXSubscribe.h> #include <Swiften/Elements/Form.h> #include <Swiften/JID/JID.h> @@ -31,7 +31,7 @@ namespace Swift { return channel_; } - void setChannel(const JID& channel) { + void setChannel(JID channel) { channel_ = channel; } @@ -39,20 +39,24 @@ namespace Swift { return jid_; } - void setJID(const JID& jid) { + void setJID(JID jid) { jid_ = jid; } - const std::vector<MIXSubscribe::ref>& getSubscriptions() const { + const std::unordered_set<std::string>& getSubscriptions() const { return subscribeItems_; } - void setSubscriptions(const std::vector<MIXSubscribe::ref>& value) { - subscribeItems_ = value ; + void setSubscriptions(std::unordered_set<std::string> values) { + subscribeItems_ = values ; } - void addSubscription(MIXSubscribe::ref value) { - subscribeItems_.push_back(value); + void addSubscription(std::string value) { + subscribeItems_.insert(value); + } + + bool hasSubscription(const std::string& value) const { + return std::find(subscribeItems_.begin(), subscribeItems_.end(), value) != subscribeItems_.end(); } void setForm(std::shared_ptr<Form> form) { @@ -66,7 +70,7 @@ namespace Swift { private: boost::optional<JID> jid_; boost::optional<JID> channel_; - std::vector<MIXSubscribe::ref> subscribeItems_; + std::unordered_set<std::string> subscribeItems_; std::shared_ptr<Form> form_; // FIXME: MIXInvitation to be implemented. boost::optional<MIXInvitation> invitation_; }; |