diff options
Diffstat (limited to 'Swiften/Serializer/StanzaSerializer.h')
-rw-r--r-- | Swiften/Serializer/StanzaSerializer.h | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/Swiften/Serializer/StanzaSerializer.h b/Swiften/Serializer/StanzaSerializer.h index db18aa2..b2e051c 100644 --- a/Swiften/Serializer/StanzaSerializer.h +++ b/Swiften/Serializer/StanzaSerializer.h @@ -1,28 +1,34 @@ /* - * Copyright (c) 2010 Remko Tronçon - * Licensed under the GNU General Public License v3. - * See Documentation/Licenses/GPLv3.txt for more information. + * Copyright (c) 2013-2016 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. */ #pragma once +#include <string> + +#include <boost/optional.hpp> + +#include <Swiften/Base/API.h> #include <Swiften/Elements/Stanza.h> #include <Swiften/Serializer/ElementSerializer.h> -#include <string> namespace Swift { - class PayloadSerializerCollection; - class XMLElement; + class PayloadSerializerCollection; + class XMLElement; - class StanzaSerializer : public ElementSerializer { - public: - StanzaSerializer(const std::string& tag, PayloadSerializerCollection* payloadSerializers); + class SWIFTEN_API StanzaSerializer : public ElementSerializer { + public: + StanzaSerializer(const std::string& tag, PayloadSerializerCollection* payloadSerializers, const boost::optional<std::string>& explicitNS = boost::optional<std::string>()); - virtual SafeByteArray serialize(boost::shared_ptr<Element>) const; - virtual void setStanzaSpecificAttributes(boost::shared_ptr<Element>, XMLElement&) const = 0; + virtual SafeByteArray serialize(std::shared_ptr<ToplevelElement> element) const; + virtual SafeByteArray serialize(std::shared_ptr<ToplevelElement> element, const std::string& xmlns) const; + virtual void setStanzaSpecificAttributes(std::shared_ptr<ToplevelElement>, XMLElement&) const = 0; - private: - std::string tag_; - PayloadSerializerCollection* payloadSerializers_; - }; + private: + std::string tag_; + PayloadSerializerCollection* payloadSerializers_; + boost::optional<std::string> explicitDefaultNS_; + }; } |