Alterator D-Bus bridge (deprecated)
Правила написания xml файла описывающего модуль alterator'а для сервиса alterator-dbus.
При установке пакета с модулем alterator'а xml файл помещается в /usr/share/dbus-1/interfaces/.
Пример названия xml файла: 'ru.basealt.alterator.update-kernel.xml'. Последняя часть это название модуля alterator'a - 'update-kernel'.
Методы, которые предоставляет backend модуля alterator'а описываются в тегах method.
Пример:
<method name="list__installed_modules">
<arg name="instkernel" type="s" direction="in" />
<arg name="name" type="as" direction="out" />
<arg name="label" type="as" direction="out" />
</method>
Имя метода состоит из двух частей, которые разделены двойным подчёркиванием. Первая часть это префикс, он означает action - значение, которое передаётся backend'у в переменной in_action. Вторая часть это само имя, то которое передаётся backend'у в переменной in__objects.
Аргументы метода описываются в тегах 'arg' и могут иметь один из трёх типов: "s" - строка, "as" - массив строк, "b" - логический тип (boolean). Атрибут name - это имя аргумента, то что используется в backend'е. Атрибут direction может принимать значение "in" для аргументов отправляемых в backend и "out" для аргументов возвращаемых из backend'а.
Тип аргумента "as" используется в следующих случаях:
1)Возврат из backend'а значений для элементов checklist и т.п. (write_enum_item $var $var).
В этом случае возвращается две последовательности (два массива) переменных, одна с именем name, другая c именем value. Для каждой из них создаётся аргумент с типом "as".
2)write_enum - аргументы создаются для каждого ключа и каждой метки.
3)write_table_item <параметр1> <значение1> <параметр2> <значение2> ... -
аргументы создаются для каждого параметра. Имя аргумента = имя параметра. Пример:
<arg name="параметр1" type="as" direction="out" />
<arg name="параметр2" type="as" direction="out" />
<arg name="параметр3" type="as" direction="out" />
4)Выделенные элементы для checklistbox. Они передаются из/в backend списком
представленным строкой с разделителем ';', например "a;b;c;d". К имени такого аргумента добавляется префикс checklist#. Пример:
<method name="read__apt_inst_modules">
<arg name="flavour" type="s" direction="in" />
<arg name="checklist#instmodlist" type="as" direction="out" />
</method>
Тип аргумента "s" используется для отправки и получения строки (write_string_param).
Тип аргумента "b" используется для отправки и получения значения переменной типа boolean (write_bool_param).