102 return std::make_shared<Repository>(path);
137 virtual std::string
getName()
const override = 0;
159 virtual std::string
getUsage()
const override = 0;
171 std::cout <<
"Usage: " <<
getUsage() << std::endl;
184 void logDebug(
const std::string& message)
const {
200 void logInfo(
const std::string& message)
const {
215 void logError(
const std::string& message)
const {
230 void logSuccess(
const std::string& message)
const {
245 void logWarning(
const std::string& message)
const {
Объявление интерфейса ICommand для всех исполняемых CLI команд.
Управляет всем репозиторием системы контроля версий, действует как Subject для логирования событий и ...
BaseCommand(std::shared_ptr< ISubject > subject)
Конструктор.
Определения BaseCommand.hxx:71
static std::shared_ptr< Repository > createRepository(const std::string &path=".")
Создает новый экземпляр репозитория.
Определения BaseCommand.hxx:62
void logSuccess(const std::string &message) const
Генерирует событие успешного выполнения (GENERAL_INFO с префиксом SUCCESS).
Определения BaseCommand.hxx:141
virtual std::string getUsage() const override=0
Получает синтаксис использования команды.
virtual std::string getDescription() const override=0
Получает краткое описание команды.
virtual std::string getName() const override=0
Получает имя команды (например, "init", "commit").
void logDebug(const std::string &message) const
Генерирует событие отладочной информации (DEBUG_MESSAGE).
Определения BaseCommand.hxx:110
void logInfo(const std::string &message) const
Генерирует общее информационное событие (GENERAL_INFO).
Определения BaseCommand.hxx:121
void showHelp() const override
Отображает справку по команде (использование и описание).
Определения BaseCommand.hxx:101
void logError(const std::string &message) const
Генерирует событие ошибки выполнения (RUNTIME_ERROR).
Определения BaseCommand.hxx:131
static std::shared_ptr< Repository > findRepository()
Находит существующий репозиторий в текущей или родительских директориях.
Определения BaseCommand.hxx:53
std::shared_ptr< ISubject > eventSubject_
Экземпляр субъекта событий (шины событий).
Определения BaseCommand.hxx:47
void logWarning(const std::string &message) const
Генерирует событие предупреждения (RUNTIME_ERROR с префиксом WARNING).
Определения BaseCommand.hxx:151
~BaseCommand() override=default
Виртуальный деструктор.
Интерфейс (абстрактный базовый класс) для всех команд, выполняемых через CLI.
Определения ICommand.hxx:31
static std::shared_ptr< Repository > findRepository(const std::string &start_path=".")
Статически ищет существующий репозиторий, начиная с заданного пути и поднимаясь вверх.
Определения Repository.cxx:166
Интерфейс Subject (Издатель) (Абстрактный Базовый Класс).
Определения ISubject.hxx:35
Компоненты командной строки и реализации команд.
Основные структуры данных СКВ и модель объектов.
@ DEBUG_MESSAGE
Отладочное сообщение для целей разработки.
Определения Event.hxx:90
@ RUNTIME_ERROR
Ошибка выполнения, которая может позволить продолжить выполнение.
Определения Event.hxx:40
@ GENERAL_INFO
Общее информационное сообщение.
Определения Event.hxx:80