首页 > 代码库 > protobuf 作为配置文件
protobuf 作为配置文件
公司每个project代码中,都有一个Config类,作为模块启动的配置。其实现如下
struct Config { int num; char * file_name; int load_from_file(const char* filename);}int Config::load_from_file(const char* filename){ ConfigDom dom; parse_node_from_file(&dom, filename); get_value("num", dom, this->num); get_value("filename", dom, this->file_name);}
每次添加配置项,需要在在类config中添加字段,还需要添加对该字段的解析,从定义中看,字段名写了三次。能否写一次就解决问题呢?
其实,在业界有两种方案解决,一种是基于google flags的解决方案,通过命令行参数传递,这个适合参数比较少的情况(当然基于GNU的getopts也可以,个人感觉没有gflags好用)。
还有一种就是今天需要介绍的protobuf了。protobuf提供了一种textformat的序列化格式,类似json格式,清晰易读。
步骤如下
1. 定义protobuf
2. 编译之
3. 按照json格式定义配置,在代码中读入文件,解析之成protobuf结构
4. 通过protobuf结构引用变量。
无须其它工作,方便。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。