什么是D-Bus对象树?

时间:2019-05-18 21:48:28

标签: object glib dbus

我已经阅读了很多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对象树?拜托!

1 个答案:

答案 0 :(得分:2)

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

要回答您的特定问题:

  • 子对象只是父对象的属性吗?不,它们是具有各自属性集的独立对象。他们与父代唯一的共同点是对象路径上的前缀。
  • 子对象是否将父对象子类化(就像OOP一样)?否。它们可以实现相同的接口,不同的接口或两者之间的任何接口。通常,它们将实现不同的接口-父对象实现“经理”接口,子对象实现“ item”接口来描述物品集合是很常见的。