美文网首页EOS开发系列EOS技术
区块链技术EOS开发系列之appbase库

区块链技术EOS开发系列之appbase库

作者: 菠菜期权 | 来源:发表于2017-08-08 15:07 被阅读832次

    appbase位于libraries目录,该库主要实现了一个简单的插件式架构。

    AppBase负责管理插件的生命循环。花了一个小时看了下,整个结构很简单也很精简小巧。感觉都没什么值得分析的。。只谈重点:

    AppBase 利用单例模式实现,用appbase::app() 可以访问,它内部有私有变量boost::asio::io_service。当调用appbase::exec()时,执行了io_service::run(),进入无限循环等待。

    当插件 plugin需要执行IO或者其他异步操作时,需要调用app().get_io_service().post( lambda );

    当需要关闭时,调用appbase::app().quit(),或者发送SIGTERM/SIGINT信号(比如Ctrl +C).

    直接分析例子:

    appbase例子 APPBASE_PLUGIN_REQUIRES

    注意APPBASE_PLUGIN_REQUIRES宏,该宏负责自动管理插件的依赖关系。

    执行下例子,可以根据打印日志追踪插件被app调用的执行流程。

    ./examples/appbase_example --plugin net_plugin

    initialize chain plugin

    initialize net plugin

    starting chain plugin

    starting net plugin

    ^C

    shutdown net plugin

    shutdown chain plugin

    exited cleanly

    over!

    大家可以通过一下方式跟踪关注我:

    github:https://github.com/philsong

    微博:http://weibo.com/bocaicfa

    本文是EOS技术研究系列的第四篇。

    第一篇.Mac下的编译:http://www.jianshu.com/p/f26ee4cf1d4a

    第二篇.eosc命令行工具:http://www.jianshu.com/p/b2db966435d0

    第三篇.appbase库:http://www.jianshu.com/p/b7f0bbe89610

    第四篇.chainbase库与database_plugin插件:http://www.jianshu.com/p/df835b574b52

    区块链技术EOS开发系列之appbase库

    相关文章

      网友评论

      本文标题:区块链技术EOS开发系列之appbase库

      本文链接:https://www.haomeiwen.com/subject/vgvtrxtx.html