class application_impl {public:application_impl():_app_options("Application Options"){}options_description     _app_options;//存储命令行和config.ini文件的参数options_description     _cfg_options;//存储config.ini文件的参数
}void application::set_program_options()
{for(auto& plug : plugins) {boost::program_options::options_description plugin_cli_opts("Command Line Options for " + plug.second->name());boost::program_options::options_description plugin_cfg_opts("Config Options for " + plug.second->name());plug.second->set_program_options(plugin_cli_opts, plugin_cfg_opts);if(plugin_cfg_opts.options().size()) {my->_app_options.add(plugin_cfg_opts);my->_cfg_options.add(plugin_cfg_opts);}if(plugin_cli_opts.options().size())my->_app_options.add(plugin_cli_opts);}options_description app_cfg_opts( "Application Config Options" );options_description app_cli_opts( "Application Command Line Options" );app_cfg_opts.add_options()("plugin", bpo::value< vector<string> >()->composing(), "Plugin(s) to enable, may be specified multiple times");app_cli_opts.add_options()("help,h", "Print this help message and exit.")("version,v", "Print version information.")("full-version", "Print full version information.")("print-default-config", "Print default configuration template")("data-dir,d", bpo::value<std::string>(), "Directory containing program runtime data")("config-dir", bpo::value<std::string>(), "Directory containing configuration files such as config.ini")("config,c", bpo::value<std::string>()->default_value( "config.ini" ), "Configuration file name relative to config-dir")("logconf,l", bpo::value<std::string>()->default_value( "logging.json" ), "Logging configuration file name/path for library users");my->_cfg_options.add(app_cfg_opts);my->_app_options.add(app_cfg_opts);my->_app_options.add(app_cli_opts);
}
  • help:直接输出_app_options配置项的全部内容。
  • version:输出 application实例的类成员_version的值。
  • print-default-config: 与_app_options无关,重新到每个plugin中找配置,然后基于_cfg_options生成一份默认的config 配置,并打印到终端界面。
  • data-dir:设置data目录的命令,保存在application的类成员_data_dir 中。
  • config-dir:设置config路径,保存在类成员_config_dir 中。
  • logconf:默认是 logging.json,放置在config目录下面,可自定义设置,保存在类成员_logging_conf中。
  • config:指定配置文件的名字,默认是config.ini。如果发现在config目录下找到config.ini文件,则按照该文件的配置载入。

EOS 源代码解读 (2)插件-set_program_options相关推荐

  1. EOS 源代码解读 (2)插件-插件模板

    eos/plugins/template_plugin定义了eos项目中所有插件的模板 /*** This is a template plugin, intended to serve as a s ...

  2. EOS 源代码解读 (2)插件-流程

    application启动插件的流程: step1. 调用各个插件的initialize() step2. 调用各个插件的initialize_logging(); step3. 调用各个插件的sta ...

  3. EOS 源代码解读 (4)交易数据结构

    struct transaction_receipt_header {enum status_enum {executed = 0, //transaction成功执行,没有错误发生soft_fail ...

  4. EOS 智能合约源代码解读 (1)总体说明

    1. 基本定义 在eos私有节点操作中,我们通常是一个合约对应一个合约账户,并且一个账户中只能部署一个智能合约.如果在同一个账户部署多个合约,那么最后部署的合约会覆盖掉之前的合约.每个帐户都至少链接到 ...

  5. eos 源代码学习笔记一

    文章目录 eos 源代码学习笔记 1.eos 中的常见合约类型 2.语言环境局部( locale )变量的使用简介(目的是通过 gettext 软件包 来实现软件的全球化) 3.eos 源代码的一些优 ...

  6. jqfactor_analyzer源代码解读02

    jqfactor_analyzer单因子分析02 首先jqfactor_analyzer源代码解读01中已经得到了self._clean_factor_data(注意binning_by_group参 ...

  7. ML:LGBMClassifier、XGBClassifier和CatBoostClassifier的feature_importances_计算方法源代码解读之详细攻略

    ML:LGBMClassifier.XGBClassifier和CatBoostClassifier的feature_importances_计算方法源代码解读之详细攻略 目录 LGBMClassif ...

  8. 一个不错的源代码语法高亮插件dp.SyntaxHighlighter

    dp.SyntaxHighlighter是一个不错的源代码语法高亮插件,用于你的页面中通过js来动态实现语法高亮显示你的源代码. 使用js脚本来动态进行代码着色的一个明显的好处在于:不会对原始的代码进 ...

  9. linux内核奇遇记之md源代码解读之八阵列同步二

    linux内核奇遇记之md源代码解读之八阵列同步二 转载请注明出处:http://blog.csdn.net/liumangxiong 在上一小节里讲到启动同步线程: 7824 mddev->s ...

最新文章

  1. javabean属性的类型选择包装类还是基本数据类型
  2. 【洛谷3648】[APIO2014] 序列分割(斜率优化DP)
  3. 【牛客网】安置路灯 C++
  4. 苹果电脑删除软件_易我Mac数据恢复软件,解决苹果电脑T2芯片数据恢复难题!
  5. wdcp mysql日志文_mysql的日志简单总结
  6. 中电海康建车联网透明路 探索新型智慧城市商机
  7. Android程序对不同手机屏幕分辨率自适应的总结
  8. NullReferenceException
  9. *******clob问题***********
  10. iPad当Linux电脑显示器,效率App:让iPad变成你电脑的第二显示屏,相当实用!
  11. 使用 HTTPS 加密 Ingress 流量
  12. Android调查问卷的创建与提交
  13. xampp 403 禁止访问 问题解决
  14. vue-cli3的项目 CDN链接报错解决 Uncaught TypeError: Cannot read property 'prototype' of undefined at Object.
  15. [GBase 8s 教程]GBase 8s UNION 操作符
  16. win10设备管理器闪退
  17. 阵列相机-光场相机-AI双目测温相机-红外AI识别相机
  18. Python 经纬度,偏航角,距离计算
  19. 小程序的gridview布局
  20. cbrt c语音_sqrt - [ C语言中文开发手册 ] - 在线原生手册 - php中文网

热门文章

  1. Unity从Assets Store 倒入出错 error refreshing assets
  2. 登陆企业邮箱后怎么设置自动回复?
  3. 第三章 软件构造过程与配置管理
  4. python 定时播放音乐_python – 如何在第一首歌曲结束后安排音频文件在pygame中自动播放?...
  5. ngzorro中表格colspan合并
  6. JavaScript简餐——原型式继承
  7. 针对IRIS数据的特征选择与提取方法研究(模式识别第四次作业)
  8. 奇特的“对自杀说不”许可证
  9. 吃鸡账号显示连接不了服务器,吃鸡购买账号为什么无法连接服务器quest; | 手游网游页游攻略大全...
  10. 判断回文数的三种方法