D-Bus

DBus 對象的意義是什麼?

  • September 18, 2018

儘管閱讀了大量的 DBus 教程,我仍然很難理解整個概念。在我看來,這是迄今為止最好的解釋之一:

http://telepathy.freedesktop.org/doc/book/sect.basics.dbus.html

使用 DBus 的原因是因為我想在不同的程序之間交換數據。在我看來,提供一個伺服器就足夠了,或者,如圖 2-2 所示,提供一個服務就足夠了。該服務通過我與客戶端共享的介面提供了幾種方法。

然後客戶端呼叫一個方法並得到一個答案。

那麼我錯過了什麼?為什麼需要額外的對象?

我想這只是堅持對象和類的 Java 約定。每個對象代表一個實例。真希望有人能證實這一點。

第一個系統比第二個系統有什麼好處?

圖表

不是按照慣例,而是為了促進高級綁定。

本機對象和對象路徑

您的程式框架可能定義了“對象”是什麼樣的;通常帶有基類。例如:java.lang.Object、GObject、QObject、python 的基礎對像或其他。我們稱其為原生對象。

低級 D-Bus 協議,…,不關心本地對象。但是,它提供了一個稱為對象路徑的概念。對象路徑的想法是更高級別的綁定可以命名本機對象實例,並允許遠端應用程序引用它們。

編輯:

可能您可以只使用 API 和 libdbus 中內置的消息匯流排守護程序以避免使用對象,因此您將以呼叫方法並獲得答案的客戶端的通信方式結束。但是請注意,libdbus 旨在作為高級綁定的低級後端,因此 libdbus API 的大部分內容僅對綁定實現有用。

引用自:https://unix.stackexchange.com/questions/138946