⚡配置文件管理模块⚡
Posted 努力学习的少年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了⚡配置文件管理模块⚡相关的知识,希望对你有一定的参考价值。
目录
配置文件管理模块的介绍
- 在服务器上,存在一个配置文件Config.txt,它是按照Json字符串的格式存储的是云服务器中的配置信息
- 服务器启动的时候,配置文件管理模块会将配置文件中的配置信息加载到服务器上.
Config.txt文件:
配置文件管理模块的实现
- 利用FileUtil文件工具类打开配置文件,将配置文件信息读取到body中。
- 由于body中的数据是Json字符串,我们不能直接获取变量,我们需要将Json字符串反序列化Json::Value 对象,再将对象中的各个变量赋值給成员变量。
class Config
private:
time_t hot_time;//热点时间
int server_port;//服务器的端口号
std::string ip;//ip地址
std::string url_prefix;//url的前缀
std::string pack_dir;//压缩目录
std::string back_dir;//文件目录
std::string back_file_info;//backfile文件
std::string pack_file_suffix;//压缩文件后缀
private:
Config()
LoadConfit();
bool LoadConfit()
sjp::FileUtil fu("./Config.txt");
std::string body;
fu.GetContent(body);
Json::Value root;
JsonUtil::UnSerialize(root,body);
hot_time=root["HotTime"].asInt();
server_port=root["ServerPort"].asInt();
ip=root["Ip"].asString();
url_prefix=root["UrlPrefix"].asString();
pack_dir=root["PackDir"].asString();
back_dir=root["BackDir"].asString();
back_file_info=root["BackFileInfo"].asString();
pack_file_suffix=root["PackFileSuffix"].asString();
W>
private:
static Config* instant;
static std::mutex lock;
public:
static Config* GetInstant()
if(instant==nullptr)
lock.lock();
if(instant==nullptr)
instant=new Config();
lock.unlock();
return instant;
time_t GetHotTime()
return hot_time;
std::string GetIp()
return ip;
std::string GetPackFileSuffix()
return pack_file_suffix;
std::string GetBackFileInfo()
return back_file_info;
int GetServerPort()
return server_port;
std::string GetUrlPrefix()
return url_prefix;
std::string GetPackDir()
return pack_dir;
std::string GetBackDir()
return back_dir;
;
Config* Config::instant=nullptr;
std::mutex Config::lock;
以上是关于⚡配置文件管理模块⚡的主要内容,如果未能解决你的问题,请参考以下文章