/* */ #ifndef D_DHT_PING_TASK_H #define D_DHT_PING_TASK_H #include "DHTAbstractTask.h" #include "a2time.h" namespace aria2 { class DHTPingReplyMessage; class DHTPingTask:public DHTAbstractTask { private: std::shared_ptr remoteNode_; int numMaxRetry_; int numRetry_; bool pingSuccessful_; time_t timeout_; void addMessage(); public: DHTPingTask(const std::shared_ptr& remoteNode, int numMaxRetry = 0); virtual ~DHTPingTask(); virtual void startup() CXX11_OVERRIDE; void onReceived(const DHTPingReplyMessage* message); void onTimeout(const std::shared_ptr& node); void setTimeout(time_t timeout) { timeout_ = timeout; } bool isPingSuccessful() const; }; } // namespace aria2 #endif // D_DHT_PING_TASK_H