/* * 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 { PubSubPayloadSerializer::PubSubPayloadSerializer(PayloadSerializerCollection *serializers) : GenericPayloadSerializer(), serializers(serializers) { } std::string PubSubPayloadSerializer::serializePayload(boost::shared_ptr payload) const { XMLElement pubsub("pubsub", "http://jabber.org/protocol/pubsub"); if (!payload->getPayloads().empty()) { foreach(boost::shared_ptr subPayload, payload->getPayloads()) { PayloadSerializer* serializer = serializers->getPayloadSerializer(subPayload); if (serializer) { pubsub.addNode(boost::shared_ptr(new XMLRawTextNode(serializer->serialize(subPayload)))); } } } return pubsub.serialize(); } }