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

Представляет состояние директории в СКВ, реализуя контракт VcsObject. Подробнее...

#include <Tree.hxx>

Граф наследования:svcs::core::Tree:
svcs::core::VcsObject

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

 Tree (std::vector< TreeEntry > entries)
 Конструктор для объекта Tree.
std::string getType () const override
 Возвращает тип объекта СКВ.
std::string serialize () const override
 Сериализует содержимое Tree в стандартизированный строковый формат для хеширования и хранения.
void addEntry (const TreeEntry &entry)
 Добавляет новую запись в Tree или обновляет существующую запись, если имя совпадает.
bool removeEntry (const std::string &name)
 Удаляет запись (файл или поддиректорию) из Tree по имени.
std::optional< TreeEntryfindEntry (const std::string &name) const
 Ищет конкретную запись внутри Tree по имени.
const std::vector< TreeEntry > & getEntries () const
 Возвращает список записей, хранящихся в Tree.
Открытые члены унаследованные от svcs::core::VcsObject
 VcsObject ()=default
 Конструктор по умолчанию. Требуется для производных классов.
 VcsObject (const VcsObject &other)=default
 Конструктор копирования. Требуется для производных классов для корректного копирования hash_id.
virtual ~VcsObject ()=default
 Виртуальный деструктор.
std::string getHashId () const
 Возвращает уникальный хеш-идентификатор объекта.

Открытые статические члены

static Tree deserialize (const std::string &raw_content)
 Создает объект Tree из сериализованной строки, прочитанной из базы данных объектов.
Открытые статические члены унаследованные от svcs::core::VcsObject
static std::string calculateHash (const std::string &content)
 Вычисляет SHA-256 хеш для заданного канонического содержимого.

Дополнительные унаследованные члены

Защищенные члены унаследованные от svcs::core::VcsObject
void computeHash (const std::string &content)
 Вычисляет криптографический хеш-идентификатор для содержимого объекта.
Защищенные данные унаследованные от svcs::core::VcsObject
std::string hash_id
 Уникальный криптографический хеш-идентификатор (например, SHA-256) для этого объекта.

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

Представляет состояние директории в СКВ, реализуя контракт VcsObject.

Хранит коллекцию объектов TreeEntry, эффективно отображая имена на хеш-указатели.

Конструктор(ы)

◆ Tree()

svcs::core::Tree::Tree ( std::vector< TreeEntry > entries)
explicit

Конструктор для объекта Tree.

Конструктор должен внутренне отсортировать записи перед вызовом computeHash().

Аргументы
entriesКоллекция структур TreeEntry, представляющих содержимое директории.

Методы

◆ addEntry()

void svcs::core::Tree::addEntry ( const TreeEntry & entry)

Добавляет новую запись в Tree или обновляет существующую запись, если имя совпадает.

Если список записей изменен, хеш Tree становится недействительным и должен быть пересчитан перед сохранением.

Аргументы
entryЗапись TreeEntry для добавления или обновления.

◆ deserialize()

Tree svcs::core::Tree::deserialize ( const std::string & raw_content)
static

Создает объект Tree из сериализованной строки, прочитанной из базы данных объектов.

Аргументы
raw_contentСериализованные строковые данные, обычно прочитанные из распакованного файла объекта.
Возвращает
Tree Полностью восстановленный объект Tree.

◆ findEntry()

std::optional< TreeEntry > svcs::core::Tree::findEntry ( const std::string & name) const
nodiscard

Ищет конкретную запись внутри Tree по имени.

Аргументы
nameИмя записи для поиска.
Возвращает
std::optional<TreeEntry> Опциональное значение, содержащее запись, если найдена, иначе пустое.

◆ getEntries()

const std::vector< TreeEntry > & svcs::core::Tree::getEntries ( ) const
nodiscard

Возвращает список записей, хранящихся в Tree.

Возвращает
std::vector<TreeEntry>& Константная ссылка на внутренний вектор записей.

◆ getType()

std::string svcs::core::Tree::getType ( ) const
nodiscardoverridevirtual

Возвращает тип объекта СКВ.

Возвращает
std::string Всегда возвращает "tree".

Замещает svcs::core::VcsObject.

◆ removeEntry()

bool svcs::core::Tree::removeEntry ( const std::string & name)

Удаляет запись (файл или поддиректорию) из Tree по имени.

Аргументы
nameИмя записи для удаления.
Возвращает
bool True, если запись найдена и удалена, иначе false.

◆ serialize()

std::string svcs::core::Tree::serialize ( ) const
nodiscardoverridevirtual

Сериализует содержимое Tree в стандартизированный строковый формат для хеширования и хранения.

Сериализация должна гарантировать, что записи отсортированы для обеспечения согласованности хеша.

Возвращает
std::string Стандартизированная, сериализованная структура директории.

Замещает svcs::core::VcsObject.


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