/* */ #ifndef D_BT_EXTENDED_MESSAGE_H #define D_BT_EXTENDED_MESSAGE_H #include "SimpleBtMessage.h" namespace aria2 { class ExtensionMessage; class ExtensionMessageFactory; class BtExtendedMessage:public SimpleBtMessage { private: std::shared_ptr extensionMessage_; size_t msgLength_; public: BtExtendedMessage(const std::shared_ptr& extensionMessage = std::shared_ptr()); virtual ~BtExtendedMessage(); static const uint8_t ID = 20; static const char NAME[]; static BtExtendedMessage* create (const std::shared_ptr& factory, const std::shared_ptr& peer, const unsigned char* data, size_t dataLength); virtual void doReceivedAction(); virtual unsigned char* createMessage(); virtual size_t getMessageLength(); virtual bool sendPredicate() const; virtual std::string toString() const; const std::shared_ptr& getExtensionMessage() const { return extensionMessage_; } }; } // namespace aria2 #endif // D_BT_EXTENDED_MESSAGE_H