Skip to content

Controller

VoidZeroNull0 edited this page Jun 19, 2025 · 4 revisions

Содержание

  1. Назначение
  2. Диаграмма взаимодействий
  3. CLI и Contoller
  4. Controller и Daemon

Controller (далее Контроллер) обеспечивает уницифированный программный интерфейс (API) для различных view для взаимодействия с утилитой и, в частности, с Демоном.

flowchart

subgraph FrontEnd["Front-ends"]
    A
    D
    E
end

A[CLI] -->|calls in code| B[Controller]
D[SDK] -..->|network| B[Controller]
E[UI] -..->|network| B[Controller]
B -->|protobuf| C[Daemon]
Loading
  • Коммуникация между CLI и Контроллером происходит в коде - CLI напрямую вызывает методы Контроллера с необходимыми аргументами для общения с Демоном.
  • Коммуникация между Контроллером и Демоном происходит через механизм сокетов.
  • Коммуникация между Контроллером и SDK/UI будет происходить через механизм сетевых протоколов. (В планах на будущее)

Пользователь вводит команду в терминале, и CLI парсит её, сохраняя параметры в соответствующую структуру. Затем структура преобразуется в protobuf-сообщение и передаётся в нужный метод контроллера.

Контроллер и Демон обмениваются данными через Unix-сокет, обеспечивая быструю и безопасную передачу. Контроллер сериализует полученное от CLI protobuf-сообщение, отправляет его Демону и ждёт ответа. Демон выполняет операцию и возвращает результат, после чего соединение закрывается.

Clone this wiki locally