Базовый класс для всех CLI команд.
Подробнее...
#include <BaseCommand.hxx>
|
| | 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 |
| | Выполняет основную логику команды.
|
Базовый класс для всех 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 |
◆ 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.
Объявления и описания членов класса находятся в файле: