P - The type of the Parent Object from which the Rocks Iterator was
created. This is used by disposeInternal to avoid double-free
issues with the underlying C++ object.public abstract class AbstractRocksIterator<P extends RocksObject> extends RocksObject implements RocksIteratorInterface
Multiple threads can invoke const methods on an RocksIterator without external synchronization, but if any of the threads may call a non-const method, all threads accessing the same RocksIterator must use external synchronization.
RocksObjectnativeHandle_| Modifier | Constructor and Description |
|---|---|
protected |
AbstractRocksIterator(P parent,
long nativeHandle) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
disposeInternal()
Deletes underlying C++ iterator pointer.
|
boolean |
isValid()
An iterator is either positioned at an entry, or
not valid.
|
void |
next()
Moves to the next entry in the source.
|
void |
prev()
Moves to the previous entry in the source.
|
void |
seek(byte[] target)
Position at the first entry in the source whose key is that or
past target.
|
void |
seekToFirst()
Position at the first entry in the source.
|
void |
seekToLast()
Position at the last entry in the source.
|
void |
status()
If an error has occurred, return it.
|
disOwnNativeHandle, dispose, finalize, isInitialized, isOwningNativeHandleprotected AbstractRocksIterator(P parent, long nativeHandle)
public boolean isValid()
RocksIteratorInterfaceAn iterator is either positioned at an entry, or not valid. This method returns true if the iterator is valid.
isValid in interface RocksIteratorInterfacepublic void seekToFirst()
RocksIteratorInterfacePosition at the first entry in the source. The iterator is Valid() after this call if the source is not empty.
seekToFirst in interface RocksIteratorInterfacepublic void seekToLast()
RocksIteratorInterfacePosition at the last entry in the source. The iterator is valid after this call if the source is not empty.
seekToLast in interface RocksIteratorInterfacepublic void seek(byte[] target)
RocksIteratorInterfacePosition at the first entry in the source whose key is that or past target.
The iterator is valid after this call if the source contains a key that comes at or past target.
seek in interface RocksIteratorInterfacetarget - byte array describing a key or a
key prefix to seek for.public void next()
RocksIteratorInterfaceMoves to the next entry in the source. After this call, Valid() is true if the iterator was not positioned at the last entry in the source.
REQUIRES: RocksIteratorInterface.isValid()
next in interface RocksIteratorInterfacepublic void prev()
RocksIteratorInterfaceMoves to the previous entry in the source. After this call, Valid() is true if the iterator was not positioned at the first entry in source.
REQUIRES: RocksIteratorInterface.isValid()
prev in interface RocksIteratorInterfacepublic void status()
throws RocksDBException
RocksIteratorInterfaceIf an error has occurred, return it. Else return an ok status. If non-blocking IO is requested and this operation cannot be satisfied without doing some IO, then this returns Status::Incomplete().
status in interface RocksIteratorInterfaceRocksDBException - thrown if error happens in underlying
native library.protected void disposeInternal()
Deletes underlying C++ iterator pointer.
Note: the underlying handle can only be safely deleted if the parent
instance related to a certain RocksIterator is still valid and initialized.
Therefore disposeInternal() checks if the parent is initialized
before freeing the native handle.
disposeInternal in class RocksObject