logplus/Workflow/WFEngine/WorkflowEngine/include/WorkflowFileParser.h
2026-01-16 17:18:41 +08:00

76 lines
2.2 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* @file WorkflowFileParser.h
* @brief 工作流解析器基类
*
* @author 黄军
* @date 2011-7-27
*/
#ifndef PAI_FRAME_WORKFLOWENGINE_WORKFLOWFILEPARSER_H
#define PAI_FRAME_WORKFLOWENGINE_WORKFLOWFILEPARSER_H
#include "WorkFlowFile.h"
namespace pai {
namespace workflow {
/**
* @brief 工作流文件解析器基类
*
* 提供了工作流解析器的基本接口方法:
* (1)工作流文件解析(不能直接调用基类方法)
* (2)工作流文件对象的检查(不能直接调用基类方法)
* 以及工作流文件对象的打印的具体实现
*
*/
class CWorkflowFileParser
{
public:
/*
* @brief 解析工作流文件为@ref CWolkFlowFile对象
*
* 在解析过程中不会校验文件格式的错误,可以等解析完成后,
* 调用@ref CheckWorkFlowFile方法去校验格式
*
* @param[in] strFilePath 工作流文件全路径
* @param[in/out] workFlowFile 工作流文件对象
* @pre 工作流文件必须存在先初始化CWolkFlowFile对象
*/
virtual bool Parse(const std::string& strFilePath, CWorkFlowFile* workFlowFile) = 0;
/*
* @brief 检查工作流文件对象
*
* 如果校验有错误错误信息先保存在errorMsg里
*
* @param[in] workFlowFile 校验工作流文件对象
* @param[in/out] errorMsg 校验错误信息
* @pre 要先初始化errorMsg
* @return 工作流对象是否通过校验
*/
virtual bool CheckWorkFlowFile(CWorkFlowFile* workFlowFile, std::string& errorMsg) = 0;
/*
* @brief 存储CWorkFlowFile对象到文件
*
* 在序列化的是需要通过CheckWorkFlowFile校验保证工作流文件的完整性
*
* @param[in] workFlowFile 工作流文件对象
* @param[in] strFilePath 工作流文件全路径
*/
virtual bool Serialize(CWorkFlowFile* workFlowFile, const std::string& strFilePath) = 0;
virtual std::string Serialize(CWorkFlowFile* workFlowFile)=0;
virtual bool ParseFromString(const std::string& jsonStr, CWorkFlowFile* workFlowFile, bool isWorkflow=false) = 0;
public:
CWorkflowFileParser();
virtual ~CWorkflowFileParser();
};
}
}
#endif