当前位置:   article > 正文

sdbusplus:通过async_method_call异步调用service的method

async_method_call

sdbusplus除了提供以同步的方式调用service的method外,还提供了多种异步调用的方式。

下面的例子通过async_method_call完成异步调用:

  1. //async_call_method.cpp
  2. #include <iostream>
  3. #include <string>
  4. #include <vector>
  5. #include <tuple>
  6. #include <boost/asio.hpp>
  7. #include <sdbusplus/bus.hpp>
  8. #include <sdbusplus/asio/connection.hpp>
  9. #include <sdbusplus/asio/object_server.hpp>
  10. using namespace std;
  11. using namespace sdbusplus;
  12. void doAsyncCallMethod()
  13. {
  14. using return_type = vector<tuple<uint32_t, string, message::object_path>>;
  15. boost::asio::io_context io;
  16. auto b = bus::new_default_system();
  17. auto conn = make_shared<sdbusplus::asio::connection>(io, bus::details::bus_friend::get_busp(b));
  18. conn->async_method_call(
  19. [](boost::system::error_code ec, return_type users) {
  20. if (ec)
  21. {
  22. cout<<"ListUsers r
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/102621?site
推荐阅读
相关标签
  

闽ICP备14008679号