C++ 配置文件解析类 ParseConfig
依赖项:
依赖于 ProcessString 类,可从该篇博客获取「字符串处理类 ProcessString (包含常用字符串处理函数)」
ParseConfig.h
//Linux & C++11
#pragma once
//包含系统头文件
#include <string>
#include <exception>
#include <memory>
#include <map>
//宏定义:函数参数流向
#define IN
#define OUT
#define INOUT
//使用命名
using std::string;
using std::exception;
using std::shared_ptr;
using std::make_shared;
using std::map;
namespace sinicheveen
{
class ParseConfig
{
public:
//group 1:解析、获取配置
//解析配置文件到 map 中
static void parseConfFileIntoMap();
//输出 m_mConfs 中的配置项
static void printConfInMap();
//从 m_mConfs 中获取某个 section 下的某项配置
static string getSpecConfValFromMap(IN const string& strSectionName, IN const string& strConfName);
//从 m_mConfs 中获取某项配置,如果在多个 section 下有相同的配置名,则获取第一个 seciton 下的配置值
static string getSpecConfValFromMap(IN const string& strConfName);
//从配置文件中获取某个 section 下的某项配置
static string getSpecConfValFromFile(IN const string& strSectionName, IN const string& strConfName);
//从配置文件中获取某项配置,如果在多个 section 下有相同的配置名,则获取第一个 seciton 下的配置值
static string getSpecConfValFromFile(IN const string& strConfName);
//guoup 2:格式校验
//校验 section name 格式,格式必须是 [XXXX]
static void checkSectionNameFromat(INOUT const string& strConf, IN const uint32_t lineNum);
//校验配置项格式
static void checkConfItemFormat(INOUT const string& strConf, IN const uint32_t lineNum);
//group 3:静态成员初始化
//初始化静态成员 m_mConfs
static map<string, map<string, string>> initStaticMapConfs();
//group 4:静态变量
private:
static string m_strConfFilePath;
static map<string, map<string, string> > m_mConfs;
}; //ParseConfig
} //sinicheveen
ParseConfig.cpp
未完 ......
点击访问原文(进入后根据右侧标签,快速定位到本文)
C++ 配置文件解析类 ParseConfig的更多相关文章
- ibatis源码学习2_初始化和配置文件解析
问题在详细介绍ibatis初始化过程之前,让我们先来思考几个问题. 1. ibatis初始化的目标是什么?上文中提到过,ibatis初始化的核心目标是构造SqlMapClientImpl对象,主要是其 ...
- MyBatis配置文件解析
MyBatis配置文件解析(概要) 1.configuration:根元素 1.1 properties:定义配置外在化 1.2 settings:一些全局性的配置 1.3 typeAliases:为 ...
- Hadoop配置文件解析
Hadoop源码解析 2 --- Hadoop配置文件解析 1 Hadoop Configuration简介 Hadoop没有使用java.util.Properties管理配置文件, 也没有使 ...
- Hibernate的配置文件解析
配置mybatis.xml或hibernate.cfg.xml报错: <property name="connection.url">jdbc:mysql://loca ...
- WCF中配置文件解析
WCF中配置文件解析[1] 2014-06-14 WCF中配置文件解析 参考 WCF中配置文件解析 返回 在WCF Service Configuration Editor的使用中,我们通过配置工具自 ...
- 自己用的框架写了一个PHP模版解析类
<?php if(!defined('IS_HEARTPHP')) exit('Access Denied'); /** * template.class.php 模板解析类 * * @copy ...
- nginx源代码分析--配置文件解析
ngx-conf-parsing 对 Nginx 配置文件的一些认识: 配置指令具有作用域,分为全局作用域和使用 {} 创建其他作用域. 同一作用域的不同的配置指令没有先后顺序:同一作用域能否使用同样 ...
- PHP模板解析类实例
作者:mckee 这篇文章主要介绍了PHP模板解析类,涉及php针对模板文件的解析与字符串处理的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下 <?php class template { ...
- Spring Security 入门(1-6-1)Spring Security - 配置文件解析和访问请求处理
1.在pom.xml中添加maven坐标 <dependency> <groupId>org.springframework.security</groupId> ...
随机推荐
- JavaScript substr() 方法
定义和用法 substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符. 语法 stringObject.substr(start,length) 参数 描述 start 必需.要 ...
- UDP如何实现可靠传输
概述 UDP不属于连接协议,具有资源消耗少,处理速度快的优点,所以通常音频,视频和普通数据在传送时,使用UDP较多,因为即使丢失少量的包,也不会对接受结果产生较大的影响. 传输层无法保证数据的可靠传输 ...
- Oracle序列 与 基本函数介绍
目录 Oracle序列 与 基本函数介绍 常用词汇 数据字典(data dictionary:dd) oracle序列技术理解 账号管理 基本函数介绍及应用 海韵听心 PL/SQL Developer ...
- Social GAN: Socially Acceptable Trajectories with Generative Adversarial Networks
Social GAN: Socially Acceptable Trajectories with Generative Adversarial Networks 2019-06-01 09:52:4 ...
- python+opencv图像变换的两种方法cv2.warpAffine和cv2.warpPerspective
本文链接:https://blog.csdn.net/qq_27261889/article/details/80720359 # usr/bin/env python # coding: utf- ...
- 脸型分类-Face shape classification using Inception v3
本文链接:https://blog.csdn.net/u011961856/article/details/77984667函数解析github 代码:https://github.com/adoni ...
- centos下安装ffmpeg加上fdk-aac的支持
本文参考自:https://blog.csdn.net/jklinux/article/details/72367829 安装包可以从这里下载https://download.csdn.net/dow ...
- VPB测试 使用Osgdem运行例子
1.Osgdem运行例子所需数据下载地址: http://www.cc.gatech.edu/projects/large_models/ps.html Download Elevation Map: ...
- UCloud云盘系统安装
- kubernetes&prometheus 【组件】
查看prometheus target页面可得组件 kube-state-metric: https://github.com/kubernetes/kube-state-metrics/blob/m ...