/* */ #include "HaveEraseCommand.h" #include "DownloadEngine.h" #include "RequestGroupMan.h" #include "PieceStorage.h" #include "RequestGroup.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) { SharedHandle ps = getDownloadEngine()->getRequestGroupMan()->getRequestGroup(i)-> getPieceStorage(); if(ps) { ps->removeAdvertisedPiece(5); } } } } // namespace aria2