]> git.proxmox.com Git - ceph.git/blame - ceph/src/rocksdb/java/rocksjni/options.cc
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / rocksdb / java / rocksjni / options.cc
CommitLineData
7c673cae 1// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
11fdf7f2
TL
2// This source code is licensed under both the GPLv2 (found in the
3// COPYING file in the root directory) and Apache 2.0 License
4// (found in the LICENSE.Apache file in the root directory).
7c673cae 5//
f67539c2
TL
6// This file implements the "bridge" between Java and C++ for
7// ROCKSDB_NAMESPACE::Options.
7c673cae 8
20effc67
TL
9#include "rocksdb/options.h"
10
11fdf7f2 11#include <jni.h>
7c673cae
FG
12#include <stdio.h>
13#include <stdlib.h>
20effc67 14
7c673cae
FG
15#include <memory>
16#include <vector>
17
7c673cae 18#include "include/org_rocksdb_ColumnFamilyOptions.h"
7c673cae 19#include "include/org_rocksdb_ComparatorOptions.h"
11fdf7f2 20#include "include/org_rocksdb_DBOptions.h"
7c673cae 21#include "include/org_rocksdb_FlushOptions.h"
11fdf7f2
TL
22#include "include/org_rocksdb_Options.h"
23#include "include/org_rocksdb_ReadOptions.h"
24#include "include/org_rocksdb_WriteOptions.h"
11fdf7f2
TL
25#include "rocksdb/comparator.h"
26#include "rocksdb/convenience.h"
7c673cae 27#include "rocksdb/db.h"
11fdf7f2
TL
28#include "rocksdb/memtablerep.h"
29#include "rocksdb/merge_operator.h"
11fdf7f2
TL
30#include "rocksdb/rate_limiter.h"
31#include "rocksdb/slice_transform.h"
20effc67 32#include "rocksdb/sst_partitioner.h"
7c673cae 33#include "rocksdb/statistics.h"
7c673cae 34#include "rocksdb/table.h"
20effc67 35#include "rocksjni/comparatorjnicallback.h"
1e59de90 36#include "rocksjni/cplusplus_to_java_convert.h"
20effc67
TL
37#include "rocksjni/portal.h"
38#include "rocksjni/statisticsjni.h"
39#include "rocksjni/table_filter_jnicallback.h"
7c673cae
FG
40#include "utilities/merge_operators.h"
41
42/*
43 * Class: org_rocksdb_Options
44 * Method: newOptions
45 * Signature: ()J
46 */
1e59de90 47jlong Java_org_rocksdb_Options_newOptions__(JNIEnv*, jclass) {
f67539c2 48 auto* op = new ROCKSDB_NAMESPACE::Options();
1e59de90 49 return GET_CPLUSPLUS_POINTER(op);
7c673cae
FG
50}
51
52/*
53 * Class: org_rocksdb_Options
54 * Method: newOptions
55 * Signature: (JJ)J
56 */
1e59de90
TL
57jlong Java_org_rocksdb_Options_newOptions__JJ(JNIEnv*, jclass, jlong jdboptions,
58 jlong jcfoptions) {
f67539c2
TL
59 auto* dbOpt =
60 reinterpret_cast<const ROCKSDB_NAMESPACE::DBOptions*>(jdboptions);
61 auto* cfOpt = reinterpret_cast<const ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(
62 jcfoptions);
63 auto* op = new ROCKSDB_NAMESPACE::Options(*dbOpt, *cfOpt);
1e59de90 64 return GET_CPLUSPLUS_POINTER(op);
7c673cae
FG
65}
66
11fdf7f2
TL
67/*
68 * Class: org_rocksdb_Options
69 * Method: copyOptions
70 * Signature: (J)J
71 */
1e59de90 72jlong Java_org_rocksdb_Options_copyOptions(JNIEnv*, jclass, jlong jhandle) {
f67539c2
TL
73 auto new_opt = new ROCKSDB_NAMESPACE::Options(
74 *(reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)));
1e59de90 75 return GET_CPLUSPLUS_POINTER(new_opt);
11fdf7f2
TL
76}
77
7c673cae
FG
78/*
79 * Class: org_rocksdb_Options
80 * Method: disposeInternal
81 * Signature: (J)V
82 */
1e59de90 83void Java_org_rocksdb_Options_disposeInternal(JNIEnv*, jobject, jlong handle) {
f67539c2 84 auto* op = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(handle);
7c673cae
FG
85 assert(op != nullptr);
86 delete op;
87}
88
89/*
90 * Class: org_rocksdb_Options
91 * Method: setIncreaseParallelism
92 * Signature: (JI)V
93 */
1e59de90
TL
94void Java_org_rocksdb_Options_setIncreaseParallelism(JNIEnv*, jobject,
95 jlong jhandle,
96 jint totalThreads) {
f67539c2 97 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->IncreaseParallelism(
11fdf7f2 98 static_cast<int>(totalThreads));
7c673cae
FG
99}
100
101/*
102 * Class: org_rocksdb_Options
103 * Method: setCreateIfMissing
104 * Signature: (JZ)V
105 */
1e59de90
TL
106void Java_org_rocksdb_Options_setCreateIfMissing(JNIEnv*, jobject,
107 jlong jhandle, jboolean flag) {
f67539c2
TL
108 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->create_if_missing =
109 flag;
7c673cae
FG
110}
111
112/*
113 * Class: org_rocksdb_Options
114 * Method: createIfMissing
115 * Signature: (J)Z
116 */
1e59de90
TL
117jboolean Java_org_rocksdb_Options_createIfMissing(JNIEnv*, jobject,
118 jlong jhandle) {
f67539c2
TL
119 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
120 ->create_if_missing;
7c673cae
FG
121}
122
123/*
124 * Class: org_rocksdb_Options
125 * Method: setCreateMissingColumnFamilies
126 * Signature: (JZ)V
127 */
1e59de90
TL
128void Java_org_rocksdb_Options_setCreateMissingColumnFamilies(JNIEnv*, jobject,
129 jlong jhandle,
130 jboolean flag) {
f67539c2
TL
131 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
132 ->create_missing_column_families = flag;
7c673cae
FG
133}
134
135/*
136 * Class: org_rocksdb_Options
137 * Method: createMissingColumnFamilies
138 * Signature: (J)Z
139 */
1e59de90
TL
140jboolean Java_org_rocksdb_Options_createMissingColumnFamilies(JNIEnv*, jobject,
141 jlong jhandle) {
f67539c2 142 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 143 ->create_missing_column_families;
7c673cae
FG
144}
145
146/*
147 * Class: org_rocksdb_Options
148 * Method: setComparatorHandle
149 * Signature: (JI)V
150 */
1e59de90
TL
151void Java_org_rocksdb_Options_setComparatorHandle__JI(JNIEnv*, jobject,
152 jlong jhandle,
153 jint builtinComparator) {
7c673cae
FG
154 switch (builtinComparator) {
155 case 1:
f67539c2
TL
156 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->comparator =
157 ROCKSDB_NAMESPACE::ReverseBytewiseComparator();
7c673cae
FG
158 break;
159 default:
f67539c2
TL
160 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->comparator =
161 ROCKSDB_NAMESPACE::BytewiseComparator();
7c673cae
FG
162 break;
163 }
164}
165
166/*
167 * Class: org_rocksdb_Options
168 * Method: setComparatorHandle
11fdf7f2
TL
169 * Signature: (JJB)V
170 */
1e59de90
TL
171void Java_org_rocksdb_Options_setComparatorHandle__JJB(JNIEnv*, jobject,
172 jlong jopt_handle,
173 jlong jcomparator_handle,
174 jbyte jcomparator_type) {
f67539c2 175 ROCKSDB_NAMESPACE::Comparator* comparator = nullptr;
11fdf7f2
TL
176 switch (jcomparator_type) {
177 // JAVA_COMPARATOR
178 case 0x0:
f67539c2 179 comparator = reinterpret_cast<ROCKSDB_NAMESPACE::ComparatorJniCallback*>(
11fdf7f2
TL
180 jcomparator_handle);
181 break;
182
183 // JAVA_NATIVE_COMPARATOR_WRAPPER
f67539c2
TL
184 case 0x1:
185 comparator =
186 reinterpret_cast<ROCKSDB_NAMESPACE::Comparator*>(jcomparator_handle);
11fdf7f2
TL
187 break;
188 }
f67539c2 189 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jopt_handle);
11fdf7f2 190 opt->comparator = comparator;
7c673cae
FG
191}
192
193/*
194 * Class: org_rocksdb_Options
195 * Method: setMergeOperatorName
196 * Signature: (JJjava/lang/String)V
197 */
1e59de90
TL
198void Java_org_rocksdb_Options_setMergeOperatorName(JNIEnv* env, jobject,
199 jlong jhandle,
200 jstring jop_name) {
7c673cae 201 const char* op_name = env->GetStringUTFChars(jop_name, nullptr);
11fdf7f2 202 if (op_name == nullptr) {
7c673cae
FG
203 // exception thrown: OutOfMemoryError
204 return;
205 }
206
f67539c2 207 auto* options = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
11fdf7f2 208 options->merge_operator =
f67539c2 209 ROCKSDB_NAMESPACE::MergeOperators::CreateFromStringId(op_name);
7c673cae
FG
210
211 env->ReleaseStringUTFChars(jop_name, op_name);
212}
213
214/*
215 * Class: org_rocksdb_Options
216 * Method: setMergeOperator
217 * Signature: (JJjava/lang/String)V
218 */
1e59de90
TL
219void Java_org_rocksdb_Options_setMergeOperator(JNIEnv*, jobject, jlong jhandle,
220 jlong mergeOperatorHandle) {
f67539c2
TL
221 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->merge_operator =
222 *(reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::MergeOperator>*>(
11fdf7f2 223 mergeOperatorHandle));
7c673cae
FG
224}
225
494da23a
TL
226/*
227 * Class: org_rocksdb_Options
228 * Method: setCompactionFilterHandle
229 * Signature: (JJ)V
230 */
231void Java_org_rocksdb_Options_setCompactionFilterHandle(
1e59de90 232 JNIEnv*, jobject, jlong jopt_handle, jlong jcompactionfilter_handle) {
f67539c2
TL
233 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jopt_handle)
234 ->compaction_filter =
235 reinterpret_cast<ROCKSDB_NAMESPACE::CompactionFilter*>(
236 jcompactionfilter_handle);
494da23a
TL
237}
238
239/*
240 * Class: org_rocksdb_Options
241 * Method: setCompactionFilterFactoryHandle
242 * Signature: (JJ)V
243 */
244void JNICALL Java_org_rocksdb_Options_setCompactionFilterFactoryHandle(
245 JNIEnv*, jobject, jlong jopt_handle,
246 jlong jcompactionfilterfactory_handle) {
f67539c2
TL
247 auto* cff_factory = reinterpret_cast<
248 std::shared_ptr<ROCKSDB_NAMESPACE::CompactionFilterFactory>*>(
249 jcompactionfilterfactory_handle);
250 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jopt_handle)
251 ->compaction_filter_factory = *cff_factory;
494da23a
TL
252}
253
7c673cae
FG
254/*
255 * Class: org_rocksdb_Options
256 * Method: setWriteBufferSize
257 * Signature: (JJ)I
258 */
1e59de90
TL
259void Java_org_rocksdb_Options_setWriteBufferSize(JNIEnv* env, jobject,
260 jlong jhandle,
261 jlong jwrite_buffer_size) {
f67539c2
TL
262 auto s = ROCKSDB_NAMESPACE::JniUtil::check_if_jlong_fits_size_t(
263 jwrite_buffer_size);
7c673cae 264 if (s.ok()) {
f67539c2 265 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->write_buffer_size =
7c673cae
FG
266 jwrite_buffer_size;
267 } else {
f67539c2 268 ROCKSDB_NAMESPACE::IllegalArgumentExceptionJni::ThrowNew(env, s);
7c673cae
FG
269 }
270}
271
494da23a
TL
272/*
273 * Class: org_rocksdb_Options
274 * Method: setWriteBufferManager
275 * Signature: (JJ)V
276 */
277void Java_org_rocksdb_Options_setWriteBufferManager(
278 JNIEnv*, jobject, jlong joptions_handle,
279 jlong jwrite_buffer_manager_handle) {
280 auto* write_buffer_manager =
f67539c2
TL
281 reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::WriteBufferManager>*>(
282 jwrite_buffer_manager_handle);
283 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(joptions_handle)
284 ->write_buffer_manager = *write_buffer_manager;
494da23a
TL
285}
286
7c673cae
FG
287/*
288 * Class: org_rocksdb_Options
289 * Method: writeBufferSize
290 * Signature: (J)J
291 */
1e59de90
TL
292jlong Java_org_rocksdb_Options_writeBufferSize(JNIEnv*, jobject,
293 jlong jhandle) {
f67539c2
TL
294 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
295 ->write_buffer_size;
7c673cae
FG
296}
297
298/*
299 * Class: org_rocksdb_Options
300 * Method: setMaxWriteBufferNumber
301 * Signature: (JI)V
302 */
303void Java_org_rocksdb_Options_setMaxWriteBufferNumber(
1e59de90 304 JNIEnv*, jobject, jlong jhandle, jint jmax_write_buffer_number) {
f67539c2
TL
305 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
306 ->max_write_buffer_number = jmax_write_buffer_number;
7c673cae
FG
307}
308
309/*
310 * Class: org_rocksdb_Options
11fdf7f2
TL
311 * Method: setStatistics
312 * Signature: (JJ)V
7c673cae 313 */
1e59de90
TL
314void Java_org_rocksdb_Options_setStatistics(JNIEnv*, jobject, jlong jhandle,
315 jlong jstatistics_handle) {
f67539c2
TL
316 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
317 auto* pSptr =
318 reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::StatisticsJni>*>(
319 jstatistics_handle);
11fdf7f2 320 opt->statistics = *pSptr;
7c673cae
FG
321}
322
323/*
324 * Class: org_rocksdb_Options
11fdf7f2 325 * Method: statistics
7c673cae
FG
326 * Signature: (J)J
327 */
1e59de90 328jlong Java_org_rocksdb_Options_statistics(JNIEnv*, jobject, jlong jhandle) {
f67539c2
TL
329 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
330 std::shared_ptr<ROCKSDB_NAMESPACE::Statistics> sptr = opt->statistics;
11fdf7f2
TL
331 if (sptr == nullptr) {
332 return 0;
333 } else {
f67539c2
TL
334 std::shared_ptr<ROCKSDB_NAMESPACE::Statistics>* pSptr =
335 new std::shared_ptr<ROCKSDB_NAMESPACE::Statistics>(sptr);
1e59de90 336 return GET_CPLUSPLUS_POINTER(pSptr);
11fdf7f2 337 }
7c673cae
FG
338}
339
340/*
341 * Class: org_rocksdb_Options
342 * Method: maxWriteBufferNumber
343 * Signature: (J)I
344 */
1e59de90
TL
345jint Java_org_rocksdb_Options_maxWriteBufferNumber(JNIEnv*, jobject,
346 jlong jhandle) {
f67539c2
TL
347 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
348 ->max_write_buffer_number;
7c673cae
FG
349}
350
351/*
352 * Class: org_rocksdb_Options
353 * Method: errorIfExists
354 * Signature: (J)Z
355 */
1e59de90
TL
356jboolean Java_org_rocksdb_Options_errorIfExists(JNIEnv*, jobject,
357 jlong jhandle) {
f67539c2
TL
358 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
359 ->error_if_exists;
7c673cae
FG
360}
361
362/*
363 * Class: org_rocksdb_Options
364 * Method: setErrorIfExists
365 * Signature: (JZ)V
366 */
1e59de90
TL
367void Java_org_rocksdb_Options_setErrorIfExists(JNIEnv*, jobject, jlong jhandle,
368 jboolean error_if_exists) {
f67539c2 369 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->error_if_exists =
7c673cae
FG
370 static_cast<bool>(error_if_exists);
371}
372
373/*
374 * Class: org_rocksdb_Options
375 * Method: paranoidChecks
376 * Signature: (J)Z
377 */
1e59de90
TL
378jboolean Java_org_rocksdb_Options_paranoidChecks(JNIEnv*, jobject,
379 jlong jhandle) {
f67539c2
TL
380 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
381 ->paranoid_checks;
7c673cae
FG
382}
383
384/*
385 * Class: org_rocksdb_Options
386 * Method: setParanoidChecks
387 * Signature: (JZ)V
388 */
1e59de90
TL
389void Java_org_rocksdb_Options_setParanoidChecks(JNIEnv*, jobject, jlong jhandle,
390 jboolean paranoid_checks) {
f67539c2 391 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->paranoid_checks =
7c673cae
FG
392 static_cast<bool>(paranoid_checks);
393}
394
395/*
396 * Class: org_rocksdb_Options
397 * Method: setEnv
398 * Signature: (JJ)V
399 */
1e59de90
TL
400void Java_org_rocksdb_Options_setEnv(JNIEnv*, jobject, jlong jhandle,
401 jlong jenv) {
f67539c2
TL
402 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->env =
403 reinterpret_cast<ROCKSDB_NAMESPACE::Env*>(jenv);
7c673cae
FG
404}
405
406/*
407 * Class: org_rocksdb_Options
408 * Method: setMaxTotalWalSize
409 * Signature: (JJ)V
410 */
1e59de90
TL
411void Java_org_rocksdb_Options_setMaxTotalWalSize(JNIEnv*, jobject,
412 jlong jhandle,
413 jlong jmax_total_wal_size) {
f67539c2 414 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->max_total_wal_size =
7c673cae
FG
415 static_cast<jlong>(jmax_total_wal_size);
416}
417
418/*
419 * Class: org_rocksdb_Options
420 * Method: maxTotalWalSize
421 * Signature: (J)J
422 */
1e59de90
TL
423jlong Java_org_rocksdb_Options_maxTotalWalSize(JNIEnv*, jobject,
424 jlong jhandle) {
f67539c2
TL
425 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
426 ->max_total_wal_size;
7c673cae
FG
427}
428
429/*
430 * Class: org_rocksdb_Options
431 * Method: maxOpenFiles
432 * Signature: (J)I
433 */
1e59de90 434jint Java_org_rocksdb_Options_maxOpenFiles(JNIEnv*, jobject, jlong jhandle) {
f67539c2 435 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->max_open_files;
7c673cae
FG
436}
437
438/*
439 * Class: org_rocksdb_Options
440 * Method: setMaxOpenFiles
441 * Signature: (JI)V
442 */
1e59de90
TL
443void Java_org_rocksdb_Options_setMaxOpenFiles(JNIEnv*, jobject, jlong jhandle,
444 jint max_open_files) {
f67539c2 445 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->max_open_files =
7c673cae
FG
446 static_cast<int>(max_open_files);
447}
448
449/*
450 * Class: org_rocksdb_Options
451 * Method: setMaxFileOpeningThreads
452 * Signature: (JI)V
453 */
454void Java_org_rocksdb_Options_setMaxFileOpeningThreads(
494da23a 455 JNIEnv*, jobject, jlong jhandle, jint jmax_file_opening_threads) {
f67539c2
TL
456 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
457 ->max_file_opening_threads = static_cast<int>(jmax_file_opening_threads);
7c673cae
FG
458}
459
460/*
461 * Class: org_rocksdb_Options
462 * Method: maxFileOpeningThreads
463 * Signature: (J)I
464 */
1e59de90
TL
465jint Java_org_rocksdb_Options_maxFileOpeningThreads(JNIEnv*, jobject,
466 jlong jhandle) {
f67539c2 467 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
468 return static_cast<int>(opt->max_file_opening_threads);
469}
470
471/*
472 * Class: org_rocksdb_Options
473 * Method: useFsync
474 * Signature: (J)Z
475 */
1e59de90 476jboolean Java_org_rocksdb_Options_useFsync(JNIEnv*, jobject, jlong jhandle) {
f67539c2 477 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->use_fsync;
7c673cae
FG
478}
479
480/*
481 * Class: org_rocksdb_Options
482 * Method: setUseFsync
483 * Signature: (JZ)V
484 */
1e59de90
TL
485void Java_org_rocksdb_Options_setUseFsync(JNIEnv*, jobject, jlong jhandle,
486 jboolean use_fsync) {
f67539c2 487 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->use_fsync =
7c673cae
FG
488 static_cast<bool>(use_fsync);
489}
490
491/*
492 * Class: org_rocksdb_Options
493 * Method: setDbPaths
494 * Signature: (J[Ljava/lang/String;[J)V
495 */
1e59de90
TL
496void Java_org_rocksdb_Options_setDbPaths(JNIEnv* env, jobject, jlong jhandle,
497 jobjectArray jpaths,
498 jlongArray jtarget_sizes) {
f67539c2 499 std::vector<ROCKSDB_NAMESPACE::DbPath> db_paths;
7c673cae 500 jlong* ptr_jtarget_size = env->GetLongArrayElements(jtarget_sizes, nullptr);
11fdf7f2
TL
501 if (ptr_jtarget_size == nullptr) {
502 // exception thrown: OutOfMemoryError
503 return;
7c673cae
FG
504 }
505
506 jboolean has_exception = JNI_FALSE;
507 const jsize len = env->GetArrayLength(jpaths);
11fdf7f2
TL
508 for (jsize i = 0; i < len; i++) {
509 jobject jpath =
510 reinterpret_cast<jstring>(env->GetObjectArrayElement(jpaths, i));
511 if (env->ExceptionCheck()) {
7c673cae 512 // exception thrown: ArrayIndexOutOfBoundsException
11fdf7f2 513 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size, JNI_ABORT);
7c673cae
FG
514 return;
515 }
f67539c2 516 std::string path = ROCKSDB_NAMESPACE::JniUtil::copyStdString(
7c673cae
FG
517 env, static_cast<jstring>(jpath), &has_exception);
518 env->DeleteLocalRef(jpath);
519
11fdf7f2
TL
520 if (has_exception == JNI_TRUE) {
521 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size, JNI_ABORT);
522 return;
7c673cae
FG
523 }
524
525 jlong jtarget_size = ptr_jtarget_size[i];
526
527 db_paths.push_back(
f67539c2 528 ROCKSDB_NAMESPACE::DbPath(path, static_cast<uint64_t>(jtarget_size)));
7c673cae
FG
529 }
530
531 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size, JNI_ABORT);
532
f67539c2 533 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
534 opt->db_paths = db_paths;
535}
536
537/*
538 * Class: org_rocksdb_Options
539 * Method: dbPathsLen
540 * Signature: (J)J
541 */
1e59de90 542jlong Java_org_rocksdb_Options_dbPathsLen(JNIEnv*, jobject, jlong jhandle) {
f67539c2 543 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
544 return static_cast<jlong>(opt->db_paths.size());
545}
546
547/*
548 * Class: org_rocksdb_Options
549 * Method: dbPaths
550 * Signature: (J[Ljava/lang/String;[J)V
551 */
1e59de90
TL
552void Java_org_rocksdb_Options_dbPaths(JNIEnv* env, jobject, jlong jhandle,
553 jobjectArray jpaths,
554 jlongArray jtarget_sizes) {
20effc67
TL
555 jboolean is_copy;
556 jlong* ptr_jtarget_size = env->GetLongArrayElements(jtarget_sizes, &is_copy);
11fdf7f2
TL
557 if (ptr_jtarget_size == nullptr) {
558 // exception thrown: OutOfMemoryError
559 return;
7c673cae
FG
560 }
561
f67539c2 562 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae 563 const jsize len = env->GetArrayLength(jpaths);
11fdf7f2 564 for (jsize i = 0; i < len; i++) {
f67539c2 565 ROCKSDB_NAMESPACE::DbPath db_path = opt->db_paths[i];
7c673cae
FG
566
567 jstring jpath = env->NewStringUTF(db_path.path.c_str());
11fdf7f2 568 if (jpath == nullptr) {
7c673cae 569 // exception thrown: OutOfMemoryError
11fdf7f2 570 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size, JNI_ABORT);
7c673cae
FG
571 return;
572 }
573 env->SetObjectArrayElement(jpaths, i, jpath);
11fdf7f2 574 if (env->ExceptionCheck()) {
7c673cae
FG
575 // exception thrown: ArrayIndexOutOfBoundsException
576 env->DeleteLocalRef(jpath);
11fdf7f2 577 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size, JNI_ABORT);
7c673cae
FG
578 return;
579 }
580
581 ptr_jtarget_size[i] = static_cast<jint>(db_path.target_size);
582 }
583
20effc67
TL
584 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size,
585 is_copy == JNI_TRUE ? 0 : JNI_ABORT);
7c673cae
FG
586}
587
588/*
589 * Class: org_rocksdb_Options
590 * Method: dbLogDir
591 * Signature: (J)Ljava/lang/String
592 */
1e59de90 593jstring Java_org_rocksdb_Options_dbLogDir(JNIEnv* env, jobject, jlong jhandle) {
7c673cae 594 return env->NewStringUTF(
f67539c2
TL
595 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
596 ->db_log_dir.c_str());
7c673cae
FG
597}
598
599/*
600 * Class: org_rocksdb_Options
601 * Method: setDbLogDir
602 * Signature: (JLjava/lang/String)V
603 */
1e59de90
TL
604void Java_org_rocksdb_Options_setDbLogDir(JNIEnv* env, jobject, jlong jhandle,
605 jstring jdb_log_dir) {
7c673cae 606 const char* log_dir = env->GetStringUTFChars(jdb_log_dir, nullptr);
11fdf7f2 607 if (log_dir == nullptr) {
7c673cae
FG
608 // exception thrown: OutOfMemoryError
609 return;
610 }
f67539c2
TL
611 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->db_log_dir.assign(
612 log_dir);
7c673cae
FG
613 env->ReleaseStringUTFChars(jdb_log_dir, log_dir);
614}
615
616/*
617 * Class: org_rocksdb_Options
618 * Method: walDir
619 * Signature: (J)Ljava/lang/String
620 */
1e59de90 621jstring Java_org_rocksdb_Options_walDir(JNIEnv* env, jobject, jlong jhandle) {
7c673cae 622 return env->NewStringUTF(
f67539c2 623 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->wal_dir.c_str());
7c673cae
FG
624}
625
626/*
627 * Class: org_rocksdb_Options
628 * Method: setWalDir
629 * Signature: (JLjava/lang/String)V
630 */
1e59de90
TL
631void Java_org_rocksdb_Options_setWalDir(JNIEnv* env, jobject, jlong jhandle,
632 jstring jwal_dir) {
7c673cae 633 const char* wal_dir = env->GetStringUTFChars(jwal_dir, nullptr);
11fdf7f2 634 if (wal_dir == nullptr) {
7c673cae
FG
635 // exception thrown: OutOfMemoryError
636 return;
637 }
f67539c2
TL
638 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->wal_dir.assign(
639 wal_dir);
7c673cae
FG
640 env->ReleaseStringUTFChars(jwal_dir, wal_dir);
641}
642
643/*
644 * Class: org_rocksdb_Options
645 * Method: deleteObsoleteFilesPeriodMicros
646 * Signature: (J)J
647 */
1e59de90
TL
648jlong Java_org_rocksdb_Options_deleteObsoleteFilesPeriodMicros(JNIEnv*, jobject,
649 jlong jhandle) {
f67539c2 650 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
7c673cae
FG
651 ->delete_obsolete_files_period_micros;
652}
653
654/*
655 * Class: org_rocksdb_Options
656 * Method: setDeleteObsoleteFilesPeriodMicros
657 * Signature: (JJ)V
658 */
1e59de90
TL
659void Java_org_rocksdb_Options_setDeleteObsoleteFilesPeriodMicros(JNIEnv*,
660 jobject,
661 jlong jhandle,
662 jlong micros) {
f67539c2 663 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 664 ->delete_obsolete_files_period_micros = static_cast<int64_t>(micros);
7c673cae
FG
665}
666
7c673cae
FG
667/*
668 * Class: org_rocksdb_Options
669 * Method: maxBackgroundCompactions
670 * Signature: (J)I
671 */
1e59de90
TL
672jint Java_org_rocksdb_Options_maxBackgroundCompactions(JNIEnv*, jobject,
673 jlong jhandle) {
f67539c2 674 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 675 ->max_background_compactions;
7c673cae
FG
676}
677
678/*
679 * Class: org_rocksdb_Options
680 * Method: setMaxBackgroundCompactions
681 * Signature: (JI)V
682 */
1e59de90
TL
683void Java_org_rocksdb_Options_setMaxBackgroundCompactions(JNIEnv*, jobject,
684 jlong jhandle,
685 jint max) {
f67539c2
TL
686 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
687 ->max_background_compactions = static_cast<int>(max);
7c673cae
FG
688}
689
690/*
691 * Class: org_rocksdb_Options
692 * Method: setMaxSubcompactions
693 * Signature: (JI)V
694 */
1e59de90
TL
695void Java_org_rocksdb_Options_setMaxSubcompactions(JNIEnv*, jobject,
696 jlong jhandle, jint max) {
f67539c2 697 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->max_subcompactions =
11fdf7f2 698 static_cast<int32_t>(max);
7c673cae
FG
699}
700
701/*
702 * Class: org_rocksdb_Options
703 * Method: maxSubcompactions
704 * Signature: (J)I
705 */
1e59de90
TL
706jint Java_org_rocksdb_Options_maxSubcompactions(JNIEnv*, jobject,
707 jlong jhandle) {
f67539c2
TL
708 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
709 ->max_subcompactions;
7c673cae
FG
710}
711
712/*
713 * Class: org_rocksdb_Options
714 * Method: maxBackgroundFlushes
715 * Signature: (J)I
716 */
1e59de90
TL
717jint Java_org_rocksdb_Options_maxBackgroundFlushes(JNIEnv*, jobject,
718 jlong jhandle) {
f67539c2
TL
719 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
720 ->max_background_flushes;
7c673cae
FG
721}
722
723/*
724 * Class: org_rocksdb_Options
725 * Method: setMaxBackgroundFlushes
726 * Signature: (JI)V
727 */
728void Java_org_rocksdb_Options_setMaxBackgroundFlushes(
494da23a 729 JNIEnv*, jobject, jlong jhandle, jint max_background_flushes) {
f67539c2
TL
730 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
731 ->max_background_flushes = static_cast<int>(max_background_flushes);
7c673cae
FG
732}
733
11fdf7f2
TL
734/*
735 * Class: org_rocksdb_Options
736 * Method: maxBackgroundJobs
737 * Signature: (J)I
738 */
1e59de90
TL
739jint Java_org_rocksdb_Options_maxBackgroundJobs(JNIEnv*, jobject,
740 jlong jhandle) {
f67539c2
TL
741 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
742 ->max_background_jobs;
11fdf7f2
TL
743}
744
745/*
746 * Class: org_rocksdb_Options
747 * Method: setMaxBackgroundJobs
748 * Signature: (JI)V
749 */
1e59de90
TL
750void Java_org_rocksdb_Options_setMaxBackgroundJobs(JNIEnv*, jobject,
751 jlong jhandle,
752 jint max_background_jobs) {
f67539c2 753 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->max_background_jobs =
11fdf7f2
TL
754 static_cast<int>(max_background_jobs);
755}
756
7c673cae
FG
757/*
758 * Class: org_rocksdb_Options
759 * Method: maxLogFileSize
760 * Signature: (J)J
761 */
1e59de90 762jlong Java_org_rocksdb_Options_maxLogFileSize(JNIEnv*, jobject, jlong jhandle) {
f67539c2
TL
763 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
764 ->max_log_file_size;
7c673cae
FG
765}
766
767/*
768 * Class: org_rocksdb_Options
769 * Method: setMaxLogFileSize
770 * Signature: (JJ)V
771 */
1e59de90
TL
772void Java_org_rocksdb_Options_setMaxLogFileSize(JNIEnv* env, jobject,
773 jlong jhandle,
774 jlong max_log_file_size) {
f67539c2
TL
775 auto s =
776 ROCKSDB_NAMESPACE::JniUtil::check_if_jlong_fits_size_t(max_log_file_size);
7c673cae 777 if (s.ok()) {
f67539c2 778 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->max_log_file_size =
7c673cae
FG
779 max_log_file_size;
780 } else {
f67539c2 781 ROCKSDB_NAMESPACE::IllegalArgumentExceptionJni::ThrowNew(env, s);
7c673cae
FG
782 }
783}
784
785/*
786 * Class: org_rocksdb_Options
787 * Method: logFileTimeToRoll
788 * Signature: (J)J
789 */
1e59de90
TL
790jlong Java_org_rocksdb_Options_logFileTimeToRoll(JNIEnv*, jobject,
791 jlong jhandle) {
f67539c2
TL
792 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
793 ->log_file_time_to_roll;
7c673cae
FG
794}
795
796/*
797 * Class: org_rocksdb_Options
798 * Method: setLogFileTimeToRoll
799 * Signature: (JJ)V
800 */
801void Java_org_rocksdb_Options_setLogFileTimeToRoll(
494da23a 802 JNIEnv* env, jobject, jlong jhandle, jlong log_file_time_to_roll) {
f67539c2
TL
803 auto s = ROCKSDB_NAMESPACE::JniUtil::check_if_jlong_fits_size_t(
804 log_file_time_to_roll);
7c673cae 805 if (s.ok()) {
f67539c2
TL
806 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
807 ->log_file_time_to_roll = log_file_time_to_roll;
7c673cae 808 } else {
f67539c2 809 ROCKSDB_NAMESPACE::IllegalArgumentExceptionJni::ThrowNew(env, s);
7c673cae
FG
810 }
811}
812
813/*
814 * Class: org_rocksdb_Options
815 * Method: keepLogFileNum
816 * Signature: (J)J
817 */
1e59de90 818jlong Java_org_rocksdb_Options_keepLogFileNum(JNIEnv*, jobject, jlong jhandle) {
f67539c2
TL
819 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
820 ->keep_log_file_num;
7c673cae
FG
821}
822
823/*
824 * Class: org_rocksdb_Options
825 * Method: setKeepLogFileNum
826 * Signature: (JJ)V
827 */
1e59de90
TL
828void Java_org_rocksdb_Options_setKeepLogFileNum(JNIEnv* env, jobject,
829 jlong jhandle,
830 jlong keep_log_file_num) {
f67539c2
TL
831 auto s =
832 ROCKSDB_NAMESPACE::JniUtil::check_if_jlong_fits_size_t(keep_log_file_num);
7c673cae 833 if (s.ok()) {
f67539c2 834 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->keep_log_file_num =
7c673cae
FG
835 keep_log_file_num;
836 } else {
f67539c2 837 ROCKSDB_NAMESPACE::IllegalArgumentExceptionJni::ThrowNew(env, s);
7c673cae
FG
838 }
839}
840
841/*
842 * Class: org_rocksdb_Options
843 * Method: recycleLogFileNum
844 * Signature: (J)J
845 */
1e59de90
TL
846jlong Java_org_rocksdb_Options_recycleLogFileNum(JNIEnv*, jobject,
847 jlong jhandle) {
f67539c2
TL
848 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
849 ->recycle_log_file_num;
7c673cae
FG
850}
851
852/*
853 * Class: org_rocksdb_Options
854 * Method: setRecycleLogFileNum
855 * Signature: (JJ)V
856 */
1e59de90
TL
857void Java_org_rocksdb_Options_setRecycleLogFileNum(JNIEnv* env, jobject,
858 jlong jhandle,
859 jlong recycle_log_file_num) {
f67539c2
TL
860 auto s = ROCKSDB_NAMESPACE::JniUtil::check_if_jlong_fits_size_t(
861 recycle_log_file_num);
7c673cae 862 if (s.ok()) {
f67539c2
TL
863 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
864 ->recycle_log_file_num = recycle_log_file_num;
7c673cae 865 } else {
f67539c2 866 ROCKSDB_NAMESPACE::IllegalArgumentExceptionJni::ThrowNew(env, s);
7c673cae
FG
867 }
868}
869
870/*
871 * Class: org_rocksdb_Options
872 * Method: maxManifestFileSize
873 * Signature: (J)J
874 */
1e59de90
TL
875jlong Java_org_rocksdb_Options_maxManifestFileSize(JNIEnv*, jobject,
876 jlong jhandle) {
f67539c2
TL
877 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
878 ->max_manifest_file_size;
7c673cae
FG
879}
880
881/*
882 * Method: memTableFactoryName
883 * Signature: (J)Ljava/lang/String
884 */
1e59de90
TL
885jstring Java_org_rocksdb_Options_memTableFactoryName(JNIEnv* env, jobject,
886 jlong jhandle) {
f67539c2
TL
887 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
888 ROCKSDB_NAMESPACE::MemTableRepFactory* tf = opt->memtable_factory.get();
7c673cae
FG
889
890 // Should never be nullptr.
891 // Default memtable factory is SkipListFactory
892 assert(tf);
893
894 // temporarly fix for the historical typo
895 if (strcmp(tf->Name(), "HashLinkListRepFactory") == 0) {
896 return env->NewStringUTF("HashLinkedListRepFactory");
897 }
898
899 return env->NewStringUTF(tf->Name());
900}
901
20effc67
TL
902static std::vector<ROCKSDB_NAMESPACE::DbPath>
903rocksdb_convert_cf_paths_from_java_helper(JNIEnv* env, jobjectArray path_array,
904 jlongArray size_array,
905 jboolean* has_exception) {
906 jboolean copy_str_has_exception;
907 std::vector<std::string> paths = ROCKSDB_NAMESPACE::JniUtil::copyStrings(
908 env, path_array, &copy_str_has_exception);
909 if (JNI_TRUE == copy_str_has_exception) {
910 // Exception thrown
911 *has_exception = JNI_TRUE;
912 return {};
913 }
914
915 if (static_cast<size_t>(env->GetArrayLength(size_array)) != paths.size()) {
916 ROCKSDB_NAMESPACE::IllegalArgumentExceptionJni::ThrowNew(
917 env,
918 ROCKSDB_NAMESPACE::Status::InvalidArgument(
919 ROCKSDB_NAMESPACE::Slice("There should be a corresponding target "
920 "size for every path and vice versa.")));
921 *has_exception = JNI_TRUE;
922 return {};
923 }
924
925 jlong* size_array_ptr = env->GetLongArrayElements(size_array, nullptr);
926 if (nullptr == size_array_ptr) {
927 // exception thrown: OutOfMemoryError
1e59de90 928 *has_exception = JNI_TRUE;
20effc67
TL
929 return {};
930 }
931 std::vector<ROCKSDB_NAMESPACE::DbPath> cf_paths;
932 for (size_t i = 0; i < paths.size(); ++i) {
933 jlong target_size = size_array_ptr[i];
934 if (target_size < 0) {
935 ROCKSDB_NAMESPACE::IllegalArgumentExceptionJni::ThrowNew(
936 env,
937 ROCKSDB_NAMESPACE::Status::InvalidArgument(ROCKSDB_NAMESPACE::Slice(
938 "Path target size has to be positive.")));
939 *has_exception = JNI_TRUE;
940 env->ReleaseLongArrayElements(size_array, size_array_ptr, JNI_ABORT);
941 return {};
942 }
943 cf_paths.push_back(ROCKSDB_NAMESPACE::DbPath(
944 paths[i], static_cast<uint64_t>(target_size)));
945 }
946
947 env->ReleaseLongArrayElements(size_array, size_array_ptr, JNI_ABORT);
948
949 return cf_paths;
950}
951
952/*
953 * Class: org_rocksdb_Options
954 * Method: setCfPaths
955 * Signature: (J[Ljava/lang/String;[J)V
956 */
957void Java_org_rocksdb_Options_setCfPaths(JNIEnv* env, jclass, jlong jhandle,
958 jobjectArray path_array,
959 jlongArray size_array) {
960 auto* options = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
1e59de90 961 jboolean has_exception = JNI_FALSE;
20effc67
TL
962 std::vector<ROCKSDB_NAMESPACE::DbPath> cf_paths =
963 rocksdb_convert_cf_paths_from_java_helper(env, path_array, size_array,
964 &has_exception);
965 if (JNI_FALSE == has_exception) {
966 options->cf_paths = std::move(cf_paths);
967 }
968}
969
970/*
971 * Class: org_rocksdb_Options
972 * Method: cfPathsLen
973 * Signature: (J)J
974 */
975jlong Java_org_rocksdb_Options_cfPathsLen(JNIEnv*, jclass, jlong jhandle) {
976 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
977 return static_cast<jlong>(opt->cf_paths.size());
978}
979
980template <typename T>
981static void rocksdb_convert_cf_paths_to_java_helper(JNIEnv* env, jlong jhandle,
982 jobjectArray jpaths,
983 jlongArray jtarget_sizes) {
984 jboolean is_copy;
985 jlong* ptr_jtarget_size = env->GetLongArrayElements(jtarget_sizes, &is_copy);
986 if (ptr_jtarget_size == nullptr) {
987 // exception thrown: OutOfMemoryError
988 return;
989 }
990
991 auto* opt = reinterpret_cast<T*>(jhandle);
992 const jsize len = env->GetArrayLength(jpaths);
993 for (jsize i = 0; i < len; i++) {
994 ROCKSDB_NAMESPACE::DbPath cf_path = opt->cf_paths[i];
995
996 jstring jpath = env->NewStringUTF(cf_path.path.c_str());
997 if (jpath == nullptr) {
998 // exception thrown: OutOfMemoryError
999 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size, JNI_ABORT);
1000 return;
1001 }
1002 env->SetObjectArrayElement(jpaths, i, jpath);
1003 if (env->ExceptionCheck()) {
1004 // exception thrown: ArrayIndexOutOfBoundsException
1005 env->DeleteLocalRef(jpath);
1006 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size, JNI_ABORT);
1007 return;
1008 }
1009
1010 ptr_jtarget_size[i] = static_cast<jint>(cf_path.target_size);
1011
1012 env->DeleteLocalRef(jpath);
1013 }
1014
1015 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size,
1016 is_copy ? 0 : JNI_ABORT);
1017}
1018
1019/*
1020 * Class: org_rocksdb_Options
1021 * Method: cfPaths
1022 * Signature: (J[Ljava/lang/String;[J)V
1023 */
1024void Java_org_rocksdb_Options_cfPaths(JNIEnv* env, jclass, jlong jhandle,
1025 jobjectArray jpaths,
1026 jlongArray jtarget_sizes) {
1027 rocksdb_convert_cf_paths_to_java_helper<ROCKSDB_NAMESPACE::Options>(
1028 env, jhandle, jpaths, jtarget_sizes);
1029}
1030
7c673cae
FG
1031/*
1032 * Class: org_rocksdb_Options
1033 * Method: setMaxManifestFileSize
1034 * Signature: (JJ)V
1035 */
1036void Java_org_rocksdb_Options_setMaxManifestFileSize(
494da23a 1037 JNIEnv*, jobject, jlong jhandle, jlong max_manifest_file_size) {
f67539c2
TL
1038 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1039 ->max_manifest_file_size = static_cast<int64_t>(max_manifest_file_size);
7c673cae
FG
1040}
1041
1042/*
1043 * Method: setMemTableFactory
1044 * Signature: (JJ)V
1045 */
1e59de90
TL
1046void Java_org_rocksdb_Options_setMemTableFactory(JNIEnv*, jobject,
1047 jlong jhandle,
1048 jlong jfactory_handle) {
f67539c2
TL
1049 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1050 ->memtable_factory.reset(
1051 reinterpret_cast<ROCKSDB_NAMESPACE::MemTableRepFactory*>(
1052 jfactory_handle));
7c673cae
FG
1053}
1054
1055/*
1056 * Class: org_rocksdb_Options
1057 * Method: setRateLimiter
1058 * Signature: (JJ)V
1059 */
1e59de90
TL
1060void Java_org_rocksdb_Options_setRateLimiter(JNIEnv*, jobject, jlong jhandle,
1061 jlong jrate_limiter_handle) {
f67539c2
TL
1062 std::shared_ptr<ROCKSDB_NAMESPACE::RateLimiter>* pRateLimiter =
1063 reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::RateLimiter>*>(
7c673cae 1064 jrate_limiter_handle);
f67539c2
TL
1065 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->rate_limiter =
1066 *pRateLimiter;
11fdf7f2
TL
1067}
1068
1069/*
1070 * Class: org_rocksdb_Options
1071 * Method: setSstFileManager
1072 * Signature: (JJ)V
1073 */
1074void Java_org_rocksdb_Options_setSstFileManager(
494da23a 1075 JNIEnv*, jobject, jlong jhandle, jlong jsst_file_manager_handle) {
11fdf7f2 1076 auto* sptr_sst_file_manager =
f67539c2 1077 reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::SstFileManager>*>(
11fdf7f2 1078 jsst_file_manager_handle);
f67539c2 1079 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->sst_file_manager =
11fdf7f2 1080 *sptr_sst_file_manager;
7c673cae
FG
1081}
1082
1083/*
1084 * Class: org_rocksdb_Options
1085 * Method: setLogger
1086 * Signature: (JJ)V
1087 */
1e59de90
TL
1088void Java_org_rocksdb_Options_setLogger(JNIEnv*, jobject, jlong jhandle,
1089 jlong jlogger_handle) {
f67539c2
TL
1090 std::shared_ptr<ROCKSDB_NAMESPACE::LoggerJniCallback>* pLogger =
1091 reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::LoggerJniCallback>*>(
7c673cae 1092 jlogger_handle);
f67539c2 1093 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->info_log = *pLogger;
7c673cae
FG
1094}
1095
1096/*
1097 * Class: org_rocksdb_Options
1098 * Method: setInfoLogLevel
1099 * Signature: (JB)V
1100 */
1e59de90
TL
1101void Java_org_rocksdb_Options_setInfoLogLevel(JNIEnv*, jobject, jlong jhandle,
1102 jbyte jlog_level) {
f67539c2
TL
1103 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->info_log_level =
1104 static_cast<ROCKSDB_NAMESPACE::InfoLogLevel>(jlog_level);
7c673cae
FG
1105}
1106
1107/*
1108 * Class: org_rocksdb_Options
1109 * Method: infoLogLevel
1110 * Signature: (J)B
1111 */
1e59de90 1112jbyte Java_org_rocksdb_Options_infoLogLevel(JNIEnv*, jobject, jlong jhandle) {
7c673cae 1113 return static_cast<jbyte>(
f67539c2 1114 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->info_log_level);
7c673cae
FG
1115}
1116
1117/*
1118 * Class: org_rocksdb_Options
1119 * Method: tableCacheNumshardbits
1120 * Signature: (J)I
1121 */
1e59de90
TL
1122jint Java_org_rocksdb_Options_tableCacheNumshardbits(JNIEnv*, jobject,
1123 jlong jhandle) {
f67539c2
TL
1124 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1125 ->table_cache_numshardbits;
7c673cae
FG
1126}
1127
1128/*
1129 * Class: org_rocksdb_Options
1130 * Method: setTableCacheNumshardbits
1131 * Signature: (JI)V
1132 */
1133void Java_org_rocksdb_Options_setTableCacheNumshardbits(
494da23a 1134 JNIEnv*, jobject, jlong jhandle, jint table_cache_numshardbits) {
f67539c2
TL
1135 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1136 ->table_cache_numshardbits = static_cast<int>(table_cache_numshardbits);
7c673cae
FG
1137}
1138
1139/*
1140 * Method: useFixedLengthPrefixExtractor
1141 * Signature: (JI)V
1142 */
1143void Java_org_rocksdb_Options_useFixedLengthPrefixExtractor(
494da23a 1144 JNIEnv*, jobject, jlong jhandle, jint jprefix_length) {
f67539c2
TL
1145 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1146 ->prefix_extractor.reset(ROCKSDB_NAMESPACE::NewFixedPrefixTransform(
1147 static_cast<int>(jprefix_length)));
7c673cae
FG
1148}
1149
1150/*
1151 * Method: useCappedPrefixExtractor
1152 * Signature: (JI)V
1153 */
1e59de90
TL
1154void Java_org_rocksdb_Options_useCappedPrefixExtractor(JNIEnv*, jobject,
1155 jlong jhandle,
1156 jint jprefix_length) {
f67539c2
TL
1157 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1158 ->prefix_extractor.reset(ROCKSDB_NAMESPACE::NewCappedPrefixTransform(
1159 static_cast<int>(jprefix_length)));
7c673cae
FG
1160}
1161
1162/*
1163 * Class: org_rocksdb_Options
1164 * Method: walTtlSeconds
1165 * Signature: (J)J
1166 */
1e59de90 1167jlong Java_org_rocksdb_Options_walTtlSeconds(JNIEnv*, jobject, jlong jhandle) {
f67539c2
TL
1168 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1169 ->WAL_ttl_seconds;
7c673cae
FG
1170}
1171
1172/*
1173 * Class: org_rocksdb_Options
1174 * Method: setWalTtlSeconds
1175 * Signature: (JJ)V
1176 */
1e59de90
TL
1177void Java_org_rocksdb_Options_setWalTtlSeconds(JNIEnv*, jobject, jlong jhandle,
1178 jlong WAL_ttl_seconds) {
f67539c2 1179 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->WAL_ttl_seconds =
7c673cae
FG
1180 static_cast<int64_t>(WAL_ttl_seconds);
1181}
1182
1183/*
1184 * Class: org_rocksdb_Options
1185 * Method: walTtlSeconds
1186 * Signature: (J)J
1187 */
1e59de90 1188jlong Java_org_rocksdb_Options_walSizeLimitMB(JNIEnv*, jobject, jlong jhandle) {
f67539c2
TL
1189 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1190 ->WAL_size_limit_MB;
7c673cae
FG
1191}
1192
1193/*
1194 * Class: org_rocksdb_Options
1195 * Method: setWalSizeLimitMB
1196 * Signature: (JJ)V
1197 */
1e59de90
TL
1198void Java_org_rocksdb_Options_setWalSizeLimitMB(JNIEnv*, jobject, jlong jhandle,
1199 jlong WAL_size_limit_MB) {
f67539c2 1200 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->WAL_size_limit_MB =
7c673cae
FG
1201 static_cast<int64_t>(WAL_size_limit_MB);
1202}
1203
20effc67
TL
1204/*
1205 * Class: org_rocksdb_Options
1206 * Method: setMaxWriteBatchGroupSizeBytes
1207 * Signature: (JJ)V
1208 */
1209void Java_org_rocksdb_Options_setMaxWriteBatchGroupSizeBytes(
1210 JNIEnv*, jclass, jlong jhandle, jlong jmax_write_batch_group_size_bytes) {
1211 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
1212 opt->max_write_batch_group_size_bytes =
1213 static_cast<uint64_t>(jmax_write_batch_group_size_bytes);
1214}
1215
1216/*
1217 * Class: org_rocksdb_Options
1218 * Method: maxWriteBatchGroupSizeBytes
1219 * Signature: (J)J
1220 */
1221jlong Java_org_rocksdb_Options_maxWriteBatchGroupSizeBytes(JNIEnv*, jclass,
1222 jlong jhandle) {
1223 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
1224 return static_cast<jlong>(opt->max_write_batch_group_size_bytes);
1225}
1226
7c673cae
FG
1227/*
1228 * Class: org_rocksdb_Options
1229 * Method: manifestPreallocationSize
1230 * Signature: (J)J
1231 */
1e59de90
TL
1232jlong Java_org_rocksdb_Options_manifestPreallocationSize(JNIEnv*, jobject,
1233 jlong jhandle) {
f67539c2 1234 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
7c673cae
FG
1235 ->manifest_preallocation_size;
1236}
1237
1238/*
1239 * Class: org_rocksdb_Options
1240 * Method: setManifestPreallocationSize
1241 * Signature: (JJ)V
1242 */
1243void Java_org_rocksdb_Options_setManifestPreallocationSize(
494da23a 1244 JNIEnv* env, jobject, jlong jhandle, jlong preallocation_size) {
f67539c2
TL
1245 auto s = ROCKSDB_NAMESPACE::JniUtil::check_if_jlong_fits_size_t(
1246 preallocation_size);
7c673cae 1247 if (s.ok()) {
f67539c2
TL
1248 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1249 ->manifest_preallocation_size = preallocation_size;
7c673cae 1250 } else {
f67539c2 1251 ROCKSDB_NAMESPACE::IllegalArgumentExceptionJni::ThrowNew(env, s);
7c673cae
FG
1252 }
1253}
1254
1255/*
1256 * Method: setTableFactory
1257 * Signature: (JJ)V
1258 */
1e59de90
TL
1259void Java_org_rocksdb_Options_setTableFactory(JNIEnv*, jobject, jlong jhandle,
1260 jlong jtable_factory_handle) {
f67539c2 1261 auto* options = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
494da23a 1262 auto* table_factory =
f67539c2 1263 reinterpret_cast<ROCKSDB_NAMESPACE::TableFactory*>(jtable_factory_handle);
494da23a 1264 options->table_factory.reset(table_factory);
7c673cae
FG
1265}
1266
20effc67
TL
1267/*
1268 * Method: setSstPartitionerFactory
1269 * Signature: (JJ)V
1270 */
1271void Java_org_rocksdb_Options_setSstPartitionerFactory(JNIEnv*, jobject,
1272 jlong jhandle,
1273 jlong factory_handle) {
1274 auto* options = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
1275 auto factory = reinterpret_cast<
1276 std::shared_ptr<ROCKSDB_NAMESPACE::SstPartitionerFactory>*>(
1277 factory_handle);
1278 options->sst_partitioner_factory = *factory;
1279}
1280
1281/*
1282 * Class: org_rocksdb_Options
1283 * Method: setCompactionThreadLimiter
1284 * Signature: (JJ)V
1285 */
1286void Java_org_rocksdb_Options_setCompactionThreadLimiter(
1287 JNIEnv*, jclass, jlong jhandle, jlong jlimiter_handle) {
1288 auto* options = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
1289 auto* limiter = reinterpret_cast<
1290 std::shared_ptr<ROCKSDB_NAMESPACE::ConcurrentTaskLimiter>*>(
1291 jlimiter_handle);
1292 options->compaction_thread_limiter = *limiter;
1293}
1294
7c673cae
FG
1295/*
1296 * Class: org_rocksdb_Options
1297 * Method: allowMmapReads
1298 * Signature: (J)Z
1299 */
1e59de90
TL
1300jboolean Java_org_rocksdb_Options_allowMmapReads(JNIEnv*, jobject,
1301 jlong jhandle) {
f67539c2
TL
1302 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1303 ->allow_mmap_reads;
7c673cae
FG
1304}
1305
1306/*
1307 * Class: org_rocksdb_Options
1308 * Method: setAllowMmapReads
1309 * Signature: (JZ)V
1310 */
1e59de90
TL
1311void Java_org_rocksdb_Options_setAllowMmapReads(JNIEnv*, jobject, jlong jhandle,
1312 jboolean allow_mmap_reads) {
f67539c2 1313 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->allow_mmap_reads =
7c673cae
FG
1314 static_cast<bool>(allow_mmap_reads);
1315}
1316
1317/*
1318 * Class: org_rocksdb_Options
1319 * Method: allowMmapWrites
1320 * Signature: (J)Z
1321 */
1e59de90
TL
1322jboolean Java_org_rocksdb_Options_allowMmapWrites(JNIEnv*, jobject,
1323 jlong jhandle) {
f67539c2
TL
1324 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1325 ->allow_mmap_writes;
7c673cae
FG
1326}
1327
1328/*
1329 * Class: org_rocksdb_Options
1330 * Method: setAllowMmapWrites
1331 * Signature: (JZ)V
1332 */
1e59de90
TL
1333void Java_org_rocksdb_Options_setAllowMmapWrites(JNIEnv*, jobject,
1334 jlong jhandle,
1335 jboolean allow_mmap_writes) {
f67539c2 1336 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->allow_mmap_writes =
7c673cae
FG
1337 static_cast<bool>(allow_mmap_writes);
1338}
1339
1340/*
1341 * Class: org_rocksdb_Options
1342 * Method: useDirectReads
1343 * Signature: (J)Z
1344 */
1e59de90
TL
1345jboolean Java_org_rocksdb_Options_useDirectReads(JNIEnv*, jobject,
1346 jlong jhandle) {
f67539c2
TL
1347 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1348 ->use_direct_reads;
7c673cae
FG
1349}
1350
1351/*
1352 * Class: org_rocksdb_Options
1353 * Method: setUseDirectReads
1354 * Signature: (JZ)V
1355 */
1e59de90
TL
1356void Java_org_rocksdb_Options_setUseDirectReads(JNIEnv*, jobject, jlong jhandle,
1357 jboolean use_direct_reads) {
f67539c2 1358 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->use_direct_reads =
7c673cae
FG
1359 static_cast<bool>(use_direct_reads);
1360}
1361
1362/*
1363 * Class: org_rocksdb_Options
1364 * Method: useDirectIoForFlushAndCompaction
1365 * Signature: (J)Z
1366 */
1367jboolean Java_org_rocksdb_Options_useDirectIoForFlushAndCompaction(
494da23a 1368 JNIEnv*, jobject, jlong jhandle) {
f67539c2 1369 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
7c673cae
FG
1370 ->use_direct_io_for_flush_and_compaction;
1371}
1372
1373/*
1374 * Class: org_rocksdb_Options
1375 * Method: setUseDirectIoForFlushAndCompaction
1376 * Signature: (JZ)V
1377 */
1378void Java_org_rocksdb_Options_setUseDirectIoForFlushAndCompaction(
494da23a 1379 JNIEnv*, jobject, jlong jhandle,
7c673cae 1380 jboolean use_direct_io_for_flush_and_compaction) {
f67539c2 1381 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
7c673cae
FG
1382 ->use_direct_io_for_flush_and_compaction =
1383 static_cast<bool>(use_direct_io_for_flush_and_compaction);
1384}
1385
1386/*
1387 * Class: org_rocksdb_Options
1388 * Method: setAllowFAllocate
1389 * Signature: (JZ)V
1390 */
1e59de90
TL
1391void Java_org_rocksdb_Options_setAllowFAllocate(JNIEnv*, jobject, jlong jhandle,
1392 jboolean jallow_fallocate) {
f67539c2 1393 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->allow_fallocate =
7c673cae
FG
1394 static_cast<bool>(jallow_fallocate);
1395}
1396
1397/*
1398 * Class: org_rocksdb_Options
1399 * Method: allowFAllocate
1400 * Signature: (J)Z
1401 */
1e59de90
TL
1402jboolean Java_org_rocksdb_Options_allowFAllocate(JNIEnv*, jobject,
1403 jlong jhandle) {
f67539c2 1404 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
1405 return static_cast<jboolean>(opt->allow_fallocate);
1406}
1407
1408/*
1409 * Class: org_rocksdb_Options
1410 * Method: isFdCloseOnExec
1411 * Signature: (J)Z
1412 */
1e59de90
TL
1413jboolean Java_org_rocksdb_Options_isFdCloseOnExec(JNIEnv*, jobject,
1414 jlong jhandle) {
f67539c2
TL
1415 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1416 ->is_fd_close_on_exec;
7c673cae
FG
1417}
1418
1419/*
1420 * Class: org_rocksdb_Options
1421 * Method: setIsFdCloseOnExec
1422 * Signature: (JZ)V
1423 */
1e59de90
TL
1424void Java_org_rocksdb_Options_setIsFdCloseOnExec(JNIEnv*, jobject,
1425 jlong jhandle,
1426 jboolean is_fd_close_on_exec) {
f67539c2 1427 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->is_fd_close_on_exec =
7c673cae
FG
1428 static_cast<bool>(is_fd_close_on_exec);
1429}
1430
1431/*
1432 * Class: org_rocksdb_Options
1433 * Method: statsDumpPeriodSec
1434 * Signature: (J)I
1435 */
1e59de90
TL
1436jint Java_org_rocksdb_Options_statsDumpPeriodSec(JNIEnv*, jobject,
1437 jlong jhandle) {
f67539c2
TL
1438 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1439 ->stats_dump_period_sec;
7c673cae
FG
1440}
1441
1442/*
1443 * Class: org_rocksdb_Options
1444 * Method: setStatsDumpPeriodSec
1445 * Signature: (JI)V
1446 */
1447void Java_org_rocksdb_Options_setStatsDumpPeriodSec(
1e59de90 1448 JNIEnv*, jobject, jlong jhandle, jint jstats_dump_period_sec) {
f67539c2
TL
1449 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1450 ->stats_dump_period_sec =
1451 static_cast<unsigned int>(jstats_dump_period_sec);
1452}
1453
1454/*
1455 * Class: org_rocksdb_Options
1456 * Method: statsPersistPeriodSec
1457 * Signature: (J)I
1458 */
1e59de90
TL
1459jint Java_org_rocksdb_Options_statsPersistPeriodSec(JNIEnv*, jobject,
1460 jlong jhandle) {
f67539c2
TL
1461 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1462 ->stats_persist_period_sec;
1463}
1464
1465/*
1466 * Class: org_rocksdb_Options
1467 * Method: setStatsPersistPeriodSec
1468 * Signature: (JI)V
1469 */
1470void Java_org_rocksdb_Options_setStatsPersistPeriodSec(
1471 JNIEnv*, jobject, jlong jhandle, jint jstats_persist_period_sec) {
1472 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1473 ->stats_persist_period_sec =
1474 static_cast<unsigned int>(jstats_persist_period_sec);
1475}
1476
1477/*
1478 * Class: org_rocksdb_Options
1479 * Method: statsHistoryBufferSize
1480 * Signature: (J)J
1481 */
1e59de90
TL
1482jlong Java_org_rocksdb_Options_statsHistoryBufferSize(JNIEnv*, jobject,
1483 jlong jhandle) {
f67539c2
TL
1484 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1485 ->stats_history_buffer_size;
1486}
1487
1488/*
1489 * Class: org_rocksdb_Options
1490 * Method: setStatsHistoryBufferSize
1491 * Signature: (JJ)V
1492 */
1493void Java_org_rocksdb_Options_setStatsHistoryBufferSize(
1494 JNIEnv*, jobject, jlong jhandle, jlong jstats_history_buffer_size) {
1495 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1496 ->stats_history_buffer_size =
1497 static_cast<size_t>(jstats_history_buffer_size);
7c673cae
FG
1498}
1499
1500/*
1501 * Class: org_rocksdb_Options
1502 * Method: adviseRandomOnOpen
1503 * Signature: (J)Z
1504 */
1e59de90
TL
1505jboolean Java_org_rocksdb_Options_adviseRandomOnOpen(JNIEnv*, jobject,
1506 jlong jhandle) {
f67539c2
TL
1507 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1508 ->advise_random_on_open;
7c673cae
FG
1509}
1510
1511/*
1512 * Class: org_rocksdb_Options
1513 * Method: setAdviseRandomOnOpen
1514 * Signature: (JZ)V
1515 */
1516void Java_org_rocksdb_Options_setAdviseRandomOnOpen(
1e59de90 1517 JNIEnv*, jobject, jlong jhandle, jboolean advise_random_on_open) {
f67539c2
TL
1518 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1519 ->advise_random_on_open = static_cast<bool>(advise_random_on_open);
7c673cae
FG
1520}
1521
1522/*
1523 * Class: org_rocksdb_Options
1524 * Method: setDbWriteBufferSize
1525 * Signature: (JJ)V
1526 */
1527void Java_org_rocksdb_Options_setDbWriteBufferSize(
1e59de90 1528 JNIEnv*, jobject, jlong jhandle, jlong jdb_write_buffer_size) {
f67539c2 1529 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
1530 opt->db_write_buffer_size = static_cast<size_t>(jdb_write_buffer_size);
1531}
1532
1533/*
1534 * Class: org_rocksdb_Options
1535 * Method: dbWriteBufferSize
1536 * Signature: (J)J
1537 */
1e59de90
TL
1538jlong Java_org_rocksdb_Options_dbWriteBufferSize(JNIEnv*, jobject,
1539 jlong jhandle) {
f67539c2 1540 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
1541 return static_cast<jlong>(opt->db_write_buffer_size);
1542}
1543
1544/*
1545 * Class: org_rocksdb_Options
1546 * Method: setAccessHintOnCompactionStart
1547 * Signature: (JB)V
1548 */
1549void Java_org_rocksdb_Options_setAccessHintOnCompactionStart(
1e59de90 1550 JNIEnv*, jobject, jlong jhandle, jbyte jaccess_hint_value) {
f67539c2 1551 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae 1552 opt->access_hint_on_compaction_start =
f67539c2 1553 ROCKSDB_NAMESPACE::AccessHintJni::toCppAccessHint(jaccess_hint_value);
7c673cae
FG
1554}
1555
1556/*
1557 * Class: org_rocksdb_Options
1558 * Method: accessHintOnCompactionStart
1559 * Signature: (J)B
1560 */
1e59de90
TL
1561jbyte Java_org_rocksdb_Options_accessHintOnCompactionStart(JNIEnv*, jobject,
1562 jlong jhandle) {
f67539c2
TL
1563 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
1564 return ROCKSDB_NAMESPACE::AccessHintJni::toJavaAccessHint(
7c673cae
FG
1565 opt->access_hint_on_compaction_start);
1566}
1567
7c673cae
FG
1568/*
1569 * Class: org_rocksdb_Options
1570 * Method: setCompactionReadaheadSize
1571 * Signature: (JJ)V
1572 */
1573void Java_org_rocksdb_Options_setCompactionReadaheadSize(
1e59de90 1574 JNIEnv*, jobject, jlong jhandle, jlong jcompaction_readahead_size) {
f67539c2 1575 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
1576 opt->compaction_readahead_size =
1577 static_cast<size_t>(jcompaction_readahead_size);
1578}
1579
1580/*
1581 * Class: org_rocksdb_Options
1582 * Method: compactionReadaheadSize
1583 * Signature: (J)J
1584 */
1e59de90
TL
1585jlong Java_org_rocksdb_Options_compactionReadaheadSize(JNIEnv*, jobject,
1586 jlong jhandle) {
f67539c2 1587 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
1588 return static_cast<jlong>(opt->compaction_readahead_size);
1589}
1590
1591/*
1592 * Class: org_rocksdb_Options
1593 * Method: setRandomAccessMaxBufferSize
1594 * Signature: (JJ)V
1595 */
1596void Java_org_rocksdb_Options_setRandomAccessMaxBufferSize(
494da23a 1597 JNIEnv*, jobject, jlong jhandle, jlong jrandom_access_max_buffer_size) {
f67539c2 1598 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
1599 opt->random_access_max_buffer_size =
1600 static_cast<size_t>(jrandom_access_max_buffer_size);
1601}
1602
1603/*
1604 * Class: org_rocksdb_Options
1605 * Method: randomAccessMaxBufferSize
1606 * Signature: (J)J
1607 */
1e59de90
TL
1608jlong Java_org_rocksdb_Options_randomAccessMaxBufferSize(JNIEnv*, jobject,
1609 jlong jhandle) {
f67539c2 1610 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
1611 return static_cast<jlong>(opt->random_access_max_buffer_size);
1612}
1613
1614/*
1615 * Class: org_rocksdb_Options
1616 * Method: setWritableFileMaxBufferSize
1617 * Signature: (JJ)V
1618 */
1619void Java_org_rocksdb_Options_setWritableFileMaxBufferSize(
1e59de90 1620 JNIEnv*, jobject, jlong jhandle, jlong jwritable_file_max_buffer_size) {
f67539c2 1621 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
1622 opt->writable_file_max_buffer_size =
1623 static_cast<size_t>(jwritable_file_max_buffer_size);
1624}
1625
1626/*
1627 * Class: org_rocksdb_Options
1628 * Method: writableFileMaxBufferSize
1629 * Signature: (J)J
1630 */
1e59de90
TL
1631jlong Java_org_rocksdb_Options_writableFileMaxBufferSize(JNIEnv*, jobject,
1632 jlong jhandle) {
f67539c2 1633 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
1634 return static_cast<jlong>(opt->writable_file_max_buffer_size);
1635}
1636
1637/*
1638 * Class: org_rocksdb_Options
1639 * Method: useAdaptiveMutex
1640 * Signature: (J)Z
1641 */
1e59de90
TL
1642jboolean Java_org_rocksdb_Options_useAdaptiveMutex(JNIEnv*, jobject,
1643 jlong jhandle) {
f67539c2
TL
1644 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1645 ->use_adaptive_mutex;
7c673cae
FG
1646}
1647
1648/*
1649 * Class: org_rocksdb_Options
1650 * Method: setUseAdaptiveMutex
1651 * Signature: (JZ)V
1652 */
1e59de90
TL
1653void Java_org_rocksdb_Options_setUseAdaptiveMutex(JNIEnv*, jobject,
1654 jlong jhandle,
1655 jboolean use_adaptive_mutex) {
f67539c2 1656 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->use_adaptive_mutex =
7c673cae
FG
1657 static_cast<bool>(use_adaptive_mutex);
1658}
1659
1660/*
1661 * Class: org_rocksdb_Options
1662 * Method: bytesPerSync
1663 * Signature: (J)J
1664 */
1e59de90 1665jlong Java_org_rocksdb_Options_bytesPerSync(JNIEnv*, jobject, jlong jhandle) {
f67539c2 1666 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->bytes_per_sync;
7c673cae
FG
1667}
1668
1669/*
1670 * Class: org_rocksdb_Options
1671 * Method: setBytesPerSync
1672 * Signature: (JJ)V
1673 */
1e59de90
TL
1674void Java_org_rocksdb_Options_setBytesPerSync(JNIEnv*, jobject, jlong jhandle,
1675 jlong bytes_per_sync) {
f67539c2 1676 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->bytes_per_sync =
7c673cae
FG
1677 static_cast<int64_t>(bytes_per_sync);
1678}
1679
1680/*
1681 * Class: org_rocksdb_Options
1682 * Method: setWalBytesPerSync
1683 * Signature: (JJ)V
1684 */
1e59de90
TL
1685void Java_org_rocksdb_Options_setWalBytesPerSync(JNIEnv*, jobject,
1686 jlong jhandle,
1687 jlong jwal_bytes_per_sync) {
f67539c2 1688 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->wal_bytes_per_sync =
7c673cae
FG
1689 static_cast<int64_t>(jwal_bytes_per_sync);
1690}
1691
1692/*
1693 * Class: org_rocksdb_Options
1694 * Method: walBytesPerSync
1695 * Signature: (J)J
1696 */
1e59de90
TL
1697jlong Java_org_rocksdb_Options_walBytesPerSync(JNIEnv*, jobject,
1698 jlong jhandle) {
f67539c2 1699 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
1700 return static_cast<jlong>(opt->wal_bytes_per_sync);
1701}
1702
f67539c2
TL
1703/*
1704 * Class: org_rocksdb_Options
1705 * Method: setStrictBytesPerSync
1706 * Signature: (JZ)V
1707 */
1708void Java_org_rocksdb_Options_setStrictBytesPerSync(
1709 JNIEnv*, jobject, jlong jhandle, jboolean jstrict_bytes_per_sync) {
1710 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1711 ->strict_bytes_per_sync = jstrict_bytes_per_sync == JNI_TRUE;
1712}
1713
1714/*
1715 * Class: org_rocksdb_Options
1716 * Method: strictBytesPerSync
1717 * Signature: (J)Z
1718 */
1e59de90
TL
1719jboolean Java_org_rocksdb_Options_strictBytesPerSync(JNIEnv*, jobject,
1720 jlong jhandle) {
f67539c2
TL
1721 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
1722 return static_cast<jboolean>(opt->strict_bytes_per_sync);
1723}
1724
20effc67
TL
1725// Note: the RocksJava API currently only supports EventListeners implemented in
1726// Java. It could be extended in future to also support adding/removing
1727// EventListeners implemented in C++.
1728static void rocksdb_set_event_listeners_helper(
1729 JNIEnv* env, jlongArray jlistener_array,
1730 std::vector<std::shared_ptr<ROCKSDB_NAMESPACE::EventListener>>&
1731 listener_sptr_vec) {
1732 jlong* ptr_jlistener_array =
1733 env->GetLongArrayElements(jlistener_array, nullptr);
1734 if (ptr_jlistener_array == nullptr) {
1735 // exception thrown: OutOfMemoryError
1736 return;
1737 }
1738 const jsize array_size = env->GetArrayLength(jlistener_array);
1739 listener_sptr_vec.clear();
1740 for (jsize i = 0; i < array_size; ++i) {
1741 const auto& listener_sptr =
1742 *reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::EventListener>*>(
1743 ptr_jlistener_array[i]);
1744 listener_sptr_vec.push_back(listener_sptr);
1745 }
1746}
1747
1748/*
1749 * Class: org_rocksdb_Options
1750 * Method: setEventListeners
1751 * Signature: (J[J)V
1752 */
1753void Java_org_rocksdb_Options_setEventListeners(JNIEnv* env, jclass,
1754 jlong jhandle,
1755 jlongArray jlistener_array) {
1756 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
1757 rocksdb_set_event_listeners_helper(env, jlistener_array, opt->listeners);
1758}
1759
1760// Note: the RocksJava API currently only supports EventListeners implemented in
1761// Java. It could be extended in future to also support adding/removing
1762// EventListeners implemented in C++.
1763static jobjectArray rocksdb_get_event_listeners_helper(
1764 JNIEnv* env,
1765 const std::vector<std::shared_ptr<ROCKSDB_NAMESPACE::EventListener>>&
1766 listener_sptr_vec) {
1767 jsize sz = static_cast<jsize>(listener_sptr_vec.size());
1768 jclass jlistener_clazz =
1769 ROCKSDB_NAMESPACE::AbstractEventListenerJni::getJClass(env);
1770 jobjectArray jlisteners = env->NewObjectArray(sz, jlistener_clazz, nullptr);
1771 if (jlisteners == nullptr) {
1772 // exception thrown: OutOfMemoryError
1773 return nullptr;
1774 }
1775 for (jsize i = 0; i < sz; ++i) {
1776 const auto* jni_cb =
1777 static_cast<ROCKSDB_NAMESPACE::EventListenerJniCallback*>(
1778 listener_sptr_vec[i].get());
1779 env->SetObjectArrayElement(jlisteners, i, jni_cb->GetJavaObject());
1780 }
1781 return jlisteners;
1782}
1783
1784/*
1785 * Class: org_rocksdb_Options
1786 * Method: eventListeners
1787 * Signature: (J)[Lorg/rocksdb/AbstractEventListener;
1788 */
1789jobjectArray Java_org_rocksdb_Options_eventListeners(JNIEnv* env, jclass,
1790 jlong jhandle) {
1791 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
1792 return rocksdb_get_event_listeners_helper(env, opt->listeners);
1793}
1794
7c673cae
FG
1795/*
1796 * Class: org_rocksdb_Options
1797 * Method: setEnableThreadTracking
1798 * Signature: (JZ)V
1799 */
1800void Java_org_rocksdb_Options_setEnableThreadTracking(
494da23a 1801 JNIEnv*, jobject, jlong jhandle, jboolean jenable_thread_tracking) {
f67539c2 1802 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
1803 opt->enable_thread_tracking = static_cast<bool>(jenable_thread_tracking);
1804}
1805
1806/*
1807 * Class: org_rocksdb_Options
1808 * Method: enableThreadTracking
1809 * Signature: (J)Z
1810 */
1e59de90
TL
1811jboolean Java_org_rocksdb_Options_enableThreadTracking(JNIEnv*, jobject,
1812 jlong jhandle) {
f67539c2 1813 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
1814 return static_cast<jboolean>(opt->enable_thread_tracking);
1815}
1816
1817/*
1818 * Class: org_rocksdb_Options
1819 * Method: setDelayedWriteRate
1820 * Signature: (JJ)V
1821 */
1e59de90
TL
1822void Java_org_rocksdb_Options_setDelayedWriteRate(JNIEnv*, jobject,
1823 jlong jhandle,
1824 jlong jdelayed_write_rate) {
f67539c2 1825 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
1826 opt->delayed_write_rate = static_cast<uint64_t>(jdelayed_write_rate);
1827}
1828
1829/*
1830 * Class: org_rocksdb_Options
1831 * Method: delayedWriteRate
1832 * Signature: (J)J
1833 */
1e59de90
TL
1834jlong Java_org_rocksdb_Options_delayedWriteRate(JNIEnv*, jobject,
1835 jlong jhandle) {
f67539c2 1836 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
1837 return static_cast<jlong>(opt->delayed_write_rate);
1838}
1839
494da23a
TL
1840/*
1841 * Class: org_rocksdb_Options
1842 * Method: setEnablePipelinedWrite
1843 * Signature: (JZ)V
1844 */
1845void Java_org_rocksdb_Options_setEnablePipelinedWrite(
1846 JNIEnv*, jobject, jlong jhandle, jboolean jenable_pipelined_write) {
f67539c2 1847 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
494da23a
TL
1848 opt->enable_pipelined_write = jenable_pipelined_write == JNI_TRUE;
1849}
1850
1851/*
1852 * Class: org_rocksdb_Options
1853 * Method: enablePipelinedWrite
1854 * Signature: (J)Z
1855 */
1e59de90
TL
1856jboolean Java_org_rocksdb_Options_enablePipelinedWrite(JNIEnv*, jobject,
1857 jlong jhandle) {
f67539c2 1858 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
494da23a
TL
1859 return static_cast<jboolean>(opt->enable_pipelined_write);
1860}
1861
f67539c2
TL
1862/*
1863 * Class: org_rocksdb_Options
1864 * Method: setUnorderedWrite
1865 * Signature: (JZ)V
1866 */
1e59de90
TL
1867void Java_org_rocksdb_Options_setUnorderedWrite(JNIEnv*, jobject, jlong jhandle,
1868 jboolean unordered_write) {
f67539c2
TL
1869 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->unordered_write =
1870 static_cast<bool>(unordered_write);
1871}
1872
1873/*
1874 * Class: org_rocksdb_Options
1875 * Method: unorderedWrite
1876 * Signature: (J)Z
1877 */
1e59de90
TL
1878jboolean Java_org_rocksdb_Options_unorderedWrite(JNIEnv*, jobject,
1879 jlong jhandle) {
f67539c2
TL
1880 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1881 ->unordered_write;
1882}
1883
7c673cae
FG
1884/*
1885 * Class: org_rocksdb_Options
1886 * Method: setAllowConcurrentMemtableWrite
1887 * Signature: (JZ)V
1888 */
1e59de90
TL
1889void Java_org_rocksdb_Options_setAllowConcurrentMemtableWrite(JNIEnv*, jobject,
1890 jlong jhandle,
1891 jboolean allow) {
f67539c2 1892 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 1893 ->allow_concurrent_memtable_write = static_cast<bool>(allow);
7c673cae
FG
1894}
1895
1896/*
1897 * Class: org_rocksdb_Options
1898 * Method: allowConcurrentMemtableWrite
1899 * Signature: (J)Z
1900 */
1e59de90
TL
1901jboolean Java_org_rocksdb_Options_allowConcurrentMemtableWrite(JNIEnv*, jobject,
1902 jlong jhandle) {
f67539c2 1903 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 1904 ->allow_concurrent_memtable_write;
7c673cae
FG
1905}
1906
1907/*
1908 * Class: org_rocksdb_Options
1909 * Method: setEnableWriteThreadAdaptiveYield
1910 * Signature: (JZ)V
1911 */
1912void Java_org_rocksdb_Options_setEnableWriteThreadAdaptiveYield(
494da23a 1913 JNIEnv*, jobject, jlong jhandle, jboolean yield) {
f67539c2 1914 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 1915 ->enable_write_thread_adaptive_yield = static_cast<bool>(yield);
7c673cae
FG
1916}
1917
1918/*
1919 * Class: org_rocksdb_Options
1920 * Method: enableWriteThreadAdaptiveYield
1921 * Signature: (J)Z
1922 */
1923jboolean Java_org_rocksdb_Options_enableWriteThreadAdaptiveYield(
494da23a 1924 JNIEnv*, jobject, jlong jhandle) {
f67539c2 1925 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 1926 ->enable_write_thread_adaptive_yield;
7c673cae
FG
1927}
1928
1929/*
1930 * Class: org_rocksdb_Options
1931 * Method: setWriteThreadMaxYieldUsec
1932 * Signature: (JJ)V
1933 */
1e59de90
TL
1934void Java_org_rocksdb_Options_setWriteThreadMaxYieldUsec(JNIEnv*, jobject,
1935 jlong jhandle,
1936 jlong max) {
f67539c2
TL
1937 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1938 ->write_thread_max_yield_usec = static_cast<int64_t>(max);
7c673cae
FG
1939}
1940
1941/*
1942 * Class: org_rocksdb_Options
1943 * Method: writeThreadMaxYieldUsec
1944 * Signature: (J)J
1945 */
1e59de90
TL
1946jlong Java_org_rocksdb_Options_writeThreadMaxYieldUsec(JNIEnv*, jobject,
1947 jlong jhandle) {
f67539c2 1948 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 1949 ->write_thread_max_yield_usec;
7c673cae
FG
1950}
1951
1952/*
1953 * Class: org_rocksdb_Options
1954 * Method: setWriteThreadSlowYieldUsec
1955 * Signature: (JJ)V
1956 */
1e59de90
TL
1957void Java_org_rocksdb_Options_setWriteThreadSlowYieldUsec(JNIEnv*, jobject,
1958 jlong jhandle,
1959 jlong slow) {
f67539c2
TL
1960 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1961 ->write_thread_slow_yield_usec = static_cast<int64_t>(slow);
7c673cae
FG
1962}
1963
1964/*
1965 * Class: org_rocksdb_Options
1966 * Method: writeThreadSlowYieldUsec
1967 * Signature: (J)J
1968 */
1e59de90
TL
1969jlong Java_org_rocksdb_Options_writeThreadSlowYieldUsec(JNIEnv*, jobject,
1970 jlong jhandle) {
f67539c2 1971 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 1972 ->write_thread_slow_yield_usec;
7c673cae
FG
1973}
1974
1975/*
1976 * Class: org_rocksdb_Options
1977 * Method: setSkipStatsUpdateOnDbOpen
1978 * Signature: (JZ)V
1979 */
1980void Java_org_rocksdb_Options_setSkipStatsUpdateOnDbOpen(
1e59de90 1981 JNIEnv*, jobject, jlong jhandle, jboolean jskip_stats_update_on_db_open) {
f67539c2 1982 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
1983 opt->skip_stats_update_on_db_open =
1984 static_cast<bool>(jskip_stats_update_on_db_open);
1985}
1986
1987/*
1988 * Class: org_rocksdb_Options
1989 * Method: skipStatsUpdateOnDbOpen
1990 * Signature: (J)Z
1991 */
1e59de90
TL
1992jboolean Java_org_rocksdb_Options_skipStatsUpdateOnDbOpen(JNIEnv*, jobject,
1993 jlong jhandle) {
f67539c2 1994 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
1995 return static_cast<jboolean>(opt->skip_stats_update_on_db_open);
1996}
1997
f67539c2
TL
1998/*
1999 * Class: org_rocksdb_Options
2000 * Method: setSkipCheckingSstFileSizesOnDbOpen
2001 * Signature: (JZ)V
2002 */
2003void Java_org_rocksdb_Options_setSkipCheckingSstFileSizesOnDbOpen(
20effc67 2004 JNIEnv*, jclass, jlong jhandle,
f67539c2
TL
2005 jboolean jskip_checking_sst_file_sizes_on_db_open) {
2006 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2007 opt->skip_checking_sst_file_sizes_on_db_open =
2008 static_cast<bool>(jskip_checking_sst_file_sizes_on_db_open);
2009}
2010
2011/*
2012 * Class: org_rocksdb_Options
2013 * Method: skipCheckingSstFileSizesOnDbOpen
2014 * Signature: (J)Z
2015 */
2016jboolean Java_org_rocksdb_Options_skipCheckingSstFileSizesOnDbOpen(
20effc67 2017 JNIEnv*, jclass, jlong jhandle) {
f67539c2
TL
2018 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2019 return static_cast<jboolean>(opt->skip_checking_sst_file_sizes_on_db_open);
2020}
2021
7c673cae
FG
2022/*
2023 * Class: org_rocksdb_Options
2024 * Method: setWalRecoveryMode
2025 * Signature: (JB)V
2026 */
2027void Java_org_rocksdb_Options_setWalRecoveryMode(
1e59de90 2028 JNIEnv*, jobject, jlong jhandle, jbyte jwal_recovery_mode_value) {
f67539c2
TL
2029 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2030 opt->wal_recovery_mode =
2031 ROCKSDB_NAMESPACE::WALRecoveryModeJni::toCppWALRecoveryMode(
2032 jwal_recovery_mode_value);
7c673cae
FG
2033}
2034
2035/*
2036 * Class: org_rocksdb_Options
2037 * Method: walRecoveryMode
2038 * Signature: (J)B
2039 */
1e59de90
TL
2040jbyte Java_org_rocksdb_Options_walRecoveryMode(JNIEnv*, jobject,
2041 jlong jhandle) {
f67539c2
TL
2042 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2043 return ROCKSDB_NAMESPACE::WALRecoveryModeJni::toJavaWALRecoveryMode(
7c673cae
FG
2044 opt->wal_recovery_mode);
2045}
2046
2047/*
2048 * Class: org_rocksdb_Options
2049 * Method: setAllow2pc
2050 * Signature: (JZ)V
2051 */
1e59de90
TL
2052void Java_org_rocksdb_Options_setAllow2pc(JNIEnv*, jobject, jlong jhandle,
2053 jboolean jallow_2pc) {
f67539c2 2054 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
2055 opt->allow_2pc = static_cast<bool>(jallow_2pc);
2056}
2057
2058/*
2059 * Class: org_rocksdb_Options
2060 * Method: allow2pc
2061 * Signature: (J)Z
2062 */
1e59de90 2063jboolean Java_org_rocksdb_Options_allow2pc(JNIEnv*, jobject, jlong jhandle) {
f67539c2 2064 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
2065 return static_cast<jboolean>(opt->allow_2pc);
2066}
2067
2068/*
2069 * Class: org_rocksdb_Options
2070 * Method: setRowCache
2071 * Signature: (JJ)V
2072 */
1e59de90
TL
2073void Java_org_rocksdb_Options_setRowCache(JNIEnv*, jobject, jlong jhandle,
2074 jlong jrow_cache_handle) {
f67539c2 2075 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
11fdf7f2 2076 auto* row_cache =
f67539c2
TL
2077 reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::Cache>*>(
2078 jrow_cache_handle);
7c673cae
FG
2079 opt->row_cache = *row_cache;
2080}
2081
494da23a
TL
2082/*
2083 * Class: org_rocksdb_Options
2084 * Method: setWalFilter
2085 * Signature: (JJ)V
2086 */
1e59de90
TL
2087void Java_org_rocksdb_Options_setWalFilter(JNIEnv*, jobject, jlong jhandle,
2088 jlong jwal_filter_handle) {
f67539c2
TL
2089 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2090 auto* wal_filter = reinterpret_cast<ROCKSDB_NAMESPACE::WalFilterJniCallback*>(
2091 jwal_filter_handle);
494da23a
TL
2092 opt->wal_filter = wal_filter;
2093}
2094
7c673cae
FG
2095/*
2096 * Class: org_rocksdb_Options
2097 * Method: setFailIfOptionsFileError
2098 * Signature: (JZ)V
2099 */
2100void Java_org_rocksdb_Options_setFailIfOptionsFileError(
494da23a 2101 JNIEnv*, jobject, jlong jhandle, jboolean jfail_if_options_file_error) {
f67539c2 2102 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
2103 opt->fail_if_options_file_error =
2104 static_cast<bool>(jfail_if_options_file_error);
2105}
2106
2107/*
2108 * Class: org_rocksdb_Options
2109 * Method: failIfOptionsFileError
2110 * Signature: (J)Z
2111 */
1e59de90
TL
2112jboolean Java_org_rocksdb_Options_failIfOptionsFileError(JNIEnv*, jobject,
2113 jlong jhandle) {
f67539c2 2114 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
2115 return static_cast<jboolean>(opt->fail_if_options_file_error);
2116}
2117
2118/*
2119 * Class: org_rocksdb_Options
2120 * Method: setDumpMallocStats
2121 * Signature: (JZ)V
2122 */
1e59de90
TL
2123void Java_org_rocksdb_Options_setDumpMallocStats(JNIEnv*, jobject,
2124 jlong jhandle,
2125 jboolean jdump_malloc_stats) {
f67539c2 2126 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
2127 opt->dump_malloc_stats = static_cast<bool>(jdump_malloc_stats);
2128}
2129
2130/*
2131 * Class: org_rocksdb_Options
2132 * Method: dumpMallocStats
2133 * Signature: (J)Z
2134 */
1e59de90
TL
2135jboolean Java_org_rocksdb_Options_dumpMallocStats(JNIEnv*, jobject,
2136 jlong jhandle) {
f67539c2 2137 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
2138 return static_cast<jboolean>(opt->dump_malloc_stats);
2139}
2140
2141/*
2142 * Class: org_rocksdb_Options
2143 * Method: setAvoidFlushDuringRecovery
2144 * Signature: (JZ)V
2145 */
2146void Java_org_rocksdb_Options_setAvoidFlushDuringRecovery(
494da23a 2147 JNIEnv*, jobject, jlong jhandle, jboolean javoid_flush_during_recovery) {
f67539c2 2148 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
11fdf7f2
TL
2149 opt->avoid_flush_during_recovery =
2150 static_cast<bool>(javoid_flush_during_recovery);
7c673cae
FG
2151}
2152
2153/*
2154 * Class: org_rocksdb_Options
2155 * Method: avoidFlushDuringRecovery
2156 * Signature: (J)Z
2157 */
1e59de90
TL
2158jboolean Java_org_rocksdb_Options_avoidFlushDuringRecovery(JNIEnv*, jobject,
2159 jlong jhandle) {
f67539c2 2160 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
2161 return static_cast<jboolean>(opt->avoid_flush_during_recovery);
2162}
2163
20effc67
TL
2164/*
2165 * Class: org_rocksdb_Options
2166 * Method: setAvoidUnnecessaryBlockingIO
2167 * Signature: (JZ)V
2168 */
2169void Java_org_rocksdb_Options_setAvoidUnnecessaryBlockingIO(
2170 JNIEnv*, jclass, jlong jhandle, jboolean avoid_blocking_io) {
2171 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2172 opt->avoid_unnecessary_blocking_io = static_cast<bool>(avoid_blocking_io);
2173}
2174
2175/*
2176 * Class: org_rocksdb_Options
2177 * Method: avoidUnnecessaryBlockingIO
2178 * Signature: (J)Z
2179 */
2180jboolean Java_org_rocksdb_Options_avoidUnnecessaryBlockingIO(JNIEnv*, jclass,
2181 jlong jhandle) {
2182 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2183 return static_cast<jboolean>(opt->avoid_unnecessary_blocking_io);
2184}
2185
2186/*
2187 * Class: org_rocksdb_Options
2188 * Method: setPersistStatsToDisk
2189 * Signature: (JZ)V
2190 */
2191void Java_org_rocksdb_Options_setPersistStatsToDisk(
2192 JNIEnv*, jclass, jlong jhandle, jboolean persist_stats_to_disk) {
2193 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2194 opt->persist_stats_to_disk = static_cast<bool>(persist_stats_to_disk);
2195}
2196
2197/*
2198 * Class: org_rocksdb_Options
2199 * Method: persistStatsToDisk
2200 * Signature: (J)Z
2201 */
2202jboolean Java_org_rocksdb_Options_persistStatsToDisk(JNIEnv*, jclass,
2203 jlong jhandle) {
2204 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2205 return static_cast<jboolean>(opt->persist_stats_to_disk);
2206}
2207
2208/*
2209 * Class: org_rocksdb_Options
2210 * Method: setWriteDbidToManifest
2211 * Signature: (JZ)V
2212 */
2213void Java_org_rocksdb_Options_setWriteDbidToManifest(
2214 JNIEnv*, jclass, jlong jhandle, jboolean jwrite_dbid_to_manifest) {
2215 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2216 opt->write_dbid_to_manifest = static_cast<bool>(jwrite_dbid_to_manifest);
2217}
2218
2219/*
2220 * Class: org_rocksdb_Options
2221 * Method: writeDbidToManifest
2222 * Signature: (J)Z
2223 */
2224jboolean Java_org_rocksdb_Options_writeDbidToManifest(JNIEnv*, jclass,
2225 jlong jhandle) {
2226 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2227 return static_cast<jboolean>(opt->write_dbid_to_manifest);
2228}
2229
2230/*
2231 * Class: org_rocksdb_Options
2232 * Method: setLogReadaheadSize
2233 * Signature: (JJ)V
2234 */
2235void Java_org_rocksdb_Options_setLogReadaheadSize(JNIEnv*, jclass,
2236 jlong jhandle,
2237 jlong jlog_readahead_size) {
2238 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2239 opt->log_readahead_size = static_cast<size_t>(jlog_readahead_size);
2240}
2241
2242/*
2243 * Class: org_rocksdb_Options
2244 * Method: logReasaheadSize
2245 * Signature: (J)J
2246 */
2247jlong Java_org_rocksdb_Options_logReadaheadSize(JNIEnv*, jclass,
2248 jlong jhandle) {
2249 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2250 return static_cast<jlong>(opt->log_readahead_size);
2251}
2252
2253/*
2254 * Class: org_rocksdb_Options
2255 * Method: setBestEffortsRecovery
2256 * Signature: (JZ)V
2257 */
2258void Java_org_rocksdb_Options_setBestEffortsRecovery(
2259 JNIEnv*, jclass, jlong jhandle, jboolean jbest_efforts_recovery) {
2260 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2261 opt->best_efforts_recovery = static_cast<bool>(jbest_efforts_recovery);
2262}
2263
2264/*
2265 * Class: org_rocksdb_Options
2266 * Method: bestEffortsRecovery
2267 * Signature: (J)Z
2268 */
2269jboolean Java_org_rocksdb_Options_bestEffortsRecovery(JNIEnv*, jclass,
2270 jlong jhandle) {
2271 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2272 return static_cast<jlong>(opt->best_efforts_recovery);
2273}
2274
2275/*
2276 * Class: org_rocksdb_Options
2277 * Method: setMaxBgErrorResumeCount
2278 * Signature: (JI)V
2279 */
2280void Java_org_rocksdb_Options_setMaxBgErrorResumeCount(
2281 JNIEnv*, jclass, jlong jhandle, jint jmax_bgerror_resume_count) {
2282 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2283 opt->max_bgerror_resume_count = static_cast<int>(jmax_bgerror_resume_count);
2284}
2285
2286/*
2287 * Class: org_rocksdb_Options
2288 * Method: maxBgerrorResumeCount
2289 * Signature: (J)I
2290 */
2291jint Java_org_rocksdb_Options_maxBgerrorResumeCount(JNIEnv*, jclass,
2292 jlong jhandle) {
2293 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2294 return static_cast<jint>(opt->max_bgerror_resume_count);
2295}
2296
2297/*
2298 * Class: org_rocksdb_Options
2299 * Method: setBgerrorResumeRetryInterval
2300 * Signature: (JJ)V
2301 */
2302void Java_org_rocksdb_Options_setBgerrorResumeRetryInterval(
2303 JNIEnv*, jclass, jlong jhandle, jlong jbgerror_resume_retry_interval) {
2304 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2305 opt->bgerror_resume_retry_interval =
2306 static_cast<uint64_t>(jbgerror_resume_retry_interval);
2307}
2308
2309/*
2310 * Class: org_rocksdb_Options
2311 * Method: bgerrorResumeRetryInterval
2312 * Signature: (J)J
2313 */
2314jlong Java_org_rocksdb_Options_bgerrorResumeRetryInterval(JNIEnv*, jclass,
2315 jlong jhandle) {
2316 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2317 return static_cast<jlong>(opt->bgerror_resume_retry_interval);
2318}
2319
7c673cae
FG
2320/*
2321 * Class: org_rocksdb_Options
2322 * Method: setAvoidFlushDuringShutdown
2323 * Signature: (JZ)V
2324 */
2325void Java_org_rocksdb_Options_setAvoidFlushDuringShutdown(
494da23a 2326 JNIEnv*, jobject, jlong jhandle, jboolean javoid_flush_during_shutdown) {
f67539c2 2327 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
11fdf7f2
TL
2328 opt->avoid_flush_during_shutdown =
2329 static_cast<bool>(javoid_flush_during_shutdown);
7c673cae
FG
2330}
2331
2332/*
2333 * Class: org_rocksdb_Options
2334 * Method: avoidFlushDuringShutdown
2335 * Signature: (J)Z
2336 */
1e59de90
TL
2337jboolean Java_org_rocksdb_Options_avoidFlushDuringShutdown(JNIEnv*, jobject,
2338 jlong jhandle) {
f67539c2 2339 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
2340 return static_cast<jboolean>(opt->avoid_flush_during_shutdown);
2341}
2342
494da23a
TL
2343/*
2344 * Class: org_rocksdb_Options
2345 * Method: setAllowIngestBehind
2346 * Signature: (JZ)V
2347 */
2348void Java_org_rocksdb_Options_setAllowIngestBehind(
2349 JNIEnv*, jobject, jlong jhandle, jboolean jallow_ingest_behind) {
f67539c2 2350 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
494da23a
TL
2351 opt->allow_ingest_behind = jallow_ingest_behind == JNI_TRUE;
2352}
2353
2354/*
2355 * Class: org_rocksdb_Options
2356 * Method: allowIngestBehind
2357 * Signature: (J)Z
2358 */
1e59de90
TL
2359jboolean Java_org_rocksdb_Options_allowIngestBehind(JNIEnv*, jobject,
2360 jlong jhandle) {
f67539c2 2361 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
494da23a
TL
2362 return static_cast<jboolean>(opt->allow_ingest_behind);
2363}
2364
494da23a
TL
2365/*
2366 * Class: org_rocksdb_Options
2367 * Method: setTwoWriteQueues
2368 * Signature: (JZ)V
2369 */
1e59de90
TL
2370void Java_org_rocksdb_Options_setTwoWriteQueues(JNIEnv*, jobject, jlong jhandle,
2371 jboolean jtwo_write_queues) {
f67539c2 2372 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
494da23a
TL
2373 opt->two_write_queues = jtwo_write_queues == JNI_TRUE;
2374}
2375
2376/*
2377 * Class: org_rocksdb_Options
2378 * Method: twoWriteQueues
2379 * Signature: (J)Z
2380 */
1e59de90
TL
2381jboolean Java_org_rocksdb_Options_twoWriteQueues(JNIEnv*, jobject,
2382 jlong jhandle) {
f67539c2 2383 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
494da23a
TL
2384 return static_cast<jboolean>(opt->two_write_queues);
2385}
2386
2387/*
2388 * Class: org_rocksdb_Options
2389 * Method: setManualWalFlush
2390 * Signature: (JZ)V
2391 */
1e59de90
TL
2392void Java_org_rocksdb_Options_setManualWalFlush(JNIEnv*, jobject, jlong jhandle,
2393 jboolean jmanual_wal_flush) {
f67539c2 2394 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
494da23a
TL
2395 opt->manual_wal_flush = jmanual_wal_flush == JNI_TRUE;
2396}
2397
2398/*
2399 * Class: org_rocksdb_Options
2400 * Method: manualWalFlush
2401 * Signature: (J)Z
2402 */
1e59de90
TL
2403jboolean Java_org_rocksdb_Options_manualWalFlush(JNIEnv*, jobject,
2404 jlong jhandle) {
f67539c2 2405 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
494da23a
TL
2406 return static_cast<jboolean>(opt->manual_wal_flush);
2407}
2408
2409/*
2410 * Class: org_rocksdb_Options
2411 * Method: setAtomicFlush
2412 * Signature: (JZ)V
2413 */
1e59de90
TL
2414void Java_org_rocksdb_Options_setAtomicFlush(JNIEnv*, jobject, jlong jhandle,
2415 jboolean jatomic_flush) {
f67539c2 2416 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
494da23a
TL
2417 opt->atomic_flush = jatomic_flush == JNI_TRUE;
2418}
2419
2420/*
2421 * Class: org_rocksdb_Options
2422 * Method: atomicFlush
2423 * Signature: (J)Z
2424 */
1e59de90 2425jboolean Java_org_rocksdb_Options_atomicFlush(JNIEnv*, jobject, jlong jhandle) {
f67539c2 2426 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
494da23a
TL
2427 return static_cast<jboolean>(opt->atomic_flush);
2428}
2429
7c673cae
FG
2430/*
2431 * Method: tableFactoryName
2432 * Signature: (J)Ljava/lang/String
2433 */
1e59de90
TL
2434jstring Java_org_rocksdb_Options_tableFactoryName(JNIEnv* env, jobject,
2435 jlong jhandle) {
f67539c2
TL
2436 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2437 ROCKSDB_NAMESPACE::TableFactory* tf = opt->table_factory.get();
7c673cae
FG
2438
2439 // Should never be nullptr.
2440 // Default memtable factory is SkipListFactory
2441 assert(tf);
2442
2443 return env->NewStringUTF(tf->Name());
2444}
2445
7c673cae
FG
2446/*
2447 * Class: org_rocksdb_Options
2448 * Method: minWriteBufferNumberToMerge
2449 * Signature: (J)I
2450 */
1e59de90
TL
2451jint Java_org_rocksdb_Options_minWriteBufferNumberToMerge(JNIEnv*, jobject,
2452 jlong jhandle) {
f67539c2 2453 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 2454 ->min_write_buffer_number_to_merge;
7c673cae
FG
2455}
2456
2457/*
2458 * Class: org_rocksdb_Options
2459 * Method: setMinWriteBufferNumberToMerge
2460 * Signature: (JI)V
2461 */
2462void Java_org_rocksdb_Options_setMinWriteBufferNumberToMerge(
494da23a 2463 JNIEnv*, jobject, jlong jhandle, jint jmin_write_buffer_number_to_merge) {
f67539c2 2464 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2
TL
2465 ->min_write_buffer_number_to_merge =
2466 static_cast<int>(jmin_write_buffer_number_to_merge);
7c673cae
FG
2467}
2468/*
2469 * Class: org_rocksdb_Options
2470 * Method: maxWriteBufferNumberToMaintain
2471 * Signature: (J)I
2472 */
1e59de90
TL
2473jint Java_org_rocksdb_Options_maxWriteBufferNumberToMaintain(JNIEnv*, jobject,
2474 jlong jhandle) {
f67539c2 2475 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
7c673cae
FG
2476 ->max_write_buffer_number_to_maintain;
2477}
2478
2479/*
2480 * Class: org_rocksdb_Options
2481 * Method: setMaxWriteBufferNumberToMaintain
2482 * Signature: (JI)V
2483 */
2484void Java_org_rocksdb_Options_setMaxWriteBufferNumberToMaintain(
494da23a 2485 JNIEnv*, jobject, jlong jhandle,
7c673cae 2486 jint jmax_write_buffer_number_to_maintain) {
f67539c2 2487 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
7c673cae
FG
2488 ->max_write_buffer_number_to_maintain =
2489 static_cast<int>(jmax_write_buffer_number_to_maintain);
2490}
2491
2492/*
2493 * Class: org_rocksdb_Options
2494 * Method: setCompressionType
2495 * Signature: (JB)V
2496 */
2497void Java_org_rocksdb_Options_setCompressionType(
494da23a 2498 JNIEnv*, jobject, jlong jhandle, jbyte jcompression_type_value) {
f67539c2
TL
2499 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2500 opts->compression =
2501 ROCKSDB_NAMESPACE::CompressionTypeJni::toCppCompressionType(
2502 jcompression_type_value);
7c673cae
FG
2503}
2504
2505/*
2506 * Class: org_rocksdb_Options
2507 * Method: compressionType
2508 * Signature: (J)B
2509 */
1e59de90
TL
2510jbyte Java_org_rocksdb_Options_compressionType(JNIEnv*, jobject,
2511 jlong jhandle) {
f67539c2
TL
2512 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2513 return ROCKSDB_NAMESPACE::CompressionTypeJni::toJavaCompressionType(
2514 opts->compression);
7c673cae
FG
2515}
2516
2517/**
2518 * Helper method to convert a Java byte array of compression levels
f67539c2 2519 * to a C++ vector of ROCKSDB_NAMESPACE::CompressionType
7c673cae
FG
2520 *
2521 * @param env A pointer to the Java environment
2522 * @param jcompression_levels A reference to a java byte array
2523 * where each byte indicates a compression level
2524 *
494da23a
TL
2525 * @return A std::unique_ptr to the vector, or std::unique_ptr(nullptr) if a JNI
2526 * exception occurs
7c673cae 2527 */
f67539c2
TL
2528std::unique_ptr<std::vector<ROCKSDB_NAMESPACE::CompressionType>>
2529rocksdb_compression_vector_helper(JNIEnv* env, jbyteArray jcompression_levels) {
7c673cae
FG
2530 jsize len = env->GetArrayLength(jcompression_levels);
2531 jbyte* jcompression_level =
2532 env->GetByteArrayElements(jcompression_levels, nullptr);
11fdf7f2 2533 if (jcompression_level == nullptr) {
7c673cae 2534 // exception thrown: OutOfMemoryError
f67539c2 2535 return std::unique_ptr<std::vector<ROCKSDB_NAMESPACE::CompressionType>>();
7c673cae
FG
2536 }
2537
f67539c2
TL
2538 auto* compression_levels =
2539 new std::vector<ROCKSDB_NAMESPACE::CompressionType>();
2540 std::unique_ptr<std::vector<ROCKSDB_NAMESPACE::CompressionType>>
11fdf7f2 2541 uptr_compression_levels(compression_levels);
7c673cae 2542
11fdf7f2 2543 for (jsize i = 0; i < len; i++) {
7c673cae 2544 jbyte jcl = jcompression_level[i];
f67539c2
TL
2545 compression_levels->push_back(
2546 static_cast<ROCKSDB_NAMESPACE::CompressionType>(jcl));
7c673cae
FG
2547 }
2548
2549 env->ReleaseByteArrayElements(jcompression_levels, jcompression_level,
11fdf7f2 2550 JNI_ABORT);
7c673cae
FG
2551
2552 return uptr_compression_levels;
2553}
2554
2555/**
f67539c2 2556 * Helper method to convert a C++ vector of ROCKSDB_NAMESPACE::CompressionType
7c673cae
FG
2557 * to a Java byte array of compression levels
2558 *
2559 * @param env A pointer to the Java environment
2560 * @param jcompression_levels A reference to a java byte array
2561 * where each byte indicates a compression level
2562 *
2563 * @return A jbytearray or nullptr if an exception occurs
2564 */
11fdf7f2 2565jbyteArray rocksdb_compression_list_helper(
f67539c2
TL
2566 JNIEnv* env,
2567 std::vector<ROCKSDB_NAMESPACE::CompressionType> compression_levels) {
7c673cae
FG
2568 const size_t len = compression_levels.size();
2569 jbyte* jbuf = new jbyte[len];
2570
2571 for (size_t i = 0; i < len; i++) {
11fdf7f2 2572 jbuf[i] = compression_levels[i];
7c673cae
FG
2573 }
2574
2575 // insert in java array
2576 jbyteArray jcompression_levels = env->NewByteArray(static_cast<jsize>(len));
11fdf7f2
TL
2577 if (jcompression_levels == nullptr) {
2578 // exception thrown: OutOfMemoryError
2579 delete[] jbuf;
2580 return nullptr;
7c673cae
FG
2581 }
2582 env->SetByteArrayRegion(jcompression_levels, 0, static_cast<jsize>(len),
11fdf7f2
TL
2583 jbuf);
2584 if (env->ExceptionCheck()) {
2585 // exception thrown: ArrayIndexOutOfBoundsException
2586 env->DeleteLocalRef(jcompression_levels);
2587 delete[] jbuf;
2588 return nullptr;
7c673cae
FG
2589 }
2590
11fdf7f2 2591 delete[] jbuf;
7c673cae
FG
2592
2593 return jcompression_levels;
2594}
2595
2596/*
2597 * Class: org_rocksdb_Options
2598 * Method: setCompressionPerLevel
2599 * Signature: (J[B)V
2600 */
2601void Java_org_rocksdb_Options_setCompressionPerLevel(
494da23a 2602 JNIEnv* env, jobject, jlong jhandle, jbyteArray jcompressionLevels) {
7c673cae
FG
2603 auto uptr_compression_levels =
2604 rocksdb_compression_vector_helper(env, jcompressionLevels);
11fdf7f2 2605 if (!uptr_compression_levels) {
7c673cae
FG
2606 // exception occurred
2607 return;
2608 }
f67539c2 2609 auto* options = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
2610 options->compression_per_level = *(uptr_compression_levels.get());
2611}
2612
2613/*
2614 * Class: org_rocksdb_Options
2615 * Method: compressionPerLevel
2616 * Signature: (J)[B
2617 */
1e59de90
TL
2618jbyteArray Java_org_rocksdb_Options_compressionPerLevel(JNIEnv* env, jobject,
2619 jlong jhandle) {
f67539c2 2620 auto* options = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
11fdf7f2 2621 return rocksdb_compression_list_helper(env, options->compression_per_level);
7c673cae
FG
2622}
2623
2624/*
2625 * Class: org_rocksdb_Options
2626 * Method: setBottommostCompressionType
2627 * Signature: (JB)V
2628 */
2629void Java_org_rocksdb_Options_setBottommostCompressionType(
494da23a 2630 JNIEnv*, jobject, jlong jhandle, jbyte jcompression_type_value) {
f67539c2 2631 auto* options = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae 2632 options->bottommost_compression =
f67539c2 2633 ROCKSDB_NAMESPACE::CompressionTypeJni::toCppCompressionType(
7c673cae
FG
2634 jcompression_type_value);
2635}
2636
2637/*
2638 * Class: org_rocksdb_Options
2639 * Method: bottommostCompressionType
2640 * Signature: (J)B
2641 */
1e59de90
TL
2642jbyte Java_org_rocksdb_Options_bottommostCompressionType(JNIEnv*, jobject,
2643 jlong jhandle) {
f67539c2
TL
2644 auto* options = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2645 return ROCKSDB_NAMESPACE::CompressionTypeJni::toJavaCompressionType(
7c673cae
FG
2646 options->bottommost_compression);
2647}
2648
11fdf7f2
TL
2649/*
2650 * Class: org_rocksdb_Options
2651 * Method: setBottommostCompressionOptions
2652 * Signature: (JJ)V
2653 */
2654void Java_org_rocksdb_Options_setBottommostCompressionOptions(
494da23a 2655 JNIEnv*, jobject, jlong jhandle,
11fdf7f2 2656 jlong jbottommost_compression_options_handle) {
f67539c2 2657 auto* options = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
11fdf7f2 2658 auto* bottommost_compression_options =
f67539c2 2659 reinterpret_cast<ROCKSDB_NAMESPACE::CompressionOptions*>(
11fdf7f2
TL
2660 jbottommost_compression_options_handle);
2661 options->bottommost_compression_opts = *bottommost_compression_options;
2662}
2663
7c673cae
FG
2664/*
2665 * Class: org_rocksdb_Options
2666 * Method: setCompressionOptions
2667 * Signature: (JJ)V
2668 */
2669void Java_org_rocksdb_Options_setCompressionOptions(
494da23a 2670 JNIEnv*, jobject, jlong jhandle, jlong jcompression_options_handle) {
f67539c2
TL
2671 auto* options = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2672 auto* compression_options =
2673 reinterpret_cast<ROCKSDB_NAMESPACE::CompressionOptions*>(
2674 jcompression_options_handle);
7c673cae
FG
2675 options->compression_opts = *compression_options;
2676}
2677
2678/*
2679 * Class: org_rocksdb_Options
2680 * Method: setCompactionStyle
2681 * Signature: (JB)V
2682 */
1e59de90
TL
2683void Java_org_rocksdb_Options_setCompactionStyle(JNIEnv*, jobject,
2684 jlong jhandle,
2685 jbyte jcompaction_style) {
f67539c2 2686 auto* options = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
494da23a 2687 options->compaction_style =
f67539c2 2688 ROCKSDB_NAMESPACE::CompactionStyleJni::toCppCompactionStyle(
494da23a 2689 jcompaction_style);
7c673cae
FG
2690}
2691
2692/*
2693 * Class: org_rocksdb_Options
2694 * Method: compactionStyle
2695 * Signature: (J)B
2696 */
1e59de90
TL
2697jbyte Java_org_rocksdb_Options_compactionStyle(JNIEnv*, jobject,
2698 jlong jhandle) {
f67539c2
TL
2699 auto* options = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
2700 return ROCKSDB_NAMESPACE::CompactionStyleJni::toJavaCompactionStyle(
494da23a 2701 options->compaction_style);
7c673cae
FG
2702}
2703
2704/*
2705 * Class: org_rocksdb_Options
2706 * Method: setMaxTableFilesSizeFIFO
2707 * Signature: (JJ)V
2708 */
2709void Java_org_rocksdb_Options_setMaxTableFilesSizeFIFO(
494da23a 2710 JNIEnv*, jobject, jlong jhandle, jlong jmax_table_files_size) {
f67539c2 2711 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2
TL
2712 ->compaction_options_fifo.max_table_files_size =
2713 static_cast<uint64_t>(jmax_table_files_size);
7c673cae
FG
2714}
2715
2716/*
2717 * Class: org_rocksdb_Options
2718 * Method: maxTableFilesSizeFIFO
2719 * Signature: (J)J
2720 */
1e59de90
TL
2721jlong Java_org_rocksdb_Options_maxTableFilesSizeFIFO(JNIEnv*, jobject,
2722 jlong jhandle) {
f67539c2 2723 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 2724 ->compaction_options_fifo.max_table_files_size;
7c673cae
FG
2725}
2726
2727/*
2728 * Class: org_rocksdb_Options
2729 * Method: numLevels
2730 * Signature: (J)I
2731 */
1e59de90 2732jint Java_org_rocksdb_Options_numLevels(JNIEnv*, jobject, jlong jhandle) {
f67539c2 2733 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->num_levels;
7c673cae
FG
2734}
2735
2736/*
2737 * Class: org_rocksdb_Options
2738 * Method: setNumLevels
2739 * Signature: (JI)V
2740 */
1e59de90
TL
2741void Java_org_rocksdb_Options_setNumLevels(JNIEnv*, jobject, jlong jhandle,
2742 jint jnum_levels) {
f67539c2 2743 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->num_levels =
7c673cae
FG
2744 static_cast<int>(jnum_levels);
2745}
2746
2747/*
2748 * Class: org_rocksdb_Options
2749 * Method: levelZeroFileNumCompactionTrigger
2750 * Signature: (J)I
2751 */
1e59de90
TL
2752jint Java_org_rocksdb_Options_levelZeroFileNumCompactionTrigger(JNIEnv*,
2753 jobject,
2754 jlong jhandle) {
f67539c2 2755 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 2756 ->level0_file_num_compaction_trigger;
7c673cae
FG
2757}
2758
2759/*
2760 * Class: org_rocksdb_Options
2761 * Method: setLevelZeroFileNumCompactionTrigger
2762 * Signature: (JI)V
2763 */
2764void Java_org_rocksdb_Options_setLevelZeroFileNumCompactionTrigger(
1e59de90 2765 JNIEnv*, jobject, jlong jhandle, jint jlevel0_file_num_compaction_trigger) {
f67539c2 2766 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2
TL
2767 ->level0_file_num_compaction_trigger =
2768 static_cast<int>(jlevel0_file_num_compaction_trigger);
7c673cae
FG
2769}
2770
2771/*
2772 * Class: org_rocksdb_Options
2773 * Method: levelZeroSlowdownWritesTrigger
2774 * Signature: (J)I
2775 */
1e59de90
TL
2776jint Java_org_rocksdb_Options_levelZeroSlowdownWritesTrigger(JNIEnv*, jobject,
2777 jlong jhandle) {
f67539c2 2778 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 2779 ->level0_slowdown_writes_trigger;
7c673cae
FG
2780}
2781
2782/*
2783 * Class: org_rocksdb_Options
2784 * Method: setLevelSlowdownWritesTrigger
2785 * Signature: (JI)V
2786 */
2787void Java_org_rocksdb_Options_setLevelZeroSlowdownWritesTrigger(
494da23a 2788 JNIEnv*, jobject, jlong jhandle, jint jlevel0_slowdown_writes_trigger) {
f67539c2
TL
2789 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
2790 ->level0_slowdown_writes_trigger =
11fdf7f2 2791 static_cast<int>(jlevel0_slowdown_writes_trigger);
7c673cae
FG
2792}
2793
2794/*
2795 * Class: org_rocksdb_Options
2796 * Method: levelZeroStopWritesTrigger
2797 * Signature: (J)I
2798 */
1e59de90
TL
2799jint Java_org_rocksdb_Options_levelZeroStopWritesTrigger(JNIEnv*, jobject,
2800 jlong jhandle) {
f67539c2 2801 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 2802 ->level0_stop_writes_trigger;
7c673cae
FG
2803}
2804
2805/*
2806 * Class: org_rocksdb_Options
2807 * Method: setLevelStopWritesTrigger
2808 * Signature: (JI)V
2809 */
2810void Java_org_rocksdb_Options_setLevelZeroStopWritesTrigger(
494da23a 2811 JNIEnv*, jobject, jlong jhandle, jint jlevel0_stop_writes_trigger) {
f67539c2
TL
2812 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
2813 ->level0_stop_writes_trigger =
7c673cae
FG
2814 static_cast<int>(jlevel0_stop_writes_trigger);
2815}
2816
2817/*
2818 * Class: org_rocksdb_Options
2819 * Method: targetFileSizeBase
2820 * Signature: (J)J
2821 */
1e59de90
TL
2822jlong Java_org_rocksdb_Options_targetFileSizeBase(JNIEnv*, jobject,
2823 jlong jhandle) {
f67539c2
TL
2824 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
2825 ->target_file_size_base;
7c673cae
FG
2826}
2827
2828/*
2829 * Class: org_rocksdb_Options
2830 * Method: setTargetFileSizeBase
2831 * Signature: (JJ)V
2832 */
2833void Java_org_rocksdb_Options_setTargetFileSizeBase(
494da23a 2834 JNIEnv*, jobject, jlong jhandle, jlong jtarget_file_size_base) {
f67539c2
TL
2835 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
2836 ->target_file_size_base = static_cast<uint64_t>(jtarget_file_size_base);
7c673cae
FG
2837}
2838
2839/*
2840 * Class: org_rocksdb_Options
2841 * Method: targetFileSizeMultiplier
2842 * Signature: (J)I
2843 */
1e59de90
TL
2844jint Java_org_rocksdb_Options_targetFileSizeMultiplier(JNIEnv*, jobject,
2845 jlong jhandle) {
f67539c2 2846 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 2847 ->target_file_size_multiplier;
7c673cae
FG
2848}
2849
2850/*
2851 * Class: org_rocksdb_Options
2852 * Method: setTargetFileSizeMultiplier
2853 * Signature: (JI)V
2854 */
2855void Java_org_rocksdb_Options_setTargetFileSizeMultiplier(
494da23a 2856 JNIEnv*, jobject, jlong jhandle, jint jtarget_file_size_multiplier) {
f67539c2
TL
2857 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
2858 ->target_file_size_multiplier =
11fdf7f2 2859 static_cast<int>(jtarget_file_size_multiplier);
7c673cae
FG
2860}
2861
2862/*
2863 * Class: org_rocksdb_Options
2864 * Method: maxBytesForLevelBase
2865 * Signature: (J)J
2866 */
1e59de90
TL
2867jlong Java_org_rocksdb_Options_maxBytesForLevelBase(JNIEnv*, jobject,
2868 jlong jhandle) {
f67539c2
TL
2869 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
2870 ->max_bytes_for_level_base;
7c673cae
FG
2871}
2872
2873/*
2874 * Class: org_rocksdb_Options
2875 * Method: setMaxBytesForLevelBase
2876 * Signature: (JJ)V
2877 */
2878void Java_org_rocksdb_Options_setMaxBytesForLevelBase(
494da23a 2879 JNIEnv*, jobject, jlong jhandle, jlong jmax_bytes_for_level_base) {
f67539c2
TL
2880 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
2881 ->max_bytes_for_level_base =
11fdf7f2 2882 static_cast<int64_t>(jmax_bytes_for_level_base);
7c673cae
FG
2883}
2884
2885/*
2886 * Class: org_rocksdb_Options
2887 * Method: levelCompactionDynamicLevelBytes
2888 * Signature: (J)Z
2889 */
2890jboolean Java_org_rocksdb_Options_levelCompactionDynamicLevelBytes(
494da23a 2891 JNIEnv*, jobject, jlong jhandle) {
f67539c2 2892 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 2893 ->level_compaction_dynamic_level_bytes;
7c673cae
FG
2894}
2895
2896/*
2897 * Class: org_rocksdb_Options
2898 * Method: setLevelCompactionDynamicLevelBytes
2899 * Signature: (JZ)V
2900 */
2901void Java_org_rocksdb_Options_setLevelCompactionDynamicLevelBytes(
494da23a 2902 JNIEnv*, jobject, jlong jhandle, jboolean jenable_dynamic_level_bytes) {
f67539c2 2903 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 2904 ->level_compaction_dynamic_level_bytes = (jenable_dynamic_level_bytes);
7c673cae
FG
2905}
2906
2907/*
2908 * Class: org_rocksdb_Options
2909 * Method: maxBytesForLevelMultiplier
2910 * Signature: (J)D
2911 */
1e59de90
TL
2912jdouble Java_org_rocksdb_Options_maxBytesForLevelMultiplier(JNIEnv*, jobject,
2913 jlong jhandle) {
f67539c2 2914 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 2915 ->max_bytes_for_level_multiplier;
7c673cae
FG
2916}
2917
2918/*
2919 * Class: org_rocksdb_Options
2920 * Method: setMaxBytesForLevelMultiplier
2921 * Signature: (JD)V
2922 */
2923void Java_org_rocksdb_Options_setMaxBytesForLevelMultiplier(
494da23a 2924 JNIEnv*, jobject, jlong jhandle, jdouble jmax_bytes_for_level_multiplier) {
f67539c2
TL
2925 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
2926 ->max_bytes_for_level_multiplier =
7c673cae
FG
2927 static_cast<double>(jmax_bytes_for_level_multiplier);
2928}
2929
2930/*
2931 * Class: org_rocksdb_Options
2932 * Method: maxCompactionBytes
2933 * Signature: (J)I
2934 */
1e59de90
TL
2935jlong Java_org_rocksdb_Options_maxCompactionBytes(JNIEnv*, jobject,
2936 jlong jhandle) {
7c673cae 2937 return static_cast<jlong>(
f67539c2
TL
2938 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
2939 ->max_compaction_bytes);
7c673cae
FG
2940}
2941
2942/*
2943 * Class: org_rocksdb_Options
2944 * Method: setMaxCompactionBytes
2945 * Signature: (JI)V
2946 */
2947void Java_org_rocksdb_Options_setMaxCompactionBytes(
494da23a 2948 JNIEnv*, jobject, jlong jhandle, jlong jmax_compaction_bytes) {
f67539c2 2949 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->max_compaction_bytes =
7c673cae
FG
2950 static_cast<uint64_t>(jmax_compaction_bytes);
2951}
2952
2953/*
2954 * Class: org_rocksdb_Options
2955 * Method: arenaBlockSize
2956 * Signature: (J)J
2957 */
1e59de90 2958jlong Java_org_rocksdb_Options_arenaBlockSize(JNIEnv*, jobject, jlong jhandle) {
f67539c2
TL
2959 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
2960 ->arena_block_size;
7c673cae
FG
2961}
2962
2963/*
2964 * Class: org_rocksdb_Options
2965 * Method: setArenaBlockSize
2966 * Signature: (JJ)V
2967 */
1e59de90
TL
2968void Java_org_rocksdb_Options_setArenaBlockSize(JNIEnv* env, jobject,
2969 jlong jhandle,
2970 jlong jarena_block_size) {
f67539c2
TL
2971 auto s =
2972 ROCKSDB_NAMESPACE::JniUtil::check_if_jlong_fits_size_t(jarena_block_size);
7c673cae 2973 if (s.ok()) {
f67539c2 2974 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->arena_block_size =
7c673cae
FG
2975 jarena_block_size;
2976 } else {
f67539c2 2977 ROCKSDB_NAMESPACE::IllegalArgumentExceptionJni::ThrowNew(env, s);
7c673cae
FG
2978 }
2979}
2980
2981/*
2982 * Class: org_rocksdb_Options
2983 * Method: disableAutoCompactions
2984 * Signature: (J)Z
2985 */
1e59de90
TL
2986jboolean Java_org_rocksdb_Options_disableAutoCompactions(JNIEnv*, jobject,
2987 jlong jhandle) {
f67539c2
TL
2988 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
2989 ->disable_auto_compactions;
7c673cae
FG
2990}
2991
2992/*
2993 * Class: org_rocksdb_Options
2994 * Method: setDisableAutoCompactions
2995 * Signature: (JZ)V
2996 */
2997void Java_org_rocksdb_Options_setDisableAutoCompactions(
494da23a 2998 JNIEnv*, jobject, jlong jhandle, jboolean jdisable_auto_compactions) {
f67539c2
TL
2999 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
3000 ->disable_auto_compactions = static_cast<bool>(jdisable_auto_compactions);
7c673cae
FG
3001}
3002
3003/*
3004 * Class: org_rocksdb_Options
3005 * Method: maxSequentialSkipInIterations
3006 * Signature: (J)J
3007 */
1e59de90
TL
3008jlong Java_org_rocksdb_Options_maxSequentialSkipInIterations(JNIEnv*, jobject,
3009 jlong jhandle) {
f67539c2 3010 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 3011 ->max_sequential_skip_in_iterations;
7c673cae
FG
3012}
3013
3014/*
3015 * Class: org_rocksdb_Options
3016 * Method: setMaxSequentialSkipInIterations
3017 * Signature: (JJ)V
3018 */
3019void Java_org_rocksdb_Options_setMaxSequentialSkipInIterations(
1e59de90 3020 JNIEnv*, jobject, jlong jhandle, jlong jmax_sequential_skip_in_iterations) {
f67539c2 3021 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2
TL
3022 ->max_sequential_skip_in_iterations =
3023 static_cast<int64_t>(jmax_sequential_skip_in_iterations);
7c673cae
FG
3024}
3025
3026/*
3027 * Class: org_rocksdb_Options
3028 * Method: inplaceUpdateSupport
3029 * Signature: (J)Z
3030 */
1e59de90
TL
3031jboolean Java_org_rocksdb_Options_inplaceUpdateSupport(JNIEnv*, jobject,
3032 jlong jhandle) {
f67539c2
TL
3033 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
3034 ->inplace_update_support;
7c673cae
FG
3035}
3036
3037/*
3038 * Class: org_rocksdb_Options
3039 * Method: setInplaceUpdateSupport
3040 * Signature: (JZ)V
3041 */
3042void Java_org_rocksdb_Options_setInplaceUpdateSupport(
494da23a 3043 JNIEnv*, jobject, jlong jhandle, jboolean jinplace_update_support) {
f67539c2
TL
3044 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
3045 ->inplace_update_support = static_cast<bool>(jinplace_update_support);
7c673cae
FG
3046}
3047
3048/*
3049 * Class: org_rocksdb_Options
3050 * Method: inplaceUpdateNumLocks
3051 * Signature: (J)J
3052 */
1e59de90
TL
3053jlong Java_org_rocksdb_Options_inplaceUpdateNumLocks(JNIEnv*, jobject,
3054 jlong jhandle) {
f67539c2
TL
3055 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
3056 ->inplace_update_num_locks;
7c673cae
FG
3057}
3058
3059/*
3060 * Class: org_rocksdb_Options
3061 * Method: setInplaceUpdateNumLocks
3062 * Signature: (JJ)V
3063 */
3064void Java_org_rocksdb_Options_setInplaceUpdateNumLocks(
494da23a 3065 JNIEnv* env, jobject, jlong jhandle, jlong jinplace_update_num_locks) {
f67539c2
TL
3066 auto s = ROCKSDB_NAMESPACE::JniUtil::check_if_jlong_fits_size_t(
3067 jinplace_update_num_locks);
7c673cae 3068 if (s.ok()) {
f67539c2
TL
3069 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
3070 ->inplace_update_num_locks = jinplace_update_num_locks;
7c673cae 3071 } else {
f67539c2 3072 ROCKSDB_NAMESPACE::IllegalArgumentExceptionJni::ThrowNew(env, s);
7c673cae
FG
3073 }
3074}
3075
3076/*
3077 * Class: org_rocksdb_Options
3078 * Method: memtablePrefixBloomSizeRatio
3079 * Signature: (J)I
3080 */
1e59de90
TL
3081jdouble Java_org_rocksdb_Options_memtablePrefixBloomSizeRatio(JNIEnv*, jobject,
3082 jlong jhandle) {
f67539c2 3083 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
7c673cae
FG
3084 ->memtable_prefix_bloom_size_ratio;
3085}
3086
3087/*
3088 * Class: org_rocksdb_Options
3089 * Method: setMemtablePrefixBloomSizeRatio
3090 * Signature: (JI)V
3091 */
3092void Java_org_rocksdb_Options_setMemtablePrefixBloomSizeRatio(
494da23a 3093 JNIEnv*, jobject, jlong jhandle,
7c673cae 3094 jdouble jmemtable_prefix_bloom_size_ratio) {
f67539c2 3095 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
7c673cae
FG
3096 ->memtable_prefix_bloom_size_ratio =
3097 static_cast<double>(jmemtable_prefix_bloom_size_ratio);
3098}
3099
3100/*
3101 * Class: org_rocksdb_Options
1e59de90 3102 * Method: experimentalMempurgeThreshold
7c673cae
FG
3103 * Signature: (J)I
3104 */
1e59de90
TL
3105jdouble Java_org_rocksdb_Options_experimentalMempurgeThreshold(JNIEnv*, jobject,
3106 jlong jhandle) {
3107 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
3108 ->experimental_mempurge_threshold;
7c673cae
FG
3109}
3110
3111/*
3112 * Class: org_rocksdb_Options
1e59de90 3113 * Method: setExperimentalMempurgeThreshold
7c673cae
FG
3114 * Signature: (JI)V
3115 */
1e59de90
TL
3116void Java_org_rocksdb_Options_setExperimentalMempurgeThreshold(
3117 JNIEnv*, jobject, jlong jhandle, jdouble jexperimental_mempurge_threshold) {
3118 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
3119 ->experimental_mempurge_threshold =
3120 static_cast<double>(jexperimental_mempurge_threshold);
7c673cae
FG
3121}
3122
3123/*
3124 * Class: org_rocksdb_Options
1e59de90
TL
3125 * Method: memtableWholeKeyFiltering
3126 * Signature: (J)Z
7c673cae 3127 */
1e59de90
TL
3128jboolean Java_org_rocksdb_Options_memtableWholeKeyFiltering(JNIEnv*, jobject,
3129 jlong jhandle) {
f67539c2 3130 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
1e59de90 3131 ->memtable_whole_key_filtering;
7c673cae
FG
3132}
3133
3134/*
3135 * Class: org_rocksdb_Options
1e59de90
TL
3136 * Method: setMemtableWholeKeyFiltering
3137 * Signature: (JZ)V
7c673cae 3138 */
1e59de90
TL
3139void Java_org_rocksdb_Options_setMemtableWholeKeyFiltering(
3140 JNIEnv*, jobject, jlong jhandle, jboolean jmemtable_whole_key_filtering) {
3141 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
3142 ->memtable_whole_key_filtering =
3143 static_cast<bool>(jmemtable_whole_key_filtering);
3144}
3145
3146/*
3147 * Class: org_rocksdb_Options
3148 * Method: bloomLocality
3149 * Signature: (J)I
3150 */
3151jint Java_org_rocksdb_Options_bloomLocality(JNIEnv*, jobject, jlong jhandle) {
3152 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->bloom_locality;
3153}
3154
3155/*
3156 * Class: org_rocksdb_Options
3157 * Method: setBloomLocality
3158 * Signature: (JI)V
3159 */
3160void Java_org_rocksdb_Options_setBloomLocality(JNIEnv*, jobject, jlong jhandle,
3161 jint jbloom_locality) {
3162 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->bloom_locality =
3163 static_cast<int32_t>(jbloom_locality);
3164}
3165
3166/*
3167 * Class: org_rocksdb_Options
3168 * Method: maxSuccessiveMerges
3169 * Signature: (J)J
3170 */
3171jlong Java_org_rocksdb_Options_maxSuccessiveMerges(JNIEnv*, jobject,
3172 jlong jhandle) {
3173 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
3174 ->max_successive_merges;
3175}
3176
3177/*
3178 * Class: org_rocksdb_Options
3179 * Method: setMaxSuccessiveMerges
3180 * Signature: (JJ)V
3181 */
3182void Java_org_rocksdb_Options_setMaxSuccessiveMerges(
3183 JNIEnv* env, jobject, jlong jhandle, jlong jmax_successive_merges) {
3184 auto s = ROCKSDB_NAMESPACE::JniUtil::check_if_jlong_fits_size_t(
3185 jmax_successive_merges);
3186 if (s.ok()) {
3187 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
3188 ->max_successive_merges = jmax_successive_merges;
3189 } else {
f67539c2 3190 ROCKSDB_NAMESPACE::IllegalArgumentExceptionJni::ThrowNew(env, s);
7c673cae
FG
3191 }
3192}
3193
3194/*
3195 * Class: org_rocksdb_Options
3196 * Method: optimizeFiltersForHits
3197 * Signature: (J)Z
3198 */
1e59de90
TL
3199jboolean Java_org_rocksdb_Options_optimizeFiltersForHits(JNIEnv*, jobject,
3200 jlong jhandle) {
f67539c2 3201 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 3202 ->optimize_filters_for_hits;
7c673cae
FG
3203}
3204
3205/*
3206 * Class: org_rocksdb_Options
3207 * Method: setOptimizeFiltersForHits
3208 * Signature: (JZ)V
3209 */
3210void Java_org_rocksdb_Options_setOptimizeFiltersForHits(
494da23a 3211 JNIEnv*, jobject, jlong jhandle, jboolean joptimize_filters_for_hits) {
f67539c2
TL
3212 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
3213 ->optimize_filters_for_hits =
11fdf7f2 3214 static_cast<bool>(joptimize_filters_for_hits);
7c673cae
FG
3215}
3216
20effc67
TL
3217/*
3218 * Class: org_rocksdb_Options
3219 * Method: oldDefaults
3220 * Signature: (JII)V
3221 */
3222void Java_org_rocksdb_Options_oldDefaults(JNIEnv*, jclass, jlong jhandle,
3223 jint major_version,
3224 jint minor_version) {
3225 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->OldDefaults(
3226 major_version, minor_version);
3227}
3228
7c673cae
FG
3229/*
3230 * Class: org_rocksdb_Options
3231 * Method: optimizeForSmallDb
3232 * Signature: (J)V
3233 */
20effc67
TL
3234void Java_org_rocksdb_Options_optimizeForSmallDb__J(JNIEnv*, jobject,
3235 jlong jhandle) {
f67539c2 3236 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->OptimizeForSmallDb();
7c673cae
FG
3237}
3238
20effc67
TL
3239/*
3240 * Class: org_rocksdb_Options
3241 * Method: optimizeForSmallDb
3242 * Signature: (JJ)V
3243 */
3244void Java_org_rocksdb_Options_optimizeForSmallDb__JJ(JNIEnv*, jclass,
3245 jlong jhandle,
3246 jlong cache_handle) {
3247 auto* cache_sptr_ptr =
3248 reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::Cache>*>(
3249 cache_handle);
3250 auto* options_ptr = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3251 auto* cf_options_ptr =
3252 static_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(options_ptr);
3253 cf_options_ptr->OptimizeForSmallDb(cache_sptr_ptr);
3254}
3255
7c673cae
FG
3256/*
3257 * Class: org_rocksdb_Options
3258 * Method: optimizeForPointLookup
3259 * Signature: (JJ)V
3260 */
3261void Java_org_rocksdb_Options_optimizeForPointLookup(
494da23a 3262 JNIEnv*, jobject, jlong jhandle, jlong block_cache_size_mb) {
f67539c2
TL
3263 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
3264 ->OptimizeForPointLookup(block_cache_size_mb);
7c673cae
FG
3265}
3266
3267/*
3268 * Class: org_rocksdb_Options
3269 * Method: optimizeLevelStyleCompaction
3270 * Signature: (JJ)V
3271 */
3272void Java_org_rocksdb_Options_optimizeLevelStyleCompaction(
494da23a 3273 JNIEnv*, jobject, jlong jhandle, jlong memtable_memory_budget) {
f67539c2
TL
3274 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
3275 ->OptimizeLevelStyleCompaction(memtable_memory_budget);
7c673cae
FG
3276}
3277
3278/*
3279 * Class: org_rocksdb_Options
3280 * Method: optimizeUniversalStyleCompaction
3281 * Signature: (JJ)V
3282 */
3283void Java_org_rocksdb_Options_optimizeUniversalStyleCompaction(
494da23a 3284 JNIEnv*, jobject, jlong jhandle, jlong memtable_memory_budget) {
f67539c2 3285 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 3286 ->OptimizeUniversalStyleCompaction(memtable_memory_budget);
7c673cae
FG
3287}
3288
3289/*
3290 * Class: org_rocksdb_Options
3291 * Method: prepareForBulkLoad
3292 * Signature: (J)V
3293 */
1e59de90
TL
3294void Java_org_rocksdb_Options_prepareForBulkLoad(JNIEnv*, jobject,
3295 jlong jhandle) {
f67539c2 3296 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->PrepareForBulkLoad();
7c673cae
FG
3297}
3298
3299/*
3300 * Class: org_rocksdb_Options
3301 * Method: memtableHugePageSize
3302 * Signature: (J)J
3303 */
1e59de90
TL
3304jlong Java_org_rocksdb_Options_memtableHugePageSize(JNIEnv*, jobject,
3305 jlong jhandle) {
f67539c2
TL
3306 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
3307 ->memtable_huge_page_size;
7c673cae
FG
3308}
3309
3310/*
3311 * Class: org_rocksdb_Options
3312 * Method: setMemtableHugePageSize
3313 * Signature: (JJ)V
3314 */
3315void Java_org_rocksdb_Options_setMemtableHugePageSize(
494da23a 3316 JNIEnv* env, jobject, jlong jhandle, jlong jmemtable_huge_page_size) {
f67539c2
TL
3317 auto s = ROCKSDB_NAMESPACE::JniUtil::check_if_jlong_fits_size_t(
3318 jmemtable_huge_page_size);
7c673cae 3319 if (s.ok()) {
f67539c2
TL
3320 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
3321 ->memtable_huge_page_size = jmemtable_huge_page_size;
7c673cae 3322 } else {
f67539c2 3323 ROCKSDB_NAMESPACE::IllegalArgumentExceptionJni::ThrowNew(env, s);
7c673cae
FG
3324 }
3325}
3326
3327/*
3328 * Class: org_rocksdb_Options
3329 * Method: softPendingCompactionBytesLimit
3330 * Signature: (J)J
3331 */
1e59de90
TL
3332jlong Java_org_rocksdb_Options_softPendingCompactionBytesLimit(JNIEnv*, jobject,
3333 jlong jhandle) {
f67539c2 3334 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 3335 ->soft_pending_compaction_bytes_limit;
7c673cae
FG
3336}
3337
3338/*
3339 * Class: org_rocksdb_Options
3340 * Method: setSoftPendingCompactionBytesLimit
3341 * Signature: (JJ)V
3342 */
3343void Java_org_rocksdb_Options_setSoftPendingCompactionBytesLimit(
494da23a 3344 JNIEnv*, jobject, jlong jhandle,
11fdf7f2 3345 jlong jsoft_pending_compaction_bytes_limit) {
f67539c2 3346 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2
TL
3347 ->soft_pending_compaction_bytes_limit =
3348 static_cast<int64_t>(jsoft_pending_compaction_bytes_limit);
7c673cae
FG
3349}
3350
3351/*
3352 * Class: org_rocksdb_Options
3353 * Method: softHardCompactionBytesLimit
3354 * Signature: (J)J
3355 */
1e59de90
TL
3356jlong Java_org_rocksdb_Options_hardPendingCompactionBytesLimit(JNIEnv*, jobject,
3357 jlong jhandle) {
f67539c2 3358 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 3359 ->hard_pending_compaction_bytes_limit;
7c673cae
FG
3360}
3361
3362/*
3363 * Class: org_rocksdb_Options
3364 * Method: setHardPendingCompactionBytesLimit
3365 * Signature: (JJ)V
3366 */
3367void Java_org_rocksdb_Options_setHardPendingCompactionBytesLimit(
494da23a 3368 JNIEnv*, jobject, jlong jhandle,
11fdf7f2 3369 jlong jhard_pending_compaction_bytes_limit) {
f67539c2 3370 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2
TL
3371 ->hard_pending_compaction_bytes_limit =
3372 static_cast<int64_t>(jhard_pending_compaction_bytes_limit);
7c673cae
FG
3373}
3374
3375/*
3376 * Class: org_rocksdb_Options
3377 * Method: level0FileNumCompactionTrigger
3378 * Signature: (J)I
3379 */
1e59de90
TL
3380jint Java_org_rocksdb_Options_level0FileNumCompactionTrigger(JNIEnv*, jobject,
3381 jlong jhandle) {
f67539c2 3382 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 3383 ->level0_file_num_compaction_trigger;
7c673cae
FG
3384}
3385
3386/*
3387 * Class: org_rocksdb_Options
3388 * Method: setLevel0FileNumCompactionTrigger
3389 * Signature: (JI)V
3390 */
3391void Java_org_rocksdb_Options_setLevel0FileNumCompactionTrigger(
1e59de90 3392 JNIEnv*, jobject, jlong jhandle, jint jlevel0_file_num_compaction_trigger) {
f67539c2 3393 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2
TL
3394 ->level0_file_num_compaction_trigger =
3395 static_cast<int32_t>(jlevel0_file_num_compaction_trigger);
7c673cae
FG
3396}
3397
3398/*
3399 * Class: org_rocksdb_Options
3400 * Method: level0SlowdownWritesTrigger
3401 * Signature: (J)I
3402 */
1e59de90
TL
3403jint Java_org_rocksdb_Options_level0SlowdownWritesTrigger(JNIEnv*, jobject,
3404 jlong jhandle) {
f67539c2 3405 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 3406 ->level0_slowdown_writes_trigger;
7c673cae
FG
3407}
3408
3409/*
3410 * Class: org_rocksdb_Options
3411 * Method: setLevel0SlowdownWritesTrigger
3412 * Signature: (JI)V
3413 */
3414void Java_org_rocksdb_Options_setLevel0SlowdownWritesTrigger(
494da23a 3415 JNIEnv*, jobject, jlong jhandle, jint jlevel0_slowdown_writes_trigger) {
f67539c2
TL
3416 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
3417 ->level0_slowdown_writes_trigger =
11fdf7f2 3418 static_cast<int32_t>(jlevel0_slowdown_writes_trigger);
7c673cae
FG
3419}
3420
3421/*
3422 * Class: org_rocksdb_Options
3423 * Method: level0StopWritesTrigger
3424 * Signature: (J)I
3425 */
1e59de90
TL
3426jint Java_org_rocksdb_Options_level0StopWritesTrigger(JNIEnv*, jobject,
3427 jlong jhandle) {
f67539c2 3428 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 3429 ->level0_stop_writes_trigger;
7c673cae
FG
3430}
3431
3432/*
3433 * Class: org_rocksdb_Options
3434 * Method: setLevel0StopWritesTrigger
3435 * Signature: (JI)V
3436 */
3437void Java_org_rocksdb_Options_setLevel0StopWritesTrigger(
494da23a 3438 JNIEnv*, jobject, jlong jhandle, jint jlevel0_stop_writes_trigger) {
f67539c2
TL
3439 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
3440 ->level0_stop_writes_trigger =
11fdf7f2 3441 static_cast<int32_t>(jlevel0_stop_writes_trigger);
7c673cae
FG
3442}
3443
3444/*
3445 * Class: org_rocksdb_Options
3446 * Method: maxBytesForLevelMultiplierAdditional
3447 * Signature: (J)[I
3448 */
3449jintArray Java_org_rocksdb_Options_maxBytesForLevelMultiplierAdditional(
494da23a 3450 JNIEnv* env, jobject, jlong jhandle) {
f67539c2 3451 auto mbflma = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
11fdf7f2 3452 ->max_bytes_for_level_multiplier_additional;
7c673cae
FG
3453
3454 const size_t size = mbflma.size();
3455
3456 jint* additionals = new jint[size];
3457 for (size_t i = 0; i < size; i++) {
3458 additionals[i] = static_cast<jint>(mbflma[i]);
3459 }
3460
3461 jsize jlen = static_cast<jsize>(size);
3462 jintArray result = env->NewIntArray(jlen);
11fdf7f2
TL
3463 if (result == nullptr) {
3464 // exception thrown: OutOfMemoryError
3465 delete[] additionals;
3466 return nullptr;
7c673cae
FG
3467 }
3468
3469 env->SetIntArrayRegion(result, 0, jlen, additionals);
11fdf7f2
TL
3470 if (env->ExceptionCheck()) {
3471 // exception thrown: ArrayIndexOutOfBoundsException
3472 env->DeleteLocalRef(result);
3473 delete[] additionals;
3474 return nullptr;
7c673cae
FG
3475 }
3476
11fdf7f2 3477 delete[] additionals;
7c673cae
FG
3478
3479 return result;
3480}
3481
3482/*
3483 * Class: org_rocksdb_Options
3484 * Method: setMaxBytesForLevelMultiplierAdditional
3485 * Signature: (J[I)V
3486 */
3487void Java_org_rocksdb_Options_setMaxBytesForLevelMultiplierAdditional(
494da23a 3488 JNIEnv* env, jobject, jlong jhandle,
7c673cae
FG
3489 jintArray jmax_bytes_for_level_multiplier_additional) {
3490 jsize len = env->GetArrayLength(jmax_bytes_for_level_multiplier_additional);
11fdf7f2
TL
3491 jint* additionals = env->GetIntArrayElements(
3492 jmax_bytes_for_level_multiplier_additional, nullptr);
3493 if (additionals == nullptr) {
7c673cae
FG
3494 // exception thrown: OutOfMemoryError
3495 return;
3496 }
3497
f67539c2 3498 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
3499 opt->max_bytes_for_level_multiplier_additional.clear();
3500 for (jsize i = 0; i < len; i++) {
11fdf7f2
TL
3501 opt->max_bytes_for_level_multiplier_additional.push_back(
3502 static_cast<int32_t>(additionals[i]));
7c673cae
FG
3503 }
3504
3505 env->ReleaseIntArrayElements(jmax_bytes_for_level_multiplier_additional,
11fdf7f2 3506 additionals, JNI_ABORT);
7c673cae
FG
3507}
3508
3509/*
3510 * Class: org_rocksdb_Options
3511 * Method: paranoidFileChecks
3512 * Signature: (J)Z
3513 */
1e59de90
TL
3514jboolean Java_org_rocksdb_Options_paranoidFileChecks(JNIEnv*, jobject,
3515 jlong jhandle) {
f67539c2
TL
3516 return reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)
3517 ->paranoid_file_checks;
7c673cae
FG
3518}
3519
3520/*
3521 * Class: org_rocksdb_Options
3522 * Method: setParanoidFileChecks
3523 * Signature: (JZ)V
3524 */
3525void Java_org_rocksdb_Options_setParanoidFileChecks(
494da23a 3526 JNIEnv*, jobject, jlong jhandle, jboolean jparanoid_file_checks) {
f67539c2 3527 reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle)->paranoid_file_checks =
11fdf7f2 3528 static_cast<bool>(jparanoid_file_checks);
7c673cae
FG
3529}
3530
3531/*
3532 * Class: org_rocksdb_Options
3533 * Method: setCompactionPriority
3534 * Signature: (JB)V
3535 */
3536void Java_org_rocksdb_Options_setCompactionPriority(
494da23a 3537 JNIEnv*, jobject, jlong jhandle, jbyte jcompaction_priority_value) {
f67539c2 3538 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae 3539 opts->compaction_pri =
f67539c2 3540 ROCKSDB_NAMESPACE::CompactionPriorityJni::toCppCompactionPriority(
11fdf7f2 3541 jcompaction_priority_value);
7c673cae
FG
3542}
3543
3544/*
3545 * Class: org_rocksdb_Options
3546 * Method: compactionPriority
3547 * Signature: (J)B
3548 */
1e59de90
TL
3549jbyte Java_org_rocksdb_Options_compactionPriority(JNIEnv*, jobject,
3550 jlong jhandle) {
f67539c2
TL
3551 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3552 return ROCKSDB_NAMESPACE::CompactionPriorityJni::toJavaCompactionPriority(
7c673cae
FG
3553 opts->compaction_pri);
3554}
3555
3556/*
3557 * Class: org_rocksdb_Options
3558 * Method: setReportBgIoStats
3559 * Signature: (JZ)V
3560 */
1e59de90
TL
3561void Java_org_rocksdb_Options_setReportBgIoStats(JNIEnv*, jobject,
3562 jlong jhandle,
3563 jboolean jreport_bg_io_stats) {
f67539c2 3564 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
3565 opts->report_bg_io_stats = static_cast<bool>(jreport_bg_io_stats);
3566}
3567
3568/*
3569 * Class: org_rocksdb_Options
3570 * Method: reportBgIoStats
3571 * Signature: (J)Z
3572 */
1e59de90
TL
3573jboolean Java_org_rocksdb_Options_reportBgIoStats(JNIEnv*, jobject,
3574 jlong jhandle) {
f67539c2 3575 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
3576 return static_cast<bool>(opts->report_bg_io_stats);
3577}
3578
494da23a
TL
3579/*
3580 * Class: org_rocksdb_Options
3581 * Method: setTtl
3582 * Signature: (JJ)V
3583 */
1e59de90
TL
3584void Java_org_rocksdb_Options_setTtl(JNIEnv*, jobject, jlong jhandle,
3585 jlong jttl) {
f67539c2 3586 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
494da23a
TL
3587 opts->ttl = static_cast<uint64_t>(jttl);
3588}
3589
3590/*
3591 * Class: org_rocksdb_Options
3592 * Method: ttl
3593 * Signature: (J)J
3594 */
1e59de90 3595jlong Java_org_rocksdb_Options_ttl(JNIEnv*, jobject, jlong jhandle) {
f67539c2 3596 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
494da23a
TL
3597 return static_cast<jlong>(opts->ttl);
3598}
3599
1e59de90
TL
3600/*
3601 * Class: org_rocksdb_Options
3602 * Method: setPeriodicCompactionSeconds
3603 * Signature: (JJ)V
3604 */
3605void Java_org_rocksdb_Options_setPeriodicCompactionSeconds(
3606 JNIEnv*, jobject, jlong jhandle, jlong jperiodicCompactionSeconds) {
3607 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3608 opts->periodic_compaction_seconds =
3609 static_cast<uint64_t>(jperiodicCompactionSeconds);
3610}
3611
3612/*
3613 * Class: org_rocksdb_Options
3614 * Method: periodicCompactionSeconds
3615 * Signature: (J)J
3616 */
3617jlong Java_org_rocksdb_Options_periodicCompactionSeconds(JNIEnv*, jobject,
3618 jlong jhandle) {
3619 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3620 return static_cast<jlong>(opts->periodic_compaction_seconds);
3621}
3622
7c673cae
FG
3623/*
3624 * Class: org_rocksdb_Options
3625 * Method: setCompactionOptionsUniversal
3626 * Signature: (JJ)V
3627 */
3628void Java_org_rocksdb_Options_setCompactionOptionsUniversal(
494da23a 3629 JNIEnv*, jobject, jlong jhandle,
7c673cae 3630 jlong jcompaction_options_universal_handle) {
f67539c2
TL
3631 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3632 auto* opts_uni =
3633 reinterpret_cast<ROCKSDB_NAMESPACE::CompactionOptionsUniversal*>(
3634 jcompaction_options_universal_handle);
7c673cae
FG
3635 opts->compaction_options_universal = *opts_uni;
3636}
3637
3638/*
3639 * Class: org_rocksdb_Options
3640 * Method: setCompactionOptionsFIFO
3641 * Signature: (JJ)V
3642 */
3643void Java_org_rocksdb_Options_setCompactionOptionsFIFO(
494da23a 3644 JNIEnv*, jobject, jlong jhandle, jlong jcompaction_options_fifo_handle) {
f67539c2
TL
3645 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3646 auto* opts_fifo = reinterpret_cast<ROCKSDB_NAMESPACE::CompactionOptionsFIFO*>(
11fdf7f2 3647 jcompaction_options_fifo_handle);
7c673cae
FG
3648 opts->compaction_options_fifo = *opts_fifo;
3649}
3650
3651/*
3652 * Class: org_rocksdb_Options
3653 * Method: setForceConsistencyChecks
3654 * Signature: (JZ)V
3655 */
3656void Java_org_rocksdb_Options_setForceConsistencyChecks(
494da23a 3657 JNIEnv*, jobject, jlong jhandle, jboolean jforce_consistency_checks) {
f67539c2 3658 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
3659 opts->force_consistency_checks = static_cast<bool>(jforce_consistency_checks);
3660}
3661
3662/*
3663 * Class: org_rocksdb_Options
3664 * Method: forceConsistencyChecks
3665 * Signature: (J)Z
3666 */
1e59de90
TL
3667jboolean Java_org_rocksdb_Options_forceConsistencyChecks(JNIEnv*, jobject,
3668 jlong jhandle) {
f67539c2 3669 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
7c673cae
FG
3670 return static_cast<bool>(opts->force_consistency_checks);
3671}
3672
1e59de90
TL
3673/// BLOB options
3674
3675/*
3676 * Class: org_rocksdb_Options
3677 * Method: setEnableBlobFiles
3678 * Signature: (JZ)V
3679 */
3680void Java_org_rocksdb_Options_setEnableBlobFiles(JNIEnv*, jobject,
3681 jlong jhandle,
3682 jboolean jenable_blob_files) {
3683 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3684 opts->enable_blob_files = static_cast<bool>(jenable_blob_files);
3685}
3686
3687/*
3688 * Class: org_rocksdb_Options
3689 * Method: enableBlobFiles
3690 * Signature: (J)Z
3691 */
3692jboolean Java_org_rocksdb_Options_enableBlobFiles(JNIEnv*, jobject,
3693 jlong jhandle) {
3694 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3695 return static_cast<jboolean>(opts->enable_blob_files);
3696}
3697
3698/*
3699 * Class: org_rocksdb_Options
3700 * Method: setMinBlobSize
3701 * Signature: (JJ)V
3702 */
3703void Java_org_rocksdb_Options_setMinBlobSize(JNIEnv*, jobject, jlong jhandle,
3704 jlong jmin_blob_size) {
3705 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3706 opts->min_blob_size = static_cast<uint64_t>(jmin_blob_size);
3707}
3708
3709/*
3710 * Class: org_rocksdb_Options
3711 * Method: minBlobSize
3712 * Signature: (J)J
3713 */
3714jlong Java_org_rocksdb_Options_minBlobSize(JNIEnv*, jobject, jlong jhandle) {
3715 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3716 return static_cast<jlong>(opts->min_blob_size);
3717}
3718
3719/*
3720 * Class: org_rocksdb_Options
3721 * Method: setBlobFileSize
3722 * Signature: (JJ)V
3723 */
3724void Java_org_rocksdb_Options_setBlobFileSize(JNIEnv*, jobject, jlong jhandle,
3725 jlong jblob_file_size) {
3726 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3727 opts->blob_file_size = static_cast<uint64_t>(jblob_file_size);
3728}
3729
3730/*
3731 * Class: org_rocksdb_Options
3732 * Method: blobFileSize
3733 * Signature: (J)J
3734 */
3735jlong Java_org_rocksdb_Options_blobFileSize(JNIEnv*, jobject, jlong jhandle) {
3736 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3737 return static_cast<jlong>(opts->blob_file_size);
3738}
3739
3740/*
3741 * Class: org_rocksdb_Options
3742 * Method: setBlobCompressionType
3743 * Signature: (JB)V
3744 */
3745void Java_org_rocksdb_Options_setBlobCompressionType(
3746 JNIEnv*, jobject, jlong jhandle, jbyte jblob_compression_type_value) {
3747 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3748 opts->blob_compression_type =
3749 ROCKSDB_NAMESPACE::CompressionTypeJni::toCppCompressionType(
3750 jblob_compression_type_value);
3751}
3752
3753/*
3754 * Class: org_rocksdb_Options
3755 * Method: blobCompressionType
3756 * Signature: (J)B
3757 */
3758jbyte Java_org_rocksdb_Options_blobCompressionType(JNIEnv*, jobject,
3759 jlong jhandle) {
3760 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3761 return ROCKSDB_NAMESPACE::CompressionTypeJni::toJavaCompressionType(
3762 opts->blob_compression_type);
3763}
3764
3765/*
3766 * Class: org_rocksdb_Options
3767 * Method: setEnableBlobGarbageCollection
3768 * Signature: (JZ)V
3769 */
3770void Java_org_rocksdb_Options_setEnableBlobGarbageCollection(
3771 JNIEnv*, jobject, jlong jhandle, jboolean jenable_blob_garbage_collection) {
3772 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3773 opts->enable_blob_garbage_collection =
3774 static_cast<bool>(jenable_blob_garbage_collection);
3775}
3776
3777/*
3778 * Class: org_rocksdb_Options
3779 * Method: enableBlobGarbageCollection
3780 * Signature: (J)Z
3781 */
3782jboolean Java_org_rocksdb_Options_enableBlobGarbageCollection(JNIEnv*, jobject,
3783 jlong jhandle) {
3784 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3785 return static_cast<jboolean>(opts->enable_blob_garbage_collection);
3786}
3787
3788/*
3789 * Class: org_rocksdb_Options
3790 * Method: setBlobGarbageCollectionAgeCutoff
3791 * Signature: (JD)V
3792 */
3793void Java_org_rocksdb_Options_setBlobGarbageCollectionAgeCutoff(
3794 JNIEnv*, jobject, jlong jhandle,
3795 jdouble jblob_garbage_collection_age_cutoff) {
3796 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3797 opts->blob_garbage_collection_age_cutoff =
3798 static_cast<double>(jblob_garbage_collection_age_cutoff);
3799}
3800
3801/*
3802 * Class: org_rocksdb_Options
3803 * Method: blobGarbageCollectionAgeCutoff
3804 * Signature: (J)D
3805 */
3806jdouble Java_org_rocksdb_Options_blobGarbageCollectionAgeCutoff(JNIEnv*,
3807 jobject,
3808 jlong jhandle) {
3809 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3810 return static_cast<jdouble>(opts->blob_garbage_collection_age_cutoff);
3811}
3812
3813/*
3814 * Class: org_rocksdb_Options
3815 * Method: setBlobGarbageCollectionForceThreshold
3816 * Signature: (JD)V
3817 */
3818void Java_org_rocksdb_Options_setBlobGarbageCollectionForceThreshold(
3819 JNIEnv*, jobject, jlong jhandle,
3820 jdouble jblob_garbage_collection_force_threshold) {
3821 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3822 opts->blob_garbage_collection_force_threshold =
3823 static_cast<double>(jblob_garbage_collection_force_threshold);
3824}
3825
3826/*
3827 * Class: org_rocksdb_Options
3828 * Method: blobGarbageCollectionForceThreshold
3829 * Signature: (J)D
3830 */
3831jdouble Java_org_rocksdb_Options_blobGarbageCollectionForceThreshold(
3832 JNIEnv*, jobject, jlong jhandle) {
3833 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3834 return static_cast<jdouble>(opts->blob_garbage_collection_force_threshold);
3835}
3836
3837/*
3838 * Class: org_rocksdb_Options
3839 * Method: setBlobCompactionReadaheadSize
3840 * Signature: (JJ)V
3841 */
3842void Java_org_rocksdb_Options_setBlobCompactionReadaheadSize(
3843 JNIEnv*, jobject, jlong jhandle, jlong jblob_compaction_readahead_size) {
3844 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3845 opts->blob_compaction_readahead_size =
3846 static_cast<uint64_t>(jblob_compaction_readahead_size);
3847}
3848
3849/*
3850 * Class: org_rocksdb_Options
3851 * Method: blobCompactionReadaheadSize
3852 * Signature: (J)J
3853 */
3854jlong Java_org_rocksdb_Options_blobCompactionReadaheadSize(JNIEnv*, jobject,
3855 jlong jhandle) {
3856 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3857 return static_cast<jlong>(opts->blob_compaction_readahead_size);
3858}
3859
3860/*
3861 * Class: org_rocksdb_Options
3862 * Method: setBlobFileStartingLevel
3863 * Signature: (JI)V
3864 */
3865void Java_org_rocksdb_Options_setBlobFileStartingLevel(
3866 JNIEnv*, jobject, jlong jhandle, jint jblob_file_starting_level) {
3867 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3868 opts->blob_file_starting_level = jblob_file_starting_level;
3869}
3870
3871/*
3872 * Class: org_rocksdb_Options
3873 * Method: blobFileStartingLevel
3874 * Signature: (J)I
3875 */
3876jint Java_org_rocksdb_Options_blobFileStartingLevel(JNIEnv*, jobject,
3877 jlong jhandle) {
3878 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3879 return static_cast<jint>(opts->blob_file_starting_level);
3880}
3881
3882/*
3883 * Class: org_rocksdb_Options
3884 * Method: setPrepopulateBlobCache
3885 * Signature: (JB)V
3886 */
3887void Java_org_rocksdb_Options_setPrepopulateBlobCache(
3888 JNIEnv*, jobject, jlong jhandle, jbyte jprepopulate_blob_cache_value) {
3889 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3890 opts->prepopulate_blob_cache =
3891 ROCKSDB_NAMESPACE::PrepopulateBlobCacheJni::toCppPrepopulateBlobCache(
3892 jprepopulate_blob_cache_value);
3893}
3894
3895/*
3896 * Class: org_rocksdb_Options
3897 * Method: prepopulateBlobCache
3898 * Signature: (J)B
3899 */
3900jbyte Java_org_rocksdb_Options_prepopulateBlobCache(JNIEnv*, jobject,
3901 jlong jhandle) {
3902 auto* opts = reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(jhandle);
3903 return ROCKSDB_NAMESPACE::PrepopulateBlobCacheJni::toJavaPrepopulateBlobCache(
3904 opts->prepopulate_blob_cache);
3905}
3906
7c673cae 3907//////////////////////////////////////////////////////////////////////////////
f67539c2 3908// ROCKSDB_NAMESPACE::ColumnFamilyOptions
7c673cae
FG
3909
3910/*
3911 * Class: org_rocksdb_ColumnFamilyOptions
3912 * Method: newColumnFamilyOptions
3913 * Signature: ()J
3914 */
1e59de90
TL
3915jlong Java_org_rocksdb_ColumnFamilyOptions_newColumnFamilyOptions(JNIEnv*,
3916 jclass) {
f67539c2 3917 auto* op = new ROCKSDB_NAMESPACE::ColumnFamilyOptions();
1e59de90 3918 return GET_CPLUSPLUS_POINTER(op);
7c673cae
FG
3919}
3920
11fdf7f2
TL
3921/*
3922 * Class: org_rocksdb_ColumnFamilyOptions
3923 * Method: copyColumnFamilyOptions
3924 * Signature: (J)J
3925 */
3926jlong Java_org_rocksdb_ColumnFamilyOptions_copyColumnFamilyOptions(
494da23a 3927 JNIEnv*, jclass, jlong jhandle) {
f67539c2
TL
3928 auto new_opt = new ROCKSDB_NAMESPACE::ColumnFamilyOptions(
3929 *(reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)));
1e59de90 3930 return GET_CPLUSPLUS_POINTER(new_opt);
11fdf7f2
TL
3931}
3932
494da23a
TL
3933/*
3934 * Class: org_rocksdb_ColumnFamilyOptions
3935 * Method: newColumnFamilyOptionsFromOptions
3936 * Signature: (J)J
3937 */
3938jlong Java_org_rocksdb_ColumnFamilyOptions_newColumnFamilyOptionsFromOptions(
3939 JNIEnv*, jclass, jlong joptions_handle) {
f67539c2
TL
3940 auto new_opt = new ROCKSDB_NAMESPACE::ColumnFamilyOptions(
3941 *reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(joptions_handle));
1e59de90 3942 return GET_CPLUSPLUS_POINTER(new_opt);
494da23a
TL
3943}
3944
20effc67
TL
3945/*
3946 * Class: org_rocksdb_ColumnFamilyOptions
3947 * Method: getColumnFamilyOptionsFromProps
3948 * Signature: (JLjava/lang/String;)J
3949 */
3950jlong Java_org_rocksdb_ColumnFamilyOptions_getColumnFamilyOptionsFromProps__JLjava_lang_String_2(
3951 JNIEnv* env, jclass, jlong cfg_handle, jstring jopt_string) {
3952 const char* opt_string = env->GetStringUTFChars(jopt_string, nullptr);
3953 if (opt_string == nullptr) {
3954 // exception thrown: OutOfMemoryError
3955 return 0;
3956 }
3957 auto* config_options =
3958 reinterpret_cast<ROCKSDB_NAMESPACE::ConfigOptions*>(cfg_handle);
3959 auto* cf_options = new ROCKSDB_NAMESPACE::ColumnFamilyOptions();
3960 ROCKSDB_NAMESPACE::Status status =
3961 ROCKSDB_NAMESPACE::GetColumnFamilyOptionsFromString(
3962 *config_options, ROCKSDB_NAMESPACE::ColumnFamilyOptions(), opt_string,
3963 cf_options);
3964
3965 env->ReleaseStringUTFChars(jopt_string, opt_string);
3966
3967 // Check if ColumnFamilyOptions creation was possible.
3968 jlong ret_value = 0;
3969 if (status.ok()) {
1e59de90 3970 ret_value = GET_CPLUSPLUS_POINTER(cf_options);
20effc67
TL
3971 } else {
3972 // if operation failed the ColumnFamilyOptions need to be deleted
3973 // again to prevent a memory leak.
3974 delete cf_options;
3975 }
3976 return ret_value;
3977}
3978
7c673cae
FG
3979/*
3980 * Class: org_rocksdb_ColumnFamilyOptions
3981 * Method: getColumnFamilyOptionsFromProps
3982 * Signature: (Ljava/util/String;)J
3983 */
20effc67 3984jlong Java_org_rocksdb_ColumnFamilyOptions_getColumnFamilyOptionsFromProps__Ljava_lang_String_2(
494da23a 3985 JNIEnv* env, jclass, jstring jopt_string) {
7c673cae 3986 const char* opt_string = env->GetStringUTFChars(jopt_string, nullptr);
11fdf7f2 3987 if (opt_string == nullptr) {
7c673cae
FG
3988 // exception thrown: OutOfMemoryError
3989 return 0;
3990 }
3991
f67539c2
TL
3992 auto* cf_options = new ROCKSDB_NAMESPACE::ColumnFamilyOptions();
3993 ROCKSDB_NAMESPACE::Status status =
3994 ROCKSDB_NAMESPACE::GetColumnFamilyOptionsFromString(
3995 ROCKSDB_NAMESPACE::ColumnFamilyOptions(), opt_string, cf_options);
7c673cae
FG
3996
3997 env->ReleaseStringUTFChars(jopt_string, opt_string);
3998
3999 // Check if ColumnFamilyOptions creation was possible.
4000 jlong ret_value = 0;
4001 if (status.ok()) {
1e59de90 4002 ret_value = GET_CPLUSPLUS_POINTER(cf_options);
7c673cae
FG
4003 } else {
4004 // if operation failed the ColumnFamilyOptions need to be deleted
4005 // again to prevent a memory leak.
4006 delete cf_options;
4007 }
4008 return ret_value;
4009}
4010
4011/*
4012 * Class: org_rocksdb_ColumnFamilyOptions
4013 * Method: disposeInternal
4014 * Signature: (J)V
4015 */
1e59de90
TL
4016void Java_org_rocksdb_ColumnFamilyOptions_disposeInternal(JNIEnv*, jobject,
4017 jlong handle) {
f67539c2 4018 auto* cfo = reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(handle);
7c673cae
FG
4019 assert(cfo != nullptr);
4020 delete cfo;
4021}
4022
20effc67
TL
4023/*
4024 * Class: org_rocksdb_ColumnFamilyOptions
4025 * Method: oldDefaults
4026 * Signature: (JII)V
4027 */
4028void Java_org_rocksdb_ColumnFamilyOptions_oldDefaults(JNIEnv*, jclass,
4029 jlong jhandle,
4030 jint major_version,
4031 jint minor_version) {
4032 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
4033 ->OldDefaults(major_version, minor_version);
4034}
4035
7c673cae
FG
4036/*
4037 * Class: org_rocksdb_ColumnFamilyOptions
4038 * Method: optimizeForSmallDb
4039 * Signature: (J)V
4040 */
20effc67
TL
4041void Java_org_rocksdb_ColumnFamilyOptions_optimizeForSmallDb__J(JNIEnv*,
4042 jobject,
4043 jlong jhandle) {
f67539c2 4044 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4045 ->OptimizeForSmallDb();
7c673cae
FG
4046}
4047
20effc67
TL
4048/*
4049 * Class: org_rocksdb_ColumnFamilyOptions
4050 * Method: optimizeForSmallDb
4051 * Signature: (JJ)V
4052 */
4053void Java_org_rocksdb_ColumnFamilyOptions_optimizeForSmallDb__JJ(
4054 JNIEnv*, jclass, jlong jhandle, jlong cache_handle) {
4055 auto* cache_sptr_ptr =
4056 reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::Cache>*>(
4057 cache_handle);
4058 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
4059 ->OptimizeForSmallDb(cache_sptr_ptr);
4060}
4061
7c673cae
FG
4062/*
4063 * Class: org_rocksdb_ColumnFamilyOptions
4064 * Method: optimizeForPointLookup
4065 * Signature: (JJ)V
4066 */
4067void Java_org_rocksdb_ColumnFamilyOptions_optimizeForPointLookup(
494da23a 4068 JNIEnv*, jobject, jlong jhandle, jlong block_cache_size_mb) {
f67539c2 4069 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4070 ->OptimizeForPointLookup(block_cache_size_mb);
7c673cae
FG
4071}
4072
4073/*
4074 * Class: org_rocksdb_ColumnFamilyOptions
4075 * Method: optimizeLevelStyleCompaction
4076 * Signature: (JJ)V
4077 */
4078void Java_org_rocksdb_ColumnFamilyOptions_optimizeLevelStyleCompaction(
494da23a 4079 JNIEnv*, jobject, jlong jhandle, jlong memtable_memory_budget) {
f67539c2 4080 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4081 ->OptimizeLevelStyleCompaction(memtable_memory_budget);
7c673cae
FG
4082}
4083
4084/*
4085 * Class: org_rocksdb_ColumnFamilyOptions
4086 * Method: optimizeUniversalStyleCompaction
4087 * Signature: (JJ)V
4088 */
4089void Java_org_rocksdb_ColumnFamilyOptions_optimizeUniversalStyleCompaction(
494da23a 4090 JNIEnv*, jobject, jlong jhandle, jlong memtable_memory_budget) {
f67539c2 4091 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4092 ->OptimizeUniversalStyleCompaction(memtable_memory_budget);
7c673cae
FG
4093}
4094
4095/*
4096 * Class: org_rocksdb_ColumnFamilyOptions
4097 * Method: setComparatorHandle
4098 * Signature: (JI)V
4099 */
4100void Java_org_rocksdb_ColumnFamilyOptions_setComparatorHandle__JI(
494da23a 4101 JNIEnv*, jobject, jlong jhandle, jint builtinComparator) {
7c673cae
FG
4102 switch (builtinComparator) {
4103 case 1:
f67539c2
TL
4104 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
4105 ->comparator = ROCKSDB_NAMESPACE::ReverseBytewiseComparator();
7c673cae
FG
4106 break;
4107 default:
f67539c2
TL
4108 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
4109 ->comparator = ROCKSDB_NAMESPACE::BytewiseComparator();
7c673cae
FG
4110 break;
4111 }
4112}
4113
4114/*
4115 * Class: org_rocksdb_ColumnFamilyOptions
4116 * Method: setComparatorHandle
11fdf7f2
TL
4117 * Signature: (JJB)V
4118 */
4119void Java_org_rocksdb_ColumnFamilyOptions_setComparatorHandle__JJB(
494da23a
TL
4120 JNIEnv*, jobject, jlong jopt_handle, jlong jcomparator_handle,
4121 jbyte jcomparator_type) {
f67539c2 4122 ROCKSDB_NAMESPACE::Comparator* comparator = nullptr;
11fdf7f2
TL
4123 switch (jcomparator_type) {
4124 // JAVA_COMPARATOR
4125 case 0x0:
f67539c2 4126 comparator = reinterpret_cast<ROCKSDB_NAMESPACE::ComparatorJniCallback*>(
11fdf7f2
TL
4127 jcomparator_handle);
4128 break;
4129
4130 // JAVA_NATIVE_COMPARATOR_WRAPPER
f67539c2
TL
4131 case 0x1:
4132 comparator =
4133 reinterpret_cast<ROCKSDB_NAMESPACE::Comparator*>(jcomparator_handle);
11fdf7f2
TL
4134 break;
4135 }
f67539c2
TL
4136 auto* opt =
4137 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jopt_handle);
11fdf7f2 4138 opt->comparator = comparator;
7c673cae
FG
4139}
4140
4141/*
4142 * Class: org_rocksdb_ColumnFamilyOptions
4143 * Method: setMergeOperatorName
4144 * Signature: (JJjava/lang/String)V
4145 */
4146void Java_org_rocksdb_ColumnFamilyOptions_setMergeOperatorName(
494da23a 4147 JNIEnv* env, jobject, jlong jhandle, jstring jop_name) {
f67539c2
TL
4148 auto* options =
4149 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
7c673cae 4150 const char* op_name = env->GetStringUTFChars(jop_name, nullptr);
11fdf7f2 4151 if (op_name == nullptr) {
7c673cae
FG
4152 // exception thrown: OutOfMemoryError
4153 return;
4154 }
4155
4156 options->merge_operator =
f67539c2 4157 ROCKSDB_NAMESPACE::MergeOperators::CreateFromStringId(op_name);
7c673cae
FG
4158 env->ReleaseStringUTFChars(jop_name, op_name);
4159}
4160
4161/*
4162 * Class: org_rocksdb_ColumnFamilyOptions
4163 * Method: setMergeOperator
4164 * Signature: (JJjava/lang/String)V
4165 */
4166void Java_org_rocksdb_ColumnFamilyOptions_setMergeOperator(
494da23a 4167 JNIEnv*, jobject, jlong jhandle, jlong mergeOperatorHandle) {
f67539c2
TL
4168 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
4169 ->merge_operator =
4170 *(reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::MergeOperator>*>(
11fdf7f2 4171 mergeOperatorHandle));
7c673cae
FG
4172}
4173
4174/*
4175 * Class: org_rocksdb_ColumnFamilyOptions
4176 * Method: setCompactionFilterHandle
4177 * Signature: (JJ)V
4178 */
4179void Java_org_rocksdb_ColumnFamilyOptions_setCompactionFilterHandle(
494da23a 4180 JNIEnv*, jobject, jlong jopt_handle, jlong jcompactionfilter_handle) {
f67539c2 4181 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jopt_handle)
11fdf7f2 4182 ->compaction_filter =
f67539c2
TL
4183 reinterpret_cast<ROCKSDB_NAMESPACE::CompactionFilter*>(
4184 jcompactionfilter_handle);
11fdf7f2
TL
4185}
4186
4187/*
4188 * Class: org_rocksdb_ColumnFamilyOptions
4189 * Method: setCompactionFilterFactoryHandle
4190 * Signature: (JJ)V
4191 */
494da23a
TL
4192void Java_org_rocksdb_ColumnFamilyOptions_setCompactionFilterFactoryHandle(
4193 JNIEnv*, jobject, jlong jopt_handle,
11fdf7f2 4194 jlong jcompactionfilterfactory_handle) {
f67539c2
TL
4195 auto* cff_factory = reinterpret_cast<
4196 std::shared_ptr<ROCKSDB_NAMESPACE::CompactionFilterFactoryJniCallback>*>(
4197 jcompactionfilterfactory_handle);
4198 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jopt_handle)
11fdf7f2 4199 ->compaction_filter_factory = *cff_factory;
7c673cae
FG
4200}
4201
4202/*
4203 * Class: org_rocksdb_ColumnFamilyOptions
4204 * Method: setWriteBufferSize
4205 * Signature: (JJ)I
4206 */
4207void Java_org_rocksdb_ColumnFamilyOptions_setWriteBufferSize(
494da23a 4208 JNIEnv* env, jobject, jlong jhandle, jlong jwrite_buffer_size) {
f67539c2
TL
4209 auto s = ROCKSDB_NAMESPACE::JniUtil::check_if_jlong_fits_size_t(
4210 jwrite_buffer_size);
7c673cae 4211 if (s.ok()) {
f67539c2 4212 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4213 ->write_buffer_size = jwrite_buffer_size;
7c673cae 4214 } else {
f67539c2 4215 ROCKSDB_NAMESPACE::IllegalArgumentExceptionJni::ThrowNew(env, s);
7c673cae
FG
4216 }
4217}
4218
4219/*
4220 * Class: org_rocksdb_ColumnFamilyOptions
4221 * Method: writeBufferSize
4222 * Signature: (J)J
4223 */
1e59de90
TL
4224jlong Java_org_rocksdb_ColumnFamilyOptions_writeBufferSize(JNIEnv*, jobject,
4225 jlong jhandle) {
f67539c2 4226 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4227 ->write_buffer_size;
7c673cae
FG
4228}
4229
4230/*
4231 * Class: org_rocksdb_ColumnFamilyOptions
4232 * Method: setMaxWriteBufferNumber
4233 * Signature: (JI)V
4234 */
4235void Java_org_rocksdb_ColumnFamilyOptions_setMaxWriteBufferNumber(
494da23a 4236 JNIEnv*, jobject, jlong jhandle, jint jmax_write_buffer_number) {
f67539c2 4237 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4238 ->max_write_buffer_number = jmax_write_buffer_number;
7c673cae
FG
4239}
4240
4241/*
4242 * Class: org_rocksdb_ColumnFamilyOptions
4243 * Method: maxWriteBufferNumber
4244 * Signature: (J)I
4245 */
1e59de90
TL
4246jint Java_org_rocksdb_ColumnFamilyOptions_maxWriteBufferNumber(JNIEnv*, jobject,
4247 jlong jhandle) {
f67539c2 4248 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4249 ->max_write_buffer_number;
7c673cae
FG
4250}
4251
4252/*
4253 * Method: setMemTableFactory
4254 * Signature: (JJ)V
4255 */
4256void Java_org_rocksdb_ColumnFamilyOptions_setMemTableFactory(
494da23a 4257 JNIEnv*, jobject, jlong jhandle, jlong jfactory_handle) {
f67539c2 4258 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4259 ->memtable_factory.reset(
f67539c2
TL
4260 reinterpret_cast<ROCKSDB_NAMESPACE::MemTableRepFactory*>(
4261 jfactory_handle));
7c673cae
FG
4262}
4263
4264/*
4265 * Class: org_rocksdb_ColumnFamilyOptions
4266 * Method: memTableFactoryName
4267 * Signature: (J)Ljava/lang/String
4268 */
4269jstring Java_org_rocksdb_ColumnFamilyOptions_memTableFactoryName(
494da23a 4270 JNIEnv* env, jobject, jlong jhandle) {
f67539c2
TL
4271 auto* opt =
4272 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
4273 ROCKSDB_NAMESPACE::MemTableRepFactory* tf = opt->memtable_factory.get();
7c673cae
FG
4274
4275 // Should never be nullptr.
4276 // Default memtable factory is SkipListFactory
4277 assert(tf);
4278
4279 // temporarly fix for the historical typo
4280 if (strcmp(tf->Name(), "HashLinkListRepFactory") == 0) {
4281 return env->NewStringUTF("HashLinkedListRepFactory");
4282 }
4283
4284 return env->NewStringUTF(tf->Name());
4285}
4286
4287/*
4288 * Method: useFixedLengthPrefixExtractor
4289 * Signature: (JI)V
4290 */
4291void Java_org_rocksdb_ColumnFamilyOptions_useFixedLengthPrefixExtractor(
494da23a 4292 JNIEnv*, jobject, jlong jhandle, jint jprefix_length) {
f67539c2
TL
4293 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
4294 ->prefix_extractor.reset(ROCKSDB_NAMESPACE::NewFixedPrefixTransform(
4295 static_cast<int>(jprefix_length)));
7c673cae
FG
4296}
4297
4298/*
4299 * Method: useCappedPrefixExtractor
4300 * Signature: (JI)V
4301 */
4302void Java_org_rocksdb_ColumnFamilyOptions_useCappedPrefixExtractor(
494da23a 4303 JNIEnv*, jobject, jlong jhandle, jint jprefix_length) {
f67539c2
TL
4304 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
4305 ->prefix_extractor.reset(ROCKSDB_NAMESPACE::NewCappedPrefixTransform(
4306 static_cast<int>(jprefix_length)));
7c673cae
FG
4307}
4308
4309/*
4310 * Method: setTableFactory
4311 * Signature: (JJ)V
4312 */
4313void Java_org_rocksdb_ColumnFamilyOptions_setTableFactory(
494da23a 4314 JNIEnv*, jobject, jlong jhandle, jlong jfactory_handle) {
f67539c2
TL
4315 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
4316 ->table_factory.reset(
4317 reinterpret_cast<ROCKSDB_NAMESPACE::TableFactory*>(jfactory_handle));
7c673cae
FG
4318}
4319
20effc67
TL
4320/*
4321 * Method: setSstPartitionerFactory
4322 * Signature: (JJ)V
4323 */
4324void Java_org_rocksdb_ColumnFamilyOptions_setSstPartitionerFactory(
4325 JNIEnv*, jobject, jlong jhandle, jlong factory_handle) {
4326 auto* options =
4327 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
1e59de90
TL
4328 auto factory = reinterpret_cast<
4329 std::shared_ptr<ROCKSDB_NAMESPACE::SstPartitionerFactory>*>(
20effc67 4330 factory_handle);
1e59de90 4331 options->sst_partitioner_factory = *factory;
20effc67
TL
4332}
4333
4334/*
4335 * Class: org_rocksdb_ColumnFamilyOptions
4336 * Method: setCompactionThreadLimiter
4337 * Signature: (JJ)V
4338 */
4339void Java_org_rocksdb_ColumnFamilyOptions_setCompactionThreadLimiter(
4340 JNIEnv*, jclass, jlong jhandle, jlong jlimiter_handle) {
4341 auto* options =
4342 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
4343 auto* limiter = reinterpret_cast<
4344 std::shared_ptr<ROCKSDB_NAMESPACE::ConcurrentTaskLimiter>*>(
4345 jlimiter_handle);
4346 options->compaction_thread_limiter = *limiter;
4347}
4348
7c673cae
FG
4349/*
4350 * Method: tableFactoryName
4351 * Signature: (J)Ljava/lang/String
4352 */
1e59de90
TL
4353jstring Java_org_rocksdb_ColumnFamilyOptions_tableFactoryName(JNIEnv* env,
4354 jobject,
4355 jlong jhandle) {
f67539c2
TL
4356 auto* opt =
4357 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
4358 ROCKSDB_NAMESPACE::TableFactory* tf = opt->table_factory.get();
7c673cae
FG
4359
4360 // Should never be nullptr.
4361 // Default memtable factory is SkipListFactory
4362 assert(tf);
4363
4364 return env->NewStringUTF(tf->Name());
4365}
4366
20effc67
TL
4367/*
4368 * Class: org_rocksdb_ColumnFamilyOptions
4369 * Method: setCfPaths
4370 * Signature: (J[Ljava/lang/String;[J)V
4371 */
4372void Java_org_rocksdb_ColumnFamilyOptions_setCfPaths(JNIEnv* env, jclass,
4373 jlong jhandle,
4374 jobjectArray path_array,
4375 jlongArray size_array) {
4376 auto* options =
4377 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
1e59de90 4378 jboolean has_exception = JNI_FALSE;
20effc67
TL
4379 std::vector<ROCKSDB_NAMESPACE::DbPath> cf_paths =
4380 rocksdb_convert_cf_paths_from_java_helper(env, path_array, size_array,
4381 &has_exception);
4382 if (JNI_FALSE == has_exception) {
4383 options->cf_paths = std::move(cf_paths);
4384 }
4385}
4386
4387/*
4388 * Class: org_rocksdb_ColumnFamilyOptions
4389 * Method: cfPathsLen
4390 * Signature: (J)J
4391 */
4392jlong Java_org_rocksdb_ColumnFamilyOptions_cfPathsLen(JNIEnv*, jclass,
4393 jlong jhandle) {
4394 auto* opt =
4395 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
4396 return static_cast<jlong>(opt->cf_paths.size());
4397}
4398
4399/*
4400 * Class: org_rocksdb_ColumnFamilyOptions
4401 * Method: cfPaths
4402 * Signature: (J[Ljava/lang/String;[J)V
4403 */
4404void Java_org_rocksdb_ColumnFamilyOptions_cfPaths(JNIEnv* env, jclass,
4405 jlong jhandle,
4406 jobjectArray jpaths,
4407 jlongArray jtarget_sizes) {
4408 rocksdb_convert_cf_paths_to_java_helper<
4409 ROCKSDB_NAMESPACE::ColumnFamilyOptions>(env, jhandle, jpaths,
4410 jtarget_sizes);
4411}
4412
7c673cae
FG
4413/*
4414 * Class: org_rocksdb_ColumnFamilyOptions
4415 * Method: minWriteBufferNumberToMerge
4416 * Signature: (J)I
4417 */
4418jint Java_org_rocksdb_ColumnFamilyOptions_minWriteBufferNumberToMerge(
494da23a 4419 JNIEnv*, jobject, jlong jhandle) {
f67539c2 4420 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4421 ->min_write_buffer_number_to_merge;
7c673cae
FG
4422}
4423
4424/*
4425 * Class: org_rocksdb_ColumnFamilyOptions
4426 * Method: setMinWriteBufferNumberToMerge
4427 * Signature: (JI)V
4428 */
4429void Java_org_rocksdb_ColumnFamilyOptions_setMinWriteBufferNumberToMerge(
494da23a 4430 JNIEnv*, jobject, jlong jhandle, jint jmin_write_buffer_number_to_merge) {
f67539c2 4431 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2
TL
4432 ->min_write_buffer_number_to_merge =
4433 static_cast<int>(jmin_write_buffer_number_to_merge);
7c673cae
FG
4434}
4435
4436/*
4437 * Class: org_rocksdb_ColumnFamilyOptions
4438 * Method: maxWriteBufferNumberToMaintain
4439 * Signature: (J)I
4440 */
4441jint Java_org_rocksdb_ColumnFamilyOptions_maxWriteBufferNumberToMaintain(
494da23a 4442 JNIEnv*, jobject, jlong jhandle) {
f67539c2 4443 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
7c673cae
FG
4444 ->max_write_buffer_number_to_maintain;
4445}
4446
4447/*
4448 * Class: org_rocksdb_ColumnFamilyOptions
4449 * Method: setMaxWriteBufferNumberToMaintain
4450 * Signature: (JI)V
4451 */
4452void Java_org_rocksdb_ColumnFamilyOptions_setMaxWriteBufferNumberToMaintain(
494da23a 4453 JNIEnv*, jobject, jlong jhandle,
7c673cae 4454 jint jmax_write_buffer_number_to_maintain) {
f67539c2 4455 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
7c673cae
FG
4456 ->max_write_buffer_number_to_maintain =
4457 static_cast<int>(jmax_write_buffer_number_to_maintain);
4458}
4459
4460/*
4461 * Class: org_rocksdb_ColumnFamilyOptions
4462 * Method: setCompressionType
4463 * Signature: (JB)V
4464 */
4465void Java_org_rocksdb_ColumnFamilyOptions_setCompressionType(
494da23a 4466 JNIEnv*, jobject, jlong jhandle, jbyte jcompression_type_value) {
f67539c2
TL
4467 auto* cf_opts =
4468 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
4469 cf_opts->compression =
4470 ROCKSDB_NAMESPACE::CompressionTypeJni::toCppCompressionType(
4471 jcompression_type_value);
7c673cae
FG
4472}
4473
4474/*
4475 * Class: org_rocksdb_ColumnFamilyOptions
4476 * Method: compressionType
4477 * Signature: (J)B
4478 */
1e59de90
TL
4479jbyte Java_org_rocksdb_ColumnFamilyOptions_compressionType(JNIEnv*, jobject,
4480 jlong jhandle) {
f67539c2
TL
4481 auto* cf_opts =
4482 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
4483 return ROCKSDB_NAMESPACE::CompressionTypeJni::toJavaCompressionType(
7c673cae
FG
4484 cf_opts->compression);
4485}
4486
4487/*
4488 * Class: org_rocksdb_ColumnFamilyOptions
4489 * Method: setCompressionPerLevel
4490 * Signature: (J[B)V
4491 */
4492void Java_org_rocksdb_ColumnFamilyOptions_setCompressionPerLevel(
494da23a 4493 JNIEnv* env, jobject, jlong jhandle, jbyteArray jcompressionLevels) {
f67539c2
TL
4494 auto* options =
4495 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
7c673cae
FG
4496 auto uptr_compression_levels =
4497 rocksdb_compression_vector_helper(env, jcompressionLevels);
11fdf7f2
TL
4498 if (!uptr_compression_levels) {
4499 // exception occurred
4500 return;
7c673cae
FG
4501 }
4502 options->compression_per_level = *(uptr_compression_levels.get());
4503}
4504
4505/*
4506 * Class: org_rocksdb_ColumnFamilyOptions
4507 * Method: compressionPerLevel
4508 * Signature: (J)[B
4509 */
4510jbyteArray Java_org_rocksdb_ColumnFamilyOptions_compressionPerLevel(
494da23a 4511 JNIEnv* env, jobject, jlong jhandle) {
f67539c2
TL
4512 auto* cf_options =
4513 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
7c673cae 4514 return rocksdb_compression_list_helper(env,
11fdf7f2 4515 cf_options->compression_per_level);
7c673cae
FG
4516}
4517
4518/*
4519 * Class: org_rocksdb_ColumnFamilyOptions
4520 * Method: setBottommostCompressionType
4521 * Signature: (JB)V
4522 */
4523void Java_org_rocksdb_ColumnFamilyOptions_setBottommostCompressionType(
494da23a 4524 JNIEnv*, jobject, jlong jhandle, jbyte jcompression_type_value) {
f67539c2
TL
4525 auto* cf_options =
4526 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
7c673cae 4527 cf_options->bottommost_compression =
f67539c2 4528 ROCKSDB_NAMESPACE::CompressionTypeJni::toCppCompressionType(
7c673cae
FG
4529 jcompression_type_value);
4530}
4531
4532/*
4533 * Class: org_rocksdb_ColumnFamilyOptions
4534 * Method: bottommostCompressionType
4535 * Signature: (J)B
4536 */
4537jbyte Java_org_rocksdb_ColumnFamilyOptions_bottommostCompressionType(
494da23a 4538 JNIEnv*, jobject, jlong jhandle) {
f67539c2
TL
4539 auto* cf_options =
4540 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
4541 return ROCKSDB_NAMESPACE::CompressionTypeJni::toJavaCompressionType(
7c673cae
FG
4542 cf_options->bottommost_compression);
4543}
11fdf7f2
TL
4544/*
4545 * Class: org_rocksdb_ColumnFamilyOptions
4546 * Method: setBottommostCompressionOptions
4547 * Signature: (JJ)V
4548 */
4549void Java_org_rocksdb_ColumnFamilyOptions_setBottommostCompressionOptions(
494da23a 4550 JNIEnv*, jobject, jlong jhandle,
11fdf7f2 4551 jlong jbottommost_compression_options_handle) {
f67539c2
TL
4552 auto* cf_options =
4553 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
11fdf7f2 4554 auto* bottommost_compression_options =
f67539c2 4555 reinterpret_cast<ROCKSDB_NAMESPACE::CompressionOptions*>(
11fdf7f2
TL
4556 jbottommost_compression_options_handle);
4557 cf_options->bottommost_compression_opts = *bottommost_compression_options;
4558}
7c673cae
FG
4559
4560/*
4561 * Class: org_rocksdb_ColumnFamilyOptions
4562 * Method: setCompressionOptions
4563 * Signature: (JJ)V
4564 */
4565void Java_org_rocksdb_ColumnFamilyOptions_setCompressionOptions(
494da23a 4566 JNIEnv*, jobject, jlong jhandle, jlong jcompression_options_handle) {
f67539c2
TL
4567 auto* cf_options =
4568 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
4569 auto* compression_options =
4570 reinterpret_cast<ROCKSDB_NAMESPACE::CompressionOptions*>(
4571 jcompression_options_handle);
7c673cae
FG
4572 cf_options->compression_opts = *compression_options;
4573}
4574
4575/*
4576 * Class: org_rocksdb_ColumnFamilyOptions
4577 * Method: setCompactionStyle
4578 * Signature: (JB)V
4579 */
4580void Java_org_rocksdb_ColumnFamilyOptions_setCompactionStyle(
494da23a 4581 JNIEnv*, jobject, jlong jhandle, jbyte jcompaction_style) {
f67539c2
TL
4582 auto* cf_options =
4583 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
494da23a 4584 cf_options->compaction_style =
f67539c2
TL
4585 ROCKSDB_NAMESPACE::CompactionStyleJni::toCppCompactionStyle(
4586 jcompaction_style);
7c673cae
FG
4587}
4588
4589/*
4590 * Class: org_rocksdb_ColumnFamilyOptions
4591 * Method: compactionStyle
4592 * Signature: (J)B
4593 */
1e59de90
TL
4594jbyte Java_org_rocksdb_ColumnFamilyOptions_compactionStyle(JNIEnv*, jobject,
4595 jlong jhandle) {
f67539c2
TL
4596 auto* cf_options =
4597 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
4598 return ROCKSDB_NAMESPACE::CompactionStyleJni::toJavaCompactionStyle(
494da23a 4599 cf_options->compaction_style);
7c673cae
FG
4600}
4601
4602/*
4603 * Class: org_rocksdb_ColumnFamilyOptions
4604 * Method: setMaxTableFilesSizeFIFO
4605 * Signature: (JJ)V
4606 */
4607void Java_org_rocksdb_ColumnFamilyOptions_setMaxTableFilesSizeFIFO(
494da23a 4608 JNIEnv*, jobject, jlong jhandle, jlong jmax_table_files_size) {
f67539c2 4609 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2
TL
4610 ->compaction_options_fifo.max_table_files_size =
4611 static_cast<uint64_t>(jmax_table_files_size);
7c673cae
FG
4612}
4613
4614/*
4615 * Class: org_rocksdb_ColumnFamilyOptions
4616 * Method: maxTableFilesSizeFIFO
4617 * Signature: (J)J
4618 */
4619jlong Java_org_rocksdb_ColumnFamilyOptions_maxTableFilesSizeFIFO(
494da23a 4620 JNIEnv*, jobject, jlong jhandle) {
f67539c2 4621 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4622 ->compaction_options_fifo.max_table_files_size;
7c673cae
FG
4623}
4624
4625/*
4626 * Class: org_rocksdb_ColumnFamilyOptions
4627 * Method: numLevels
4628 * Signature: (J)I
4629 */
1e59de90
TL
4630jint Java_org_rocksdb_ColumnFamilyOptions_numLevels(JNIEnv*, jobject,
4631 jlong jhandle) {
f67539c2
TL
4632 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
4633 ->num_levels;
7c673cae
FG
4634}
4635
4636/*
4637 * Class: org_rocksdb_ColumnFamilyOptions
4638 * Method: setNumLevels
4639 * Signature: (JI)V
4640 */
1e59de90
TL
4641void Java_org_rocksdb_ColumnFamilyOptions_setNumLevels(JNIEnv*, jobject,
4642 jlong jhandle,
4643 jint jnum_levels) {
f67539c2
TL
4644 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
4645 ->num_levels = static_cast<int>(jnum_levels);
7c673cae
FG
4646}
4647
4648/*
4649 * Class: org_rocksdb_ColumnFamilyOptions
4650 * Method: levelZeroFileNumCompactionTrigger
4651 * Signature: (J)I
4652 */
4653jint Java_org_rocksdb_ColumnFamilyOptions_levelZeroFileNumCompactionTrigger(
494da23a 4654 JNIEnv*, jobject, jlong jhandle) {
f67539c2 4655 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4656 ->level0_file_num_compaction_trigger;
7c673cae
FG
4657}
4658
4659/*
4660 * Class: org_rocksdb_ColumnFamilyOptions
4661 * Method: setLevelZeroFileNumCompactionTrigger
4662 * Signature: (JI)V
4663 */
4664void Java_org_rocksdb_ColumnFamilyOptions_setLevelZeroFileNumCompactionTrigger(
1e59de90 4665 JNIEnv*, jobject, jlong jhandle, jint jlevel0_file_num_compaction_trigger) {
f67539c2 4666 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2
TL
4667 ->level0_file_num_compaction_trigger =
4668 static_cast<int>(jlevel0_file_num_compaction_trigger);
7c673cae
FG
4669}
4670
4671/*
4672 * Class: org_rocksdb_ColumnFamilyOptions
4673 * Method: levelZeroSlowdownWritesTrigger
4674 * Signature: (J)I
4675 */
4676jint Java_org_rocksdb_ColumnFamilyOptions_levelZeroSlowdownWritesTrigger(
494da23a 4677 JNIEnv*, jobject, jlong jhandle) {
f67539c2 4678 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4679 ->level0_slowdown_writes_trigger;
7c673cae
FG
4680}
4681
4682/*
4683 * Class: org_rocksdb_ColumnFamilyOptions
4684 * Method: setLevelSlowdownWritesTrigger
4685 * Signature: (JI)V
4686 */
4687void Java_org_rocksdb_ColumnFamilyOptions_setLevelZeroSlowdownWritesTrigger(
494da23a 4688 JNIEnv*, jobject, jlong jhandle, jint jlevel0_slowdown_writes_trigger) {
f67539c2 4689 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2
TL
4690 ->level0_slowdown_writes_trigger =
4691 static_cast<int>(jlevel0_slowdown_writes_trigger);
7c673cae
FG
4692}
4693
4694/*
4695 * Class: org_rocksdb_ColumnFamilyOptions
4696 * Method: levelZeroStopWritesTrigger
4697 * Signature: (J)I
4698 */
4699jint Java_org_rocksdb_ColumnFamilyOptions_levelZeroStopWritesTrigger(
494da23a 4700 JNIEnv*, jobject, jlong jhandle) {
f67539c2 4701 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4702 ->level0_stop_writes_trigger;
7c673cae
FG
4703}
4704
4705/*
4706 * Class: org_rocksdb_ColumnFamilyOptions
4707 * Method: setLevelStopWritesTrigger
4708 * Signature: (JI)V
4709 */
4710void Java_org_rocksdb_ColumnFamilyOptions_setLevelZeroStopWritesTrigger(
494da23a 4711 JNIEnv*, jobject, jlong jhandle, jint jlevel0_stop_writes_trigger) {
f67539c2 4712 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2
TL
4713 ->level0_stop_writes_trigger =
4714 static_cast<int>(jlevel0_stop_writes_trigger);
7c673cae
FG
4715}
4716
4717/*
4718 * Class: org_rocksdb_ColumnFamilyOptions
4719 * Method: targetFileSizeBase
4720 * Signature: (J)J
4721 */
1e59de90
TL
4722jlong Java_org_rocksdb_ColumnFamilyOptions_targetFileSizeBase(JNIEnv*, jobject,
4723 jlong jhandle) {
f67539c2 4724 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4725 ->target_file_size_base;
7c673cae
FG
4726}
4727
4728/*
4729 * Class: org_rocksdb_ColumnFamilyOptions
4730 * Method: setTargetFileSizeBase
4731 * Signature: (JJ)V
4732 */
4733void Java_org_rocksdb_ColumnFamilyOptions_setTargetFileSizeBase(
494da23a 4734 JNIEnv*, jobject, jlong jhandle, jlong jtarget_file_size_base) {
f67539c2 4735 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4736 ->target_file_size_base = static_cast<uint64_t>(jtarget_file_size_base);
7c673cae
FG
4737}
4738
4739/*
4740 * Class: org_rocksdb_ColumnFamilyOptions
4741 * Method: targetFileSizeMultiplier
4742 * Signature: (J)I
4743 */
4744jint Java_org_rocksdb_ColumnFamilyOptions_targetFileSizeMultiplier(
494da23a 4745 JNIEnv*, jobject, jlong jhandle) {
f67539c2 4746 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4747 ->target_file_size_multiplier;
7c673cae
FG
4748}
4749
4750/*
4751 * Class: org_rocksdb_ColumnFamilyOptions
4752 * Method: setTargetFileSizeMultiplier
4753 * Signature: (JI)V
4754 */
4755void Java_org_rocksdb_ColumnFamilyOptions_setTargetFileSizeMultiplier(
494da23a 4756 JNIEnv*, jobject, jlong jhandle, jint jtarget_file_size_multiplier) {
f67539c2 4757 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2
TL
4758 ->target_file_size_multiplier =
4759 static_cast<int>(jtarget_file_size_multiplier);
7c673cae
FG
4760}
4761
4762/*
4763 * Class: org_rocksdb_ColumnFamilyOptions
4764 * Method: maxBytesForLevelBase
4765 * Signature: (J)J
4766 */
1e59de90
TL
4767jlong Java_org_rocksdb_ColumnFamilyOptions_maxBytesForLevelBase(JNIEnv*,
4768 jobject,
4769 jlong jhandle) {
f67539c2 4770 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4771 ->max_bytes_for_level_base;
7c673cae
FG
4772}
4773
4774/*
4775 * Class: org_rocksdb_ColumnFamilyOptions
4776 * Method: setMaxBytesForLevelBase
4777 * Signature: (JJ)V
4778 */
4779void Java_org_rocksdb_ColumnFamilyOptions_setMaxBytesForLevelBase(
494da23a 4780 JNIEnv*, jobject, jlong jhandle, jlong jmax_bytes_for_level_base) {
f67539c2 4781 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2
TL
4782 ->max_bytes_for_level_base =
4783 static_cast<int64_t>(jmax_bytes_for_level_base);
7c673cae
FG
4784}
4785
4786/*
4787 * Class: org_rocksdb_ColumnFamilyOptions
4788 * Method: levelCompactionDynamicLevelBytes
4789 * Signature: (J)Z
4790 */
4791jboolean Java_org_rocksdb_ColumnFamilyOptions_levelCompactionDynamicLevelBytes(
494da23a 4792 JNIEnv*, jobject, jlong jhandle) {
f67539c2 4793 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4794 ->level_compaction_dynamic_level_bytes;
7c673cae
FG
4795}
4796
4797/*
4798 * Class: org_rocksdb_ColumnFamilyOptions
4799 * Method: setLevelCompactionDynamicLevelBytes
4800 * Signature: (JZ)V
4801 */
4802void Java_org_rocksdb_ColumnFamilyOptions_setLevelCompactionDynamicLevelBytes(
494da23a 4803 JNIEnv*, jobject, jlong jhandle, jboolean jenable_dynamic_level_bytes) {
f67539c2 4804 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4805 ->level_compaction_dynamic_level_bytes = (jenable_dynamic_level_bytes);
7c673cae
FG
4806}
4807
4808/*
4809 * Class: org_rocksdb_ColumnFamilyOptions
4810 * Method: maxBytesForLevelMultiplier
4811 * Signature: (J)D
4812 */
4813jdouble Java_org_rocksdb_ColumnFamilyOptions_maxBytesForLevelMultiplier(
494da23a 4814 JNIEnv*, jobject, jlong jhandle) {
f67539c2 4815 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4816 ->max_bytes_for_level_multiplier;
7c673cae
FG
4817}
4818
4819/*
4820 * Class: org_rocksdb_ColumnFamilyOptions
4821 * Method: setMaxBytesForLevelMultiplier
4822 * Signature: (JD)V
4823 */
4824void Java_org_rocksdb_ColumnFamilyOptions_setMaxBytesForLevelMultiplier(
494da23a 4825 JNIEnv*, jobject, jlong jhandle, jdouble jmax_bytes_for_level_multiplier) {
f67539c2 4826 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
7c673cae
FG
4827 ->max_bytes_for_level_multiplier =
4828 static_cast<double>(jmax_bytes_for_level_multiplier);
4829}
4830
4831/*
4832 * Class: org_rocksdb_ColumnFamilyOptions
4833 * Method: maxCompactionBytes
4834 * Signature: (J)I
4835 */
1e59de90
TL
4836jlong Java_org_rocksdb_ColumnFamilyOptions_maxCompactionBytes(JNIEnv*, jobject,
4837 jlong jhandle) {
7c673cae 4838 return static_cast<jlong>(
f67539c2 4839 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
7c673cae
FG
4840 ->max_compaction_bytes);
4841}
4842
4843/*
4844 * Class: org_rocksdb_ColumnFamilyOptions
4845 * Method: setMaxCompactionBytes
4846 * Signature: (JI)V
4847 */
4848void Java_org_rocksdb_ColumnFamilyOptions_setMaxCompactionBytes(
494da23a 4849 JNIEnv*, jobject, jlong jhandle, jlong jmax_compaction_bytes) {
f67539c2 4850 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
7c673cae
FG
4851 ->max_compaction_bytes = static_cast<uint64_t>(jmax_compaction_bytes);
4852}
4853
4854/*
4855 * Class: org_rocksdb_ColumnFamilyOptions
4856 * Method: arenaBlockSize
4857 * Signature: (J)J
4858 */
1e59de90
TL
4859jlong Java_org_rocksdb_ColumnFamilyOptions_arenaBlockSize(JNIEnv*, jobject,
4860 jlong jhandle) {
f67539c2 4861 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4862 ->arena_block_size;
7c673cae
FG
4863}
4864
4865/*
4866 * Class: org_rocksdb_ColumnFamilyOptions
4867 * Method: setArenaBlockSize
4868 * Signature: (JJ)V
4869 */
4870void Java_org_rocksdb_ColumnFamilyOptions_setArenaBlockSize(
494da23a 4871 JNIEnv* env, jobject, jlong jhandle, jlong jarena_block_size) {
f67539c2
TL
4872 auto s =
4873 ROCKSDB_NAMESPACE::JniUtil::check_if_jlong_fits_size_t(jarena_block_size);
7c673cae 4874 if (s.ok()) {
f67539c2
TL
4875 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
4876 ->arena_block_size = jarena_block_size;
7c673cae 4877 } else {
f67539c2 4878 ROCKSDB_NAMESPACE::IllegalArgumentExceptionJni::ThrowNew(env, s);
7c673cae
FG
4879 }
4880}
4881
4882/*
4883 * Class: org_rocksdb_ColumnFamilyOptions
4884 * Method: disableAutoCompactions
4885 * Signature: (J)Z
4886 */
4887jboolean Java_org_rocksdb_ColumnFamilyOptions_disableAutoCompactions(
494da23a 4888 JNIEnv*, jobject, jlong jhandle) {
f67539c2 4889 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4890 ->disable_auto_compactions;
7c673cae
FG
4891}
4892
4893/*
4894 * Class: org_rocksdb_ColumnFamilyOptions
4895 * Method: setDisableAutoCompactions
4896 * Signature: (JZ)V
4897 */
4898void Java_org_rocksdb_ColumnFamilyOptions_setDisableAutoCompactions(
494da23a 4899 JNIEnv*, jobject, jlong jhandle, jboolean jdisable_auto_compactions) {
f67539c2 4900 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4901 ->disable_auto_compactions = static_cast<bool>(jdisable_auto_compactions);
7c673cae
FG
4902}
4903
4904/*
4905 * Class: org_rocksdb_ColumnFamilyOptions
4906 * Method: maxSequentialSkipInIterations
4907 * Signature: (J)J
4908 */
4909jlong Java_org_rocksdb_ColumnFamilyOptions_maxSequentialSkipInIterations(
494da23a 4910 JNIEnv*, jobject, jlong jhandle) {
f67539c2 4911 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4912 ->max_sequential_skip_in_iterations;
7c673cae
FG
4913}
4914
4915/*
4916 * Class: org_rocksdb_ColumnFamilyOptions
4917 * Method: setMaxSequentialSkipInIterations
4918 * Signature: (JJ)V
4919 */
4920void Java_org_rocksdb_ColumnFamilyOptions_setMaxSequentialSkipInIterations(
1e59de90 4921 JNIEnv*, jobject, jlong jhandle, jlong jmax_sequential_skip_in_iterations) {
f67539c2 4922 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2
TL
4923 ->max_sequential_skip_in_iterations =
4924 static_cast<int64_t>(jmax_sequential_skip_in_iterations);
7c673cae
FG
4925}
4926
4927/*
4928 * Class: org_rocksdb_ColumnFamilyOptions
4929 * Method: inplaceUpdateSupport
4930 * Signature: (J)Z
4931 */
4932jboolean Java_org_rocksdb_ColumnFamilyOptions_inplaceUpdateSupport(
494da23a 4933 JNIEnv*, jobject, jlong jhandle) {
f67539c2 4934 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4935 ->inplace_update_support;
7c673cae
FG
4936}
4937
4938/*
4939 * Class: org_rocksdb_ColumnFamilyOptions
4940 * Method: setInplaceUpdateSupport
4941 * Signature: (JZ)V
4942 */
4943void Java_org_rocksdb_ColumnFamilyOptions_setInplaceUpdateSupport(
494da23a 4944 JNIEnv*, jobject, jlong jhandle, jboolean jinplace_update_support) {
f67539c2 4945 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4946 ->inplace_update_support = static_cast<bool>(jinplace_update_support);
7c673cae
FG
4947}
4948
4949/*
4950 * Class: org_rocksdb_ColumnFamilyOptions
4951 * Method: inplaceUpdateNumLocks
4952 * Signature: (J)J
4953 */
4954jlong Java_org_rocksdb_ColumnFamilyOptions_inplaceUpdateNumLocks(
494da23a 4955 JNIEnv*, jobject, jlong jhandle) {
f67539c2 4956 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4957 ->inplace_update_num_locks;
7c673cae
FG
4958}
4959
4960/*
4961 * Class: org_rocksdb_ColumnFamilyOptions
4962 * Method: setInplaceUpdateNumLocks
4963 * Signature: (JJ)V
4964 */
4965void Java_org_rocksdb_ColumnFamilyOptions_setInplaceUpdateNumLocks(
494da23a 4966 JNIEnv* env, jobject, jlong jhandle, jlong jinplace_update_num_locks) {
f67539c2
TL
4967 auto s = ROCKSDB_NAMESPACE::JniUtil::check_if_jlong_fits_size_t(
4968 jinplace_update_num_locks);
7c673cae 4969 if (s.ok()) {
f67539c2 4970 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 4971 ->inplace_update_num_locks = jinplace_update_num_locks;
7c673cae 4972 } else {
f67539c2 4973 ROCKSDB_NAMESPACE::IllegalArgumentExceptionJni::ThrowNew(env, s);
7c673cae
FG
4974 }
4975}
4976
4977/*
4978 * Class: org_rocksdb_ColumnFamilyOptions
4979 * Method: memtablePrefixBloomSizeRatio
4980 * Signature: (J)I
4981 */
4982jdouble Java_org_rocksdb_ColumnFamilyOptions_memtablePrefixBloomSizeRatio(
494da23a 4983 JNIEnv*, jobject, jlong jhandle) {
f67539c2 4984 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
7c673cae
FG
4985 ->memtable_prefix_bloom_size_ratio;
4986}
4987
4988/*
4989 * Class: org_rocksdb_ColumnFamilyOptions
4990 * Method: setMemtablePrefixBloomSizeRatio
4991 * Signature: (JI)V
4992 */
4993void Java_org_rocksdb_ColumnFamilyOptions_setMemtablePrefixBloomSizeRatio(
494da23a 4994 JNIEnv*, jobject, jlong jhandle,
7c673cae 4995 jdouble jmemtable_prefix_bloom_size_ratio) {
f67539c2 4996 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
7c673cae
FG
4997 ->memtable_prefix_bloom_size_ratio =
4998 static_cast<double>(jmemtable_prefix_bloom_size_ratio);
4999}
5000
5001/*
5002 * Class: org_rocksdb_ColumnFamilyOptions
1e59de90 5003 * Method: experimentalMempurgeThreshold
7c673cae
FG
5004 * Signature: (J)I
5005 */
1e59de90
TL
5006jdouble Java_org_rocksdb_ColumnFamilyOptions_experimentalMempurgeThreshold(
5007 JNIEnv*, jobject, jlong jhandle) {
5008 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
5009 ->experimental_mempurge_threshold;
5010}
5011
5012/*
5013 * Class: org_rocksdb_ColumnFamilyOptions
5014 * Method: setExperimentalMempurgeThreshold
5015 * Signature: (JI)V
5016 */
5017void Java_org_rocksdb_ColumnFamilyOptions_setExperimentalMempurgeThreshold(
5018 JNIEnv*, jobject, jlong jhandle, jdouble jexperimental_mempurge_threshold) {
5019 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
5020 ->experimental_mempurge_threshold =
5021 static_cast<double>(jexperimental_mempurge_threshold);
5022}
5023
5024/*
5025 * Class: org_rocksdb_ColumnFamilyOptions
5026 * Method: memtableWholeKeyFiltering
5027 * Signature: (J)Z
5028 */
5029jboolean Java_org_rocksdb_ColumnFamilyOptions_memtableWholeKeyFiltering(
494da23a 5030 JNIEnv*, jobject, jlong jhandle) {
1e59de90
TL
5031 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
5032 ->memtable_whole_key_filtering;
5033}
5034
5035/*
5036 * Class: org_rocksdb_ColumnFamilyOptions
5037 * Method: setMemtableWholeKeyFiltering
5038 * Signature: (JZ)V
5039 */
5040void Java_org_rocksdb_ColumnFamilyOptions_setMemtableWholeKeyFiltering(
5041 JNIEnv*, jobject, jlong jhandle, jboolean jmemtable_whole_key_filtering) {
5042 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
5043 ->memtable_whole_key_filtering =
5044 static_cast<bool>(jmemtable_whole_key_filtering);
5045}
5046
5047/*
5048 * Class: org_rocksdb_ColumnFamilyOptions
5049 * Method: bloomLocality
5050 * Signature: (J)I
5051 */
5052jint Java_org_rocksdb_ColumnFamilyOptions_bloomLocality(JNIEnv*, jobject,
5053 jlong jhandle) {
f67539c2 5054 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 5055 ->bloom_locality;
7c673cae
FG
5056}
5057
5058/*
5059 * Class: org_rocksdb_ColumnFamilyOptions
5060 * Method: setBloomLocality
5061 * Signature: (JI)V
5062 */
5063void Java_org_rocksdb_ColumnFamilyOptions_setBloomLocality(
494da23a 5064 JNIEnv*, jobject, jlong jhandle, jint jbloom_locality) {
f67539c2
TL
5065 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
5066 ->bloom_locality = static_cast<int32_t>(jbloom_locality);
7c673cae
FG
5067}
5068
5069/*
5070 * Class: org_rocksdb_ColumnFamilyOptions
5071 * Method: maxSuccessiveMerges
5072 * Signature: (J)J
5073 */
1e59de90
TL
5074jlong Java_org_rocksdb_ColumnFamilyOptions_maxSuccessiveMerges(JNIEnv*, jobject,
5075 jlong jhandle) {
f67539c2 5076 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 5077 ->max_successive_merges;
7c673cae
FG
5078}
5079
5080/*
5081 * Class: org_rocksdb_ColumnFamilyOptions
5082 * Method: setMaxSuccessiveMerges
5083 * Signature: (JJ)V
5084 */
5085void Java_org_rocksdb_ColumnFamilyOptions_setMaxSuccessiveMerges(
494da23a 5086 JNIEnv* env, jobject, jlong jhandle, jlong jmax_successive_merges) {
f67539c2
TL
5087 auto s = ROCKSDB_NAMESPACE::JniUtil::check_if_jlong_fits_size_t(
5088 jmax_successive_merges);
7c673cae 5089 if (s.ok()) {
f67539c2 5090 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 5091 ->max_successive_merges = jmax_successive_merges;
7c673cae 5092 } else {
f67539c2 5093 ROCKSDB_NAMESPACE::IllegalArgumentExceptionJni::ThrowNew(env, s);
7c673cae
FG
5094 }
5095}
5096
5097/*
5098 * Class: org_rocksdb_ColumnFamilyOptions
5099 * Method: optimizeFiltersForHits
5100 * Signature: (J)Z
5101 */
5102jboolean Java_org_rocksdb_ColumnFamilyOptions_optimizeFiltersForHits(
494da23a 5103 JNIEnv*, jobject, jlong jhandle) {
f67539c2 5104 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 5105 ->optimize_filters_for_hits;
7c673cae
FG
5106}
5107
5108/*
5109 * Class: org_rocksdb_ColumnFamilyOptions
5110 * Method: setOptimizeFiltersForHits
5111 * Signature: (JZ)V
5112 */
5113void Java_org_rocksdb_ColumnFamilyOptions_setOptimizeFiltersForHits(
494da23a 5114 JNIEnv*, jobject, jlong jhandle, jboolean joptimize_filters_for_hits) {
f67539c2 5115 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2
TL
5116 ->optimize_filters_for_hits =
5117 static_cast<bool>(joptimize_filters_for_hits);
7c673cae
FG
5118}
5119
5120/*
5121 * Class: org_rocksdb_ColumnFamilyOptions
5122 * Method: memtableHugePageSize
5123 * Signature: (J)J
5124 */
1e59de90
TL
5125jlong Java_org_rocksdb_ColumnFamilyOptions_memtableHugePageSize(JNIEnv*,
5126 jobject,
5127 jlong jhandle) {
f67539c2 5128 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 5129 ->memtable_huge_page_size;
7c673cae
FG
5130}
5131
5132/*
5133 * Class: org_rocksdb_ColumnFamilyOptions
5134 * Method: setMemtableHugePageSize
5135 * Signature: (JJ)V
5136 */
5137void Java_org_rocksdb_ColumnFamilyOptions_setMemtableHugePageSize(
494da23a 5138 JNIEnv* env, jobject, jlong jhandle, jlong jmemtable_huge_page_size) {
f67539c2
TL
5139 auto s = ROCKSDB_NAMESPACE::JniUtil::check_if_jlong_fits_size_t(
5140 jmemtable_huge_page_size);
7c673cae 5141 if (s.ok()) {
f67539c2 5142 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 5143 ->memtable_huge_page_size = jmemtable_huge_page_size;
7c673cae 5144 } else {
f67539c2 5145 ROCKSDB_NAMESPACE::IllegalArgumentExceptionJni::ThrowNew(env, s);
7c673cae
FG
5146 }
5147}
5148
5149/*
5150 * Class: org_rocksdb_ColumnFamilyOptions
5151 * Method: softPendingCompactionBytesLimit
5152 * Signature: (J)J
5153 */
5154jlong Java_org_rocksdb_ColumnFamilyOptions_softPendingCompactionBytesLimit(
494da23a 5155 JNIEnv*, jobject, jlong jhandle) {
f67539c2 5156 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 5157 ->soft_pending_compaction_bytes_limit;
7c673cae
FG
5158}
5159
5160/*
5161 * Class: org_rocksdb_ColumnFamilyOptions
5162 * Method: setSoftPendingCompactionBytesLimit
5163 * Signature: (JJ)V
5164 */
5165void Java_org_rocksdb_ColumnFamilyOptions_setSoftPendingCompactionBytesLimit(
494da23a 5166 JNIEnv*, jobject, jlong jhandle,
11fdf7f2 5167 jlong jsoft_pending_compaction_bytes_limit) {
f67539c2 5168 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2
TL
5169 ->soft_pending_compaction_bytes_limit =
5170 static_cast<int64_t>(jsoft_pending_compaction_bytes_limit);
7c673cae
FG
5171}
5172
5173/*
5174 * Class: org_rocksdb_ColumnFamilyOptions
5175 * Method: softHardCompactionBytesLimit
5176 * Signature: (J)J
5177 */
5178jlong Java_org_rocksdb_ColumnFamilyOptions_hardPendingCompactionBytesLimit(
494da23a 5179 JNIEnv*, jobject, jlong jhandle) {
f67539c2 5180 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 5181 ->hard_pending_compaction_bytes_limit;
7c673cae
FG
5182}
5183
5184/*
5185 * Class: org_rocksdb_ColumnFamilyOptions
5186 * Method: setHardPendingCompactionBytesLimit
5187 * Signature: (JJ)V
5188 */
5189void Java_org_rocksdb_ColumnFamilyOptions_setHardPendingCompactionBytesLimit(
494da23a 5190 JNIEnv*, jobject, jlong jhandle,
11fdf7f2 5191 jlong jhard_pending_compaction_bytes_limit) {
f67539c2 5192 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2
TL
5193 ->hard_pending_compaction_bytes_limit =
5194 static_cast<int64_t>(jhard_pending_compaction_bytes_limit);
7c673cae
FG
5195}
5196
5197/*
5198 * Class: org_rocksdb_ColumnFamilyOptions
5199 * Method: level0FileNumCompactionTrigger
5200 * Signature: (J)I
5201 */
5202jint Java_org_rocksdb_ColumnFamilyOptions_level0FileNumCompactionTrigger(
494da23a 5203 JNIEnv*, jobject, jlong jhandle) {
f67539c2 5204 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 5205 ->level0_file_num_compaction_trigger;
7c673cae
FG
5206}
5207
5208/*
5209 * Class: org_rocksdb_ColumnFamilyOptions
5210 * Method: setLevel0FileNumCompactionTrigger
5211 * Signature: (JI)V
5212 */
5213void Java_org_rocksdb_ColumnFamilyOptions_setLevel0FileNumCompactionTrigger(
1e59de90 5214 JNIEnv*, jobject, jlong jhandle, jint jlevel0_file_num_compaction_trigger) {
f67539c2 5215 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2
TL
5216 ->level0_file_num_compaction_trigger =
5217 static_cast<int32_t>(jlevel0_file_num_compaction_trigger);
7c673cae
FG
5218}
5219
5220/*
5221 * Class: org_rocksdb_ColumnFamilyOptions
5222 * Method: level0SlowdownWritesTrigger
5223 * Signature: (J)I
5224 */
5225jint Java_org_rocksdb_ColumnFamilyOptions_level0SlowdownWritesTrigger(
494da23a 5226 JNIEnv*, jobject, jlong jhandle) {
f67539c2 5227 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 5228 ->level0_slowdown_writes_trigger;
7c673cae
FG
5229}
5230
5231/*
5232 * Class: org_rocksdb_ColumnFamilyOptions
5233 * Method: setLevel0SlowdownWritesTrigger
5234 * Signature: (JI)V
5235 */
5236void Java_org_rocksdb_ColumnFamilyOptions_setLevel0SlowdownWritesTrigger(
494da23a 5237 JNIEnv*, jobject, jlong jhandle, jint jlevel0_slowdown_writes_trigger) {
f67539c2 5238 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2
TL
5239 ->level0_slowdown_writes_trigger =
5240 static_cast<int32_t>(jlevel0_slowdown_writes_trigger);
7c673cae
FG
5241}
5242
5243/*
5244 * Class: org_rocksdb_ColumnFamilyOptions
5245 * Method: level0StopWritesTrigger
5246 * Signature: (J)I
5247 */
5248jint Java_org_rocksdb_ColumnFamilyOptions_level0StopWritesTrigger(
494da23a 5249 JNIEnv*, jobject, jlong jhandle) {
f67539c2 5250 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 5251 ->level0_stop_writes_trigger;
7c673cae
FG
5252}
5253
5254/*
5255 * Class: org_rocksdb_ColumnFamilyOptions
5256 * Method: setLevel0StopWritesTrigger
5257 * Signature: (JI)V
5258 */
5259void Java_org_rocksdb_ColumnFamilyOptions_setLevel0StopWritesTrigger(
494da23a 5260 JNIEnv*, jobject, jlong jhandle, jint jlevel0_stop_writes_trigger) {
f67539c2 5261 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2
TL
5262 ->level0_stop_writes_trigger =
5263 static_cast<int32_t>(jlevel0_stop_writes_trigger);
7c673cae
FG
5264}
5265
5266/*
5267 * Class: org_rocksdb_ColumnFamilyOptions
5268 * Method: maxBytesForLevelMultiplierAdditional
5269 * Signature: (J)[I
5270 */
1e59de90
TL
5271jintArray
5272Java_org_rocksdb_ColumnFamilyOptions_maxBytesForLevelMultiplierAdditional(
494da23a 5273 JNIEnv* env, jobject, jlong jhandle) {
f67539c2
TL
5274 auto mbflma =
5275 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
5276 ->max_bytes_for_level_multiplier_additional;
7c673cae
FG
5277
5278 const size_t size = mbflma.size();
5279
5280 jint* additionals = new jint[size];
5281 for (size_t i = 0; i < size; i++) {
5282 additionals[i] = static_cast<jint>(mbflma[i]);
5283 }
5284
5285 jsize jlen = static_cast<jsize>(size);
5286 jintArray result = env->NewIntArray(jlen);
11fdf7f2 5287 if (result == nullptr) {
7c673cae 5288 // exception thrown: OutOfMemoryError
11fdf7f2 5289 delete[] additionals;
7c673cae
FG
5290 return nullptr;
5291 }
5292 env->SetIntArrayRegion(result, 0, jlen, additionals);
11fdf7f2
TL
5293 if (env->ExceptionCheck()) {
5294 // exception thrown: ArrayIndexOutOfBoundsException
5295 env->DeleteLocalRef(result);
5296 delete[] additionals;
5297 return nullptr;
7c673cae
FG
5298 }
5299
11fdf7f2 5300 delete[] additionals;
7c673cae
FG
5301
5302 return result;
5303}
5304
5305/*
5306 * Class: org_rocksdb_ColumnFamilyOptions
5307 * Method: setMaxBytesForLevelMultiplierAdditional
5308 * Signature: (J[I)V
5309 */
5310void Java_org_rocksdb_ColumnFamilyOptions_setMaxBytesForLevelMultiplierAdditional(
494da23a 5311 JNIEnv* env, jobject, jlong jhandle,
7c673cae
FG
5312 jintArray jmax_bytes_for_level_multiplier_additional) {
5313 jsize len = env->GetArrayLength(jmax_bytes_for_level_multiplier_additional);
20effc67
TL
5314 jint* additionals = env->GetIntArrayElements(
5315 jmax_bytes_for_level_multiplier_additional, nullptr);
11fdf7f2 5316 if (additionals == nullptr) {
7c673cae
FG
5317 // exception thrown: OutOfMemoryError
5318 return;
5319 }
5320
f67539c2
TL
5321 auto* cf_opt =
5322 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
7c673cae
FG
5323 cf_opt->max_bytes_for_level_multiplier_additional.clear();
5324 for (jsize i = 0; i < len; i++) {
11fdf7f2
TL
5325 cf_opt->max_bytes_for_level_multiplier_additional.push_back(
5326 static_cast<int32_t>(additionals[i]));
7c673cae
FG
5327 }
5328
5329 env->ReleaseIntArrayElements(jmax_bytes_for_level_multiplier_additional,
11fdf7f2 5330 additionals, JNI_ABORT);
7c673cae
FG
5331}
5332
5333/*
5334 * Class: org_rocksdb_ColumnFamilyOptions
5335 * Method: paranoidFileChecks
5336 * Signature: (J)Z
5337 */
5338jboolean Java_org_rocksdb_ColumnFamilyOptions_paranoidFileChecks(
494da23a 5339 JNIEnv*, jobject, jlong jhandle) {
f67539c2 5340 return reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 5341 ->paranoid_file_checks;
7c673cae
FG
5342}
5343
5344/*
5345 * Class: org_rocksdb_ColumnFamilyOptions
5346 * Method: setParanoidFileChecks
5347 * Signature: (JZ)V
5348 */
5349void Java_org_rocksdb_ColumnFamilyOptions_setParanoidFileChecks(
494da23a 5350 JNIEnv*, jobject, jlong jhandle, jboolean jparanoid_file_checks) {
f67539c2 5351 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle)
11fdf7f2 5352 ->paranoid_file_checks = static_cast<bool>(jparanoid_file_checks);
7c673cae
FG
5353}
5354
5355/*
5356 * Class: org_rocksdb_ColumnFamilyOptions
5357 * Method: setCompactionPriority
5358 * Signature: (JB)V
5359 */
5360void Java_org_rocksdb_ColumnFamilyOptions_setCompactionPriority(
494da23a 5361 JNIEnv*, jobject, jlong jhandle, jbyte jcompaction_priority_value) {
f67539c2
TL
5362 auto* cf_opts =
5363 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
7c673cae 5364 cf_opts->compaction_pri =
f67539c2 5365 ROCKSDB_NAMESPACE::CompactionPriorityJni::toCppCompactionPriority(
11fdf7f2 5366 jcompaction_priority_value);
7c673cae
FG
5367}
5368
5369/*
5370 * Class: org_rocksdb_ColumnFamilyOptions
5371 * Method: compactionPriority
5372 * Signature: (J)B
5373 */
1e59de90
TL
5374jbyte Java_org_rocksdb_ColumnFamilyOptions_compactionPriority(JNIEnv*, jobject,
5375 jlong jhandle) {
f67539c2
TL
5376 auto* cf_opts =
5377 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5378 return ROCKSDB_NAMESPACE::CompactionPriorityJni::toJavaCompactionPriority(
7c673cae
FG
5379 cf_opts->compaction_pri);
5380}
5381
5382/*
5383 * Class: org_rocksdb_ColumnFamilyOptions
5384 * Method: setReportBgIoStats
5385 * Signature: (JZ)V
5386 */
5387void Java_org_rocksdb_ColumnFamilyOptions_setReportBgIoStats(
494da23a 5388 JNIEnv*, jobject, jlong jhandle, jboolean jreport_bg_io_stats) {
f67539c2
TL
5389 auto* cf_opts =
5390 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
7c673cae
FG
5391 cf_opts->report_bg_io_stats = static_cast<bool>(jreport_bg_io_stats);
5392}
5393
5394/*
5395 * Class: org_rocksdb_ColumnFamilyOptions
5396 * Method: reportBgIoStats
5397 * Signature: (J)Z
5398 */
1e59de90
TL
5399jboolean Java_org_rocksdb_ColumnFamilyOptions_reportBgIoStats(JNIEnv*, jobject,
5400 jlong jhandle) {
f67539c2
TL
5401 auto* cf_opts =
5402 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
7c673cae
FG
5403 return static_cast<bool>(cf_opts->report_bg_io_stats);
5404}
5405
494da23a
TL
5406/*
5407 * Class: org_rocksdb_ColumnFamilyOptions
5408 * Method: setTtl
5409 * Signature: (JJ)V
5410 */
1e59de90
TL
5411void Java_org_rocksdb_ColumnFamilyOptions_setTtl(JNIEnv*, jobject,
5412 jlong jhandle, jlong jttl) {
f67539c2
TL
5413 auto* cf_opts =
5414 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
494da23a
TL
5415 cf_opts->ttl = static_cast<uint64_t>(jttl);
5416}
5417
5418/*
5419 * Class: org_rocksdb_ColumnFamilyOptions
5420 * Method: ttl
5421 * Signature: (J)J
5422 */
1e59de90
TL
5423JNIEXPORT jlong JNICALL
5424Java_org_rocksdb_ColumnFamilyOptions_ttl(JNIEnv*, jobject, jlong jhandle) {
f67539c2
TL
5425 auto* cf_opts =
5426 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
494da23a
TL
5427 return static_cast<jlong>(cf_opts->ttl);
5428}
5429
1e59de90
TL
5430/*
5431 * Class: org_rocksdb_ColumnFamilyOptions
5432 * Method: setPeriodicCompactionSeconds
5433 * Signature: (JJ)V
5434 */
5435void Java_org_rocksdb_ColumnFamilyOptions_setPeriodicCompactionSeconds(
5436 JNIEnv*, jobject, jlong jhandle, jlong jperiodicCompactionSeconds) {
5437 auto* cf_opts =
5438 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5439 cf_opts->periodic_compaction_seconds =
5440 static_cast<uint64_t>(jperiodicCompactionSeconds);
5441}
5442
5443/*
5444 * Class: org_rocksdb_ColumnFamilyOptions
5445 * Method: periodicCompactionSeconds
5446 * Signature: (J)J
5447 */
5448JNIEXPORT jlong JNICALL
5449Java_org_rocksdb_ColumnFamilyOptions_periodicCompactionSeconds(JNIEnv*, jobject,
5450 jlong jhandle) {
5451 auto* cf_opts =
5452 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5453 return static_cast<jlong>(cf_opts->periodic_compaction_seconds);
5454}
5455
7c673cae
FG
5456/*
5457 * Class: org_rocksdb_ColumnFamilyOptions
5458 * Method: setCompactionOptionsUniversal
5459 * Signature: (JJ)V
5460 */
5461void Java_org_rocksdb_ColumnFamilyOptions_setCompactionOptionsUniversal(
494da23a 5462 JNIEnv*, jobject, jlong jhandle,
7c673cae 5463 jlong jcompaction_options_universal_handle) {
f67539c2
TL
5464 auto* cf_opts =
5465 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5466 auto* opts_uni =
5467 reinterpret_cast<ROCKSDB_NAMESPACE::CompactionOptionsUniversal*>(
5468 jcompaction_options_universal_handle);
7c673cae
FG
5469 cf_opts->compaction_options_universal = *opts_uni;
5470}
5471
5472/*
5473 * Class: org_rocksdb_ColumnFamilyOptions
5474 * Method: setCompactionOptionsFIFO
5475 * Signature: (JJ)V
5476 */
5477void Java_org_rocksdb_ColumnFamilyOptions_setCompactionOptionsFIFO(
494da23a 5478 JNIEnv*, jobject, jlong jhandle, jlong jcompaction_options_fifo_handle) {
f67539c2
TL
5479 auto* cf_opts =
5480 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5481 auto* opts_fifo = reinterpret_cast<ROCKSDB_NAMESPACE::CompactionOptionsFIFO*>(
11fdf7f2 5482 jcompaction_options_fifo_handle);
7c673cae
FG
5483 cf_opts->compaction_options_fifo = *opts_fifo;
5484}
5485
5486/*
5487 * Class: org_rocksdb_ColumnFamilyOptions
5488 * Method: setForceConsistencyChecks
5489 * Signature: (JZ)V
5490 */
5491void Java_org_rocksdb_ColumnFamilyOptions_setForceConsistencyChecks(
494da23a 5492 JNIEnv*, jobject, jlong jhandle, jboolean jforce_consistency_checks) {
f67539c2
TL
5493 auto* cf_opts =
5494 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
11fdf7f2
TL
5495 cf_opts->force_consistency_checks =
5496 static_cast<bool>(jforce_consistency_checks);
7c673cae
FG
5497}
5498
5499/*
5500 * Class: org_rocksdb_ColumnFamilyOptions
5501 * Method: forceConsistencyChecks
5502 * Signature: (J)Z
5503 */
5504jboolean Java_org_rocksdb_ColumnFamilyOptions_forceConsistencyChecks(
494da23a 5505 JNIEnv*, jobject, jlong jhandle) {
f67539c2
TL
5506 auto* cf_opts =
5507 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
1e59de90
TL
5508 return static_cast<jboolean>(cf_opts->force_consistency_checks);
5509}
5510
5511/// BLOB options
5512
5513/*
5514 * Class: org_rocksdb_ColumnFamilyOptions
5515 * Method: setEnableBlobFiles
5516 * Signature: (JZ)V
5517 */
5518void Java_org_rocksdb_ColumnFamilyOptions_setEnableBlobFiles(
5519 JNIEnv*, jobject, jlong jhandle, jboolean jenable_blob_files) {
5520 auto* opts =
5521 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5522 opts->enable_blob_files = static_cast<bool>(jenable_blob_files);
5523}
5524
5525/*
5526 * Class: org_rocksdb_ColumnFamilyOptions
5527 * Method: enableBlobFiles
5528 * Signature: (J)Z
5529 */
5530jboolean Java_org_rocksdb_ColumnFamilyOptions_enableBlobFiles(JNIEnv*, jobject,
5531 jlong jhandle) {
5532 auto* opts =
5533 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5534 return static_cast<jboolean>(opts->enable_blob_files);
5535}
5536
5537/*
5538 * Class: org_rocksdb_ColumnFamilyOptions
5539 * Method: setMinBlobSize
5540 * Signature: (JJ)V
5541 */
5542void Java_org_rocksdb_ColumnFamilyOptions_setMinBlobSize(JNIEnv*, jobject,
5543 jlong jhandle,
5544 jlong jmin_blob_size) {
5545 auto* opts =
5546 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5547 opts->min_blob_size = static_cast<uint64_t>(jmin_blob_size);
5548}
5549
5550/*
5551 * Class: org_rocksdb_ColumnFamilyOptions
5552 * Method: minBlobSize
5553 * Signature: (J)J
5554 */
5555jlong Java_org_rocksdb_ColumnFamilyOptions_minBlobSize(JNIEnv*, jobject,
5556 jlong jhandle) {
5557 auto* opts =
5558 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5559 return static_cast<jlong>(opts->min_blob_size);
5560}
5561
5562/*
5563 * Class: org_rocksdb_ColumnFamilyOptions
5564 * Method: setBlobFileSize
5565 * Signature: (JJ)V
5566 */
5567void Java_org_rocksdb_ColumnFamilyOptions_setBlobFileSize(
5568 JNIEnv*, jobject, jlong jhandle, jlong jblob_file_size) {
5569 auto* opts =
5570 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5571 opts->blob_file_size = static_cast<uint64_t>(jblob_file_size);
5572}
5573
5574/*
5575 * Class: org_rocksdb_ColumnFamilyOptions
5576 * Method: blobFileSize
5577 * Signature: (J)J
5578 */
5579jlong Java_org_rocksdb_ColumnFamilyOptions_blobFileSize(JNIEnv*, jobject,
5580 jlong jhandle) {
5581 auto* opts =
5582 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5583 return static_cast<jlong>(opts->blob_file_size);
5584}
5585
5586/*
5587 * Class: org_rocksdb_ColumnFamilyOptions
5588 * Method: setBlobCompressionType
5589 * Signature: (JB)V
5590 */
5591void Java_org_rocksdb_ColumnFamilyOptions_setBlobCompressionType(
5592 JNIEnv*, jobject, jlong jhandle, jbyte jblob_compression_type_value) {
5593 auto* opts =
5594 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5595 opts->blob_compression_type =
5596 ROCKSDB_NAMESPACE::CompressionTypeJni::toCppCompressionType(
5597 jblob_compression_type_value);
5598}
5599
5600/*
5601 * Class: org_rocksdb_ColumnFamilyOptions
5602 * Method: blobCompressionType
5603 * Signature: (J)B
5604 */
5605jbyte Java_org_rocksdb_ColumnFamilyOptions_blobCompressionType(JNIEnv*, jobject,
5606 jlong jhandle) {
5607 auto* opts =
5608 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5609 return ROCKSDB_NAMESPACE::CompressionTypeJni::toJavaCompressionType(
5610 opts->blob_compression_type);
5611}
5612
5613/*
5614 * Class: org_rocksdb_ColumnFamilyOptions
5615 * Method: setEnableBlobGarbageCollection
5616 * Signature: (JZ)V
5617 */
5618void Java_org_rocksdb_ColumnFamilyOptions_setEnableBlobGarbageCollection(
5619 JNIEnv*, jobject, jlong jhandle, jboolean jenable_blob_garbage_collection) {
5620 auto* opts =
5621 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5622 opts->enable_blob_garbage_collection =
5623 static_cast<bool>(jenable_blob_garbage_collection);
5624}
5625
5626/*
5627 * Class: org_rocksdb_ColumnFamilyOptions
5628 * Method: enableBlobGarbageCollection
5629 * Signature: (J)Z
5630 */
5631jboolean Java_org_rocksdb_ColumnFamilyOptions_enableBlobGarbageCollection(
5632 JNIEnv*, jobject, jlong jhandle) {
5633 auto* opts =
5634 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5635 return static_cast<jboolean>(opts->enable_blob_garbage_collection);
5636}
5637
5638/*
5639 * Class: org_rocksdb_ColumnFamilyOptions
5640 * Method: setBlobGarbageCollectionAgeCutoff
5641 * Signature: (JD)V
5642 */
5643void Java_org_rocksdb_ColumnFamilyOptions_setBlobGarbageCollectionAgeCutoff(
5644 JNIEnv*, jobject, jlong jhandle,
5645 jdouble jblob_garbage_collection_age_cutoff) {
5646 auto* opts =
5647 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5648 opts->blob_garbage_collection_age_cutoff =
5649 static_cast<double>(jblob_garbage_collection_age_cutoff);
5650}
5651
5652/*
5653 * Class: org_rocksdb_ColumnFamilyOptions
5654 * Method: blobGarbageCollectionAgeCutoff
5655 * Signature: (J)D
5656 */
5657jdouble Java_org_rocksdb_ColumnFamilyOptions_blobGarbageCollectionAgeCutoff(
5658 JNIEnv*, jobject, jlong jhandle) {
5659 auto* opts =
5660 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5661 return static_cast<jdouble>(opts->blob_garbage_collection_age_cutoff);
5662}
5663
5664/*
5665 * Class: org_rocksdb_ColumnFamilyOptions
5666 * Method: setBlobGarbageCollectionForceThreshold
5667 * Signature: (JD)V
5668 */
5669void Java_org_rocksdb_ColumnFamilyOptions_setBlobGarbageCollectionForceThreshold(
5670 JNIEnv*, jobject, jlong jhandle,
5671 jdouble jblob_garbage_collection_force_threshold) {
5672 auto* opts =
5673 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5674 opts->blob_garbage_collection_force_threshold =
5675 static_cast<double>(jblob_garbage_collection_force_threshold);
5676}
5677
5678/*
5679 * Class: org_rocksdb_ColumnFamilyOptions
5680 * Method: blobGarbageCollectionForceThreshold
5681 * Signature: (J)D
5682 */
5683jdouble
5684Java_org_rocksdb_ColumnFamilyOptions_blobGarbageCollectionForceThreshold(
5685 JNIEnv*, jobject, jlong jhandle) {
5686 auto* opts =
5687 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5688 return static_cast<jdouble>(opts->blob_garbage_collection_force_threshold);
5689}
5690
5691/*
5692 * Class: org_rocksdb_ColumnFamilyOptions
5693 * Method: setBlobCompactionReadaheadSize
5694 * Signature: (JJ)V
5695 */
5696void Java_org_rocksdb_ColumnFamilyOptions_setBlobCompactionReadaheadSize(
5697 JNIEnv*, jobject, jlong jhandle, jlong jblob_compaction_readahead_size) {
5698 auto* opts =
5699 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5700 opts->blob_compaction_readahead_size =
5701 static_cast<uint64_t>(jblob_compaction_readahead_size);
5702}
5703
5704/*
5705 * Class: org_rocksdb_ColumnFamilyOptions
5706 * Method: blobCompactionReadaheadSize
5707 * Signature: (J)J
5708 */
5709jlong Java_org_rocksdb_ColumnFamilyOptions_blobCompactionReadaheadSize(
5710 JNIEnv*, jobject, jlong jhandle) {
5711 auto* opts =
5712 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5713 return static_cast<jlong>(opts->blob_compaction_readahead_size);
5714}
5715
5716/*
5717 * Class: org_rocksdb_ColumnFamilyOptions
5718 * Method: setBlobFileStartingLevel
5719 * Signature: (JI)V
5720 */
5721void Java_org_rocksdb_ColumnFamilyOptions_setBlobFileStartingLevel(
5722 JNIEnv*, jobject, jlong jhandle, jint jblob_file_starting_level) {
5723 auto* opts =
5724 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5725 opts->blob_file_starting_level = jblob_file_starting_level;
5726}
5727
5728/*
5729 * Class: org_rocksdb_ColumnFamilyOptions
5730 * Method: blobFileStartingLevel
5731 * Signature: (J)I
5732 */
5733jint Java_org_rocksdb_ColumnFamilyOptions_blobFileStartingLevel(JNIEnv*,
5734 jobject,
5735 jlong jhandle) {
5736 auto* opts =
5737 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5738 return static_cast<jint>(opts->blob_file_starting_level);
5739}
5740
5741/*
5742 * Class: org_rocksdb_ColumnFamilyOptions
5743 * Method: setPrepopulateBlobCache
5744 * Signature: (JB)V
5745 */
5746void Java_org_rocksdb_ColumnFamilyOptions_setPrepopulateBlobCache(
5747 JNIEnv*, jobject, jlong jhandle, jbyte jprepopulate_blob_cache_value) {
5748 auto* opts =
5749 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5750 opts->prepopulate_blob_cache =
5751 ROCKSDB_NAMESPACE::PrepopulateBlobCacheJni::toCppPrepopulateBlobCache(
5752 jprepopulate_blob_cache_value);
5753}
5754
5755/*
5756 * Class: org_rocksdb_ColumnFamilyOptions
5757 * Method: prepopulateBlobCache
5758 * Signature: (J)B
5759 */
5760jbyte Java_org_rocksdb_ColumnFamilyOptions_prepopulateBlobCache(JNIEnv*,
5761 jobject,
5762 jlong jhandle) {
5763 auto* opts =
5764 reinterpret_cast<ROCKSDB_NAMESPACE::ColumnFamilyOptions*>(jhandle);
5765 return ROCKSDB_NAMESPACE::PrepopulateBlobCacheJni::toJavaPrepopulateBlobCache(
5766 opts->prepopulate_blob_cache);
7c673cae
FG
5767}
5768
5769/////////////////////////////////////////////////////////////////////
f67539c2 5770// ROCKSDB_NAMESPACE::DBOptions
7c673cae
FG
5771
5772/*
5773 * Class: org_rocksdb_DBOptions
5774 * Method: newDBOptions
5775 * Signature: ()J
5776 */
1e59de90 5777jlong Java_org_rocksdb_DBOptions_newDBOptions(JNIEnv*, jclass) {
f67539c2 5778 auto* dbop = new ROCKSDB_NAMESPACE::DBOptions();
1e59de90 5779 return GET_CPLUSPLUS_POINTER(dbop);
7c673cae
FG
5780}
5781
11fdf7f2
TL
5782/*
5783 * Class: org_rocksdb_DBOptions
5784 * Method: copyDBOptions
5785 * Signature: (J)J
5786 */
1e59de90 5787jlong Java_org_rocksdb_DBOptions_copyDBOptions(JNIEnv*, jclass, jlong jhandle) {
f67539c2
TL
5788 auto new_opt = new ROCKSDB_NAMESPACE::DBOptions(
5789 *(reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)));
1e59de90 5790 return GET_CPLUSPLUS_POINTER(new_opt);
11fdf7f2
TL
5791}
5792
494da23a
TL
5793/*
5794 * Class: org_rocksdb_DBOptions
5795 * Method: newDBOptionsFromOptions
5796 * Signature: (J)J
5797 */
5798jlong Java_org_rocksdb_DBOptions_newDBOptionsFromOptions(
5799 JNIEnv*, jclass, jlong joptions_handle) {
f67539c2
TL
5800 auto new_opt = new ROCKSDB_NAMESPACE::DBOptions(
5801 *reinterpret_cast<ROCKSDB_NAMESPACE::Options*>(joptions_handle));
1e59de90 5802 return GET_CPLUSPLUS_POINTER(new_opt);
494da23a
TL
5803}
5804
20effc67
TL
5805/*
5806 * Class: org_rocksdb_DBOptions
5807 * Method: getDBOptionsFromProps
5808 * Signature: (JLjava/lang/String;)J
5809 */
5810jlong Java_org_rocksdb_DBOptions_getDBOptionsFromProps__JLjava_lang_String_2(
5811 JNIEnv* env, jclass, jlong config_handle, jstring jopt_string) {
5812 const char* opt_string = env->GetStringUTFChars(jopt_string, nullptr);
5813 if (opt_string == nullptr) {
5814 // exception thrown: OutOfMemoryError
5815 return 0;
5816 }
5817
5818 auto* config_options =
5819 reinterpret_cast<ROCKSDB_NAMESPACE::ConfigOptions*>(config_handle);
5820 auto* db_options = new ROCKSDB_NAMESPACE::DBOptions();
5821 ROCKSDB_NAMESPACE::Status status = ROCKSDB_NAMESPACE::GetDBOptionsFromString(
5822 *config_options, ROCKSDB_NAMESPACE::DBOptions(), opt_string, db_options);
5823
5824 env->ReleaseStringUTFChars(jopt_string, opt_string);
5825
5826 // Check if DBOptions creation was possible.
5827 jlong ret_value = 0;
5828 if (status.ok()) {
1e59de90 5829 ret_value = GET_CPLUSPLUS_POINTER(db_options);
20effc67
TL
5830 } else {
5831 // if operation failed the DBOptions need to be deleted
5832 // again to prevent a memory leak.
5833 delete db_options;
5834 }
5835 return ret_value;
5836}
5837
7c673cae
FG
5838/*
5839 * Class: org_rocksdb_DBOptions
5840 * Method: getDBOptionsFromProps
5841 * Signature: (Ljava/util/String;)J
5842 */
20effc67 5843jlong Java_org_rocksdb_DBOptions_getDBOptionsFromProps__Ljava_lang_String_2(
494da23a 5844 JNIEnv* env, jclass, jstring jopt_string) {
7c673cae 5845 const char* opt_string = env->GetStringUTFChars(jopt_string, nullptr);
11fdf7f2 5846 if (opt_string == nullptr) {
7c673cae
FG
5847 // exception thrown: OutOfMemoryError
5848 return 0;
5849 }
5850
f67539c2
TL
5851 auto* db_options = new ROCKSDB_NAMESPACE::DBOptions();
5852 ROCKSDB_NAMESPACE::Status status = ROCKSDB_NAMESPACE::GetDBOptionsFromString(
5853 ROCKSDB_NAMESPACE::DBOptions(), opt_string, db_options);
7c673cae
FG
5854
5855 env->ReleaseStringUTFChars(jopt_string, opt_string);
5856
5857 // Check if DBOptions creation was possible.
5858 jlong ret_value = 0;
5859 if (status.ok()) {
1e59de90 5860 ret_value = GET_CPLUSPLUS_POINTER(db_options);
7c673cae
FG
5861 } else {
5862 // if operation failed the DBOptions need to be deleted
5863 // again to prevent a memory leak.
5864 delete db_options;
5865 }
5866 return ret_value;
5867}
5868
5869/*
5870 * Class: org_rocksdb_DBOptions
5871 * Method: disposeInternal
5872 * Signature: (J)V
5873 */
1e59de90
TL
5874void Java_org_rocksdb_DBOptions_disposeInternal(JNIEnv*, jobject,
5875 jlong handle) {
f67539c2 5876 auto* dbo = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(handle);
7c673cae
FG
5877 assert(dbo != nullptr);
5878 delete dbo;
5879}
5880
5881/*
5882 * Class: org_rocksdb_DBOptions
5883 * Method: optimizeForSmallDb
5884 * Signature: (J)V
5885 */
1e59de90
TL
5886void Java_org_rocksdb_DBOptions_optimizeForSmallDb(JNIEnv*, jobject,
5887 jlong jhandle) {
f67539c2
TL
5888 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
5889 ->OptimizeForSmallDb();
7c673cae
FG
5890}
5891
5892/*
5893 * Class: org_rocksdb_DBOptions
5894 * Method: setEnv
5895 * Signature: (JJ)V
5896 */
1e59de90
TL
5897void Java_org_rocksdb_DBOptions_setEnv(JNIEnv*, jobject, jlong jhandle,
5898 jlong jenv_handle) {
f67539c2
TL
5899 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->env =
5900 reinterpret_cast<ROCKSDB_NAMESPACE::Env*>(jenv_handle);
7c673cae
FG
5901}
5902
5903/*
5904 * Class: org_rocksdb_DBOptions
5905 * Method: setIncreaseParallelism
5906 * Signature: (JI)V
5907 */
1e59de90
TL
5908void Java_org_rocksdb_DBOptions_setIncreaseParallelism(JNIEnv*, jobject,
5909 jlong jhandle,
5910 jint totalThreads) {
f67539c2 5911 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->IncreaseParallelism(
11fdf7f2 5912 static_cast<int>(totalThreads));
7c673cae
FG
5913}
5914
7c673cae
FG
5915/*
5916 * Class: org_rocksdb_DBOptions
5917 * Method: setCreateIfMissing
5918 * Signature: (JZ)V
5919 */
1e59de90
TL
5920void Java_org_rocksdb_DBOptions_setCreateIfMissing(JNIEnv*, jobject,
5921 jlong jhandle,
5922 jboolean flag) {
f67539c2
TL
5923 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->create_if_missing =
5924 flag;
7c673cae
FG
5925}
5926
5927/*
5928 * Class: org_rocksdb_DBOptions
5929 * Method: createIfMissing
5930 * Signature: (J)Z
5931 */
1e59de90
TL
5932jboolean Java_org_rocksdb_DBOptions_createIfMissing(JNIEnv*, jobject,
5933 jlong jhandle) {
f67539c2
TL
5934 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
5935 ->create_if_missing;
7c673cae
FG
5936}
5937
5938/*
5939 * Class: org_rocksdb_DBOptions
5940 * Method: setCreateMissingColumnFamilies
5941 * Signature: (JZ)V
5942 */
1e59de90
TL
5943void Java_org_rocksdb_DBOptions_setCreateMissingColumnFamilies(JNIEnv*, jobject,
5944 jlong jhandle,
5945 jboolean flag) {
f67539c2 5946 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
11fdf7f2 5947 ->create_missing_column_families = flag;
7c673cae
FG
5948}
5949
5950/*
5951 * Class: org_rocksdb_DBOptions
5952 * Method: createMissingColumnFamilies
5953 * Signature: (J)Z
5954 */
1e59de90
TL
5955jboolean Java_org_rocksdb_DBOptions_createMissingColumnFamilies(JNIEnv*,
5956 jobject,
5957 jlong jhandle) {
f67539c2 5958 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
11fdf7f2 5959 ->create_missing_column_families;
7c673cae
FG
5960}
5961
5962/*
5963 * Class: org_rocksdb_DBOptions
5964 * Method: setErrorIfExists
5965 * Signature: (JZ)V
5966 */
1e59de90
TL
5967void Java_org_rocksdb_DBOptions_setErrorIfExists(JNIEnv*, jobject,
5968 jlong jhandle,
5969 jboolean error_if_exists) {
f67539c2 5970 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->error_if_exists =
7c673cae
FG
5971 static_cast<bool>(error_if_exists);
5972}
5973
5974/*
5975 * Class: org_rocksdb_DBOptions
5976 * Method: errorIfExists
5977 * Signature: (J)Z
5978 */
1e59de90
TL
5979jboolean Java_org_rocksdb_DBOptions_errorIfExists(JNIEnv*, jobject,
5980 jlong jhandle) {
f67539c2
TL
5981 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
5982 ->error_if_exists;
7c673cae
FG
5983}
5984
5985/*
5986 * Class: org_rocksdb_DBOptions
5987 * Method: setParanoidChecks
5988 * Signature: (JZ)V
5989 */
1e59de90
TL
5990void Java_org_rocksdb_DBOptions_setParanoidChecks(JNIEnv*, jobject,
5991 jlong jhandle,
5992 jboolean paranoid_checks) {
f67539c2 5993 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->paranoid_checks =
7c673cae
FG
5994 static_cast<bool>(paranoid_checks);
5995}
5996
5997/*
5998 * Class: org_rocksdb_DBOptions
5999 * Method: paranoidChecks
6000 * Signature: (J)Z
6001 */
1e59de90
TL
6002jboolean Java_org_rocksdb_DBOptions_paranoidChecks(JNIEnv*, jobject,
6003 jlong jhandle) {
f67539c2
TL
6004 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6005 ->paranoid_checks;
7c673cae
FG
6006}
6007
6008/*
6009 * Class: org_rocksdb_DBOptions
6010 * Method: setRateLimiter
6011 * Signature: (JJ)V
6012 */
1e59de90
TL
6013void Java_org_rocksdb_DBOptions_setRateLimiter(JNIEnv*, jobject, jlong jhandle,
6014 jlong jrate_limiter_handle) {
f67539c2
TL
6015 std::shared_ptr<ROCKSDB_NAMESPACE::RateLimiter>* pRateLimiter =
6016 reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::RateLimiter>*>(
7c673cae 6017 jrate_limiter_handle);
f67539c2
TL
6018 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->rate_limiter =
6019 *pRateLimiter;
7c673cae
FG
6020}
6021
11fdf7f2
TL
6022/*
6023 * Class: org_rocksdb_DBOptions
6024 * Method: setSstFileManager
6025 * Signature: (JJ)V
6026 */
6027void Java_org_rocksdb_DBOptions_setSstFileManager(
494da23a 6028 JNIEnv*, jobject, jlong jhandle, jlong jsst_file_manager_handle) {
11fdf7f2 6029 auto* sptr_sst_file_manager =
f67539c2 6030 reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::SstFileManager>*>(
11fdf7f2 6031 jsst_file_manager_handle);
f67539c2 6032 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->sst_file_manager =
11fdf7f2
TL
6033 *sptr_sst_file_manager;
6034}
6035
7c673cae
FG
6036/*
6037 * Class: org_rocksdb_DBOptions
6038 * Method: setLogger
6039 * Signature: (JJ)V
6040 */
1e59de90
TL
6041void Java_org_rocksdb_DBOptions_setLogger(JNIEnv*, jobject, jlong jhandle,
6042 jlong jlogger_handle) {
f67539c2
TL
6043 std::shared_ptr<ROCKSDB_NAMESPACE::LoggerJniCallback>* pLogger =
6044 reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::LoggerJniCallback>*>(
7c673cae 6045 jlogger_handle);
f67539c2 6046 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->info_log = *pLogger;
7c673cae
FG
6047}
6048
6049/*
6050 * Class: org_rocksdb_DBOptions
6051 * Method: setInfoLogLevel
6052 * Signature: (JB)V
6053 */
1e59de90
TL
6054void Java_org_rocksdb_DBOptions_setInfoLogLevel(JNIEnv*, jobject, jlong jhandle,
6055 jbyte jlog_level) {
f67539c2
TL
6056 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->info_log_level =
6057 static_cast<ROCKSDB_NAMESPACE::InfoLogLevel>(jlog_level);
7c673cae
FG
6058}
6059
6060/*
6061 * Class: org_rocksdb_DBOptions
6062 * Method: infoLogLevel
6063 * Signature: (J)B
6064 */
1e59de90 6065jbyte Java_org_rocksdb_DBOptions_infoLogLevel(JNIEnv*, jobject, jlong jhandle) {
7c673cae 6066 return static_cast<jbyte>(
f67539c2 6067 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->info_log_level);
7c673cae
FG
6068}
6069
6070/*
6071 * Class: org_rocksdb_DBOptions
6072 * Method: setMaxTotalWalSize
6073 * Signature: (JJ)V
6074 */
1e59de90
TL
6075void Java_org_rocksdb_DBOptions_setMaxTotalWalSize(JNIEnv*, jobject,
6076 jlong jhandle,
6077 jlong jmax_total_wal_size) {
f67539c2 6078 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->max_total_wal_size =
7c673cae
FG
6079 static_cast<jlong>(jmax_total_wal_size);
6080}
6081
6082/*
6083 * Class: org_rocksdb_DBOptions
6084 * Method: maxTotalWalSize
6085 * Signature: (J)J
6086 */
1e59de90
TL
6087jlong Java_org_rocksdb_DBOptions_maxTotalWalSize(JNIEnv*, jobject,
6088 jlong jhandle) {
f67539c2
TL
6089 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6090 ->max_total_wal_size;
7c673cae
FG
6091}
6092
6093/*
6094 * Class: org_rocksdb_DBOptions
6095 * Method: setMaxOpenFiles
6096 * Signature: (JI)V
6097 */
1e59de90
TL
6098void Java_org_rocksdb_DBOptions_setMaxOpenFiles(JNIEnv*, jobject, jlong jhandle,
6099 jint max_open_files) {
f67539c2 6100 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->max_open_files =
7c673cae
FG
6101 static_cast<int>(max_open_files);
6102}
6103
6104/*
6105 * Class: org_rocksdb_DBOptions
6106 * Method: maxOpenFiles
6107 * Signature: (J)I
6108 */
1e59de90 6109jint Java_org_rocksdb_DBOptions_maxOpenFiles(JNIEnv*, jobject, jlong jhandle) {
f67539c2
TL
6110 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6111 ->max_open_files;
7c673cae
FG
6112}
6113
6114/*
6115 * Class: org_rocksdb_DBOptions
6116 * Method: setMaxFileOpeningThreads
6117 * Signature: (JI)V
6118 */
6119void Java_org_rocksdb_DBOptions_setMaxFileOpeningThreads(
494da23a 6120 JNIEnv*, jobject, jlong jhandle, jint jmax_file_opening_threads) {
f67539c2
TL
6121 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6122 ->max_file_opening_threads = static_cast<int>(jmax_file_opening_threads);
7c673cae
FG
6123}
6124
6125/*
6126 * Class: org_rocksdb_DBOptions
6127 * Method: maxFileOpeningThreads
6128 * Signature: (J)I
6129 */
1e59de90
TL
6130jint Java_org_rocksdb_DBOptions_maxFileOpeningThreads(JNIEnv*, jobject,
6131 jlong jhandle) {
f67539c2 6132 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae
FG
6133 return static_cast<int>(opt->max_file_opening_threads);
6134}
6135
6136/*
6137 * Class: org_rocksdb_DBOptions
11fdf7f2
TL
6138 * Method: setStatistics
6139 * Signature: (JJ)V
7c673cae 6140 */
1e59de90
TL
6141void Java_org_rocksdb_DBOptions_setStatistics(JNIEnv*, jobject, jlong jhandle,
6142 jlong jstatistics_handle) {
f67539c2
TL
6143 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
6144 auto* pSptr =
6145 reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::StatisticsJni>*>(
6146 jstatistics_handle);
11fdf7f2 6147 opt->statistics = *pSptr;
7c673cae
FG
6148}
6149
6150/*
6151 * Class: org_rocksdb_DBOptions
11fdf7f2 6152 * Method: statistics
7c673cae
FG
6153 * Signature: (J)J
6154 */
1e59de90 6155jlong Java_org_rocksdb_DBOptions_statistics(JNIEnv*, jobject, jlong jhandle) {
f67539c2
TL
6156 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
6157 std::shared_ptr<ROCKSDB_NAMESPACE::Statistics> sptr = opt->statistics;
11fdf7f2
TL
6158 if (sptr == nullptr) {
6159 return 0;
6160 } else {
f67539c2
TL
6161 std::shared_ptr<ROCKSDB_NAMESPACE::Statistics>* pSptr =
6162 new std::shared_ptr<ROCKSDB_NAMESPACE::Statistics>(sptr);
1e59de90 6163 return GET_CPLUSPLUS_POINTER(pSptr);
11fdf7f2 6164 }
7c673cae
FG
6165}
6166
6167/*
6168 * Class: org_rocksdb_DBOptions
6169 * Method: setUseFsync
6170 * Signature: (JZ)V
6171 */
1e59de90
TL
6172void Java_org_rocksdb_DBOptions_setUseFsync(JNIEnv*, jobject, jlong jhandle,
6173 jboolean use_fsync) {
f67539c2 6174 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->use_fsync =
7c673cae
FG
6175 static_cast<bool>(use_fsync);
6176}
6177
6178/*
6179 * Class: org_rocksdb_DBOptions
6180 * Method: useFsync
6181 * Signature: (J)Z
6182 */
1e59de90 6183jboolean Java_org_rocksdb_DBOptions_useFsync(JNIEnv*, jobject, jlong jhandle) {
f67539c2 6184 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->use_fsync;
7c673cae
FG
6185}
6186
6187/*
6188 * Class: org_rocksdb_DBOptions
6189 * Method: setDbPaths
6190 * Signature: (J[Ljava/lang/String;[J)V
6191 */
1e59de90
TL
6192void Java_org_rocksdb_DBOptions_setDbPaths(JNIEnv* env, jobject, jlong jhandle,
6193 jobjectArray jpaths,
6194 jlongArray jtarget_sizes) {
f67539c2 6195 std::vector<ROCKSDB_NAMESPACE::DbPath> db_paths;
7c673cae 6196 jlong* ptr_jtarget_size = env->GetLongArrayElements(jtarget_sizes, nullptr);
11fdf7f2
TL
6197 if (ptr_jtarget_size == nullptr) {
6198 // exception thrown: OutOfMemoryError
6199 return;
7c673cae
FG
6200 }
6201
6202 jboolean has_exception = JNI_FALSE;
6203 const jsize len = env->GetArrayLength(jpaths);
11fdf7f2
TL
6204 for (jsize i = 0; i < len; i++) {
6205 jobject jpath =
6206 reinterpret_cast<jstring>(env->GetObjectArrayElement(jpaths, i));
6207 if (env->ExceptionCheck()) {
7c673cae 6208 // exception thrown: ArrayIndexOutOfBoundsException
11fdf7f2 6209 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size, JNI_ABORT);
7c673cae
FG
6210 return;
6211 }
f67539c2 6212 std::string path = ROCKSDB_NAMESPACE::JniUtil::copyStdString(
7c673cae
FG
6213 env, static_cast<jstring>(jpath), &has_exception);
6214 env->DeleteLocalRef(jpath);
6215
11fdf7f2
TL
6216 if (has_exception == JNI_TRUE) {
6217 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size, JNI_ABORT);
6218 return;
7c673cae
FG
6219 }
6220
6221 jlong jtarget_size = ptr_jtarget_size[i];
6222
6223 db_paths.push_back(
f67539c2 6224 ROCKSDB_NAMESPACE::DbPath(path, static_cast<uint64_t>(jtarget_size)));
7c673cae
FG
6225 }
6226
6227 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size, JNI_ABORT);
6228
f67539c2 6229 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae
FG
6230 opt->db_paths = db_paths;
6231}
6232
6233/*
6234 * Class: org_rocksdb_DBOptions
6235 * Method: dbPathsLen
6236 * Signature: (J)J
6237 */
1e59de90 6238jlong Java_org_rocksdb_DBOptions_dbPathsLen(JNIEnv*, jobject, jlong jhandle) {
f67539c2 6239 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae
FG
6240 return static_cast<jlong>(opt->db_paths.size());
6241}
6242
6243/*
6244 * Class: org_rocksdb_DBOptions
6245 * Method: dbPaths
6246 * Signature: (J[Ljava/lang/String;[J)V
6247 */
1e59de90
TL
6248void Java_org_rocksdb_DBOptions_dbPaths(JNIEnv* env, jobject, jlong jhandle,
6249 jobjectArray jpaths,
6250 jlongArray jtarget_sizes) {
20effc67
TL
6251 jboolean is_copy;
6252 jlong* ptr_jtarget_size = env->GetLongArrayElements(jtarget_sizes, &is_copy);
11fdf7f2
TL
6253 if (ptr_jtarget_size == nullptr) {
6254 // exception thrown: OutOfMemoryError
6255 return;
7c673cae
FG
6256 }
6257
f67539c2 6258 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae 6259 const jsize len = env->GetArrayLength(jpaths);
11fdf7f2 6260 for (jsize i = 0; i < len; i++) {
f67539c2 6261 ROCKSDB_NAMESPACE::DbPath db_path = opt->db_paths[i];
7c673cae
FG
6262
6263 jstring jpath = env->NewStringUTF(db_path.path.c_str());
11fdf7f2 6264 if (jpath == nullptr) {
7c673cae 6265 // exception thrown: OutOfMemoryError
11fdf7f2 6266 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size, JNI_ABORT);
7c673cae
FG
6267 return;
6268 }
6269 env->SetObjectArrayElement(jpaths, i, jpath);
11fdf7f2 6270 if (env->ExceptionCheck()) {
7c673cae
FG
6271 // exception thrown: ArrayIndexOutOfBoundsException
6272 env->DeleteLocalRef(jpath);
11fdf7f2 6273 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size, JNI_ABORT);
7c673cae
FG
6274 return;
6275 }
6276
6277 ptr_jtarget_size[i] = static_cast<jint>(db_path.target_size);
6278 }
6279
20effc67
TL
6280 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size,
6281 is_copy == JNI_TRUE ? 0 : JNI_ABORT);
7c673cae
FG
6282}
6283
6284/*
6285 * Class: org_rocksdb_DBOptions
6286 * Method: setDbLogDir
6287 * Signature: (JLjava/lang/String)V
6288 */
1e59de90
TL
6289void Java_org_rocksdb_DBOptions_setDbLogDir(JNIEnv* env, jobject, jlong jhandle,
6290 jstring jdb_log_dir) {
7c673cae 6291 const char* log_dir = env->GetStringUTFChars(jdb_log_dir, nullptr);
11fdf7f2 6292 if (log_dir == nullptr) {
7c673cae
FG
6293 // exception thrown: OutOfMemoryError
6294 return;
6295 }
6296
f67539c2
TL
6297 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->db_log_dir.assign(
6298 log_dir);
7c673cae
FG
6299 env->ReleaseStringUTFChars(jdb_log_dir, log_dir);
6300}
6301
6302/*
6303 * Class: org_rocksdb_DBOptions
6304 * Method: dbLogDir
6305 * Signature: (J)Ljava/lang/String
6306 */
1e59de90
TL
6307jstring Java_org_rocksdb_DBOptions_dbLogDir(JNIEnv* env, jobject,
6308 jlong jhandle) {
7c673cae 6309 return env->NewStringUTF(
f67539c2
TL
6310 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6311 ->db_log_dir.c_str());
7c673cae
FG
6312}
6313
6314/*
6315 * Class: org_rocksdb_DBOptions
6316 * Method: setWalDir
6317 * Signature: (JLjava/lang/String)V
6318 */
1e59de90
TL
6319void Java_org_rocksdb_DBOptions_setWalDir(JNIEnv* env, jobject, jlong jhandle,
6320 jstring jwal_dir) {
7c673cae 6321 const char* wal_dir = env->GetStringUTFChars(jwal_dir, 0);
f67539c2
TL
6322 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->wal_dir.assign(
6323 wal_dir);
7c673cae
FG
6324 env->ReleaseStringUTFChars(jwal_dir, wal_dir);
6325}
6326
6327/*
6328 * Class: org_rocksdb_DBOptions
6329 * Method: walDir
6330 * Signature: (J)Ljava/lang/String
6331 */
1e59de90 6332jstring Java_org_rocksdb_DBOptions_walDir(JNIEnv* env, jobject, jlong jhandle) {
7c673cae 6333 return env->NewStringUTF(
f67539c2
TL
6334 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6335 ->wal_dir.c_str());
7c673cae
FG
6336}
6337
6338/*
6339 * Class: org_rocksdb_DBOptions
6340 * Method: setDeleteObsoleteFilesPeriodMicros
6341 * Signature: (JJ)V
6342 */
6343void Java_org_rocksdb_DBOptions_setDeleteObsoleteFilesPeriodMicros(
494da23a 6344 JNIEnv*, jobject, jlong jhandle, jlong micros) {
f67539c2 6345 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
11fdf7f2 6346 ->delete_obsolete_files_period_micros = static_cast<int64_t>(micros);
7c673cae
FG
6347}
6348
6349/*
6350 * Class: org_rocksdb_DBOptions
1e59de90
TL
6351 * Method: deleteObsoleteFilesPeriodMicros
6352 * Signature: (J)J
7c673cae 6353 */
1e59de90 6354jlong Java_org_rocksdb_DBOptions_deleteObsoleteFilesPeriodMicros(
494da23a 6355 JNIEnv*, jobject, jlong jhandle) {
f67539c2 6356 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
1e59de90 6357 ->delete_obsolete_files_period_micros;
7c673cae
FG
6358}
6359
6360/*
6361 * Class: org_rocksdb_DBOptions
6362 * Method: setMaxBackgroundCompactions
6363 * Signature: (JI)V
6364 */
1e59de90
TL
6365void Java_org_rocksdb_DBOptions_setMaxBackgroundCompactions(JNIEnv*, jobject,
6366 jlong jhandle,
6367 jint max) {
f67539c2
TL
6368 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6369 ->max_background_compactions = static_cast<int>(max);
7c673cae
FG
6370}
6371
6372/*
6373 * Class: org_rocksdb_DBOptions
6374 * Method: maxBackgroundCompactions
6375 * Signature: (J)I
6376 */
1e59de90
TL
6377jint Java_org_rocksdb_DBOptions_maxBackgroundCompactions(JNIEnv*, jobject,
6378 jlong jhandle) {
f67539c2 6379 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
11fdf7f2 6380 ->max_background_compactions;
7c673cae
FG
6381}
6382
6383/*
6384 * Class: org_rocksdb_DBOptions
6385 * Method: setMaxSubcompactions
6386 * Signature: (JI)V
6387 */
1e59de90
TL
6388void Java_org_rocksdb_DBOptions_setMaxSubcompactions(JNIEnv*, jobject,
6389 jlong jhandle, jint max) {
f67539c2 6390 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->max_subcompactions =
11fdf7f2 6391 static_cast<int32_t>(max);
7c673cae
FG
6392}
6393
6394/*
6395 * Class: org_rocksdb_DBOptions
6396 * Method: maxSubcompactions
6397 * Signature: (J)I
6398 */
1e59de90
TL
6399jint Java_org_rocksdb_DBOptions_maxSubcompactions(JNIEnv*, jobject,
6400 jlong jhandle) {
f67539c2
TL
6401 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6402 ->max_subcompactions;
7c673cae
FG
6403}
6404
6405/*
6406 * Class: org_rocksdb_DBOptions
6407 * Method: setMaxBackgroundFlushes
6408 * Signature: (JI)V
6409 */
6410void Java_org_rocksdb_DBOptions_setMaxBackgroundFlushes(
494da23a 6411 JNIEnv*, jobject, jlong jhandle, jint max_background_flushes) {
f67539c2
TL
6412 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6413 ->max_background_flushes = static_cast<int>(max_background_flushes);
7c673cae
FG
6414}
6415
6416/*
6417 * Class: org_rocksdb_DBOptions
6418 * Method: maxBackgroundFlushes
6419 * Signature: (J)I
6420 */
1e59de90
TL
6421jint Java_org_rocksdb_DBOptions_maxBackgroundFlushes(JNIEnv*, jobject,
6422 jlong jhandle) {
f67539c2
TL
6423 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6424 ->max_background_flushes;
11fdf7f2
TL
6425}
6426
6427/*
6428 * Class: org_rocksdb_DBOptions
6429 * Method: setMaxBackgroundJobs
6430 * Signature: (JI)V
6431 */
1e59de90
TL
6432void Java_org_rocksdb_DBOptions_setMaxBackgroundJobs(JNIEnv*, jobject,
6433 jlong jhandle,
6434 jint max_background_jobs) {
f67539c2
TL
6435 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6436 ->max_background_jobs = static_cast<int>(max_background_jobs);
11fdf7f2
TL
6437}
6438
6439/*
6440 * Class: org_rocksdb_DBOptions
6441 * Method: maxBackgroundJobs
6442 * Signature: (J)I
6443 */
1e59de90
TL
6444jint Java_org_rocksdb_DBOptions_maxBackgroundJobs(JNIEnv*, jobject,
6445 jlong jhandle) {
f67539c2
TL
6446 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6447 ->max_background_jobs;
7c673cae
FG
6448}
6449
6450/*
6451 * Class: org_rocksdb_DBOptions
6452 * Method: setMaxLogFileSize
6453 * Signature: (JJ)V
6454 */
1e59de90
TL
6455void Java_org_rocksdb_DBOptions_setMaxLogFileSize(JNIEnv* env, jobject,
6456 jlong jhandle,
6457 jlong max_log_file_size) {
f67539c2
TL
6458 auto s =
6459 ROCKSDB_NAMESPACE::JniUtil::check_if_jlong_fits_size_t(max_log_file_size);
7c673cae 6460 if (s.ok()) {
f67539c2
TL
6461 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6462 ->max_log_file_size = max_log_file_size;
7c673cae 6463 } else {
f67539c2 6464 ROCKSDB_NAMESPACE::IllegalArgumentExceptionJni::ThrowNew(env, s);
7c673cae
FG
6465 }
6466}
6467
6468/*
6469 * Class: org_rocksdb_DBOptions
6470 * Method: maxLogFileSize
6471 * Signature: (J)J
6472 */
1e59de90
TL
6473jlong Java_org_rocksdb_DBOptions_maxLogFileSize(JNIEnv*, jobject,
6474 jlong jhandle) {
f67539c2
TL
6475 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6476 ->max_log_file_size;
7c673cae
FG
6477}
6478
6479/*
6480 * Class: org_rocksdb_DBOptions
6481 * Method: setLogFileTimeToRoll
6482 * Signature: (JJ)V
6483 */
6484void Java_org_rocksdb_DBOptions_setLogFileTimeToRoll(
494da23a 6485 JNIEnv* env, jobject, jlong jhandle, jlong log_file_time_to_roll) {
f67539c2
TL
6486 auto s = ROCKSDB_NAMESPACE::JniUtil::check_if_jlong_fits_size_t(
6487 log_file_time_to_roll);
7c673cae 6488 if (s.ok()) {
f67539c2
TL
6489 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6490 ->log_file_time_to_roll = log_file_time_to_roll;
7c673cae 6491 } else {
f67539c2 6492 ROCKSDB_NAMESPACE::IllegalArgumentExceptionJni::ThrowNew(env, s);
7c673cae
FG
6493 }
6494}
6495
6496/*
6497 * Class: org_rocksdb_DBOptions
6498 * Method: logFileTimeToRoll
6499 * Signature: (J)J
6500 */
1e59de90
TL
6501jlong Java_org_rocksdb_DBOptions_logFileTimeToRoll(JNIEnv*, jobject,
6502 jlong jhandle) {
f67539c2
TL
6503 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6504 ->log_file_time_to_roll;
7c673cae
FG
6505}
6506
6507/*
6508 * Class: org_rocksdb_DBOptions
6509 * Method: setKeepLogFileNum
6510 * Signature: (JJ)V
6511 */
1e59de90
TL
6512void Java_org_rocksdb_DBOptions_setKeepLogFileNum(JNIEnv* env, jobject,
6513 jlong jhandle,
6514 jlong keep_log_file_num) {
f67539c2
TL
6515 auto s =
6516 ROCKSDB_NAMESPACE::JniUtil::check_if_jlong_fits_size_t(keep_log_file_num);
7c673cae 6517 if (s.ok()) {
f67539c2
TL
6518 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6519 ->keep_log_file_num = keep_log_file_num;
7c673cae 6520 } else {
f67539c2 6521 ROCKSDB_NAMESPACE::IllegalArgumentExceptionJni::ThrowNew(env, s);
7c673cae
FG
6522 }
6523}
6524
6525/*
6526 * Class: org_rocksdb_DBOptions
6527 * Method: keepLogFileNum
6528 * Signature: (J)J
6529 */
1e59de90
TL
6530jlong Java_org_rocksdb_DBOptions_keepLogFileNum(JNIEnv*, jobject,
6531 jlong jhandle) {
f67539c2
TL
6532 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6533 ->keep_log_file_num;
7c673cae
FG
6534}
6535
6536/*
6537 * Class: org_rocksdb_DBOptions
6538 * Method: setRecycleLogFileNum
6539 * Signature: (JJ)V
6540 */
6541void Java_org_rocksdb_DBOptions_setRecycleLogFileNum(
494da23a 6542 JNIEnv* env, jobject, jlong jhandle, jlong recycle_log_file_num) {
f67539c2
TL
6543 auto s = ROCKSDB_NAMESPACE::JniUtil::check_if_jlong_fits_size_t(
6544 recycle_log_file_num);
7c673cae 6545 if (s.ok()) {
f67539c2
TL
6546 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6547 ->recycle_log_file_num = recycle_log_file_num;
7c673cae 6548 } else {
f67539c2 6549 ROCKSDB_NAMESPACE::IllegalArgumentExceptionJni::ThrowNew(env, s);
7c673cae
FG
6550 }
6551}
6552
6553/*
6554 * Class: org_rocksdb_DBOptions
6555 * Method: recycleLogFileNum
6556 * Signature: (J)J
6557 */
1e59de90
TL
6558jlong Java_org_rocksdb_DBOptions_recycleLogFileNum(JNIEnv*, jobject,
6559 jlong jhandle) {
f67539c2
TL
6560 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6561 ->recycle_log_file_num;
7c673cae
FG
6562}
6563
6564/*
6565 * Class: org_rocksdb_DBOptions
6566 * Method: setMaxManifestFileSize
6567 * Signature: (JJ)V
6568 */
6569void Java_org_rocksdb_DBOptions_setMaxManifestFileSize(
494da23a 6570 JNIEnv*, jobject, jlong jhandle, jlong max_manifest_file_size) {
f67539c2
TL
6571 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6572 ->max_manifest_file_size = static_cast<int64_t>(max_manifest_file_size);
7c673cae
FG
6573}
6574
6575/*
6576 * Class: org_rocksdb_DBOptions
6577 * Method: maxManifestFileSize
6578 * Signature: (J)J
6579 */
1e59de90
TL
6580jlong Java_org_rocksdb_DBOptions_maxManifestFileSize(JNIEnv*, jobject,
6581 jlong jhandle) {
f67539c2
TL
6582 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6583 ->max_manifest_file_size;
7c673cae
FG
6584}
6585
6586/*
6587 * Class: org_rocksdb_DBOptions
6588 * Method: setTableCacheNumshardbits
6589 * Signature: (JI)V
6590 */
6591void Java_org_rocksdb_DBOptions_setTableCacheNumshardbits(
494da23a 6592 JNIEnv*, jobject, jlong jhandle, jint table_cache_numshardbits) {
f67539c2
TL
6593 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6594 ->table_cache_numshardbits = static_cast<int>(table_cache_numshardbits);
7c673cae
FG
6595}
6596
6597/*
6598 * Class: org_rocksdb_DBOptions
6599 * Method: tableCacheNumshardbits
6600 * Signature: (J)I
6601 */
1e59de90
TL
6602jint Java_org_rocksdb_DBOptions_tableCacheNumshardbits(JNIEnv*, jobject,
6603 jlong jhandle) {
f67539c2 6604 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
11fdf7f2 6605 ->table_cache_numshardbits;
7c673cae
FG
6606}
6607
6608/*
6609 * Class: org_rocksdb_DBOptions
6610 * Method: setWalTtlSeconds
6611 * Signature: (JJ)V
6612 */
1e59de90
TL
6613void Java_org_rocksdb_DBOptions_setWalTtlSeconds(JNIEnv*, jobject,
6614 jlong jhandle,
6615 jlong WAL_ttl_seconds) {
f67539c2 6616 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->WAL_ttl_seconds =
7c673cae
FG
6617 static_cast<int64_t>(WAL_ttl_seconds);
6618}
6619
6620/*
6621 * Class: org_rocksdb_DBOptions
6622 * Method: walTtlSeconds
6623 * Signature: (J)J
6624 */
1e59de90
TL
6625jlong Java_org_rocksdb_DBOptions_walTtlSeconds(JNIEnv*, jobject,
6626 jlong jhandle) {
f67539c2
TL
6627 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6628 ->WAL_ttl_seconds;
7c673cae
FG
6629}
6630
6631/*
6632 * Class: org_rocksdb_DBOptions
6633 * Method: setWalSizeLimitMB
6634 * Signature: (JJ)V
6635 */
1e59de90
TL
6636void Java_org_rocksdb_DBOptions_setWalSizeLimitMB(JNIEnv*, jobject,
6637 jlong jhandle,
6638 jlong WAL_size_limit_MB) {
f67539c2 6639 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->WAL_size_limit_MB =
7c673cae
FG
6640 static_cast<int64_t>(WAL_size_limit_MB);
6641}
6642
6643/*
6644 * Class: org_rocksdb_DBOptions
6645 * Method: walTtlSeconds
6646 * Signature: (J)J
6647 */
1e59de90
TL
6648jlong Java_org_rocksdb_DBOptions_walSizeLimitMB(JNIEnv*, jobject,
6649 jlong jhandle) {
f67539c2
TL
6650 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6651 ->WAL_size_limit_MB;
7c673cae
FG
6652}
6653
20effc67
TL
6654/*
6655 * Class: org_rocksdb_DBOptions
6656 * Method: setMaxWriteBatchGroupSizeBytes
6657 * Signature: (JJ)V
6658 */
6659void Java_org_rocksdb_DBOptions_setMaxWriteBatchGroupSizeBytes(
6660 JNIEnv*, jclass, jlong jhandle, jlong jmax_write_batch_group_size_bytes) {
6661 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
6662 opt->max_write_batch_group_size_bytes =
6663 static_cast<uint64_t>(jmax_write_batch_group_size_bytes);
6664}
6665
6666/*
6667 * Class: org_rocksdb_DBOptions
6668 * Method: maxWriteBatchGroupSizeBytes
6669 * Signature: (J)J
6670 */
6671jlong Java_org_rocksdb_DBOptions_maxWriteBatchGroupSizeBytes(JNIEnv*, jclass,
6672 jlong jhandle) {
6673 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
6674 return static_cast<jlong>(opt->max_write_batch_group_size_bytes);
6675}
6676
7c673cae
FG
6677/*
6678 * Class: org_rocksdb_DBOptions
6679 * Method: setManifestPreallocationSize
6680 * Signature: (JJ)V
6681 */
6682void Java_org_rocksdb_DBOptions_setManifestPreallocationSize(
494da23a 6683 JNIEnv* env, jobject, jlong jhandle, jlong preallocation_size) {
f67539c2
TL
6684 auto s = ROCKSDB_NAMESPACE::JniUtil::check_if_jlong_fits_size_t(
6685 preallocation_size);
7c673cae 6686 if (s.ok()) {
f67539c2 6687 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
11fdf7f2 6688 ->manifest_preallocation_size = preallocation_size;
7c673cae 6689 } else {
f67539c2 6690 ROCKSDB_NAMESPACE::IllegalArgumentExceptionJni::ThrowNew(env, s);
7c673cae
FG
6691 }
6692}
6693
6694/*
6695 * Class: org_rocksdb_DBOptions
6696 * Method: manifestPreallocationSize
6697 * Signature: (J)J
6698 */
1e59de90
TL
6699jlong Java_org_rocksdb_DBOptions_manifestPreallocationSize(JNIEnv*, jobject,
6700 jlong jhandle) {
f67539c2 6701 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
7c673cae
FG
6702 ->manifest_preallocation_size;
6703}
6704
6705/*
6706 * Class: org_rocksdb_DBOptions
6707 * Method: useDirectReads
6708 * Signature: (J)Z
6709 */
1e59de90
TL
6710jboolean Java_org_rocksdb_DBOptions_useDirectReads(JNIEnv*, jobject,
6711 jlong jhandle) {
f67539c2
TL
6712 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6713 ->use_direct_reads;
7c673cae
FG
6714}
6715
6716/*
6717 * Class: org_rocksdb_DBOptions
6718 * Method: setUseDirectReads
6719 * Signature: (JZ)V
6720 */
1e59de90
TL
6721void Java_org_rocksdb_DBOptions_setUseDirectReads(JNIEnv*, jobject,
6722 jlong jhandle,
6723 jboolean use_direct_reads) {
f67539c2 6724 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->use_direct_reads =
7c673cae
FG
6725 static_cast<bool>(use_direct_reads);
6726}
6727
6728/*
6729 * Class: org_rocksdb_DBOptions
6730 * Method: useDirectIoForFlushAndCompaction
6731 * Signature: (J)Z
6732 */
6733jboolean Java_org_rocksdb_DBOptions_useDirectIoForFlushAndCompaction(
494da23a 6734 JNIEnv*, jobject, jlong jhandle) {
f67539c2 6735 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
7c673cae
FG
6736 ->use_direct_io_for_flush_and_compaction;
6737}
6738
6739/*
6740 * Class: org_rocksdb_DBOptions
6741 * Method: setUseDirectReads
6742 * Signature: (JZ)V
6743 */
6744void Java_org_rocksdb_DBOptions_setUseDirectIoForFlushAndCompaction(
494da23a 6745 JNIEnv*, jobject, jlong jhandle,
7c673cae 6746 jboolean use_direct_io_for_flush_and_compaction) {
f67539c2 6747 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
7c673cae
FG
6748 ->use_direct_io_for_flush_and_compaction =
6749 static_cast<bool>(use_direct_io_for_flush_and_compaction);
6750}
6751
6752/*
6753 * Class: org_rocksdb_DBOptions
6754 * Method: setAllowFAllocate
6755 * Signature: (JZ)V
6756 */
1e59de90
TL
6757void Java_org_rocksdb_DBOptions_setAllowFAllocate(JNIEnv*, jobject,
6758 jlong jhandle,
6759 jboolean jallow_fallocate) {
f67539c2 6760 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->allow_fallocate =
7c673cae
FG
6761 static_cast<bool>(jallow_fallocate);
6762}
6763
6764/*
6765 * Class: org_rocksdb_DBOptions
6766 * Method: allowFAllocate
6767 * Signature: (J)Z
6768 */
1e59de90
TL
6769jboolean Java_org_rocksdb_DBOptions_allowFAllocate(JNIEnv*, jobject,
6770 jlong jhandle) {
f67539c2 6771 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae
FG
6772 return static_cast<jboolean>(opt->allow_fallocate);
6773}
6774
6775/*
6776 * Class: org_rocksdb_DBOptions
6777 * Method: setAllowMmapReads
6778 * Signature: (JZ)V
6779 */
1e59de90
TL
6780void Java_org_rocksdb_DBOptions_setAllowMmapReads(JNIEnv*, jobject,
6781 jlong jhandle,
6782 jboolean allow_mmap_reads) {
f67539c2 6783 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->allow_mmap_reads =
7c673cae
FG
6784 static_cast<bool>(allow_mmap_reads);
6785}
6786
6787/*
6788 * Class: org_rocksdb_DBOptions
6789 * Method: allowMmapReads
6790 * Signature: (J)Z
6791 */
1e59de90
TL
6792jboolean Java_org_rocksdb_DBOptions_allowMmapReads(JNIEnv*, jobject,
6793 jlong jhandle) {
f67539c2
TL
6794 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6795 ->allow_mmap_reads;
7c673cae
FG
6796}
6797
6798/*
6799 * Class: org_rocksdb_DBOptions
6800 * Method: setAllowMmapWrites
6801 * Signature: (JZ)V
6802 */
1e59de90
TL
6803void Java_org_rocksdb_DBOptions_setAllowMmapWrites(JNIEnv*, jobject,
6804 jlong jhandle,
6805 jboolean allow_mmap_writes) {
f67539c2 6806 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->allow_mmap_writes =
7c673cae
FG
6807 static_cast<bool>(allow_mmap_writes);
6808}
6809
6810/*
6811 * Class: org_rocksdb_DBOptions
6812 * Method: allowMmapWrites
6813 * Signature: (J)Z
6814 */
1e59de90
TL
6815jboolean Java_org_rocksdb_DBOptions_allowMmapWrites(JNIEnv*, jobject,
6816 jlong jhandle) {
f67539c2
TL
6817 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6818 ->allow_mmap_writes;
7c673cae
FG
6819}
6820
6821/*
6822 * Class: org_rocksdb_DBOptions
6823 * Method: setIsFdCloseOnExec
6824 * Signature: (JZ)V
6825 */
6826void Java_org_rocksdb_DBOptions_setIsFdCloseOnExec(
494da23a 6827 JNIEnv*, jobject, jlong jhandle, jboolean is_fd_close_on_exec) {
f67539c2
TL
6828 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6829 ->is_fd_close_on_exec = static_cast<bool>(is_fd_close_on_exec);
7c673cae
FG
6830}
6831
6832/*
6833 * Class: org_rocksdb_DBOptions
6834 * Method: isFdCloseOnExec
6835 * Signature: (J)Z
6836 */
1e59de90
TL
6837jboolean Java_org_rocksdb_DBOptions_isFdCloseOnExec(JNIEnv*, jobject,
6838 jlong jhandle) {
f67539c2
TL
6839 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6840 ->is_fd_close_on_exec;
7c673cae
FG
6841}
6842
6843/*
6844 * Class: org_rocksdb_DBOptions
6845 * Method: setStatsDumpPeriodSec
6846 * Signature: (JI)V
6847 */
6848void Java_org_rocksdb_DBOptions_setStatsDumpPeriodSec(
f67539c2
TL
6849 JNIEnv*, jobject, jlong jhandle, jint jstats_dump_period_sec) {
6850 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6851 ->stats_dump_period_sec =
6852 static_cast<unsigned int>(jstats_dump_period_sec);
7c673cae
FG
6853}
6854
6855/*
6856 * Class: org_rocksdb_DBOptions
6857 * Method: statsDumpPeriodSec
6858 * Signature: (J)I
6859 */
1e59de90
TL
6860jint Java_org_rocksdb_DBOptions_statsDumpPeriodSec(JNIEnv*, jobject,
6861 jlong jhandle) {
f67539c2
TL
6862 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6863 ->stats_dump_period_sec;
6864}
6865
6866/*
6867 * Class: org_rocksdb_DBOptions
6868 * Method: setStatsPersistPeriodSec
6869 * Signature: (JI)V
6870 */
6871void Java_org_rocksdb_DBOptions_setStatsPersistPeriodSec(
6872 JNIEnv*, jobject, jlong jhandle, jint jstats_persist_period_sec) {
6873 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6874 ->stats_persist_period_sec =
6875 static_cast<unsigned int>(jstats_persist_period_sec);
6876}
6877
6878/*
6879 * Class: org_rocksdb_DBOptions
6880 * Method: statsPersistPeriodSec
6881 * Signature: (J)I
6882 */
1e59de90
TL
6883jint Java_org_rocksdb_DBOptions_statsPersistPeriodSec(JNIEnv*, jobject,
6884 jlong jhandle) {
f67539c2
TL
6885 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6886 ->stats_persist_period_sec;
6887}
6888
6889/*
6890 * Class: org_rocksdb_DBOptions
6891 * Method: setStatsHistoryBufferSize
6892 * Signature: (JJ)V
6893 */
6894void Java_org_rocksdb_DBOptions_setStatsHistoryBufferSize(
6895 JNIEnv*, jobject, jlong jhandle, jlong jstats_history_buffer_size) {
6896 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6897 ->stats_history_buffer_size =
6898 static_cast<size_t>(jstats_history_buffer_size);
6899}
6900
6901/*
6902 * Class: org_rocksdb_DBOptions
6903 * Method: statsHistoryBufferSize
6904 * Signature: (J)J
6905 */
1e59de90
TL
6906jlong Java_org_rocksdb_DBOptions_statsHistoryBufferSize(JNIEnv*, jobject,
6907 jlong jhandle) {
f67539c2
TL
6908 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6909 ->stats_history_buffer_size;
7c673cae
FG
6910}
6911
6912/*
6913 * Class: org_rocksdb_DBOptions
6914 * Method: setAdviseRandomOnOpen
6915 * Signature: (JZ)V
6916 */
6917void Java_org_rocksdb_DBOptions_setAdviseRandomOnOpen(
494da23a 6918 JNIEnv*, jobject, jlong jhandle, jboolean advise_random_on_open) {
f67539c2
TL
6919 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6920 ->advise_random_on_open = static_cast<bool>(advise_random_on_open);
7c673cae
FG
6921}
6922
6923/*
6924 * Class: org_rocksdb_DBOptions
6925 * Method: adviseRandomOnOpen
6926 * Signature: (J)Z
6927 */
1e59de90
TL
6928jboolean Java_org_rocksdb_DBOptions_adviseRandomOnOpen(JNIEnv*, jobject,
6929 jlong jhandle) {
f67539c2
TL
6930 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
6931 ->advise_random_on_open;
7c673cae
FG
6932}
6933
6934/*
6935 * Class: org_rocksdb_DBOptions
6936 * Method: setDbWriteBufferSize
6937 * Signature: (JJ)V
6938 */
6939void Java_org_rocksdb_DBOptions_setDbWriteBufferSize(
494da23a 6940 JNIEnv*, jobject, jlong jhandle, jlong jdb_write_buffer_size) {
f67539c2 6941 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae
FG
6942 opt->db_write_buffer_size = static_cast<size_t>(jdb_write_buffer_size);
6943}
6944
494da23a
TL
6945/*
6946 * Class: org_rocksdb_DBOptions
6947 * Method: setWriteBufferManager
6948 * Signature: (JJ)V
6949 */
6950void Java_org_rocksdb_DBOptions_setWriteBufferManager(
6951 JNIEnv*, jobject, jlong jdb_options_handle,
6952 jlong jwrite_buffer_manager_handle) {
6953 auto* write_buffer_manager =
f67539c2
TL
6954 reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::WriteBufferManager>*>(
6955 jwrite_buffer_manager_handle);
6956 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jdb_options_handle)
6957 ->write_buffer_manager = *write_buffer_manager;
494da23a
TL
6958}
6959
7c673cae
FG
6960/*
6961 * Class: org_rocksdb_DBOptions
6962 * Method: dbWriteBufferSize
6963 * Signature: (J)J
6964 */
1e59de90
TL
6965jlong Java_org_rocksdb_DBOptions_dbWriteBufferSize(JNIEnv*, jobject,
6966 jlong jhandle) {
f67539c2 6967 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae
FG
6968 return static_cast<jlong>(opt->db_write_buffer_size);
6969}
6970
6971/*
6972 * Class: org_rocksdb_DBOptions
6973 * Method: setAccessHintOnCompactionStart
6974 * Signature: (JB)V
6975 */
6976void Java_org_rocksdb_DBOptions_setAccessHintOnCompactionStart(
494da23a 6977 JNIEnv*, jobject, jlong jhandle, jbyte jaccess_hint_value) {
f67539c2 6978 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae 6979 opt->access_hint_on_compaction_start =
f67539c2 6980 ROCKSDB_NAMESPACE::AccessHintJni::toCppAccessHint(jaccess_hint_value);
7c673cae
FG
6981}
6982
6983/*
6984 * Class: org_rocksdb_DBOptions
6985 * Method: accessHintOnCompactionStart
6986 * Signature: (J)B
6987 */
1e59de90
TL
6988jbyte Java_org_rocksdb_DBOptions_accessHintOnCompactionStart(JNIEnv*, jobject,
6989 jlong jhandle) {
f67539c2
TL
6990 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
6991 return ROCKSDB_NAMESPACE::AccessHintJni::toJavaAccessHint(
7c673cae
FG
6992 opt->access_hint_on_compaction_start);
6993}
6994
7c673cae
FG
6995/*
6996 * Class: org_rocksdb_DBOptions
6997 * Method: setCompactionReadaheadSize
6998 * Signature: (JJ)V
6999 */
7000void Java_org_rocksdb_DBOptions_setCompactionReadaheadSize(
494da23a 7001 JNIEnv*, jobject, jlong jhandle, jlong jcompaction_readahead_size) {
f67539c2 7002 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae
FG
7003 opt->compaction_readahead_size =
7004 static_cast<size_t>(jcompaction_readahead_size);
7005}
7006
7007/*
7008 * Class: org_rocksdb_DBOptions
7009 * Method: compactionReadaheadSize
7010 * Signature: (J)J
7011 */
1e59de90
TL
7012jlong Java_org_rocksdb_DBOptions_compactionReadaheadSize(JNIEnv*, jobject,
7013 jlong jhandle) {
f67539c2 7014 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae
FG
7015 return static_cast<jlong>(opt->compaction_readahead_size);
7016}
7017
7018/*
7019 * Class: org_rocksdb_DBOptions
7020 * Method: setRandomAccessMaxBufferSize
7021 * Signature: (JJ)V
7022 */
7023void Java_org_rocksdb_DBOptions_setRandomAccessMaxBufferSize(
494da23a 7024 JNIEnv*, jobject, jlong jhandle, jlong jrandom_access_max_buffer_size) {
f67539c2 7025 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae
FG
7026 opt->random_access_max_buffer_size =
7027 static_cast<size_t>(jrandom_access_max_buffer_size);
7028}
7029
7030/*
7031 * Class: org_rocksdb_DBOptions
7032 * Method: randomAccessMaxBufferSize
7033 * Signature: (J)J
7034 */
1e59de90
TL
7035jlong Java_org_rocksdb_DBOptions_randomAccessMaxBufferSize(JNIEnv*, jobject,
7036 jlong jhandle) {
f67539c2 7037 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae
FG
7038 return static_cast<jlong>(opt->random_access_max_buffer_size);
7039}
7040
7041/*
7042 * Class: org_rocksdb_DBOptions
7043 * Method: setWritableFileMaxBufferSize
7044 * Signature: (JJ)V
7045 */
7046void Java_org_rocksdb_DBOptions_setWritableFileMaxBufferSize(
494da23a 7047 JNIEnv*, jobject, jlong jhandle, jlong jwritable_file_max_buffer_size) {
f67539c2 7048 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae
FG
7049 opt->writable_file_max_buffer_size =
7050 static_cast<size_t>(jwritable_file_max_buffer_size);
7051}
7052
7053/*
7054 * Class: org_rocksdb_DBOptions
7055 * Method: writableFileMaxBufferSize
7056 * Signature: (J)J
7057 */
1e59de90
TL
7058jlong Java_org_rocksdb_DBOptions_writableFileMaxBufferSize(JNIEnv*, jobject,
7059 jlong jhandle) {
f67539c2 7060 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae
FG
7061 return static_cast<jlong>(opt->writable_file_max_buffer_size);
7062}
7063
7064/*
7065 * Class: org_rocksdb_DBOptions
7066 * Method: setUseAdaptiveMutex
7067 * Signature: (JZ)V
7068 */
7069void Java_org_rocksdb_DBOptions_setUseAdaptiveMutex(
494da23a 7070 JNIEnv*, jobject, jlong jhandle, jboolean use_adaptive_mutex) {
f67539c2 7071 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->use_adaptive_mutex =
7c673cae
FG
7072 static_cast<bool>(use_adaptive_mutex);
7073}
7074
7075/*
7076 * Class: org_rocksdb_DBOptions
7077 * Method: useAdaptiveMutex
7078 * Signature: (J)Z
7079 */
1e59de90
TL
7080jboolean Java_org_rocksdb_DBOptions_useAdaptiveMutex(JNIEnv*, jobject,
7081 jlong jhandle) {
f67539c2
TL
7082 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
7083 ->use_adaptive_mutex;
7c673cae
FG
7084}
7085
7086/*
7087 * Class: org_rocksdb_DBOptions
7088 * Method: setBytesPerSync
7089 * Signature: (JJ)V
7090 */
1e59de90
TL
7091void Java_org_rocksdb_DBOptions_setBytesPerSync(JNIEnv*, jobject, jlong jhandle,
7092 jlong bytes_per_sync) {
f67539c2 7093 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->bytes_per_sync =
7c673cae
FG
7094 static_cast<int64_t>(bytes_per_sync);
7095}
7096
7097/*
7098 * Class: org_rocksdb_DBOptions
7099 * Method: bytesPerSync
7100 * Signature: (J)J
7101 */
1e59de90 7102jlong Java_org_rocksdb_DBOptions_bytesPerSync(JNIEnv*, jobject, jlong jhandle) {
f67539c2
TL
7103 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
7104 ->bytes_per_sync;
7c673cae
FG
7105}
7106
7107/*
7108 * Class: org_rocksdb_DBOptions
7109 * Method: setWalBytesPerSync
7110 * Signature: (JJ)V
7111 */
1e59de90
TL
7112void Java_org_rocksdb_DBOptions_setWalBytesPerSync(JNIEnv*, jobject,
7113 jlong jhandle,
7114 jlong jwal_bytes_per_sync) {
f67539c2 7115 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)->wal_bytes_per_sync =
7c673cae
FG
7116 static_cast<int64_t>(jwal_bytes_per_sync);
7117}
7118
7119/*
7120 * Class: org_rocksdb_DBOptions
7121 * Method: walBytesPerSync
7122 * Signature: (J)J
7123 */
1e59de90
TL
7124jlong Java_org_rocksdb_DBOptions_walBytesPerSync(JNIEnv*, jobject,
7125 jlong jhandle) {
f67539c2 7126 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae
FG
7127 return static_cast<jlong>(opt->wal_bytes_per_sync);
7128}
7129
f67539c2
TL
7130/*
7131 * Class: org_rocksdb_DBOptions
7132 * Method: setStrictBytesPerSync
7133 * Signature: (JZ)V
7134 */
7135void Java_org_rocksdb_DBOptions_setStrictBytesPerSync(
7136 JNIEnv*, jobject, jlong jhandle, jboolean jstrict_bytes_per_sync) {
7137 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
7138 ->strict_bytes_per_sync = jstrict_bytes_per_sync == JNI_TRUE;
7139}
7140
7141/*
7142 * Class: org_rocksdb_DBOptions
7143 * Method: strictBytesPerSync
7144 * Signature: (J)Z
7145 */
1e59de90
TL
7146jboolean Java_org_rocksdb_DBOptions_strictBytesPerSync(JNIEnv*, jobject,
7147 jlong jhandle) {
f67539c2
TL
7148 return static_cast<jboolean>(
7149 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
7150 ->strict_bytes_per_sync);
7151}
7152
20effc67
TL
7153/*
7154 * Class: org_rocksdb_DBOptions
7155 * Method: setEventListeners
7156 * Signature: (J[J)V
7157 */
7158void Java_org_rocksdb_DBOptions_setEventListeners(JNIEnv* env, jclass,
7159 jlong jhandle,
7160 jlongArray jlistener_array) {
7161 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7162 rocksdb_set_event_listeners_helper(env, jlistener_array, opt->listeners);
7163}
7164
7165/*
7166 * Class: org_rocksdb_DBOptions
7167 * Method: eventListeners
7168 * Signature: (J)[Lorg/rocksdb/AbstractEventListener;
7169 */
7170jobjectArray Java_org_rocksdb_DBOptions_eventListeners(JNIEnv* env, jclass,
7171 jlong jhandle) {
7172 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7173 return rocksdb_get_event_listeners_helper(env, opt->listeners);
7174}
7175
7c673cae
FG
7176/*
7177 * Class: org_rocksdb_DBOptions
494da23a
TL
7178 * Method: setDelayedWriteRate
7179 * Signature: (JJ)V
7180 */
1e59de90
TL
7181void Java_org_rocksdb_DBOptions_setDelayedWriteRate(JNIEnv*, jobject,
7182 jlong jhandle,
7183 jlong jdelayed_write_rate) {
f67539c2 7184 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
494da23a
TL
7185 opt->delayed_write_rate = static_cast<uint64_t>(jdelayed_write_rate);
7186}
7187
7188/*
7189 * Class: org_rocksdb_DBOptions
7190 * Method: delayedWriteRate
7191 * Signature: (J)J
7192 */
1e59de90
TL
7193jlong Java_org_rocksdb_DBOptions_delayedWriteRate(JNIEnv*, jobject,
7194 jlong jhandle) {
f67539c2 7195 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
494da23a
TL
7196 return static_cast<jlong>(opt->delayed_write_rate);
7197}
7198
7199/*
7200 * Class: org_rocksdb_DBOptions
7201 * Method: setEnablePipelinedWrite
7c673cae
FG
7202 * Signature: (JZ)V
7203 */
494da23a
TL
7204void Java_org_rocksdb_DBOptions_setEnablePipelinedWrite(
7205 JNIEnv*, jobject, jlong jhandle, jboolean jenable_pipelined_write) {
f67539c2 7206 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
494da23a 7207 opt->enable_pipelined_write = jenable_pipelined_write == JNI_TRUE;
7c673cae
FG
7208}
7209
7210/*
7211 * Class: org_rocksdb_DBOptions
494da23a 7212 * Method: enablePipelinedWrite
7c673cae
FG
7213 * Signature: (J)Z
7214 */
1e59de90
TL
7215jboolean Java_org_rocksdb_DBOptions_enablePipelinedWrite(JNIEnv*, jobject,
7216 jlong jhandle) {
f67539c2 7217 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
494da23a 7218 return static_cast<jboolean>(opt->enable_pipelined_write);
7c673cae
FG
7219}
7220
f67539c2
TL
7221/*
7222 * Class: org_rocksdb_DBOptions
7223 * Method: setUnorderedWrite
7224 * Signature: (JZ)V
7225 */
1e59de90
TL
7226void Java_org_rocksdb_DBOptions_setUnorderedWrite(JNIEnv*, jobject,
7227 jlong jhandle,
7228 jboolean junordered_write) {
f67539c2
TL
7229 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7230 opt->unordered_write = junordered_write == JNI_TRUE;
7231}
7232
7233/*
7234 * Class: org_rocksdb_DBOptions
7235 * Method: unorderedWrite
7236 * Signature: (J)Z
7237 */
1e59de90
TL
7238jboolean Java_org_rocksdb_DBOptions_unorderedWrite(JNIEnv*, jobject,
7239 jlong jhandle) {
f67539c2
TL
7240 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7241 return static_cast<jboolean>(opt->unordered_write);
7242}
7243
7c673cae
FG
7244/*
7245 * Class: org_rocksdb_DBOptions
494da23a
TL
7246 * Method: setEnableThreadTracking
7247 * Signature: (JZ)V
7c673cae 7248 */
494da23a
TL
7249void Java_org_rocksdb_DBOptions_setEnableThreadTracking(
7250 JNIEnv*, jobject, jlong jhandle, jboolean jenable_thread_tracking) {
f67539c2 7251 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
494da23a 7252 opt->enable_thread_tracking = jenable_thread_tracking == JNI_TRUE;
7c673cae
FG
7253}
7254
7255/*
7256 * Class: org_rocksdb_DBOptions
494da23a
TL
7257 * Method: enableThreadTracking
7258 * Signature: (J)Z
7c673cae 7259 */
1e59de90
TL
7260jboolean Java_org_rocksdb_DBOptions_enableThreadTracking(JNIEnv*, jobject,
7261 jlong jhandle) {
f67539c2 7262 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
494da23a 7263 return static_cast<jboolean>(opt->enable_thread_tracking);
7c673cae
FG
7264}
7265
7266/*
7267 * Class: org_rocksdb_DBOptions
7268 * Method: setAllowConcurrentMemtableWrite
7269 * Signature: (JZ)V
7270 */
7271void Java_org_rocksdb_DBOptions_setAllowConcurrentMemtableWrite(
494da23a 7272 JNIEnv*, jobject, jlong jhandle, jboolean allow) {
f67539c2 7273 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
11fdf7f2 7274 ->allow_concurrent_memtable_write = static_cast<bool>(allow);
7c673cae
FG
7275}
7276
7277/*
7278 * Class: org_rocksdb_DBOptions
7279 * Method: allowConcurrentMemtableWrite
7280 * Signature: (J)Z
7281 */
7282jboolean Java_org_rocksdb_DBOptions_allowConcurrentMemtableWrite(
494da23a 7283 JNIEnv*, jobject, jlong jhandle) {
f67539c2 7284 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
11fdf7f2 7285 ->allow_concurrent_memtable_write;
7c673cae
FG
7286}
7287
7288/*
7289 * Class: org_rocksdb_DBOptions
7290 * Method: setEnableWriteThreadAdaptiveYield
7291 * Signature: (JZ)V
7292 */
7293void Java_org_rocksdb_DBOptions_setEnableWriteThreadAdaptiveYield(
494da23a 7294 JNIEnv*, jobject, jlong jhandle, jboolean yield) {
f67539c2 7295 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
11fdf7f2 7296 ->enable_write_thread_adaptive_yield = static_cast<bool>(yield);
7c673cae
FG
7297}
7298
7299/*
7300 * Class: org_rocksdb_DBOptions
7301 * Method: enableWriteThreadAdaptiveYield
7302 * Signature: (J)Z
7303 */
7304jboolean Java_org_rocksdb_DBOptions_enableWriteThreadAdaptiveYield(
494da23a 7305 JNIEnv*, jobject, jlong jhandle) {
f67539c2 7306 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
11fdf7f2 7307 ->enable_write_thread_adaptive_yield;
7c673cae
FG
7308}
7309
7310/*
7311 * Class: org_rocksdb_DBOptions
7312 * Method: setWriteThreadMaxYieldUsec
7313 * Signature: (JJ)V
7314 */
1e59de90
TL
7315void Java_org_rocksdb_DBOptions_setWriteThreadMaxYieldUsec(JNIEnv*, jobject,
7316 jlong jhandle,
7317 jlong max) {
f67539c2
TL
7318 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
7319 ->write_thread_max_yield_usec = static_cast<int64_t>(max);
7c673cae
FG
7320}
7321
7322/*
7323 * Class: org_rocksdb_DBOptions
7324 * Method: writeThreadMaxYieldUsec
7325 * Signature: (J)J
7326 */
1e59de90
TL
7327jlong Java_org_rocksdb_DBOptions_writeThreadMaxYieldUsec(JNIEnv*, jobject,
7328 jlong jhandle) {
f67539c2 7329 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
11fdf7f2 7330 ->write_thread_max_yield_usec;
7c673cae
FG
7331}
7332
7333/*
7334 * Class: org_rocksdb_DBOptions
7335 * Method: setWriteThreadSlowYieldUsec
7336 * Signature: (JJ)V
7337 */
1e59de90
TL
7338void Java_org_rocksdb_DBOptions_setWriteThreadSlowYieldUsec(JNIEnv*, jobject,
7339 jlong jhandle,
7340 jlong slow) {
f67539c2
TL
7341 reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
7342 ->write_thread_slow_yield_usec = static_cast<int64_t>(slow);
7c673cae
FG
7343}
7344
7345/*
7346 * Class: org_rocksdb_DBOptions
7347 * Method: writeThreadSlowYieldUsec
7348 * Signature: (J)J
7349 */
1e59de90
TL
7350jlong Java_org_rocksdb_DBOptions_writeThreadSlowYieldUsec(JNIEnv*, jobject,
7351 jlong jhandle) {
f67539c2 7352 return reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle)
11fdf7f2 7353 ->write_thread_slow_yield_usec;
7c673cae
FG
7354}
7355
7356/*
7357 * Class: org_rocksdb_DBOptions
7358 * Method: setSkipStatsUpdateOnDbOpen
7359 * Signature: (JZ)V
7360 */
7361void Java_org_rocksdb_DBOptions_setSkipStatsUpdateOnDbOpen(
494da23a 7362 JNIEnv*, jobject, jlong jhandle, jboolean jskip_stats_update_on_db_open) {
f67539c2 7363 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae
FG
7364 opt->skip_stats_update_on_db_open =
7365 static_cast<bool>(jskip_stats_update_on_db_open);
7366}
7367
7368/*
7369 * Class: org_rocksdb_DBOptions
7370 * Method: skipStatsUpdateOnDbOpen
7371 * Signature: (J)Z
7372 */
1e59de90
TL
7373jboolean Java_org_rocksdb_DBOptions_skipStatsUpdateOnDbOpen(JNIEnv*, jobject,
7374 jlong jhandle) {
f67539c2 7375 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae
FG
7376 return static_cast<jboolean>(opt->skip_stats_update_on_db_open);
7377}
7378
f67539c2
TL
7379/*
7380 * Class: org_rocksdb_DBOptions
7381 * Method: setSkipCheckingSstFileSizesOnDbOpen
7382 * Signature: (JZ)V
7383 */
7384void Java_org_rocksdb_DBOptions_setSkipCheckingSstFileSizesOnDbOpen(
20effc67 7385 JNIEnv*, jclass, jlong jhandle,
f67539c2
TL
7386 jboolean jskip_checking_sst_file_sizes_on_db_open) {
7387 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7388 opt->skip_checking_sst_file_sizes_on_db_open =
7389 static_cast<bool>(jskip_checking_sst_file_sizes_on_db_open);
7390}
7391
7392/*
7393 * Class: org_rocksdb_DBOptions
7394 * Method: skipCheckingSstFileSizesOnDbOpen
7395 * Signature: (J)Z
7396 */
7397jboolean Java_org_rocksdb_DBOptions_skipCheckingSstFileSizesOnDbOpen(
20effc67 7398 JNIEnv*, jclass, jlong jhandle) {
f67539c2
TL
7399 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7400 return static_cast<jboolean>(opt->skip_checking_sst_file_sizes_on_db_open);
7401}
7402
7c673cae
FG
7403/*
7404 * Class: org_rocksdb_DBOptions
7405 * Method: setWalRecoveryMode
7406 * Signature: (JB)V
7407 */
7408void Java_org_rocksdb_DBOptions_setWalRecoveryMode(
494da23a 7409 JNIEnv*, jobject, jlong jhandle, jbyte jwal_recovery_mode_value) {
f67539c2
TL
7410 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7411 opt->wal_recovery_mode =
7412 ROCKSDB_NAMESPACE::WALRecoveryModeJni::toCppWALRecoveryMode(
7413 jwal_recovery_mode_value);
7c673cae
FG
7414}
7415
7416/*
7417 * Class: org_rocksdb_DBOptions
7418 * Method: walRecoveryMode
7419 * Signature: (J)B
7420 */
1e59de90
TL
7421jbyte Java_org_rocksdb_DBOptions_walRecoveryMode(JNIEnv*, jobject,
7422 jlong jhandle) {
f67539c2
TL
7423 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7424 return ROCKSDB_NAMESPACE::WALRecoveryModeJni::toJavaWALRecoveryMode(
7c673cae
FG
7425 opt->wal_recovery_mode);
7426}
7427
7428/*
7429 * Class: org_rocksdb_DBOptions
7430 * Method: setAllow2pc
7431 * Signature: (JZ)V
7432 */
1e59de90
TL
7433void Java_org_rocksdb_DBOptions_setAllow2pc(JNIEnv*, jobject, jlong jhandle,
7434 jboolean jallow_2pc) {
f67539c2 7435 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae
FG
7436 opt->allow_2pc = static_cast<bool>(jallow_2pc);
7437}
7438
7439/*
7440 * Class: org_rocksdb_DBOptions
7441 * Method: allow2pc
7442 * Signature: (J)Z
7443 */
1e59de90 7444jboolean Java_org_rocksdb_DBOptions_allow2pc(JNIEnv*, jobject, jlong jhandle) {
f67539c2 7445 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae
FG
7446 return static_cast<jboolean>(opt->allow_2pc);
7447}
7448
7449/*
7450 * Class: org_rocksdb_DBOptions
7451 * Method: setRowCache
7452 * Signature: (JJ)V
7453 */
1e59de90
TL
7454void Java_org_rocksdb_DBOptions_setRowCache(JNIEnv*, jobject, jlong jhandle,
7455 jlong jrow_cache_handle) {
f67539c2 7456 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
11fdf7f2 7457 auto* row_cache =
f67539c2
TL
7458 reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::Cache>*>(
7459 jrow_cache_handle);
7c673cae
FG
7460 opt->row_cache = *row_cache;
7461}
7462
494da23a
TL
7463/*
7464 * Class: org_rocksdb_DBOptions
7465 * Method: setWalFilter
7466 * Signature: (JJ)V
7467 */
1e59de90
TL
7468void Java_org_rocksdb_DBOptions_setWalFilter(JNIEnv*, jobject, jlong jhandle,
7469 jlong jwal_filter_handle) {
f67539c2
TL
7470 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7471 auto* wal_filter = reinterpret_cast<ROCKSDB_NAMESPACE::WalFilterJniCallback*>(
7472 jwal_filter_handle);
494da23a
TL
7473 opt->wal_filter = wal_filter;
7474}
7475
7c673cae
FG
7476/*
7477 * Class: org_rocksdb_DBOptions
7478 * Method: setFailIfOptionsFileError
7479 * Signature: (JZ)V
7480 */
7481void Java_org_rocksdb_DBOptions_setFailIfOptionsFileError(
494da23a 7482 JNIEnv*, jobject, jlong jhandle, jboolean jfail_if_options_file_error) {
f67539c2 7483 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae
FG
7484 opt->fail_if_options_file_error =
7485 static_cast<bool>(jfail_if_options_file_error);
7486}
7487
7488/*
7489 * Class: org_rocksdb_DBOptions
7490 * Method: failIfOptionsFileError
7491 * Signature: (J)Z
7492 */
1e59de90
TL
7493jboolean Java_org_rocksdb_DBOptions_failIfOptionsFileError(JNIEnv*, jobject,
7494 jlong jhandle) {
f67539c2 7495 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae
FG
7496 return static_cast<jboolean>(opt->fail_if_options_file_error);
7497}
7498
7499/*
7500 * Class: org_rocksdb_DBOptions
7501 * Method: setDumpMallocStats
7502 * Signature: (JZ)V
7503 */
7504void Java_org_rocksdb_DBOptions_setDumpMallocStats(
494da23a 7505 JNIEnv*, jobject, jlong jhandle, jboolean jdump_malloc_stats) {
f67539c2 7506 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae
FG
7507 opt->dump_malloc_stats = static_cast<bool>(jdump_malloc_stats);
7508}
7509
7510/*
7511 * Class: org_rocksdb_DBOptions
7512 * Method: dumpMallocStats
7513 * Signature: (J)Z
7514 */
1e59de90
TL
7515jboolean Java_org_rocksdb_DBOptions_dumpMallocStats(JNIEnv*, jobject,
7516 jlong jhandle) {
f67539c2 7517 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae
FG
7518 return static_cast<jboolean>(opt->dump_malloc_stats);
7519}
7520
7521/*
7522 * Class: org_rocksdb_DBOptions
7523 * Method: setAvoidFlushDuringRecovery
7524 * Signature: (JZ)V
7525 */
7526void Java_org_rocksdb_DBOptions_setAvoidFlushDuringRecovery(
494da23a 7527 JNIEnv*, jobject, jlong jhandle, jboolean javoid_flush_during_recovery) {
f67539c2 7528 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
11fdf7f2
TL
7529 opt->avoid_flush_during_recovery =
7530 static_cast<bool>(javoid_flush_during_recovery);
7c673cae
FG
7531}
7532
7533/*
7534 * Class: org_rocksdb_DBOptions
7535 * Method: avoidFlushDuringRecovery
7536 * Signature: (J)Z
7537 */
1e59de90
TL
7538jboolean Java_org_rocksdb_DBOptions_avoidFlushDuringRecovery(JNIEnv*, jobject,
7539 jlong jhandle) {
f67539c2 7540 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae
FG
7541 return static_cast<jboolean>(opt->avoid_flush_during_recovery);
7542}
7543
494da23a
TL
7544/*
7545 * Class: org_rocksdb_DBOptions
7546 * Method: setAllowIngestBehind
7547 * Signature: (JZ)V
7548 */
7549void Java_org_rocksdb_DBOptions_setAllowIngestBehind(
7550 JNIEnv*, jobject, jlong jhandle, jboolean jallow_ingest_behind) {
f67539c2 7551 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
494da23a
TL
7552 opt->allow_ingest_behind = jallow_ingest_behind == JNI_TRUE;
7553}
7554
7555/*
7556 * Class: org_rocksdb_DBOptions
7557 * Method: allowIngestBehind
7558 * Signature: (J)Z
7559 */
1e59de90
TL
7560jboolean Java_org_rocksdb_DBOptions_allowIngestBehind(JNIEnv*, jobject,
7561 jlong jhandle) {
f67539c2 7562 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
494da23a
TL
7563 return static_cast<jboolean>(opt->allow_ingest_behind);
7564}
7565
494da23a
TL
7566/*
7567 * Class: org_rocksdb_DBOptions
7568 * Method: setTwoWriteQueues
7569 * Signature: (JZ)V
7570 */
1e59de90
TL
7571void Java_org_rocksdb_DBOptions_setTwoWriteQueues(JNIEnv*, jobject,
7572 jlong jhandle,
7573 jboolean jtwo_write_queues) {
f67539c2 7574 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
494da23a
TL
7575 opt->two_write_queues = jtwo_write_queues == JNI_TRUE;
7576}
7577
7578/*
7579 * Class: org_rocksdb_DBOptions
7580 * Method: twoWriteQueues
7581 * Signature: (J)Z
7582 */
1e59de90
TL
7583jboolean Java_org_rocksdb_DBOptions_twoWriteQueues(JNIEnv*, jobject,
7584 jlong jhandle) {
f67539c2 7585 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
494da23a
TL
7586 return static_cast<jboolean>(opt->two_write_queues);
7587}
7588
7589/*
7590 * Class: org_rocksdb_DBOptions
7591 * Method: setManualWalFlush
7592 * Signature: (JZ)V
7593 */
1e59de90
TL
7594void Java_org_rocksdb_DBOptions_setManualWalFlush(JNIEnv*, jobject,
7595 jlong jhandle,
7596 jboolean jmanual_wal_flush) {
f67539c2 7597 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
494da23a
TL
7598 opt->manual_wal_flush = jmanual_wal_flush == JNI_TRUE;
7599}
7600
7601/*
7602 * Class: org_rocksdb_DBOptions
7603 * Method: manualWalFlush
7604 * Signature: (J)Z
7605 */
1e59de90
TL
7606jboolean Java_org_rocksdb_DBOptions_manualWalFlush(JNIEnv*, jobject,
7607 jlong jhandle) {
f67539c2 7608 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
494da23a
TL
7609 return static_cast<jboolean>(opt->manual_wal_flush);
7610}
7611
7612/*
7613 * Class: org_rocksdb_DBOptions
7614 * Method: setAtomicFlush
7615 * Signature: (JZ)V
7616 */
1e59de90
TL
7617void Java_org_rocksdb_DBOptions_setAtomicFlush(JNIEnv*, jobject, jlong jhandle,
7618 jboolean jatomic_flush) {
f67539c2 7619 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
494da23a
TL
7620 opt->atomic_flush = jatomic_flush == JNI_TRUE;
7621}
7622
7623/*
7624 * Class: org_rocksdb_DBOptions
7625 * Method: atomicFlush
7626 * Signature: (J)Z
7627 */
1e59de90
TL
7628jboolean Java_org_rocksdb_DBOptions_atomicFlush(JNIEnv*, jobject,
7629 jlong jhandle) {
f67539c2 7630 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
494da23a
TL
7631 return static_cast<jboolean>(opt->atomic_flush);
7632}
7633
7c673cae
FG
7634/*
7635 * Class: org_rocksdb_DBOptions
7636 * Method: setAvoidFlushDuringShutdown
7637 * Signature: (JZ)V
7638 */
7639void Java_org_rocksdb_DBOptions_setAvoidFlushDuringShutdown(
494da23a 7640 JNIEnv*, jobject, jlong jhandle, jboolean javoid_flush_during_shutdown) {
f67539c2 7641 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
11fdf7f2
TL
7642 opt->avoid_flush_during_shutdown =
7643 static_cast<bool>(javoid_flush_during_shutdown);
7c673cae
FG
7644}
7645
7646/*
7647 * Class: org_rocksdb_DBOptions
7648 * Method: avoidFlushDuringShutdown
7649 * Signature: (J)Z
7650 */
1e59de90
TL
7651jboolean Java_org_rocksdb_DBOptions_avoidFlushDuringShutdown(JNIEnv*, jobject,
7652 jlong jhandle) {
f67539c2 7653 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7c673cae
FG
7654 return static_cast<jboolean>(opt->avoid_flush_during_shutdown);
7655}
7656
20effc67
TL
7657/*
7658 * Class: org_rocksdb_DBOptions
7659 * Method: setAvoidUnnecessaryBlockingIO
7660 * Signature: (JZ)V
7661 */
7662void Java_org_rocksdb_DBOptions_setAvoidUnnecessaryBlockingIO(
7663 JNIEnv*, jclass, jlong jhandle, jboolean avoid_blocking_io) {
7664 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7665 opt->avoid_unnecessary_blocking_io = static_cast<bool>(avoid_blocking_io);
7666}
7667
7668/*
7669 * Class: org_rocksdb_DBOptions
7670 * Method: avoidUnnecessaryBlockingIO
7671 * Signature: (J)Z
7672 */
7673jboolean Java_org_rocksdb_DBOptions_avoidUnnecessaryBlockingIO(JNIEnv*, jclass,
7674 jlong jhandle) {
7675 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7676 return static_cast<jboolean>(opt->avoid_unnecessary_blocking_io);
7677}
7678
7679/*
7680 * Class: org_rocksdb_DBOptions
7681 * Method: setPersistStatsToDisk
7682 * Signature: (JZ)V
7683 */
7684void Java_org_rocksdb_DBOptions_setPersistStatsToDisk(
7685 JNIEnv*, jclass, jlong jhandle, jboolean persist_stats_to_disk) {
7686 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7687 opt->persist_stats_to_disk = static_cast<bool>(persist_stats_to_disk);
7688}
7689
7690/*
7691 * Class: org_rocksdb_DBOptions
7692 * Method: persistStatsToDisk
7693 * Signature: (J)Z
7694 */
7695jboolean Java_org_rocksdb_DBOptions_persistStatsToDisk(JNIEnv*, jclass,
7696 jlong jhandle) {
7697 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7698 return static_cast<jboolean>(opt->persist_stats_to_disk);
7699}
7700
7701/*
7702 * Class: org_rocksdb_DBOptions
7703 * Method: setWriteDbidToManifest
7704 * Signature: (JZ)V
7705 */
7706void Java_org_rocksdb_DBOptions_setWriteDbidToManifest(
7707 JNIEnv*, jclass, jlong jhandle, jboolean jwrite_dbid_to_manifest) {
7708 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7709 opt->write_dbid_to_manifest = static_cast<bool>(jwrite_dbid_to_manifest);
7710}
7711
7712/*
7713 * Class: org_rocksdb_DBOptions
7714 * Method: writeDbidToManifest
7715 * Signature: (J)Z
7716 */
7717jboolean Java_org_rocksdb_DBOptions_writeDbidToManifest(JNIEnv*, jclass,
7718 jlong jhandle) {
7719 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7720 return static_cast<jboolean>(opt->write_dbid_to_manifest);
7721}
7722
7723/*
7724 * Class: org_rocksdb_DBOptions
7725 * Method: setLogReadaheadSize
7726 * Signature: (JJ)V
7727 */
7728void Java_org_rocksdb_DBOptions_setLogReadaheadSize(JNIEnv*, jclass,
7729 jlong jhandle,
7730 jlong jlog_readahead_size) {
7731 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7732 opt->log_readahead_size = static_cast<size_t>(jlog_readahead_size);
7733}
7734
7735/*
7736 * Class: org_rocksdb_DBOptions
7737 * Method: logReasaheadSize
7738 * Signature: (J)J
7739 */
7740jlong Java_org_rocksdb_DBOptions_logReadaheadSize(JNIEnv*, jclass,
7741 jlong jhandle) {
7742 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7743 return static_cast<jlong>(opt->log_readahead_size);
7744}
7745
7746/*
7747 * Class: org_rocksdb_DBOptions
7748 * Method: setBestEffortsRecovery
7749 * Signature: (JZ)V
7750 */
7751void Java_org_rocksdb_DBOptions_setBestEffortsRecovery(
7752 JNIEnv*, jclass, jlong jhandle, jboolean jbest_efforts_recovery) {
7753 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7754 opt->best_efforts_recovery = static_cast<bool>(jbest_efforts_recovery);
7755}
7756
7757/*
7758 * Class: org_rocksdb_DBOptions
7759 * Method: bestEffortsRecovery
7760 * Signature: (J)Z
7761 */
7762jboolean Java_org_rocksdb_DBOptions_bestEffortsRecovery(JNIEnv*, jclass,
7763 jlong jhandle) {
7764 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7765 return static_cast<jlong>(opt->best_efforts_recovery);
7766}
7767
7768/*
7769 * Class: org_rocksdb_DBOptions
7770 * Method: setMaxBgErrorResumeCount
7771 * Signature: (JI)V
7772 */
7773void Java_org_rocksdb_DBOptions_setMaxBgErrorResumeCount(
7774 JNIEnv*, jclass, jlong jhandle, jint jmax_bgerror_resume_count) {
7775 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7776 opt->max_bgerror_resume_count = static_cast<int>(jmax_bgerror_resume_count);
7777}
7778
7779/*
7780 * Class: org_rocksdb_DBOptions
7781 * Method: maxBgerrorResumeCount
7782 * Signature: (J)I
7783 */
7784jint Java_org_rocksdb_DBOptions_maxBgerrorResumeCount(JNIEnv*, jclass,
7785 jlong jhandle) {
7786 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7787 return static_cast<jint>(opt->max_bgerror_resume_count);
7788}
7789
7790/*
7791 * Class: org_rocksdb_DBOptions
7792 * Method: setBgerrorResumeRetryInterval
7793 * Signature: (JJ)V
7794 */
7795void Java_org_rocksdb_DBOptions_setBgerrorResumeRetryInterval(
7796 JNIEnv*, jclass, jlong jhandle, jlong jbgerror_resume_retry_interval) {
7797 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7798 opt->bgerror_resume_retry_interval =
7799 static_cast<uint64_t>(jbgerror_resume_retry_interval);
7800}
7801
7802/*
7803 * Class: org_rocksdb_DBOptions
7804 * Method: bgerrorResumeRetryInterval
7805 * Signature: (J)J
7806 */
7807jlong Java_org_rocksdb_DBOptions_bgerrorResumeRetryInterval(JNIEnv*, jclass,
7808 jlong jhandle) {
7809 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions*>(jhandle);
7810 return static_cast<jlong>(opt->bgerror_resume_retry_interval);
7811}
7812
7c673cae 7813//////////////////////////////////////////////////////////////////////////////
f67539c2 7814// ROCKSDB_NAMESPACE::WriteOptions
7c673cae
FG
7815
7816/*
7817 * Class: org_rocksdb_WriteOptions
7818 * Method: newWriteOptions
7819 * Signature: ()J
7820 */
1e59de90 7821jlong Java_org_rocksdb_WriteOptions_newWriteOptions(JNIEnv*, jclass) {
f67539c2 7822 auto* op = new ROCKSDB_NAMESPACE::WriteOptions();
1e59de90 7823 return GET_CPLUSPLUS_POINTER(op);
7c673cae
FG
7824}
7825
11fdf7f2
TL
7826/*
7827 * Class: org_rocksdb_WriteOptions
7828 * Method: copyWriteOptions
7829 * Signature: (J)J
7830 */
1e59de90
TL
7831jlong Java_org_rocksdb_WriteOptions_copyWriteOptions(JNIEnv*, jclass,
7832 jlong jhandle) {
f67539c2
TL
7833 auto new_opt = new ROCKSDB_NAMESPACE::WriteOptions(
7834 *(reinterpret_cast<ROCKSDB_NAMESPACE::WriteOptions*>(jhandle)));
1e59de90 7835 return GET_CPLUSPLUS_POINTER(new_opt);
11fdf7f2
TL
7836}
7837
7c673cae
FG
7838/*
7839 * Class: org_rocksdb_WriteOptions
7840 * Method: disposeInternal
7841 * Signature: ()V
7842 */
1e59de90
TL
7843void Java_org_rocksdb_WriteOptions_disposeInternal(JNIEnv*, jobject,
7844 jlong jhandle) {
f67539c2
TL
7845 auto* write_options =
7846 reinterpret_cast<ROCKSDB_NAMESPACE::WriteOptions*>(jhandle);
7c673cae
FG
7847 assert(write_options != nullptr);
7848 delete write_options;
7849}
7850
7851/*
7852 * Class: org_rocksdb_WriteOptions
7853 * Method: setSync
7854 * Signature: (JZ)V
7855 */
1e59de90
TL
7856void Java_org_rocksdb_WriteOptions_setSync(JNIEnv*, jobject, jlong jhandle,
7857 jboolean jflag) {
f67539c2 7858 reinterpret_cast<ROCKSDB_NAMESPACE::WriteOptions*>(jhandle)->sync = jflag;
7c673cae
FG
7859}
7860
7861/*
7862 * Class: org_rocksdb_WriteOptions
7863 * Method: sync
7864 * Signature: (J)Z
7865 */
1e59de90 7866jboolean Java_org_rocksdb_WriteOptions_sync(JNIEnv*, jobject, jlong jhandle) {
f67539c2 7867 return reinterpret_cast<ROCKSDB_NAMESPACE::WriteOptions*>(jhandle)->sync;
7c673cae
FG
7868}
7869
7870/*
7871 * Class: org_rocksdb_WriteOptions
7872 * Method: setDisableWAL
7873 * Signature: (JZ)V
7874 */
1e59de90
TL
7875void Java_org_rocksdb_WriteOptions_setDisableWAL(JNIEnv*, jobject,
7876 jlong jhandle,
7877 jboolean jflag) {
f67539c2
TL
7878 reinterpret_cast<ROCKSDB_NAMESPACE::WriteOptions*>(jhandle)->disableWAL =
7879 jflag;
7c673cae
FG
7880}
7881
7882/*
7883 * Class: org_rocksdb_WriteOptions
7884 * Method: disableWAL
7885 * Signature: (J)Z
7886 */
1e59de90
TL
7887jboolean Java_org_rocksdb_WriteOptions_disableWAL(JNIEnv*, jobject,
7888 jlong jhandle) {
f67539c2
TL
7889 return reinterpret_cast<ROCKSDB_NAMESPACE::WriteOptions*>(jhandle)
7890 ->disableWAL;
7c673cae
FG
7891}
7892
7893/*
7894 * Class: org_rocksdb_WriteOptions
7895 * Method: setIgnoreMissingColumnFamilies
7896 * Signature: (JZ)V
7897 */
7898void Java_org_rocksdb_WriteOptions_setIgnoreMissingColumnFamilies(
1e59de90 7899 JNIEnv*, jobject, jlong jhandle, jboolean jignore_missing_column_families) {
f67539c2 7900 reinterpret_cast<ROCKSDB_NAMESPACE::WriteOptions*>(jhandle)
11fdf7f2
TL
7901 ->ignore_missing_column_families =
7902 static_cast<bool>(jignore_missing_column_families);
7c673cae
FG
7903}
7904
7905/*
7906 * Class: org_rocksdb_WriteOptions
7907 * Method: ignoreMissingColumnFamilies
7908 * Signature: (J)Z
7909 */
7910jboolean Java_org_rocksdb_WriteOptions_ignoreMissingColumnFamilies(
494da23a 7911 JNIEnv*, jobject, jlong jhandle) {
f67539c2 7912 return reinterpret_cast<ROCKSDB_NAMESPACE::WriteOptions*>(jhandle)
11fdf7f2 7913 ->ignore_missing_column_families;
7c673cae
FG
7914}
7915
7916/*
7917 * Class: org_rocksdb_WriteOptions
7918 * Method: setNoSlowdown
7919 * Signature: (JZ)V
7920 */
1e59de90
TL
7921void Java_org_rocksdb_WriteOptions_setNoSlowdown(JNIEnv*, jobject,
7922 jlong jhandle,
7923 jboolean jno_slowdown) {
f67539c2 7924 reinterpret_cast<ROCKSDB_NAMESPACE::WriteOptions*>(jhandle)->no_slowdown =
7c673cae
FG
7925 static_cast<bool>(jno_slowdown);
7926}
7927
7928/*
7929 * Class: org_rocksdb_WriteOptions
7930 * Method: noSlowdown
7931 * Signature: (J)Z
7932 */
1e59de90
TL
7933jboolean Java_org_rocksdb_WriteOptions_noSlowdown(JNIEnv*, jobject,
7934 jlong jhandle) {
f67539c2
TL
7935 return reinterpret_cast<ROCKSDB_NAMESPACE::WriteOptions*>(jhandle)
7936 ->no_slowdown;
7c673cae
FG
7937}
7938
494da23a
TL
7939/*
7940 * Class: org_rocksdb_WriteOptions
7941 * Method: setLowPri
7942 * Signature: (JZ)V
7943 */
1e59de90
TL
7944void Java_org_rocksdb_WriteOptions_setLowPri(JNIEnv*, jobject, jlong jhandle,
7945 jboolean jlow_pri) {
f67539c2 7946 reinterpret_cast<ROCKSDB_NAMESPACE::WriteOptions*>(jhandle)->low_pri =
494da23a
TL
7947 static_cast<bool>(jlow_pri);
7948}
7949
7950/*
7951 * Class: org_rocksdb_WriteOptions
7952 * Method: lowPri
7953 * Signature: (J)Z
7954 */
1e59de90 7955jboolean Java_org_rocksdb_WriteOptions_lowPri(JNIEnv*, jobject, jlong jhandle) {
f67539c2 7956 return reinterpret_cast<ROCKSDB_NAMESPACE::WriteOptions*>(jhandle)->low_pri;
494da23a
TL
7957}
7958
1e59de90
TL
7959/*
7960 * Class: org_rocksdb_WriteOptions
7961 * Method: memtableInsertHintPerBatch
7962 * Signature: (J)Z
7963 */
7964jboolean Java_org_rocksdb_WriteOptions_memtableInsertHintPerBatch(
7965 JNIEnv*, jobject, jlong jhandle) {
7966 return reinterpret_cast<ROCKSDB_NAMESPACE::WriteOptions*>(jhandle)
7967 ->memtable_insert_hint_per_batch;
7968}
7969
7970/*
7971 * Class: org_rocksdb_WriteOptions
7972 * Method: setMemtableInsertHintPerBatch
7973 * Signature: (JZ)V
7974 */
7975void Java_org_rocksdb_WriteOptions_setMemtableInsertHintPerBatch(
7976 JNIEnv*, jobject, jlong jhandle, jboolean jmemtable_insert_hint_per_batch) {
7977 reinterpret_cast<ROCKSDB_NAMESPACE::WriteOptions*>(jhandle)
7978 ->memtable_insert_hint_per_batch =
7979 static_cast<bool>(jmemtable_insert_hint_per_batch);
7980}
7981
7c673cae 7982/////////////////////////////////////////////////////////////////////
f67539c2 7983// ROCKSDB_NAMESPACE::ReadOptions
7c673cae
FG
7984
7985/*
7986 * Class: org_rocksdb_ReadOptions
7987 * Method: newReadOptions
7988 * Signature: ()J
7989 */
1e59de90 7990jlong Java_org_rocksdb_ReadOptions_newReadOptions__(JNIEnv*, jclass) {
f67539c2 7991 auto* read_options = new ROCKSDB_NAMESPACE::ReadOptions();
1e59de90 7992 return GET_CPLUSPLUS_POINTER(read_options);
7c673cae
FG
7993}
7994
494da23a
TL
7995/*
7996 * Class: org_rocksdb_ReadOptions
7997 * Method: newReadOptions
7998 * Signature: (ZZ)J
7999 */
8000jlong Java_org_rocksdb_ReadOptions_newReadOptions__ZZ(
8001 JNIEnv*, jclass, jboolean jverify_checksums, jboolean jfill_cache) {
f67539c2
TL
8002 auto* read_options = new ROCKSDB_NAMESPACE::ReadOptions(
8003 static_cast<bool>(jverify_checksums), static_cast<bool>(jfill_cache));
1e59de90 8004 return GET_CPLUSPLUS_POINTER(read_options);
494da23a
TL
8005}
8006
11fdf7f2
TL
8007/*
8008 * Class: org_rocksdb_ReadOptions
8009 * Method: copyReadOptions
8010 * Signature: (J)J
8011 */
1e59de90
TL
8012jlong Java_org_rocksdb_ReadOptions_copyReadOptions(JNIEnv*, jclass,
8013 jlong jhandle) {
f67539c2
TL
8014 auto new_opt = new ROCKSDB_NAMESPACE::ReadOptions(
8015 *(reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle)));
1e59de90 8016 return GET_CPLUSPLUS_POINTER(new_opt);
11fdf7f2
TL
8017}
8018
7c673cae
FG
8019/*
8020 * Class: org_rocksdb_ReadOptions
8021 * Method: disposeInternal
8022 * Signature: (J)V
8023 */
1e59de90
TL
8024void Java_org_rocksdb_ReadOptions_disposeInternal(JNIEnv*, jobject,
8025 jlong jhandle) {
f67539c2
TL
8026 auto* read_options =
8027 reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle);
7c673cae
FG
8028 assert(read_options != nullptr);
8029 delete read_options;
8030}
8031
8032/*
8033 * Class: org_rocksdb_ReadOptions
8034 * Method: setVerifyChecksums
8035 * Signature: (JZ)V
8036 */
8037void Java_org_rocksdb_ReadOptions_setVerifyChecksums(
494da23a 8038 JNIEnv*, jobject, jlong jhandle, jboolean jverify_checksums) {
f67539c2 8039 reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle)->verify_checksums =
7c673cae
FG
8040 static_cast<bool>(jverify_checksums);
8041}
8042
8043/*
8044 * Class: org_rocksdb_ReadOptions
8045 * Method: verifyChecksums
8046 * Signature: (J)Z
8047 */
1e59de90
TL
8048jboolean Java_org_rocksdb_ReadOptions_verifyChecksums(JNIEnv*, jobject,
8049 jlong jhandle) {
f67539c2
TL
8050 return reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle)
8051 ->verify_checksums;
7c673cae
FG
8052}
8053
8054/*
8055 * Class: org_rocksdb_ReadOptions
8056 * Method: setFillCache
8057 * Signature: (JZ)V
8058 */
1e59de90
TL
8059void Java_org_rocksdb_ReadOptions_setFillCache(JNIEnv*, jobject, jlong jhandle,
8060 jboolean jfill_cache) {
f67539c2 8061 reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle)->fill_cache =
7c673cae
FG
8062 static_cast<bool>(jfill_cache);
8063}
8064
8065/*
8066 * Class: org_rocksdb_ReadOptions
8067 * Method: fillCache
8068 * Signature: (J)Z
8069 */
1e59de90
TL
8070jboolean Java_org_rocksdb_ReadOptions_fillCache(JNIEnv*, jobject,
8071 jlong jhandle) {
f67539c2 8072 return reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle)->fill_cache;
7c673cae
FG
8073}
8074
8075/*
8076 * Class: org_rocksdb_ReadOptions
8077 * Method: setTailing
8078 * Signature: (JZ)V
8079 */
1e59de90
TL
8080void Java_org_rocksdb_ReadOptions_setTailing(JNIEnv*, jobject, jlong jhandle,
8081 jboolean jtailing) {
f67539c2 8082 reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle)->tailing =
7c673cae
FG
8083 static_cast<bool>(jtailing);
8084}
8085
8086/*
8087 * Class: org_rocksdb_ReadOptions
8088 * Method: tailing
8089 * Signature: (J)Z
8090 */
1e59de90 8091jboolean Java_org_rocksdb_ReadOptions_tailing(JNIEnv*, jobject, jlong jhandle) {
f67539c2 8092 return reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle)->tailing;
7c673cae
FG
8093}
8094
8095/*
8096 * Class: org_rocksdb_ReadOptions
8097 * Method: managed
8098 * Signature: (J)Z
8099 */
1e59de90 8100jboolean Java_org_rocksdb_ReadOptions_managed(JNIEnv*, jobject, jlong jhandle) {
f67539c2 8101 return reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle)->managed;
7c673cae
FG
8102}
8103
8104/*
8105 * Class: org_rocksdb_ReadOptions
8106 * Method: setManaged
8107 * Signature: (JZ)V
8108 */
1e59de90
TL
8109void Java_org_rocksdb_ReadOptions_setManaged(JNIEnv*, jobject, jlong jhandle,
8110 jboolean jmanaged) {
f67539c2 8111 reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle)->managed =
7c673cae
FG
8112 static_cast<bool>(jmanaged);
8113}
8114
8115/*
8116 * Class: org_rocksdb_ReadOptions
8117 * Method: totalOrderSeek
8118 * Signature: (J)Z
8119 */
1e59de90
TL
8120jboolean Java_org_rocksdb_ReadOptions_totalOrderSeek(JNIEnv*, jobject,
8121 jlong jhandle) {
f67539c2
TL
8122 return reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle)
8123 ->total_order_seek;
7c673cae
FG
8124}
8125
8126/*
8127 * Class: org_rocksdb_ReadOptions
8128 * Method: setTotalOrderSeek
8129 * Signature: (JZ)V
8130 */
8131void Java_org_rocksdb_ReadOptions_setTotalOrderSeek(
494da23a 8132 JNIEnv*, jobject, jlong jhandle, jboolean jtotal_order_seek) {
f67539c2 8133 reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle)->total_order_seek =
7c673cae
FG
8134 static_cast<bool>(jtotal_order_seek);
8135}
8136
8137/*
8138 * Class: org_rocksdb_ReadOptions
8139 * Method: prefixSameAsStart
8140 * Signature: (J)Z
8141 */
1e59de90
TL
8142jboolean Java_org_rocksdb_ReadOptions_prefixSameAsStart(JNIEnv*, jobject,
8143 jlong jhandle) {
f67539c2
TL
8144 return reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle)
8145 ->prefix_same_as_start;
7c673cae
FG
8146}
8147
8148/*
8149 * Class: org_rocksdb_ReadOptions
8150 * Method: setPrefixSameAsStart
8151 * Signature: (JZ)V
8152 */
8153void Java_org_rocksdb_ReadOptions_setPrefixSameAsStart(
494da23a 8154 JNIEnv*, jobject, jlong jhandle, jboolean jprefix_same_as_start) {
f67539c2
TL
8155 reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle)
8156 ->prefix_same_as_start = static_cast<bool>(jprefix_same_as_start);
7c673cae
FG
8157}
8158
8159/*
8160 * Class: org_rocksdb_ReadOptions
8161 * Method: pinData
8162 * Signature: (J)Z
8163 */
1e59de90 8164jboolean Java_org_rocksdb_ReadOptions_pinData(JNIEnv*, jobject, jlong jhandle) {
f67539c2 8165 return reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle)->pin_data;
7c673cae
FG
8166}
8167
8168/*
8169 * Class: org_rocksdb_ReadOptions
8170 * Method: setPinData
8171 * Signature: (JZ)V
8172 */
1e59de90
TL
8173void Java_org_rocksdb_ReadOptions_setPinData(JNIEnv*, jobject, jlong jhandle,
8174 jboolean jpin_data) {
f67539c2 8175 reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle)->pin_data =
7c673cae
FG
8176 static_cast<bool>(jpin_data);
8177}
8178
8179/*
8180 * Class: org_rocksdb_ReadOptions
8181 * Method: backgroundPurgeOnIteratorCleanup
8182 * Signature: (J)Z
8183 */
8184jboolean Java_org_rocksdb_ReadOptions_backgroundPurgeOnIteratorCleanup(
494da23a 8185 JNIEnv*, jobject, jlong jhandle) {
f67539c2 8186 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle);
7c673cae
FG
8187 return static_cast<jboolean>(opt->background_purge_on_iterator_cleanup);
8188}
8189
8190/*
8191 * Class: org_rocksdb_ReadOptions
8192 * Method: setBackgroundPurgeOnIteratorCleanup
8193 * Signature: (JZ)V
8194 */
8195void Java_org_rocksdb_ReadOptions_setBackgroundPurgeOnIteratorCleanup(
494da23a 8196 JNIEnv*, jobject, jlong jhandle,
7c673cae 8197 jboolean jbackground_purge_on_iterator_cleanup) {
f67539c2 8198 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle);
7c673cae
FG
8199 opt->background_purge_on_iterator_cleanup =
8200 static_cast<bool>(jbackground_purge_on_iterator_cleanup);
8201}
8202
8203/*
8204 * Class: org_rocksdb_ReadOptions
8205 * Method: readaheadSize
8206 * Signature: (J)J
8207 */
1e59de90
TL
8208jlong Java_org_rocksdb_ReadOptions_readaheadSize(JNIEnv*, jobject,
8209 jlong jhandle) {
f67539c2 8210 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle);
7c673cae
FG
8211 return static_cast<jlong>(opt->readahead_size);
8212}
8213
8214/*
8215 * Class: org_rocksdb_ReadOptions
8216 * Method: setReadaheadSize
8217 * Signature: (JJ)V
8218 */
1e59de90
TL
8219void Java_org_rocksdb_ReadOptions_setReadaheadSize(JNIEnv*, jobject,
8220 jlong jhandle,
8221 jlong jreadahead_size) {
f67539c2 8222 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle);
7c673cae
FG
8223 opt->readahead_size = static_cast<size_t>(jreadahead_size);
8224}
8225
494da23a
TL
8226/*
8227 * Class: org_rocksdb_ReadOptions
8228 * Method: maxSkippableInternalKeys
8229 * Signature: (J)J
8230 */
1e59de90
TL
8231jlong Java_org_rocksdb_ReadOptions_maxSkippableInternalKeys(JNIEnv*, jobject,
8232 jlong jhandle) {
f67539c2 8233 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle);
494da23a
TL
8234 return static_cast<jlong>(opt->max_skippable_internal_keys);
8235}
8236
8237/*
8238 * Class: org_rocksdb_ReadOptions
8239 * Method: setMaxSkippableInternalKeys
8240 * Signature: (JJ)V
8241 */
8242void Java_org_rocksdb_ReadOptions_setMaxSkippableInternalKeys(
8243 JNIEnv*, jobject, jlong jhandle, jlong jmax_skippable_internal_keys) {
f67539c2 8244 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle);
494da23a
TL
8245 opt->max_skippable_internal_keys =
8246 static_cast<uint64_t>(jmax_skippable_internal_keys);
8247}
8248
7c673cae
FG
8249/*
8250 * Class: org_rocksdb_ReadOptions
8251 * Method: ignoreRangeDeletions
8252 * Signature: (J)Z
8253 */
1e59de90
TL
8254jboolean Java_org_rocksdb_ReadOptions_ignoreRangeDeletions(JNIEnv*, jobject,
8255 jlong jhandle) {
f67539c2 8256 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle);
7c673cae
FG
8257 return static_cast<jboolean>(opt->ignore_range_deletions);
8258}
8259
8260/*
8261 * Class: org_rocksdb_ReadOptions
8262 * Method: setIgnoreRangeDeletions
8263 * Signature: (JZ)V
8264 */
8265void Java_org_rocksdb_ReadOptions_setIgnoreRangeDeletions(
494da23a 8266 JNIEnv*, jobject, jlong jhandle, jboolean jignore_range_deletions) {
f67539c2 8267 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle);
7c673cae
FG
8268 opt->ignore_range_deletions = static_cast<bool>(jignore_range_deletions);
8269}
8270
8271/*
8272 * Class: org_rocksdb_ReadOptions
8273 * Method: setSnapshot
8274 * Signature: (JJ)V
8275 */
1e59de90
TL
8276void Java_org_rocksdb_ReadOptions_setSnapshot(JNIEnv*, jobject, jlong jhandle,
8277 jlong jsnapshot) {
f67539c2
TL
8278 reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle)->snapshot =
8279 reinterpret_cast<ROCKSDB_NAMESPACE::Snapshot*>(jsnapshot);
7c673cae
FG
8280}
8281
8282/*
8283 * Class: org_rocksdb_ReadOptions
8284 * Method: snapshot
8285 * Signature: (J)J
8286 */
1e59de90 8287jlong Java_org_rocksdb_ReadOptions_snapshot(JNIEnv*, jobject, jlong jhandle) {
f67539c2
TL
8288 auto& snapshot =
8289 reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle)->snapshot;
1e59de90 8290 return GET_CPLUSPLUS_POINTER(snapshot);
7c673cae
FG
8291}
8292
8293/*
8294 * Class: org_rocksdb_ReadOptions
8295 * Method: readTier
8296 * Signature: (J)B
8297 */
1e59de90 8298jbyte Java_org_rocksdb_ReadOptions_readTier(JNIEnv*, jobject, jlong jhandle) {
7c673cae 8299 return static_cast<jbyte>(
f67539c2 8300 reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle)->read_tier);
7c673cae
FG
8301}
8302
8303/*
8304 * Class: org_rocksdb_ReadOptions
8305 * Method: setReadTier
8306 * Signature: (JB)V
8307 */
1e59de90
TL
8308void Java_org_rocksdb_ReadOptions_setReadTier(JNIEnv*, jobject, jlong jhandle,
8309 jbyte jread_tier) {
f67539c2
TL
8310 reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle)->read_tier =
8311 static_cast<ROCKSDB_NAMESPACE::ReadTier>(jread_tier);
7c673cae
FG
8312}
8313
11fdf7f2
TL
8314/*
8315 * Class: org_rocksdb_ReadOptions
8316 * Method: setIterateUpperBound
8317 * Signature: (JJ)I
8318 */
8319void Java_org_rocksdb_ReadOptions_setIterateUpperBound(
494da23a 8320 JNIEnv*, jobject, jlong jhandle, jlong jupper_bound_slice_handle) {
f67539c2
TL
8321 reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle)
8322 ->iterate_upper_bound =
8323 reinterpret_cast<ROCKSDB_NAMESPACE::Slice*>(jupper_bound_slice_handle);
11fdf7f2
TL
8324}
8325
8326/*
8327 * Class: org_rocksdb_ReadOptions
8328 * Method: iterateUpperBound
8329 * Signature: (J)J
8330 */
1e59de90
TL
8331jlong Java_org_rocksdb_ReadOptions_iterateUpperBound(JNIEnv*, jobject,
8332 jlong jhandle) {
11fdf7f2 8333 auto& upper_bound_slice_handle =
f67539c2
TL
8334 reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle)
8335 ->iterate_upper_bound;
1e59de90 8336 return GET_CPLUSPLUS_POINTER(upper_bound_slice_handle);
11fdf7f2
TL
8337}
8338
494da23a
TL
8339/*
8340 * Class: org_rocksdb_ReadOptions
8341 * Method: setIterateLowerBound
8342 * Signature: (JJ)I
8343 */
8344void Java_org_rocksdb_ReadOptions_setIterateLowerBound(
8345 JNIEnv*, jobject, jlong jhandle, jlong jlower_bound_slice_handle) {
f67539c2
TL
8346 reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle)
8347 ->iterate_lower_bound =
8348 reinterpret_cast<ROCKSDB_NAMESPACE::Slice*>(jlower_bound_slice_handle);
494da23a
TL
8349}
8350
8351/*
8352 * Class: org_rocksdb_ReadOptions
8353 * Method: iterateLowerBound
8354 * Signature: (J)J
8355 */
1e59de90
TL
8356jlong Java_org_rocksdb_ReadOptions_iterateLowerBound(JNIEnv*, jobject,
8357 jlong jhandle) {
494da23a 8358 auto& lower_bound_slice_handle =
f67539c2
TL
8359 reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle)
8360 ->iterate_lower_bound;
1e59de90 8361 return GET_CPLUSPLUS_POINTER(lower_bound_slice_handle);
494da23a
TL
8362}
8363
8364/*
8365 * Class: org_rocksdb_ReadOptions
8366 * Method: setTableFilter
8367 * Signature: (JJ)V
8368 */
8369void Java_org_rocksdb_ReadOptions_setTableFilter(
8370 JNIEnv*, jobject, jlong jhandle, jlong jjni_table_filter_handle) {
f67539c2 8371 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle);
494da23a 8372 auto* jni_table_filter =
f67539c2
TL
8373 reinterpret_cast<ROCKSDB_NAMESPACE::TableFilterJniCallback*>(
8374 jjni_table_filter_handle);
494da23a
TL
8375 opt->table_filter = jni_table_filter->GetTableFilterFunction();
8376}
8377
8378/*
8379 * Class: org_rocksdb_ReadOptions
1e59de90
TL
8380 * Method: autoPrefixMode
8381 * Signature: (J)Z
8382 */
8383jboolean Java_org_rocksdb_ReadOptions_autoPrefixMode(JNIEnv*, jobject,
8384 jlong jhandle) {
8385 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle);
8386 return static_cast<jboolean>(opt->auto_prefix_mode);
8387}
8388
8389/*
8390 * Class: org_rocksdb_ReadOptions
8391 * Method: setAutoPrefixMode
8392 * Signature: (JZ)V
8393 */
8394void Java_org_rocksdb_ReadOptions_setAutoPrefixMode(
8395 JNIEnv*, jobject, jlong jhandle, jboolean jauto_prefix_mode) {
8396 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle);
8397 opt->auto_prefix_mode = static_cast<bool>(jauto_prefix_mode);
8398}
8399
8400/*
8401 * Class: org_rocksdb_ReadOptions
8402 * Method: timestamp
8403 * Signature: (J)J
8404 */
8405jlong Java_org_rocksdb_ReadOptions_timestamp(JNIEnv*, jobject, jlong jhandle) {
8406 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle);
8407 auto& timestamp_slice_handle = opt->timestamp;
8408 return reinterpret_cast<jlong>(timestamp_slice_handle);
8409}
8410
8411/*
8412 * Class: org_rocksdb_ReadOptions
8413 * Method: setTimestamp
494da23a
TL
8414 * Signature: (JJ)V
8415 */
1e59de90
TL
8416void Java_org_rocksdb_ReadOptions_setTimestamp(JNIEnv*, jobject, jlong jhandle,
8417 jlong jtimestamp_slice_handle) {
f67539c2 8418 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle);
1e59de90
TL
8419 opt->timestamp =
8420 reinterpret_cast<ROCKSDB_NAMESPACE::Slice*>(jtimestamp_slice_handle);
494da23a
TL
8421}
8422
8423/*
8424 * Class: org_rocksdb_ReadOptions
1e59de90 8425 * Method: iterStartTs
494da23a
TL
8426 * Signature: (J)J
8427 */
1e59de90
TL
8428jlong Java_org_rocksdb_ReadOptions_iterStartTs(JNIEnv*, jobject,
8429 jlong jhandle) {
8430 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle);
8431 auto& iter_start_ts_handle = opt->iter_start_ts;
8432 return reinterpret_cast<jlong>(iter_start_ts_handle);
8433}
8434
8435/*
8436 * Class: org_rocksdb_ReadOptions
8437 * Method: setIterStartTs
8438 * Signature: (JJ)V
8439 */
8440void Java_org_rocksdb_ReadOptions_setIterStartTs(JNIEnv*, jobject,
8441 jlong jhandle,
8442 jlong jiter_start_ts_handle) {
8443 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle);
8444 opt->iter_start_ts =
8445 reinterpret_cast<ROCKSDB_NAMESPACE::Slice*>(jiter_start_ts_handle);
8446}
8447
8448/*
8449 * Class: org_rocksdb_ReadOptions
8450 * Method: deadline
8451 * Signature: (J)J
8452 */
8453jlong Java_org_rocksdb_ReadOptions_deadline(JNIEnv*, jobject, jlong jhandle) {
8454 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle);
8455 return static_cast<jlong>(opt->deadline.count());
8456}
8457
8458/*
8459 * Class: org_rocksdb_ReadOptions
8460 * Method: setDeadline
8461 * Signature: (JJ)V
8462 */
8463void Java_org_rocksdb_ReadOptions_setDeadline(JNIEnv*, jobject, jlong jhandle,
8464 jlong jdeadline) {
8465 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle);
8466 opt->deadline = std::chrono::microseconds(static_cast<int64_t>(jdeadline));
8467}
8468
8469/*
8470 * Class: org_rocksdb_ReadOptions
8471 * Method: ioTimeout
8472 * Signature: (J)J
8473 */
8474jlong Java_org_rocksdb_ReadOptions_ioTimeout(JNIEnv*, jobject, jlong jhandle) {
8475 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle);
8476 return static_cast<jlong>(opt->io_timeout.count());
8477}
8478
8479/*
8480 * Class: org_rocksdb_ReadOptions
8481 * Method: setIoTimeout
8482 * Signature: (JJ)V
8483 */
8484void Java_org_rocksdb_ReadOptions_setIoTimeout(JNIEnv*, jobject, jlong jhandle,
8485 jlong jio_timeout) {
8486 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle);
8487 opt->io_timeout =
8488 std::chrono::microseconds(static_cast<int64_t>(jio_timeout));
8489}
8490
8491/*
8492 * Class: org_rocksdb_ReadOptions
8493 * Method: valueSizeSofLimit
8494 * Signature: (J)J
8495 */
8496jlong Java_org_rocksdb_ReadOptions_valueSizeSoftLimit(JNIEnv*, jobject,
8497 jlong jhandle) {
8498 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle);
8499 return static_cast<jlong>(opt->value_size_soft_limit);
8500}
8501
8502/*
8503 * Class: org_rocksdb_ReadOptions
8504 * Method: setValueSizeSofLimit
8505 * Signature: (JJ)V
8506 */
8507void Java_org_rocksdb_ReadOptions_setValueSizeSoftLimit(
8508 JNIEnv*, jobject, jlong jhandle, jlong jvalue_size_soft_limit) {
f67539c2 8509 auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::ReadOptions*>(jhandle);
1e59de90 8510 opt->value_size_soft_limit = static_cast<uint64_t>(jvalue_size_soft_limit);
494da23a
TL
8511}
8512
7c673cae 8513/////////////////////////////////////////////////////////////////////
f67539c2 8514// ROCKSDB_NAMESPACE::ComparatorOptions
7c673cae
FG
8515
8516/*
8517 * Class: org_rocksdb_ComparatorOptions
8518 * Method: newComparatorOptions
8519 * Signature: ()J
8520 */
1e59de90 8521jlong Java_org_rocksdb_ComparatorOptions_newComparatorOptions(JNIEnv*, jclass) {
f67539c2 8522 auto* comparator_opt = new ROCKSDB_NAMESPACE::ComparatorJniCallbackOptions();
1e59de90 8523 return GET_CPLUSPLUS_POINTER(comparator_opt);
7c673cae
FG
8524}
8525
8526/*
8527 * Class: org_rocksdb_ComparatorOptions
f67539c2
TL
8528 * Method: reusedSynchronisationType
8529 * Signature: (J)B
8530 */
8531jbyte Java_org_rocksdb_ComparatorOptions_reusedSynchronisationType(
1e59de90 8532 JNIEnv*, jobject, jlong jhandle) {
f67539c2
TL
8533 auto* comparator_opt =
8534 reinterpret_cast<ROCKSDB_NAMESPACE::ComparatorJniCallbackOptions*>(
8535 jhandle);
8536 return ROCKSDB_NAMESPACE::ReusedSynchronisationTypeJni::
8537 toJavaReusedSynchronisationType(
8538 comparator_opt->reused_synchronisation_type);
8539}
8540
8541/*
8542 * Class: org_rocksdb_ComparatorOptions
8543 * Method: setReusedSynchronisationType
8544 * Signature: (JB)V
8545 */
8546void Java_org_rocksdb_ComparatorOptions_setReusedSynchronisationType(
8547 JNIEnv*, jobject, jlong jhandle, jbyte jreused_synhcronisation_type) {
8548 auto* comparator_opt =
8549 reinterpret_cast<ROCKSDB_NAMESPACE::ComparatorJniCallbackOptions*>(
8550 jhandle);
8551 comparator_opt->reused_synchronisation_type =
8552 ROCKSDB_NAMESPACE::ReusedSynchronisationTypeJni::
8553 toCppReusedSynchronisationType(jreused_synhcronisation_type);
8554}
8555
8556/*
8557 * Class: org_rocksdb_ComparatorOptions
8558 * Method: useDirectBuffer
7c673cae
FG
8559 * Signature: (J)Z
8560 */
1e59de90
TL
8561jboolean Java_org_rocksdb_ComparatorOptions_useDirectBuffer(JNIEnv*, jobject,
8562 jlong jhandle) {
f67539c2
TL
8563 return static_cast<jboolean>(
8564 reinterpret_cast<ROCKSDB_NAMESPACE::ComparatorJniCallbackOptions*>(
8565 jhandle)
8566 ->direct_buffer);
7c673cae
FG
8567}
8568
8569/*
8570 * Class: org_rocksdb_ComparatorOptions
f67539c2 8571 * Method: setUseDirectBuffer
7c673cae
FG
8572 * Signature: (JZ)V
8573 */
f67539c2
TL
8574void Java_org_rocksdb_ComparatorOptions_setUseDirectBuffer(
8575 JNIEnv*, jobject, jlong jhandle, jboolean jdirect_buffer) {
8576 reinterpret_cast<ROCKSDB_NAMESPACE::ComparatorJniCallbackOptions*>(jhandle)
8577 ->direct_buffer = jdirect_buffer == JNI_TRUE;
8578}
8579
8580/*
8581 * Class: org_rocksdb_ComparatorOptions
8582 * Method: maxReusedBufferSize
8583 * Signature: (J)I
8584 */
1e59de90
TL
8585jint Java_org_rocksdb_ComparatorOptions_maxReusedBufferSize(JNIEnv*, jobject,
8586 jlong jhandle) {
f67539c2
TL
8587 return static_cast<jint>(
8588 reinterpret_cast<ROCKSDB_NAMESPACE::ComparatorJniCallbackOptions*>(
8589 jhandle)
8590 ->max_reused_buffer_size);
8591}
8592
8593/*
8594 * Class: org_rocksdb_ComparatorOptions
8595 * Method: setMaxReusedBufferSize
8596 * Signature: (JI)V
8597 */
8598void Java_org_rocksdb_ComparatorOptions_setMaxReusedBufferSize(
8599 JNIEnv*, jobject, jlong jhandle, jint jmax_reused_buffer_size) {
8600 reinterpret_cast<ROCKSDB_NAMESPACE::ComparatorJniCallbackOptions*>(jhandle)
8601 ->max_reused_buffer_size = static_cast<int32_t>(jmax_reused_buffer_size);
7c673cae
FG
8602}
8603
8604/*
8605 * Class: org_rocksdb_ComparatorOptions
8606 * Method: disposeInternal
8607 * Signature: (J)V
8608 */
1e59de90
TL
8609void Java_org_rocksdb_ComparatorOptions_disposeInternal(JNIEnv*, jobject,
8610 jlong jhandle) {
7c673cae 8611 auto* comparator_opt =
f67539c2
TL
8612 reinterpret_cast<ROCKSDB_NAMESPACE::ComparatorJniCallbackOptions*>(
8613 jhandle);
7c673cae
FG
8614 assert(comparator_opt != nullptr);
8615 delete comparator_opt;
8616}
8617
8618/////////////////////////////////////////////////////////////////////
f67539c2 8619// ROCKSDB_NAMESPACE::FlushOptions
7c673cae
FG
8620
8621/*
8622 * Class: org_rocksdb_FlushOptions
8623 * Method: newFlushOptions
8624 * Signature: ()J
8625 */
1e59de90 8626jlong Java_org_rocksdb_FlushOptions_newFlushOptions(JNIEnv*, jclass) {
f67539c2 8627 auto* flush_opt = new ROCKSDB_NAMESPACE::FlushOptions();
1e59de90 8628 return GET_CPLUSPLUS_POINTER(flush_opt);
7c673cae
FG
8629}
8630
8631/*
8632 * Class: org_rocksdb_FlushOptions
8633 * Method: setWaitForFlush
8634 * Signature: (JZ)V
8635 */
1e59de90
TL
8636void Java_org_rocksdb_FlushOptions_setWaitForFlush(JNIEnv*, jobject,
8637 jlong jhandle,
8638 jboolean jwait) {
f67539c2 8639 reinterpret_cast<ROCKSDB_NAMESPACE::FlushOptions*>(jhandle)->wait =
11fdf7f2 8640 static_cast<bool>(jwait);
7c673cae
FG
8641}
8642
8643/*
8644 * Class: org_rocksdb_FlushOptions
8645 * Method: waitForFlush
8646 * Signature: (J)Z
8647 */
1e59de90
TL
8648jboolean Java_org_rocksdb_FlushOptions_waitForFlush(JNIEnv*, jobject,
8649 jlong jhandle) {
f67539c2 8650 return reinterpret_cast<ROCKSDB_NAMESPACE::FlushOptions*>(jhandle)->wait;
7c673cae
FG
8651}
8652
494da23a
TL
8653/*
8654 * Class: org_rocksdb_FlushOptions
8655 * Method: setAllowWriteStall
8656 * Signature: (JZ)V
8657 */
8658void Java_org_rocksdb_FlushOptions_setAllowWriteStall(
8659 JNIEnv*, jobject, jlong jhandle, jboolean jallow_write_stall) {
f67539c2
TL
8660 auto* flush_options =
8661 reinterpret_cast<ROCKSDB_NAMESPACE::FlushOptions*>(jhandle);
494da23a
TL
8662 flush_options->allow_write_stall = jallow_write_stall == JNI_TRUE;
8663}
8664
8665/*
8666 * Class: org_rocksdb_FlushOptions
8667 * Method: allowWriteStall
8668 * Signature: (J)Z
8669 */
1e59de90
TL
8670jboolean Java_org_rocksdb_FlushOptions_allowWriteStall(JNIEnv*, jobject,
8671 jlong jhandle) {
f67539c2
TL
8672 auto* flush_options =
8673 reinterpret_cast<ROCKSDB_NAMESPACE::FlushOptions*>(jhandle);
494da23a
TL
8674 return static_cast<jboolean>(flush_options->allow_write_stall);
8675}
8676
7c673cae
FG
8677/*
8678 * Class: org_rocksdb_FlushOptions
8679 * Method: disposeInternal
8680 * Signature: (J)V
8681 */
1e59de90
TL
8682void Java_org_rocksdb_FlushOptions_disposeInternal(JNIEnv*, jobject,
8683 jlong jhandle) {
f67539c2 8684 auto* flush_opt = reinterpret_cast<ROCKSDB_NAMESPACE::FlushOptions*>(jhandle);
7c673cae
FG
8685 assert(flush_opt != nullptr);
8686 delete flush_opt;
8687}