logplus/Workflow/WFEngine/WorkflowEngine/include/SpecialModuleDecompose.h

73 lines
2.2 KiB
C
Raw Normal View History

2026-01-16 17:18:41 +08:00
/*
* SpecialModuleDecompose.h
*
* Created on: Mar 12, 2015
* Author: dev
*/
#ifndef PAI_FRAME_WORKFLOWENGINE_SPECIALMODULEDECOMPOSE_H
#define PAI_FRAME_WORKFLOWENGINE_SPECIALMODULEDECOMPOSE_H
#include "WorkFlowFileWrapper.h"
#include "WorkFlowFile.h"
#include "UnrelateWorkFlowFileHelper.h"
#include "ModuleConnection.h"
#include "ModuleInformation.h"
#include "WorkFlowDecompose.h"
#include <vector>
#include <string>
class SpecialModuleDecomposeTest;
namespace pai{
namespace workflow{
class CSpecialModuleDecompose:public CWorkFlowDecompose
{
public:
CSpecialModuleDecompose(const int &startModuleId);
virtual ~CSpecialModuleDecompose();
/**
* @brief
* @param[in] workflowFileWrapper
*/
virtual void DecomposeWorkFlowFile(CWorkFlowFileWrapper* workflowFileWrapper);
private:
/**
* @brief
*@param[in] workflowFile CWorkFlowFile的备份
*/
void InternalDecomposeWorkFlowFile(CWorkFlowFile* workflowFile);
/**
* @brief input和output
*@param[in] workflowFile CWorkFlowFile的备份
*@param[in] moduleID
*@param[in] moduleSize 1output模块
*/
void ProcessDownStreamModule(CWorkFlowFile* workflowFile, const int moduleID, const int moduleSize);
/**
* @brief id存在多个connectionsourceid=id
*@param[in] workflowFile CWorkFlowFile的备份
*@param[in] moduleID
*/
void ProcessUpStreamModule(CWorkFlowFile* workflowFile, const int moduleID);
/**
* @brief workflowFile中获取所有特殊模块specialModules中
*@param[in] workflowFile
*@return
*/
std::vector<CModuleInformation*> GetSpecialModules(CWorkFlowFile* workflowFile);
private:
std::vector<std::string> spcialModuleNameList;
std::map<int, string> inputId2InputPath;//保存临时输入模块id-》输入路径
friend class ::SpecialModuleDecomposeTest;
};
}
}
#endif /* SPECIALMODULEDECOMPOSE_H_ */