/* * Copyright (c) 2011 Tobias Markmann * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ #include #include #include #include #include #include #include #include namespace Swift { JingleFileTransferDescriptionSerializer::JingleFileTransferDescriptionSerializer() { } std::string JingleFileTransferDescriptionSerializer::serializePayload(boost::shared_ptr payload) const { XMLElement description("description", "urn:xmpp:jingle:apps:file-transfer:3"); StreamInitiationFileInfoSerializer fileInfoSerializer; if (!payload->getOffers().empty()) { boost::shared_ptr offers = boost::make_shared("offer"); foreach(const StreamInitiationFileInfo &fileInfo, payload->getOffers()) { boost::shared_ptr fileInfoXML = boost::make_shared(fileInfoSerializer.serialize(boost::make_shared(fileInfo))); offers->addNode(fileInfoXML); } description.addNode(offers); } if (!payload->getRequests().empty()) { boost::shared_ptr requests = boost::make_shared("request"); foreach(const StreamInitiationFileInfo &fileInfo, payload->getRequests()) { boost::shared_ptr fileInfoXML = boost::make_shared(fileInfoSerializer.serialize(boost::make_shared(fileInfo))); requests->addNode(fileInfoXML); } description.addNode(requests); } return description.serialize(); } }