summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTarun Gupta <tarun1995gupta@gmail.com>2017-06-10 17:23:25 (GMT)
committerTobias Markmann <tm@ayena.de>2017-06-18 15:40:29 (GMT)
commitb8c1d6fb59bd4ae528d807fc30b02dab45aafabf (patch)
treee03a723b0f7b9b64c68d38fa0e38817adab3be8a /Swiften/Parser/PayloadParsers/MIXParticipantParser.cpp
parentccefa0d4d90fd89a6d7e9cd6167066f3797020d7 (diff)
downloadswift-b8c1d6fb59bd4ae528d807fc30b02dab45aafabf.zip
swift-b8c1d6fb59bd4ae528d807fc30b02dab45aafabf.tar.bz2
Adds MIX Participant Element, its Parsers and Serializers.
License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details. Test-Information: Adds tests for MIX Participant Parser and Serializer from XEP-0369, which passes. Tested on Ubuntu 16.04 LTS. Change-Id: Iee2d96c8ebdf9461c28518f8f8c28c11d2a94524
Diffstat (limited to 'Swiften/Parser/PayloadParsers/MIXParticipantParser.cpp')
-rw-r--r--Swiften/Parser/PayloadParsers/MIXParticipantParser.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/Swiften/Parser/PayloadParsers/MIXParticipantParser.cpp b/Swiften/Parser/PayloadParsers/MIXParticipantParser.cpp
new file mode 100644
index 0000000..0ab2b87
--- /dev/null
+++ b/Swiften/Parser/PayloadParsers/MIXParticipantParser.cpp
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2017 Tarun Gupta
+ * Licensed under the simplified BSD license.
+ * See Documentation/Licenses/BSD-simplified.txt for more information.
+ */
+
+#include <Swiften/Parser/PayloadParsers/MIXParticipantParser.h>
+
+namespace Swift {
+
+void MIXParticipantParser::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);
+ }
+ }
+ }
+}
+
+}