【发布时间】:2022-02-08 21:42:55
【问题描述】:
我正在阅读D-Bus API Design Guidelines:
公共 API 的接口文件应该安装到 $(datadir)/dbus-1/interfaces 以便其他服务可以加载它们。
好的...为了了解这些接口文件是如何工作的,我打开文件/usr/share/dbus-1/interfaces/org.gnome.Shell.Screenshot.xml(我使用的是Ubuntu 20.04)
<node>
<interface name="org.gnome.Shell.Screenshot">
...
<method name="PickColor">
<arg type="a{sv}" direction="out" name="result"/>
</method>
好吧,我看到了接口名称,我看到了方法名称,但这还不够。如果我想使用dbus-send调用这个方法
$ dbus-send --print-reply --dest=<service.name> </path/to/object> org.gnome.Shell.Screenshot.PickColor
我需要<service.name> 和<path/to/object>,这是xml-文件不提供的。
问题是:如果这个文件没有提供有关服务接口的完整信息,它的目的是什么? dbus-daemon 或任何其他程序使用它吗?真的需要这样的文件吗?我是否应该得出一个结论,即不提供对象 in 路径的 xml 文件是不完整的?此类文件是否还应提及服务已知名称(在本例中为org.gnome.Shell.Screenshot)?
【问题讨论】: