使用gdbus codegen,结构/对象被定义为xml中的完整类型,如下所示
<method name="GetInfo">
<arg direction="out" type="(sib)" name="info"/>
</method>但是,如果在多个地方使用相同的结构,则重复类型定义会有点痛苦,特别是当签名稍后更改时。
<method name="GetInfoList">
<arg direction="out" type="a(sib)" name="info_list"/>
</method>那么,有没有一种方法可以为结构定义别名或东西,这样我们就不必在多个地方维护相同的东西呢?哦,不幸的是,在这种情况下,使用Qt绑定不是一种选择。
致以敬意,
发布于 2017-10-03 16:24:59
那么,有没有一种方法可以为结构定义一个别名或某个东西,这样我们就不需要在多个地方维护相同的东西了?
?
不,没有。这是使用gdbus-codegen的缺点之一。如果你想在你的应用程序接口中为每个D-Bus类型定义一个结构,你需要使用像g_dbus_connection_register_object()这样的函数在没有gdbus-codegen的情况下手动实现你的服务/客户端。
https://stackoverflow.com/questions/33277911
复制相似问题