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> ...
随机推荐
- interior转换为interface
在计算的过程中,我们想要将interior(内部面)转换为interface,操作如下:
- Python中_,__,__xx__方法区别
_xx 单下划线开头 Python中没有真正的私有属性或方法,可以在你想声明为私有的方法和属性前加上单下划线,以提示该属性和方法不应在外部调用.如果真的调用了也不会出错,但不符合规范. 方法就是以单下 ...
- 2019年领航杯 江苏省网络信息安全竞赛 初赛部分writeup
赛题已上传,下载连接:https://github.com/raddyfiy/2019linghangcup 做出了全部的misc和前三道逆向题,排名第10,暂且贴一下writeup. 关卡一 编码解 ...
- kill命令的简单实现
kill命令的简单实现 目标:简单实现kill命令 功能: 向进程发送信号 列出信号名字 参数: -l 列出信号名字 -s (s=1.2.3.....)发送的信号代号 环境 ubuntu 14.04 ...
- (转)AutoML 与轻量模型大列表: awesome-AutoML-and-Lightweight-Models
Awesome-AutoML-and-Lightweight-Models 原文:http://bbs.cvmart.net/articles/414/zi-yuan-automl-yu-qing-l ...
- SpringMVC:HandlerInterceptor log 日志
springMVC:HandlerInterceptor拦截器添加系统日志(权限校验)代码收藏 - LinkcOne - CSDN博客https://blog.csdn.net/qq_22815337 ...
- Andorid-解决View重复点击的思路
Andorid-解决View重复点击的思路 转 https://www.jianshu.com/p/10d400a296fe 最近遇到一道面试题,题目是在App开发中,如何防止多次点击支付或者多次点击 ...
- 从0开始学爬虫10之urllib和requests库与github/api的交互
urllib库的使用 # coding=utf-8 import urllib2 import urllib # htpbin模拟的环境 URL_IP="http://10.11.0.215 ...
- 四、postman增加断言
预期和实际结果的判断 预期==实际:用例通过,写到报告里 预期!==实际:用例失败,写到报告里 一.例子演示 相当于首页右侧的10大每天的内容 url:http://www.v2ex.com/api/ ...
- DateUtil 提供一些常用的时间想法的方法
package com.opslab.util; import java.text.ParseException;import java.text.SimpleDateFormat;import ja ...