diff options
Diffstat (limited to 'Swiften')
-rw-r--r-- | Swiften/Client/Client.cpp | 6 | ||||
-rw-r--r-- | Swiften/Client/Client.h | 9 | ||||
-rw-r--r-- | Swiften/Examples/ConnectivityTest/ConnectivityTest.cpp | 2 | ||||
-rw-r--r-- | Swiften/Examples/EchoBot/EchoBot.cpp | 2 |
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(); } |