/* */ #ifndef _D_BT_REQUEST_MESSAGE_VALIDATOR_H_ #define _D_BT_REQUEST_MESSAGE_VALIDATOR_H_ #include "BtMessageValidator.h" #include "BtRequestMessage.h" #include "PeerMessageUtil.h" namespace aria2 { class BtRequestMessageValidator : public BtMessageValidator { private: const BtRequestMessage* message; int32_t numPiece; int32_t pieceLength; public: BtRequestMessageValidator(const BtRequestMessage* message, int32_t numPiece, int32_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; } // namespace aria2 #endif // _D_BT_REQUEST_MESSAGE_VALIDATOR_H_