Alteratorctl: различия между версиями
Мария (обсуждение | вклад) (Новая страница: «Category:Sisyphus Category:Alterator_на_D-Bus {| style="border:1px solid #AAA; background:#F9F9F9; width:200px; margin: 0 0 1em 1em; padding:.2em; text-align:center; float: right;" class=noprint |- |Image:stub.png |- | '''Данная страница находится в разработке'''.<br /><small style="line-height:1.1em;">Эта страница ещё не зак...») |
Мария (обсуждение | вклад) м (→Пример) |
||
(не показаны 4 промежуточные версии этого же участника) | |||
Строка 10: | Строка 10: | ||
<noinclude>[[Категория:Неоконченные страницы|{{PAGENAME}}]]</noinclude> | <noinclude>[[Категория:Неоконченные страницы|{{PAGENAME}}]]</noinclude> | ||
'''alteratorctl''' — | '''alteratorctl''' — консольное приложение, предназначенное для вызова методов интерфейсов, разработанных в рамках [[Alterator#Alterator_на_D-Bus|Alterator на D-Bus]]. | ||
=== Назначение === | |||
Программа ADT предназначена для: | |||
#Cистемных администраторов. | |||
#Опытных пользователей. | |||
'''alteratorctl''' является компонентом новой реализации проекта Альтератор, [[Alterator на D-Bus]]. | |||
=== Модули alteratorctl === | |||
Приложение имеет модульную структуру. Каждый модуль предназначен для работы с определенным интерфейсом объектов на D-Bus. | |||
В настоящий момент реализовано 3 модуля: | |||
* '''manager''' - работает с интерфейсом <tt>ru.basealt.alterator.manager</tt> объекта <tt>/ru/basealt/alterator</tt>. | |||
* '''packages''' - использует интерфейсы <tt>ru.basealt.alterator.rpm1, ru.basealt.alterator.apt1, ru.basealt.alterator.repo</tt> объектов <tt>/ru/basealt/alterator/rpm, /ru/basealt/alterator/apt, /ru/basealt/alterator/repo </tt> соответственно. | |||
* '''components''' - использует интерфейс <tt>ru.basealt.alterator.component1</tt> установленных компонент. | |||
= Установка = | = Установка = | ||
Строка 22: | Строка 34: | ||
# apt-get update | # apt-get update | ||
# apt-get install alteratorctl | # apt-get install alteratorctl | ||
</pre> | |||
Посмотреть список модулей | |||
<pre> | |||
$ alteratorctl -m | |||
</pre> | </pre> | ||
= Запуск = | = Запуск = | ||
=== Запуск модуля === | |||
<pre> | |||
alteratorctl <имя_модуля> <команда_модуля> | |||
</pre> | |||
Команда help отображает возможности модуля. | |||
Например, запуск модуля manager с командой help | |||
<pre> | |||
alteratorctl manager help | |||
</pre> | |||
= Спецификация = | = Спецификация = | ||
Строка 31: | Строка 59: | ||
= Пример = | = Пример = | ||
Опишем типовой внутренний модуль alteratorctl и архитектуру модуля. | |||
'''Внутренний клиентский модуль''' - объект класса, реализующего интерфейс AlteratorCtlModuleInterface по принципу, принятому в GLib для объектно-ориентированного программирования. | |||
'''Интерфейс''' AlteratorCtlModuleInterface предполагает, что в модуле должны быть реализованы 3 метода: | |||
* run_with_args - запуск модуля с параметрами командной строки; | |||
* run - запуск модуля с контекстом; | |||
* print_help - вывод справки об использовании модуля. | |||
=== Регистрация модуля === | |||
Модуль в alteratorctl необходимо зарегистрировать перед его использованием. Регистрация модуля осуществляется вызовом метода | |||
alterator_ctl_register_module() у объекта app типа AlteratorCtlApp в функции main. | |||
В функцию передается указатель на объект типа AlteratorCtlApp, где происходит регистрация, и на структуру типа alterator_ctl_module_t, в которой есть указатели на '''конструкторы''', '''деструкторы''' и '''id модуля'''. | |||
'''Id модуля''' | |||
Id модуля представляет собой указатель на строку, содержащую имя модуля. Именно по имени модуля alteratorctl понимает, какой модуль запустить. Модуль указывается первым после общих ключей alteratorctl в командной строке. | |||
Например, | |||
<pre> | |||
$ alteratorctl -v manager help | |||
где | |||
* -v - общий для модулей параметр | |||
* manager - имя (id) запускаемого модуля | |||
* help - подкоманда для модуля manager. | |||
</pre> | |||
'''Конструктор модуля''' | |||
Конструктор модуля - функция, возвращающая указатель на AlteratorCtlComponentsModule. Конструктор модуля принимает в виде параметров: | |||
*указатель на AlteratorCtlApp, в котором зарегистрирован модуль; | |||
*указатель на структуру типа alteratorctl_arguments_t, которая содержит общие для всех модулей параметры. | |||
'''Деструктор''' | |||
Деструктор - функция в структуре alterator_ctl_module_t. Принимает указатель на экземпляр класса внутреннего модуля, ресурсы которого будут освобождены. | |||
=== Создание контекста модуля === | |||
#'''Метод run_with_args''' | |||
#:Этот метод запускает модуль, передавая ему параметры командной строки. Обычно в этом методе происходит парсинг аргументов командной строки, создается '''контекст модуля'''. И этот контекст передается в метод run. | |||
#'''Метод run''' | |||
#:Метод run принимает контекст модуля и непосредственно выполняет необходимые запросы на D-Bus. Модуль должен быть выполнен таким образом, чтобы его можно было вызвать из другого модуля при инициализации контекста модуля. После выполнения метода run, контекст необходимо освободить специализированной функцией. | |||
#'''Метод print _help''' | |||
#:Выводит в stdout описание команд и параметров командной строки модуля. |
Текущая версия от 13:52, 13 августа 2024
alteratorctl — консольное приложение, предназначенное для вызова методов интерфейсов, разработанных в рамках Alterator на D-Bus.
Назначение
Программа ADT предназначена для:
- Cистемных администраторов.
- Опытных пользователей.
alteratorctl является компонентом новой реализации проекта Альтератор, Alterator на D-Bus.
Модули alteratorctl
Приложение имеет модульную структуру. Каждый модуль предназначен для работы с определенным интерфейсом объектов на D-Bus. В настоящий момент реализовано 3 модуля:
- manager - работает с интерфейсом ru.basealt.alterator.manager объекта /ru/basealt/alterator.
- packages - использует интерфейсы ru.basealt.alterator.rpm1, ru.basealt.alterator.apt1, ru.basealt.alterator.repo объектов /ru/basealt/alterator/rpm, /ru/basealt/alterator/apt, /ru/basealt/alterator/repo соответственно.
- components - использует интерфейс ru.basealt.alterator.component1 установленных компонент.
Установка
Для установки alteratorctl из задания (таски), воспользуйтесь поиском.
Команды установки
# apt-repo add <номер задания> # apt-get update # apt-get install alteratorctl
Посмотреть список модулей
$ alteratorctl -m
Запуск
Запуск модуля
alteratorctl <имя_модуля> <команда_модуля>
Команда help отображает возможности модуля.
Например, запуск модуля manager с командой help
alteratorctl manager help
Спецификация
Документация представлена на странице проекта.
Пример
Опишем типовой внутренний модуль alteratorctl и архитектуру модуля.
Внутренний клиентский модуль - объект класса, реализующего интерфейс AlteratorCtlModuleInterface по принципу, принятому в GLib для объектно-ориентированного программирования.
Интерфейс AlteratorCtlModuleInterface предполагает, что в модуле должны быть реализованы 3 метода:
- run_with_args - запуск модуля с параметрами командной строки;
- run - запуск модуля с контекстом;
- print_help - вывод справки об использовании модуля.
Регистрация модуля
Модуль в alteratorctl необходимо зарегистрировать перед его использованием. Регистрация модуля осуществляется вызовом метода alterator_ctl_register_module() у объекта app типа AlteratorCtlApp в функции main.
В функцию передается указатель на объект типа AlteratorCtlApp, где происходит регистрация, и на структуру типа alterator_ctl_module_t, в которой есть указатели на конструкторы, деструкторы и id модуля.
Id модуля
Id модуля представляет собой указатель на строку, содержащую имя модуля. Именно по имени модуля alteratorctl понимает, какой модуль запустить. Модуль указывается первым после общих ключей alteratorctl в командной строке.
Например,
$ alteratorctl -v manager help где * -v - общий для модулей параметр * manager - имя (id) запускаемого модуля * help - подкоманда для модуля manager.
Конструктор модуля
Конструктор модуля - функция, возвращающая указатель на AlteratorCtlComponentsModule. Конструктор модуля принимает в виде параметров:
- указатель на AlteratorCtlApp, в котором зарегистрирован модуль;
- указатель на структуру типа alteratorctl_arguments_t, которая содержит общие для всех модулей параметры.
Деструктор
Деструктор - функция в структуре alterator_ctl_module_t. Принимает указатель на экземпляр класса внутреннего модуля, ресурсы которого будут освобождены.
Создание контекста модуля
- Метод run_with_args
- Этот метод запускает модуль, передавая ему параметры командной строки. Обычно в этом методе происходит парсинг аргументов командной строки, создается контекст модуля. И этот контекст передается в метод run.
- Метод run
- Метод run принимает контекст модуля и непосредственно выполняет необходимые запросы на D-Bus. Модуль должен быть выполнен таким образом, чтобы его можно было вызвать из другого модуля при инициализации контекста модуля. После выполнения метода run, контекст необходимо освободить специализированной функцией.
- Метод print _help
- Выводит в stdout описание команд и параметров командной строки модуля.