mirror of
https://github.com/aria2/aria2.git
synced 2025-01-24 10:41:18 +00:00
9c3e8fbd9c
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.
154 lines
3.4 KiB
C++
154 lines
3.4 KiB
C++
#ifndef _D_MOCK_PIECE_STORAGE_H_
|
|
#define _D_MOCK_PIECE_STORAGE_H_
|
|
|
|
#include "PieceStorage.h"
|
|
#include "BitfieldMan.h"
|
|
|
|
class MockPieceStorage : public PieceStorage {
|
|
private:
|
|
long long int totalLength;
|
|
long long int filteredTotalLength;
|
|
long long int completedLength;
|
|
long long int filteredCompletedLength;
|
|
BitfieldMan* bitfieldMan;
|
|
bool selectiveDownloadingMode;
|
|
bool endGame;
|
|
DiskAdaptor* diskAdaptor;
|
|
Integers pieceLengthList;
|
|
public:
|
|
MockPieceStorage() {}
|
|
virtual ~MockPieceStorage() {}
|
|
|
|
virtual bool hasMissingPiece(const PeerHandle& peer) {
|
|
return false;
|
|
}
|
|
|
|
virtual PieceHandle getMissingPiece(const PeerHandle& peer) {
|
|
return new Piece();
|
|
}
|
|
|
|
virtual PieceHandle getMissingFastPiece(const PeerHandle& peer) {
|
|
return new Piece();
|
|
}
|
|
|
|
virtual PieceHandle getPiece(int index) {
|
|
return new Piece();
|
|
}
|
|
|
|
virtual void completePiece(const PieceHandle& piece) {}
|
|
|
|
virtual void cancelPiece(const PieceHandle& piece) {}
|
|
|
|
virtual bool hasPiece(int index) {
|
|
return false;
|
|
}
|
|
|
|
virtual long long int getTotalLength() {
|
|
return totalLength;
|
|
}
|
|
|
|
void setTotalLength(long long int totalLength) {
|
|
this->totalLength = totalLength;
|
|
}
|
|
|
|
virtual long long int getFilteredTotalLength() {
|
|
return filteredTotalLength;
|
|
}
|
|
|
|
void setFilteredTotalLength(long long int totalLength) {
|
|
this->filteredTotalLength = totalLength;
|
|
}
|
|
|
|
virtual long long int getCompletedLength() {
|
|
return completedLength;
|
|
}
|
|
|
|
void setCompletedLength(long long int completedLength) {
|
|
this->completedLength = completedLength;
|
|
}
|
|
|
|
virtual long long int getFilteredCompletedLength() {
|
|
return filteredCompletedLength;
|
|
}
|
|
|
|
void setFilteredCompletedLength(long long int completedLength) {
|
|
this->filteredCompletedLength = completedLength;
|
|
}
|
|
|
|
virtual void setFileFilter(const Strings& filePaths) {}
|
|
|
|
virtual void setFileFilter(const Integers& fileIndexes) {}
|
|
|
|
virtual void clearFileFilter() {}
|
|
|
|
virtual bool downloadFinished() {
|
|
return false;
|
|
}
|
|
|
|
virtual void initStorage() {}
|
|
|
|
virtual const unsigned char* getBitfield() {
|
|
return bitfieldMan->getBitfield();
|
|
}
|
|
|
|
virtual void setBitfield(const unsigned char* bitfield,
|
|
int bitfieldLength) {
|
|
bitfieldMan->setBitfield(bitfield, bitfieldLength);
|
|
}
|
|
|
|
virtual int getBitfieldLength() {
|
|
return bitfieldMan->getBitfieldLength();
|
|
}
|
|
|
|
void setBitfield(BitfieldMan* bitfieldMan) {
|
|
this->bitfieldMan = bitfieldMan;
|
|
}
|
|
|
|
virtual bool isSelectiveDownloadingMode() {
|
|
return selectiveDownloadingMode;
|
|
}
|
|
|
|
void setSelectiveDownloadingMode(bool flag) {
|
|
this->selectiveDownloadingMode = flag;
|
|
}
|
|
|
|
virtual void finishSelectiveDownloadingMode() {}
|
|
|
|
virtual bool isEndGame() {
|
|
return endGame;
|
|
}
|
|
|
|
void setEndGame(bool flag) {
|
|
this->endGame = flag;
|
|
}
|
|
|
|
virtual DiskAdaptor* getDiskAdaptor() {
|
|
return diskAdaptor;
|
|
}
|
|
|
|
void setDiskAdaptor(DiskAdaptor* adaptor) {
|
|
this->diskAdaptor = adaptor;
|
|
}
|
|
|
|
virtual int getPieceLength(int index) {
|
|
return pieceLengthList.at(index);
|
|
}
|
|
|
|
void addPieceLengthList(int length) {
|
|
pieceLengthList.push_back(length);
|
|
}
|
|
|
|
virtual void advertisePiece(int cuid, int index) {}
|
|
|
|
virtual Integers getAdvertisedPieceIndexes(int myCuid,
|
|
const Time& lastCheckTime) {
|
|
return Integers();
|
|
}
|
|
|
|
virtual void removeAdvertisedPiece(int elapsed) {}
|
|
};
|
|
|
|
typedef SharedHandle<MockPieceStorage> MockPieceStorageHandle;
|
|
|
|
#endif // _D_MOCK_PIECE_STORAGE_H_
|