/* */ #ifndef _D_BT_EXTENDED_MESSAGE_H_ #define _D_BT_EXTENDED_MESSAGE_H_ #include "SimpleBtMessage.h" namespace aria2 { class ExtensionMessage; class BtExtendedMessage; typedef SharedHandle BtExtendedMessageHandle; class BtExtendedMessage:public SimpleBtMessage { private: SharedHandle _extensionMessage; unsigned char* _msg; size_t _msgLength; public: BtExtendedMessage(const SharedHandle& extensionMessage = 0); virtual ~BtExtendedMessage(); static const uint8_t ID = 20; static BtExtendedMessageHandle create(const SharedHandle& btContext, const SharedHandle& peer, const char* data, size_t dataLength); virtual int8_t getId() { return ID; } virtual void doReceivedAction(); virtual const unsigned char* getMessage(); virtual int32_t getMessageLength(); virtual bool sendPredicate() const; virtual std::string toString() const; SharedHandle getExtensionMessage() const; }; } // namespace aria2 #endif // _D_BT_EXTENDED_MESSAGE_H_