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

80 lines
2.7 KiB
C
Raw Normal View History

2026-01-16 17:18:41 +08:00
/*
* WorkflowGenerator.h
*
* Created on: Jul 28, 2011
* Author: dev
*/
#ifndef PAI_FRAME_WORKFLOWENGINE_CWORKFLOWGENERATOR_H
#define PAI_FRAME_WORKFLOWENGINE_CWORKFLOWGENERATOR_H
#include <string>
#include "TemplateInformation.h"
#include "ConfigureManager.h"
#include <ctemplate/template.h>
using ctemplate::TemplateDictionary;
using pai::workflow::CTemplateInformation;
namespace pai {
namespace workflow {
/**
*@brief
*
*.tpl格式)
*Data dictionary将文本代码与
*
*/
class CWorkflowGenerator {
public:
CWorkflowGenerator(const std::string&, const std::string&);
CWorkflowGenerator();
virtual ~CWorkflowGenerator();
/**@brief 生成工作流代码,完成模板逻辑信息的具体实现。
* Data dictionaryvariable与section的具体实现形式
*
* @param[in] info
* @see CTemplateInformation
*/
void Generate(CTemplateInformation* info);
/**
* @brief Buff
* Data dictionaryvariable与section的具体实现形式
*
* @param[in] cTemplateInfo
* @param[in/out] strOutContent
*/
void GenerateBuff(CTemplateInformation* cTemplateInfo,std::string& strOutContent);
private:
void WriteToFile(const std::string& strOutContent);
void GetCurrentContent(std::string& strOutContent);
void InitWorkflow(TemplateDictionary* parentDict);
void FillModulesStatements(TemplateDictionary* parentDict);
void FillModuleStatment(TemplateDictionary* parentDict,pai::workflow::SInitializationBlock& block);
void FillStandardModuleParamBlocks(TemplateDictionary* parentDict,pai::workflow::SInitializationBlock& block);
void FillNewBufferStatements(TemplateDictionary* parentDict);
void FillOutputBufferStatements(TemplateDictionary* parentDict);
void FillInputBufferStatements(TemplateDictionary* parentDict);
CWorkflowGenerator(const CWorkflowGenerator & generator);
CWorkflowGenerator & operator=(const CWorkflowGenerator & generator);
private:
std::string cppfile;
ctemplate::TemplateDictionary* rootDictionary;
std::vector<SInitializationBlock> initializationBlocks;
std::vector<SAddingNextModuleStatement> nextModuleStatements;
std::vector<SSettingInputBufferStatement> inputBufferStatements;
std::vector<SSettingOutputBufferStatement> outputBufferStatements;
std::vector<SNewBufferStatement> newBufferStatements;
};
}
}
#endif