/* * Copyright (c) 2010 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #pragma once #include #include 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 boost::dynamic_pointer_cast(element); } virtual String serializePayload(boost::shared_ptr) const = 0; }; }