/* * Copyright (c) 2011 Jan Kaluza * Licensed under the Simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ #include #include #include #include #include #include namespace Swift { PubSubItemSerializer::PubSubItemSerializer(PayloadSerializerCollection *serializers) : GenericPayloadSerializer(), serializers(serializers) { } std::string PubSubItemSerializer::serializePayload(boost::shared_ptr payload) const { XMLElement item("item"); if (!payload->getId().empty()) { item.setAttribute("id", payload->getId()); } if (!payload->getPayloads().empty()) { foreach(boost::shared_ptr subPayload, payload->getPayloads()) { PayloadSerializer* serializer = serializers->getPayloadSerializer(subPayload); if (serializer) { item.addNode(boost::shared_ptr(new XMLRawTextNode(serializer->serialize(subPayload)))); } } } return item.serialize(); } }