From 3dd69f2f852953638b220352b0eeee10464da5d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Remko=20Tron=C3=A7on?= Date: Wed, 3 Jun 2009 19:11:45 +0200 Subject: Pull requesting the roster out of the XMPPRosterController constructor. diff --git a/Swiften/Controllers/MainController.cpp b/Swiften/Controllers/MainController.cpp index e0d0fe7..5535bf8 100644 --- a/Swiften/Controllers/MainController.cpp +++ b/Swiften/Controllers/MainController.cpp @@ -87,6 +87,7 @@ void MainController::handleConnected() { delete xmppRosterController_; xmppRosterController_ = new XMPPRosterController(client_, xmppRoster); + xmppRosterController_->requestRoster(); delete clientVersionResponder_; clientVersionResponder_ = new SoftwareVersionResponder(CLIENT_NAME, CLIENT_VERSION, client_); @@ -106,7 +107,7 @@ void MainController::handleConnected() { //Send presence last to catch all the incoming presences. boost::shared_ptr initialPresence(new Presence()); - initialPresence->addPayload(capsInfo_); + initialPresence->addPayload(capsInfo_); client_->sendPresence(initialPresence); } diff --git a/Swiften/Controllers/UnitTest/XMPPRosterControllerTest.cpp b/Swiften/Controllers/UnitTest/XMPPRosterControllerTest.cpp index 3bff8f3..17cc31c 100644 --- a/Swiften/Controllers/UnitTest/XMPPRosterControllerTest.cpp +++ b/Swiften/Controllers/UnitTest/XMPPRosterControllerTest.cpp @@ -22,9 +22,14 @@ class XMPPRosterControllerTest : public CppUnit::TestFixture DummyIQChannel* channel_; IQRouter* router_; public: - XMPPRosterControllerTest() : channel_(new DummyIQChannel()), router_(new IQRouter(channel_)) {} - - ~XMPPRosterControllerTest() { + XMPPRosterControllerTest() {} + + void setUp() { + channel_ = new DummyIQChannel(); + router_ = new IQRouter(channel_); + } + + void tearDown() { delete channel_; delete router_; } diff --git a/Swiften/Controllers/XMPPRosterController.cpp b/Swiften/Controllers/XMPPRosterController.cpp index b6c36d7..d1e6f80 100644 --- a/Swiften/Controllers/XMPPRosterController.cpp +++ b/Swiften/Controllers/XMPPRosterController.cpp @@ -22,16 +22,19 @@ namespace Swift { * The controller does not gain ownership of these parameters. */ XMPPRosterController::XMPPRosterController(IQRouter* iqRouter, boost::shared_ptr xmppRoster) - : IQHandler(iqRouter), xmppRoster_(xmppRoster) { - GetRosterRequest* rosterRequest = new GetRosterRequest(iqRouter, Request::AutoDeleteAfterResponse); - rosterRequest->onResponse.connect(boost::bind(&XMPPRosterController::handleRosterReceived, this, _1)); - rosterRequest->send(); + : IQHandler(iqRouter), iqRouter_(iqRouter), xmppRoster_(xmppRoster) { } XMPPRosterController::~XMPPRosterController() { } +void XMPPRosterController::requestRoster() { + GetRosterRequest* rosterRequest = new GetRosterRequest(iqRouter_, Request::AutoDeleteAfterResponse); + rosterRequest->onResponse.connect(boost::bind(&XMPPRosterController::handleRosterReceived, this, _1)); + rosterRequest->send(); +} + void XMPPRosterController::handleRosterReceived(boost::shared_ptr rosterPayload) { foreach(const RosterItemPayload& item, rosterPayload->getItems()) { if (item.getSubscription() == RosterItemPayload::Remove) { diff --git a/Swiften/Controllers/XMPPRosterController.h b/Swiften/Controllers/XMPPRosterController.h index 2eaa6f5..7695ff5 100644 --- a/Swiften/Controllers/XMPPRosterController.h +++ b/Swiften/Controllers/XMPPRosterController.h @@ -17,10 +17,14 @@ namespace Swift { public: XMPPRosterController(IQRouter *iqRouter, boost::shared_ptr xmppRoster); ~XMPPRosterController(); + + void requestRoster(); + boost::shared_ptr getXMPPRoster() {return xmppRoster_;}; bool handleIQ(boost::shared_ptr); private: + IQRouter* iqRouter_; void handleRosterReceived(boost::shared_ptr rosterPayload); boost::shared_ptr xmppRoster_; }; -- cgit v0.10.2-6-g49f6