29#include <unordered_set>
85 std::shared_ptr<RepositoryManager> repo_manager);
127 void registerFactory(std::function<std::unique_ptr<ICommand>(
const std::string&)> factory);
144 std::unique_ptr<ICommand>
createCommand(
const std::string& name)
const;
227 std::shared_ptr<ISubject> event_bus_;
236 std::shared_ptr<RepositoryManager> repo_manager_;
247 std::vector<std::function<std::unique_ptr<ICommand>(
const std::string&)>> factories_;
Объявление интерфейса ICommand для всех исполняемых CLI команд.
Определяет интерфейс для компонента Subject (Издатель) шаблона Observer.
Declaration of the RepositoryManager class, managing all repository-level file operations.
void registerFactory(std::function< std::unique_ptr< ICommand >(const std::string &)> factory)
Регистрирует фабричную функцию для создания команд.
Определения CompositeCommandFactory.cxx:41
CompositeCommandFactory & operator=(const CompositeCommandFactory &)=delete
Удаленный оператор присваивания.
size_t getFactoryCount() const
Получает количество зарегистрированных фабрик.
Определения CompositeCommandFactory.cxx:110
bool commandExists(const std::string &name) const
Проверяет, существует ли команда с заданным именем.
Определения CompositeCommandFactory.cxx:106
~CompositeCommandFactory()=default
Деструктор по умолчанию.
void showCommandHelp(const std::string &name) const
Отображает подробную справку для команды.
Определения CompositeCommandFactory.cxx:96
std::vector< std::string > getAllCommandNames() const
Получает имена всех доступных команд из всех фабрик.
Определения CompositeCommandFactory.cxx:55
std::unique_ptr< ICommand > createCommand(const std::string &name) const
Создает команду по имени с использованием зарегистрированных фабрик.
Определения CompositeCommandFactory.cxx:45
std::string getCommandDescription(const std::string &name) const
Получает описание для команды.
Определения CompositeCommandFactory.cxx:88
CompositeCommandFactory(std::shared_ptr< ISubject > event_bus, std::shared_ptr< RepositoryManager > repo_manager)
Конструирует CompositeCommandFactory с необходимыми зависимостями.
Определения CompositeCommandFactory.cxx:25
Компоненты командной строки и реализации команд.
Основные структуры данных СКВ и модель объектов.
Компоненты интеграции системы и сквозные задачи.
Компоненты сервисного слоя и инфраструктурные сервисы.