115 lines
3.3 KiB
C++
115 lines
3.3 KiB
C++
/*
|
||
* @file ParameterValidateThread.h
|
||
* @brief ParameterValidateThread该线程用来在后台执行模块参数检查.
|
||
* @date: 2012-10-12
|
||
* @author: limengzhuo
|
||
*/
|
||
#ifndef PAI_FRAME_WORKFLOWVIEW_PARAMETERVALIDATETHREAD_H
|
||
#define PAI_FRAME_WORKFLOWVIEW_PARAMETERVALIDATETHREAD_H
|
||
|
||
#include <QRunnable>
|
||
#include <QObject>
|
||
// #include <QThreadPool>
|
||
#include "WorkflowSpecialTypes.h"
|
||
#include "ModuleCheckResult.h"
|
||
#include "ModuleInformation.h"
|
||
|
||
namespace pai {
|
||
namespace objectmodel{
|
||
class PaiWorkflowDataModel;
|
||
}
|
||
namespace graphics2d {
|
||
class WorkflowSceneManager;
|
||
/**
|
||
* @class CParameterValidateThread
|
||
* @brief 该线程用来在后台执行模块参数检查
|
||
*/
|
||
class CParameterValidateThread:public QObject, public QRunnable {
|
||
Q_OBJECT
|
||
public:
|
||
/**
|
||
* @brief 构造函数
|
||
* @param pModuleInfo 模块信息对象句柄
|
||
* @param eventSource 启动验证线程的来源
|
||
*/
|
||
CParameterValidateThread(pai::workflow::CModuleInformation* pModuleInfo, ValidateEventSource eventSource = ValidateEventSource_FromParameterItemChanged);
|
||
/**
|
||
* @brief 析构函数,停止线程运行
|
||
*/
|
||
virtual ~CParameterValidateThread();
|
||
/**
|
||
* @brief 得到该线程验证的模块
|
||
*/
|
||
pai::workflow::CModuleInformation* GetModuleInfo() const;
|
||
/**
|
||
* @brief 得到参数验证结果
|
||
*/
|
||
pai::module::CModuleCheckResult* GetCheckResult();
|
||
/**
|
||
* @brief 得到参数验证检查的总结果
|
||
*/
|
||
bool GetModuleCheckResult(){return m_bmoduleCheckResult;};
|
||
/**
|
||
* @brief 得到验证的事件源
|
||
*/
|
||
ValidateEventSource GetValidateEventSource();
|
||
/**
|
||
* @brief 设置验证事件源
|
||
*/
|
||
void SetValidateEventSource(ValidateEventSource eventSource);
|
||
void SetModuleInfo(pai::workflow::CModuleInformation *pModuleInfo);
|
||
signals:
|
||
void finished();
|
||
protected:
|
||
/**
|
||
* @brief 执行参数检查,并返回检查结果
|
||
*/
|
||
virtual void run();
|
||
|
||
private:
|
||
pai::workflow::CModuleInformation* m_pModuleInfo;//模块信息对象句柄
|
||
pai::module::CModuleCheckResult m_moduleCheckResult;//参数检查结果
|
||
//测井项目在部分输入曲线不存在的情况下也是可以执行的
|
||
bool m_bmoduleCheckResult;//检查的总结果,有时候m_moduleCheckResult有提示也不代表模块不能够执行
|
||
ValidateEventSource m_validateEventSource;//表示验证的事件源
|
||
};
|
||
|
||
class SubmitValidateThread: public QObject, public QRunnable {
|
||
Q_OBJECT
|
||
public:
|
||
/**
|
||
* @brief 构造函数
|
||
* @param pWorkflow 工作流模型
|
||
* @param num 设置工作流pWorkflow启动的第几个验证线程
|
||
*/
|
||
SubmitValidateThread(pai::objectmodel::PaiWorkflowDataModel* pWorkflow, int num, WorkflowSceneManager *pSceneManager);
|
||
/**
|
||
* @brief 析构函数,停止线程运行
|
||
*/
|
||
virtual ~SubmitValidateThread();
|
||
/**
|
||
* @brief 得到检查结果
|
||
*/
|
||
bool GetPermitSubmit();
|
||
/**
|
||
* @brief 得到序号
|
||
*/
|
||
int GetOrderNumber();
|
||
signals:
|
||
void finished();
|
||
protected:
|
||
/**
|
||
* @brief 执行参数检查,并返回检查结果
|
||
*/
|
||
virtual void run();
|
||
|
||
private:
|
||
bool m_bPermitSubmit;//检查结果,允许或者不允许提交作业
|
||
int m_OrderNumber;//序号
|
||
pai::objectmodel::PaiWorkflowDataModel* m_pWorkflow;//工作流模型指针
|
||
WorkflowSceneManager *m_pSceneManager;
|
||
};
|
||
}
|
||
}
|
||
#endif
|