summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Session/Session.cpp')
-rw-r--r--Swiften/Session/Session.cpp130
1 files changed, 65 insertions, 65 deletions
diff --git a/Swiften/Session/Session.cpp b/Swiften/Session/Session.cpp
index 95d7227..7f13cd7 100644
--- a/Swiften/Session/Session.cpp
+++ b/Swiften/Session/Session.cpp
@@ -14,92 +14,92 @@
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) {
+ 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) {
}
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);
+ 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);
+ }
}
}