summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften')
-rw-r--r--Swiften/Client/Client.cpp6
-rw-r--r--Swiften/Client/Client.h9
-rw-r--r--Swiften/Examples/ConnectivityTest/ConnectivityTest.cpp2
-rw-r--r--Swiften/Examples/EchoBot/EchoBot.cpp2
4 files changed, 13 insertions, 6 deletions
diff --git a/Swiften/Client/Client.cpp b/Swiften/Client/Client.cpp
index bf651cc..13e7a9b 100644
--- a/Swiften/Client/Client.cpp
+++ b/Swiften/Client/Client.cpp
@@ -17,11 +17,12 @@
#include "Swiften/Network/BoostTimerFactory.h"
#include "Swiften/TLS/PKCS12Certificate.h"
#include "Swiften/Session/BasicSessionStream.h"
+#include "Swiften/Queries/IQRouter.h"
namespace Swift {
-Client::Client(const JID& jid, const String& password) :
- IQRouter(this), jid_(jid), password_(password) {
+Client::Client(const JID& jid, const String& password) : jid_(jid), password_(password) {
+ iqRouter_ = new IQRouter(this);
connectionFactory_ = new BoostConnectionFactory(&MainBoostIOServiceThread::getInstance().getIOService());
timerFactory_ = new BoostTimerFactory(&MainBoostIOServiceThread::getInstance().getIOService());
tlsLayerFactory_ = new PlatformTLSLayerFactory();
@@ -34,6 +35,7 @@ Client::~Client() {
delete tlsLayerFactory_;
delete timerFactory_;
delete connectionFactory_;
+ delete iqRouter_;
}
bool Client::isAvailable() {
diff --git a/Swiften/Client/Client.h b/Swiften/Client/Client.h
index 1023108..cb07036 100644
--- a/Swiften/Client/Client.h
+++ b/Swiften/Client/Client.h
@@ -20,18 +20,18 @@
#include "Swiften/Base/String.h"
#include "Swiften/Base/IDGenerator.h"
#include "Swiften/Client/StanzaChannel.h"
-#include "Swiften/Queries/IQRouter.h"
#include "Swiften/Parser/PayloadParsers/FullPayloadParserFactoryCollection.h"
#include "Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.h"
namespace Swift {
+ class IQRouter;
class TLSLayerFactory;
class ConnectionFactory;
class TimerFactory;
class ClientSession;
class BasicSessionStream;
- class Client : public StanzaChannel, public IQRouter, public boost::bsignals::trackable {
+ class Client : public StanzaChannel, public boost::bsignals::trackable {
public:
Client(const JID& jid, const String& password);
~Client();
@@ -50,6 +50,10 @@ namespace Swift {
virtual void sendMessage(boost::shared_ptr<Message>);
virtual void sendPresence(boost::shared_ptr<Presence>);
+ IQRouter* getIQRouter() const {
+ return iqRouter_;
+ }
+
public:
boost::signal<void (const ClientError&)> onError;
boost::signal<void ()> onConnected;
@@ -75,6 +79,7 @@ namespace Swift {
JID jid_;
String password_;
IDGenerator idGenerator_;
+ IQRouter* iqRouter_;
Connector::ref connector_;
ConnectionFactory* connectionFactory_;
TimerFactory* timerFactory_;
diff --git a/Swiften/Examples/ConnectivityTest/ConnectivityTest.cpp b/Swiften/Examples/ConnectivityTest/ConnectivityTest.cpp
index 049802f..af08a9c 100644
--- a/Swiften/Examples/ConnectivityTest/ConnectivityTest.cpp
+++ b/Swiften/Examples/ConnectivityTest/ConnectivityTest.cpp
@@ -41,7 +41,7 @@ void handleServerDiscoInfoResponse(boost::shared_ptr<DiscoInfo> /*info*/, const
void handleConnected() {
exitCode = NO_RESPONSE;
- boost::shared_ptr<GetDiscoInfoRequest> discoInfoRequest(new GetDiscoInfoRequest(JID(), client));
+ boost::shared_ptr<GetDiscoInfoRequest> discoInfoRequest(new GetDiscoInfoRequest(JID(), client->getIQRouter()));
discoInfoRequest->onResponse.connect(handleServerDiscoInfoResponse);
discoInfoRequest->send();
}
diff --git a/Swiften/Examples/EchoBot/EchoBot.cpp b/Swiften/Examples/EchoBot/EchoBot.cpp
index 1c576c9..0474287 100644
--- a/Swiften/Examples/EchoBot/EchoBot.cpp
+++ b/Swiften/Examples/EchoBot/EchoBot.cpp
@@ -29,7 +29,7 @@ class EchoBot {
private:
void handleConnected() {
- shared_ptr<GetRosterRequest> rosterRequest(new GetRosterRequest(client));
+ shared_ptr<GetRosterRequest> rosterRequest(new GetRosterRequest(client->getIQRouter()));
rosterRequest->onResponse.connect(bind(&EchoBot::handleRosterReceived, this, _2));
rosterRequest->send();
}