提交 1574e0c4 编写于 作者: A Ankit Gupta

Add doc

上级 06b590dd
...@@ -8,12 +8,12 @@ package org.rocksdb; ...@@ -8,12 +8,12 @@ package org.rocksdb;
/** /**
* An iterator yields a sequence of key/value pairs from a source. * An iterator yields a sequence of key/value pairs from a source.
* The following class defines the interface. Multiple implementations * The following class defines the interface. Multiple implementations
* are provided by this library. In particular, iterators are provided * are provided by this library. In particular, iterators are provided
* to access the contents of a Table or a DB. * to access the contents of a Table or a DB.
* *
* Multiple threads can invoke const methods on an Iterator without * Multiple threads can invoke const methods on an Iterator without
* external synchronization, but if any of the threads may call a * external synchronization, but if any of the threads may call a
* non-const method, all threads accessing the same Iterator must use * non-const method, all threads accessing the same Iterator must use
* external synchronization. * external synchronization.
*/ */
public class Iterator { public class Iterator {
...@@ -50,7 +50,7 @@ public class Iterator { ...@@ -50,7 +50,7 @@ public class Iterator {
assert(isInitialized()); assert(isInitialized());
seekToLast0(nativeHandle_); seekToLast0(nativeHandle_);
} }
/** /**
* Moves to the next entry in the source. After this call, Valid() is * Moves to the next entry in the source. After this call, Valid() is
* true iff the iterator was not positioned at the last entry in the source. * true iff the iterator was not positioned at the last entry in the source.
...@@ -60,7 +60,7 @@ public class Iterator { ...@@ -60,7 +60,7 @@ public class Iterator {
assert(isInitialized()); assert(isInitialized());
next0(nativeHandle_); next0(nativeHandle_);
} }
/** /**
* Moves to the previous entry in the source. After this call, Valid() is * Moves to the previous entry in the source. After this call, Valid() is
* true iff the iterator was not positioned at the first entry in source. * true iff the iterator was not positioned at the first entry in source.
...@@ -73,7 +73,7 @@ public class Iterator { ...@@ -73,7 +73,7 @@ public class Iterator {
/** /**
* Return the key for the current entry. The underlying storage for * Return the key for the current entry. The underlying storage for
* the returned slice is valid only until the next modification of * the returned slice is valid only until the next modification of
* the iterator. * the iterator.
* REQUIRES: Valid() * REQUIRES: Valid()
* @return key for the current entry. * @return key for the current entry.
...@@ -84,9 +84,9 @@ public class Iterator { ...@@ -84,9 +84,9 @@ public class Iterator {
} }
/** /**
* Return the value for the current entry. The underlying storage for * Return the value for the current entry. The underlying storage for
* the returned slice is valid only until the next modification of * the returned slice is valid only until the next modification of
* the iterator. * the iterator.
* REQUIRES: !AtEnd() && !AtStart() * REQUIRES: !AtEnd() && !AtStart()
* @return value for the current entry. * @return value for the current entry.
*/ */
...@@ -106,11 +106,12 @@ public class Iterator { ...@@ -106,11 +106,12 @@ public class Iterator {
} }
/** /**
* If an error has occurred, return it. Else return an ok status. * If an error has occurred, return it. Else return an ok status.
* If non-blocking IO is requested and this operation cannot be * If non-blocking IO is requested and this operation cannot be
* satisfied without doing some IO, then this returns Status::Incomplete(). * satisfied without doing some IO, then this returns Status::Incomplete().
*
*/ */
public void status(){ public void status() throws RocksDBException {
assert(isInitialized()); assert(isInitialized());
status0(nativeHandle_); status0(nativeHandle_);
} }
......
...@@ -140,9 +140,11 @@ public class RocksDB { ...@@ -140,9 +140,11 @@ public class RocksDB {
* Return a heap-allocated iterator over the contents of the database. * Return a heap-allocated iterator over the contents of the database.
* The result of newIterator() is initially invalid (caller must * The result of newIterator() is initially invalid (caller must
* call one of the Seek methods on the iterator before using it). * call one of the Seek methods on the iterator before using it).
* *
* Caller should close the iterator when it is no longer needed. * Caller should close the iterator when it is no longer needed.
* The returned iterator should be closed before this db is closed. * The returned iterator should be closed before this db is closed.
*
* @return instance of iterator object.
*/ */
public Iterator newIterator() { public Iterator newIterator() {
return new Iterator(iterator0(nativeHandle_)); return new Iterator(iterator0(nativeHandle_));
......
...@@ -80,9 +80,9 @@ jbyteArray Java_org_rocksdb_Iterator_key0( ...@@ -80,9 +80,9 @@ jbyteArray Java_org_rocksdb_Iterator_key0(
rocksdb::Slice key_slice = it->key(); rocksdb::Slice key_slice = it->key();
jbyteArray jkey = env->NewByteArray(key_slice.size()); jbyteArray jkey = env->NewByteArray(key_slice.size());
env->SetByteArrayRegion( env->SetByteArrayRegion(
jkey, 0, key_slice.size(), jkey, 0, key_slice.size(),
reinterpret_cast<const jbyte*>(key_slice.data())); reinterpret_cast<const jbyte*>(key_slice.data()));
return jkey; return jkey;
} }
...@@ -97,9 +97,9 @@ jbyteArray Java_org_rocksdb_Iterator_value0( ...@@ -97,9 +97,9 @@ jbyteArray Java_org_rocksdb_Iterator_value0(
rocksdb::Slice value_slice = it->value(); rocksdb::Slice value_slice = it->value();
jbyteArray jvalue = env->NewByteArray(value_slice.size()); jbyteArray jvalue = env->NewByteArray(value_slice.size());
env->SetByteArrayRegion( env->SetByteArrayRegion(
jvalue, 0, value_slice.size(), jvalue, 0, value_slice.size(),
reinterpret_cast<const jbyte*>(value_slice.data())); reinterpret_cast<const jbyte*>(value_slice.data()));
return jvalue; return jvalue;
} }
......
...@@ -224,7 +224,7 @@ class IteratorJni { ...@@ -224,7 +224,7 @@ class IteratorJni {
} }
// Get the field id of the member variable of org.rocksdb.Iterator // Get the field id of the member variable of org.rocksdb.Iterator
// that stores the pointer to rocksdb::Iterator // that stores the pointer to rocksdb::Iterator.
static jfieldID getHandleFieldID(JNIEnv* env) { static jfieldID getHandleFieldID(JNIEnv* env) {
static jfieldID fid = env->GetFieldID( static jfieldID fid = env->GetFieldID(
getJClass(env), "nativeHandle_", "J"); getJClass(env), "nativeHandle_", "J");
...@@ -232,7 +232,7 @@ class IteratorJni { ...@@ -232,7 +232,7 @@ class IteratorJni {
return fid; return fid;
} }
// Get the pointer to rocksdb::Iterator // Get the pointer to rocksdb::Iterator.
static rocksdb::Iterator* getHandle(JNIEnv* env, jobject jobj) { static rocksdb::Iterator* getHandle(JNIEnv* env, jobject jobj) {
return reinterpret_cast<rocksdb::Iterator*>( return reinterpret_cast<rocksdb::Iterator*>(
env->GetLongField(jobj, getHandleFieldID(env))); env->GetLongField(jobj, getHandleFieldID(env)));
......
...@@ -297,6 +297,11 @@ void Java_org_rocksdb_RocksDB_close0( ...@@ -297,6 +297,11 @@ void Java_org_rocksdb_RocksDB_close0(
rocksdb::RocksDBJni::setHandle(env, java_db, nullptr); rocksdb::RocksDBJni::setHandle(env, java_db, nullptr);
} }
/*
* Class: org_rocksdb_RocksDB
* Method: iterator0
* Signature: (J)J
*/
jlong Java_org_rocksdb_RocksDB_iterator0( jlong Java_org_rocksdb_RocksDB_iterator0(
JNIEnv* env, jobject jdb, jlong db_handle) { JNIEnv* env, jobject jdb, jlong db_handle) {
auto db = reinterpret_cast<rocksdb::DB*>(db_handle); auto db = reinterpret_cast<rocksdb::DB*>(db_handle);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册