fork of https://github.com/oxigraph/rocksdb and https://github.com/facebook/rocksdb for nextgraph and oxigraph
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.3 KiB
64 lines
2.3 KiB
// Copyright (c) 2014, Facebook, Inc. All rights reserved.
|
|
// This source code is licensed under the BSD-style license found in the
|
|
// LICENSE file in the root directory of this source tree. An additional grant
|
|
// of patent rights can be found in the PATENTS file in the same directory.
|
|
|
|
package org.rocksdb;
|
|
|
|
/**
|
|
* <p>An iterator that yields a sequence of key/value pairs from a source.
|
|
* Multiple implementations are provided by this library.
|
|
* In particular, iterators are provided
|
|
* to access the contents of a Table or a DB.</p>
|
|
*
|
|
* <p>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.</p>
|
|
*
|
|
* @see org.rocksdb.RocksObject
|
|
*/
|
|
public class RocksIterator extends AbstractRocksIterator<RocksDB> {
|
|
protected RocksIterator(RocksDB rocksDB, long nativeHandle) {
|
|
super(rocksDB, nativeHandle);
|
|
}
|
|
|
|
/**
|
|
* <p>Return the key for the current entry. The underlying storage for
|
|
* the returned slice is valid only until the next modification of
|
|
* the iterator.</p>
|
|
*
|
|
* <p>REQUIRES: {@link #isValid()}</p>
|
|
*
|
|
* @return key for the current entry.
|
|
*/
|
|
public byte[] key() {
|
|
assert(isInitialized());
|
|
return key0(nativeHandle_);
|
|
}
|
|
|
|
/**
|
|
* <p>Return the value for the current entry. The underlying storage for
|
|
* the returned slice is valid only until the next modification of
|
|
* the iterator.</p>
|
|
*
|
|
* <p>REQUIRES: !AtEnd() && !AtStart()</p>
|
|
* @return value for the current entry.
|
|
*/
|
|
public byte[] value() {
|
|
assert(isInitialized());
|
|
return value0(nativeHandle_);
|
|
}
|
|
|
|
@Override final native void disposeInternal(long handle);
|
|
@Override final native boolean isValid0(long handle);
|
|
@Override final native void seekToFirst0(long handle);
|
|
@Override final native void seekToLast0(long handle);
|
|
@Override final native void next0(long handle);
|
|
@Override final native void prev0(long handle);
|
|
@Override final native void seek0(long handle, byte[] target, int targetLen);
|
|
@Override final native void status0(long handle) throws RocksDBException;
|
|
|
|
private native byte[] key0(long handle);
|
|
private native byte[] value0(long handle);
|
|
}
|
|
|