D-BUS开发人员的介绍性文章的翻译

D-BUS手册

https://dbus.freedesktop.org/doc/dbus-tutorial.html,Red Hat,Inc <hp@pobox.com>

戴维·惠勒,约翰·帕尔梅里,红帽公司 <johnp@redhat.com>

红帽公司的Colin Walters <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)系统。从体系结构上讲,它具有多个层次:

  • 一个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.Introspectable

Introspect, 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.txtdoc / tutorial.html中使用)。

Qt API

自Qt 4.2起,已分发libdbus QtDBus的Qt绑定此处未记录。有关如何使用QtDBus的详细信息,请参阅Qt文档。

 http://qt-project.org/doc/qt-5/qtdbus-index.html




All Articles