|
SVCS - Русская документация
|
Фабрика для создания объектов ICommand по их строковому имени. Подробнее...
#include <CommandFactory.hxx>
Открытые члены | |
| CommandFactory (std::shared_ptr< ISubject > bus, std::shared_ptr< RepositoryManager > repoManager) | |
| Конструирует CommandFactory. | |
| CommandFactory (const CommandFactory &)=delete | |
| Удаляет конструктор копирования. Фабрика не должна копироваться. | |
| CommandFactory & | operator= (const CommandFactory &)=delete |
| Удаляет оператор присваивания. Фабрика не должна присваиваться. | |
| void | registerCommand (const std::string &name, std::function< std::unique_ptr< ICommand >(std::shared_ptr< ISubject >, std::shared_ptr< RepositoryManager >)> creator) |
| Регистрирует функцию-создатель для новой команды. | |
| std::string | getCommandDescription (const std::string &name) const |
| Получает краткое описание для зарегистрированной команды. | |
| void | showCommandHelp (const std::string &name) const |
| Отображает подробную справку и использование для зарегистрированной команды. | |
| std::unique_ptr< ICommand > | createCommand (const std::string &name) const |
| Создает и возвращает объект команды по его имени. | |
| std::vector< std::string > | getRegisteredCommands () const |
| Получает список имен всех текущих зарегистрированных команд. | |
Фабрика для создания объектов ICommand по их строковому имени.
CommandFactory управляет жизненным циклом команд, создавая их динамически с использованием функций-создателей, зарегистрированных под уникальными именами. Команды конструируются с общим владением шиной событий (ISubject) и менеджером репозитория (RepositoryManager).
|
explicit |
Конструирует CommandFactory.
| bus | Общий указатель на шину событий. |
| repoManager | Общий указатель на менеджер репозитория. |
| std::unique_ptr< ICommand > svcs::cli::CommandFactory::createCommand | ( | const std::string & | name | ) | const |
Создает и возвращает объект команды по его имени.
Передает владение (через unique_ptr) созданного объекта вызывающей стороне.
| name | Имя команды (ключ в карте creators). |
| std::string svcs::cli::CommandFactory::getCommandDescription | ( | const std::string & | name | ) | const |
Получает краткое описание для зарегистрированной команды.
Для этого необходимо создать временный экземпляр команды.
| name | Имя команды. |
| std::vector< std::string > svcs::cli::CommandFactory::getRegisteredCommands | ( | ) | const |
Получает список имен всех текущих зарегистрированных команд.
| void svcs::cli::CommandFactory::registerCommand | ( | const std::string & | name, |
| std::function< std::unique_ptr< ICommand >(std::shared_ptr< ISubject >, std::shared_ptr< RepositoryManager >)> | creator ) |
Регистрирует функцию-создатель для новой команды.
| name | Строковое имя, под которым команда будет вызываться. |
| creator | Функция, которая создает и возвращает новый объект ICommand. |
| void svcs::cli::CommandFactory::showCommandHelp | ( | const std::string & | name | ) | const |
Отображает подробную справку и использование для зарегистрированной команды.
Это достигается созданием временного экземпляра команды и вызовом его метода showHelp.
| name | Имя команды. |