|
SVCS - Русская документация
|
Управляет базой данных объектов системы контроля версий, включая сохранение и восстановление объектов. Подробнее...
#include <ObjectStorage.hxx>
Открытые члены | |
| ObjectStorage (const std::string &root_path, const std::shared_ptr< ISubject > &subject=nullptr) | |
| Конструктор для ObjectStorage. | |
| virtual | ~ObjectStorage () |
| Деструктор. | |
| void | setSubject (std::shared_ptr< ISubject > subj) |
| Устанавливает или заменяет субъект событий, используемый ObjectStorage. | |
| std::string | getObjectPath (const std::string &hash) const |
| Формирует полный путь в файловой системе для объекта на основе его хеша. | |
| virtual bool | saveObject (const VcsObject &obj) const |
| Сохраняет VcsObject в базе данных объектов. | |
| virtual std::unique_ptr< VcsObject > | loadObject (const std::string &hash) const |
| Загружает объект с диска по его ID хеша. | |
| bool | objectExists (const std::string &hash) const |
| Проверяет, существует ли объект с заданным хешем на диске. | |
Управляет базой данных объектов системы контроля версий, включая сохранение и восстановление объектов.
Реализует низкоуровневые операции файловой системы (генерация путей, чтение, запись), сжатие, распаковку и десериализацию объектов.
|
explicit |
Конструктор для ObjectStorage.
| root_path | Корневой путь репозитория (например, директория, содержащая ".svcs"). |
| subject | Общий указатель на интерфейс ISubject для логирования событий. По умолчанию nullptr, если логирование пока не требуется. |
|
nodiscard |
Формирует полный путь в файловой системе для объекта на основе его хеша.
Использует первые два символа хеша для имени поддиректории и оставшиеся 38 символов для имени файла.
| hash | Полный 40-символьный ID хеша SHA-1. |
|
nodiscardvirtual |
Загружает объект с диска по его ID хеша.
Читает сжатый файл, распаковывает его, выполняет проверки целостности и десериализует объект с использованием внутреннего фабричного метода.
| hash | ID хеша объекта для загрузки. |
| std::runtime_error | если объект не найден, поврежден или недействителен. |
Переопределяется в svcs::test::core::MockObjectStorage.
|
nodiscard |
Проверяет, существует ли объект с заданным хешем на диске.
| hash | ID хеша для проверки. |
|
nodiscardvirtual |
Сохраняет VcsObject в базе данных объектов.
Сериализует объект, добавляет заголовок, сжимает его и записывает в файл. Публикует события об успехе/неудаче.
| obj | VcsObject для сохранения. |
| std::runtime_error | если хеш недействителен или операции ввода-вывода завершаются неудачно. |
Переопределяется в svcs::test::core::MockObjectStorage.
|
inline |
Устанавливает или заменяет субъект событий, используемый ObjectStorage.
| subj | Новый указатель ISubject для использования при публикации событий. |