/* */ #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_