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