/* * Copyright (c) 2017 Tarun Gupta * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ #include #include #include #include #include #include using namespace Swift; MIXJoinSerializer::MIXJoinSerializer() { } MIXJoinSerializer::~MIXJoinSerializer() { } std::string MIXJoinSerializer::serializePayload(std::shared_ptr payload) const { if (!payload) { return ""; } XMLElement element("join", "urn:xmpp:mix:0"); if (payload->getChannel()) { element.setAttribute("channel", *payload->getChannel()); } if (payload->getJID()) { element.setAttribute("jid", *payload->getJID()); } for (const auto& item : payload->getSubscriptions()) { element.addNode(std::make_shared(MIXSubscribeSerializer().serialize(item))); } if (payload->getForm()) { element.addNode(std::make_shared(FormSerializer().serialize(payload->getForm()))); } return element.serialize(); }