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