/* */ #ifndef _D_REQUEST_MESSAGE_H_ #define _D_REQUEST_MESSAGE_H_ #include "SimplePeerMessage.h" #include "TorrentMan.h" class RequestMessage : public SimplePeerMessage { private: int index; int begin; int length; int blockIndex; // for check int pieces; int pieceLength; char msg[17]; public: RequestMessage(int index = 0, int begin = 0, int length = 0, int blockIndex = 0) :SimplePeerMessage(), index(index), begin(begin), length(length), blockIndex(blockIndex), pieces(0), pieceLength(0) {} virtual ~RequestMessage() {} enum ID_t { ID = 6 }; int getIndex() const { return index; } void setIndex(int index) { this->index = index; } int getBegin() const { return begin; } void setBegin(int begin) { this->begin = begin; } int getLength() const { return length; } void setLength(int length) { this->length = length; } int getBlockIndex() const { return blockIndex; } void setBlockIndex(int blockIndex) { this->blockIndex = blockIndex; } void setPieces(int pieces) { this->pieces = pieces; } int getPieces() const { return pieces;} void setPieceLength(int pieceLength) { this->pieceLength = pieceLength; } int getPieceLength() const { return pieceLength;} static RequestMessage* create(const char* data, int dataLength); virtual int getId() const { return ID; } virtual void receivedAction(); virtual const char* getMessage(); virtual int getMessageLength(); virtual void check() const; virtual string toString() const; virtual void onPush(); virtual void onAbortPiece(const Piece& piece); }; #endif // _D_REQUEST_MESSAGE_H_