diff --git a/src/main/java/org/warp/filesponge/DiskCache.java b/src/main/java/org/warp/filesponge/DiskCache.java index 29f3b8c..4bd734b 100644 --- a/src/main/java/org/warp/filesponge/DiskCache.java +++ b/src/main/java/org/warp/filesponge/DiskCache.java @@ -31,7 +31,7 @@ import java.util.function.Predicate; import java.util.stream.Stream; import reactor.util.function.Tuple2; -public interface DiskCache extends URLsDiskHandler, URLsWriter, SafeCloseable { +public interface DiskCache extends URLsDiskHandler, URLsWriter, SafeCloseable, IBackuppable { void writeMetadataSync(URL url, Metadata metadata); diff --git a/src/main/java/org/warp/filesponge/DiskCacheImpl.java b/src/main/java/org/warp/filesponge/DiskCacheImpl.java index f5123a5..8200159 100644 --- a/src/main/java/org/warp/filesponge/DiskCacheImpl.java +++ b/src/main/java/org/warp/filesponge/DiskCacheImpl.java @@ -24,6 +24,7 @@ import static org.warp.filesponge.FileSponge.BLOCK_SIZE; import it.cavallium.buffer.Buf; import it.cavallium.buffer.BufDataInput; import it.cavallium.buffer.BufDataOutput; +import it.cavallium.dbengine.client.IBackuppable; import it.cavallium.dbengine.database.LLDictionary; import it.cavallium.dbengine.database.LLDictionaryResultType; import it.cavallium.dbengine.database.LLKeyValueDatabase; @@ -303,4 +304,27 @@ class DiskCacheImpl implements DiskCache { ownedDb.close(); } } + + @Override + public void pauseForBackup() { + if (ownedDb != null) { + ownedDb.pauseForBackup(); + } + } + + @Override + public void resumeAfterBackup() { + if (ownedDb != null) { + ownedDb.resumeAfterBackup(); + } + } + + @Override + public boolean isPaused() { + if (ownedDb != null) { + return ownedDb.isPaused(); + } else { + return false; + } + } }