/* */ #ifndef D_BT_PORT_MESSAGE_H #define D_BT_PORT_MESSAGE_H #include "SimpleBtMessage.h" namespace aria2 { class DHTNode; class DHTRoutingTable; class DHTTaskQueue; class DHTTaskFactory; class BtPortMessage : public SimpleBtMessage { private: uint16_t port_; static const size_t MESSAGE_LENGTH = 7; DHTNode* localNode_; DHTRoutingTable* routingTable_; DHTTaskQueue* taskQueue_; DHTTaskFactory* taskFactory_; public: BtPortMessage(uint16_t port); static const uint8_t ID = 9; static const char NAME[]; uint16_t getPort() const { return port_; } static BtPortMessage* create(const unsigned char* data, size_t dataLength); virtual void doReceivedAction(); virtual unsigned char* createMessage(); virtual size_t getMessageLength(); virtual std::string toString() const; void setLocalNode(DHTNode* localNode); void setRoutingTable(DHTRoutingTable* routingTable); void setTaskQueue(DHTTaskQueue* taskQueue); void setTaskFactory(DHTTaskFactory* taskFactory); }; } // namespace aria2 #endif // D_BT_PORT_MESSAGE_H