我正在尝试将我的代码从glib-dbus迁移到gdbus。在早期的实现中,类结构和实例结构都可以由我来定义,指针被允许作为属性。
struct test {
GObject parent;
some_structure *pointer;
};我的实例结构有指针,我可以轻松地管理这些指针。
但是在gdbus中,代码是使用gdbus-codegen生成的--所有的类和实例结构都是根据内省XML文件自动生成的。
所以我有两个问题
gdbus使用uses,这清楚地提到它不支持指针。有什么解决办法吗?gdbus-codegen创建的实例结构中吗?我试着用谷歌搜索这些东西,但由于我刚开始使用谷歌和gdbus的东西,所以我不太确定。
发布于 2014-01-01 17:08:48
1) GVariant用于方法参数,而不是例如/app-数据指针(这是您问我是否正确理解的)。
2)对于基于gdbus的服务器实现,通常使用信号处理程序(如https://developer.gnome.org/gio/2.36/gdbus-codegen.html中所述)。
然后,为了提供应用程序数据,您可以简单地通过g_signal_connect用户数据指针传递.
作为另一种选择,可以使用g_object_set_data将应用程序数据指针附加到实例,然后可以使用g_object_get_data检索该实例。
https://stackoverflow.com/questions/16998377
复制相似问题