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_ */
|