/* * ConcatenateDecompose.h * * Created on: Feb 27, 2015 * Author: dev */ #ifndef PAI_FRAME_WORKFLOWENGINE_CONCATENATEDECOMPOSE_H #define PAI_FRAME_WORKFLOWENGINE_CONCATENATEDECOMPOSE_H #include "WorkFlowFile.h" #include "WorkFlowFileWrapper.h" #include "ModuleInformation.h" #include "ModuleConnection.h" #include "WorkFlowDecompose.h" #include #include #include class ConcatenateDecomposeTest; namespace pai{ namespace workflow{ class CConcatenateDecompose:public CWorkFlowDecompose { private: /** * @brief 对有concatenate模块的工作流进行拆分 *@param[in] workflowFile */ void InternalDecomposeWorkFlowFile(CWorkFlowFile* workflowFile); /** * @brief 处理concatenate模块直接下游模块,判断是否与output模块直接相连 *@param[in] workflowFile *@param[in] moduleID concatenate模块id */ void ProcessDownStreamModule(CWorkFlowFile* workflowFile, const int moduleID); /** * @brief 处理concatenate模块上游模块,判断各个端口之间是否有棱行 *@param[in] workflowFile *@param[in] moduleID concatenate模块id */ void ProcessUpStreamModule(CWorkFlowFile* workflowFile, const int moduleID); public: CConcatenateDecompose(const int &startModuleId); virtual ~CConcatenateDecompose(); virtual void DecomposeWorkFlowFile(CWorkFlowFileWrapper* workflowFileWrapper); private: std::map inputId2InputPath;//保存临时输入模块id-》输入路径 friend class ::ConcatenateDecomposeTest;//for test }; } } #endif /* WORKFLOWDECOMPOSE_H_ */