/* * Copyright (c) 2010 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #ifndef SWIFTEN_GENERICSTANZASERIALIZER_H #define SWIFTEN_GENERICSTANZASERIALIZER_H #include "Swiften/Serializer/StanzaSerializer.h" namespace Swift { template class GenericStanzaSerializer : public StanzaSerializer { public: GenericStanzaSerializer(const String& tag, PayloadSerializerCollection* payloadSerializers) : StanzaSerializer(tag, payloadSerializers) {} virtual bool canSerialize(boost::shared_ptr element) const { return dynamic_cast(element.get()) != 0; } virtual void setStanzaSpecificAttributes( boost::shared_ptr stanza, XMLElement& element) const { setStanzaSpecificAttributesGeneric( boost::dynamic_pointer_cast(stanza), element); } virtual void setStanzaSpecificAttributesGeneric( boost::shared_ptr, XMLElement&) const = 0; }; } #endif