The architecture of bitshares api

Local api call

The effect of following line. (fc/tests/api.cpp)

    fc::api<calculator> api_calc( std::make_shared<some_calculator>() );

    api<calculator>                                  some_calculator
    +----------------------+                         +----------------------+
    |_vtable               |  _vtable::visit_other(  |                      |
    |   +------------------+  vtable_copy_visitor()) |                      |
    |   | add       -------|------------------------>|add()                 |
    |   | sub       -------|------------------------>|sub()                 |
    |   |                  |                         |                      |
    |   |                  |                         |                      |
    |   |                  |                         |                      |
    +---+------------------+                         +----------------------+

RPC

  • Client:
  1. auto apic = std::make_shared<websocket_api_connection>(*con, MAX_DEPTH);
  2. auto remote_login_api = apic->get_remote_api<login_api>();
  3. auto remote_calc = remote_login_api->get_calc();
  • Server:
  1. auto wsc = std::make_shared<websocket_api_connection>(*c, MAX_DEPTH);
  2. auto login = std::make_shared<login_api>();
  3. login->calc = calc_api;
  4. wsc->register_api(fc::api<login_api>(login));
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容