Refactor JournalSegmentReader.readNext() 80/110680/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 12 Mar 2024 19:37:02 +0000 (20:37 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 12 Mar 2024 19:39:15 +0000 (20:39 +0100)
The two implementations share the callout to getNextIndex(), pull it
down to the base class to better define the API we are after.

JIRA: CONTROLLER-2099
Change-Id: Id82a039dbb02156bef43ff9f9398d0e1883cc38f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
atomix-storage/src/main/java/io/atomix/storage/journal/FileChannelJournalSegmentReader.java
atomix-storage/src/main/java/io/atomix/storage/journal/JournalSegmentReader.java
atomix-storage/src/main/java/io/atomix/storage/journal/MappedJournalSegmentReader.java

index 571971cae6f1e1b37e6324269d167889ac963577..c744477f87940ad0027e8ec8c4b34e733be20fb1 100644 (file)
@@ -51,10 +51,7 @@ final class FileChannelJournalSegmentReader<E> extends JournalSegmentReader<E> {
   }
 
   @Override
-  Indexed<E> readNext() {
-    // Compute the index of the next entry in the segment.
-    final long index = getNextIndex();
-
+  Indexed<E> readEntry(final long index) {
     try {
       // Read more bytes from the segment if necessary.
       if (memory.remaining() < maxEntrySize) {
index 03f7b3fd2aaedcc2d8dc1d43ebd2b63ed00869b0..04d098d8938890e0bd7cab33ea406d8b66a10f04 100644 (file)
@@ -136,9 +136,15 @@ abstract sealed class JournalSegmentReader<E> permits FileChannelJournalSegmentR
     abstract void setPosition(int position);
 
     /**
-     * Reads the next entry in the segment.
+     * Reads the entry at specified index.
      *
-     * @return Next entry, or {@code null}
+     * @param index entry index
+     * @return The entry, or {@code null}
      */
-    abstract @Nullable Indexed<E> readNext();
+    abstract @Nullable Indexed<E> readEntry(long index);
+
+    private @Nullable Indexed<E> readNext() {
+        // Compute the index of the next entry in the segment.
+        return readEntry(getNextIndex());
+    }
 }
index fc53672af0e5fb36040d92ff182e8f96e3d721ba..e02dd5722dfff2018c5cbc4354bef10a6f18a273 100644 (file)
@@ -45,10 +45,7 @@ final class MappedJournalSegmentReader<E> extends JournalSegmentReader<E> {
   }
 
   @Override
-  Indexed<E> readNext() {
-    // Compute the index of the next entry in the segment.
-    final long index = getNextIndex();
-
+  Indexed<E> readEntry(final long index) {
     // Mark the buffer so it can be reset if necessary.
     buffer.mark();