logwidget 추가
git-svn-id: svn://192.168.0.12/source@301 8346c931-da38-4b9b-9d4c-e48b93cbd075
This commit is contained in:
@@ -11,23 +11,14 @@ const int TIMEOUT = 180; // 3 minutes
|
||||
const QString SPLIT_KEYWORD = "!@#";
|
||||
}
|
||||
|
||||
enum class SParentProcess::E_INNER_RUN_MODE:unsigned short
|
||||
{
|
||||
MODE_WAIT = 0,
|
||||
MODE_RUN_INIT,
|
||||
MODE_RUN_EVENTCODE,
|
||||
MODE_WAIT_INIT,
|
||||
MODE_WAIT_EVENTCODE,
|
||||
MODE_WAIT_TERMINATE,
|
||||
MODE_WAIT_HANGING,
|
||||
MODE_FINISH = MODE_WAIT
|
||||
};
|
||||
|
||||
SParentProcess::SParentProcess():m_pProcess(new QProcess(this)), m_bRunning(false), nTime(0),
|
||||
m_bUserAbort(false), m_eInnerMode(E_INNER_RUN_MODE::MODE_WAIT)
|
||||
{
|
||||
QObject::connect(m_pProcess, SIGNAL(QProcess::finished(int, QProcess::ExitStatus)),
|
||||
this, SLOT(SParentProcess::finishedProcess(int, QProcess::ExitStatus)));
|
||||
QObject::connect(this, &SParentProcess::signalTerminateError,
|
||||
this, &SParentProcess::slotTerminateError);
|
||||
}
|
||||
|
||||
void SParentProcess::clear()
|
||||
@@ -36,6 +27,9 @@ void SParentProcess::clear()
|
||||
m_mapReportSummary.clear();
|
||||
m_erCurrentRow = SEffectRow();
|
||||
m_error = SError();
|
||||
m_bUserAbort = false;
|
||||
nTime = 0;
|
||||
m_bRunning = false;
|
||||
}
|
||||
|
||||
void SParentProcess::setInnerMode(E_INNER_RUN_MODE _mode)
|
||||
@@ -43,7 +37,7 @@ void SParentProcess::setInnerMode(E_INNER_RUN_MODE _mode)
|
||||
m_eInnerMode = _mode;
|
||||
}
|
||||
|
||||
QVector<SError> SParentProcess::getErrorList() const
|
||||
QVector<SEffectRow> SParentProcess::getErrorList() const
|
||||
{
|
||||
return m_vecError;
|
||||
}
|
||||
@@ -84,9 +78,14 @@ QStringList SParentProcess::getProcessArguments(SEffectRow&& _row) const
|
||||
return QStringList();
|
||||
}
|
||||
|
||||
void SParentProcess::runProcess()
|
||||
{
|
||||
|
||||
|
||||
void SParentProcess::runProcess(QStringList _arguments)
|
||||
{
|
||||
QString arg = _arguments.at(0);
|
||||
_arguments.removeFirst();
|
||||
|
||||
m_pProcess->start(arg, _arguments);
|
||||
}
|
||||
|
||||
void SParentProcess::setError(const SError& _error)
|
||||
@@ -111,6 +110,7 @@ void SParentProcess::update()
|
||||
|
||||
case E_INNER_RUN_MODE::MODE_WAIT:
|
||||
{
|
||||
clear();
|
||||
setInnerMode(E_INNER_RUN_MODE::MODE_RUN_INIT);
|
||||
break;
|
||||
}
|
||||
@@ -123,6 +123,7 @@ void SParentProcess::update()
|
||||
|
||||
case E_INNER_RUN_MODE::MODE_RUN_EVENTCODE:
|
||||
{
|
||||
nTime = 0;
|
||||
runEventCode();
|
||||
break;
|
||||
}
|
||||
@@ -131,8 +132,8 @@ void SParentProcess::update()
|
||||
{
|
||||
if (++nTime >= TIMEOUT)
|
||||
{
|
||||
m_pProcess->kill();
|
||||
setInnerMode(E_INNER_RUN_MODE::MODE_WAIT_HANGING);
|
||||
m_pProcess->kill();
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -183,11 +184,11 @@ void SParentProcess::finishedProcess(int exitCode, QProcess::ExitStatus exitStat
|
||||
if (!m_mapReportSummary.contains(analyzedResult.company_num))
|
||||
m_mapReportSummary.insert(analyzedResult.company_num, SReportSummary());
|
||||
m_mapReportSummary[analyzedResult.company_num].nError++;
|
||||
m_vecError.append(analyzedResult);
|
||||
m_vecError.append(m_erCurrentRow);
|
||||
}
|
||||
|
||||
emit signalLog(strLog);
|
||||
|
||||
emit signalTerminateEachEvent(analyzedResult.company_num, analyzedResult.state);
|
||||
setInnerMode(E_INNER_RUN_MODE::MODE_RUN_EVENTCODE);
|
||||
//This may be unnecessary :(
|
||||
//pPro->kill();
|
||||
@@ -333,97 +334,25 @@ QString SParentProcess::makeLog(const SError& _error)
|
||||
return str;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
E_INFO SParentProcess::analyzeStdOut(const QString& _str, QString& _resultLog)
|
||||
void SParentProcess::slotTerminateError(const SError &_error)
|
||||
{
|
||||
E_INFO info;
|
||||
QString strLog = makeLog(_str);
|
||||
setInnerMode(E_INNER_RUN_MODE::MODE_WAIT_TERMINATE);
|
||||
emit signalLog(makeLog(_error));
|
||||
emit signalTerminate();
|
||||
}
|
||||
|
||||
|
||||
QStringList slstdOut = _str.split(SPLIT_KEYWORD);
|
||||
bool SParentProcess::isUserAbort()
|
||||
{
|
||||
return m_bUserAbort;
|
||||
}
|
||||
|
||||
|
||||
QString SParentProcess::makeLog(const QString& _str)
|
||||
void SParentProcess::setCurrentEffectRow(const SEffectRow& _row)
|
||||
{
|
||||
QString strLog;
|
||||
if (_str.trimmed().size() < 5) // may be timeout case
|
||||
{
|
||||
strLog += "x ";
|
||||
strLog += m_erCurrentRow.company_name + " ";
|
||||
strLog += m_erCurrentRow.eventcode + " ";
|
||||
strLog += m_erCurrentRow.url + "\n";
|
||||
strLog += "ERRORCODE:" + ERROR_MESSAGE[E_ERROR_CODE::TIMEOUT];
|
||||
|
||||
m_vecError.append(SError(E_CRAWL_STATE::FAIL, m_erCurrentRow.company_num,
|
||||
m_erCurrentRow.platformname_num, m_erCurrentRow.eventcode,
|
||||
m_erCurrentRow.url, E_ERROR_CODE::TIMEOUT, ""));
|
||||
|
||||
if (!m_mapReportSummary.contains(m_erCurrentRow.company_num))
|
||||
m_mapReportSummary.insert(m_erCurrentRow.company_num, SReportSummary());
|
||||
m_mapReportSummary[m_erCurrentRow.company_num].nError++;
|
||||
|
||||
return strLog;
|
||||
}
|
||||
else if (_str.trimmed().at(0) != 'o' && _str.trimmed().at(0) != 'O' &&
|
||||
_str.trimmed().at(0) != 'x' && _str.trimmed().at(0) != 'X')
|
||||
{
|
||||
strLog += "? ";
|
||||
strLog += m_erCurrentRow.company_name + " ";
|
||||
strLog += m_erCurrentRow.eventcode + " ";
|
||||
strLog += m_erCurrentRow.url + " ";
|
||||
strLog += "ERRORCODE:" + ERROR_MESSAGE[E_ERROR_CODE::UNKNOWN_ERROR] + " ";
|
||||
strLog += "ERRORMSG:" + _str.left(200);
|
||||
|
||||
if (!m_mapReportSummary.contains(m_erCurrentRow.company_num))
|
||||
m_mapReportSummary.insert(m_erCurrentRow.company_num, SReportSummary());
|
||||
m_mapReportSummary[m_erCurrentRow.company_num].nError++;
|
||||
|
||||
return strLog;
|
||||
}
|
||||
|
||||
QStringList slLog = strLog.split(SPLIT_KEYWORD);
|
||||
|
||||
if (slLog.size() < 2)
|
||||
{
|
||||
strLog += "? ";
|
||||
strLog += m_erCurrentRow.company_name + " ";
|
||||
strLog += m_erCurrentRow.eventcode + " ";
|
||||
strLog += m_erCurrentRow.url + " ";
|
||||
strLog += "ERRORCODE:" + ERROR_MESSAGE[E_ERROR_CODE::UNKNOWN_ERROR] + " ";
|
||||
strLog += "ERRORMSG:" + _str.left(200);
|
||||
|
||||
if (!m_mapReportSummary.contains(m_erCurrentRow.company_num))
|
||||
m_mapReportSummary.insert(m_erCurrentRow.company_num, SReportSummary());
|
||||
m_mapReportSummary[m_erCurrentRow.company_num].nError++;
|
||||
|
||||
return strLog;
|
||||
}
|
||||
|
||||
else if (slLog.size() > 2 && (slLog.at(0).trimmed() == 'o' ||
|
||||
slLog.at(0).trimmed() == 'O'))
|
||||
{
|
||||
strLog += slLog.at(0) + " ";
|
||||
strLog += m_erCurrentRow.company_name + " ";
|
||||
for (int i = 1; i < slLog.size(); ++i)
|
||||
strLog += slLog.at(i) + " ";
|
||||
|
||||
if (!m_mapReportSummary.contains(m_erCurrentRow.company_num))
|
||||
m_mapReportSummary.insert(m_erCurrentRow.company_num, SReportSummary());
|
||||
m_mapReportSummary[m_erCurrentRow.company_num].nError++;
|
||||
|
||||
return strLog;
|
||||
}
|
||||
|
||||
else if (slLog.size() > 2 && (slLog.at(0).trimmed() == 'x' ||
|
||||
slLog.at(0).trimmed() == 'X'))
|
||||
{
|
||||
strLog += slLog.at(0)
|
||||
str
|
||||
}
|
||||
|
||||
strLog = slLog.join(" ");
|
||||
return strLog;
|
||||
m_erCurrentRow = _row;
|
||||
}
|
||||
|
||||
void SParentProcess::setCurrentEffectRow(SEffectRow&& _row)
|
||||
{
|
||||
m_erCurrentRow = std::move(_row);
|
||||
}
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user