【问题标题】:Children of a DBus ObjectDBus 对象的子对象
【发布时间】:2011-03-11 01:31:49
【问题描述】:

我正在尝试编写一个导出用户的 dbus 对象,并在 /path/to/users 创建了我的对象。该对象具有“用户添加”、“用户删除”等信号。

然后,我想在 /path/to/users/[a, b, c] 为用户 a、b 和 c 为每个用户提供访问权限,这将为每个用户提供一些方法。

我的问题是如何“列出”路径 /path/to/users 以返回 a、b、c?

我唯一的选择是从 path.to.users.ListUsers() 返回一个路径数组吗,是否有我可以继承的标准接口,或者某种形式的内省?

谢谢。

注意。我在 python 中这样做,但我认为这个问题与语言无关

【问题讨论】:

    标签: python dbus


    【解决方案1】:

    standard D-Bus Introspectable interface 提供了一种内省对象的方法; data returned by it 包含一个对象列表。

    大多数 D-Bus 绑定,包括 dbus-python,在服务端为您实现 Introspectable;所以你的客户应该能够在/path/to/users 的对象上调用Introspect 方法来查看存在哪些用户对象。我不知道dbus-python 是否为这些数据提供了更好的接口。就我个人而言,我会实现一个ListUsers() 方法,它返回a{oa{sv}}——即对象路径列表,以及关于这些对象的一些属性(例如,相当于在每个对象上调用Properties.GetAll("uk.co.example.MyService.User"))。

    (如果您对未来感兴趣,David Zeuthan 有 proposed 标准化这样的东西。)

    【讨论】:

      猜你喜欢
      • 2011-12-18
      • 1970-01-01
      • 2015-02-28
      • 2015-11-14
      • 1970-01-01
      • 2013-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多