#ifndef SWIFTEN_GenericPayloadSerializer_H #define SWIFTEN_GenericPayloadSerializer_H #include #include "Swiften/Serializer/PayloadSerializer.h" #include "Swiften/Elements/Body.h" namespace Swift { template class GenericPayloadSerializer : public PayloadSerializer { public: virtual String serialize(boost::shared_ptr element) const { return serializePayload(boost::dynamic_pointer_cast(element)); } virtual bool canSerialize(boost::shared_ptr element) const { return dynamic_cast(element.get()); } virtual String serializePayload(boost::shared_ptr) const = 0; }; } #endif