gpt4 book ai didi

c - 从 glib-dbus 迁移到 gdbus

转载 作者:太空宇宙 更新时间:2023-11-03 23:52:11 27 4
gpt4 key购买 nike

我正在尝试将我的代码从 glib-dbus 迁移到 gdbus。在早期的实现中,类结构和实例结构都可以由我定义,并且允许指针作为属性。

struct test {
GObject parent;
some_structure *pointer;
};

我的实例结构有指针,我可以轻松管理。

但在 gdbus 中,代码是使用 gdbus-codegen 生成的 - 所有类和实例结构都是根据内省(introspection) XML 文件自动生成的。

所以我有两个问题

  1. gdbus 使用 Gvariant,它明确提到它不支持指针。有什么解决方法吗?
  2. 我可以将内部成员添加到由 gdbus-codegen 创建的实例结构吗?

我尝试用谷歌搜索这些东西,但由于我对 gobjects 和 gdbus 东西不熟悉,所以我不确定。

最佳答案

1) GVariant 用于方法参数,而不是实例/应用程序数据指针(如果我理解正确的话,你问的是什么)

2) 对于基于 gdbus 的服务器实现,您通常会使用信号处理程序(如中所述 https://developer.gnome.org/gio/2.36/gdbus-codegen.html )

然后,要提供应用程序数据,您只需将其传递给g_signal_connect 用户数据指针。

作为替代方案,可以使用 g_object_set_data 附加应用程序数据指向您的实例的指针,稍后您可以使用g_object_get_data。

关于c - 从 glib-dbus 迁移到 gdbus,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16998377/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com