Explorar el Código

2010-08-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

	Removed getMissingFastPiece(piece) and getMissingFastPiece(piece,
	excludedIndexes) from PieceStorage. Done some code cleanup.
	* src/DefaultPieceStorage.h
	* src/PieceStorage.h
	* src/UnknownLengthPieceStorage.cc
	* src/UnknownLengthPieceStorage.h
	* test/MockPieceStorage.h
Tatsuhiro Tsujikawa hace 15 años
padre
commit
0968d4fedd

+ 10 - 0
ChangeLog

@@ -1,3 +1,13 @@
+2010-08-29  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
+
+	Removed getMissingFastPiece(piece) and getMissingFastPiece(piece,
+	excludedIndexes) from PieceStorage. Done some code cleanup.
+	* src/DefaultPieceStorage.h
+	* src/PieceStorage.h
+	* src/UnknownLengthPieceStorage.cc
+	* src/UnknownLengthPieceStorage.h
+	* test/MockPieceStorage.h
+
 2010-08-29  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
 
 	Pass excludedIndexes when getting metadata piece.

+ 11 - 11
src/DefaultPieceStorage.h

@@ -124,34 +124,34 @@ public:
   virtual void getMissingPiece
   (std::vector<SharedHandle<Piece> >& pieces,
    size_t minMissingBlocks,
-   const SharedHandle<Peer>& peer,
-   const std::vector<size_t>& excludedIndexes);
+   const SharedHandle<Peer>& peer);
 
   virtual void getMissingPiece
   (std::vector<SharedHandle<Piece> >& pieces,
    size_t minMissingBlocks,
-   const SharedHandle<Peer>& peer);
+   const SharedHandle<Peer>& peer,
+   const std::vector<size_t>& excludedIndexes);
 
   virtual void getMissingFastPiece
   (std::vector<SharedHandle<Piece> >& pieces,
    size_t minMissingBlocks,
-   const SharedHandle<Peer>& peer,
-   const std::vector<size_t>& excludedIndexes);
+   const SharedHandle<Peer>& peer);
 
   virtual void getMissingFastPiece
   (std::vector<SharedHandle<Piece> >& pieces,
    size_t minMissingBlocks,
-   const SharedHandle<Peer>& peer);
+   const SharedHandle<Peer>& peer,
+   const std::vector<size_t>& excludedIndexes);
 
   virtual SharedHandle<Piece> getMissingPiece(const SharedHandle<Peer>& peer);
 
-  virtual SharedHandle<Piece> getMissingFastPiece
-  (const SharedHandle<Peer>& peer);
-
-  virtual SharedHandle<Piece> getMissingPiece
+  virtual  SharedHandle<Piece> getMissingPiece
   (const SharedHandle<Peer>& peer, const std::vector<size_t>& excludedIndexes);
 
-  virtual SharedHandle<Piece> getMissingFastPiece
+  SharedHandle<Piece> getMissingFastPiece
+  (const SharedHandle<Peer>& peer);
+
+  SharedHandle<Piece> getMissingFastPiece
   (const SharedHandle<Peer>& peer, const std::vector<size_t>& excludedIndexes);
 
 #endif // ENABLE_BITTORRENT

+ 28 - 26
src/PieceStorage.h

@@ -63,27 +63,48 @@ public:
    */
   virtual bool hasMissingPiece(const SharedHandle<Peer>& peer) = 0;
 
+   // Stores pieces that the peer has but localhost doesn't.  Those
+   // pieces will be marked "used" status in order to prevent other
+   // command from get the same piece. But in end game mode, same
+   // piece may be got by several commands. This function stores N
+   // pieces where the sum of missing block of first N-1 pieces is
+   // less than minMissingBlocks and the sum of missing block of N
+   // pieces is greater than or equal to minMissingBlocks. If there is
+   // M missing pieces left where M < N, M pieces are stored.
   virtual void getMissingPiece
   (std::vector<SharedHandle<Piece> >& pieces,
    size_t minMissingBlocks,
-   const SharedHandle<Peer>& peer,
-   const std::vector<size_t>& excludedIndexes) = 0;
+   const SharedHandle<Peer>& peer) = 0;
 
+  // Same as getMissingPiece(pieces, minMissingBlocks, peer), but the
+  // indexes in excludedIndexes are excluded.
   virtual void getMissingPiece
   (std::vector<SharedHandle<Piece> >& pieces,
    size_t minMissingBlocks,
-   const SharedHandle<Peer>& peer) = 0;
-
+   const SharedHandle<Peer>& peer,
+   const std::vector<size_t>& excludedIndexes) = 0;
+  
+  // Stores pieces that the peer has but localhost doesn't.  Only
+  // pieces that declared as "fast" are stored.  Those pieces stored
+  // will be marked "used" status in order to prevent other command
+  // from get the same piece. But in end game mode, same piece may be
+  // got by several commands. This function stores N pieces where the
+  // sum of missing block of first N-1 pieces is less than
+  // minMissingBlocks and the sum of missing block of N pieces is
+  // greater than or equal to minMissingBlocks. If there is M missing
+  // pieces left where M < N, M pieces are stored.
   virtual void getMissingFastPiece
   (std::vector<SharedHandle<Piece> >& pieces,
    size_t minMissingBlocks,
-   const SharedHandle<Peer>& peer,
-   const std::vector<size_t>& excludedIndexes) = 0;
+   const SharedHandle<Peer>& peer) = 0;
 
+  // Same as getMissingFastPiece(pieces, minMissingBlocks, peer), but
+  // the indexes in excludedIndexes are excluded.
   virtual void getMissingFastPiece
   (std::vector<SharedHandle<Piece> >& pieces,
    size_t minMissingBlocks,
-   const SharedHandle<Peer>& peer) = 0;
+   const SharedHandle<Peer>& peer,
+   const std::vector<size_t>& excludedIndexes) = 0;
 
   /**
    * Returns a piece that the peer has but localhost doesn't.
@@ -101,25 +122,6 @@ public:
   virtual SharedHandle<Piece> getMissingPiece
   (const SharedHandle<Peer>& peer,
    const std::vector<size_t>& excludedIndexes) = 0;
-
-  /**
-   * Returns a piece that the peer has but localhost doesn't.
-   * Only pieces that declared as "fast" are returned.
-   * The piece will be marked "used" status in order to prevent other command
-   * from get the same piece. But in end game mode, same piece may be returned
-   * to several commands.
-   */
-  virtual SharedHandle<Piece>
-  getMissingFastPiece(const SharedHandle<Peer>& peer) = 0;
-  
-  /**
-   * Same as getMissingFastPiece(const SharedHandle<Peer>& peer), but the
-   * indexes in excludedIndexes are excluded.
-   */
-  virtual SharedHandle<Piece> getMissingFastPiece
-  (const SharedHandle<Peer>& peer,
-   const std::vector<size_t>& excludedIndexes) = 0;
-
 #endif // ENABLE_BITTORRENT
 
   // Returns true if there is at least one missing and unused piece.

+ 6 - 18
src/UnknownLengthPieceStorage.cc

@@ -81,8 +81,7 @@ bool UnknownLengthPieceStorage::hasMissingPiece(const SharedHandle<Peer>& peer)
 void UnknownLengthPieceStorage::getMissingPiece
 (std::vector<SharedHandle<Piece> >& pieces,
  size_t minMissingBlocks,
- const SharedHandle<Peer>& peer,
- const std::vector<size_t>& excludedIndexes)
+ const SharedHandle<Peer>& peer)
 {
   abort();
 }
@@ -90,7 +89,8 @@ void UnknownLengthPieceStorage::getMissingPiece
 void UnknownLengthPieceStorage::getMissingPiece
 (std::vector<SharedHandle<Piece> >& pieces,
  size_t minMissingBlocks,
- const SharedHandle<Peer>& peer)
+ const SharedHandle<Peer>& peer,
+ const std::vector<size_t>& excludedIndexes)
 {
   abort();
 }
@@ -98,8 +98,7 @@ void UnknownLengthPieceStorage::getMissingPiece
 void UnknownLengthPieceStorage::getMissingFastPiece
 (std::vector<SharedHandle<Piece> >& pieces,
  size_t minMissingBlocks,
- const SharedHandle<Peer>& peer,
- const std::vector<size_t>& excludedIndexes)
+ const SharedHandle<Peer>& peer)
 {
   abort();
 }
@@ -107,7 +106,8 @@ void UnknownLengthPieceStorage::getMissingFastPiece
 void UnknownLengthPieceStorage::getMissingFastPiece
 (std::vector<SharedHandle<Piece> >& pieces,
  size_t minMissingBlocks,
- const SharedHandle<Peer>& peer)
+ const SharedHandle<Peer>& peer,
+ const std::vector<size_t>& excludedIndexes)
 {
   abort();
 }
@@ -122,18 +122,6 @@ SharedHandle<Piece> UnknownLengthPieceStorage::getMissingPiece
 {
   abort();
 }
-
-SharedHandle<Piece> UnknownLengthPieceStorage::getMissingFastPiece(const SharedHandle<Peer>& peer)
-{
-  abort();
-}
-
-SharedHandle<Piece> UnknownLengthPieceStorage::getMissingFastPiece
-(const SharedHandle<Peer>& peer, const std::vector<size_t>& excludedIndexes)
-{
-  abort();
-}
-
 #endif // ENABLE_BITTORRENT
 
 bool UnknownLengthPieceStorage::hasMissingUnusedPiece()

+ 6 - 25
src/UnknownLengthPieceStorage.h

@@ -76,48 +76,29 @@ public:
   virtual void getMissingPiece
   (std::vector<SharedHandle<Piece> >& pieces,
    size_t minMissingBlocks,
-   const SharedHandle<Peer>& peer,
-   const std::vector<size_t>& excludedIndexes);
+   const SharedHandle<Peer>& peer);
 
   virtual void getMissingPiece
   (std::vector<SharedHandle<Piece> >& pieces,
    size_t minMissingBlocks,
-   const SharedHandle<Peer>& peer);
+   const SharedHandle<Peer>& peer,
+   const std::vector<size_t>& excludedIndexes);
 
   virtual void getMissingFastPiece
   (std::vector<SharedHandle<Piece> >& pieces,
    size_t minMissingBlocks,
-   const SharedHandle<Peer>& peer,
-   const std::vector<size_t>& excludedIndexes);
+   const SharedHandle<Peer>& peer);
 
   virtual void getMissingFastPiece
   (std::vector<SharedHandle<Piece> >& pieces,
    size_t minMissingBlocks,
-   const SharedHandle<Peer>& peer);
+   const SharedHandle<Peer>& peer,
+   const std::vector<size_t>& excludedIndexes);
 
-  /**
-   * Returns a piece that the peer has but localhost doesn't.
-   * The piece will be marked "used" status in order to prevent other command
-   * from get the same piece. But in end game mode, same piece may be returned
-   * to several commands.
-   */
   virtual SharedHandle<Piece> getMissingPiece(const SharedHandle<Peer>& peer);
 
   virtual SharedHandle<Piece> getMissingPiece
   (const SharedHandle<Peer>& peer, const std::vector<size_t>& excludedIndexes);
-
-  /**
-   * Returns a piece that the peer has but localhost doesn't.
-   * Only pieces that declared as "fast" are returned.
-   * The piece will be marked "used" status in order to prevent other command
-   * from get the same piece. But in end game mode, same piece may be returned
-   * to several commands.
-   */
-  virtual SharedHandle<Piece> getMissingFastPiece(const SharedHandle<Peer>& peer);
-
-  virtual SharedHandle<Piece> getMissingFastPiece
-  (const SharedHandle<Peer>& peer, const std::vector<size_t>& excludedIndexes);
-
 #endif // ENABLE_BITTORRENT
 
   virtual bool hasMissingUnusedPiece();

+ 8 - 18
test/MockPieceStorage.h

@@ -44,47 +44,37 @@ public:
     return false;
   }
 
-  virtual SharedHandle<Piece> getMissingPiece(const SharedHandle<Peer>& peer) {
-    return SharedHandle<Piece>(new Piece());
-  }
-
   virtual void getMissingPiece
   (std::vector<SharedHandle<Piece> >& pieces,
    size_t minMissingBlocks,
-   const SharedHandle<Peer>& peer,
-   const std::vector<size_t>& excludedIndexes)
+   const SharedHandle<Peer>& peer)
   {}
 
   virtual void getMissingPiece
   (std::vector<SharedHandle<Piece> >& pieces,
    size_t minMissingBlocks,
-   const SharedHandle<Peer>& peer)
+   const SharedHandle<Peer>& peer,
+   const std::vector<size_t>& excludedIndexes)
   {}
 
   virtual void getMissingFastPiece
   (std::vector<SharedHandle<Piece> >& pieces,
    size_t minMissingBlocks,
-   const SharedHandle<Peer>& peer,
-   const std::vector<size_t>& excludedIndexes)
+   const SharedHandle<Peer>& peer)
   {}
 
   virtual void getMissingFastPiece
   (std::vector<SharedHandle<Piece> >& pieces,
    size_t minMissingBlocks,
-   const SharedHandle<Peer>& peer)
+   const SharedHandle<Peer>& peer,
+   const std::vector<size_t>& excludedIndexes)
   {}
 
-  virtual SharedHandle<Piece> getMissingPiece
-  (const SharedHandle<Peer>& peer, const std::vector<size_t>& excludedIndexes)
-  {
-    return SharedHandle<Piece>(new Piece());
-  }
-
-  virtual SharedHandle<Piece> getMissingFastPiece(const SharedHandle<Peer>& peer) {
+  virtual SharedHandle<Piece> getMissingPiece(const SharedHandle<Peer>& peer) {
     return SharedHandle<Piece>(new Piece());
   }
 
-  virtual SharedHandle<Piece> getMissingFastPiece
+  virtual SharedHandle<Piece> getMissingPiece
   (const SharedHandle<Peer>& peer, const std::vector<size_t>& excludedIndexes)
   {
     return SharedHandle<Piece>(new Piece());