/* */ #include "HaveEraseCommand.h" #include "DownloadEngine.h" #include "RequestGroupMan.h" #include "PieceStorage.h" #include "RequestGroup.h" #include "DownloadContext.h" namespace aria2 { HaveEraseCommand::HaveEraseCommand(int32_t cuid, DownloadEngine* e, time_t interval) :TimeBasedCommand(cuid, e, interval, true) {} HaveEraseCommand::~HaveEraseCommand() {} void HaveEraseCommand::preProcess() { if(_e->_requestGroupMan->downloadFinished() || _e->isHaltRequested()) { _exit = true; } } void HaveEraseCommand::process() { size_t numLoop = _e->_requestGroupMan->countRequestGroup(); for(size_t i = 0; i < numLoop; ++i) { PieceStorageHandle ps = _e->_requestGroupMan->getRequestGroup(i)->getPieceStorage(); if(!ps.isNull()) { ps->removeAdvertisedPiece(5); } } } } // namespace aria2