SVCS - Русская документация
Загрузка...
Поиск...
Не найдено
Класс svcs::server::cli::ServerBaseCommandabstract

Абстрактный базовый класс для всех команд администрирования сервера. Подробнее...

#include <ServerBaseCommand.hxx>

Граф наследования:svcs::server::cli::ServerBaseCommand:
svcs::cli::ICommand svcs::server::cli::HubCommand svcs::server::cli::RepoCommand

Открытые члены

 ServerBaseCommand (std::shared_ptr< ISubject > event_bus, std::shared_ptr< RepositoryManager > repo_manager)
 Конструирует ServerBaseCommand с необходимыми зависимостями.
virtual ~ServerBaseCommand ()=default
 Виртуальный деструктор для корректной очистки производных классов.
virtual std::string getName () const override=0
 Чисто виртуальный метод для получения имени команды.
virtual std::string getDescription () const override=0
 Чисто виртуальный метод для получения описания команды.
virtual std::string getUsage () const override=0
 Чисто виртуальный метод для получения синтаксиса использования команды.
virtual bool execute (const std::vector< std::string > &args) override=0
 Чисто виртуальный метод для выполнения логики команды.
virtual void showHelp () const override=0
 Чисто виртуальный метод для отображения подробной справочной информации.
Открытые члены унаследованные от svcs::cli::ICommand
virtual ~ICommand ()=default
 Виртуальный деструктор.

Защищенные члены

void notifyInfo (const std::string &message) const
 Отправляет информационное уведомление через шину событий.
void notifyError (const std::string &message) const
 Отправляет уведомление об ошибке через шину событий.

Защищенные данные

std::shared_ptr< ISubjectevent_bus_
 Общий указатель на шину событий для системных уведомлений.
std::shared_ptr< RepositoryManagerrepo_manager_
 Общий указатель на менеджер репозиториев для операций с репозиториями.

Подробное описание

Абстрактный базовый класс для всех команд администрирования сервера.

Наследуется от ICommand и предоставляет общую инфраструктуру для операций управления сервером, включая уведомления о событиях и управление репозиториями. Все серверные команды должны наследоваться от этого класса.

Конструктор(ы)

◆ ServerBaseCommand()

svcs::server::cli::ServerBaseCommand::ServerBaseCommand ( std::shared_ptr< ISubject > event_bus,
std::shared_ptr< RepositoryManager > repo_manager )

Конструирует ServerBaseCommand с необходимыми зависимостями.

Аргументы
event_busОбщий указатель на шину событий для системных уведомлений.
repo_managerОбщий указатель на менеджер репозиториев для операций с репозиториями.

Методы

◆ execute()

virtual bool svcs::server::cli::ServerBaseCommand::execute ( const std::vector< std::string > & args)
overridepure virtual

Чисто виртуальный метод для выполнения логики команды.

Аргументы
argsВектор строковых аргументов, переданных команде.
Возвращает
true если выполнение команды было успешным, false в противном случае.

Должен быть реализован производными классами для предоставления специфичной для команды логики.

Замещает svcs::cli::ICommand.

Замещается в svcs::server::cli::HubCommand и svcs::server::cli::RepoCommand.

◆ getDescription()

virtual std::string svcs::server::cli::ServerBaseCommand::getDescription ( ) const
nodiscardoverridepure virtual

Чисто виртуальный метод для получения описания команды.

Возвращает
Описание команды в виде строки.

Должен быть реализован производными классами для описания функциональности команды.

Замещает svcs::cli::ICommand.

Замещается в svcs::server::cli::HubCommand и svcs::server::cli::RepoCommand.

◆ getName()

virtual std::string svcs::server::cli::ServerBaseCommand::getName ( ) const
nodiscardoverridepure virtual

Чисто виртуальный метод для получения имени команды.

Возвращает
Имя команды в виде строки.

Должен быть реализован производными классами для предоставления уникального идентификатора команды.

Замещает svcs::cli::ICommand.

Замещается в svcs::server::cli::HubCommand и svcs::server::cli::RepoCommand.

◆ getUsage()

virtual std::string svcs::server::cli::ServerBaseCommand::getUsage ( ) const
nodiscardoverridepure virtual

Чисто виртуальный метод для получения синтаксиса использования команды.

Возвращает
Синтаксис использования команды в виде строки.

Должен быть реализован производными классами для отображения правильного использования команды.

Замещает svcs::cli::ICommand.

Замещается в svcs::server::cli::HubCommand и svcs::server::cli::RepoCommand.

◆ notifyError()

void svcs::server::cli::ServerBaseCommand::notifyError ( const std::string & message) const
protected

Отправляет уведомление об ошибке через шину событий.

Аргументы
messageСообщение об ошибке для отправки.

Вспомогательный метод для производных классов для отправки уведомлений об ошибках.

◆ notifyInfo()

void svcs::server::cli::ServerBaseCommand::notifyInfo ( const std::string & message) const
protected

Отправляет информационное уведомление через шину событий.

Аргументы
messageИнформационное сообщение для отправки.

Вспомогательный метод для производных классов для отправки информационных уведомлений.

◆ showHelp()

virtual void svcs::server::cli::ServerBaseCommand::showHelp ( ) const
overridepure virtual

Чисто виртуальный метод для отображения подробной справочной информации.

Должен быть реализован производными классами для отображения специфичной для команды справки.

Замещает svcs::cli::ICommand.

Замещается в svcs::server::cli::HubCommand и svcs::server::cli::RepoCommand.


Объявления и описания членов классов находятся в файлах: