diff options
author | Remko Tronçon <git@el-tramo.be> | 2011-10-07 18:09:30 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2011-10-07 18:09:30 (GMT) |
commit | 6b98253a4127c975bd59b6a49ddb203337a8c32b (patch) | |
tree | 546a24e1687f50e403215152d65e21971568f166 /Swiften/Session/Session.cpp | |
parent | b2f58c4f3eb93e3a32062670df5eb6682aed273a (diff) | |
download | swift-contrib-6b98253a4127c975bd59b6a49ddb203337a8c32b.zip swift-contrib-6b98253a4127c975bd59b6a49ddb203337a8c32b.tar.bz2 |
Hoist XML parser factory creation out of Swiften.
Diffstat (limited to 'Swiften/Session/Session.cpp')
-rw-r--r-- | Swiften/Session/Session.cpp | 6 |
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)); |