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
|