/* * @file ModuleChecher.h * @brief 实现模块的自我检测,以及模块中是否有串行和并行混合模块 * * @author 霍吉东 * @date 2011-10-24 */ #ifndef PAI_FRAME_WORKFLOWENGINE_MODULECHECKER_H #define PAI_FRAME_WORKFLOWENGINE_MODULECHECKER_H #include "WorkflowChecker.h" #include "WorkflowConstants.h" namespace pai { namespace workflow { class PAI_WORKFLOWENGINE_EXPORT CModuleChecher :public CWorkflowChecker { public: CModuleChecher(bool bBackGroundValidate = true); virtual ~CModuleChecher(); protected: /** * @brief 模块自我检验方法的具体实现 * @param[in] workflow待校验的工作流对象 * @param[out] strErrorMsg 返回的错误信息,所有模块检验通过返回true */ virtual bool StepCheck(CWorkFlowFile* workflow,std::string& strErrorMsg); bool m_bBackGroundValidate; private: /** * @brief 校验工作流的多波参数,如果是多波工作流,在常规模块至少选中一个分量 * @param[in] workflow 待校验的工作流对象 * @param[in] pModule 待校验的模块 * @return 满足校验要求则返回true,否则返回false */ bool ValidateMultiwaveParams(CWorkFlowFile *workflow, CModule *pModule); }; } } #endif