/* */ #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() { const RequestGroupList& groups = getDownloadEngine()->getRequestGroupMan()->getRequestGroups(); for(RequestGroupList::const_iterator i = groups.begin(), eoi = groups.end(); i != eoi; ++i) { const SharedHandle& ps = (*i)->getPieceStorage(); if(ps) { ps->removeAdvertisedPiece(5); } } } } // namespace aria2