forked from dlang/cdcdb
Библиотека модернизирована под использование в БД в качестве первичных ключей UUID идентификаторов.
Время фиксируется в Unix Timestamp метке с миллисекундами. Добавлена новая сущеность StorageFile, который является отправной точкой для работы со снимками. Расширен интерфейс Storage - добавлены дополнительные фозможности для работы со снимками. Введены структуры: для работы со временм - UTS, для работы с идентификатором - Identifier.
This commit is contained in:
parent
dd28c4b4d7
commit
1f50b21457
12 changed files with 989 additions and 602 deletions
17
test/app.d
17
test/app.d
|
|
@ -3,14 +3,14 @@ import std.stdio : writeln, File;
|
|||
import std.file : exists, remove, read;
|
||||
import zstd : Level;
|
||||
|
||||
import core.thread : Thread, msecs, dur;
|
||||
|
||||
void main()
|
||||
{
|
||||
// Создаем временную базу для примера
|
||||
string dbPath = "./bin/example.db";
|
||||
|
||||
if (exists(dbPath)) {
|
||||
remove(dbPath);
|
||||
}
|
||||
if (exists(dbPath)) { remove(dbPath); }
|
||||
|
||||
Context context;
|
||||
|
||||
|
|
@ -31,15 +31,18 @@ void main()
|
|||
ubyte[] data2 = cast(ubyte[]) "Hello, updated cdcdb!".dup;
|
||||
|
||||
// Создание первого снимка
|
||||
auto snap1 = storage.newSnapshot("example_file", data1, context, "Версия 1.0");
|
||||
Snapshot snap1 = storage.newSnapshot("example_file", data1, context, "Версия 1.0");
|
||||
if (snap1)
|
||||
{
|
||||
writeln("Создан снимок с ID: ", snap1.id);
|
||||
writeln("Файл: ", snap1.file);
|
||||
writeln("Размер: ", snap1.length, " байт");
|
||||
writeln("Статус: ", snap1.status);
|
||||
writeln("Время: ", snap1.created);
|
||||
}
|
||||
|
||||
Thread.sleep( dur!("msecs")( 50 ) );
|
||||
|
||||
// Создание второго снимка (обновление)
|
||||
auto snap2 = storage.newSnapshot("example_file", data2, context, "Версия 2.0");
|
||||
if (snap2)
|
||||
|
|
@ -68,9 +71,9 @@ void main()
|
|||
writeln("Хэш совпадает: ", lastSnap.sha256 == digest!SHA256(restoredData));
|
||||
}
|
||||
|
||||
// Удаление снимков по метке
|
||||
long deleted = storage.removeSnapshots("example_file");
|
||||
writeln("Удалено снимков: ", deleted);
|
||||
// Удаление файла
|
||||
if (storage.deleteFile("example_file"))
|
||||
writeln("Файл example_file удален.");
|
||||
|
||||
// Проверка: снимки удалены
|
||||
auto remaining = storage.getSnapshots("example_file");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue