/* */ #ifndef _D_DHT_REPLACE_NODE_TASK_H_ #define _D_DHT_REPLACE_NODE_TASK_H_ #include "DHTAbstractTask.h" #include "DHTMessageCallbackListener.h" #include "a2time.h" namespace aria2 { class DHTBucket; class DHTReplaceNodeTask:public DHTAbstractTask, public DHTMessageCallbackListener { private: SharedHandle _bucket; SharedHandle _newNode; static const size_t MAX_RETRY = 2; size_t _numRetry; time_t _timeout; void sendMessage(); public: DHTReplaceNodeTask(const SharedHandle& bucket, const SharedHandle& newNode); virtual ~DHTReplaceNodeTask(); virtual void startup(); virtual void onReceived(const SharedHandle& message); virtual void onTimeout(const SharedHandle& node); }; } // namespace aria2 #endif // _D_DHT_REPLACE_NODE_TASK_H_