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

85 lines
2.0 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 ConfigureManager.h
* @brief 配置文件管理
*
* @author 黄军
* @date 2011-8-10
*/
#ifndef PAI_FRAME_WORKFLOWENGINE_CONFIGUREMANAGER_H
#define PAI_FRAME_WORKFLOWENGINE_CONFIGUREMANAGER_H
#include <fstream>
#include <map>
#include <sstream>
#include <stdexcept>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <string>
#include "Turtle.h"
#include "WorkflowConstants.h"
#include "Configure.h"
namespace pai{
namespace workflow {
typedef std::map<std::string, std::string> Properties;
/**
* @brief 配置文件管理
* 1.解析Property类型的配置文件通过索引Key的方式去查找配置项
* 2.保存Property选项为Properties配置文件
*/
class PAI_WORKFLOWENGINE_EXPORT CConfigureManager {
public:
CConfigureManager();
virtual ~CConfigureManager();
private:
/*
* 配置项集合
* */
Properties m_mapProperties;
std::string m_strPropFilePath;
pai::conf::CConfigure configure;
public:
/*
* @brief 解析配置文件
* 如果解析成功直接可以通过m_properties字段获取配置项目。
* @param[in] strPropFilePath 配置文件全路径
* @return 解析文件是否成功
*/
bool ParserFile(const std::string& strPropFilePath);
/*
* @brief 获取配置项值
* @param[in] strKey 配置项目名名词
* @return 如果配置项不存在返回空字符串(string.empty()==true),否则返回配置项值
*/
const std::string GetValue(const std::string& strKey);
/*
* @brief 解析默认配置文件[设置环境变量=WORKFLOW_CONFIG_PATH]
* 如果解析成功直接可以通过m_properties字段获取配置项目。
* @return 解析文件是否成功
*/
bool ParaseDefaultFile();
/*
* @brief 保存Key/Value配置项为配置文件
* @return 保存是否成功
*/
bool Save(Properties& prop,const std::string& filepath);
};
}
}
/**
* @brief 返回全局唯一的配置管理
*/
extern PAI_WORKFLOWENGINE_EXPORT pai::workflow::CConfigureManager* GetConfigureManager();
#endif