SVCS - Русская документация
Загрузка...
Поиск...
Не найдено
HistoryCommand.hxx
См. документацию.
1
13#pragma once
14
15#include "ICommand.hxx"
18
19#include <memory>
20#include <vector>
21#include <string>
22
35 */
36namespace svcs::cli {
37
38using namespace svcs::core;
39
53class HistoryCommand : public ICommand {
54private:
62 std::shared_ptr<ISubject> eventBus_;
63
71 std::shared_ptr<RepositoryManager> repoManager_;
72
73public:
85 HistoryCommand(std::shared_ptr<ISubject> subject,
86 std::shared_ptr<RepositoryManager> repoManager);
87
103 bool execute(const std::vector<std::string>& args) override;
104
114 [[nodiscard]] std::string getName() const override { return "history"; }
115
125 [[nodiscard]] std::string getDescription() const override;
126
133
136 [[nodiscard]] std::string getUsage() const override;
137
145 void showHelp() const override;
146
147private:
165 bool parseArguments(const std::vector<std::string>& args,
166 bool& showOneline, int& limit, bool& showFull) const;
167
177 void showDefaultHistory(const std::vector<CommitInfo>& entries) const;
178
188 void showOnelineHistory(const std::vector<CommitInfo>& entries) const;
189
199 void showDetailedHistory(const std::vector<CommitInfo>& entries) const;
200
212 [[nodiscard]] static std::string formatTimestamp(const std::string& timestamp);
213
227 [[nodiscard]] static std::string truncateString(const std::string& str, size_t length);
228};
229
230}
Объявление интерфейса ICommand для всех исполняемых CLI команд.
Определяет интерфейс для компонента Subject (Издатель) шаблона Observer.
Declaration of the RepositoryManager class, managing all repository-level file operations.
HistoryCommand(std::shared_ptr< ISubject > subject, std::shared_ptr< RepositoryManager > repoManager)
Конструктор для HistoryCommand.
Определения HistoryCommand.cxx:22
std::string getDescription() const override
Получает краткое описание команды.
Определения HistoryCommand.cxx:75
void showHelp() const override
Отображает подробную справочную информацию для команды.
Определения HistoryCommand.cxx:83
std::string getName() const override
Получает имя команды.
Определения HistoryCommand.hxx:69
std::string getUsage() const override
Получает синтаксис использования команды.
Определения HistoryCommand.cxx:79
bool execute(const std::vector< std::string > &args) override
Выполняет команду "history" с заданными аргументами.
Определения HistoryCommand.cxx:27
Интерфейс (абстрактный базовый класс) для всех команд, выполняемых через CLI.
Определения ICommand.hxx:31
Компоненты командной строки и реализации команд.
Основные структуры данных СКВ и модель объектов.