在dbus-cxx中调用方法后接收多个参数

时间:2016-08-15 13:50:35

标签: c++ dbus

我使用dbus-cxx通过dbus进行方法调用。现在有一些方法返回多个参数,我无法弄清楚如何在第一个参数旁边接收任何参数。

我初始化代理方法:

DBus::MethodProxy<int>& info_proxy = *(object->create_method<int>(ServerName, "Info"));

当我获取返回值时,它只是这种情况下三个可能输出的第一个值。

描述方法的XML如下所示:

<method name="Info">
    <arg type="i" direction="out" name="rate"/>
    <arg type="i" direction="out" name="freq"/>
    <arg type="i" direction="out" name="nch"/>
</method>

从QDBusViewer中调用方法会传递输出Arguments: 1813099, 44100, 2,因此它提供了三个输出,但我无法弄清楚如何访问这些输出。

编辑:我通过使用dbus-cxx-xml2cpp工具实现了它,我得到了一个使用DBus::CallMessage而不是DBus::MethodProxy的方法定义。生成的答复包含方法返回的所有参数。

1 个答案:

答案 0 :(得分:0)

我通过使用dbus-cxx-xml2cpp工具实现了它,我得到了一个使用DBus::CallMessage而不是DBus::MethodProxy的方法定义。生成的答复包含方法返回的所有参数。