diff options
Diffstat (limited to 'Swiften/Client')
-rw-r--r-- | Swiften/Client/Client.cpp | 2 | ||||
-rw-r--r-- | Swiften/Client/Client.h | 2 | ||||
-rw-r--r-- | Swiften/Client/CoreClient.cpp | 6 | ||||
-rw-r--r-- | Swiften/Client/CoreClient.h | 5 |
4 files changed, 9 insertions, 6 deletions
diff --git a/Swiften/Client/Client.cpp b/Swiften/Client/Client.cpp index 67e2051..45eeeff 100644 --- a/Swiften/Client/Client.cpp +++ b/Swiften/Client/Client.cpp @@ -22,7 +22,7 @@ namespace Swift { -Client::Client(const JID& jid, const String& password, Storages* storages) : CoreClient(jid, password), storages(storages) { +Client::Client(EventLoop* eventLoop, const JID& jid, const String& password, Storages* storages) : CoreClient(eventLoop, jid, password), storages(storages) { memoryStorages = new MemoryStorages(); softwareVersionResponder = new SoftwareVersionResponder(getIQRouter()); diff --git a/Swiften/Client/Client.h b/Swiften/Client/Client.h index 47a276a..7e11df9 100644 --- a/Swiften/Client/Client.h +++ b/Swiften/Client/Client.h @@ -39,7 +39,7 @@ namespace Swift { * this is NULL, * all data will be stored in memory (and be lost on shutdown) */ - Client(const JID& jid, const String& password, Storages* storages = NULL); + Client(EventLoop* eventLoop, const JID& jid, const String& password, Storages* storages = NULL); ~Client(); diff --git a/Swiften/Client/CoreClient.cpp b/Swiften/Client/CoreClient.cpp index 272a2a7..fa9dca0 100644 --- a/Swiften/Client/CoreClient.cpp +++ b/Swiften/Client/CoreClient.cpp @@ -23,7 +23,7 @@ namespace Swift { -CoreClient::CoreClient(const JID& jid, const String& password) : jid_(jid), password_(password), disconnectRequested_(false) { +CoreClient::CoreClient(EventLoop* eventLoop, const JID& jid, const String& password) : resolver_(eventLoop), jid_(jid), password_(password), eventLoop(eventLoop), disconnectRequested_(false) { stanzaChannel_ = new ClientSessionStanzaChannel(); stanzaChannel_->onMessageReceived.connect(boost::ref(onMessageReceived)); stanzaChannel_->onPresenceReceived.connect(boost::ref(onPresenceReceived)); @@ -31,8 +31,8 @@ CoreClient::CoreClient(const JID& jid, const String& password) : jid_(jid), pass stanzaChannel_->onAvailableChanged.connect(boost::bind(&CoreClient::handleStanzaChannelAvailableChanged, this, _1)); iqRouter_ = new IQRouter(stanzaChannel_); - connectionFactory_ = new BoostConnectionFactory(&MainBoostIOServiceThread::getInstance().getIOService()); - timerFactory_ = new BoostTimerFactory(&MainBoostIOServiceThread::getInstance().getIOService()); + connectionFactory_ = new BoostConnectionFactory(&MainBoostIOServiceThread::getInstance().getIOService(), eventLoop); + timerFactory_ = new BoostTimerFactory(&MainBoostIOServiceThread::getInstance().getIOService(), eventLoop); tlsLayerFactory_ = new PlatformTLSLayerFactory(); } diff --git a/Swiften/Client/CoreClient.h b/Swiften/Client/CoreClient.h index f440dfe..f6e0b6d 100644 --- a/Swiften/Client/CoreClient.h +++ b/Swiften/Client/CoreClient.h @@ -31,6 +31,7 @@ namespace Swift { class TimerFactory; class ClientSession; class BasicSessionStream; + class EventLoop; /** * The central class for communicating with an XMPP server. @@ -46,8 +47,9 @@ namespace Swift { public: /** * Constructs a client for the given JID with the given password. + * The given eventLoop will be used to post events to. */ - CoreClient(const JID& jid, const String& password); + CoreClient(EventLoop* eventLoop, const JID& jid, const String& password); ~CoreClient(); void setCertificate(const String& certificate); @@ -180,6 +182,7 @@ namespace Swift { PlatformDomainNameResolver resolver_; JID jid_; String password_; + EventLoop* eventLoop; ClientSessionStanzaChannel* stanzaChannel_; IQRouter* iqRouter_; Connector::ref connector_; |