/* */ #ifndef D_BT_BITFIELD_MESSAGE_H #define D_BT_BITFIELD_MESSAGE_H #include "SimpleBtMessage.h" namespace aria2 { class BtBitfieldMessage : public SimpleBtMessage { private: std::unique_ptr bitfield_; size_t bitfieldLength_; public: BtBitfieldMessage(); BtBitfieldMessage(const unsigned char* bitfield, size_t bitfieldLength); virtual ~BtBitfieldMessage(); static const uint8_t ID = 5; static const char NAME[]; void setBitfield(const unsigned char* bitfield, size_t bitfieldLength); const unsigned char* getBitfield() const { return bitfield_.get(); } size_t getBitfieldLength() const { return bitfieldLength_; } static std::unique_ptr create(const unsigned char* data, size_t dataLength); virtual void doReceivedAction() CXX11_OVERRIDE; virtual unsigned char* createMessage() CXX11_OVERRIDE; virtual size_t getMessageLength() CXX11_OVERRIDE; virtual std::string toString() const CXX11_OVERRIDE; }; } // namespace aria2 #endif // D_BT_BITFIELD_MESSAGE_H