diff options
Diffstat (limited to 'Swiften/StreamStack/XMPPLayer.h')
-rw-r--r-- | Swiften/StreamStack/XMPPLayer.h | 106 |
1 files changed, 55 insertions, 51 deletions
diff --git a/Swiften/StreamStack/XMPPLayer.h b/Swiften/StreamStack/XMPPLayer.h index f0e88aa..f0b5afb 100644 --- a/Swiften/StreamStack/XMPPLayer.h +++ b/Swiften/StreamStack/XMPPLayer.h @@ -1,73 +1,77 @@ /* - * Copyright (c) 2010 Remko Tronçon - * Licensed under the GNU General Public License v3. - * See Documentation/Licenses/GPLv3.txt for more information. + * Copyright (c) 2010-2016 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. */ #pragma once -#include <boost/shared_ptr.hpp> -#include <Swiften/Base/boost_bsignals.h> +#include <memory> + #include <boost/noncopyable.hpp> +#include <boost/signals2.hpp> #include <Swiften/Base/API.h> -#include <Swiften/StreamStack/HighLayer.h> #include <Swiften/Base/SafeByteArray.h> -#include <Swiften/Elements/Element.h> #include <Swiften/Elements/StreamType.h> +#include <Swiften/Elements/ToplevelElement.h> #include <Swiften/Parser/XMPPParserClient.h> +#include <Swiften/StreamStack/HighLayer.h> namespace Swift { - class ProtocolHeader; - class XMPPParser; - class PayloadParserFactoryCollection; - class XMPPSerializer; - class PayloadSerializerCollection; - class XMLParserFactory; - class BOSHSessionStream; + class ProtocolHeader; + class XMPPParser; + class PayloadParserFactoryCollection; + class XMPPSerializer; + class PayloadSerializerCollection; + class XMLParserFactory; + class BOSHSessionStream; - class SWIFTEN_API XMPPLayer : public XMPPParserClient, public HighLayer, boost::noncopyable { - friend class BOSHSessionStream; - public: - XMPPLayer( - PayloadParserFactoryCollection* payloadParserFactories, - PayloadSerializerCollection* payloadSerializers, - XMLParserFactory* xmlParserFactory, - StreamType streamType); - ~XMPPLayer(); + class SWIFTEN_API XMPPLayer : public XMPPParserClient, public HighLayer, boost::noncopyable { + friend class BOSHSessionStream; + public: + XMPPLayer( + PayloadParserFactoryCollection* payloadParserFactories, + PayloadSerializerCollection* payloadSerializers, + XMLParserFactory* xmlParserFactory, + StreamType streamType, + bool setExplictNSonTopLevelElements = false); + virtual ~XMPPLayer(); - void writeHeader(const ProtocolHeader& header); - void writeFooter(); - void writeElement(boost::shared_ptr<Element>); - void writeData(const std::string& data); + void writeHeader(const ProtocolHeader& header); + void writeFooter(); + void writeElement(std::shared_ptr<ToplevelElement>); + void writeData(const std::string& data); - void resetParser(); + void resetParser(); - protected: - void handleDataRead(const SafeByteArray& data); - void writeDataInternal(const SafeByteArray& data); + protected: + void handleDataRead(const SafeByteArray& data); + void writeDataInternal(const SafeByteArray& data); - public: - boost::signal<void (const ProtocolHeader&)> onStreamStart; - boost::signal<void (boost::shared_ptr<Element>)> onElement; - boost::signal<void (const SafeByteArray&)> onWriteData; - boost::signal<void (const SafeByteArray&)> onDataRead; - boost::signal<void ()> onError; + public: + boost::signals2::signal<void (const ProtocolHeader&)> onStreamStart; + boost::signals2::signal<void ()> onStreamEnd; + boost::signals2::signal<void (std::shared_ptr<ToplevelElement>)> onElement; + boost::signals2::signal<void (const SafeByteArray&)> onWriteData; + boost::signals2::signal<void (const SafeByteArray&)> onDataRead; + boost::signals2::signal<void ()> onError; - private: - void handleStreamStart(const ProtocolHeader&); - void handleElement(boost::shared_ptr<Element>); - void handleStreamEnd(); + private: + void handleStreamStart(const ProtocolHeader&); + void handleElement(std::shared_ptr<ToplevelElement>); + void handleStreamEnd(); - void doResetParser(); + void doResetParser(); - private: - PayloadParserFactoryCollection* payloadParserFactories_; - XMPPParser* xmppParser_; - PayloadSerializerCollection* payloadSerializers_; - XMLParserFactory* xmlParserFactory_; - XMPPSerializer* xmppSerializer_; - bool resetParserAfterParse_; - bool inParser_; - }; + private: + PayloadParserFactoryCollection* payloadParserFactories_; + XMPPParser* xmppParser_; + PayloadSerializerCollection* payloadSerializers_; + XMLParserFactory* xmlParserFactory_; + XMPPSerializer* xmppSerializer_; + bool setExplictNSonTopLevelElements_; + bool resetParserAfterParse_; + bool inParser_; + }; } |