dbus - D总线: Export object without ObjectManager

标签 dbus

我想创建一个对象并将其导出到 D-Bus。更准确地说,我正在使用 gdbus 并使用 gdbus-codegen 生成对象的代码。

glib 页面上的示例(动物和猫对象)仅显示如何使用对象管理器导出对象。 D-Bus 规范建议仅当确实有多个对象需要管理时才使用 ObjectManager。因为我只有一个对象,所以我不想使用 ObjectManager 的开销。

在我的应用程序(托管对象)中,我已经:

  1. 打开连接“g_bus_own_name”

  2. 获取总线获取回调:'on_bus_acquired'

我现在应该做什么来创建和导出我的对象? 当我调用“..._sculpt_new()”时,我认为我正在创建一个新的“服务端”对象,这是正确的吗? 'g_dbus_connection_register_object' 是正确的方法吗?如果是的话,有什么好的例子我必须传递的所有参数在哪里?

我希望有人能帮助我:)

最诚挚的问候 让-皮埃尔

最佳答案

我认为回复已经太晚了,但对于其他不想回复的人可能有用 使用GDBusObjectManager .

无需注册使用 ..._skeleton_new(); 创建的接口(interface)对象,只需使用 g_dbus_interface_skeleton_export(); 导出它

我和你有同样的要求,并且对注册与否感到困惑。

最后通过一些代码分析发现g_dbus_interface_skeleton_export() 内部注册接口(interface)对象。

谢谢 阿鲁恩

关于dbus - D总线: Export object without ObjectManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9497871/

相关文章:

python - 为什么这个 python 脚本只能在 Ubuntu 12.04 上的 IDLE 下工作?

scala - dbus 库中哪里缺少 UnixSocket 类?

c++ - NetworkManager 和 Qt 问题

linux - 使用 Rust DBUS 库时不满足 trait bound `dbus::arg::Get`

c - Dbus-API - 在 c/Linux 中获取服务链接错误?

python gobject.mainloop 吞噬信号事件

c - dbus 如何重新连接到新的 session 总线守护进程

linux - 通过 dbus 将 Ctrl-L 发送到终端仿真器

c - DBus Glib 发送信号 - 没有发出信号

c++ - BlueZ5 : Event when inbound pairing is complete