logic 추가 -_-;;
git-svn-id: svn://192.168.0.12/source@303 8346c931-da38-4b9b-9d4c-e48b93cbd075
This commit is contained in:
262
EffectUI/seffectlogic.cpp
Normal file
262
EffectUI/seffectlogic.cpp
Normal file
@@ -0,0 +1,262 @@
|
||||
#include "seffectlogic.h"
|
||||
#include "sadddelwidget.h"
|
||||
#include "srunninglistwidget.h"
|
||||
#include "srunningprocess.h"
|
||||
#include "slogwidget.h"
|
||||
#include "stimer.h"
|
||||
#include <QDebug>
|
||||
|
||||
namespace
|
||||
{
|
||||
const int RETRY = 2;
|
||||
}
|
||||
|
||||
|
||||
SEffectLogic::SEffectLogic(): m_pSAddDelWidget(nullptr), m_pSRunningProcess(nullptr),
|
||||
m_pSTimer(nullptr), m_pSRunningListWidget(nullptr), m_pSLogWidget(nullptr), nRetry(RETRY)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void SEffectLogic::setSRunningProcess(SRunningProcess *_p)
|
||||
{
|
||||
m_pSRunningProcess = _p;
|
||||
}
|
||||
|
||||
void SEffectLogic::setSRunningWidget(SRunningListWidget *_p)
|
||||
{
|
||||
m_pSRunningListWidget = _p;
|
||||
}
|
||||
|
||||
void SEffectLogic::setSTimer(STimer *_p)
|
||||
{
|
||||
m_pSTimer = _p;
|
||||
}
|
||||
|
||||
void SEffectLogic::setSLogWidget(SLogWidget *_p)
|
||||
{
|
||||
m_pSLogWidget = _p;
|
||||
}
|
||||
|
||||
void SEffectLogic::setSAddDelWidget(SAddDelWidget *_p)
|
||||
{
|
||||
m_pSAddDelWidget = _p;
|
||||
}
|
||||
|
||||
void SEffectLogic::initConnect()
|
||||
{
|
||||
QObject::connect(m_pSRunningProcess, &SRunningProcess::signalLog,
|
||||
m_pSLogWidget, &SLogWidget::slotWriteLog);
|
||||
|
||||
QObject::connect(m_pSTimer, &STimer::timeout, this, &SEffectLogic::slotStartByTimer);
|
||||
|
||||
QObject::connect(m_pSRunningListWidget, &SRunningListWidget::signalTimerStart,
|
||||
this, &SEffectLogic::slotClickTimerStart);
|
||||
QObject::connect(m_pSRunningListWidget, &SRunningListWidget::signalTimerStop,
|
||||
this, &SEffectLogic::slotClickTimerStop);
|
||||
QObject::connect(m_pSRunningListWidget, &SRunningListWidget::signalForceStart,
|
||||
this, &SEffectLogic::slotClickForceStart);
|
||||
QObject::connect(m_pSRunningListWidget, &SRunningListWidget::signalForceStop,
|
||||
this, &SEffectLogic::slotClickForceStop);
|
||||
|
||||
QObject::connect(m_pSRunningProcess, &SRunningProcess::signalUserAbort,
|
||||
this, &SEffectLogic::slotUserAbort);
|
||||
QObject::connect(m_pSRunningProcess, &SRunningProcess::signalTerminateError,
|
||||
this, &SEffectLogic::slotTerminateError);
|
||||
QObject::connect(m_pSRunningProcess, &SRunningProcess::signalTerminateNormal,
|
||||
this, &SEffectLogic::slotTerminateNormal);
|
||||
QObject::connect(m_pSRunningProcess, &SRunningProcess::signalSuccessErrorCompany,
|
||||
this, &SEffectLogic::slotSuccessErrorCompany);
|
||||
QObject::connect(m_pSRunningProcess, &SRunningProcess::signalCompanyComplete,
|
||||
this, &SEffectLogic::slotCompleteCompany);
|
||||
QObject::connect(m_pSRunningProcess, &SRunningProcess::signalCompanyOutDated,
|
||||
this, &SEffectLogic::slotCompanyOutdated);
|
||||
}
|
||||
|
||||
|
||||
void SEffectLogic::slotClickForceStart()
|
||||
{
|
||||
if (!(m_pSRunningProcess->isRunning()) && !(m_pSTimer->isActive()))
|
||||
{
|
||||
nRetry = RETRY;
|
||||
m_pSRunningListWidget->enableBtnForceStart(false);
|
||||
m_pSRunningListWidget->enableBtnForceStop(true);
|
||||
m_pSRunningListWidget->enableBtnTimerStart(false);
|
||||
m_pSRunningListWidget->enableBtnTimerStop(false);
|
||||
m_pSAddDelWidget->enableBtnAdd(false);
|
||||
m_pSAddDelWidget->enableBtnDel(false);
|
||||
QVector<int> allList = m_pSRunningListWidget->getAllList();
|
||||
foreach (auto i, allList)
|
||||
m_pSRunningListWidget->setWaiting(i);
|
||||
|
||||
|
||||
m_pSRunningProcess->setList(allList);
|
||||
m_pSRunningProcess->start();
|
||||
}
|
||||
}
|
||||
|
||||
void SEffectLogic::slotClickForceStop()
|
||||
{
|
||||
if (m_pSTimer->isActive())
|
||||
m_pSTimer->stop();
|
||||
if (m_pSRunningProcess->isRunning())
|
||||
{
|
||||
m_pSLogWidget->writeLog("Stopping Process");
|
||||
m_pSRunningProcess->stop();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_pSAddDelWidget->enableBtnAdd(true);
|
||||
m_pSAddDelWidget->enableBtnDel(true);
|
||||
m_pSRunningListWidget->enableBtnForceStart(true);
|
||||
m_pSRunningListWidget->enableBtnForceStop(false);
|
||||
m_pSRunningListWidget->enableBtnTimerStart(true);
|
||||
m_pSRunningListWidget->enableBtnTimerStop(false);
|
||||
}
|
||||
}
|
||||
|
||||
void SEffectLogic::slotClickTimerStart()
|
||||
{
|
||||
if (!m_pSRunningProcess->isRunning() && !m_pSTimer->isActive())
|
||||
{
|
||||
m_pSRunningListWidget->enableBtnForceStart(false);
|
||||
m_pSRunningListWidget->enableBtnForceStop(false);
|
||||
m_pSRunningListWidget->enableBtnTimerStart(false);
|
||||
m_pSRunningListWidget->enableBtnTimerStop(true);
|
||||
m_pSTimer->start();
|
||||
}
|
||||
}
|
||||
|
||||
void SEffectLogic::slotClickTimerStop()
|
||||
{
|
||||
if (m_pSTimer->isActive())
|
||||
{
|
||||
m_pSLogWidget->writeLog("Stopping Process");
|
||||
m_pSTimer->stop();
|
||||
if (m_pSRunningProcess->isRunning())
|
||||
{
|
||||
m_pSRunningProcess->stop();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_pSAddDelWidget->enableBtnAdd(true);
|
||||
m_pSAddDelWidget->enableBtnDel(true);
|
||||
m_pSRunningListWidget->enableBtnForceStart(true);
|
||||
m_pSRunningListWidget->enableBtnForceStop(false);
|
||||
m_pSRunningListWidget->enableBtnTimerStart(true);
|
||||
m_pSRunningListWidget->enableBtnTimerStop(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SEffectLogic::slotStartByTimer()
|
||||
{
|
||||
if (!m_pSRunningProcess->isRunning())
|
||||
{
|
||||
nRetry = RETRY;
|
||||
m_pSAddDelWidget->enableBtnAdd(false);
|
||||
m_pSAddDelWidget->enableBtnDel(false);
|
||||
QVector<int> allList = m_pSRunningListWidget->getAllList();
|
||||
|
||||
foreach (auto i, allList)
|
||||
m_pSRunningListWidget->setWaiting(i);
|
||||
|
||||
m_pSRunningProcess->setList(allList);
|
||||
m_pSRunningProcess->start();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void SEffectLogic::slotUserAbort()
|
||||
{
|
||||
if (!m_pSRunningProcess->isRunning())
|
||||
{
|
||||
m_pSAddDelWidget->enableBtnAdd(true);
|
||||
m_pSAddDelWidget->enableBtnDel(true);
|
||||
m_pSRunningListWidget->enableBtnForceStart(true);
|
||||
m_pSRunningListWidget->enableBtnForceStop(false);
|
||||
m_pSRunningListWidget->enableBtnTimerStart(true);
|
||||
m_pSRunningListWidget->enableBtnTimerStop(false);
|
||||
m_pSLogWidget->writeLog("Stopped");
|
||||
}
|
||||
}
|
||||
|
||||
void SEffectLogic::slotTerminateError()
|
||||
{
|
||||
if (!m_pSRunningProcess->isRunning())
|
||||
{
|
||||
if (!m_pSTimer->isActive())
|
||||
{
|
||||
m_pSRunningListWidget->enableBtnForceStart(true);
|
||||
m_pSRunningListWidget->enableBtnForceStop(false);
|
||||
m_pSRunningListWidget->enableBtnTimerStart(true);
|
||||
m_pSRunningListWidget->enableBtnTimerStop(false);
|
||||
}
|
||||
m_pSAddDelWidget->enableBtnAdd(true);
|
||||
m_pSAddDelWidget->enableBtnDel(true);
|
||||
m_pSLogWidget->writeLog("Error Occurs. Stopped");
|
||||
}
|
||||
}
|
||||
|
||||
void SEffectLogic::slotCompleteCompany(int _companyNum, const SReportSummary& _reportSummary)
|
||||
{
|
||||
m_pSRunningListWidget->setInfo(_companyNum, _reportSummary.nOk, _reportSummary.nError,
|
||||
_reportSummary.nActiveEventCode, _reportSummary.nAllGroupEvent,
|
||||
_reportSummary.nTotal);
|
||||
m_pSRunningListWidget->setComplete(_companyNum);
|
||||
}
|
||||
|
||||
void SEffectLogic::slotSuccessErrorCompany(int _companyNum)
|
||||
{
|
||||
m_pSRunningListWidget->setInfoErrortoOk(_companyNum);
|
||||
}
|
||||
|
||||
void SEffectLogic::slotCompanyStart(int _companyNum)
|
||||
{
|
||||
m_pSRunningListWidget->setRunning(_companyNum);
|
||||
}
|
||||
|
||||
void SEffectLogic::slotCompanyOutdated(const QVector<int>& _vecCompany)
|
||||
{
|
||||
foreach (auto i, _vecCompany)
|
||||
{
|
||||
m_pSRunningListWidget->setOutDate(i);
|
||||
}
|
||||
}
|
||||
|
||||
void SEffectLogic::slotTerminateNormal(const QVector<SEffectRow>& _error,
|
||||
const QMap<int, SReportSummary>& _report)
|
||||
{
|
||||
qDebug() << "slotTerminateNormal";
|
||||
for (auto iterPos = _report.cbegin(); iterPos != _report.cend(); ++iterPos)
|
||||
{
|
||||
QString str;
|
||||
str += QString::number(iterPos.key()) + ":";
|
||||
str += QString::number(iterPos.value().nOk) + "/";
|
||||
str += QString::number(iterPos.value().nError) + "/";
|
||||
str += QString::number(iterPos.value().nActiveEventCode) + "/";
|
||||
str += QString::number(iterPos.value().nAllGroupEvent) + "/";
|
||||
str += QString::number(iterPos.value().nTotal);
|
||||
m_pSLogWidget->writeLog(str);
|
||||
}
|
||||
qDebug() << "Error size : " << _error.size();
|
||||
qDebug() << "nRetry : " << nRetry;
|
||||
if ((_error.size() > 0) && (nRetry-- > 0))
|
||||
{
|
||||
m_pSLogWidget->writeLog("Error Retry : " + QString::number(nRetry + 1));
|
||||
m_pSRunningProcess->setList(_error);
|
||||
m_pSRunningProcess->start();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_pSAddDelWidget->enableBtnAdd(true);
|
||||
m_pSAddDelWidget->enableBtnDel(true);
|
||||
m_pSRunningListWidget->enableBtnForceStart(true);
|
||||
m_pSRunningListWidget->enableBtnForceStop(false);
|
||||
m_pSRunningListWidget->enableBtnTimerStart(true);
|
||||
m_pSRunningListWidget->enableBtnTimerStop(false);
|
||||
nRetry = RETRY;
|
||||
m_pSLogWidget->writeLog("Complete");
|
||||
}
|
||||
}
|
||||
|
||||
53
EffectUI/seffectlogic.h
Normal file
53
EffectUI/seffectlogic.h
Normal file
@@ -0,0 +1,53 @@
|
||||
#ifndef SEFFECTLOGIC
|
||||
#define SEFFECTLOGIC
|
||||
|
||||
class SRunningProcess;
|
||||
class STimer;
|
||||
class SRunningListWidget;
|
||||
class SAddDelWidget;
|
||||
class SLogWidget;
|
||||
|
||||
#include "sutilclass.h"
|
||||
#include <QObject>
|
||||
#include <QVector>
|
||||
|
||||
class SEffectLogic:public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
SEffectLogic();
|
||||
void setSRunningProcess(SRunningProcess* _p);
|
||||
void setSTimer(STimer* _p);
|
||||
void setSRunningWidget(SRunningListWidget* _p);
|
||||
void setSAddDelWidget(SAddDelWidget* _p);
|
||||
void setSLogWidget(SLogWidget* _p);
|
||||
void initConnect();
|
||||
|
||||
private slots:
|
||||
void slotStartByTimer();
|
||||
void slotUserAbort();
|
||||
void slotTerminateError();
|
||||
void slotCompleteCompany(int _companyNum, const SReportSummary& _reportSummary);
|
||||
void slotSuccessErrorCompany(int _companyNum);
|
||||
void slotCompanyStart(int _companyNum);
|
||||
void slotCompanyOutdated(const QVector<int>& _vecCompany);
|
||||
void slotTerminateNormal(const QVector<SEffectRow>& _error,
|
||||
const QMap<int, SReportSummary>& _report);
|
||||
void slotClickForceStart();
|
||||
void slotClickForceStop();
|
||||
void slotClickTimerStart();
|
||||
void slotClickTimerStop();
|
||||
|
||||
|
||||
private:
|
||||
SRunningProcess* m_pSRunningProcess;
|
||||
STimer* m_pSTimer;
|
||||
SRunningListWidget* m_pSRunningListWidget;
|
||||
SAddDelWidget* m_pSAddDelWidget;
|
||||
SLogWidget* m_pSLogWidget;
|
||||
int nRetry;
|
||||
};
|
||||
|
||||
#endif // SEFFECTLOGIC
|
||||
|
||||
Reference in New Issue
Block a user