diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2006-12-24 06:25:21 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2006-12-24 06:25:21 +0000 |
| commit | 9c3e8fbd9c92cc858c2b0f805714e19ce97b7983 (patch) | |
| tree | 2f53afd601fbe1fff339f17cef5ef37186a1960a /src/BitfieldMan.h | |
| parent | 458cc274628f226b3130240d15a1ae8e562d31b2 (diff) | |
2006-12-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten a portion of bittorrent implementation:
* src/BtMessageValidator.h: New class.
* src/BtBitfieldMessageValidator.h: New class.
* src/BtHandshakeMessageValidator.h: New class.
* src/BtRequestMessageValidator.h: New class.
* src/BtSuggestPieceMessageValidator.h: New class.
* src/BtAllowedFastMessageValidator.h: New class.
* src/BtRejectMessageValidator.h: New class.
* src/BtCancelMessageValidator.h: New class.
* src/BtPieceMessageValidator.h: New class.
* src/BtHaveMessageValidator.h: New class.
* src/BtEventListener.h: New class.
* src/AbstractBtEventListener.h: New class.
* src/BtEvent.h: New class.
* src/BtChokingEvent.h: New class.
* src/BtChokedEvent.h: New class.
* src/BtCancelSendingPieceEvent.h: New class.
* src/BtAbortOutstandingRequestEvent.h: New class.
* src/Randomizer.h: New class.
* src/SimpleRandomizer.h: New class.
* src/BtMessage.h: New class.
* src/AbstractBtMessage.h: New class.
* src/SimpleBtMessage.h: New class.
* src/BtHaveMessage.h: New class.
* src/BtInterestedMessage.h: New class.
* src/BtAllowedFastMessage.h: New class.
* src/BtUnchokeMessage.h: New class.
* src/BtCancelMessage.h: New class.
* src/BtNotInterestedMessage.h: New class.
* src/BtChokeMessage.h: New class.
* src/BtHaveNoneMessage.h: New class.
* src/BtHandshakeMessage.h: New class.
* src/BtSuggestPieceMessage.h: New class.
* src/BtHaveMessage.h: New class.
* src/BtPieceMessage.h: New class.
* src/BtHaveAllMessage.h: New class.
* src/BtKeepAliveMessage.h: New class.
* src/BtPortMessage.h: New class.
* src/BtRejectMessage.h: New class.
* src/BtBitfieldMessage.h: New class.
* src/BtRequestMessage.h: New class.
* src/DefaultBtRequestFactory.h: New class.
* src/DefaultBtMessageReceiver.h: New class.
* src/BtInteractive.h: New class.
* src/BtMessageDispatcher.h: New class.
* src/DefaultBtMessageDispatcher.h: New class.
* src/DefaultBtInteractive.h: New class.
* src/BitfieldManFactory.h: New class.
* src/HandleRegistry.h: New class.
* src/BtMessageFactory.h: New class.
* src/BtMessageReceiver.h: New class.
* src/DefaultBtMessageFactory.h: New class.
* src/PeerObject.h: New class.
* src/BtRequestFactory.h: New class.
Diffstat (limited to 'src/BitfieldMan.h')
| -rw-r--r-- | src/BitfieldMan.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/BitfieldMan.h b/src/BitfieldMan.h index 53758601..43fb81a1 100644 --- a/src/BitfieldMan.h +++ b/src/BitfieldMan.h @@ -36,6 +36,7 @@ #define _D_BITFIELD_MAN_H_ #include "common.h" +#include "Randomizer.h" #include <deque> typedef deque<int> BlockIndexes; @@ -50,6 +51,8 @@ private: int bitfieldLength; int blocks; bool filterEnabled; + RandomizerHandle randomizer; + int countSetBit(const unsigned char* bitfield, int len) const; int getNthBitIndex(const unsigned char bit, int nth) const; int getMissingIndexRandomly(const unsigned char* bitfield, int len) const; @@ -176,6 +179,8 @@ public: */ int countBlock() const; + int getMaxIndex() const { return blocks-1; } + void setBitfield(const unsigned char* bitfield, int bitfieldLength); void clearAllBit(); @@ -202,6 +207,14 @@ public: * affected by filter */ long long int getFilteredCompletedLength() const; + + void setRandomizer(const RandomizerHandle& randomizer) { + this->randomizer = randomizer; + } + + RandomizerHandle getRandomizer() const { + return randomizer; + } }; #endif // _D_BITFIELD_MAN_H_ |
