This makes maxUpdateIndex() available in MergedReftable, so we can
know generically at which index to create the next reftable in a
stack.
Change-Id: Ia2314bc57c8b5dd7e69d5e61096fdce1d35abd11
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
}
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public long maxUpdateIndex() throws IOException {
+ return tables.length > 0 ? tables[tables.length - 1].maxUpdateIndex()
+ : 0;
+ }
+
/** {@inheritDoc} */
@Override
public RefCursor allRefs() throws IOException {
includeDeletes = deletes;
}
+
+ /**
+ * Get the maximum update index for log entries that appear in this
+ * reftable.
+ *
+ * @return the maximum update index for log entries that appear in this
+ * reftable. This should be 1 higher than the prior reftable's
+ * {@code maxUpdateIndex} if this table is used in a stack.
+ * @throws java.io.IOException
+ * file cannot be read.
+ */
+ public abstract long maxUpdateIndex() throws IOException;
+
/**
* Seek to the first reference, to iterate in order.
*
}
/**
- * Get the maximum update index for log entries that appear in this
- * reftable.
- *
- * @return the maximum update index for log entries that appear in this
- * reftable. This should be 1 higher than the prior reftable's
- * {@code maxUpdateIndex} if this table is used in a stack.
- * @throws java.io.IOException
- * file cannot be read.
+ * {@inheritDoc}
*/
+ @Override
public long maxUpdateIndex() throws IOException {
if (blockSize == -1) {
readFileHeader();