/* */ #ifndef _D_BITFIELD_MESSAGE_H_ #define _D_BITFIELD_MESSAGE_H_ #include "SimplePeerMessage.h" class BitfieldMessage : public SimplePeerMessage { private: unsigned char* bitfield; int bitfieldLength; // for check int pieces; char* msg; int msgLength; public: BitfieldMessage():SimplePeerMessage(), bitfield(NULL), bitfieldLength(0), pieces(0), msg(NULL), msgLength(0) {} virtual ~BitfieldMessage() { if(bitfield != NULL) { delete [] bitfield; } if(msg != NULL) { delete [] msg; } } enum ID_t { ID = 5 }; void setBitfield(const unsigned char* bitfield, int bitfieldLength); const unsigned char* getBitfield() const { return bitfield; } int getBitfieldLength() const { return bitfieldLength; } void setPieces(int pieces) { this->pieces = pieces; } int getPieces() const { return pieces;} static BitfieldMessage* create(const char* data, int dataLength); virtual int getId() const { return ID; } virtual void receivedAction(); virtual const char* getMessage(); virtual int getMessageLength(); virtual void check() const; virtual string toString() const; }; #endif // _D_BITFIELD_MESSAGE_H_