sdbusplus:method同步调用通用函数

dbus的method操作的方式也比较类似,可以尝试封装成通用函数:

//dbus_call.hpp
#pragma once

#include 
#include 
#include 
#include 
#include 
#include 
#include 

using namespace sdbusplus;

template
std::tuple dbusCall(const std::string& service, const std::string& obj, const std::string& interFace, const std::string& method, T& t, Args... args)
{
    std::string errMsg = "ok";
    int ret = 0;
    boost::asio::io_context io;
    auto conn = make_shared(io);

    auto methodCall = conn->new_method_call(
        service.c_str(), obj.c_str(), interFace.c_str(), method.c_str());

    if(sizeof...(args) > 0)
    {
        methodCall.append(args...);
    }
    t

你可能感兴趣的:(Sdbusplus,linux)