summaryrefslogtreecommitdiff
path: root/src/PieceStorage.h
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-08-29 08:53:19 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-08-29 08:53:19 +0000
commite997903e5d29adb83d8dfa435ff05f3cc87d4ee7 (patch)
treeb3930396f8437b13519e924790bcbe599578b34f /src/PieceStorage.h
parentb49081340dec7bd5b3370214b3dde0d570a52d10 (diff)
2010-08-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added a sets of overloaded functions for PieceStorage::getMissingPiece() and getMissingFastPiece() to get multiple pieces more efficiently. * src/DefaultBtInteractive.cc * src/DefaultPieceStorage.cc * src/DefaultPieceStorage.h * src/PieceStorage.h * src/UnknownLengthPieceStorage.cc * src/UnknownLengthPieceStorage.h * test/DefaultPieceStorageTest.cc * test/MockPieceStorage.h
Diffstat (limited to 'src/PieceStorage.h')
-rw-r--r--src/PieceStorage.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/PieceStorage.h b/src/PieceStorage.h
index efaf01e2..46043367 100644
--- a/src/PieceStorage.h
+++ b/src/PieceStorage.h
@@ -63,6 +63,28 @@ public:
*/
virtual bool hasMissingPiece(const SharedHandle<Peer>& peer) = 0;
+ virtual void getMissingPiece
+ (std::vector<SharedHandle<Piece> >& pieces,
+ size_t minMissingBlocks,
+ const SharedHandle<Peer>& peer,
+ const std::vector<size_t>& excludedIndexes) = 0;
+
+ virtual void getMissingPiece
+ (std::vector<SharedHandle<Piece> >& pieces,
+ size_t minMissingBlocks,
+ const SharedHandle<Peer>& peer) = 0;
+
+ virtual void getMissingFastPiece
+ (std::vector<SharedHandle<Piece> >& pieces,
+ size_t minMissingBlocks,
+ const SharedHandle<Peer>& peer,
+ const std::vector<size_t>& excludedIndexes) = 0;
+
+ virtual void getMissingFastPiece
+ (std::vector<SharedHandle<Piece> >& pieces,
+ size_t minMissingBlocks,
+ const SharedHandle<Peer>& peer) = 0;
+
/**
* Returns a piece that the peer has but localhost doesn't.
* The piece will be marked "used" status in order to prevent other command