/* */ #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; unsigned char* _msg; static const size_t MESSAGE_LENGTH = 7; WeakHandle _localNode; WeakHandle _routingTable; WeakHandle _taskQueue; WeakHandle _taskFactory; public: BtPortMessage(uint16_t port); virtual ~BtPortMessage(); static const uint8_t ID = 9; uint16_t getPort() const { return _port; } static SharedHandle create(const unsigned char* data, size_t dataLength); virtual void doReceivedAction(); virtual const unsigned char* getMessage(); virtual size_t getMessageLength(); virtual std::string toString() const; void setLocalNode(const WeakHandle& localNode); void setRoutingTable(const WeakHandle& routingTable); void setTaskQueue(const WeakHandle& taskQueue); void setTaskFactory(const WeakHandle& taskFactory); }; } // namespace aria2 #endif // _D_BT_PORT_MESSAGE_H_