我正试图将代码形式glib-dbus
迁移到gdbus
在早期的实现中,类结构和实例结构都可以由我定义,并且允许指针作为属性。
struct test {
GObject parent;
some_structure *pointer;
};
我的实例结构有指针,我可以轻松管理。
但是在
gdbus
中,代码是使用gdbus-codegen
生成的-所有类和实例结构都是根据内省XML文件自动生成的。所以我有两个问题
gdbus
使用Gvariant,显然它不支持指针有什么解决办法吗?我可以将内部成员添加到由
gdbus-codegen
创建的实例结构中吗?我试着用谷歌搜索这些东西,但由于我对gobjects和
gdbus
这些东西还不熟悉,所以我不确定。 最佳答案
1)GVariant用于方法参数,而不是例如/app数据指针
(如果我理解正确的话,这就是你要问的问题)
2)对于基于gdbus的服务器实现,通常使用
信号处理程序(如
https://developer.gnome.org/gio/2.36/gdbus-codegen.html)
然后,要提供应用程序数据,只需通过
g_信号_连接用户数据指针。
作为替代方案,可以使用g_object_set_data附加应用程序数据
指向实例的指针,稍后可以使用
对象获取数据。
关于c - 从glib-dbus迁移到gdbus,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16998377/