#include "serrorprocess.h" SErrorProcess::SErrorProcess():SParentProcess(), m_iterEffectRow(nullptr) { QObject::connect(this, &SErrorProcess::signalTerminateEachEvent, this, &SErrorProcess::slotTerminateEachEvent); } void SErrorProcess::setList(const QVector& _list) { } void SErrorProcess::setList(QVector&& _list) { } void SErrorProcess::setList(const QVector& _list) { clear(); m_vecRunList = _list; } void SErrorProcess::setList(QVector&& _list) { clear(); m_vecRunList = std::move(_list); } void SErrorProcess::runInit() { setInnerMode(E_INNER_RUN_MODE::MODE_WAIT_INIT); initIterator(); setInnerMode(E_INNER_RUN_MODE::MODE_RUN_EVENTCODE); } void SErrorProcess::runEventCode() { setInnerMode(E_INNER_RUN_MODE::MODE_WAIT_EVENTCODE); if (isUserAbort()) { setInnerMode(E_INNER_RUN_MODE::MODE_WAIT_TERMINATE); emit signalUserAbort(); return; } if (isDone()) { setInnerMode(E_INNER_RUN_MODE::MODE_WAIT_TERMINATE); emit signalTerminateNormal(); return; } SEffectRow row = *m_iterEffectRow; setCurrentEffectRow(row); nextIterator(); runProcess(getProcessArguments(row)); } void SErrorProcess::clear() { SParentProcess::clear(); m_vecRunList.clear(); m_iterEffectRow = nullptr; } void SErrorProcess::slotTerminateEachEvent(int _num, E_CRAWL_STATE _state) { if (_state == E_CRAWL_STATE::OK) { emit signalTerminateCompany(_num); } } void SErrorProcess::initIterator() { m_iterEffectRow = m_vecRunList.begin(); } void SErrorProcess::nextIterator() { ++m_iterEffectRow; } bool SErrorProcess::isDone() { return m_iterEffectRow == m_vecRunList.end(); }