logplus/ModuleConsole/include/ParameterValidateThread.h

115 lines
3.3 KiB
C
Raw Normal View History

2026-01-16 17:18:41 +08:00
/*
* @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