/* */ #ifndef _D_BT_BITFIELD_MESSAGE_H_ #define _D_BT_BITFIELD_MESSAGE_H_ #include "SimpleBtMessage.h" class BtBitfieldMessage; typedef SharedHandle BtBitfieldMessageHandle; class BtBitfieldMessage : public SimpleBtMessage { private: unsigned char* bitfield; int32_t bitfieldLength; unsigned char* msg; int32_t msgLength; void init() { bitfield = 0; bitfieldLength = 0; msg = 0; msgLength = 0; } public: BtBitfieldMessage():SimpleBtMessage() { init(); } BtBitfieldMessage(const unsigned char* bitfield, int32_t bitfieldLength):SimpleBtMessage() { init(); setBitfield(bitfield, bitfieldLength); } virtual ~BtBitfieldMessage() { delete [] bitfield; delete [] msg; } static const int8_t ID = 5; void setBitfield(const unsigned char* bitfield, int32_t bitfieldLength); const unsigned char* getBitfield() const { return bitfield; } int32_t getBitfieldLength() const { return bitfieldLength; } static BtBitfieldMessageHandle create(const unsigned char* data, int32_t dataLength); virtual int8_t getId() { return ID; } virtual void doReceivedAction(); virtual const unsigned char* getMessage(); virtual int32_t getMessageLength(); virtual string toString() const; }; #endif // _D_BT_BITFIELD_MESSAGE_H_