diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-06-17 11:43:29 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-06-17 11:43:29 +0000 |
| commit | dfe2f993454bea38614bf1ad70d12a7bec947e69 (patch) | |
| tree | d9ade0f4c9a3a25ba478d92d4a7f20c55fc3a268 /src/DefaultBtRequestFactory.cc | |
| parent | 09502fc3db5462a2a0ae096dc0d3985ca9a190b5 (diff) | |
2008-06-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Filled up pieces based on the number of missing blocks, rather
than
simplay the number of piece * block length.
* src/BtRequestFactory.h
* src/DefaultBtInteractive.cc
* src/DefaultBtInteractive.h
* src/DefaultBtRequestFactory.cc
* src/DefaultBtRequestFactory.h
* src/Piece.cc
* src/Piece.h
* test/BitfieldManTest.cc
* test/DefaultBtRequestFactoryTest.cc
* test/MockBtRequestFactory.h
Diffstat (limited to 'src/DefaultBtRequestFactory.cc')
| -rw-r--r-- | src/DefaultBtRequestFactory.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/DefaultBtRequestFactory.cc b/src/DefaultBtRequestFactory.cc index 3f52642a..616367b4 100644 --- a/src/DefaultBtRequestFactory.cc +++ b/src/DefaultBtRequestFactory.cc @@ -186,6 +186,30 @@ void DefaultBtRequestFactory::createRequestMessagesOnEndGame } } +class CountMissingBlock +{ +private: + size_t _numMissingBlock; +public: + CountMissingBlock():_numMissingBlock(0) {} + + size_t getNumMissingBlock() + { + return _numMissingBlock; + } + + void operator()(const SharedHandle<Piece>& piece) + { + _numMissingBlock += piece->countMissingBlock(); + } +}; + +size_t DefaultBtRequestFactory::countMissingBlock() +{ + return std::for_each(pieces.begin(), pieces.end(), + CountMissingBlock()).getNumMissingBlock(); +} + std::deque<SharedHandle<Piece> >& DefaultBtRequestFactory::getTargetPieces() { return pieces; |
