Separate out RaftEntryMeta
[controller.git] / atomix-storage / src / main / java / io / atomix / storage / journal / FileReader.java
index 0a9bb3ef11f891cd92f4a84f0f12a21324fccbcf..da040371f15db89e8d6b88ca6a3fea65fb7c3de4 100644 (file)
@@ -18,14 +18,14 @@ package io.atomix.storage.journal;
 import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.MoreObjects;
-import java.nio.ByteBuffer;
+import io.netty.buffer.ByteBuf;
 import org.eclipse.jdt.annotation.NonNull;
 
 /**
  * An abstraction over how to read a {@link JournalSegmentFile}.
  */
 abstract sealed class FileReader permits DiskFileReader, MappedFileReader {
-    private final JournalSegmentFile file;
+    private final @NonNull JournalSegmentFile file;
 
     FileReader(final JournalSegmentFile file) {
         this.file = requireNonNull(file);
@@ -44,7 +44,12 @@ abstract sealed class FileReader permits DiskFileReader, MappedFileReader {
      * @param size to read
      * @return resulting buffer
      */
-    abstract @NonNull ByteBuffer read(int position, int size);
+    abstract @NonNull ByteBuf read(int position, int size);
+
+    /**
+     * Releases resources associated with this writer.
+     */
+    abstract void release();
 
     @Override
     public final String toString() {