/* */ #ifndef _D_ZERO_BT_MESSAGE_H_ #define _D_ZERO_BT_MESSAGE_H_ #include "SimpleBtMessage.h" #include "bittorrent_helper.h" namespace aria2 { class ZeroBtMessage : public SimpleBtMessage { private: unsigned char* _msg; static const size_t MESSAGE_LENGTH = 5; protected: template static SharedHandle create(const unsigned char* data, size_t dataLength) { bittorrent::assertPayloadLengthEqual(1, dataLength, T::NAME); bittorrent::assertID(T::ID, data, T::NAME); SharedHandle message(new T()); return message; } public: ZeroBtMessage(uint8_t id, const std::string& name): SimpleBtMessage(id, name), _msg(0) {} virtual ~ZeroBtMessage() { delete [] _msg; } virtual const unsigned char* getMessage(); virtual size_t getMessageLength(); virtual std::string toString() const; }; } // namespace aria2 #endif // _D_ZERO_BT_MESSAGE_H_