logplus/ModuleConsole/include/ParameterValidateThread.h
2026-01-16 17:18:41 +08:00

115 lines
3.3 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* @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