EOS 源代码解读 插件-set_program_options
Posted thefist11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EOS 源代码解读 插件-set_program_options相关的知识,希望对你有一定的参考价值。
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 源代码解读 插件-set_program_options的主要内容,如果未能解决你的问题,请参考以下文章