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