Factor out FileReader interface
[controller.git] / atomix-storage / src / main / java / io / atomix / storage / journal / JournalSegment.java
index d21d9051b6e6c97fc71467cf186df4f48ea0e353..81699a094ac9c0927abe32a5612ee0c5e5a242ab 100644 (file)
@@ -185,9 +185,10 @@ final class JournalSegment<E> implements AutoCloseable {
     acquire();
 
     final var buffer = writer.buffer();
-    final var reader = buffer == null
-      ? new DiskJournalSegmentReader<>(channel, this, maxEntrySize, namespace)
-        : new MappedJournalSegmentReader<>(buffer, this, maxEntrySize, namespace);
+    final var path = file.file().toPath();
+    final var fileReader = buffer != null ? new MappedFileReader(path, buffer)
+        : new DiskFileReader(path, channel, maxEntrySize);
+    final var reader = new JournalSegmentReader<>(this, fileReader, maxEntrySize, namespace);
     reader.setPosition(JournalSegmentDescriptor.BYTES);
     readers.add(reader);
     return reader;