/* * 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 #include "Swiften/Elements/Element.h" #include "Swiften/Elements/StreamType.h" #include "Swiften/Base/String.h" #include "Swiften/Serializer/ElementSerializer.h" namespace Swift { class PayloadSerializerCollection; class CompressRequestSerializer; class ProtocolHeader; class XMPPSerializer { public: XMPPSerializer(PayloadSerializerCollection*, StreamType type); String serializeHeader(const ProtocolHeader&) const; String serializeElement(boost::shared_ptr stanza) const; String serializeFooter() const; private: String getDefaultNamespace() const; private: StreamType type_; std::vector< boost::shared_ptr > serializers_; }; }