summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2011-10-07 18:09:30 (GMT)
committerRemko Tronçon <git@el-tramo.be>2011-10-07 18:09:30 (GMT)
commit6b98253a4127c975bd59b6a49ddb203337a8c32b (patch)
tree546a24e1687f50e403215152d65e21971568f166 /Swiften/Session
parentb2f58c4f3eb93e3a32062670df5eb6682aed273a (diff)
downloadswift-contrib-6b98253a4127c975bd59b6a49ddb203337a8c32b.zip
swift-contrib-6b98253a4127c975bd59b6a49ddb203337a8c32b.tar.bz2
Hoist XML parser factory creation out of Swiften.
Diffstat (limited to 'Swiften/Session')
-rw-r--r--Swiften/Session/BasicSessionStream.cpp5
-rw-r--r--Swiften/Session/BasicSessionStream.h4
-rw-r--r--Swiften/Session/Session.cpp6
-rw-r--r--Swiften/Session/Session.h5
4 files changed, 14 insertions, 6 deletions
diff --git a/Swiften/Session/BasicSessionStream.cpp b/Swiften/Session/BasicSessionStream.cpp
index d08be4f..07a04b8 100644
--- a/Swiften/Session/BasicSessionStream.cpp
+++ b/Swiften/Session/BasicSessionStream.cpp
@@ -25,7 +25,8 @@ BasicSessionStream::BasicSessionStream(
PayloadParserFactoryCollection* payloadParserFactories,
PayloadSerializerCollection* payloadSerializers,
TLSContextFactory* tlsContextFactory,
- TimerFactory* timerFactory) :
+ TimerFactory* timerFactory,
+ XMLParserFactory* xmlParserFactory) :
available(false),
connection(connection),
payloadParserFactories(payloadParserFactories),
@@ -36,7 +37,7 @@ BasicSessionStream::BasicSessionStream(
compressionLayer(NULL),
tlsLayer(NULL),
whitespacePingLayer(NULL) {
- xmppLayer = new XMPPLayer(payloadParserFactories, payloadSerializers, streamType);
+ xmppLayer = new XMPPLayer(payloadParserFactories, payloadSerializers, xmlParserFactory, streamType);
xmppLayer->onStreamStart.connect(boost::bind(&BasicSessionStream::handleStreamStartReceived, this, _1));
xmppLayer->onElement.connect(boost::bind(&BasicSessionStream::handleElementReceived, this, _1));
xmppLayer->onError.connect(boost::bind(&BasicSessionStream::handleXMPPError, this));
diff --git a/Swiften/Session/BasicSessionStream.h b/Swiften/Session/BasicSessionStream.h
index 2a1ed8a..2ed5ac6 100644
--- a/Swiften/Session/BasicSessionStream.h
+++ b/Swiften/Session/BasicSessionStream.h
@@ -24,6 +24,7 @@ namespace Swift {
class XMPPLayer;
class ConnectionLayer;
class CompressionLayer;
+ class XMLParserFactory;
class BasicSessionStream : public SessionStream {
public:
@@ -33,7 +34,8 @@ namespace Swift {
PayloadParserFactoryCollection* payloadParserFactories,
PayloadSerializerCollection* payloadSerializers,
TLSContextFactory* tlsContextFactory,
- TimerFactory* whitespacePingLayerFactory
+ TimerFactory* whitespacePingLayerFactory,
+ XMLParserFactory* xmlParserFactory
);
~BasicSessionStream();
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
@@ -16,10 +16,12 @@ 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),
@@ -64,7 +66,7 @@ void Session::finishSession(const 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));
diff --git a/Swiften/Session/Session.h b/Swiften/Session/Session.h
index 9e954c7..c937430 100644
--- a/Swiften/Session/Session.h
+++ b/Swiften/Session/Session.h
@@ -25,6 +25,7 @@ namespace Swift {
class PayloadParserFactoryCollection;
class PayloadSerializerCollection;
class XMPPLayer;
+ class XMLParserFactory;
class Session : public boost::enable_shared_from_this<Session> {
public:
@@ -45,7 +46,8 @@ namespace Swift {
Session(
boost::shared_ptr<Connection> connection,
PayloadParserFactoryCollection* payloadParserFactories,
- PayloadSerializerCollection* payloadSerializers);
+ PayloadSerializerCollection* payloadSerializers,
+ XMLParserFactory* xmlParserFactory);
virtual ~Session();
void startSession();
@@ -103,6 +105,7 @@ namespace Swift {
boost::shared_ptr<Connection> connection;
PayloadParserFactoryCollection* payloadParserFactories;
PayloadSerializerCollection* payloadSerializers;
+ XMLParserFactory* xmlParserFactory;
XMPPLayer* xmppLayer;
ConnectionLayer* connectionLayer;
StreamStack* streamStack;