85 lines
2.0 KiB
C
85 lines
2.0 KiB
C
|
|
/**
|
|||
|
|
* @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
|