@ -12,6 +12,56 @@
# include "rocksdb/options.h"
# include "rocksdb/options.h"
# include "rocksjni/cplusplus_to_java_convert.h"
# include "rocksjni/cplusplus_to_java_convert.h"
# include "rocksjni/portal.h"
# include "rocksjni/portal.h"
# include "util/coding.h"
/**
* @ brief Class containing compact range options for Java API
*
* An object of this class is returned as the native handle for
* ROCKSDB_NAMESPACE : : CompactRangeOptions It contains objects for various
* parameters which are passed by reference / pointer in CompactRangeOptions . We
* maintain the lifetime of these parameters ( ` full_history_ts_low ` , ` canceled ` )
* by including their values in this class .
*/
class Java_org_rocksdb_CompactRangeOptions {
public :
ROCKSDB_NAMESPACE : : CompactRangeOptions compactRangeOptions ;
private :
std : : string full_history_ts_low ;
std : : atomic < bool > canceled ;
public :
void set_full_history_ts_low ( uint64_t start , uint64_t range ) {
full_history_ts_low = " " ;
ROCKSDB_NAMESPACE : : PutFixed64 ( & full_history_ts_low , start ) ;
ROCKSDB_NAMESPACE : : PutFixed64 ( & full_history_ts_low , range ) ;
compactRangeOptions . full_history_ts_low =
new ROCKSDB_NAMESPACE : : Slice ( full_history_ts_low ) ;
}
bool read_full_history_ts_low ( uint64_t * start , uint64_t * range ) {
if ( compactRangeOptions . full_history_ts_low = = nullptr ) return false ;
ROCKSDB_NAMESPACE : : Slice read_slice (
compactRangeOptions . full_history_ts_low - > ToStringView ( ) ) ;
if ( ! ROCKSDB_NAMESPACE : : GetFixed64 ( & read_slice , start ) ) return false ;
return ROCKSDB_NAMESPACE : : GetFixed64 ( & read_slice , range ) ;
}
void set_canceled ( bool value ) {
if ( compactRangeOptions . canceled = = nullptr ) {
canceled . store ( value , std : : memory_order_seq_cst ) ;
compactRangeOptions . canceled = & canceled ;
} else {
compactRangeOptions . canceled - > store ( value , std : : memory_order_seq_cst ) ;
}
}
bool get_canceled ( ) {
return compactRangeOptions . canceled & &
compactRangeOptions . canceled - > load ( std : : memory_order_seq_cst ) ;
}
} ;
/*
/*
* Class : org_rocksdb_CompactRangeOptions
* Class : org_rocksdb_CompactRangeOptions
@ -20,8 +70,8 @@
*/
*/
jlong Java_org_rocksdb_CompactRangeOptions_newCompactRangeOptions (
jlong Java_org_rocksdb_CompactRangeOptions_newCompactRangeOptions (
JNIEnv * /*env*/ , jclass /*jclazz*/ ) {
JNIEnv * /*env*/ , jclass /*jclazz*/ ) {
auto * options = new ROCKSDB_NAMESPACE : : CompactRangeOptions ( ) ;
auto * options = new Java_org_rocksdb_ CompactRangeOptions( ) ;
return GET_CPLUSPLUS_POINTER ( options ) ;
return GET_CPLUSPLUS_POINTER ( & options - > compactRangeO ptions ) ;
}
}
/*
/*
@ -32,8 +82,9 @@ jlong Java_org_rocksdb_CompactRangeOptions_newCompactRangeOptions(
jboolean Java_org_rocksdb_CompactRangeOptions_exclusiveManualCompaction (
jboolean Java_org_rocksdb_CompactRangeOptions_exclusiveManualCompaction (
JNIEnv * /*env*/ , jobject /*jobj*/ , jlong jhandle ) {
JNIEnv * /*env*/ , jobject /*jobj*/ , jlong jhandle ) {
auto * options =
auto * options =
reinterpret_cast < ROCKSDB_NAMESPACE : : CompactRangeOptions * > ( jhandle ) ;
reinterpret_cast < Java_org_rocksdb_CompactRangeOptions * > ( jhandle ) ;
return static_cast < jboolean > ( options - > exclusive_manual_compaction ) ;
return static_cast < jboolean > (
options - > compactRangeOptions . exclusive_manual_compaction ) ;
}
}
/*
/*
@ -45,8 +96,8 @@ void Java_org_rocksdb_CompactRangeOptions_setExclusiveManualCompaction(
JNIEnv * /*env*/ , jobject /*jobj*/ , jlong jhandle ,
JNIEnv * /*env*/ , jobject /*jobj*/ , jlong jhandle ,
jboolean exclusive_manual_compaction ) {
jboolean exclusive_manual_compaction ) {
auto * options =
auto * options =
reinterpret_cast < ROCKSDB_NAMESPACE : : CompactRangeOptions * > ( jhandle ) ;
reinterpret_cast < Java_org_rocksdb_ CompactRangeOptions* > ( jhandle ) ;
options - > exclusive_manual_compaction =
options - > compactRangeOptions . exclusive_manual_compaction =
static_cast < bool > ( exclusive_manual_compaction ) ;
static_cast < bool > ( exclusive_manual_compaction ) ;
}
}
@ -58,9 +109,10 @@ void Java_org_rocksdb_CompactRangeOptions_setExclusiveManualCompaction(
jint Java_org_rocksdb_CompactRangeOptions_bottommostLevelCompaction (
jint Java_org_rocksdb_CompactRangeOptions_bottommostLevelCompaction (
JNIEnv * /*env*/ , jobject /*jobj*/ , jlong jhandle ) {
JNIEnv * /*env*/ , jobject /*jobj*/ , jlong jhandle ) {
auto * options =
auto * options =
reinterpret_cast < ROCKSDB_NAMESPACE : : CompactRangeOptions * > ( jhandle ) ;
reinterpret_cast < Java_org_rocksdb_ CompactRangeOptions* > ( jhandle ) ;
return ROCKSDB_NAMESPACE : : BottommostLevelCompactionJni : :
return ROCKSDB_NAMESPACE : : BottommostLevelCompactionJni : :
toJavaBottommostLevelCompaction ( options - > bottommost_level_compaction ) ;
toJavaBottommostLevelCompaction (
options - > compactRangeOptions . bottommost_level_compaction ) ;
}
}
/*
/*
@ -72,8 +124,8 @@ void Java_org_rocksdb_CompactRangeOptions_setBottommostLevelCompaction(
JNIEnv * /*env*/ , jobject /*jobj*/ , jlong jhandle ,
JNIEnv * /*env*/ , jobject /*jobj*/ , jlong jhandle ,
jint bottommost_level_compaction ) {
jint bottommost_level_compaction ) {
auto * options =
auto * options =
reinterpret_cast < ROCKSDB_NAMESPACE : : CompactRangeOptions * > ( jhandle ) ;
reinterpret_cast < Java_org_rocksdb_ CompactRangeOptions* > ( jhandle ) ;
options - > bottommost_level_compaction =
options - > compactRangeOptions . bottommost_level_compaction =
ROCKSDB_NAMESPACE : : BottommostLevelCompactionJni : :
ROCKSDB_NAMESPACE : : BottommostLevelCompactionJni : :
toCppBottommostLevelCompaction ( bottommost_level_compaction ) ;
toCppBottommostLevelCompaction ( bottommost_level_compaction ) ;
}
}
@ -87,8 +139,8 @@ jboolean Java_org_rocksdb_CompactRangeOptions_changeLevel(JNIEnv* /*env*/,
jobject /*jobj*/ ,
jobject /*jobj*/ ,
jlong jhandle ) {
jlong jhandle ) {
auto * options =
auto * options =
reinterpret_cast < ROCKSDB_NAMESPACE : : CompactRangeOptions * > ( jhandle ) ;
reinterpret_cast < Java_org_rocksdb_ CompactRangeOptions* > ( jhandle ) ;
return static_cast < jboolean > ( options - > change_level ) ;
return static_cast < jboolean > ( options - > compactRangeOptions . c hange_level ) ;
}
}
/*
/*
@ -99,8 +151,8 @@ jboolean Java_org_rocksdb_CompactRangeOptions_changeLevel(JNIEnv* /*env*/,
void Java_org_rocksdb_CompactRangeOptions_setChangeLevel (
void Java_org_rocksdb_CompactRangeOptions_setChangeLevel (
JNIEnv * /*env*/ , jobject /*jobj*/ , jlong jhandle , jboolean change_level ) {
JNIEnv * /*env*/ , jobject /*jobj*/ , jlong jhandle , jboolean change_level ) {
auto * options =
auto * options =
reinterpret_cast < ROCKSDB_NAMESPACE : : CompactRangeOptions * > ( jhandle ) ;
reinterpret_cast < Java_org_rocksdb_ CompactRangeOptions* > ( jhandle ) ;
options - > change_level = static_cast < bool > ( change_level ) ;
options - > compactRangeOptions . c hange_level = static_cast < bool > ( change_level ) ;
}
}
/*
/*
@ -112,8 +164,8 @@ jint Java_org_rocksdb_CompactRangeOptions_targetLevel(JNIEnv* /*env*/,
jobject /*jobj*/ ,
jobject /*jobj*/ ,
jlong jhandle ) {
jlong jhandle ) {
auto * options =
auto * options =
reinterpret_cast < ROCKSDB_NAMESPACE : : CompactRangeOptions * > ( jhandle ) ;
reinterpret_cast < Java_org_rocksdb_ CompactRangeOptions* > ( jhandle ) ;
return static_cast < jint > ( options - > target_level ) ;
return static_cast < jint > ( options - > compactRangeOptions . target_level ) ;
}
}
/*
/*
@ -126,8 +178,8 @@ void Java_org_rocksdb_CompactRangeOptions_setTargetLevel(JNIEnv* /*env*/,
jlong jhandle ,
jlong jhandle ,
jint target_level ) {
jint target_level ) {
auto * options =
auto * options =
reinterpret_cast < ROCKSDB_NAMESPACE : : CompactRangeOptions * > ( jhandle ) ;
reinterpret_cast < Java_org_rocksdb_ CompactRangeOptions* > ( jhandle ) ;
options - > target_level = static_cast < int > ( target_level ) ;
options - > compactRangeOptions . target_level = static_cast < int > ( target_level ) ;
}
}
/*
/*
@ -139,8 +191,8 @@ jint Java_org_rocksdb_CompactRangeOptions_targetPathId(JNIEnv* /*env*/,
jobject /*jobj*/ ,
jobject /*jobj*/ ,
jlong jhandle ) {
jlong jhandle ) {
auto * options =
auto * options =
reinterpret_cast < ROCKSDB_NAMESPACE : : CompactRangeOptions * > ( jhandle ) ;
reinterpret_cast < Java_org_rocksdb_ CompactRangeOptions* > ( jhandle ) ;
return static_cast < jint > ( options - > target_path_id ) ;
return static_cast < jint > ( options - > compactRangeOptions . target_path_id ) ;
}
}
/*
/*
@ -153,8 +205,9 @@ void Java_org_rocksdb_CompactRangeOptions_setTargetPathId(JNIEnv* /*env*/,
jlong jhandle ,
jlong jhandle ,
jint target_path_id ) {
jint target_path_id ) {
auto * options =
auto * options =
reinterpret_cast < ROCKSDB_NAMESPACE : : CompactRangeOptions * > ( jhandle ) ;
reinterpret_cast < Java_org_rocksdb_CompactRangeOptions * > ( jhandle ) ;
options - > target_path_id = static_cast < uint32_t > ( target_path_id ) ;
options - > compactRangeOptions . target_path_id =
static_cast < uint32_t > ( target_path_id ) ;
}
}
/*
/*
@ -166,8 +219,8 @@ jboolean Java_org_rocksdb_CompactRangeOptions_allowWriteStall(JNIEnv* /*env*/,
jobject /*jobj*/ ,
jobject /*jobj*/ ,
jlong jhandle ) {
jlong jhandle ) {
auto * options =
auto * options =
reinterpret_cast < ROCKSDB_NAMESPACE : : CompactRangeOptions * > ( jhandle ) ;
reinterpret_cast < Java_org_rocksdb_ CompactRangeOptions* > ( jhandle ) ;
return static_cast < jboolean > ( options - > allow_write_stall ) ;
return static_cast < jboolean > ( options - > compactRangeOptions . allow_write_stall ) ;
}
}
/*
/*
@ -179,8 +232,9 @@ void Java_org_rocksdb_CompactRangeOptions_setAllowWriteStall(
JNIEnv * /*env*/ , jobject /*jobj*/ , jlong jhandle ,
JNIEnv * /*env*/ , jobject /*jobj*/ , jlong jhandle ,
jboolean allow_write_stall ) {
jboolean allow_write_stall ) {
auto * options =
auto * options =
reinterpret_cast < ROCKSDB_NAMESPACE : : CompactRangeOptions * > ( jhandle ) ;
reinterpret_cast < Java_org_rocksdb_CompactRangeOptions * > ( jhandle ) ;
options - > allow_write_stall = static_cast < bool > ( allow_write_stall ) ;
options - > compactRangeOptions . allow_write_stall =
static_cast < bool > ( allow_write_stall ) ;
}
}
/*
/*
@ -192,8 +246,8 @@ jint Java_org_rocksdb_CompactRangeOptions_maxSubcompactions(JNIEnv* /*env*/,
jobject /*jobj*/ ,
jobject /*jobj*/ ,
jlong jhandle ) {
jlong jhandle ) {
auto * options =
auto * options =
reinterpret_cast < ROCKSDB_NAMESPACE : : CompactRangeOptions * > ( jhandle ) ;
reinterpret_cast < Java_org_rocksdb_ CompactRangeOptions* > ( jhandle ) ;
return static_cast < jint > ( options - > max_subcompactions ) ;
return static_cast < jint > ( options - > compactRangeOptions . max_subcompactions ) ;
}
}
/*
/*
@ -204,8 +258,70 @@ jint Java_org_rocksdb_CompactRangeOptions_maxSubcompactions(JNIEnv* /*env*/,
void Java_org_rocksdb_CompactRangeOptions_setMaxSubcompactions (
void Java_org_rocksdb_CompactRangeOptions_setMaxSubcompactions (
JNIEnv * /*env*/ , jobject /*jobj*/ , jlong jhandle , jint max_subcompactions ) {
JNIEnv * /*env*/ , jobject /*jobj*/ , jlong jhandle , jint max_subcompactions ) {
auto * options =
auto * options =
reinterpret_cast < ROCKSDB_NAMESPACE : : CompactRangeOptions * > ( jhandle ) ;
reinterpret_cast < Java_org_rocksdb_CompactRangeOptions * > ( jhandle ) ;
options - > max_subcompactions = static_cast < uint32_t > ( max_subcompactions ) ;
options - > compactRangeOptions . max_subcompactions =
static_cast < uint32_t > ( max_subcompactions ) ;
}
/*
* Class : org_rocksdb_CompactRangeOptions
* Method : setFullHistoryTSLow
* Signature : ( JJJ ) V
*/
void Java_org_rocksdb_CompactRangeOptions_setFullHistoryTSLow ( JNIEnv * , jobject ,
jlong jhandle ,
jlong start ,
jlong range ) {
auto * options =
reinterpret_cast < Java_org_rocksdb_CompactRangeOptions * > ( jhandle ) ;
options - > set_full_history_ts_low ( start , range ) ;
}
/*
* Class : org_rocksdb_CompactRangeOptions
* Method : fullHistoryTSLow
* Signature : ( J ) Lorg / rocksdb / CompactRangeOptions / Timestamp ;
*/
jobject Java_org_rocksdb_CompactRangeOptions_fullHistoryTSLow ( JNIEnv * env ,
jobject ,
jlong jhandle ) {
auto * options =
reinterpret_cast < Java_org_rocksdb_CompactRangeOptions * > ( jhandle ) ;
uint64_t start ;
uint64_t range ;
jobject result = nullptr ;
if ( options - > read_full_history_ts_low ( & start , & range ) ) {
result =
ROCKSDB_NAMESPACE : : CompactRangeOptionsTimestampJni : : fromCppTimestamp (
env , start , range ) ;
}
return result ;
}
/*
* Class : org_rocksdb_CompactRangeOptions
* Method : setCanceled
* Signature : ( JZ ) V
*/
void Java_org_rocksdb_CompactRangeOptions_setCanceled ( JNIEnv * , jobject ,
jlong jhandle ,
jboolean jcanceled ) {
auto * options =
reinterpret_cast < Java_org_rocksdb_CompactRangeOptions * > ( jhandle ) ;
options - > set_canceled ( jcanceled ) ;
}
/*
* Class : org_rocksdb_CompactRangeOptions
* Method : canceled
* Signature : ( J ) Z
*/
jboolean Java_org_rocksdb_CompactRangeOptions_canceled ( JNIEnv * , jobject ,
jlong jhandle ) {
auto * options =
reinterpret_cast < Java_org_rocksdb_CompactRangeOptions * > ( jhandle ) ;
return options - > get_canceled ( ) ;
}
}
/*
/*
@ -217,6 +333,6 @@ void Java_org_rocksdb_CompactRangeOptions_disposeInternal(JNIEnv* /*env*/,
jobject /*jobj*/ ,
jobject /*jobj*/ ,
jlong jhandle ) {
jlong jhandle ) {
auto * options =
auto * options =
reinterpret_cast < ROCKSDB_NAMESPACE : : CompactRangeOptions * > ( jhandle ) ;
reinterpret_cast < Java_org_rocksdb_ CompactRangeOptions* > ( jhandle ) ;
delete options ;
delete options ;
}
}