diff options
Diffstat (limited to 'Swiften/Serializer/PayloadSerializers/JingleFileTransferDescriptionSerializer.cpp')
-rw-r--r-- | Swiften/Serializer/PayloadSerializers/JingleFileTransferDescriptionSerializer.cpp | 46 |
1 files changed, 20 insertions, 26 deletions
diff --git a/Swiften/Serializer/PayloadSerializers/JingleFileTransferDescriptionSerializer.cpp b/Swiften/Serializer/PayloadSerializers/JingleFileTransferDescriptionSerializer.cpp index 16337ff..27e3b33 100644 --- a/Swiften/Serializer/PayloadSerializers/JingleFileTransferDescriptionSerializer.cpp +++ b/Swiften/Serializer/PayloadSerializers/JingleFileTransferDescriptionSerializer.cpp @@ -4,43 +4,37 @@ * See Documentation/Licenses/BSD-simplified.txt for more information. */ +/* + * Copyright (c) 2015-2016 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. + */ + #include <Swiften/Serializer/PayloadSerializers/JingleFileTransferDescriptionSerializer.h> -#include <boost/shared_ptr.hpp> -#include <boost/smart_ptr/make_shared.hpp> +#include <memory> -#include <Swiften/Base/foreach.h> -#include <Swiften/Serializer/XML/XMLNode.h> +#include <boost/lexical_cast.hpp> + +#include <Swiften/Base/DateTime.h> +#include <Swiften/Serializer/PayloadSerializers/JingleFileTransferFileInfoSerializer.h> #include <Swiften/Serializer/XML/XMLElement.h> +#include <Swiften/Serializer/XML/XMLNode.h> #include <Swiften/Serializer/XML/XMLRawTextNode.h> - -#include <Swiften/Serializer/PayloadSerializers/StreamInitiationFileInfoSerializer.h> +#include <Swiften/StringCodecs/Base64.h> namespace Swift { JingleFileTransferDescriptionSerializer::JingleFileTransferDescriptionSerializer() { } -std::string JingleFileTransferDescriptionSerializer::serializePayload(boost::shared_ptr<JingleFileTransferDescription> payload) const { - XMLElement description("description", "urn:xmpp:jingle:apps:file-transfer:3"); - StreamInitiationFileInfoSerializer fileInfoSerializer; - if (!payload->getOffers().empty()) { - boost::shared_ptr<XMLElement> offers = boost::make_shared<XMLElement>("offer"); - foreach(const StreamInitiationFileInfo &fileInfo, payload->getOffers()) { - boost::shared_ptr<XMLRawTextNode> fileInfoXML = boost::make_shared<XMLRawTextNode>(fileInfoSerializer.serialize(boost::make_shared<StreamInitiationFileInfo>(fileInfo))); - offers->addNode(fileInfoXML); - } - description.addNode(offers); - } - if (!payload->getRequests().empty()) { - boost::shared_ptr<XMLElement> requests = boost::make_shared<XMLElement>("request"); - foreach(const StreamInitiationFileInfo &fileInfo, payload->getRequests()) { - boost::shared_ptr<XMLRawTextNode> fileInfoXML = boost::make_shared<XMLRawTextNode>(fileInfoSerializer.serialize(boost::make_shared<StreamInitiationFileInfo>(fileInfo))); - requests->addNode(fileInfoXML); - } - description.addNode(requests); - } - return description.serialize(); +std::string JingleFileTransferDescriptionSerializer::serializePayload(std::shared_ptr<JingleFileTransferDescription> payload) const { + XMLElement description("description", "urn:xmpp:jingle:apps:file-transfer:4"); + + JingleFileTransferFileInfoSerializer fileInfoSerializer; + std::shared_ptr<XMLRawTextNode> fileInfoXML = std::make_shared<XMLRawTextNode>(fileInfoSerializer.serialize(std::make_shared<JingleFileTransferFileInfo>(payload->getFileInfo()))); + description.addNode(fileInfoXML); + return description.serialize(); } } |