diff --git a/src/DefaultBtMessageDispatcher.cc b/src/DefaultBtMessageDispatcher.cc index 3c64432a..52fcb46d 100644 --- a/src/DefaultBtMessageDispatcher.cc +++ b/src/DefaultBtMessageDispatcher.cc @@ -62,6 +62,10 @@ namespace aria2 { DefaultBtMessageDispatcher::DefaultBtMessageDispatcher() : cuid_(0), + downloadContext_{0}, + peerStorage_{0}, + pieceStorage_{0}, + peerConnection_{0}, messageFactory_(0), requestGroupMan_(0), requestTimeout_(0) @@ -188,12 +192,10 @@ class ProcessChokedRequestSlot { private: cuid_t cuid_; std::shared_ptr peer_; - std::shared_ptr pieceStorage_; + PieceStorage* pieceStorage_; public: ProcessChokedRequestSlot - (cuid_t cuid, - const std::shared_ptr& peer, - const std::shared_ptr& pieceStorage) + (cuid_t cuid, const std::shared_ptr& peer, PieceStorage* pieceStorage) : cuid_(cuid), peer_(peer), pieceStorage_(pieceStorage) @@ -258,14 +260,14 @@ class ProcessStaleRequestSlot { private: cuid_t cuid_; std::shared_ptr peer_; - std::shared_ptr pieceStorage_; + PieceStorage* pieceStorage_; BtMessageDispatcher* messageDispatcher_; BtMessageFactory* messageFactory_; time_t requestTimeout_; public: ProcessStaleRequestSlot (cuid_t cuid, const std::shared_ptr& peer, - const std::shared_ptr& pieceStorage, + PieceStorage* pieceStorage, BtMessageDispatcher* dispatcher, BtMessageFactory* factory, time_t requestTimeout) @@ -305,13 +307,12 @@ public: namespace { class FindStaleRequestSlot { private: - std::shared_ptr pieceStorage_; + PieceStorage* pieceStorage_; time_t requestTimeout_; public: - FindStaleRequestSlot(const std::shared_ptr& pieceStorage, - time_t requestTimeout): - pieceStorage_(pieceStorage), - requestTimeout_(requestTimeout) {} + FindStaleRequestSlot(PieceStorage* pieceStorage, time_t requestTimeout) + : pieceStorage_(pieceStorage), + requestTimeout_(requestTimeout) {} bool operator()(const RequestSlot& slot) { @@ -419,19 +420,17 @@ void DefaultBtMessageDispatcher::setPeer(const std::shared_ptr& peer) } void DefaultBtMessageDispatcher::setDownloadContext -(const std::shared_ptr& downloadContext) +(DownloadContext* downloadContext) { downloadContext_ = downloadContext; } -void DefaultBtMessageDispatcher::setPieceStorage -(const std::shared_ptr& pieceStorage) +void DefaultBtMessageDispatcher::setPieceStorage(PieceStorage* pieceStorage) { pieceStorage_ = pieceStorage; } -void DefaultBtMessageDispatcher::setPeerStorage -(const std::shared_ptr& peerStorage) +void DefaultBtMessageDispatcher::setPeerStorage(PeerStorage* peerStorage) { peerStorage_ = peerStorage; } diff --git a/src/DefaultBtMessageDispatcher.h b/src/DefaultBtMessageDispatcher.h index 96fefdf7..b03d1faa 100644 --- a/src/DefaultBtMessageDispatcher.h +++ b/src/DefaultBtMessageDispatcher.h @@ -59,10 +59,10 @@ private: cuid_t cuid_; std::deque > messageQueue_; std::deque requestSlots_; - std::shared_ptr downloadContext_; - std::shared_ptr peerStorage_; - std::shared_ptr pieceStorage_; - std::shared_ptr peerConnection_; + DownloadContext* downloadContext_; + PeerStorage* peerStorage_; + PieceStorage* pieceStorage_; + PeerConnection* peerConnection_; BtMessageFactory* messageFactory_; std::shared_ptr peer_; RequestGroupMan* requestGroupMan_; @@ -129,11 +129,11 @@ public: void setPeer(const std::shared_ptr& peer); - void setDownloadContext(const std::shared_ptr& downloadContext); + void setDownloadContext(DownloadContext* downloadContext); - void setPieceStorage(const std::shared_ptr& pieceStorage); + void setPieceStorage(PieceStorage* pieceStorage); - void setPeerStorage(const std::shared_ptr& peerStorage); + void setPeerStorage(PeerStorage* peerStorage); void setBtMessageFactory(BtMessageFactory* factory); @@ -149,7 +149,7 @@ public: requestTimeout_ = requestTimeout; } - void setPeerConnection(const std::shared_ptr& peerConnection) + void setPeerConnection(PeerConnection* peerConnection) { peerConnection_ = peerConnection; } diff --git a/src/PeerInteractionCommand.cc b/src/PeerInteractionCommand.cc index b89d5c53..d1e9842f 100644 --- a/src/PeerInteractionCommand.cc +++ b/src/PeerInteractionCommand.cc @@ -192,15 +192,15 @@ PeerInteractionCommand::PeerInteractionCommand DefaultBtMessageDispatcher* dispatcherPtr(new DefaultBtMessageDispatcher()); dispatcherPtr->setCuid(cuid); dispatcherPtr->setPeer(getPeer()); - dispatcherPtr->setDownloadContext(requestGroup_->getDownloadContext()); - dispatcherPtr->setPieceStorage(pieceStorage); - dispatcherPtr->setPeerStorage(peerStorage); + dispatcherPtr->setDownloadContext(requestGroup_->getDownloadContext().get()); + dispatcherPtr->setPieceStorage(pieceStorage.get()); + dispatcherPtr->setPeerStorage(peerStorage.get()); dispatcherPtr->setRequestTimeout(getOption()-> getAsInt(PREF_BT_REQUEST_TIMEOUT)); dispatcherPtr->setBtMessageFactory(factoryPtr); dispatcherPtr->setRequestGroupMan (getDownloadEngine()->getRequestGroupMan().get()); - dispatcherPtr->setPeerConnection(peerConnection); + dispatcherPtr->setPeerConnection(peerConnection.get()); std::shared_ptr dispatcher(dispatcherPtr); DefaultBtMessageReceiver* receiverPtr(new DefaultBtMessageReceiver()); diff --git a/test/DefaultBtMessageDispatcherTest.cc b/test/DefaultBtMessageDispatcherTest.cc index 949deebd..c7e38e0f 100644 --- a/test/DefaultBtMessageDispatcherTest.cc +++ b/test/DefaultBtMessageDispatcherTest.cc @@ -155,9 +155,9 @@ public: btMessageDispatcher.reset(new DefaultBtMessageDispatcher()); btMessageDispatcher->setPeer(peer); - btMessageDispatcher->setDownloadContext(dctx_); - btMessageDispatcher->setPieceStorage(pieceStorage); - btMessageDispatcher->setPeerStorage(peerStorage); + btMessageDispatcher->setDownloadContext(dctx_.get()); + btMessageDispatcher->setPieceStorage(pieceStorage.get()); + btMessageDispatcher->setPeerStorage(peerStorage.get()); btMessageDispatcher->setBtMessageFactory(messageFactory_.get()); btMessageDispatcher->setCuid(1); btMessageDispatcher->setRequestGroupMan(rgman_.get()); @@ -255,11 +255,11 @@ void DefaultBtMessageDispatcherTest::testCheckRequestSlotAndDoNecessaryThing() { CPPUNIT_ASSERT(piece->getMissingUnusedBlockIndex(index)); CPPUNIT_ASSERT_EQUAL((size_t)0, index); - std::shared_ptr pieceStorage(new MockPieceStorage2()); + auto pieceStorage = make_unique(); pieceStorage->setPiece(piece); btMessageDispatcher->setRequestTimeout(60); - btMessageDispatcher->setPieceStorage(pieceStorage); + btMessageDispatcher->setPieceStorage(pieceStorage.get()); btMessageDispatcher->addOutstandingRequest(slot); btMessageDispatcher->checkRequestSlotAndDoNecessaryThing(); @@ -280,11 +280,11 @@ void DefaultBtMessageDispatcherTest::testCheckRequestSlotAndDoNecessaryThing_tim CPPUNIT_ASSERT(piece->getMissingUnusedBlockIndex(index)); CPPUNIT_ASSERT_EQUAL((size_t)0, index); - std::shared_ptr pieceStorage(new MockPieceStorage2()); + auto pieceStorage = make_unique(); pieceStorage->setPiece(piece); btMessageDispatcher->setRequestTimeout(60); - btMessageDispatcher->setPieceStorage(pieceStorage); + btMessageDispatcher->setPieceStorage(pieceStorage.get()); btMessageDispatcher->addOutstandingRequest(slot); btMessageDispatcher->checkRequestSlotAndDoNecessaryThing(); @@ -303,11 +303,11 @@ void DefaultBtMessageDispatcherTest::testCheckRequestSlotAndDoNecessaryThing_com RequestSlot slot(0, 0, MY_PIECE_LENGTH, 0, piece); - std::shared_ptr pieceStorage(new MockPieceStorage2()); + auto pieceStorage = make_unique(); pieceStorage->setPiece(piece); btMessageDispatcher->setRequestTimeout(60); - btMessageDispatcher->setPieceStorage(pieceStorage); + btMessageDispatcher->setPieceStorage(pieceStorage.get()); btMessageDispatcher->addOutstandingRequest(slot); btMessageDispatcher->checkRequestSlotAndDoNecessaryThing();