/* */ #include "DHTPeerAnnounceCommand.h" #include "DHTPeerAnnounceStorage.h" #include "DownloadEngine.h" #include "RequestGroupMan.h" #include "RecoverableException.h" #include "message.h" #include "Logger.h" #include "LogFactory.h" namespace aria2 { DHTPeerAnnounceCommand::DHTPeerAnnounceCommand(cuid_t cuid, DownloadEngine* e, std::chrono::seconds interval) : TimeBasedCommand{cuid, e, std::move(interval)}, peerAnnounceStorage_{nullptr} { } DHTPeerAnnounceCommand::~DHTPeerAnnounceCommand() {} void DHTPeerAnnounceCommand::preProcess() { if (getDownloadEngine()->getRequestGroupMan()->downloadFinished() || getDownloadEngine()->isHaltRequested()) { enableExit(); } } void DHTPeerAnnounceCommand::process() { try { peerAnnounceStorage_->handleTimeout(); } catch (RecoverableException& e) { A2_LOG_ERROR_EX(EX_EXCEPTION_CAUGHT, e); } } void DHTPeerAnnounceCommand::setPeerAnnounceStorage( DHTPeerAnnounceStorage* storage) { peerAnnounceStorage_ = storage; } } // namespace aria2