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

Базовый класс для всех CLI команд. Подробнее...

#include <BaseCommand.hxx>

Граф наследования:svcs::cli::BaseCommand:
svcs::cli::ICommand

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

 BaseCommand (std::shared_ptr< ISubject > subject)
 Конструктор.
 ~BaseCommand () override=default
 Виртуальный деструктор.
virtual std::string getName () const override=0
 Получает имя команды (например, "init", "commit").
virtual std::string getDescription () const override=0
 Получает краткое описание команды.
virtual std::string getUsage () const override=0
 Получает синтаксис использования команды.
void showHelp () const override
 Отображает справку по команде (использование и описание).
void logDebug (const std::string &message) const
 Генерирует событие отладочной информации (DEBUG_MESSAGE).
void logInfo (const std::string &message) const
 Генерирует общее информационное событие (GENERAL_INFO).
void logError (const std::string &message) const
 Генерирует событие ошибки выполнения (RUNTIME_ERROR).
void logSuccess (const std::string &message) const
 Генерирует событие успешного выполнения (GENERAL_INFO с префиксом SUCCESS).
void logWarning (const std::string &message) const
 Генерирует событие предупреждения (RUNTIME_ERROR с префиксом WARNING).
Открытые члены унаследованные от svcs::cli::ICommand
virtual ~ICommand ()=default
 Виртуальный деструктор.
virtual bool execute (const std::vector< std::string > &args)=0
 Выполняет основную логику команды.

Защищенные статические члены

static std::shared_ptr< RepositoryfindRepository ()
 Находит существующий репозиторий в текущей или родительских директориях.
static std::shared_ptr< RepositorycreateRepository (const std::string &path=".")
 Создает новый экземпляр репозитория.

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

std::shared_ptr< ISubjecteventSubject_
 Экземпляр субъекта событий (шины событий).

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

Базовый класс для всех CLI команд.

Предоставляет общую инфраструктуру для взаимодействия с системой шины событий (ISubject) и служебные методы для работы с репозиторием. Отвечает за логирование через шину событий.

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

◆ BaseCommand()

svcs::cli::BaseCommand::BaseCommand ( std::shared_ptr< ISubject > subject)
inline

Конструктор.

Аргументы
subjectЭкземпляр ISubject (шины событий), который будет использоваться для генерации событий и логов.

◆ ~BaseCommand()

svcs::cli::BaseCommand::~BaseCommand ( )
overridedefault

Виртуальный деструктор.

Обеспечивает корректную очистку производных классов.

Методы

◆ createRepository()

std::shared_ptr< Repository > svcs::cli::BaseCommand::createRepository ( const std::string & path = ".")
inlinestaticprotected

Создает новый экземпляр репозитория.

Аргументы
pathПуть, где должен быть создан репозиторий (по умолчанию '.').
Возвращает
Умный указатель на новый Repository.

◆ findRepository()

std::shared_ptr< Repository > svcs::cli::BaseCommand::findRepository ( )
inlinestaticprotected

Находит существующий репозиторий в текущей или родительских директориях.

Возвращает
Умный указатель на найденный Repository или nullptr если репозиторий не найден.

◆ getDescription()

virtual std::string svcs::cli::BaseCommand::getDescription ( ) const
overridepure virtual

Получает краткое описание команды.

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

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

◆ getName()

virtual std::string svcs::cli::BaseCommand::getName ( ) const
overridepure virtual

Получает имя команды (например, "init", "commit").

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

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

◆ getUsage()

virtual std::string svcs::cli::BaseCommand::getUsage ( ) const
overridepure virtual

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

Возвращает
Строка с синтаксисом (например, "vcs init <path>").

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

◆ logDebug()

void svcs::cli::BaseCommand::logDebug ( const std::string & message) const
inline

Генерирует событие отладочной информации (DEBUG_MESSAGE).

Аргументы
messageТекст отладочного сообщения.

◆ logError()

void svcs::cli::BaseCommand::logError ( const std::string & message) const
inline

Генерирует событие ошибки выполнения (RUNTIME_ERROR).

Аргументы
messageТекст сообщения об ошибке.

◆ logInfo()

void svcs::cli::BaseCommand::logInfo ( const std::string & message) const
inline

Генерирует общее информационное событие (GENERAL_INFO).

Аргументы
messageТекст информационного сообщения.

◆ logSuccess()

void svcs::cli::BaseCommand::logSuccess ( const std::string & message) const
inline

Генерирует событие успешного выполнения (GENERAL_INFO с префиксом SUCCESS).

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

◆ logWarning()

void svcs::cli::BaseCommand::logWarning ( const std::string & message) const
inline

Генерирует событие предупреждения (RUNTIME_ERROR с префиксом WARNING).

Аргументы
messageТекст сообщения-предупреждения.

◆ showHelp()

void svcs::cli::BaseCommand::showHelp ( ) const
inlineoverridevirtual

Отображает справку по команде (использование и описание).

Этот метод выводит информацию непосредственно в стандартный поток вывода (stdout).

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

Данные класса

◆ eventSubject_

std::shared_ptr<ISubject> svcs::cli::BaseCommand::eventSubject_
protected

Экземпляр субъекта событий (шины событий).

Используется для генерации событий (логов), которые будут получены наблюдателями, такими как Logger.


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