2022-01-26 19:03:51 +01:00
|
|
|
package it.cavallium.dbengine.database.disk;
|
|
|
|
|
|
|
|
import it.cavallium.dbengine.database.SafeCloseable;
|
2022-03-19 00:08:23 +01:00
|
|
|
import java.util.List;
|
2022-01-26 19:03:51 +01:00
|
|
|
import org.jetbrains.annotations.NotNull;
|
2022-03-19 00:08:23 +01:00
|
|
|
import org.rocksdb.AbstractImmutableNativeReference;
|
|
|
|
import org.rocksdb.ReadOptions;
|
2022-01-26 19:03:51 +01:00
|
|
|
import org.rocksdb.RocksIterator;
|
2022-03-19 00:08:23 +01:00
|
|
|
import org.rocksdb.RocksObject;
|
2022-01-26 19:03:51 +01:00
|
|
|
|
2022-03-19 00:08:23 +01:00
|
|
|
public record RocksIteratorTuple(List<RocksObject> refs, @NotNull RocksIterator iterator,
|
|
|
|
@NotNull ReleasableSlice sliceMin, @NotNull ReleasableSlice sliceMax,
|
|
|
|
@NotNull SafeCloseable seekTo) implements
|
2022-01-26 19:03:51 +01:00
|
|
|
SafeCloseable {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void close() {
|
2022-03-19 00:08:23 +01:00
|
|
|
refs.forEach(AbstractImmutableNativeReference::close);
|
2022-01-26 19:03:51 +01:00
|
|
|
iterator.close();
|
|
|
|
sliceMin.close();
|
|
|
|
sliceMax.close();
|
|
|
|
seekTo.close();
|
|
|
|
}
|
|
|
|
}
|