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);
* @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() {