X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.acorn%2Fsrc%2Forg%2Fsimantics%2Facorn%2Flru%2FLRUObject.java;h=5230723b70b5bd25fc6b5e3a6ac5412c071615a1;hp=a84a281089c289de2dbad32cd5dce6db359453ea;hb=e5c006a3e29dcb1f29ae5bcc21ac28573bd37648;hpb=bf495713dbc9dec325f3929889466fa6cd58b541 diff --git a/bundles/org.simantics.acorn/src/org/simantics/acorn/lru/LRUObject.java b/bundles/org.simantics.acorn/src/org/simantics/acorn/lru/LRUObject.java index a84a28108..5230723b7 100644 --- a/bundles/org.simantics.acorn/src/org/simantics/acorn/lru/LRUObject.java +++ b/bundles/org.simantics.acorn/src/org/simantics/acorn/lru/LRUObject.java @@ -5,6 +5,7 @@ import java.nio.file.Path; import java.util.concurrent.Semaphore; import java.util.concurrent.TimeUnit; +import org.simantics.acorn.FileCache; import org.simantics.acorn.FileIO; import org.simantics.acorn.Persistable; import org.simantics.acorn.exception.AcornAccessVerificationException; @@ -19,6 +20,7 @@ public abstract class LRUObject LRU; + final protected FileCache fileCache; final private Semaphore mutex = new Semaphore(1); final private MapKey key; final private String fileName; @@ -39,8 +41,9 @@ public abstract class LRUObject LRU, MapKey key, Path readDirectory, String fileName, int offset, int length, boolean dirty, boolean resident) { + public LRUObject(LRU LRU, FileCache fileCache, MapKey key, Path readDirectory, String fileName, int offset, int length, boolean dirty, boolean resident) { this.LRU = LRU; + this.fileCache = fileCache; this.key = key; this.fileName = fileName; this.offset = offset; @@ -51,8 +54,8 @@ public abstract class LRUObject LRU, MapKey key, Path readDirectory, String fileName, boolean dirty, boolean resident) { - this(LRU, key, readDirectory, fileName, -1, -1, dirty, resident); + public LRUObject(LRU LRU, FileCache fileCache, MapKey key, Path readDirectory, String fileName, boolean dirty, boolean resident) { + this(LRU, fileCache, key, readDirectory, fileName, -1, -1, dirty, resident); } /* @@ -98,7 +101,7 @@ public abstract class LRUObject pair = toBytes(); byte[] data = pair.first; int length = pair.second; - FileIO fio = FileIO.get(bytes); + FileIO fio = fileCache.get(bytes); int offset = fio.saveBytes(data, length, overwrite()); setPosition(offset, length); } catch (AcornAccessVerificationException | IllegalAcornStateException e) { @@ -191,7 +194,7 @@ public abstract class LRUObject