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