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

Основные структуры данных СКВ и модель объектов. Подробнее...

Классы

class  Blob
 Представляет содержимое файла (Binary Large Object). Подробнее...
class  BranchManager
 Основной сервис для управления ветвями системы контроля версий (создание, удаление, переключение). Подробнее...
class  Commit
 Представляет единую, неизменяемую историческую точку (снимок) в истории репозитория. Подробнее...
struct  CommitInfo
 Структура, содержащая основные метаданные для одного коммита. Подробнее...
class  Index
 Управляет областью подготовки (Index) репозитория СКВ. Подробнее...
struct  IndexEntry
 Представляет одну запись файла в области подготовки (Index). Подробнее...
class  ObjectStorage
 Управляет базой данных объектов системы контроля версий, включая сохранение и восстановление объектов. Подробнее...
class  Repository
 Управляет структурой директорий системы контроля версий и основными операциями. Подробнее...
class  RepositoryManager
 Управляет всеми физическими операциями с файлами и директориями в репозитории SVCS. Подробнее...
class  TestableObject
 Вспомогательный класс для тестирования неабстрактных методов VcsObject. Подробнее...
class  Tree
 Представляет состояние директории в СКВ, реализуя контракт VcsObject. Подробнее...
struct  TreeEntry
 Представляет отдельный элемент (файл или поддиректорию) внутри объекта Tree. Подробнее...
class  VcsObject
 Абстрактный базовый класс, представляющий любой сохраняемый, адресуемый объект в СКВ. Подробнее...

Функции

TreeEntry createEntry (std::string name, std::string hash_id)
 Создание записи дерева.
std::string read_file_to_string (const fs::path &full_path)
 Читает всё содержимое файла в одну строку std::string.
std::string binary_to_hex_string (const unsigned char *binary_data, size_t length)
 Преобразует бинарный буфер (например, сырой хеш SHA-1) в его шестнадцатеричное строковое представление.
std::string hex_to_binary_string (const std::string &hex_string)
 Преобразует шестнадцатеричную строку (например, 40 символов) в её сырое бинарное байтовое представление (например, 20 байт).
std::string compute_sha256 (const std::string &input)
 Вычисляет хеш SHA-256 для заданных входных данных.

Переменные

const size_t CHUNK_SIZE = 16384
constexpr size_t HASH_BYTE_SIZE = 32

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

Основные структуры данных СКВ и модель объектов.

Содержит фундаментальные типы объектов СКВ, такие как Blob, Tree, Commit, которые формируют строительные блоки системы контроля версий.

Функции

◆ binary_to_hex_string()

std::string svcs::core::binary_to_hex_string ( const unsigned char * binary_data,
size_t length )

Преобразует бинарный буфер (например, сырой хеш SHA-1) в его шестнадцатеричное строковое представление.

Аргументы
binary_dataУказатель на сырые бинарные данные.
lengthДлина бинарных данных в байтах (например, 20 для SHA-1).
Возвращает
Строка std::string, содержащая шестнадцатеричное представление (например, 40 символов для SHA-1).

◆ compute_sha256()

std::string svcs::core::compute_sha256 ( const std::string & input)

Вычисляет хеш SHA-256 для заданных входных данных.

Аргументы
inputВходные данные для хеширования.
Возвращает
std::string Хеш SHA-256 в виде шестнадцатеричной строки.

◆ createEntry()

TreeEntry svcs::core::createEntry ( std::string name,
std::string hash_id )

Создание записи дерева.

Возвращает
Возвращает готовую запись TreeEntry.
Аргументы
nameИмя файла или поддиректории.
hash_idХеш-идентификатор (SHA-256).

◆ hex_to_binary_string()

std::string svcs::core::hex_to_binary_string ( const std::string & hex_string)

Преобразует шестнадцатеричную строку (например, 40 символов) в её сырое бинарное байтовое представление (например, 20 байт).

Аргументы
hex_stringВходная шестнадцатеричная строка. Должна иметь чётную длину.
Возвращает
Строка std::string, содержащая сырые бинарные байты.
Исключения
std::runtime_errorесли входная строка имеет нечётную длину или содержит недопустимые шестнадцатеричные символы.

◆ read_file_to_string()

std::string svcs::core::read_file_to_string ( const fs::path & full_path)

Читает всё содержимое файла в одну строку std::string.

Эта служебная функция предназначена для чтения файлов малого и среднего размера и является критически важной для создания содержимого VcsObject (например, Blobs). Она открывает файл в бинарном режиме, чтобы гарантировать корректное чтение всех символов на всех платформах.

Аргументы
full_pathПолный, абсолютный путь к файлу на диске.
Возвращает
Всё содержимое файла в виде одной строки std::string.
Исключения
std::runtime_errorЕсли файл не может быть открыт для чтения.