/* */ #ifndef _D_DHT_MESSAGE_RECEIVER_H_ #define _D_DHT_MESSAGE_RECEIVER_H_ #include "common.h" #include "SharedHandle.h" namespace aria2 { class DHTMessageTracker; class DHTMessage; class DHTConnection; class DHTMessageFactory; class DHTRoutingTable; class Logger; class DHTMessageReceiver { private: SharedHandle _tracker; SharedHandle _connection; SharedHandle _factory; SharedHandle _routingTable; Logger* _logger; SharedHandle handleUnknownMessage(const unsigned char* data, size_t length, const std::string& remoteAddr, uint16_t remotePort); public: DHTMessageReceiver(const SharedHandle& tracker); ~DHTMessageReceiver(); SharedHandle receiveMessage(); void handleTimeout(); const SharedHandle& getConnection() const { return _connection; } const SharedHandle& getMessageTracker() const { return _tracker; } void setConnection(const SharedHandle& connection); void setMessageFactory(const SharedHandle& factory); void setRoutingTable(const SharedHandle& routingTable); }; } // namespace aria2 #endif // _D_DHT_MESSAGE_RECEIVER_H_