/* */ #include "RangeBtMessage.h" #include "Util.h" namespace aria2 { RangeBtMessage::RangeBtMessage(uint8_t id, const std::string& name, size_t index, uint32_t begin, size_t length) :SimpleBtMessage(id, name), _index(index), _begin(begin), _length(length), _msg(0) {} RangeBtMessage::~RangeBtMessage() { delete [] _msg; } const unsigned char* RangeBtMessage::getMessage() { if(!_msg) { /** * len --- 13, 4bytes * id --- ?, 1byte * index --- index, 4bytes * begin --- begin, 4bytes * length -- length, 4bytes * total: 17bytes */ _msg = new unsigned char[MESSAGE_LENGTH]; PeerMessageUtil::createPeerMessageString(_msg, MESSAGE_LENGTH, 13, getId()); PeerMessageUtil::setIntParam(&_msg[5], _index); PeerMessageUtil::setIntParam(&_msg[9], _begin); PeerMessageUtil::setIntParam(&_msg[13], _length); } return _msg; } size_t RangeBtMessage::getMessageLength() { return MESSAGE_LENGTH; } std::string RangeBtMessage::toString() const { return getName()+" index="+Util::uitos(_index)+", begin="+Util::uitos(_begin)+ ", length="+Util::uitos(_length); } } // namespace aria2