Files
clients/EffectUI/serrorprocess.cpp
admin 23021133c6 logic 추가
git-svn-id: svn://192.168.0.12/source@302 8346c931-da38-4b9b-9d4c-e48b93cbd075
2016-10-21 10:01:11 +00:00

95 lines
1.8 KiB
C++

#include "serrorprocess.h"
SErrorProcess::SErrorProcess():SParentProcess(), m_iterEffectRow(nullptr)
{
QObject::connect(this, &SErrorProcess::signalTerminateEachEvent,
this, &SErrorProcess::slotTerminateEachEvent);
}
void SErrorProcess::setList(const QVector<int>& _list)
{
}
void SErrorProcess::setList(QVector<int>&& _list)
{
}
void SErrorProcess::setList(const QVector<SEffectRow>& _list)
{
clear();
m_vecRunList = _list;
}
void SErrorProcess::setList(QVector<SEffectRow>&& _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();
}