61 lines
1.5 KiB
C
61 lines
1.5 KiB
C
|
|
/*
|
|||
|
|
* 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 <vector>
|
|||
|
|
#include <map>
|
|||
|
|
#include <set>
|
|||
|
|
|
|||
|
|
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<int, string> inputId2InputPath;//保存临时输入模块id-》输入路径
|
|||
|
|
friend class ::ConcatenateDecomposeTest;//for test
|
|||
|
|
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endif /* WORKFLOWDECOMPOSE_H_ */
|