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