/* */ #ifndef _D_BT_REQUEST_MESSAGE_VALIDATOR_H_ #define _D_BT_REQUEST_MESSAGE_VALIDATOR_H_ #include "BtMessageValidator.h" #include "BtRequestMessage.h" class BtRequestMessageValidator : public BtMessageValidator { private: const BtRequestMessage* message; uint32_t numPiece; uint32_t pieceLength; public: BtRequestMessageValidator(const BtRequestMessage* message, uint32_t numPiece, uint32_t pieceLength): message(message), numPiece(numPiece), pieceLength(pieceLength) {} virtual bool validate(Errors& error) { // TODO PeerMessageUtil::checkIndex(message->getIndex(), numPiece); PeerMessageUtil::checkBegin(message->getBegin(), pieceLength); PeerMessageUtil::checkLength(message->getLength()); PeerMessageUtil::checkRange(message->getBegin(), message->getLength(), pieceLength); return true; } }; typedef SharedHandle BtRequestMessageValidatorHandle; #endif // _D_BT_REQUEST_MESSAGE_VALIDATOR_H_