logplus/Workflow/WFEngine/WorkflowEngine/include/MultiwaveProcesser.h
2026-01-16 17:18:41 +08:00

85 lines
2.1 KiB
C++

#ifndef _PAI_FRAME_MULTIWAVEPROCESSER_H_
#define _PAI_FRAME_MULTIWAVEPROCESSER_H_
#include "Module.h"
#include "WorkFlowFile.h"
using namespace pai::module;
namespace pai {
namespace workflow{
enum ParamOperateType
{
ADD_MULTIWAVE_PARAMS,
DELETE_MULTIWAVE_PARAMS
};
class MultiwaveProcesser
{
public:
/**
* @brief 处理界面编辑工作流时添加模块类型事件
* @param pModule 添加的模块
* @param workflow 工作流
* @return
*/
static void ProcessForAdd(CModule *pModule, CWorkFlowFile *workflow);
/**
* @brief 处理界面编辑工作流时修改模块参数类型事件
* @param pModule 改变参数后的模块
* @param workflow 工作流
* @return
*/
static void ProcessForParameterChange(CModule *pModule, CWorkFlowFile *workflow);
/**
* @brief 处理界面编辑工作流时修改模块类型事件
* @param pModule 改变类型后的模块
* @param workflow 工作流
* @return
*/
static void ProcessForModuleTypeChange(CModule *pModule, CWorkFlowFile *workflow);
/**
* @brief 处理界面编辑工作流时删除模块事件
* @param pModule 即将删除的模块
* @param workflow 工作流
* @return
*/
static void ProcessForDelete(CModule *pModule, CWorkFlowFile *workflow);
private:
/**
* @brief 添加模块的多波参数
* @param pModule 要添加的模块
* @return
*/
static void AddMultiwaveParams(CModule *pModule);
/**
* @brief 删除参数中的多波参数
* @param pParameter 模块参数
* @return
*/
static void DeleteMultiwaveParams(CModuleParameter *pParamter);
/**
* @brief 添加或者删除工作流中的多波参数
* @param pModule 模块
* @param workflow 工作流
* @param operateType 操作类型(添加多波参数、删除多波参数)
* @return
*/
static void MultiwaveParamsEdit(CModule *pModule, CWorkFlowFile *workflow, ParamOperateType operateType);
/**
* @brief 除pModule外工作流中是否有能够确定添加多波参数的模块
* @param pModule 发生改变的模块
* @param workflow 工作流
* @return
*/
static bool HasMultiwaveModules(CModule *pModule, CWorkFlowFile *workflow);
};
}
}
#endif