D-BUSマニュアル
https://dbus.freedesktop.org/doc/dbus-tutorial.html、Red Hat、Inc <hp@pobox.com>
David Wheeler、John Palmieri、Red Hat、Inc。<johnp@redhat.com>
Colin Walters、Red Hat、Inc。<walters@redhat.com>
バージョン0.5.0
I.V. Plastov、plastov.igor @ yandex.ruによる翻訳
開発中のドキュメント
このチュートリアルは不完全です。おそらくいくつかの有用な情報が含まれていますが、多くのギャップもあります。現在、D-Bus仕様、Doxygenリファレンスドキュメントを参照し、他のアプリケーションがD-Busを使用する方法の例をいくつか確認する必要があります。
マニュアルの改善は大歓迎です。訂正や提案をメーリングリストに送信してください。D-Busバインディングを作成する場合は、バインディングのチュートリアルセクションを追加してください。少なくとも、いくつかの例を含む小さなセクションを追加してください。
D-Busとは何ですか?
D-Busは、プロセス間通信(IPC)システムです。アーキテクチャ的には、いくつかのレイヤーがあります。
2つのアプリケーションが相互に接続してメッセージを交換できるようにするlibdbusライブラリ。
, libdbus, . .
. , libdbus-glib libdbus-qt. , Python. - API-, , D-Bus. libdbus . API libdbus .
libdbus -, raw-. , , . , , . libdbus ( - ) , .
. - , libdbus. , , . .
. - , , sendmail Apache. , , . . .
. IPC , .
D-Bus
, - « » «»: CORBA, DCE, DCOM, DCOP, XML-RPC, SOAP, MBUS, Internet Communications Engine (ICE) . . D-Bus :
; ( ).
, .
GNOME KDE IPC, CORBA DCOP. D-Bus , , . D-Bus ; FAQ IPC.
, , Linux Hotplug:
Linux , - « ». , , . , , : , .
« », ( ) ( ). : , . ( , , .) Linux . D-Bus .
D-Bus , , . , IPC:
, ( X Window System);
;
- , «» ;
, / / .
DCOP, KDE .
.
, D-Bus. , , GLib, Qt Python.
, .
/
, , , « »; . : java.lang.Object, GObject, QObject, Python - . .
D-Bus API libdbus . , . , .
, ,
/org/kde/kspread/sheet/3/cells/4/5. - ,
/com/mycompany/c5yo817y0c1y1c5b, .
- (,
/org/kde). .
. - . - , , ( « ») ( « »). - ; .
, , «Frobate» «OnClicked».
. , GLib, Qt Java. .
D‑Bus ,
org.freedesktop.Introspectable. , , Java C++.
- - , . D‑Bus API , , . . , -, DBus, , .
:
Message message = new Message("/remote/object/path", "MethodName", arg1, arg2);
Connection connection = getBusConnection();
connection.send(message);
Message reply = connection.waitForReply(message);
if (reply.isError()) {
} else {
Object returnValue = reply.getReturnValue();
}:
Proxy proxy = new Proxy(getBusConnection(), "/remote/object/path");
Object returnValue = proxy.MethodName(arg1, arg2);, , . ‘:’ (). — , . “:34–907”. , .
, , .
(well-known) . ,
com.mycompany.TextEditor. ,
/com/mycompany/TextFileManager,
org.freedesktop.FileHandler., .
IP-, . ,
com.mycompany.TextEditor
:34-907,
mycompany.com-
192.168.0.5, , . . ( ), . , , . , .
«» . , , ,
com.mycompany.TextEditor, , .
, D-Bus, , . ; . , . - .
, , . , .
D-Bus , , . ,
unix:path=/tmp/abcdef, UNIX
/tmp/abcdef. TCP/IP , D-Bus.
D-Bus libdbus , . , UNIX ( ).
D-Bus , , , — , . .
, , :
, , — . , .
-> [ ] -> -> -> , ; DCOP , . , D-Bus , , , .
D-Bus , . , .
4 :
;
;
, ;
— , ( ). « ».
: , .
, , , . , — . , , . — , , . , «i» «32- », «ii» , 32- .
D-Bus ; , A B, , B A. , . , , .
. , .
D-Bus :
, . , -, .
API , .
: , , , , , , , .
.
. , . .
. API . API , , (GObject, java.lang.Object, QObject, . .), .
, .
, , , . , . - .
. , , , . ; , , . , .
D‑Bus , . — . ( ), , « ». (. #), .
( ) . « » — . , .
D‑Bus :
. API , , .
, , , , ; .
« », , . .
, . .
, , , ; , -. API , .
D-Bus
org.freedesktop.DBus.IntrospectableIntrospect, XML. XML , . . D-Bus .
GLib API
GLib API D-Bus — GDBus, GLib 2.26. , , GDBus . GLib :
https://developer.gnome.org/gio/stable/gdbus-convenience.html
API, dbus-glib. . dbus-glib GDBus.
Python API
Python API, dbus-python, dbus-python
http://dbus.freedesktop.org/doc/dbus-python/doc/tutorial.html
(dbus-pythonソースディストリビューションのpython-documenttilsでビルドされている場合は、doc /tutorial.txtおよびdoc / tutorial.htmlでも利用できます)。
Qt API
libdbusのQtバインディングであるQtDBusは、Qt4.2以降に配布されています。これはここでは文書化されていません。QtDBusの使用方法の詳細については、Qtのドキュメントを参照してください。