aria2/test/MockPieceStorage.h
Tatsuhiro Tsujikawa 9c3e8fbd9c 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.
2006-12-24 06:25:21 +00:00

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_