SVCS - Русская документация
Загрузка...
Поиск...
Не найдено
RepoCommand.hxx
См. документацию.
1
27#pragma once
28
29#include "ServerBaseCommand.hxx"
31#include "RemoteManager.hxx"
32#include <memory>
33#include <vector>
34
43 *
44 * @russian
45 * @namespace svcs::server::cli
46 * @brief Компоненты командной строки для администрирования сервера.
47 * @details Содержит CLI команды, специально предназначенные для администрирования и управления сервером,
48 * включая создание репозиториев-хабов, управление пользователями и конфигурацию сервера.
49 * Эти команды используются администраторами для настройки и обслуживания экземпляров сервера SVCS.
50 * Это пространство имен связывает серверную функциональность с интерфейсом командной строки.
51 */
52namespace svcs::server::cli {
53
54using namespace svcs::core;
55
71class RepoCommand : public ServerBaseCommand {
72public:
84 RepoCommand(std::shared_ptr<ISubject> event_bus,
85 std::shared_ptr<RepositoryManager> repo_manager);
86
96 std::string getName() const override;
97
107 std::string getDescription() const override;
108
118 std::string getUsage() const override;
119
120
133 bool execute(const std::vector<std::string>& args) override;
134
142 void showHelp() const override;
143
144private:
145 // --- Subcommand Handlers ---
146
160 bool handleAdd(RemoteManager& remote_manager, const std::vector<std::string>& args);
161
175 bool handleRemove(RemoteManager& remote_manager, const std::vector<std::string>& args);
176
188 bool handleList(RemoteManager& remote_manager);
189
207 bool handleRename(RemoteManager& remote_manager, const std::vector<std::string>& args);
208};
209
210}
Объявление класса RemoteManager и структуры Remote.
Управляет всем репозиторием системы контроля версий, действует как Subject для логирования событий и ...
Базовый класс для команд администрирования сервера с использованием интерфейса ICommand.
Управляет конфигурациями удаленных репозиториев.
Определения RemoteManager.hxx:71
bool execute(const std::vector< std::string > &args) override
Выполняет логику RepoCommand.
Определения RepoCommand.cxx:43
std::string getName() const override
Получает имя команды.
Определения RepoCommand.cxx:31
std::string getDescription() const override
Получает краткое описание команды.
Определения RepoCommand.cxx:35
void showHelp() const override
Отображает справочную информацию для команды.
Определения RepoCommand.cxx:161
RepoCommand(std::shared_ptr< ISubject > event_bus, std::shared_ptr< RepositoryManager > repo_manager)
Конструирует RepoCommand.
Определения RepoCommand.cxx:25
std::string getUsage() const override
Получает синтаксис использования команды.
Определения RepoCommand.cxx:39
ServerBaseCommand(std::shared_ptr< ISubject > event_bus, std::shared_ptr< RepositoryManager > repo_manager)
Конструирует ServerBaseCommand с необходимыми зависимостями.
Определения ServerBaseCommand.cxx:16
Основные структуры данных СКВ и модель объектов.
Компоненты командной строки для администрирования сервера.