diff options
Diffstat (limited to 'Swiften/Session/BasicSessionStream.h')
-rw-r--r-- | Swiften/Session/BasicSessionStream.h | 132 |
1 files changed, 66 insertions, 66 deletions
diff --git a/Swiften/Session/BasicSessionStream.h b/Swiften/Session/BasicSessionStream.h index 389ecbe..30a7e3b 100644 --- a/Swiften/Session/BasicSessionStream.h +++ b/Swiften/Session/BasicSessionStream.h @@ -1,90 +1,90 @@ /* - * 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-2018 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. */ #pragma once -#include <boost/shared_ptr.hpp> +#include <memory> +#include <Swiften/Base/API.h> #include <Swiften/Base/SafeByteArray.h> +#include <Swiften/Elements/StreamType.h> #include <Swiften/Network/Connection.h> #include <Swiften/Session/SessionStream.h> -#include <Swiften/Elements/StreamType.h> #include <Swiften/TLS/TLSError.h> +#include <Swiften/TLS/TLSOptions.h> namespace Swift { - class TLSContextFactory; - class TLSLayer; - class TimerFactory; - class WhitespacePingLayer; - class PayloadParserFactoryCollection; - class PayloadSerializerCollection; - class StreamStack; - class XMPPLayer; - class ConnectionLayer; - class CompressionLayer; - class XMLParserFactory; + class TLSContextFactory; + class TLSLayer; + class TimerFactory; + class WhitespacePingLayer; + class PayloadParserFactoryCollection; + class PayloadSerializerCollection; + class StreamStack; + class XMPPLayer; + class ConnectionLayer; + class CompressionLayer; + class XMLParserFactory; - class BasicSessionStream : public SessionStream { - public: - BasicSessionStream( - StreamType streamType, - boost::shared_ptr<Connection> connection, - PayloadParserFactoryCollection* payloadParserFactories, - PayloadSerializerCollection* payloadSerializers, - TLSContextFactory* tlsContextFactory, - TimerFactory* whitespacePingLayerFactory, - XMLParserFactory* xmlParserFactory - ); - ~BasicSessionStream(); + class SWIFTEN_API BasicSessionStream : public SessionStream { + public: + BasicSessionStream( + StreamType streamType, + std::shared_ptr<Connection> connection, + PayloadParserFactoryCollection* payloadParserFactories, + PayloadSerializerCollection* payloadSerializers, + TLSContextFactory* tlsContextFactory, + TimerFactory* whitespacePingLayerFactory, + XMLParserFactory* xmlParserFactory, + const TLSOptions& tlsOptions + ); + virtual ~BasicSessionStream(); - virtual void close(); - virtual bool isOpen(); + virtual void close(); + virtual bool isOpen(); - virtual void writeHeader(const ProtocolHeader& header); - virtual void writeElement(boost::shared_ptr<Element>); - virtual void writeFooter(); - virtual void writeData(const std::string& data); + virtual void writeHeader(const ProtocolHeader& header); + virtual void writeElement(std::shared_ptr<ToplevelElement>); + virtual void writeFooter(); + virtual void writeData(const std::string& data); - virtual bool supportsZLibCompression(); - virtual void addZLibCompression(); + virtual bool supportsZLibCompression(); + virtual void addZLibCompression(); - virtual bool supportsTLSEncryption(); - virtual void addTLSEncryption(); - virtual bool isTLSEncrypted(); - virtual Certificate::ref getPeerCertificate() const; - virtual std::vector<Certificate::ref> getPeerCertificateChain() const; + virtual bool supportsTLSEncryption(); + virtual void addTLSEncryption(); + virtual bool isTLSEncrypted(); + virtual Certificate::ref getPeerCertificate() const; + virtual std::vector<Certificate::ref> getPeerCertificateChain() const; - virtual boost::shared_ptr<CertificateVerificationError> getPeerCertificateVerificationError() const; - virtual ByteArray getTLSFinishMessage() const; + virtual std::shared_ptr<CertificateVerificationError> getPeerCertificateVerificationError() const; + virtual ByteArray getTLSFinishMessage() const; - virtual void setWhitespacePingEnabled(bool); + virtual void setWhitespacePingEnabled(bool); - virtual void resetXMPPParser(); + virtual void resetXMPPParser(); - private: - void handleConnectionFinished(const boost::optional<Connection::Error>& error); - void handleXMPPError(); - void handleTLSConnected(); - void handleTLSError(boost::shared_ptr<TLSError>); - void handleStreamStartReceived(const ProtocolHeader&); - void handleElementReceived(boost::shared_ptr<Element>); - void handleDataRead(const SafeByteArray& data); - void handleDataWritten(const SafeByteArray& data); + private: + void handleConnectionFinished(const boost::optional<Connection::Error>& error); + void handleXMPPError(); + void handleTLSConnected(); + void handleTLSError(std::shared_ptr<TLSError>); + void handleStreamStartReceived(const ProtocolHeader&); + void handleStreamEndReceived(); + void handleElementReceived(std::shared_ptr<ToplevelElement>); + void handleDataRead(const SafeByteArray& data); + void handleDataWritten(const SafeByteArray& data); - private: - bool available; - boost::shared_ptr<Connection> connection; - TLSContextFactory* tlsContextFactory; - TimerFactory* timerFactory; - XMPPLayer* xmppLayer; - ConnectionLayer* connectionLayer; - CompressionLayer* compressionLayer; - TLSLayer* tlsLayer; - WhitespacePingLayer* whitespacePingLayer; - StreamStack* streamStack; - }; + private: + bool available; + std::shared_ptr<Connection> connection; + TLSContextFactory* tlsContextFactory; + TimerFactory* timerFactory; + std::unique_ptr<StreamStack> streamStack; + TLSOptions tlsOptions_; + }; } |