/* */ #ifndef _D_RANGE_BT_MESSAGE_VALIDATOR_H_ #define _D_RANGE_BT_MESSAGE_VALIDATOR_H_ #include "BtMessageValidator.h" #include "RangeBtMessage.h" #include "bittorrent_helper.h" namespace aria2 { class RangeBtMessageValidator : public BtMessageValidator { private: const RangeBtMessage* _message; size_t _numPiece; size_t _pieceLength; public: RangeBtMessageValidator(const RangeBtMessage* message, size_t numPiece, size_t pieceLength): _message(message), _numPiece(numPiece), _pieceLength(pieceLength) {} virtual void validate() { bittorrent::checkIndex(_message->getIndex(), _numPiece); bittorrent::checkBegin(_message->getBegin(), _pieceLength); bittorrent::checkLength(_message->getLength()); bittorrent::checkRange(_message->getBegin(), _message->getLength(), _pieceLength); } }; } // namespace aria2 #endif // _D_RANGE_BT_MESSAGE_VALIDATOR_H_