我想创建一个对象并将其导出到 D-Bus。更准确地说,我正在使用 gdbus 并使用 gdbus-codegen 生成对象的代码。
glib 页面上的示例(动物和猫对象)仅显示如何使用对象管理器导出对象。 D-Bus 规范建议仅当确实有多个对象需要管理时才使用 ObjectManager。因为我只有一个对象,所以我不想使用 ObjectManager 的开销。
在我的应用程序(托管对象)中,我已经:
打开连接“g_bus_own_name”
获取总线获取回调:'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/