diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-02-10 15:07:06 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-02-10 15:07:06 +0000 |
| commit | ccc552cec90b9e71ca36db763fe2ea95bb2dd2ca (patch) | |
| tree | d1ed3197a5f21abc6eaa644d6dc0ffcef2faf5dd /src/Piece.cc | |
| parent | 762580ba8cbcb14734d42b9e8f6a1c16220319f2 (diff) | |
2010-02-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added BitfieldMan::getFirstNMissingUnusedIndex() to get multiple
unused block indexes at once instead of calling
getFirstMissingUnusedIndex() multiple times. Made use of it in
Piece class and DefaultBtRequestFactory class via Piece class.
* src/BitfieldMan.cc
* src/BitfieldMan.h
* src/DefaultBtRequestFactory.cc
* src/Piece.cc
* src/Piece.h
* test/BitfieldManTest.cc
Diffstat (limited to 'src/Piece.cc')
| -rw-r--r-- | src/Piece.cc | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/Piece.cc b/src/Piece.cc index 26f50fe2..2d5a689b 100644 --- a/src/Piece.cc +++ b/src/Piece.cc @@ -173,10 +173,14 @@ bool Piece::getMissingUnusedBlockIndex(size_t& index) const } } -bool Piece::getMissingBlockIndex(size_t& index) const +bool Piece::getMissingUnusedBlockIndex +(std::vector<size_t>& indexes, size_t n) const { - if(bitfield->getMissingIndex(index)) { - bitfield->setUseBit(index); + if(bitfield->getFirstNMissingUnusedIndex(indexes, n)) { + for(std::vector<size_t>::const_iterator i = indexes.begin(); + i != indexes.end(); ++i) { + bitfield->setUseBit(*i); + } return true; } else { return false; |
