【问题标题】:What is D-Bus Object Tree?什么是 D-Bus 对象树?
【发布时间】:2019-10-05 18:30:33
【问题描述】:

我阅读了很多 D-Bus 文档并理解了各种概念,例如:

1. Object
2. Interface
3. Method
4. Signal
5. Bus Connection
6. System vs Session Daemon

然而,在阅读 ObjectManager::GetManagedObjects 时,我遇到了“对象树”这个概念。我知道,当我在服务对象上调用上述方法时,它会为我提供树中以服务对象为根的所有接口(因为服务对象实现了 D-Bus 的 ObjectManager 接口)。

我希望有人非常清楚地解释当一个对象位于“对象树”中的根对象“下方”时,这究竟意味着什么

  1. 子对象只是父对象的属性吗?
  2. 子对象是否是父对象的子类(就像 OOP)

什么是 D-Bus 对象树?请!

【问题讨论】:

    标签: object glib dbus


    【解决方案1】:

    对象树的语义由提供它的特定服务决定。按照惯例,对象在树中的位置仅由它们的对象路径决定。例如,/org/freedesktop/Accounts/User1000 被认为是/org/freedesktop/Accounts 的“子对象”。但是,除此之外没有正式的关系。

    回答您的具体问题:

    • 子对象只是父对象的属性吗?不,它们是具有自己的一组属性的独立对象。它们与父对象的唯一共同点是对象路径上的前缀。
    • 子对象是父对象的子类吗(就像 OOP 一样)?不,它们可能实现相同的接口、不同的接口或介于两者之间的任何接口。通常,它们会实现不同的接口——父对象实现“manager”接口,子对象实现“item”接口,用于描述项目集合是很常见的。

    【讨论】:

      猜你喜欢
      • 2018-03-16
      • 2015-08-17
      • 2010-10-09
      • 1970-01-01
      • 2012-03-18
      • 2016-02-04
      • 2018-12-19
      • 2012-11-26
      • 2011-04-16
      相关资源
      最近更新 更多