diff options
author | Tarun Gupta <tarun1995gupta@gmail.com> | 2017-06-24 18:12:41 (GMT) |
---|---|---|
committer | Tobias Markmann <tm@ayena.de> | 2017-07-11 08:10:47 (GMT) |
commit | 8b3082e5fa56540714f3ce9b72f87965a62b5d14 (patch) | |
tree | 90ab1f432b97b2103de3708b0b6831425ccc2219 /Swiften/Parser/PayloadParsers/MIXPayloadParser.cpp | |
parent | f68d574ff04162e98e16a636c66ab6de5960e875 (diff) | |
download | swift-8b3082e5fa56540714f3ce9b72f87965a62b5d14.zip swift-8b3082e5fa56540714f3ce9b72f87965a62b5d14.tar.bz2 |
Add MIXPayload, its Parser and Serializer
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
Added tests for MIXPayload Parser and Serializer based on examples in XEP 0369, which passes.
Tested on Ubuntu 16.04 LTS.
Change-Id: I45da05d6fe57b4be7ed8534dd84cbf0fd31ced1a
Diffstat (limited to 'Swiften/Parser/PayloadParsers/MIXPayloadParser.cpp')
-rw-r--r-- | Swiften/Parser/PayloadParsers/MIXPayloadParser.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Swiften/Parser/PayloadParsers/MIXPayloadParser.cpp b/Swiften/Parser/PayloadParsers/MIXPayloadParser.cpp new file mode 100644 index 0000000..51ef584 --- /dev/null +++ b/Swiften/Parser/PayloadParsers/MIXPayloadParser.cpp @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2017 Tarun Gupta + * Licensed under the simplified BSD license. + * See Documentation/Licenses/BSD-simplified.txt for more information. + */ + +#include <Swiften/Parser/PayloadParsers/MIXPayloadParser.h> + +namespace Swift { + +void MIXPayloadParser::handleTree(ParserElement::ref root) { + for (const auto& child : root->getAllChildren()) { + if (child->getName() == "nick" && child->getNamespace() == root->getNamespace()) { + getPayloadInternal()->setNick(child->getText()); + } else if (child->getName() == "jid" && child->getNamespace() == root->getNamespace()) { + if (boost::optional<JID> jid = JID::parse(child->getText())) { + getPayloadInternal()->setJID(*jid); + } + } else if (child->getName() == "submission-id" && child->getNamespace() == root->getNamespace()) { + getPayloadInternal()->setSubmissionID(child->getText()); + } + } +} + +} |