diff options
Diffstat (limited to 'Swiften/Session/Session.cpp')
-rw-r--r-- | Swiften/Session/Session.cpp | 136 |
1 files changed, 68 insertions, 68 deletions
diff --git a/Swiften/Session/Session.cpp b/Swiften/Session/Session.cpp index 4dd8921..ebdb5d1 100644 --- a/Swiften/Session/Session.cpp +++ b/Swiften/Session/Session.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2014 Isode Limited. + * Copyright (c) 2010-2016 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ @@ -8,98 +8,98 @@ #include <boost/bind.hpp> -#include <Swiften/StreamStack/XMPPLayer.h> #include <Swiften/StreamStack/StreamStack.h> +#include <Swiften/StreamStack/XMPPLayer.h> namespace Swift { Session::Session( - boost::shared_ptr<Connection> connection, - PayloadParserFactoryCollection* payloadParserFactories, - PayloadSerializerCollection* payloadSerializers, - XMLParserFactory* xmlParserFactory) : - connection(connection), - payloadParserFactories(payloadParserFactories), - payloadSerializers(payloadSerializers), - xmlParserFactory(xmlParserFactory), - xmppLayer(NULL), - connectionLayer(NULL), - streamStack(0), - finishing(false) { + std::shared_ptr<Connection> connection, + PayloadParserFactoryCollection* payloadParserFactories, + PayloadSerializerCollection* payloadSerializers, + XMLParserFactory* xmlParserFactory) : + connection(connection), + payloadParserFactories(payloadParserFactories), + payloadSerializers(payloadSerializers), + xmlParserFactory(xmlParserFactory), + xmppLayer(nullptr), + connectionLayer(nullptr), + streamStack(nullptr), + finishing(false) { } Session::~Session() { - delete streamStack; - delete connectionLayer; - delete xmppLayer; + delete streamStack; + delete connectionLayer; + delete xmppLayer; } void Session::startSession() { - initializeStreamStack(); - handleSessionStarted(); + initializeStreamStack(); + handleSessionStarted(); } void Session::finishSession() { - if (finishing) { - return; - } - finishing = true; - if (xmppLayer) { - xmppLayer->writeFooter(); - } - connection->disconnect(); + if (finishing) { + return; + } + finishing = true; + if (xmppLayer) { + xmppLayer->writeFooter(); + } + connection->disconnect(); } void Session::finishSession(const SessionError& /*error*/) { - if (finishing) { - return; - } - finishing = true; - if (xmppLayer) { - xmppLayer->writeFooter(); - } - connection->disconnect(); + if (finishing) { + return; + } + finishing = true; + if (xmppLayer) { + xmppLayer->writeFooter(); + } + connection->disconnect(); } void Session::initializeStreamStack() { - xmppLayer = new XMPPLayer(payloadParserFactories, payloadSerializers, xmlParserFactory, ClientStreamType); - xmppLayer->onStreamStart.connect( - boost::bind(&Session::handleStreamStart, this, _1)); - xmppLayer->onElement.connect(boost::bind(&Session::handleElement, this, _1)); - xmppLayer->onError.connect( - boost::bind(&Session::finishSession, this, XMLError)); - xmppLayer->onDataRead.connect(boost::bind(boost::ref(onDataRead), _1)); - xmppLayer->onWriteData.connect(boost::bind(boost::ref(onDataWritten), _1)); - connection->onDisconnected.connect( - boost::bind(&Session::handleDisconnected, this, _1)); - connectionLayer = new ConnectionLayer(connection); - streamStack = new StreamStack(xmppLayer, connectionLayer); + xmppLayer = new XMPPLayer(payloadParserFactories, payloadSerializers, xmlParserFactory, ClientStreamType); + xmppLayer->onStreamStart.connect( + boost::bind(&Session::handleStreamStart, this, _1)); + xmppLayer->onElement.connect(boost::bind(&Session::handleElement, this, _1)); + xmppLayer->onError.connect( + boost::bind(&Session::finishSession, this, XMLError)); + xmppLayer->onDataRead.connect(boost::bind(boost::ref(onDataRead), _1)); + xmppLayer->onWriteData.connect(boost::bind(boost::ref(onDataWritten), _1)); + connection->onDisconnected.connect( + boost::bind(&Session::handleDisconnected, this, _1)); + connectionLayer = new ConnectionLayer(connection); + streamStack = new StreamStack(xmppLayer, connectionLayer); } -void Session::sendElement(boost::shared_ptr<ToplevelElement> stanza) { - xmppLayer->writeElement(stanza); +void Session::sendElement(std::shared_ptr<ToplevelElement> stanza) { + xmppLayer->writeElement(stanza); } void Session::handleDisconnected(const boost::optional<Connection::Error>& connectionError) { - connection->onDisconnected.disconnect( - boost::bind(&Session::handleDisconnected, this, _1)); - if (connectionError) { - switch (*connectionError) { - case Connection::ReadError: - handleSessionFinished(ConnectionReadError); - onSessionFinished(ConnectionReadError); - break; - case Connection::WriteError: - handleSessionFinished(ConnectionWriteError); - onSessionFinished(ConnectionWriteError); - break; - } - } - else { - boost::optional<SessionError> error; - handleSessionFinished(error); - onSessionFinished(error); - } + connection->onDisconnected.disconnect( + boost::bind(&Session::handleDisconnected, this, _1)); + if (connectionError) { + switch (*connectionError) { + case Connection::ReadError: + handleSessionFinished(ConnectionReadError); + onSessionFinished(ConnectionReadError); + break; + case Connection::WriteError: + handleSessionFinished(ConnectionWriteError); + onSessionFinished(ConnectionWriteError); + break; + } + } + else { + boost::optional<SessionError> error; + handleSessionFinished(error); + onSessionFinished(error); + } } } |