2009-07-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

Refactored fieldMan ctor.
	* src/BitfieldMan.cc
	* src/BitfieldMan.h
pull/1/head
Tatsuhiro Tsujikawa 2009-07-01 14:52:02 +00:00
parent ebf8ff90d5
commit cf294a4162
3 changed files with 20 additions and 23 deletions

View File

@ -1,3 +1,9 @@
2009-07-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Refactored fieldMan ctor.
* src/BitfieldMan.cc
* src/BitfieldMan.h
2009-07-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> 2009-07-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Don't print "No files to download." message if -S is given. Don't print "No files to download." message if -S is given.

View File

@ -49,12 +49,12 @@ namespace aria2 {
BitfieldMan::BitfieldMan(size_t blockLength, uint64_t totalLength) BitfieldMan::BitfieldMan(size_t blockLength, uint64_t totalLength)
:blockLength(blockLength), :blockLength(blockLength),
totalLength(totalLength), totalLength(totalLength),
bitfield(0),
useBitfield(0),
filterBitfield(0),
bitfieldLength(0), bitfieldLength(0),
blocks(0), blocks(0),
filterEnabled(false), filterEnabled(false),
bitfield(0),
useBitfield(0),
filterBitfield(0),
cachedNumMissingBlock(0), cachedNumMissingBlock(0),
cachedNumFilteredBlock(0), cachedNumFilteredBlock(0),
cachedCompletedLength(0), cachedCompletedLength(0),
@ -73,36 +73,27 @@ BitfieldMan::BitfieldMan(size_t blockLength, uint64_t totalLength)
} }
BitfieldMan::BitfieldMan(const BitfieldMan& bitfieldMan) BitfieldMan::BitfieldMan(const BitfieldMan& bitfieldMan)
:blockLength(0), :blockLength(bitfieldMan.blockLength),
totalLength(0), totalLength(bitfieldMan.totalLength),
bitfield(0), bitfieldLength(bitfieldMan.bitfieldLength),
useBitfield(0), blocks(bitfieldMan.blocks),
filterEnabled(bitfieldMan.filterEnabled),
bitfield(new unsigned char[bitfieldLength]),
useBitfield(new unsigned char[bitfieldLength]),
filterBitfield(0), filterBitfield(0),
bitfieldLength(0), randomizer(bitfieldMan.randomizer),
blocks(0),
filterEnabled(false),
cachedNumMissingBlock(0), cachedNumMissingBlock(0),
cachedNumFilteredBlock(0), cachedNumFilteredBlock(0),
cachedCompletedLength(0), cachedCompletedLength(0),
cachedFilteredComletedLength(0), cachedFilteredComletedLength(0),
cachedFilteredTotalLength(0) cachedFilteredTotalLength(0)
{ {
blockLength = bitfieldMan.blockLength;
totalLength = bitfieldMan.totalLength;
blocks = bitfieldMan.blocks;
bitfieldLength = bitfieldMan.bitfieldLength;
bitfield = new unsigned char[bitfieldLength];
useBitfield = new unsigned char[bitfieldLength];
memcpy(bitfield, bitfieldMan.bitfield, bitfieldLength); memcpy(bitfield, bitfieldMan.bitfield, bitfieldLength);
memcpy(useBitfield, bitfieldMan.useBitfield, bitfieldLength); memcpy(useBitfield, bitfieldMan.useBitfield, bitfieldLength);
filterEnabled = bitfieldMan.filterEnabled;
if(filterEnabled) { if(filterEnabled) {
filterBitfield = new unsigned char[bitfieldLength]; filterBitfield = new unsigned char[bitfieldLength];
memcpy(filterBitfield, bitfieldMan.filterBitfield, bitfieldLength); memcpy(filterBitfield, bitfieldMan.filterBitfield, bitfieldLength);
} else {
filterBitfield = 0;
} }
this->randomizer = bitfieldMan.randomizer;
updateCache(); updateCache();
} }

View File

@ -47,12 +47,12 @@ class BitfieldMan {
private: private:
size_t blockLength; size_t blockLength;
uint64_t totalLength; uint64_t totalLength;
unsigned char* bitfield;
unsigned char* useBitfield;
unsigned char* filterBitfield;
size_t bitfieldLength; size_t bitfieldLength;
size_t blocks; size_t blocks;
bool filterEnabled; bool filterEnabled;
unsigned char* bitfield;
unsigned char* useBitfield;
unsigned char* filterBitfield;
SharedHandle<Randomizer> randomizer; SharedHandle<Randomizer> randomizer;
// for caching // for caching