上篇文章以文件分类简单的介绍了eos代码的架构,由于eosiod在整个工程中是较为重要的,接下来的例子中我们将以eosiod为主线进行相关内容的分析和探讨,今天我们主要看一下eosiod的初始化相关内容。
在所有的初始化之前,eosiod首先会进行版本的设置,通过下面一行代码即可实现:
在版本设置完成之后开始进行eosiod的初始化,如下:app().set_version(eosio::eosiod::config::version);
if(!app().initialize<chain_plugin, http_plugin, net_plugin>(argc, argv)) return -1;
通过逐步跳转,我们来到appbase中的:
在initialize_impl开始会首先执行set_program_options(),即构建选项器。bool application::initialize_impl(int argc, char** argv, vector<abstract_plugin*> autostart_plugins)
在这里我们要简单的介绍下program options,program options是一系列pair<name,value>组成的选项列表,它允许程序通过命令行或配置文件来读取这些参数选项,eosiod的很多操作就是通过