|
SVCS - Русская документация
|
Интеграционный компонент для объединения нескольких фабрик команд. Подробнее...
#include <CompositeCommandFactory.hxx>
Открытые члены | |
| CompositeCommandFactory (std::shared_ptr< ISubject > event_bus, std::shared_ptr< RepositoryManager > repo_manager) | |
| Конструирует CompositeCommandFactory с необходимыми зависимостями. | |
| ~CompositeCommandFactory ()=default | |
| Деструктор по умолчанию. | |
| CompositeCommandFactory (const CompositeCommandFactory &)=delete | |
| Удаленный конструктор копирования. | |
| CompositeCommandFactory & | operator= (const CompositeCommandFactory &)=delete |
| Удаленный оператор присваивания. | |
| void | registerFactory (std::function< std::unique_ptr< ICommand >(const std::string &)> factory) |
| Регистрирует фабричную функцию для создания команд. | |
| std::unique_ptr< ICommand > | createCommand (const std::string &name) const |
| Создает команду по имени с использованием зарегистрированных фабрик. | |
| std::vector< std::string > | getAllCommandNames () const |
| Получает имена всех доступных команд из всех фабрик. | |
| std::string | getCommandDescription (const std::string &name) const |
| Получает описание для команды. | |
| void | showCommandHelp (const std::string &name) const |
| Отображает подробную справку для команды. | |
| bool | commandExists (const std::string &name) const |
| Проверяет, существует ли команда с заданным именем. | |
| size_t | getFactoryCount () const |
| Получает количество зарегистрированных фабрик. | |
Интеграционный компонент для объединения нескольких фабрик команд.
Служит мостом между различными подсистемами команд (CLI, Server). При создании команды пробует каждую зарегистрированную фабрику по порядку, пока одна из них не создаст команду успешно. Такая архитектура позволяет чисто разделить ответственность, предоставляя единый интерфейс команд приложению.
| svcs::integration::CompositeCommandFactory::CompositeCommandFactory | ( | std::shared_ptr< ISubject > | event_bus, |
| std::shared_ptr< RepositoryManager > | repo_manager ) |
Конструирует CompositeCommandFactory с необходимыми зависимостями.
| event_bus | Общий указатель на шину событий для уведомлений команд. |
| repo_manager | Общий указатель на менеджер репозиториев для операций с репозиториями. |
| bool svcs::integration::CompositeCommandFactory::commandExists | ( | const std::string & | name | ) | const |
Проверяет, существует ли команда с заданным именем.
| name | Имя команды для проверки. |
Пытается создать команду для определения существования.
| std::unique_ptr< ICommand > svcs::integration::CompositeCommandFactory::createCommand | ( | const std::string & | name | ) | const |
Создает команду по имени с использованием зарегистрированных фабрик.
| name | Имя команды для создания. |
Пробует каждую зарегистрированную фабрику по порядку, пока одна не создаст команду успешно. Возвращает первую найденную команду (не null).
| std::vector< std::string > svcs::integration::CompositeCommandFactory::getAllCommandNames | ( | ) | const |
Получает имена всех доступных команд из всех фабрик.
Собирает имена команд из всех зарегистрированных фабрик, удаляя дубликаты. Команды возвращаются в порядке регистрации (порядок фабрик), не в алфавитном порядке.
| std::string svcs::integration::CompositeCommandFactory::getCommandDescription | ( | const std::string & | name | ) | const |
Получает описание для команды.
| name | Имя команды. |
Создает временный экземпляр команды для получения ее описания. Если команда не может быть создана, возвращает соответствующее сообщение об ошибке.
| size_t svcs::integration::CompositeCommandFactory::getFactoryCount | ( | ) | const |
Получает количество зарегистрированных фабрик.
| void svcs::integration::CompositeCommandFactory::registerFactory | ( | std::function< std::unique_ptr< ICommand >(const std::string &)> | factory | ) |
Регистрирует фабричную функцию для создания команд.
| factory | Фабричная функция, которая принимает имя команды и возвращает указатель на команду. |
Фабрики вызываются в порядке их регистрации до тех пор, пока одна не вернет команду (не null). Это позволяет приоритизировать определенные типы команд над другими.
| void svcs::integration::CompositeCommandFactory::showCommandHelp | ( | const std::string & | name | ) | const |
Отображает подробную справку для команды.
| name | Имя команды. |
Создает временный экземпляр команды и вызывает его метод showHelp. Если команда не может быть создана, показывает сообщение об ошибке.