fix(sync): исправил журнал при DELETE/TRASH и безопасный flush

Добавил recordSyncJournal для delete/moveToTrash, StorageSyncJournalBuffer
с восстановлением pending при ошибке записи и немедленным flush без debounce.
This commit is contained in:
2026-05-22 13:22:05 +03:00
parent b00eed901b
commit bc2b354820
9 changed files with 460 additions and 107 deletions

View File

@@ -39,10 +39,10 @@ interface IStorageAccessor {
suspend fun setHidden(path: String, hidden: Boolean)
suspend fun touchFile(path: String)
suspend fun touchDir(path: String)
suspend fun delete(path: String)
suspend fun delete(path: String, recordSyncJournal: Boolean = true)
suspend fun openWrite(path: String, recordSyncJournal: Boolean = true): OutputStream
suspend fun openRead(path: String): InputStream
suspend fun moveToTrash(path: String)
suspend fun moveToTrash(path: String, recordSyncJournal: Boolean = true)
/**
* Системный sidecar-файл для логических нужд хранилища (мета, ключи и т.п.).
@@ -53,6 +53,10 @@ interface IStorageAccessor {
suspend fun openWriteSystemFile(name: String): OutputStream
suspend fun readSyncJournal(): StorageSyncJournal
/** Сбрасывает отложенные записи журнала на носитель (перед sync и при закрытии storage). */
suspend fun flushPendingSyncJournal() = Unit
suspend fun putSyncJournalEntries(entries: StorageSyncJournal)
suspend fun readSyncLock(): StorageSyncLock?