diff options
Diffstat (limited to 'Swiften/Session')
| -rw-r--r-- | Swiften/Session/BasicSessionStream.cpp | 6 | ||||
| -rw-r--r-- | Swiften/Session/BasicSessionStream.h | 4 | ||||
| -rw-r--r-- | Swiften/Session/SessionStream.h | 2 |
3 files changed, 12 insertions, 0 deletions
diff --git a/Swiften/Session/BasicSessionStream.cpp b/Swiften/Session/BasicSessionStream.cpp index 0d0f49f..ed7f1eb 100644 --- a/Swiften/Session/BasicSessionStream.cpp +++ b/Swiften/Session/BasicSessionStream.cpp @@ -3,12 +3,13 @@ #include <boost/bind.hpp> #include "Swiften/StreamStack/XMPPLayer.h" #include "Swiften/StreamStack/StreamStack.h" #include "Swiften/StreamStack/ConnectionLayer.h" #include "Swiften/StreamStack/WhitespacePingLayer.h" +#include "Swiften/StreamStack/CompressionLayer.h" #include "Swiften/StreamStack/TLSLayer.h" #include "Swiften/StreamStack/TLSLayerFactory.h" namespace Swift { BasicSessionStream::BasicSessionStream(boost::shared_ptr<Connection> connection, PayloadParserFactoryCollection* payloadParserFactories, PayloadSerializerCollection* payloadSerializers, TLSLayerFactory* tlsLayerFactory, TimerFactory* timerFactory) : available(false), connection(connection), payloadParserFactories(payloadParserFactories), payloadSerializers(payloadSerializers), tlsLayerFactory(tlsLayerFactory), timerFactory(timerFactory) { @@ -71,12 +72,17 @@ void BasicSessionStream::addTLSEncryption() { tlsLayer->onError.connect(boost::bind(&BasicSessionStream::handleTLSError, shared_from_this())); tlsLayer->onConnected.connect(boost::bind(&BasicSessionStream::handleTLSConnected, shared_from_this())); tlsLayer->connect(); } } +void BasicSessionStream::addZLibCompression() { + boost::shared_ptr<CompressionLayer> compressionLayer(new CompressionLayer()); + streamStack->addLayer(compressionLayer); +} + void BasicSessionStream::setWhitespacePingEnabled(bool enabled) { if (enabled) { if (!whitespacePingLayer) { whitespacePingLayer = boost::shared_ptr<WhitespacePingLayer>(new WhitespacePingLayer(timerFactory)); streamStack->addLayer(whitespacePingLayer); } diff --git a/Swiften/Session/BasicSessionStream.h b/Swiften/Session/BasicSessionStream.h index f36df83..8618458 100644 --- a/Swiften/Session/BasicSessionStream.h +++ b/Swiften/Session/BasicSessionStream.h @@ -13,12 +13,13 @@ namespace Swift { class WhitespacePingLayer; class PayloadParserFactoryCollection; class PayloadSerializerCollection; class StreamStack; class XMPPLayer; class ConnectionLayer; + class CompressionLayer; class BasicSessionStream : public SessionStream, public boost::enable_shared_from_this<BasicSessionStream> { public: BasicSessionStream( @@ -35,12 +36,14 @@ namespace Swift { virtual bool isAvailable(); virtual void writeHeader(const ProtocolHeader& header); virtual void writeElement(boost::shared_ptr<Element>); virtual void writeFooter(); + virtual void addZLibCompression(); + virtual bool supportsTLSEncryption(); virtual void addTLSEncryption(); virtual void setWhitespacePingEnabled(bool); virtual void resetXMPPParser(); @@ -62,10 +65,11 @@ namespace Swift { PayloadSerializerCollection* payloadSerializers; TLSLayerFactory* tlsLayerFactory; TimerFactory* timerFactory; boost::shared_ptr<XMPPLayer> xmppLayer; boost::shared_ptr<ConnectionLayer> connectionLayer; StreamStack* streamStack; + boost::shared_ptr<CompressionLayer> compressionLayer; boost::shared_ptr<TLSLayer> tlsLayer; boost::shared_ptr<WhitespacePingLayer> whitespacePingLayer; }; } diff --git a/Swiften/Session/SessionStream.h b/Swiften/Session/SessionStream.h index 1252c5a..8c64ccf 100644 --- a/Swiften/Session/SessionStream.h +++ b/Swiften/Session/SessionStream.h @@ -31,12 +31,14 @@ namespace Swift { virtual bool isAvailable() = 0; virtual void writeHeader(const ProtocolHeader& header) = 0; virtual void writeFooter() = 0; virtual void writeElement(boost::shared_ptr<Element>) = 0; + virtual void addZLibCompression() = 0; + virtual bool supportsTLSEncryption() = 0; virtual void addTLSEncryption() = 0; virtual void setWhitespacePingEnabled(bool enabled) = 0; virtual void resetXMPPParser() = 0; |
Swift