/* */ #include "HaveEraseCommand.h" #include "DownloadEngine.h" #include "RequestGroupMan.h" #include "PieceStorage.h" #include "RequestGroup.h" namespace aria2 { HaveEraseCommand::HaveEraseCommand(cuid_t cuid, DownloadEngine* e, std::chrono::seconds interval) : TimeBasedCommand(cuid, e, std::move(interval), true) { } HaveEraseCommand::~HaveEraseCommand() {} void HaveEraseCommand::preProcess() { if (getDownloadEngine()->getRequestGroupMan()->downloadFinished() || getDownloadEngine()->isHaltRequested()) { enableExit(); } } void HaveEraseCommand::process() { const RequestGroupList& groups = getDownloadEngine()->getRequestGroupMan()->getRequestGroups(); for (auto& group : groups) { const auto& ps = group->getPieceStorage(); if (ps) { ps->removeAdvertisedPiece(5_s); } } } } // namespace aria2