SVCS - Русская документация
Загрузка...
Поиск...
Не найдено
Класс svcs::server::cli::ServerCommandFactory

Фабрика для создания объектов ICommand администрирования сервера. Подробнее...

#include <ServerCommandFactory.hxx>

Открытые члены

 ServerCommandFactory (std::shared_ptr< ISubject > bus, std::shared_ptr< RepositoryManager > repoManager)
 Конструирует ServerCommandFactory.
 ServerCommandFactory (const ServerCommandFactory &)=delete
 Удаляет конструктор копирования. Серверная Фабрика не должна копироваться.
ServerCommandFactoryoperator= (const ServerCommandFactory &)=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< ICommandcreateCommand (const std::string &name) const
 Создает и возвращает объект серверной команды по его имени.
std::vector< std::string > getRegisteredCommands () const
 Получает список имен всех текущих зарегистрированных серверных команд.
bool commandExists (const std::string &name) const
 Проверяет, существует ли серверная команда с заданным именем.

Подробное описание

Фабрика для создания объектов 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Имя серверной команды.

Объявления и описания членов классов находятся в файлах: