ソースを参照

DefaultBtMessageDispatcher: Use raw pointers for non-owning objects

Tatsuhiro Tsujikawa 12 年 前
コミット
85f5134626

+ 15 - 16
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> peer_;
-  std::shared_ptr<PieceStorage> pieceStorage_;
+  PieceStorage* pieceStorage_;
 public:
   ProcessChokedRequestSlot
-  (cuid_t cuid,
-   const std::shared_ptr<Peer>& peer,
-   const std::shared_ptr<PieceStorage>& pieceStorage)
+  (cuid_t cuid, const std::shared_ptr<Peer>& peer, PieceStorage* pieceStorage)
     : cuid_(cuid),
       peer_(peer),
       pieceStorage_(pieceStorage)
@@ -258,14 +260,14 @@ class ProcessStaleRequestSlot {
 private:
   cuid_t cuid_;
   std::shared_ptr<Peer> peer_;
-  std::shared_ptr<PieceStorage> pieceStorage_;
+  PieceStorage* pieceStorage_;
   BtMessageDispatcher* messageDispatcher_;
   BtMessageFactory* messageFactory_;
   time_t requestTimeout_;
 public:
   ProcessStaleRequestSlot
   (cuid_t cuid, const std::shared_ptr<Peer>& peer,
-   const std::shared_ptr<PieceStorage>& 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* pieceStorage_;
   time_t requestTimeout_;
 public:
-  FindStaleRequestSlot(const std::shared_ptr<PieceStorage>& 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>& peer)
 }
 
 void DefaultBtMessageDispatcher::setDownloadContext
-(const std::shared_ptr<DownloadContext>& downloadContext)
+(DownloadContext* downloadContext)
 {
   downloadContext_ = downloadContext;
 }
 
-void DefaultBtMessageDispatcher::setPieceStorage
-(const std::shared_ptr<PieceStorage>& pieceStorage)
+void DefaultBtMessageDispatcher::setPieceStorage(PieceStorage* pieceStorage)
 {
   pieceStorage_ = pieceStorage;
 }
 
-void DefaultBtMessageDispatcher::setPeerStorage
-(const std::shared_ptr<PeerStorage>& peerStorage)
+void DefaultBtMessageDispatcher::setPeerStorage(PeerStorage* peerStorage)
 {
   peerStorage_ = peerStorage;
 }

+ 8 - 8
src/DefaultBtMessageDispatcher.h

@@ -59,10 +59,10 @@ private:
   cuid_t cuid_;
   std::deque<std::shared_ptr<BtMessage> > messageQueue_;
   std::deque<RequestSlot> requestSlots_;
-  std::shared_ptr<DownloadContext> downloadContext_;
-  std::shared_ptr<PeerStorage> peerStorage_;
-  std::shared_ptr<PieceStorage> pieceStorage_;
-  std::shared_ptr<PeerConnection> peerConnection_;
+  DownloadContext* downloadContext_;
+  PeerStorage* peerStorage_;
+  PieceStorage* pieceStorage_;
+  PeerConnection* peerConnection_;
   BtMessageFactory* messageFactory_;
   std::shared_ptr<Peer> peer_;
   RequestGroupMan* requestGroupMan_;
@@ -129,11 +129,11 @@ public:
 
   void setPeer(const std::shared_ptr<Peer>& peer);
 
-  void setDownloadContext(const std::shared_ptr<DownloadContext>& downloadContext);
+  void setDownloadContext(DownloadContext* downloadContext);
 
-  void setPieceStorage(const std::shared_ptr<PieceStorage>& pieceStorage);
+  void setPieceStorage(PieceStorage* pieceStorage);
 
-  void setPeerStorage(const std::shared_ptr<PeerStorage>& peerStorage);
+  void setPeerStorage(PeerStorage* peerStorage);
 
   void setBtMessageFactory(BtMessageFactory* factory);
 
@@ -149,7 +149,7 @@ public:
     requestTimeout_ = requestTimeout;
   }
 
-  void setPeerConnection(const std::shared_ptr<PeerConnection>& peerConnection)
+  void setPeerConnection(PeerConnection* peerConnection)
   {
     peerConnection_ = peerConnection;
   }

+ 4 - 4
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<BtMessageDispatcher> dispatcher(dispatcherPtr);
 
   DefaultBtMessageReceiver* receiverPtr(new DefaultBtMessageReceiver());

+ 9 - 9
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<MockPieceStorage2> pieceStorage(new MockPieceStorage2());
+  auto pieceStorage = make_unique<MockPieceStorage2>();
   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<MockPieceStorage2> pieceStorage(new MockPieceStorage2());
+  auto pieceStorage = make_unique<MockPieceStorage2>();
   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<MockPieceStorage2> pieceStorage(new MockPieceStorage2());
+  auto pieceStorage = make_unique<MockPieceStorage2>();
   pieceStorage->setPiece(piece);
 
   btMessageDispatcher->setRequestTimeout(60);
-  btMessageDispatcher->setPieceStorage(pieceStorage);
+  btMessageDispatcher->setPieceStorage(pieceStorage.get());
   btMessageDispatcher->addOutstandingRequest(slot);
 
   btMessageDispatcher->checkRequestSlotAndDoNecessaryThing();