/* * 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 #include namespace Swift { JingleFileTransferHashSerializer::JingleFileTransferHashSerializer() { } std::string JingleFileTransferHashSerializer::serializePayload(boost::shared_ptr payload) const { // code for version urn:xmpp:jingle:apps:file-transfer:2 //XMLElement hash("hash", "urn:xmpp:jingle:apps:file-transfer:info:2", payload->getHash()); // code for version urn:xmpp:jingle:apps:file-transfer:3 XMLElement checksum("checksum", "urn:xmpp:jingle:apps:file-transfer:3"); boost::shared_ptr file = boost::make_shared("file"); checksum.addNode(file); boost::shared_ptr hashes = boost::make_shared("hashes", "urn:xmpp:hashes:0"); file->addNode(hashes); foreach(const JingleFileTransferHash::HashesMap::value_type& pair, payload->getHashes()) { boost::shared_ptr hash = boost::make_shared("hash", "", pair.second); hash->setAttribute("algo", pair.first); hashes->addNode(hash); } return checksum.serialize(); } }