/* * Copyright (c) 2017 Tarun Gupta * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ #pragma once #include #include #include #include #include #include #include #include namespace Swift { class SWIFTEN_API MIXJoin : public Payload { public: using ref = std::shared_ptr; public: MIXJoin() {} const boost::optional& getChannel() const { return channel_; } void setChannel(JID channel) { channel_ = channel; } const boost::optional& getJID() const { return jid_; } void setJID(JID jid) { jid_ = jid; } const std::unordered_set& getSubscriptions() const { return subscribeItems_; } void setSubscriptions(std::unordered_set values) { subscribeItems_ = values ; } 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_ = form; } const std::shared_ptr& getForm() const { return form_; } private: boost::optional jid_; boost::optional channel_; std::unordered_set subscribeItems_; std::shared_ptr form_; // FIXME: MIXInvitation to be implemented. boost::optional invitation_; }; }