summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Session/Session.cpp')
-rw-r--r--Swiften/Session/Session.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/Swiften/Session/Session.cpp b/Swiften/Session/Session.cpp
index e8b8308..661cb8d 100644
--- a/Swiften/Session/Session.cpp
+++ b/Swiften/Session/Session.cpp
@@ -10,22 +10,24 @@
#include <Swiften/StreamStack/XMPPLayer.h>
#include <Swiften/StreamStack/StreamStack.h>
namespace Swift {
Session::Session(
boost::shared_ptr<Connection> connection,
PayloadParserFactoryCollection* payloadParserFactories,
- PayloadSerializerCollection* payloadSerializers) :
+ 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;
@@ -58,19 +60,19 @@ void Session::finishSession(const SessionError& error) {
if (xmppLayer) {
xmppLayer->writeFooter();
}
connection->disconnect();
handleSessionFinished(boost::optional<SessionError>(error));
onSessionFinished(boost::optional<SessionError>(error));
}
void Session::initializeStreamStack() {
- xmppLayer = new XMPPLayer(payloadParserFactories, payloadSerializers, ClientStreamType);
+ xmppLayer = new XMPPLayer(payloadParserFactories, payloadSerializers, xmlParserFactory, ClientStreamType);
xmppLayer->onStreamStart.connect(
boost::bind(&Session::handleStreamStart, shared_from_this(), _1));
xmppLayer->onElement.connect(boost::bind(&Session::handleElement, shared_from_this(), _1));
xmppLayer->onError.connect(
boost::bind(&Session::finishSession, shared_from_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, shared_from_this(), _1));