diff options
author | Tarun Gupta <tarun1995gupta@gmail.com> | 2017-06-15 11:04:26 (GMT) |
---|---|---|
committer | Tobias Markmann <tm@ayena.de> | 2017-06-26 13:06:37 (GMT) |
commit | e142d11c3fa6ae2bdfc95ee9cea54bb0000917c9 (patch) | |
tree | 591fce5f344a983a2c0dfd6b3affd08c68b02fc9 /Swiften/Elements | |
parent | cfd0f09744c543efb52dcfeaef8a760a766a4d71 (diff) | |
download | swift-e142d11c3fa6ae2bdfc95ee9cea54bb0000917c9.zip swift-e142d11c3fa6ae2bdfc95ee9cea54bb0000917c9.tar.bz2 |
Adds MIX Join Element, its Parser and Serializer.
Add MIXDestroySerializer to FullPayloadSerializerCollection.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
Added tests for MIX Join Parser and Serializer based on examples in XEP 0369, which passes.
Tested on Ubuntu 16.04 LTS.
Change-Id: Ibf7446dd65714dccdd39c485549fd9fb9faba40c
Diffstat (limited to 'Swiften/Elements')
-rw-r--r-- | Swiften/Elements/MIXJoin.h | 73 | ||||
-rw-r--r-- | Swiften/Elements/MIXSubscribe.h | 38 |
2 files changed, 111 insertions, 0 deletions
diff --git a/Swiften/Elements/MIXJoin.h b/Swiften/Elements/MIXJoin.h new file mode 100644 index 0000000..2d82adc --- /dev/null +++ b/Swiften/Elements/MIXJoin.h @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2017 Tarun Gupta + * Licensed under the simplified BSD license. + * See Documentation/Licenses/BSD-simplified.txt for more information. + */ + +#pragma once + +#include <memory> +#include <string> + +#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> + +namespace Swift { + class SWIFTEN_API MIXJoin : public Payload { + + public: + using ref = std::shared_ptr<MIXJoin>; + + public: + + MIXJoin() {} + + const boost::optional<JID>& getChannel() const { + return channel_; + } + + void setChannel(const JID& channel) { + channel_ = channel; + } + + const boost::optional<JID>& getJID() const { + return jid_; + } + + void setJID(const JID& jid) { + jid_ = jid; + } + + const std::vector<MIXSubscribe::ref>& getSubscriptions() const { + return subscribeItems_; + } + + void setSubscriptions(const std::vector<MIXSubscribe::ref>& value) { + subscribeItems_ = value ; + } + + void addSubscription(MIXSubscribe::ref value) { + subscribeItems_.push_back(value); + } + + void setForm(std::shared_ptr<Form> form) { + form_ = form; + } + + const std::shared_ptr<Form>& getForm() const { + return form_; + } + + private: + boost::optional<JID> jid_; + boost::optional<JID> channel_; + std::vector<MIXSubscribe::ref> subscribeItems_; + std::shared_ptr<Form> form_; + // FIXME: MIXInvitation to be implemented. boost::optional<MIXInvitation> invitation_; + }; +} diff --git a/Swiften/Elements/MIXSubscribe.h b/Swiften/Elements/MIXSubscribe.h new file mode 100644 index 0000000..eaf1aa9 --- /dev/null +++ b/Swiften/Elements/MIXSubscribe.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2017 Tarun Gupta + * Licensed under the simplified BSD license. + * See Documentation/Licenses/BSD-simplified.txt for more information. + */ + +#pragma once + +#include <memory> +#include <string> + +#include <boost/optional.hpp> + +#include <Swiften/Base/API.h> +#include <Swiften/Elements/Payload.h> + +namespace Swift { + class SWIFTEN_API MIXSubscribe : public Payload { + + public: + using ref = std::shared_ptr<MIXSubscribe>; + + public: + + MIXSubscribe() {} + + const std::string& getNode() const { + return node_; + } + + void setNode(const std::string& node) { + node_ = node; + } + + private: + std::string node_; + }; +} |