D-Bus:不使用ObjectManager导出对象

时间:2012-02-29 11:04:02

标签: dbus

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

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

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

  1. 打开连接'g_bus_own_name'

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

  3. 我现在该怎么做,创建和导出我的对象? 当我打电话给“... _skeleton_new()”时,我想我正在创建一个新的“服务端”对象,这是正确的吗? “g_dbus_connection_register_object”是正确的方法吗?如果是,那么我必须通过的所有参数都有一个很好的例子吗?

    我希望有人可以帮助我:)。

    祝你好运 让 - 皮埃尔

1 个答案:

答案 0 :(得分:2)

我认为对于回应来说太晚了,但可能对其他不想做的人有用 使用GDBusObjectManager

无需注册使用..._skeleton_new();创建的界面对象,只需使用g_dbus_interface_skeleton_export();

将其导出即可

我和你有同样的要求,并且与是否注册相混淆。

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

由于 AruN