]> git.proxmox.com Git - ceph.git/blame - ceph/src/rocksdb/java/rocksjni/options.cc
import 14.2.4 nautilus point release
[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
FG
5//
6// This file implements the "bridge" between Java and C++ for rocksdb::Options.
7
11fdf7f2 8#include <jni.h>
7c673cae
FG
9#include <stdio.h>
10#include <stdlib.h>
7c673cae
FG
11#include <memory>
12#include <vector>
13
7c673cae 14#include "include/org_rocksdb_ColumnFamilyOptions.h"
7c673cae 15#include "include/org_rocksdb_ComparatorOptions.h"
11fdf7f2 16#include "include/org_rocksdb_DBOptions.h"
7c673cae 17#include "include/org_rocksdb_FlushOptions.h"
11fdf7f2
TL
18#include "include/org_rocksdb_Options.h"
19#include "include/org_rocksdb_ReadOptions.h"
20#include "include/org_rocksdb_WriteOptions.h"
7c673cae
FG
21
22#include "rocksjni/comparatorjnicallback.h"
23#include "rocksjni/portal.h"
11fdf7f2 24#include "rocksjni/statisticsjni.h"
494da23a 25#include "rocksjni/table_filter_jnicallback.h"
7c673cae 26
11fdf7f2
TL
27#include "rocksdb/comparator.h"
28#include "rocksdb/convenience.h"
7c673cae 29#include "rocksdb/db.h"
11fdf7f2
TL
30#include "rocksdb/memtablerep.h"
31#include "rocksdb/merge_operator.h"
7c673cae 32#include "rocksdb/options.h"
11fdf7f2
TL
33#include "rocksdb/rate_limiter.h"
34#include "rocksdb/slice_transform.h"
7c673cae 35#include "rocksdb/statistics.h"
7c673cae 36#include "rocksdb/table.h"
7c673cae
FG
37#include "utilities/merge_operators.h"
38
39/*
40 * Class: org_rocksdb_Options
41 * Method: newOptions
42 * Signature: ()J
43 */
494da23a
TL
44jlong Java_org_rocksdb_Options_newOptions__(
45 JNIEnv*, jclass) {
7c673cae
FG
46 auto* op = new rocksdb::Options();
47 return reinterpret_cast<jlong>(op);
48}
49
50/*
51 * Class: org_rocksdb_Options
52 * Method: newOptions
53 * Signature: (JJ)J
54 */
494da23a
TL
55jlong Java_org_rocksdb_Options_newOptions__JJ(
56 JNIEnv*, jclass, jlong jdboptions, jlong jcfoptions) {
7c673cae 57 auto* dbOpt = reinterpret_cast<const rocksdb::DBOptions*>(jdboptions);
11fdf7f2
TL
58 auto* cfOpt =
59 reinterpret_cast<const rocksdb::ColumnFamilyOptions*>(jcfoptions);
7c673cae
FG
60 auto* op = new rocksdb::Options(*dbOpt, *cfOpt);
61 return reinterpret_cast<jlong>(op);
62}
63
11fdf7f2
TL
64/*
65 * Class: org_rocksdb_Options
66 * Method: copyOptions
67 * Signature: (J)J
68 */
494da23a
TL
69jlong Java_org_rocksdb_Options_copyOptions(
70 JNIEnv*, jclass, jlong jhandle) {
11fdf7f2
TL
71 auto new_opt =
72 new rocksdb::Options(*(reinterpret_cast<rocksdb::Options*>(jhandle)));
73 return reinterpret_cast<jlong>(new_opt);
74}
75
7c673cae
FG
76/*
77 * Class: org_rocksdb_Options
78 * Method: disposeInternal
79 * Signature: (J)V
80 */
494da23a
TL
81void Java_org_rocksdb_Options_disposeInternal(
82 JNIEnv*, jobject, jlong handle) {
7c673cae
FG
83 auto* op = reinterpret_cast<rocksdb::Options*>(handle);
84 assert(op != nullptr);
85 delete op;
86}
87
88/*
89 * Class: org_rocksdb_Options
90 * Method: setIncreaseParallelism
91 * Signature: (JI)V
92 */
494da23a
TL
93void Java_org_rocksdb_Options_setIncreaseParallelism(
94 JNIEnv*, jobject, jlong jhandle, jint totalThreads) {
11fdf7f2
TL
95 reinterpret_cast<rocksdb::Options*>(jhandle)->IncreaseParallelism(
96 static_cast<int>(totalThreads));
7c673cae
FG
97}
98
99/*
100 * Class: org_rocksdb_Options
101 * Method: setCreateIfMissing
102 * Signature: (JZ)V
103 */
494da23a
TL
104void Java_org_rocksdb_Options_setCreateIfMissing(
105 JNIEnv*, jobject, jlong jhandle, jboolean flag) {
7c673cae
FG
106 reinterpret_cast<rocksdb::Options*>(jhandle)->create_if_missing = flag;
107}
108
109/*
110 * Class: org_rocksdb_Options
111 * Method: createIfMissing
112 * Signature: (J)Z
113 */
494da23a
TL
114jboolean Java_org_rocksdb_Options_createIfMissing(
115 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
116 return reinterpret_cast<rocksdb::Options*>(jhandle)->create_if_missing;
117}
118
119/*
120 * Class: org_rocksdb_Options
121 * Method: setCreateMissingColumnFamilies
122 * Signature: (JZ)V
123 */
494da23a
TL
124void Java_org_rocksdb_Options_setCreateMissingColumnFamilies(
125 JNIEnv*, jobject, jlong jhandle, jboolean flag) {
11fdf7f2
TL
126 reinterpret_cast<rocksdb::Options*>(jhandle)->create_missing_column_families =
127 flag;
7c673cae
FG
128}
129
130/*
131 * Class: org_rocksdb_Options
132 * Method: createMissingColumnFamilies
133 * Signature: (J)Z
134 */
494da23a
TL
135jboolean Java_org_rocksdb_Options_createMissingColumnFamilies(
136 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
137 return reinterpret_cast<rocksdb::Options*>(jhandle)
138 ->create_missing_column_families;
7c673cae
FG
139}
140
141/*
142 * Class: org_rocksdb_Options
143 * Method: setComparatorHandle
144 * Signature: (JI)V
145 */
494da23a
TL
146void Java_org_rocksdb_Options_setComparatorHandle__JI(
147 JNIEnv*, jobject, jlong jhandle, jint builtinComparator) {
7c673cae
FG
148 switch (builtinComparator) {
149 case 1:
150 reinterpret_cast<rocksdb::Options*>(jhandle)->comparator =
151 rocksdb::ReverseBytewiseComparator();
152 break;
153 default:
154 reinterpret_cast<rocksdb::Options*>(jhandle)->comparator =
155 rocksdb::BytewiseComparator();
156 break;
157 }
158}
159
160/*
161 * Class: org_rocksdb_Options
162 * Method: setComparatorHandle
11fdf7f2
TL
163 * Signature: (JJB)V
164 */
494da23a
TL
165void Java_org_rocksdb_Options_setComparatorHandle__JJB(
166 JNIEnv*, jobject, jlong jopt_handle, jlong jcomparator_handle,
167 jbyte jcomparator_type) {
11fdf7f2
TL
168 rocksdb::Comparator* comparator = nullptr;
169 switch (jcomparator_type) {
170 // JAVA_COMPARATOR
171 case 0x0:
172 comparator =
173 reinterpret_cast<rocksdb::ComparatorJniCallback*>(jcomparator_handle);
174 break;
175
176 // JAVA_DIRECT_COMPARATOR
177 case 0x1:
178 comparator = reinterpret_cast<rocksdb::DirectComparatorJniCallback*>(
179 jcomparator_handle);
180 break;
181
182 // JAVA_NATIVE_COMPARATOR_WRAPPER
183 case 0x2:
184 comparator = reinterpret_cast<rocksdb::Comparator*>(jcomparator_handle);
185 break;
186 }
187 auto* opt = reinterpret_cast<rocksdb::Options*>(jopt_handle);
188 opt->comparator = comparator;
7c673cae
FG
189}
190
191/*
192 * Class: org_rocksdb_Options
193 * Method: setMergeOperatorName
194 * Signature: (JJjava/lang/String)V
195 */
494da23a
TL
196void Java_org_rocksdb_Options_setMergeOperatorName(
197 JNIEnv* env, jobject, jlong jhandle, jstring jop_name) {
7c673cae 198 const char* op_name = env->GetStringUTFChars(jop_name, nullptr);
11fdf7f2 199 if (op_name == nullptr) {
7c673cae
FG
200 // exception thrown: OutOfMemoryError
201 return;
202 }
203
204 auto* options = reinterpret_cast<rocksdb::Options*>(jhandle);
11fdf7f2
TL
205 options->merge_operator =
206 rocksdb::MergeOperators::CreateFromStringId(op_name);
7c673cae
FG
207
208 env->ReleaseStringUTFChars(jop_name, op_name);
209}
210
211/*
212 * Class: org_rocksdb_Options
213 * Method: setMergeOperator
214 * Signature: (JJjava/lang/String)V
215 */
494da23a
TL
216void Java_org_rocksdb_Options_setMergeOperator(
217 JNIEnv*, jobject, jlong jhandle, jlong mergeOperatorHandle) {
7c673cae 218 reinterpret_cast<rocksdb::Options*>(jhandle)->merge_operator =
11fdf7f2
TL
219 *(reinterpret_cast<std::shared_ptr<rocksdb::MergeOperator>*>(
220 mergeOperatorHandle));
7c673cae
FG
221}
222
494da23a
TL
223/*
224 * Class: org_rocksdb_Options
225 * Method: setCompactionFilterHandle
226 * Signature: (JJ)V
227 */
228void Java_org_rocksdb_Options_setCompactionFilterHandle(
229 JNIEnv*, jobject, jlong jopt_handle,
230 jlong jcompactionfilter_handle) {
231 reinterpret_cast<rocksdb::Options*>(jopt_handle)->
232 compaction_filter = reinterpret_cast<rocksdb::CompactionFilter*>
233 (jcompactionfilter_handle);
234}
235
236/*
237 * Class: org_rocksdb_Options
238 * Method: setCompactionFilterFactoryHandle
239 * Signature: (JJ)V
240 */
241void JNICALL Java_org_rocksdb_Options_setCompactionFilterFactoryHandle(
242 JNIEnv*, jobject, jlong jopt_handle,
243 jlong jcompactionfilterfactory_handle) {
244 auto* cff_factory =
245 reinterpret_cast<std::shared_ptr<rocksdb::CompactionFilterFactory> *>(
246 jcompactionfilterfactory_handle);
247 reinterpret_cast<rocksdb::Options*>(jopt_handle)->
248 compaction_filter_factory = *cff_factory;
249}
250
7c673cae
FG
251/*
252 * Class: org_rocksdb_Options
253 * Method: setWriteBufferSize
254 * Signature: (JJ)I
255 */
494da23a
TL
256void Java_org_rocksdb_Options_setWriteBufferSize(
257 JNIEnv* env, jobject, jlong jhandle, jlong jwrite_buffer_size) {
258 auto s =
259 rocksdb::JniUtil::check_if_jlong_fits_size_t(jwrite_buffer_size);
7c673cae
FG
260 if (s.ok()) {
261 reinterpret_cast<rocksdb::Options*>(jhandle)->write_buffer_size =
262 jwrite_buffer_size;
263 } else {
264 rocksdb::IllegalArgumentExceptionJni::ThrowNew(env, s);
265 }
266}
267
494da23a
TL
268/*
269 * Class: org_rocksdb_Options
270 * Method: setWriteBufferManager
271 * Signature: (JJ)V
272 */
273void Java_org_rocksdb_Options_setWriteBufferManager(
274 JNIEnv*, jobject, jlong joptions_handle,
275 jlong jwrite_buffer_manager_handle) {
276 auto* write_buffer_manager =
277 reinterpret_cast<std::shared_ptr<rocksdb::WriteBufferManager> *>(jwrite_buffer_manager_handle);
278 reinterpret_cast<rocksdb::Options*>(joptions_handle)->write_buffer_manager =
279 *write_buffer_manager;
280}
281
7c673cae
FG
282/*
283 * Class: org_rocksdb_Options
284 * Method: writeBufferSize
285 * Signature: (J)J
286 */
494da23a
TL
287jlong Java_org_rocksdb_Options_writeBufferSize(
288 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
289 return reinterpret_cast<rocksdb::Options*>(jhandle)->write_buffer_size;
290}
291
292/*
293 * Class: org_rocksdb_Options
294 * Method: setMaxWriteBufferNumber
295 * Signature: (JI)V
296 */
297void Java_org_rocksdb_Options_setMaxWriteBufferNumber(
494da23a 298 JNIEnv*, jobject, jlong jhandle,
11fdf7f2 299 jint jmax_write_buffer_number) {
7c673cae 300 reinterpret_cast<rocksdb::Options*>(jhandle)->max_write_buffer_number =
11fdf7f2 301 jmax_write_buffer_number;
7c673cae
FG
302}
303
304/*
305 * Class: org_rocksdb_Options
11fdf7f2
TL
306 * Method: setStatistics
307 * Signature: (JJ)V
7c673cae 308 */
494da23a
TL
309void Java_org_rocksdb_Options_setStatistics(
310 JNIEnv*, jobject, jlong jhandle, jlong jstatistics_handle) {
11fdf7f2
TL
311 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
312 auto* pSptr = reinterpret_cast<std::shared_ptr<rocksdb::StatisticsJni>*>(
313 jstatistics_handle);
314 opt->statistics = *pSptr;
7c673cae
FG
315}
316
317/*
318 * Class: org_rocksdb_Options
11fdf7f2 319 * Method: statistics
7c673cae
FG
320 * Signature: (J)J
321 */
494da23a
TL
322jlong Java_org_rocksdb_Options_statistics(
323 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
324 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
325 std::shared_ptr<rocksdb::Statistics> sptr = opt->statistics;
326 if (sptr == nullptr) {
327 return 0;
328 } else {
329 std::shared_ptr<rocksdb::Statistics>* pSptr =
330 new std::shared_ptr<rocksdb::Statistics>(sptr);
331 return reinterpret_cast<jlong>(pSptr);
332 }
7c673cae
FG
333}
334
335/*
336 * Class: org_rocksdb_Options
337 * Method: maxWriteBufferNumber
338 * Signature: (J)I
339 */
494da23a
TL
340jint Java_org_rocksdb_Options_maxWriteBufferNumber(
341 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
342 return reinterpret_cast<rocksdb::Options*>(jhandle)->max_write_buffer_number;
343}
344
345/*
346 * Class: org_rocksdb_Options
347 * Method: errorIfExists
348 * Signature: (J)Z
349 */
494da23a
TL
350jboolean Java_org_rocksdb_Options_errorIfExists(
351 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
352 return reinterpret_cast<rocksdb::Options*>(jhandle)->error_if_exists;
353}
354
355/*
356 * Class: org_rocksdb_Options
357 * Method: setErrorIfExists
358 * Signature: (JZ)V
359 */
494da23a
TL
360void Java_org_rocksdb_Options_setErrorIfExists(
361 JNIEnv*, jobject, jlong jhandle, jboolean error_if_exists) {
7c673cae
FG
362 reinterpret_cast<rocksdb::Options*>(jhandle)->error_if_exists =
363 static_cast<bool>(error_if_exists);
364}
365
366/*
367 * Class: org_rocksdb_Options
368 * Method: paranoidChecks
369 * Signature: (J)Z
370 */
494da23a
TL
371jboolean Java_org_rocksdb_Options_paranoidChecks(
372 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
373 return reinterpret_cast<rocksdb::Options*>(jhandle)->paranoid_checks;
374}
375
376/*
377 * Class: org_rocksdb_Options
378 * Method: setParanoidChecks
379 * Signature: (JZ)V
380 */
494da23a
TL
381void Java_org_rocksdb_Options_setParanoidChecks(
382 JNIEnv*, jobject, jlong jhandle, jboolean paranoid_checks) {
7c673cae
FG
383 reinterpret_cast<rocksdb::Options*>(jhandle)->paranoid_checks =
384 static_cast<bool>(paranoid_checks);
385}
386
387/*
388 * Class: org_rocksdb_Options
389 * Method: setEnv
390 * Signature: (JJ)V
391 */
494da23a
TL
392void Java_org_rocksdb_Options_setEnv(
393 JNIEnv*, jobject, jlong jhandle, jlong jenv) {
7c673cae
FG
394 reinterpret_cast<rocksdb::Options*>(jhandle)->env =
395 reinterpret_cast<rocksdb::Env*>(jenv);
396}
397
398/*
399 * Class: org_rocksdb_Options
400 * Method: setMaxTotalWalSize
401 * Signature: (JJ)V
402 */
494da23a
TL
403void Java_org_rocksdb_Options_setMaxTotalWalSize(
404 JNIEnv*, jobject, jlong jhandle, jlong jmax_total_wal_size) {
7c673cae
FG
405 reinterpret_cast<rocksdb::Options*>(jhandle)->max_total_wal_size =
406 static_cast<jlong>(jmax_total_wal_size);
407}
408
409/*
410 * Class: org_rocksdb_Options
411 * Method: maxTotalWalSize
412 * Signature: (J)J
413 */
494da23a
TL
414jlong Java_org_rocksdb_Options_maxTotalWalSize(
415 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2 416 return reinterpret_cast<rocksdb::Options*>(jhandle)->max_total_wal_size;
7c673cae
FG
417}
418
419/*
420 * Class: org_rocksdb_Options
421 * Method: maxOpenFiles
422 * Signature: (J)I
423 */
494da23a
TL
424jint Java_org_rocksdb_Options_maxOpenFiles(
425 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
426 return reinterpret_cast<rocksdb::Options*>(jhandle)->max_open_files;
427}
428
429/*
430 * Class: org_rocksdb_Options
431 * Method: setMaxOpenFiles
432 * Signature: (JI)V
433 */
494da23a
TL
434void Java_org_rocksdb_Options_setMaxOpenFiles(
435 JNIEnv*, jobject, jlong jhandle, jint max_open_files) {
7c673cae
FG
436 reinterpret_cast<rocksdb::Options*>(jhandle)->max_open_files =
437 static_cast<int>(max_open_files);
438}
439
440/*
441 * Class: org_rocksdb_Options
442 * Method: setMaxFileOpeningThreads
443 * Signature: (JI)V
444 */
445void Java_org_rocksdb_Options_setMaxFileOpeningThreads(
494da23a 446 JNIEnv*, jobject, jlong jhandle, jint jmax_file_opening_threads) {
7c673cae
FG
447 reinterpret_cast<rocksdb::Options*>(jhandle)->max_file_opening_threads =
448 static_cast<int>(jmax_file_opening_threads);
449}
450
451/*
452 * Class: org_rocksdb_Options
453 * Method: maxFileOpeningThreads
454 * Signature: (J)I
455 */
494da23a
TL
456jint Java_org_rocksdb_Options_maxFileOpeningThreads(
457 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
458 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
459 return static_cast<int>(opt->max_file_opening_threads);
460}
461
462/*
463 * Class: org_rocksdb_Options
464 * Method: useFsync
465 * Signature: (J)Z
466 */
494da23a
TL
467jboolean Java_org_rocksdb_Options_useFsync(
468 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
469 return reinterpret_cast<rocksdb::Options*>(jhandle)->use_fsync;
470}
471
472/*
473 * Class: org_rocksdb_Options
474 * Method: setUseFsync
475 * Signature: (JZ)V
476 */
494da23a
TL
477void Java_org_rocksdb_Options_setUseFsync(
478 JNIEnv*, jobject, jlong jhandle, jboolean use_fsync) {
7c673cae
FG
479 reinterpret_cast<rocksdb::Options*>(jhandle)->use_fsync =
480 static_cast<bool>(use_fsync);
481}
482
483/*
484 * Class: org_rocksdb_Options
485 * Method: setDbPaths
486 * Signature: (J[Ljava/lang/String;[J)V
487 */
494da23a
TL
488void Java_org_rocksdb_Options_setDbPaths(
489 JNIEnv* env, jobject, jlong jhandle, jobjectArray jpaths,
490 jlongArray jtarget_sizes) {
7c673cae
FG
491 std::vector<rocksdb::DbPath> db_paths;
492 jlong* ptr_jtarget_size = env->GetLongArrayElements(jtarget_sizes, nullptr);
11fdf7f2
TL
493 if (ptr_jtarget_size == nullptr) {
494 // exception thrown: OutOfMemoryError
495 return;
7c673cae
FG
496 }
497
498 jboolean has_exception = JNI_FALSE;
499 const jsize len = env->GetArrayLength(jpaths);
11fdf7f2
TL
500 for (jsize i = 0; i < len; i++) {
501 jobject jpath =
502 reinterpret_cast<jstring>(env->GetObjectArrayElement(jpaths, i));
503 if (env->ExceptionCheck()) {
7c673cae 504 // exception thrown: ArrayIndexOutOfBoundsException
11fdf7f2 505 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size, JNI_ABORT);
7c673cae
FG
506 return;
507 }
11fdf7f2 508 std::string path = rocksdb::JniUtil::copyStdString(
7c673cae
FG
509 env, static_cast<jstring>(jpath), &has_exception);
510 env->DeleteLocalRef(jpath);
511
11fdf7f2
TL
512 if (has_exception == JNI_TRUE) {
513 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size, JNI_ABORT);
514 return;
7c673cae
FG
515 }
516
517 jlong jtarget_size = ptr_jtarget_size[i];
518
519 db_paths.push_back(
520 rocksdb::DbPath(path, static_cast<uint64_t>(jtarget_size)));
521 }
522
523 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size, JNI_ABORT);
524
525 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
526 opt->db_paths = db_paths;
527}
528
529/*
530 * Class: org_rocksdb_Options
531 * Method: dbPathsLen
532 * Signature: (J)J
533 */
494da23a
TL
534jlong Java_org_rocksdb_Options_dbPathsLen(
535 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
536 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
537 return static_cast<jlong>(opt->db_paths.size());
538}
539
540/*
541 * Class: org_rocksdb_Options
542 * Method: dbPaths
543 * Signature: (J[Ljava/lang/String;[J)V
544 */
494da23a
TL
545void Java_org_rocksdb_Options_dbPaths(
546 JNIEnv* env, jobject, jlong jhandle, jobjectArray jpaths,
547 jlongArray jtarget_sizes) {
7c673cae 548 jlong* ptr_jtarget_size = env->GetLongArrayElements(jtarget_sizes, nullptr);
11fdf7f2
TL
549 if (ptr_jtarget_size == nullptr) {
550 // exception thrown: OutOfMemoryError
551 return;
7c673cae
FG
552 }
553
554 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
555 const jsize len = env->GetArrayLength(jpaths);
11fdf7f2 556 for (jsize i = 0; i < len; i++) {
7c673cae
FG
557 rocksdb::DbPath db_path = opt->db_paths[i];
558
559 jstring jpath = env->NewStringUTF(db_path.path.c_str());
11fdf7f2 560 if (jpath == nullptr) {
7c673cae 561 // exception thrown: OutOfMemoryError
11fdf7f2 562 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size, JNI_ABORT);
7c673cae
FG
563 return;
564 }
565 env->SetObjectArrayElement(jpaths, i, jpath);
11fdf7f2 566 if (env->ExceptionCheck()) {
7c673cae
FG
567 // exception thrown: ArrayIndexOutOfBoundsException
568 env->DeleteLocalRef(jpath);
11fdf7f2 569 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size, JNI_ABORT);
7c673cae
FG
570 return;
571 }
572
573 ptr_jtarget_size[i] = static_cast<jint>(db_path.target_size);
574 }
575
576 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size, JNI_COMMIT);
577}
578
579/*
580 * Class: org_rocksdb_Options
581 * Method: dbLogDir
582 * Signature: (J)Ljava/lang/String
583 */
494da23a
TL
584jstring Java_org_rocksdb_Options_dbLogDir(
585 JNIEnv* env, jobject, jlong jhandle) {
7c673cae
FG
586 return env->NewStringUTF(
587 reinterpret_cast<rocksdb::Options*>(jhandle)->db_log_dir.c_str());
588}
589
590/*
591 * Class: org_rocksdb_Options
592 * Method: setDbLogDir
593 * Signature: (JLjava/lang/String)V
594 */
494da23a
TL
595void Java_org_rocksdb_Options_setDbLogDir(
596 JNIEnv* env, jobject, jlong jhandle, jstring jdb_log_dir) {
7c673cae 597 const char* log_dir = env->GetStringUTFChars(jdb_log_dir, nullptr);
11fdf7f2 598 if (log_dir == nullptr) {
7c673cae
FG
599 // exception thrown: OutOfMemoryError
600 return;
601 }
602 reinterpret_cast<rocksdb::Options*>(jhandle)->db_log_dir.assign(log_dir);
603 env->ReleaseStringUTFChars(jdb_log_dir, log_dir);
604}
605
606/*
607 * Class: org_rocksdb_Options
608 * Method: walDir
609 * Signature: (J)Ljava/lang/String
610 */
494da23a
TL
611jstring Java_org_rocksdb_Options_walDir(
612 JNIEnv* env, jobject, jlong jhandle) {
7c673cae
FG
613 return env->NewStringUTF(
614 reinterpret_cast<rocksdb::Options*>(jhandle)->wal_dir.c_str());
615}
616
617/*
618 * Class: org_rocksdb_Options
619 * Method: setWalDir
620 * Signature: (JLjava/lang/String)V
621 */
494da23a
TL
622void Java_org_rocksdb_Options_setWalDir(
623 JNIEnv* env, jobject, jlong jhandle, jstring jwal_dir) {
7c673cae 624 const char* wal_dir = env->GetStringUTFChars(jwal_dir, nullptr);
11fdf7f2 625 if (wal_dir == nullptr) {
7c673cae
FG
626 // exception thrown: OutOfMemoryError
627 return;
628 }
629 reinterpret_cast<rocksdb::Options*>(jhandle)->wal_dir.assign(wal_dir);
630 env->ReleaseStringUTFChars(jwal_dir, wal_dir);
631}
632
633/*
634 * Class: org_rocksdb_Options
635 * Method: deleteObsoleteFilesPeriodMicros
636 * Signature: (J)J
637 */
494da23a
TL
638jlong Java_org_rocksdb_Options_deleteObsoleteFilesPeriodMicros(
639 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
640 return reinterpret_cast<rocksdb::Options*>(jhandle)
641 ->delete_obsolete_files_period_micros;
642}
643
644/*
645 * Class: org_rocksdb_Options
646 * Method: setDeleteObsoleteFilesPeriodMicros
647 * Signature: (JJ)V
648 */
649void Java_org_rocksdb_Options_setDeleteObsoleteFilesPeriodMicros(
494da23a 650 JNIEnv*, jobject, jlong jhandle, jlong micros) {
7c673cae 651 reinterpret_cast<rocksdb::Options*>(jhandle)
11fdf7f2 652 ->delete_obsolete_files_period_micros = static_cast<int64_t>(micros);
7c673cae
FG
653}
654
655/*
656 * Class: org_rocksdb_Options
657 * Method: setBaseBackgroundCompactions
658 * Signature: (JI)V
659 */
494da23a
TL
660void Java_org_rocksdb_Options_setBaseBackgroundCompactions(
661 JNIEnv*, jobject, jlong jhandle, jint max) {
11fdf7f2
TL
662 reinterpret_cast<rocksdb::Options*>(jhandle)->base_background_compactions =
663 static_cast<int>(max);
7c673cae
FG
664}
665
666/*
667 * Class: org_rocksdb_Options
668 * Method: baseBackgroundCompactions
669 * Signature: (J)I
670 */
494da23a
TL
671jint Java_org_rocksdb_Options_baseBackgroundCompactions(
672 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
673 return reinterpret_cast<rocksdb::Options*>(jhandle)
674 ->base_background_compactions;
675}
676
677/*
678 * Class: org_rocksdb_Options
679 * Method: maxBackgroundCompactions
680 * Signature: (J)I
681 */
494da23a
TL
682jint Java_org_rocksdb_Options_maxBackgroundCompactions(
683 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
684 return reinterpret_cast<rocksdb::Options*>(jhandle)
685 ->max_background_compactions;
7c673cae
FG
686}
687
688/*
689 * Class: org_rocksdb_Options
690 * Method: setMaxBackgroundCompactions
691 * Signature: (JI)V
692 */
494da23a
TL
693void Java_org_rocksdb_Options_setMaxBackgroundCompactions(
694 JNIEnv*, jobject, jlong jhandle, jint max) {
11fdf7f2
TL
695 reinterpret_cast<rocksdb::Options*>(jhandle)->max_background_compactions =
696 static_cast<int>(max);
7c673cae
FG
697}
698
699/*
700 * Class: org_rocksdb_Options
701 * Method: setMaxSubcompactions
702 * Signature: (JI)V
703 */
494da23a
TL
704void Java_org_rocksdb_Options_setMaxSubcompactions(
705 JNIEnv*, jobject, jlong jhandle, jint max) {
11fdf7f2
TL
706 reinterpret_cast<rocksdb::Options*>(jhandle)->max_subcompactions =
707 static_cast<int32_t>(max);
7c673cae
FG
708}
709
710/*
711 * Class: org_rocksdb_Options
712 * Method: maxSubcompactions
713 * Signature: (J)I
714 */
494da23a
TL
715jint Java_org_rocksdb_Options_maxSubcompactions(
716 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
717 return reinterpret_cast<rocksdb::Options*>(jhandle)->max_subcompactions;
718}
719
720/*
721 * Class: org_rocksdb_Options
722 * Method: maxBackgroundFlushes
723 * Signature: (J)I
724 */
494da23a
TL
725jint Java_org_rocksdb_Options_maxBackgroundFlushes(
726 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
727 return reinterpret_cast<rocksdb::Options*>(jhandle)->max_background_flushes;
728}
729
730/*
731 * Class: org_rocksdb_Options
732 * Method: setMaxBackgroundFlushes
733 * Signature: (JI)V
734 */
735void Java_org_rocksdb_Options_setMaxBackgroundFlushes(
494da23a 736 JNIEnv*, jobject, jlong jhandle, jint max_background_flushes) {
7c673cae
FG
737 reinterpret_cast<rocksdb::Options*>(jhandle)->max_background_flushes =
738 static_cast<int>(max_background_flushes);
739}
740
11fdf7f2
TL
741/*
742 * Class: org_rocksdb_Options
743 * Method: maxBackgroundJobs
744 * Signature: (J)I
745 */
494da23a
TL
746jint Java_org_rocksdb_Options_maxBackgroundJobs(
747 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
748 return reinterpret_cast<rocksdb::Options*>(jhandle)->max_background_jobs;
749}
750
751/*
752 * Class: org_rocksdb_Options
753 * Method: setMaxBackgroundJobs
754 * Signature: (JI)V
755 */
494da23a
TL
756void Java_org_rocksdb_Options_setMaxBackgroundJobs(
757 JNIEnv*, jobject, jlong jhandle, jint max_background_jobs) {
11fdf7f2
TL
758 reinterpret_cast<rocksdb::Options*>(jhandle)->max_background_jobs =
759 static_cast<int>(max_background_jobs);
760}
761
7c673cae
FG
762/*
763 * Class: org_rocksdb_Options
764 * Method: maxLogFileSize
765 * Signature: (J)J
766 */
494da23a
TL
767jlong Java_org_rocksdb_Options_maxLogFileSize(
768 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
769 return reinterpret_cast<rocksdb::Options*>(jhandle)->max_log_file_size;
770}
771
772/*
773 * Class: org_rocksdb_Options
774 * Method: setMaxLogFileSize
775 * Signature: (JJ)V
776 */
494da23a
TL
777void Java_org_rocksdb_Options_setMaxLogFileSize(
778 JNIEnv* env, jobject, jlong jhandle, jlong max_log_file_size) {
779 auto s = rocksdb::JniUtil::check_if_jlong_fits_size_t(max_log_file_size);
7c673cae
FG
780 if (s.ok()) {
781 reinterpret_cast<rocksdb::Options*>(jhandle)->max_log_file_size =
782 max_log_file_size;
783 } else {
784 rocksdb::IllegalArgumentExceptionJni::ThrowNew(env, s);
785 }
786}
787
788/*
789 * Class: org_rocksdb_Options
790 * Method: logFileTimeToRoll
791 * Signature: (J)J
792 */
494da23a
TL
793jlong Java_org_rocksdb_Options_logFileTimeToRoll(
794 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
795 return reinterpret_cast<rocksdb::Options*>(jhandle)->log_file_time_to_roll;
796}
797
798/*
799 * Class: org_rocksdb_Options
800 * Method: setLogFileTimeToRoll
801 * Signature: (JJ)V
802 */
803void Java_org_rocksdb_Options_setLogFileTimeToRoll(
494da23a
TL
804 JNIEnv* env, jobject, jlong jhandle, jlong log_file_time_to_roll) {
805 auto s =
806 rocksdb::JniUtil::check_if_jlong_fits_size_t(log_file_time_to_roll);
7c673cae
FG
807 if (s.ok()) {
808 reinterpret_cast<rocksdb::Options*>(jhandle)->log_file_time_to_roll =
809 log_file_time_to_roll;
810 } else {
811 rocksdb::IllegalArgumentExceptionJni::ThrowNew(env, s);
812 }
813}
814
815/*
816 * Class: org_rocksdb_Options
817 * Method: keepLogFileNum
818 * Signature: (J)J
819 */
494da23a
TL
820jlong Java_org_rocksdb_Options_keepLogFileNum(
821 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
822 return reinterpret_cast<rocksdb::Options*>(jhandle)->keep_log_file_num;
823}
824
825/*
826 * Class: org_rocksdb_Options
827 * Method: setKeepLogFileNum
828 * Signature: (JJ)V
829 */
494da23a
TL
830void Java_org_rocksdb_Options_setKeepLogFileNum(
831 JNIEnv* env, jobject, jlong jhandle, jlong keep_log_file_num) {
832 auto s = rocksdb::JniUtil::check_if_jlong_fits_size_t(keep_log_file_num);
7c673cae
FG
833 if (s.ok()) {
834 reinterpret_cast<rocksdb::Options*>(jhandle)->keep_log_file_num =
835 keep_log_file_num;
836 } else {
837 rocksdb::IllegalArgumentExceptionJni::ThrowNew(env, s);
838 }
839}
840
841/*
842 * Class: org_rocksdb_Options
843 * Method: recycleLogFileNum
844 * Signature: (J)J
845 */
494da23a
TL
846jlong Java_org_rocksdb_Options_recycleLogFileNum(
847 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
848 return reinterpret_cast<rocksdb::Options*>(jhandle)->recycle_log_file_num;
849}
850
851/*
852 * Class: org_rocksdb_Options
853 * Method: setRecycleLogFileNum
854 * Signature: (JJ)V
855 */
494da23a
TL
856void Java_org_rocksdb_Options_setRecycleLogFileNum(
857 JNIEnv* env, jobject, jlong jhandle, jlong recycle_log_file_num) {
858 auto s = rocksdb::JniUtil::check_if_jlong_fits_size_t(recycle_log_file_num);
7c673cae
FG
859 if (s.ok()) {
860 reinterpret_cast<rocksdb::Options*>(jhandle)->recycle_log_file_num =
861 recycle_log_file_num;
862 } else {
863 rocksdb::IllegalArgumentExceptionJni::ThrowNew(env, s);
864 }
865}
866
867/*
868 * Class: org_rocksdb_Options
869 * Method: maxManifestFileSize
870 * Signature: (J)J
871 */
494da23a
TL
872jlong Java_org_rocksdb_Options_maxManifestFileSize(
873 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
874 return reinterpret_cast<rocksdb::Options*>(jhandle)->max_manifest_file_size;
875}
876
877/*
878 * Method: memTableFactoryName
879 * Signature: (J)Ljava/lang/String
880 */
494da23a
TL
881jstring Java_org_rocksdb_Options_memTableFactoryName(
882 JNIEnv* env, jobject, jlong jhandle) {
7c673cae
FG
883 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
884 rocksdb::MemTableRepFactory* tf = opt->memtable_factory.get();
885
886 // Should never be nullptr.
887 // Default memtable factory is SkipListFactory
888 assert(tf);
889
890 // temporarly fix for the historical typo
891 if (strcmp(tf->Name(), "HashLinkListRepFactory") == 0) {
892 return env->NewStringUTF("HashLinkedListRepFactory");
893 }
894
895 return env->NewStringUTF(tf->Name());
896}
897
898/*
899 * Class: org_rocksdb_Options
900 * Method: setMaxManifestFileSize
901 * Signature: (JJ)V
902 */
903void Java_org_rocksdb_Options_setMaxManifestFileSize(
494da23a 904 JNIEnv*, jobject, jlong jhandle, jlong max_manifest_file_size) {
7c673cae
FG
905 reinterpret_cast<rocksdb::Options*>(jhandle)->max_manifest_file_size =
906 static_cast<int64_t>(max_manifest_file_size);
907}
908
909/*
910 * Method: setMemTableFactory
911 * Signature: (JJ)V
912 */
494da23a
TL
913void Java_org_rocksdb_Options_setMemTableFactory(
914 JNIEnv*, jobject, jlong jhandle, jlong jfactory_handle) {
7c673cae
FG
915 reinterpret_cast<rocksdb::Options*>(jhandle)->memtable_factory.reset(
916 reinterpret_cast<rocksdb::MemTableRepFactory*>(jfactory_handle));
917}
918
919/*
920 * Class: org_rocksdb_Options
921 * Method: setRateLimiter
922 * Signature: (JJ)V
923 */
494da23a
TL
924void Java_org_rocksdb_Options_setRateLimiter(
925 JNIEnv*, jobject, jlong jhandle, jlong jrate_limiter_handle) {
11fdf7f2
TL
926 std::shared_ptr<rocksdb::RateLimiter>* pRateLimiter =
927 reinterpret_cast<std::shared_ptr<rocksdb::RateLimiter>*>(
7c673cae 928 jrate_limiter_handle);
11fdf7f2
TL
929 reinterpret_cast<rocksdb::Options*>(jhandle)->rate_limiter = *pRateLimiter;
930}
931
932/*
933 * Class: org_rocksdb_Options
934 * Method: setSstFileManager
935 * Signature: (JJ)V
936 */
937void Java_org_rocksdb_Options_setSstFileManager(
494da23a 938 JNIEnv*, jobject, jlong jhandle, jlong jsst_file_manager_handle) {
11fdf7f2
TL
939 auto* sptr_sst_file_manager =
940 reinterpret_cast<std::shared_ptr<rocksdb::SstFileManager>*>(
941 jsst_file_manager_handle);
942 reinterpret_cast<rocksdb::Options*>(jhandle)->sst_file_manager =
943 *sptr_sst_file_manager;
7c673cae
FG
944}
945
946/*
947 * Class: org_rocksdb_Options
948 * Method: setLogger
949 * Signature: (JJ)V
950 */
494da23a
TL
951void Java_org_rocksdb_Options_setLogger(
952 JNIEnv*, jobject, jlong jhandle, jlong jlogger_handle) {
11fdf7f2
TL
953 std::shared_ptr<rocksdb::LoggerJniCallback>* pLogger =
954 reinterpret_cast<std::shared_ptr<rocksdb::LoggerJniCallback>*>(
7c673cae
FG
955 jlogger_handle);
956 reinterpret_cast<rocksdb::Options*>(jhandle)->info_log = *pLogger;
957}
958
959/*
960 * Class: org_rocksdb_Options
961 * Method: setInfoLogLevel
962 * Signature: (JB)V
963 */
494da23a
TL
964void Java_org_rocksdb_Options_setInfoLogLevel(
965 JNIEnv*, jobject, jlong jhandle, jbyte jlog_level) {
7c673cae
FG
966 reinterpret_cast<rocksdb::Options*>(jhandle)->info_log_level =
967 static_cast<rocksdb::InfoLogLevel>(jlog_level);
968}
969
970/*
971 * Class: org_rocksdb_Options
972 * Method: infoLogLevel
973 * Signature: (J)B
974 */
494da23a
TL
975jbyte Java_org_rocksdb_Options_infoLogLevel(
976 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
977 return static_cast<jbyte>(
978 reinterpret_cast<rocksdb::Options*>(jhandle)->info_log_level);
979}
980
981/*
982 * Class: org_rocksdb_Options
983 * Method: tableCacheNumshardbits
984 * Signature: (J)I
985 */
494da23a
TL
986jint Java_org_rocksdb_Options_tableCacheNumshardbits(
987 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
988 return reinterpret_cast<rocksdb::Options*>(jhandle)->table_cache_numshardbits;
989}
990
991/*
992 * Class: org_rocksdb_Options
993 * Method: setTableCacheNumshardbits
994 * Signature: (JI)V
995 */
996void Java_org_rocksdb_Options_setTableCacheNumshardbits(
494da23a 997 JNIEnv*, jobject, jlong jhandle, jint table_cache_numshardbits) {
7c673cae
FG
998 reinterpret_cast<rocksdb::Options*>(jhandle)->table_cache_numshardbits =
999 static_cast<int>(table_cache_numshardbits);
1000}
1001
1002/*
1003 * Method: useFixedLengthPrefixExtractor
1004 * Signature: (JI)V
1005 */
1006void Java_org_rocksdb_Options_useFixedLengthPrefixExtractor(
494da23a 1007 JNIEnv*, jobject, jlong jhandle, jint jprefix_length) {
7c673cae 1008 reinterpret_cast<rocksdb::Options*>(jhandle)->prefix_extractor.reset(
11fdf7f2 1009 rocksdb::NewFixedPrefixTransform(static_cast<int>(jprefix_length)));
7c673cae
FG
1010}
1011
1012/*
1013 * Method: useCappedPrefixExtractor
1014 * Signature: (JI)V
1015 */
494da23a
TL
1016void Java_org_rocksdb_Options_useCappedPrefixExtractor(
1017 JNIEnv*, jobject, jlong jhandle, jint jprefix_length) {
7c673cae 1018 reinterpret_cast<rocksdb::Options*>(jhandle)->prefix_extractor.reset(
11fdf7f2 1019 rocksdb::NewCappedPrefixTransform(static_cast<int>(jprefix_length)));
7c673cae
FG
1020}
1021
1022/*
1023 * Class: org_rocksdb_Options
1024 * Method: walTtlSeconds
1025 * Signature: (J)J
1026 */
494da23a
TL
1027jlong Java_org_rocksdb_Options_walTtlSeconds(
1028 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1029 return reinterpret_cast<rocksdb::Options*>(jhandle)->WAL_ttl_seconds;
1030}
1031
1032/*
1033 * Class: org_rocksdb_Options
1034 * Method: setWalTtlSeconds
1035 * Signature: (JJ)V
1036 */
494da23a
TL
1037void Java_org_rocksdb_Options_setWalTtlSeconds(
1038 JNIEnv*, jobject, jlong jhandle, jlong WAL_ttl_seconds) {
7c673cae
FG
1039 reinterpret_cast<rocksdb::Options*>(jhandle)->WAL_ttl_seconds =
1040 static_cast<int64_t>(WAL_ttl_seconds);
1041}
1042
1043/*
1044 * Class: org_rocksdb_Options
1045 * Method: walTtlSeconds
1046 * Signature: (J)J
1047 */
494da23a
TL
1048jlong Java_org_rocksdb_Options_walSizeLimitMB(
1049 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1050 return reinterpret_cast<rocksdb::Options*>(jhandle)->WAL_size_limit_MB;
1051}
1052
1053/*
1054 * Class: org_rocksdb_Options
1055 * Method: setWalSizeLimitMB
1056 * Signature: (JJ)V
1057 */
494da23a
TL
1058void Java_org_rocksdb_Options_setWalSizeLimitMB(
1059 JNIEnv*, jobject, jlong jhandle, jlong WAL_size_limit_MB) {
7c673cae
FG
1060 reinterpret_cast<rocksdb::Options*>(jhandle)->WAL_size_limit_MB =
1061 static_cast<int64_t>(WAL_size_limit_MB);
1062}
1063
1064/*
1065 * Class: org_rocksdb_Options
1066 * Method: manifestPreallocationSize
1067 * Signature: (J)J
1068 */
494da23a
TL
1069jlong Java_org_rocksdb_Options_manifestPreallocationSize(
1070 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1071 return reinterpret_cast<rocksdb::Options*>(jhandle)
1072 ->manifest_preallocation_size;
1073}
1074
1075/*
1076 * Class: org_rocksdb_Options
1077 * Method: setManifestPreallocationSize
1078 * Signature: (JJ)V
1079 */
1080void Java_org_rocksdb_Options_setManifestPreallocationSize(
494da23a
TL
1081 JNIEnv* env, jobject, jlong jhandle, jlong preallocation_size) {
1082 auto s = rocksdb::JniUtil::check_if_jlong_fits_size_t(preallocation_size);
7c673cae
FG
1083 if (s.ok()) {
1084 reinterpret_cast<rocksdb::Options*>(jhandle)->manifest_preallocation_size =
1085 preallocation_size;
1086 } else {
1087 rocksdb::IllegalArgumentExceptionJni::ThrowNew(env, s);
1088 }
1089}
1090
1091/*
1092 * Method: setTableFactory
1093 * Signature: (JJ)V
1094 */
494da23a
TL
1095void Java_org_rocksdb_Options_setTableFactory(
1096 JNIEnv*, jobject, jlong jhandle, jlong jtable_factory_handle) {
1097 auto* options = reinterpret_cast<rocksdb::Options*>(jhandle);
1098 auto* table_factory =
1099 reinterpret_cast<rocksdb::TableFactory*>(jtable_factory_handle);
1100 options->table_factory.reset(table_factory);
7c673cae
FG
1101}
1102
1103/*
1104 * Class: org_rocksdb_Options
1105 * Method: allowMmapReads
1106 * Signature: (J)Z
1107 */
494da23a
TL
1108jboolean Java_org_rocksdb_Options_allowMmapReads(
1109 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1110 return reinterpret_cast<rocksdb::Options*>(jhandle)->allow_mmap_reads;
1111}
1112
1113/*
1114 * Class: org_rocksdb_Options
1115 * Method: setAllowMmapReads
1116 * Signature: (JZ)V
1117 */
494da23a
TL
1118void Java_org_rocksdb_Options_setAllowMmapReads(
1119 JNIEnv*, jobject, jlong jhandle, jboolean allow_mmap_reads) {
7c673cae
FG
1120 reinterpret_cast<rocksdb::Options*>(jhandle)->allow_mmap_reads =
1121 static_cast<bool>(allow_mmap_reads);
1122}
1123
1124/*
1125 * Class: org_rocksdb_Options
1126 * Method: allowMmapWrites
1127 * Signature: (J)Z
1128 */
494da23a
TL
1129jboolean Java_org_rocksdb_Options_allowMmapWrites(
1130 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1131 return reinterpret_cast<rocksdb::Options*>(jhandle)->allow_mmap_writes;
1132}
1133
1134/*
1135 * Class: org_rocksdb_Options
1136 * Method: setAllowMmapWrites
1137 * Signature: (JZ)V
1138 */
494da23a
TL
1139void Java_org_rocksdb_Options_setAllowMmapWrites(
1140 JNIEnv*, jobject, jlong jhandle, jboolean allow_mmap_writes) {
7c673cae
FG
1141 reinterpret_cast<rocksdb::Options*>(jhandle)->allow_mmap_writes =
1142 static_cast<bool>(allow_mmap_writes);
1143}
1144
1145/*
1146 * Class: org_rocksdb_Options
1147 * Method: useDirectReads
1148 * Signature: (J)Z
1149 */
494da23a
TL
1150jboolean Java_org_rocksdb_Options_useDirectReads(
1151 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1152 return reinterpret_cast<rocksdb::Options*>(jhandle)->use_direct_reads;
1153}
1154
1155/*
1156 * Class: org_rocksdb_Options
1157 * Method: setUseDirectReads
1158 * Signature: (JZ)V
1159 */
494da23a
TL
1160void Java_org_rocksdb_Options_setUseDirectReads(
1161 JNIEnv*, jobject, jlong jhandle, jboolean use_direct_reads) {
7c673cae
FG
1162 reinterpret_cast<rocksdb::Options*>(jhandle)->use_direct_reads =
1163 static_cast<bool>(use_direct_reads);
1164}
1165
1166/*
1167 * Class: org_rocksdb_Options
1168 * Method: useDirectIoForFlushAndCompaction
1169 * Signature: (J)Z
1170 */
1171jboolean Java_org_rocksdb_Options_useDirectIoForFlushAndCompaction(
494da23a 1172 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1173 return reinterpret_cast<rocksdb::Options*>(jhandle)
1174 ->use_direct_io_for_flush_and_compaction;
1175}
1176
1177/*
1178 * Class: org_rocksdb_Options
1179 * Method: setUseDirectIoForFlushAndCompaction
1180 * Signature: (JZ)V
1181 */
1182void Java_org_rocksdb_Options_setUseDirectIoForFlushAndCompaction(
494da23a 1183 JNIEnv*, jobject, jlong jhandle,
7c673cae
FG
1184 jboolean use_direct_io_for_flush_and_compaction) {
1185 reinterpret_cast<rocksdb::Options*>(jhandle)
1186 ->use_direct_io_for_flush_and_compaction =
1187 static_cast<bool>(use_direct_io_for_flush_and_compaction);
1188}
1189
1190/*
1191 * Class: org_rocksdb_Options
1192 * Method: setAllowFAllocate
1193 * Signature: (JZ)V
1194 */
494da23a
TL
1195void Java_org_rocksdb_Options_setAllowFAllocate(
1196 JNIEnv*, jobject, jlong jhandle, jboolean jallow_fallocate) {
7c673cae
FG
1197 reinterpret_cast<rocksdb::Options*>(jhandle)->allow_fallocate =
1198 static_cast<bool>(jallow_fallocate);
1199}
1200
1201/*
1202 * Class: org_rocksdb_Options
1203 * Method: allowFAllocate
1204 * Signature: (J)Z
1205 */
494da23a
TL
1206jboolean Java_org_rocksdb_Options_allowFAllocate(
1207 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1208 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1209 return static_cast<jboolean>(opt->allow_fallocate);
1210}
1211
1212/*
1213 * Class: org_rocksdb_Options
1214 * Method: isFdCloseOnExec
1215 * Signature: (J)Z
1216 */
494da23a
TL
1217jboolean Java_org_rocksdb_Options_isFdCloseOnExec(
1218 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1219 return reinterpret_cast<rocksdb::Options*>(jhandle)->is_fd_close_on_exec;
1220}
1221
1222/*
1223 * Class: org_rocksdb_Options
1224 * Method: setIsFdCloseOnExec
1225 * Signature: (JZ)V
1226 */
494da23a
TL
1227void Java_org_rocksdb_Options_setIsFdCloseOnExec(
1228 JNIEnv*, jobject, jlong jhandle, jboolean is_fd_close_on_exec) {
7c673cae
FG
1229 reinterpret_cast<rocksdb::Options*>(jhandle)->is_fd_close_on_exec =
1230 static_cast<bool>(is_fd_close_on_exec);
1231}
1232
1233/*
1234 * Class: org_rocksdb_Options
1235 * Method: statsDumpPeriodSec
1236 * Signature: (J)I
1237 */
494da23a
TL
1238jint Java_org_rocksdb_Options_statsDumpPeriodSec(
1239 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1240 return reinterpret_cast<rocksdb::Options*>(jhandle)->stats_dump_period_sec;
1241}
1242
1243/*
1244 * Class: org_rocksdb_Options
1245 * Method: setStatsDumpPeriodSec
1246 * Signature: (JI)V
1247 */
1248void Java_org_rocksdb_Options_setStatsDumpPeriodSec(
494da23a 1249 JNIEnv*, jobject, jlong jhandle,
11fdf7f2 1250 jint stats_dump_period_sec) {
7c673cae
FG
1251 reinterpret_cast<rocksdb::Options*>(jhandle)->stats_dump_period_sec =
1252 static_cast<int>(stats_dump_period_sec);
1253}
1254
1255/*
1256 * Class: org_rocksdb_Options
1257 * Method: adviseRandomOnOpen
1258 * Signature: (J)Z
1259 */
494da23a
TL
1260jboolean Java_org_rocksdb_Options_adviseRandomOnOpen(
1261 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1262 return reinterpret_cast<rocksdb::Options*>(jhandle)->advise_random_on_open;
1263}
1264
1265/*
1266 * Class: org_rocksdb_Options
1267 * Method: setAdviseRandomOnOpen
1268 * Signature: (JZ)V
1269 */
1270void Java_org_rocksdb_Options_setAdviseRandomOnOpen(
494da23a 1271 JNIEnv*, jobject, jlong jhandle,
11fdf7f2 1272 jboolean advise_random_on_open) {
7c673cae
FG
1273 reinterpret_cast<rocksdb::Options*>(jhandle)->advise_random_on_open =
1274 static_cast<bool>(advise_random_on_open);
1275}
1276
1277/*
1278 * Class: org_rocksdb_Options
1279 * Method: setDbWriteBufferSize
1280 * Signature: (JJ)V
1281 */
1282void Java_org_rocksdb_Options_setDbWriteBufferSize(
494da23a 1283 JNIEnv*, jobject, jlong jhandle,
11fdf7f2 1284 jlong jdb_write_buffer_size) {
7c673cae
FG
1285 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1286 opt->db_write_buffer_size = static_cast<size_t>(jdb_write_buffer_size);
1287}
1288
1289/*
1290 * Class: org_rocksdb_Options
1291 * Method: dbWriteBufferSize
1292 * Signature: (J)J
1293 */
494da23a
TL
1294jlong Java_org_rocksdb_Options_dbWriteBufferSize(
1295 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1296 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1297 return static_cast<jlong>(opt->db_write_buffer_size);
1298}
1299
1300/*
1301 * Class: org_rocksdb_Options
1302 * Method: setAccessHintOnCompactionStart
1303 * Signature: (JB)V
1304 */
1305void Java_org_rocksdb_Options_setAccessHintOnCompactionStart(
494da23a 1306 JNIEnv*, jobject, jlong jhandle,
11fdf7f2 1307 jbyte jaccess_hint_value) {
7c673cae
FG
1308 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1309 opt->access_hint_on_compaction_start =
1310 rocksdb::AccessHintJni::toCppAccessHint(jaccess_hint_value);
1311}
1312
1313/*
1314 * Class: org_rocksdb_Options
1315 * Method: accessHintOnCompactionStart
1316 * Signature: (J)B
1317 */
494da23a
TL
1318jbyte Java_org_rocksdb_Options_accessHintOnCompactionStart(
1319 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1320 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1321 return rocksdb::AccessHintJni::toJavaAccessHint(
1322 opt->access_hint_on_compaction_start);
1323}
1324
1325/*
1326 * Class: org_rocksdb_Options
1327 * Method: setNewTableReaderForCompactionInputs
1328 * Signature: (JZ)V
1329 */
1330void Java_org_rocksdb_Options_setNewTableReaderForCompactionInputs(
494da23a 1331 JNIEnv*, jobject, jlong jhandle,
7c673cae
FG
1332 jboolean jnew_table_reader_for_compaction_inputs) {
1333 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1334 opt->new_table_reader_for_compaction_inputs =
1335 static_cast<bool>(jnew_table_reader_for_compaction_inputs);
1336}
1337
1338/*
1339 * Class: org_rocksdb_Options
1340 * Method: newTableReaderForCompactionInputs
1341 * Signature: (J)Z
1342 */
1343jboolean Java_org_rocksdb_Options_newTableReaderForCompactionInputs(
494da23a 1344 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1345 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1346 return static_cast<bool>(opt->new_table_reader_for_compaction_inputs);
1347}
1348
1349/*
1350 * Class: org_rocksdb_Options
1351 * Method: setCompactionReadaheadSize
1352 * Signature: (JJ)V
1353 */
1354void Java_org_rocksdb_Options_setCompactionReadaheadSize(
494da23a 1355 JNIEnv*, jobject, jlong jhandle,
11fdf7f2 1356 jlong jcompaction_readahead_size) {
7c673cae
FG
1357 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1358 opt->compaction_readahead_size =
1359 static_cast<size_t>(jcompaction_readahead_size);
1360}
1361
1362/*
1363 * Class: org_rocksdb_Options
1364 * Method: compactionReadaheadSize
1365 * Signature: (J)J
1366 */
494da23a
TL
1367jlong Java_org_rocksdb_Options_compactionReadaheadSize(
1368 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1369 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1370 return static_cast<jlong>(opt->compaction_readahead_size);
1371}
1372
1373/*
1374 * Class: org_rocksdb_Options
1375 * Method: setRandomAccessMaxBufferSize
1376 * Signature: (JJ)V
1377 */
1378void Java_org_rocksdb_Options_setRandomAccessMaxBufferSize(
494da23a 1379 JNIEnv*, jobject, jlong jhandle, jlong jrandom_access_max_buffer_size) {
7c673cae
FG
1380 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1381 opt->random_access_max_buffer_size =
1382 static_cast<size_t>(jrandom_access_max_buffer_size);
1383}
1384
1385/*
1386 * Class: org_rocksdb_Options
1387 * Method: randomAccessMaxBufferSize
1388 * Signature: (J)J
1389 */
494da23a
TL
1390jlong Java_org_rocksdb_Options_randomAccessMaxBufferSize(
1391 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1392 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1393 return static_cast<jlong>(opt->random_access_max_buffer_size);
1394}
1395
1396/*
1397 * Class: org_rocksdb_Options
1398 * Method: setWritableFileMaxBufferSize
1399 * Signature: (JJ)V
1400 */
1401void Java_org_rocksdb_Options_setWritableFileMaxBufferSize(
494da23a 1402 JNIEnv*, jobject, jlong jhandle,
7c673cae
FG
1403 jlong jwritable_file_max_buffer_size) {
1404 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1405 opt->writable_file_max_buffer_size =
1406 static_cast<size_t>(jwritable_file_max_buffer_size);
1407}
1408
1409/*
1410 * Class: org_rocksdb_Options
1411 * Method: writableFileMaxBufferSize
1412 * Signature: (J)J
1413 */
494da23a
TL
1414jlong Java_org_rocksdb_Options_writableFileMaxBufferSize(
1415 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1416 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1417 return static_cast<jlong>(opt->writable_file_max_buffer_size);
1418}
1419
1420/*
1421 * Class: org_rocksdb_Options
1422 * Method: useAdaptiveMutex
1423 * Signature: (J)Z
1424 */
494da23a
TL
1425jboolean Java_org_rocksdb_Options_useAdaptiveMutex(
1426 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1427 return reinterpret_cast<rocksdb::Options*>(jhandle)->use_adaptive_mutex;
1428}
1429
1430/*
1431 * Class: org_rocksdb_Options
1432 * Method: setUseAdaptiveMutex
1433 * Signature: (JZ)V
1434 */
494da23a
TL
1435void Java_org_rocksdb_Options_setUseAdaptiveMutex(
1436 JNIEnv*, jobject, jlong jhandle, jboolean use_adaptive_mutex) {
7c673cae
FG
1437 reinterpret_cast<rocksdb::Options*>(jhandle)->use_adaptive_mutex =
1438 static_cast<bool>(use_adaptive_mutex);
1439}
1440
1441/*
1442 * Class: org_rocksdb_Options
1443 * Method: bytesPerSync
1444 * Signature: (J)J
1445 */
494da23a
TL
1446jlong Java_org_rocksdb_Options_bytesPerSync(
1447 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1448 return reinterpret_cast<rocksdb::Options*>(jhandle)->bytes_per_sync;
1449}
1450
1451/*
1452 * Class: org_rocksdb_Options
1453 * Method: setBytesPerSync
1454 * Signature: (JJ)V
1455 */
494da23a
TL
1456void Java_org_rocksdb_Options_setBytesPerSync(
1457 JNIEnv*, jobject, jlong jhandle, jlong bytes_per_sync) {
7c673cae
FG
1458 reinterpret_cast<rocksdb::Options*>(jhandle)->bytes_per_sync =
1459 static_cast<int64_t>(bytes_per_sync);
1460}
1461
1462/*
1463 * Class: org_rocksdb_Options
1464 * Method: setWalBytesPerSync
1465 * Signature: (JJ)V
1466 */
494da23a
TL
1467void Java_org_rocksdb_Options_setWalBytesPerSync(
1468 JNIEnv*, jobject, jlong jhandle, jlong jwal_bytes_per_sync) {
7c673cae
FG
1469 reinterpret_cast<rocksdb::Options*>(jhandle)->wal_bytes_per_sync =
1470 static_cast<int64_t>(jwal_bytes_per_sync);
1471}
1472
1473/*
1474 * Class: org_rocksdb_Options
1475 * Method: walBytesPerSync
1476 * Signature: (J)J
1477 */
494da23a
TL
1478jlong Java_org_rocksdb_Options_walBytesPerSync(
1479 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1480 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1481 return static_cast<jlong>(opt->wal_bytes_per_sync);
1482}
1483
1484/*
1485 * Class: org_rocksdb_Options
1486 * Method: setEnableThreadTracking
1487 * Signature: (JZ)V
1488 */
1489void Java_org_rocksdb_Options_setEnableThreadTracking(
494da23a 1490 JNIEnv*, jobject, jlong jhandle, jboolean jenable_thread_tracking) {
7c673cae
FG
1491 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1492 opt->enable_thread_tracking = static_cast<bool>(jenable_thread_tracking);
1493}
1494
1495/*
1496 * Class: org_rocksdb_Options
1497 * Method: enableThreadTracking
1498 * Signature: (J)Z
1499 */
494da23a
TL
1500jboolean Java_org_rocksdb_Options_enableThreadTracking(
1501 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1502 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1503 return static_cast<jboolean>(opt->enable_thread_tracking);
1504}
1505
1506/*
1507 * Class: org_rocksdb_Options
1508 * Method: setDelayedWriteRate
1509 * Signature: (JJ)V
1510 */
494da23a
TL
1511void Java_org_rocksdb_Options_setDelayedWriteRate(
1512 JNIEnv*, jobject, jlong jhandle, jlong jdelayed_write_rate) {
7c673cae
FG
1513 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1514 opt->delayed_write_rate = static_cast<uint64_t>(jdelayed_write_rate);
1515}
1516
1517/*
1518 * Class: org_rocksdb_Options
1519 * Method: delayedWriteRate
1520 * Signature: (J)J
1521 */
494da23a
TL
1522jlong Java_org_rocksdb_Options_delayedWriteRate(
1523 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1524 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1525 return static_cast<jlong>(opt->delayed_write_rate);
1526}
1527
494da23a
TL
1528/*
1529 * Class: org_rocksdb_Options
1530 * Method: setEnablePipelinedWrite
1531 * Signature: (JZ)V
1532 */
1533void Java_org_rocksdb_Options_setEnablePipelinedWrite(
1534 JNIEnv*, jobject, jlong jhandle, jboolean jenable_pipelined_write) {
1535 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1536 opt->enable_pipelined_write = jenable_pipelined_write == JNI_TRUE;
1537}
1538
1539/*
1540 * Class: org_rocksdb_Options
1541 * Method: enablePipelinedWrite
1542 * Signature: (J)Z
1543 */
1544jboolean Java_org_rocksdb_Options_enablePipelinedWrite(
1545 JNIEnv*, jobject, jlong jhandle) {
1546 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1547 return static_cast<jboolean>(opt->enable_pipelined_write);
1548}
1549
7c673cae
FG
1550/*
1551 * Class: org_rocksdb_Options
1552 * Method: setAllowConcurrentMemtableWrite
1553 * Signature: (JZ)V
1554 */
494da23a
TL
1555void Java_org_rocksdb_Options_setAllowConcurrentMemtableWrite(
1556 JNIEnv*, jobject, jlong jhandle, jboolean allow) {
11fdf7f2
TL
1557 reinterpret_cast<rocksdb::Options*>(jhandle)
1558 ->allow_concurrent_memtable_write = static_cast<bool>(allow);
7c673cae
FG
1559}
1560
1561/*
1562 * Class: org_rocksdb_Options
1563 * Method: allowConcurrentMemtableWrite
1564 * Signature: (J)Z
1565 */
494da23a
TL
1566jboolean Java_org_rocksdb_Options_allowConcurrentMemtableWrite(
1567 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
1568 return reinterpret_cast<rocksdb::Options*>(jhandle)
1569 ->allow_concurrent_memtable_write;
7c673cae
FG
1570}
1571
1572/*
1573 * Class: org_rocksdb_Options
1574 * Method: setEnableWriteThreadAdaptiveYield
1575 * Signature: (JZ)V
1576 */
1577void Java_org_rocksdb_Options_setEnableWriteThreadAdaptiveYield(
494da23a 1578 JNIEnv*, jobject, jlong jhandle, jboolean yield) {
11fdf7f2
TL
1579 reinterpret_cast<rocksdb::Options*>(jhandle)
1580 ->enable_write_thread_adaptive_yield = static_cast<bool>(yield);
7c673cae
FG
1581}
1582
1583/*
1584 * Class: org_rocksdb_Options
1585 * Method: enableWriteThreadAdaptiveYield
1586 * Signature: (J)Z
1587 */
1588jboolean Java_org_rocksdb_Options_enableWriteThreadAdaptiveYield(
494da23a 1589 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
1590 return reinterpret_cast<rocksdb::Options*>(jhandle)
1591 ->enable_write_thread_adaptive_yield;
7c673cae
FG
1592}
1593
1594/*
1595 * Class: org_rocksdb_Options
1596 * Method: setWriteThreadMaxYieldUsec
1597 * Signature: (JJ)V
1598 */
494da23a
TL
1599void Java_org_rocksdb_Options_setWriteThreadMaxYieldUsec(
1600 JNIEnv*, jobject, jlong jhandle, jlong max) {
11fdf7f2
TL
1601 reinterpret_cast<rocksdb::Options*>(jhandle)->write_thread_max_yield_usec =
1602 static_cast<int64_t>(max);
7c673cae
FG
1603}
1604
1605/*
1606 * Class: org_rocksdb_Options
1607 * Method: writeThreadMaxYieldUsec
1608 * Signature: (J)J
1609 */
494da23a
TL
1610jlong Java_org_rocksdb_Options_writeThreadMaxYieldUsec(
1611 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
1612 return reinterpret_cast<rocksdb::Options*>(jhandle)
1613 ->write_thread_max_yield_usec;
7c673cae
FG
1614}
1615
1616/*
1617 * Class: org_rocksdb_Options
1618 * Method: setWriteThreadSlowYieldUsec
1619 * Signature: (JJ)V
1620 */
494da23a
TL
1621void Java_org_rocksdb_Options_setWriteThreadSlowYieldUsec(
1622 JNIEnv*, jobject, jlong jhandle, jlong slow) {
11fdf7f2
TL
1623 reinterpret_cast<rocksdb::Options*>(jhandle)->write_thread_slow_yield_usec =
1624 static_cast<int64_t>(slow);
7c673cae
FG
1625}
1626
1627/*
1628 * Class: org_rocksdb_Options
1629 * Method: writeThreadSlowYieldUsec
1630 * Signature: (J)J
1631 */
494da23a
TL
1632jlong Java_org_rocksdb_Options_writeThreadSlowYieldUsec(
1633 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
1634 return reinterpret_cast<rocksdb::Options*>(jhandle)
1635 ->write_thread_slow_yield_usec;
7c673cae
FG
1636}
1637
1638/*
1639 * Class: org_rocksdb_Options
1640 * Method: setSkipStatsUpdateOnDbOpen
1641 * Signature: (JZ)V
1642 */
1643void Java_org_rocksdb_Options_setSkipStatsUpdateOnDbOpen(
494da23a 1644 JNIEnv*, jobject, jlong jhandle,
7c673cae
FG
1645 jboolean jskip_stats_update_on_db_open) {
1646 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1647 opt->skip_stats_update_on_db_open =
1648 static_cast<bool>(jskip_stats_update_on_db_open);
1649}
1650
1651/*
1652 * Class: org_rocksdb_Options
1653 * Method: skipStatsUpdateOnDbOpen
1654 * Signature: (J)Z
1655 */
494da23a
TL
1656jboolean Java_org_rocksdb_Options_skipStatsUpdateOnDbOpen(
1657 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1658 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1659 return static_cast<jboolean>(opt->skip_stats_update_on_db_open);
1660}
1661
1662/*
1663 * Class: org_rocksdb_Options
1664 * Method: setWalRecoveryMode
1665 * Signature: (JB)V
1666 */
1667void Java_org_rocksdb_Options_setWalRecoveryMode(
494da23a 1668 JNIEnv*, jobject, jlong jhandle,
11fdf7f2 1669 jbyte jwal_recovery_mode_value) {
7c673cae 1670 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
11fdf7f2
TL
1671 opt->wal_recovery_mode = rocksdb::WALRecoveryModeJni::toCppWALRecoveryMode(
1672 jwal_recovery_mode_value);
7c673cae
FG
1673}
1674
1675/*
1676 * Class: org_rocksdb_Options
1677 * Method: walRecoveryMode
1678 * Signature: (J)B
1679 */
494da23a
TL
1680jbyte Java_org_rocksdb_Options_walRecoveryMode(
1681 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1682 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1683 return rocksdb::WALRecoveryModeJni::toJavaWALRecoveryMode(
1684 opt->wal_recovery_mode);
1685}
1686
1687/*
1688 * Class: org_rocksdb_Options
1689 * Method: setAllow2pc
1690 * Signature: (JZ)V
1691 */
494da23a
TL
1692void Java_org_rocksdb_Options_setAllow2pc(
1693 JNIEnv*, jobject, jlong jhandle, jboolean jallow_2pc) {
7c673cae
FG
1694 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1695 opt->allow_2pc = static_cast<bool>(jallow_2pc);
1696}
1697
1698/*
1699 * Class: org_rocksdb_Options
1700 * Method: allow2pc
1701 * Signature: (J)Z
1702 */
494da23a
TL
1703jboolean Java_org_rocksdb_Options_allow2pc(
1704 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1705 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1706 return static_cast<jboolean>(opt->allow_2pc);
1707}
1708
1709/*
1710 * Class: org_rocksdb_Options
1711 * Method: setRowCache
1712 * Signature: (JJ)V
1713 */
494da23a
TL
1714void Java_org_rocksdb_Options_setRowCache(
1715 JNIEnv*, jobject, jlong jhandle, jlong jrow_cache_handle) {
7c673cae 1716 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
11fdf7f2
TL
1717 auto* row_cache =
1718 reinterpret_cast<std::shared_ptr<rocksdb::Cache>*>(jrow_cache_handle);
7c673cae
FG
1719 opt->row_cache = *row_cache;
1720}
1721
494da23a
TL
1722
1723/*
1724 * Class: org_rocksdb_Options
1725 * Method: setWalFilter
1726 * Signature: (JJ)V
1727 */
1728void Java_org_rocksdb_Options_setWalFilter(
1729 JNIEnv*, jobject, jlong jhandle, jlong jwal_filter_handle) {
1730 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1731 auto* wal_filter =
1732 reinterpret_cast<rocksdb::WalFilterJniCallback*>(jwal_filter_handle);
1733 opt->wal_filter = wal_filter;
1734}
1735
7c673cae
FG
1736/*
1737 * Class: org_rocksdb_Options
1738 * Method: setFailIfOptionsFileError
1739 * Signature: (JZ)V
1740 */
1741void Java_org_rocksdb_Options_setFailIfOptionsFileError(
494da23a 1742 JNIEnv*, jobject, jlong jhandle, jboolean jfail_if_options_file_error) {
7c673cae
FG
1743 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1744 opt->fail_if_options_file_error =
1745 static_cast<bool>(jfail_if_options_file_error);
1746}
1747
1748/*
1749 * Class: org_rocksdb_Options
1750 * Method: failIfOptionsFileError
1751 * Signature: (J)Z
1752 */
494da23a
TL
1753jboolean Java_org_rocksdb_Options_failIfOptionsFileError(
1754 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1755 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1756 return static_cast<jboolean>(opt->fail_if_options_file_error);
1757}
1758
1759/*
1760 * Class: org_rocksdb_Options
1761 * Method: setDumpMallocStats
1762 * Signature: (JZ)V
1763 */
494da23a
TL
1764void Java_org_rocksdb_Options_setDumpMallocStats(
1765 JNIEnv*, jobject, jlong jhandle, jboolean jdump_malloc_stats) {
7c673cae
FG
1766 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1767 opt->dump_malloc_stats = static_cast<bool>(jdump_malloc_stats);
1768}
1769
1770/*
1771 * Class: org_rocksdb_Options
1772 * Method: dumpMallocStats
1773 * Signature: (J)Z
1774 */
494da23a
TL
1775jboolean Java_org_rocksdb_Options_dumpMallocStats(
1776 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1777 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1778 return static_cast<jboolean>(opt->dump_malloc_stats);
1779}
1780
1781/*
1782 * Class: org_rocksdb_Options
1783 * Method: setAvoidFlushDuringRecovery
1784 * Signature: (JZ)V
1785 */
1786void Java_org_rocksdb_Options_setAvoidFlushDuringRecovery(
494da23a 1787 JNIEnv*, jobject, jlong jhandle, jboolean javoid_flush_during_recovery) {
7c673cae 1788 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
11fdf7f2
TL
1789 opt->avoid_flush_during_recovery =
1790 static_cast<bool>(javoid_flush_during_recovery);
7c673cae
FG
1791}
1792
1793/*
1794 * Class: org_rocksdb_Options
1795 * Method: avoidFlushDuringRecovery
1796 * Signature: (J)Z
1797 */
494da23a
TL
1798jboolean Java_org_rocksdb_Options_avoidFlushDuringRecovery(
1799 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1800 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1801 return static_cast<jboolean>(opt->avoid_flush_during_recovery);
1802}
1803
1804/*
1805 * Class: org_rocksdb_Options
1806 * Method: setAvoidFlushDuringShutdown
1807 * Signature: (JZ)V
1808 */
1809void Java_org_rocksdb_Options_setAvoidFlushDuringShutdown(
494da23a 1810 JNIEnv*, jobject, jlong jhandle, jboolean javoid_flush_during_shutdown) {
7c673cae 1811 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
11fdf7f2
TL
1812 opt->avoid_flush_during_shutdown =
1813 static_cast<bool>(javoid_flush_during_shutdown);
7c673cae
FG
1814}
1815
1816/*
1817 * Class: org_rocksdb_Options
1818 * Method: avoidFlushDuringShutdown
1819 * Signature: (J)Z
1820 */
494da23a
TL
1821jboolean Java_org_rocksdb_Options_avoidFlushDuringShutdown(
1822 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1823 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1824 return static_cast<jboolean>(opt->avoid_flush_during_shutdown);
1825}
1826
494da23a
TL
1827/*
1828 * Class: org_rocksdb_Options
1829 * Method: setAllowIngestBehind
1830 * Signature: (JZ)V
1831 */
1832void Java_org_rocksdb_Options_setAllowIngestBehind(
1833 JNIEnv*, jobject, jlong jhandle, jboolean jallow_ingest_behind) {
1834 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1835 opt->allow_ingest_behind = jallow_ingest_behind == JNI_TRUE;
1836}
1837
1838/*
1839 * Class: org_rocksdb_Options
1840 * Method: allowIngestBehind
1841 * Signature: (J)Z
1842 */
1843jboolean Java_org_rocksdb_Options_allowIngestBehind(
1844 JNIEnv*, jobject, jlong jhandle) {
1845 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1846 return static_cast<jboolean>(opt->allow_ingest_behind);
1847}
1848
1849/*
1850 * Class: org_rocksdb_Options
1851 * Method: setPreserveDeletes
1852 * Signature: (JZ)V
1853 */
1854void Java_org_rocksdb_Options_setPreserveDeletes(
1855 JNIEnv*, jobject, jlong jhandle, jboolean jpreserve_deletes) {
1856 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1857 opt->preserve_deletes = jpreserve_deletes == JNI_TRUE;
1858}
1859
1860/*
1861 * Class: org_rocksdb_Options
1862 * Method: preserveDeletes
1863 * Signature: (J)Z
1864 */
1865jboolean Java_org_rocksdb_Options_preserveDeletes(
1866 JNIEnv*, jobject, jlong jhandle) {
1867 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1868 return static_cast<jboolean>(opt->preserve_deletes);
1869}
1870
1871/*
1872 * Class: org_rocksdb_Options
1873 * Method: setTwoWriteQueues
1874 * Signature: (JZ)V
1875 */
1876void Java_org_rocksdb_Options_setTwoWriteQueues(
1877 JNIEnv*, jobject, jlong jhandle, jboolean jtwo_write_queues) {
1878 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1879 opt->two_write_queues = jtwo_write_queues == JNI_TRUE;
1880}
1881
1882/*
1883 * Class: org_rocksdb_Options
1884 * Method: twoWriteQueues
1885 * Signature: (J)Z
1886 */
1887jboolean Java_org_rocksdb_Options_twoWriteQueues(
1888 JNIEnv*, jobject, jlong jhandle) {
1889 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1890 return static_cast<jboolean>(opt->two_write_queues);
1891}
1892
1893/*
1894 * Class: org_rocksdb_Options
1895 * Method: setManualWalFlush
1896 * Signature: (JZ)V
1897 */
1898void Java_org_rocksdb_Options_setManualWalFlush(
1899 JNIEnv*, jobject, jlong jhandle, jboolean jmanual_wal_flush) {
1900 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1901 opt->manual_wal_flush = jmanual_wal_flush == JNI_TRUE;
1902}
1903
1904/*
1905 * Class: org_rocksdb_Options
1906 * Method: manualWalFlush
1907 * Signature: (J)Z
1908 */
1909jboolean Java_org_rocksdb_Options_manualWalFlush(
1910 JNIEnv*, jobject, jlong jhandle) {
1911 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1912 return static_cast<jboolean>(opt->manual_wal_flush);
1913}
1914
1915/*
1916 * Class: org_rocksdb_Options
1917 * Method: setAtomicFlush
1918 * Signature: (JZ)V
1919 */
1920void Java_org_rocksdb_Options_setAtomicFlush(
1921 JNIEnv*, jobject, jlong jhandle, jboolean jatomic_flush) {
1922 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1923 opt->atomic_flush = jatomic_flush == JNI_TRUE;
1924}
1925
1926/*
1927 * Class: org_rocksdb_Options
1928 * Method: atomicFlush
1929 * Signature: (J)Z
1930 */
1931jboolean Java_org_rocksdb_Options_atomicFlush(
1932 JNIEnv *, jobject, jlong jhandle) {
1933 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1934 return static_cast<jboolean>(opt->atomic_flush);
1935}
1936
7c673cae
FG
1937/*
1938 * Method: tableFactoryName
1939 * Signature: (J)Ljava/lang/String
1940 */
494da23a
TL
1941jstring Java_org_rocksdb_Options_tableFactoryName(
1942 JNIEnv* env, jobject, jlong jhandle) {
7c673cae
FG
1943 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
1944 rocksdb::TableFactory* tf = opt->table_factory.get();
1945
1946 // Should never be nullptr.
1947 // Default memtable factory is SkipListFactory
1948 assert(tf);
1949
1950 return env->NewStringUTF(tf->Name());
1951}
1952
7c673cae
FG
1953/*
1954 * Class: org_rocksdb_Options
1955 * Method: minWriteBufferNumberToMerge
1956 * Signature: (J)I
1957 */
494da23a
TL
1958jint Java_org_rocksdb_Options_minWriteBufferNumberToMerge(
1959 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
1960 return reinterpret_cast<rocksdb::Options*>(jhandle)
1961 ->min_write_buffer_number_to_merge;
7c673cae
FG
1962}
1963
1964/*
1965 * Class: org_rocksdb_Options
1966 * Method: setMinWriteBufferNumberToMerge
1967 * Signature: (JI)V
1968 */
1969void Java_org_rocksdb_Options_setMinWriteBufferNumberToMerge(
494da23a 1970 JNIEnv*, jobject, jlong jhandle, jint jmin_write_buffer_number_to_merge) {
11fdf7f2
TL
1971 reinterpret_cast<rocksdb::Options*>(jhandle)
1972 ->min_write_buffer_number_to_merge =
1973 static_cast<int>(jmin_write_buffer_number_to_merge);
7c673cae
FG
1974}
1975/*
1976 * Class: org_rocksdb_Options
1977 * Method: maxWriteBufferNumberToMaintain
1978 * Signature: (J)I
1979 */
494da23a
TL
1980jint Java_org_rocksdb_Options_maxWriteBufferNumberToMaintain(
1981 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
1982 return reinterpret_cast<rocksdb::Options*>(jhandle)
1983 ->max_write_buffer_number_to_maintain;
1984}
1985
1986/*
1987 * Class: org_rocksdb_Options
1988 * Method: setMaxWriteBufferNumberToMaintain
1989 * Signature: (JI)V
1990 */
1991void Java_org_rocksdb_Options_setMaxWriteBufferNumberToMaintain(
494da23a 1992 JNIEnv*, jobject, jlong jhandle,
7c673cae
FG
1993 jint jmax_write_buffer_number_to_maintain) {
1994 reinterpret_cast<rocksdb::Options*>(jhandle)
1995 ->max_write_buffer_number_to_maintain =
1996 static_cast<int>(jmax_write_buffer_number_to_maintain);
1997}
1998
1999/*
2000 * Class: org_rocksdb_Options
2001 * Method: setCompressionType
2002 * Signature: (JB)V
2003 */
2004void Java_org_rocksdb_Options_setCompressionType(
494da23a 2005 JNIEnv*, jobject, jlong jhandle, jbyte jcompression_type_value) {
7c673cae
FG
2006 auto* opts = reinterpret_cast<rocksdb::Options*>(jhandle);
2007 opts->compression = rocksdb::CompressionTypeJni::toCppCompressionType(
2008 jcompression_type_value);
2009}
2010
2011/*
2012 * Class: org_rocksdb_Options
2013 * Method: compressionType
2014 * Signature: (J)B
2015 */
494da23a
TL
2016jbyte Java_org_rocksdb_Options_compressionType(
2017 JNIEnv*, jobject, jlong jhandle) {
7c673cae 2018 auto* opts = reinterpret_cast<rocksdb::Options*>(jhandle);
11fdf7f2 2019 return rocksdb::CompressionTypeJni::toJavaCompressionType(opts->compression);
7c673cae
FG
2020}
2021
2022/**
2023 * Helper method to convert a Java byte array of compression levels
2024 * to a C++ vector of rocksdb::CompressionType
2025 *
2026 * @param env A pointer to the Java environment
2027 * @param jcompression_levels A reference to a java byte array
2028 * where each byte indicates a compression level
2029 *
494da23a
TL
2030 * @return A std::unique_ptr to the vector, or std::unique_ptr(nullptr) if a JNI
2031 * exception occurs
7c673cae 2032 */
494da23a
TL
2033std::unique_ptr<std::vector<rocksdb::CompressionType>>rocksdb_compression_vector_helper(
2034 JNIEnv* env, jbyteArray jcompression_levels) {
7c673cae
FG
2035 jsize len = env->GetArrayLength(jcompression_levels);
2036 jbyte* jcompression_level =
2037 env->GetByteArrayElements(jcompression_levels, nullptr);
11fdf7f2 2038 if (jcompression_level == nullptr) {
7c673cae
FG
2039 // exception thrown: OutOfMemoryError
2040 return std::unique_ptr<std::vector<rocksdb::CompressionType>>();
2041 }
2042
2043 auto* compression_levels = new std::vector<rocksdb::CompressionType>();
11fdf7f2
TL
2044 std::unique_ptr<std::vector<rocksdb::CompressionType>>
2045 uptr_compression_levels(compression_levels);
7c673cae 2046
11fdf7f2 2047 for (jsize i = 0; i < len; i++) {
7c673cae
FG
2048 jbyte jcl = jcompression_level[i];
2049 compression_levels->push_back(static_cast<rocksdb::CompressionType>(jcl));
2050 }
2051
2052 env->ReleaseByteArrayElements(jcompression_levels, jcompression_level,
11fdf7f2 2053 JNI_ABORT);
7c673cae
FG
2054
2055 return uptr_compression_levels;
2056}
2057
2058/**
2059 * Helper method to convert a C++ vector of rocksdb::CompressionType
2060 * to a Java byte array of compression levels
2061 *
2062 * @param env A pointer to the Java environment
2063 * @param jcompression_levels A reference to a java byte array
2064 * where each byte indicates a compression level
2065 *
2066 * @return A jbytearray or nullptr if an exception occurs
2067 */
11fdf7f2
TL
2068jbyteArray rocksdb_compression_list_helper(
2069 JNIEnv* env, std::vector<rocksdb::CompressionType> compression_levels) {
7c673cae
FG
2070 const size_t len = compression_levels.size();
2071 jbyte* jbuf = new jbyte[len];
2072
2073 for (size_t i = 0; i < len; i++) {
11fdf7f2 2074 jbuf[i] = compression_levels[i];
7c673cae
FG
2075 }
2076
2077 // insert in java array
2078 jbyteArray jcompression_levels = env->NewByteArray(static_cast<jsize>(len));
11fdf7f2
TL
2079 if (jcompression_levels == nullptr) {
2080 // exception thrown: OutOfMemoryError
2081 delete[] jbuf;
2082 return nullptr;
7c673cae
FG
2083 }
2084 env->SetByteArrayRegion(jcompression_levels, 0, static_cast<jsize>(len),
11fdf7f2
TL
2085 jbuf);
2086 if (env->ExceptionCheck()) {
2087 // exception thrown: ArrayIndexOutOfBoundsException
2088 env->DeleteLocalRef(jcompression_levels);
2089 delete[] jbuf;
2090 return nullptr;
7c673cae
FG
2091 }
2092
11fdf7f2 2093 delete[] jbuf;
7c673cae
FG
2094
2095 return jcompression_levels;
2096}
2097
2098/*
2099 * Class: org_rocksdb_Options
2100 * Method: setCompressionPerLevel
2101 * Signature: (J[B)V
2102 */
2103void Java_org_rocksdb_Options_setCompressionPerLevel(
494da23a 2104 JNIEnv* env, jobject, jlong jhandle, jbyteArray jcompressionLevels) {
7c673cae
FG
2105 auto uptr_compression_levels =
2106 rocksdb_compression_vector_helper(env, jcompressionLevels);
11fdf7f2 2107 if (!uptr_compression_levels) {
7c673cae
FG
2108 // exception occurred
2109 return;
2110 }
2111 auto* options = reinterpret_cast<rocksdb::Options*>(jhandle);
2112 options->compression_per_level = *(uptr_compression_levels.get());
2113}
2114
2115/*
2116 * Class: org_rocksdb_Options
2117 * Method: compressionPerLevel
2118 * Signature: (J)[B
2119 */
494da23a
TL
2120jbyteArray Java_org_rocksdb_Options_compressionPerLevel(
2121 JNIEnv* env, jobject, jlong jhandle) {
7c673cae 2122 auto* options = reinterpret_cast<rocksdb::Options*>(jhandle);
11fdf7f2 2123 return rocksdb_compression_list_helper(env, options->compression_per_level);
7c673cae
FG
2124}
2125
2126/*
2127 * Class: org_rocksdb_Options
2128 * Method: setBottommostCompressionType
2129 * Signature: (JB)V
2130 */
2131void Java_org_rocksdb_Options_setBottommostCompressionType(
494da23a 2132 JNIEnv*, jobject, jlong jhandle, jbyte jcompression_type_value) {
7c673cae
FG
2133 auto* options = reinterpret_cast<rocksdb::Options*>(jhandle);
2134 options->bottommost_compression =
2135 rocksdb::CompressionTypeJni::toCppCompressionType(
2136 jcompression_type_value);
2137}
2138
2139/*
2140 * Class: org_rocksdb_Options
2141 * Method: bottommostCompressionType
2142 * Signature: (J)B
2143 */
494da23a
TL
2144jbyte Java_org_rocksdb_Options_bottommostCompressionType(
2145 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
2146 auto* options = reinterpret_cast<rocksdb::Options*>(jhandle);
2147 return rocksdb::CompressionTypeJni::toJavaCompressionType(
2148 options->bottommost_compression);
2149}
2150
11fdf7f2
TL
2151/*
2152 * Class: org_rocksdb_Options
2153 * Method: setBottommostCompressionOptions
2154 * Signature: (JJ)V
2155 */
2156void Java_org_rocksdb_Options_setBottommostCompressionOptions(
494da23a 2157 JNIEnv*, jobject, jlong jhandle,
11fdf7f2
TL
2158 jlong jbottommost_compression_options_handle) {
2159 auto* options = reinterpret_cast<rocksdb::Options*>(jhandle);
2160 auto* bottommost_compression_options =
2161 reinterpret_cast<rocksdb::CompressionOptions*>(
2162 jbottommost_compression_options_handle);
2163 options->bottommost_compression_opts = *bottommost_compression_options;
2164}
2165
7c673cae
FG
2166/*
2167 * Class: org_rocksdb_Options
2168 * Method: setCompressionOptions
2169 * Signature: (JJ)V
2170 */
2171void Java_org_rocksdb_Options_setCompressionOptions(
494da23a 2172 JNIEnv*, jobject, jlong jhandle, jlong jcompression_options_handle) {
7c673cae 2173 auto* options = reinterpret_cast<rocksdb::Options*>(jhandle);
11fdf7f2
TL
2174 auto* compression_options = reinterpret_cast<rocksdb::CompressionOptions*>(
2175 jcompression_options_handle);
7c673cae
FG
2176 options->compression_opts = *compression_options;
2177}
2178
2179/*
2180 * Class: org_rocksdb_Options
2181 * Method: setCompactionStyle
2182 * Signature: (JB)V
2183 */
494da23a
TL
2184void Java_org_rocksdb_Options_setCompactionStyle(
2185 JNIEnv*, jobject, jlong jhandle, jbyte jcompaction_style) {
2186 auto* options = reinterpret_cast<rocksdb::Options*>(jhandle);
2187 options->compaction_style =
2188 rocksdb::CompactionStyleJni::toCppCompactionStyle(
2189 jcompaction_style);
7c673cae
FG
2190}
2191
2192/*
2193 * Class: org_rocksdb_Options
2194 * Method: compactionStyle
2195 * Signature: (J)B
2196 */
494da23a
TL
2197jbyte Java_org_rocksdb_Options_compactionStyle(
2198 JNIEnv*, jobject, jlong jhandle) {
2199 auto* options = reinterpret_cast<rocksdb::Options*>(jhandle);
2200 return rocksdb::CompactionStyleJni::toJavaCompactionStyle(
2201 options->compaction_style);
7c673cae
FG
2202}
2203
2204/*
2205 * Class: org_rocksdb_Options
2206 * Method: setMaxTableFilesSizeFIFO
2207 * Signature: (JJ)V
2208 */
2209void Java_org_rocksdb_Options_setMaxTableFilesSizeFIFO(
494da23a 2210 JNIEnv*, jobject, jlong jhandle, jlong jmax_table_files_size) {
11fdf7f2
TL
2211 reinterpret_cast<rocksdb::Options*>(jhandle)
2212 ->compaction_options_fifo.max_table_files_size =
2213 static_cast<uint64_t>(jmax_table_files_size);
7c673cae
FG
2214}
2215
2216/*
2217 * Class: org_rocksdb_Options
2218 * Method: maxTableFilesSizeFIFO
2219 * Signature: (J)J
2220 */
494da23a
TL
2221jlong Java_org_rocksdb_Options_maxTableFilesSizeFIFO(
2222 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
2223 return reinterpret_cast<rocksdb::Options*>(jhandle)
2224 ->compaction_options_fifo.max_table_files_size;
7c673cae
FG
2225}
2226
2227/*
2228 * Class: org_rocksdb_Options
2229 * Method: numLevels
2230 * Signature: (J)I
2231 */
494da23a
TL
2232jint Java_org_rocksdb_Options_numLevels(
2233 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
2234 return reinterpret_cast<rocksdb::Options*>(jhandle)->num_levels;
2235}
2236
2237/*
2238 * Class: org_rocksdb_Options
2239 * Method: setNumLevels
2240 * Signature: (JI)V
2241 */
494da23a
TL
2242void Java_org_rocksdb_Options_setNumLevels(
2243 JNIEnv*, jobject, jlong jhandle, jint jnum_levels) {
7c673cae
FG
2244 reinterpret_cast<rocksdb::Options*>(jhandle)->num_levels =
2245 static_cast<int>(jnum_levels);
2246}
2247
2248/*
2249 * Class: org_rocksdb_Options
2250 * Method: levelZeroFileNumCompactionTrigger
2251 * Signature: (J)I
2252 */
2253jint Java_org_rocksdb_Options_levelZeroFileNumCompactionTrigger(
494da23a 2254 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
2255 return reinterpret_cast<rocksdb::Options*>(jhandle)
2256 ->level0_file_num_compaction_trigger;
7c673cae
FG
2257}
2258
2259/*
2260 * Class: org_rocksdb_Options
2261 * Method: setLevelZeroFileNumCompactionTrigger
2262 * Signature: (JI)V
2263 */
2264void Java_org_rocksdb_Options_setLevelZeroFileNumCompactionTrigger(
494da23a 2265 JNIEnv*, jobject, jlong jhandle,
7c673cae 2266 jint jlevel0_file_num_compaction_trigger) {
11fdf7f2
TL
2267 reinterpret_cast<rocksdb::Options*>(jhandle)
2268 ->level0_file_num_compaction_trigger =
2269 static_cast<int>(jlevel0_file_num_compaction_trigger);
7c673cae
FG
2270}
2271
2272/*
2273 * Class: org_rocksdb_Options
2274 * Method: levelZeroSlowdownWritesTrigger
2275 * Signature: (J)I
2276 */
494da23a
TL
2277jint Java_org_rocksdb_Options_levelZeroSlowdownWritesTrigger(
2278 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
2279 return reinterpret_cast<rocksdb::Options*>(jhandle)
2280 ->level0_slowdown_writes_trigger;
7c673cae
FG
2281}
2282
2283/*
2284 * Class: org_rocksdb_Options
2285 * Method: setLevelSlowdownWritesTrigger
2286 * Signature: (JI)V
2287 */
2288void Java_org_rocksdb_Options_setLevelZeroSlowdownWritesTrigger(
494da23a 2289 JNIEnv*, jobject, jlong jhandle, jint jlevel0_slowdown_writes_trigger) {
11fdf7f2
TL
2290 reinterpret_cast<rocksdb::Options*>(jhandle)->level0_slowdown_writes_trigger =
2291 static_cast<int>(jlevel0_slowdown_writes_trigger);
7c673cae
FG
2292}
2293
2294/*
2295 * Class: org_rocksdb_Options
2296 * Method: levelZeroStopWritesTrigger
2297 * Signature: (J)I
2298 */
494da23a
TL
2299jint Java_org_rocksdb_Options_levelZeroStopWritesTrigger(
2300 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
2301 return reinterpret_cast<rocksdb::Options*>(jhandle)
2302 ->level0_stop_writes_trigger;
7c673cae
FG
2303}
2304
2305/*
2306 * Class: org_rocksdb_Options
2307 * Method: setLevelStopWritesTrigger
2308 * Signature: (JI)V
2309 */
2310void Java_org_rocksdb_Options_setLevelZeroStopWritesTrigger(
494da23a 2311 JNIEnv*, jobject, jlong jhandle, jint jlevel0_stop_writes_trigger) {
7c673cae
FG
2312 reinterpret_cast<rocksdb::Options*>(jhandle)->level0_stop_writes_trigger =
2313 static_cast<int>(jlevel0_stop_writes_trigger);
2314}
2315
2316/*
2317 * Class: org_rocksdb_Options
2318 * Method: targetFileSizeBase
2319 * Signature: (J)J
2320 */
494da23a
TL
2321jlong Java_org_rocksdb_Options_targetFileSizeBase(
2322 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
2323 return reinterpret_cast<rocksdb::Options*>(jhandle)->target_file_size_base;
2324}
2325
2326/*
2327 * Class: org_rocksdb_Options
2328 * Method: setTargetFileSizeBase
2329 * Signature: (JJ)V
2330 */
2331void Java_org_rocksdb_Options_setTargetFileSizeBase(
494da23a 2332 JNIEnv*, jobject, jlong jhandle, jlong jtarget_file_size_base) {
7c673cae
FG
2333 reinterpret_cast<rocksdb::Options*>(jhandle)->target_file_size_base =
2334 static_cast<uint64_t>(jtarget_file_size_base);
2335}
2336
2337/*
2338 * Class: org_rocksdb_Options
2339 * Method: targetFileSizeMultiplier
2340 * Signature: (J)I
2341 */
494da23a
TL
2342jint Java_org_rocksdb_Options_targetFileSizeMultiplier(
2343 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
2344 return reinterpret_cast<rocksdb::Options*>(jhandle)
2345 ->target_file_size_multiplier;
7c673cae
FG
2346}
2347
2348/*
2349 * Class: org_rocksdb_Options
2350 * Method: setTargetFileSizeMultiplier
2351 * Signature: (JI)V
2352 */
2353void Java_org_rocksdb_Options_setTargetFileSizeMultiplier(
494da23a 2354 JNIEnv*, jobject, jlong jhandle, jint jtarget_file_size_multiplier) {
11fdf7f2
TL
2355 reinterpret_cast<rocksdb::Options*>(jhandle)->target_file_size_multiplier =
2356 static_cast<int>(jtarget_file_size_multiplier);
7c673cae
FG
2357}
2358
2359/*
2360 * Class: org_rocksdb_Options
2361 * Method: maxBytesForLevelBase
2362 * Signature: (J)J
2363 */
494da23a
TL
2364jlong Java_org_rocksdb_Options_maxBytesForLevelBase(
2365 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2 2366 return reinterpret_cast<rocksdb::Options*>(jhandle)->max_bytes_for_level_base;
7c673cae
FG
2367}
2368
2369/*
2370 * Class: org_rocksdb_Options
2371 * Method: setMaxBytesForLevelBase
2372 * Signature: (JJ)V
2373 */
2374void Java_org_rocksdb_Options_setMaxBytesForLevelBase(
494da23a 2375 JNIEnv*, jobject, jlong jhandle, jlong jmax_bytes_for_level_base) {
11fdf7f2
TL
2376 reinterpret_cast<rocksdb::Options*>(jhandle)->max_bytes_for_level_base =
2377 static_cast<int64_t>(jmax_bytes_for_level_base);
7c673cae
FG
2378}
2379
2380/*
2381 * Class: org_rocksdb_Options
2382 * Method: levelCompactionDynamicLevelBytes
2383 * Signature: (J)Z
2384 */
2385jboolean Java_org_rocksdb_Options_levelCompactionDynamicLevelBytes(
494da23a 2386 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
2387 return reinterpret_cast<rocksdb::Options*>(jhandle)
2388 ->level_compaction_dynamic_level_bytes;
7c673cae
FG
2389}
2390
2391/*
2392 * Class: org_rocksdb_Options
2393 * Method: setLevelCompactionDynamicLevelBytes
2394 * Signature: (JZ)V
2395 */
2396void Java_org_rocksdb_Options_setLevelCompactionDynamicLevelBytes(
494da23a 2397 JNIEnv*, jobject, jlong jhandle, jboolean jenable_dynamic_level_bytes) {
11fdf7f2
TL
2398 reinterpret_cast<rocksdb::Options*>(jhandle)
2399 ->level_compaction_dynamic_level_bytes = (jenable_dynamic_level_bytes);
7c673cae
FG
2400}
2401
2402/*
2403 * Class: org_rocksdb_Options
2404 * Method: maxBytesForLevelMultiplier
2405 * Signature: (J)D
2406 */
494da23a
TL
2407jdouble Java_org_rocksdb_Options_maxBytesForLevelMultiplier(
2408 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
2409 return reinterpret_cast<rocksdb::Options*>(jhandle)
2410 ->max_bytes_for_level_multiplier;
7c673cae
FG
2411}
2412
2413/*
2414 * Class: org_rocksdb_Options
2415 * Method: setMaxBytesForLevelMultiplier
2416 * Signature: (JD)V
2417 */
2418void Java_org_rocksdb_Options_setMaxBytesForLevelMultiplier(
494da23a 2419 JNIEnv*, jobject, jlong jhandle, jdouble jmax_bytes_for_level_multiplier) {
7c673cae
FG
2420 reinterpret_cast<rocksdb::Options*>(jhandle)->max_bytes_for_level_multiplier =
2421 static_cast<double>(jmax_bytes_for_level_multiplier);
2422}
2423
2424/*
2425 * Class: org_rocksdb_Options
2426 * Method: maxCompactionBytes
2427 * Signature: (J)I
2428 */
494da23a
TL
2429jlong Java_org_rocksdb_Options_maxCompactionBytes(
2430 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
2431 return static_cast<jlong>(
2432 reinterpret_cast<rocksdb::Options*>(jhandle)->max_compaction_bytes);
2433}
2434
2435/*
2436 * Class: org_rocksdb_Options
2437 * Method: setMaxCompactionBytes
2438 * Signature: (JI)V
2439 */
2440void Java_org_rocksdb_Options_setMaxCompactionBytes(
494da23a 2441 JNIEnv*, jobject, jlong jhandle, jlong jmax_compaction_bytes) {
7c673cae
FG
2442 reinterpret_cast<rocksdb::Options*>(jhandle)->max_compaction_bytes =
2443 static_cast<uint64_t>(jmax_compaction_bytes);
2444}
2445
2446/*
2447 * Class: org_rocksdb_Options
2448 * Method: arenaBlockSize
2449 * Signature: (J)J
2450 */
494da23a
TL
2451jlong Java_org_rocksdb_Options_arenaBlockSize(
2452 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
2453 return reinterpret_cast<rocksdb::Options*>(jhandle)->arena_block_size;
2454}
2455
2456/*
2457 * Class: org_rocksdb_Options
2458 * Method: setArenaBlockSize
2459 * Signature: (JJ)V
2460 */
494da23a
TL
2461void Java_org_rocksdb_Options_setArenaBlockSize(
2462 JNIEnv* env, jobject, jlong jhandle, jlong jarena_block_size) {
2463 auto s = rocksdb::JniUtil::check_if_jlong_fits_size_t(jarena_block_size);
7c673cae
FG
2464 if (s.ok()) {
2465 reinterpret_cast<rocksdb::Options*>(jhandle)->arena_block_size =
2466 jarena_block_size;
2467 } else {
2468 rocksdb::IllegalArgumentExceptionJni::ThrowNew(env, s);
2469 }
2470}
2471
2472/*
2473 * Class: org_rocksdb_Options
2474 * Method: disableAutoCompactions
2475 * Signature: (J)Z
2476 */
494da23a
TL
2477jboolean Java_org_rocksdb_Options_disableAutoCompactions(
2478 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2 2479 return reinterpret_cast<rocksdb::Options*>(jhandle)->disable_auto_compactions;
7c673cae
FG
2480}
2481
2482/*
2483 * Class: org_rocksdb_Options
2484 * Method: setDisableAutoCompactions
2485 * Signature: (JZ)V
2486 */
2487void Java_org_rocksdb_Options_setDisableAutoCompactions(
494da23a 2488 JNIEnv*, jobject, jlong jhandle, jboolean jdisable_auto_compactions) {
11fdf7f2
TL
2489 reinterpret_cast<rocksdb::Options*>(jhandle)->disable_auto_compactions =
2490 static_cast<bool>(jdisable_auto_compactions);
7c673cae
FG
2491}
2492
2493/*
2494 * Class: org_rocksdb_Options
2495 * Method: maxSequentialSkipInIterations
2496 * Signature: (J)J
2497 */
494da23a
TL
2498jlong Java_org_rocksdb_Options_maxSequentialSkipInIterations(
2499 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
2500 return reinterpret_cast<rocksdb::Options*>(jhandle)
2501 ->max_sequential_skip_in_iterations;
7c673cae
FG
2502}
2503
2504/*
2505 * Class: org_rocksdb_Options
2506 * Method: setMaxSequentialSkipInIterations
2507 * Signature: (JJ)V
2508 */
2509void Java_org_rocksdb_Options_setMaxSequentialSkipInIterations(
494da23a 2510 JNIEnv*, jobject, jlong jhandle,
7c673cae 2511 jlong jmax_sequential_skip_in_iterations) {
11fdf7f2
TL
2512 reinterpret_cast<rocksdb::Options*>(jhandle)
2513 ->max_sequential_skip_in_iterations =
2514 static_cast<int64_t>(jmax_sequential_skip_in_iterations);
7c673cae
FG
2515}
2516
2517/*
2518 * Class: org_rocksdb_Options
2519 * Method: inplaceUpdateSupport
2520 * Signature: (J)Z
2521 */
494da23a
TL
2522jboolean Java_org_rocksdb_Options_inplaceUpdateSupport(
2523 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2 2524 return reinterpret_cast<rocksdb::Options*>(jhandle)->inplace_update_support;
7c673cae
FG
2525}
2526
2527/*
2528 * Class: org_rocksdb_Options
2529 * Method: setInplaceUpdateSupport
2530 * Signature: (JZ)V
2531 */
2532void Java_org_rocksdb_Options_setInplaceUpdateSupport(
494da23a 2533 JNIEnv*, jobject, jlong jhandle, jboolean jinplace_update_support) {
11fdf7f2
TL
2534 reinterpret_cast<rocksdb::Options*>(jhandle)->inplace_update_support =
2535 static_cast<bool>(jinplace_update_support);
7c673cae
FG
2536}
2537
2538/*
2539 * Class: org_rocksdb_Options
2540 * Method: inplaceUpdateNumLocks
2541 * Signature: (J)J
2542 */
494da23a
TL
2543jlong Java_org_rocksdb_Options_inplaceUpdateNumLocks(
2544 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2 2545 return reinterpret_cast<rocksdb::Options*>(jhandle)->inplace_update_num_locks;
7c673cae
FG
2546}
2547
2548/*
2549 * Class: org_rocksdb_Options
2550 * Method: setInplaceUpdateNumLocks
2551 * Signature: (JJ)V
2552 */
2553void Java_org_rocksdb_Options_setInplaceUpdateNumLocks(
494da23a
TL
2554 JNIEnv* env, jobject, jlong jhandle, jlong jinplace_update_num_locks) {
2555 auto s =
2556 rocksdb::JniUtil::check_if_jlong_fits_size_t(jinplace_update_num_locks);
7c673cae
FG
2557 if (s.ok()) {
2558 reinterpret_cast<rocksdb::Options*>(jhandle)->inplace_update_num_locks =
2559 jinplace_update_num_locks;
2560 } else {
2561 rocksdb::IllegalArgumentExceptionJni::ThrowNew(env, s);
2562 }
2563}
2564
2565/*
2566 * Class: org_rocksdb_Options
2567 * Method: memtablePrefixBloomSizeRatio
2568 * Signature: (J)I
2569 */
494da23a
TL
2570jdouble Java_org_rocksdb_Options_memtablePrefixBloomSizeRatio(
2571 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
2572 return reinterpret_cast<rocksdb::Options*>(jhandle)
2573 ->memtable_prefix_bloom_size_ratio;
2574}
2575
2576/*
2577 * Class: org_rocksdb_Options
2578 * Method: setMemtablePrefixBloomSizeRatio
2579 * Signature: (JI)V
2580 */
2581void Java_org_rocksdb_Options_setMemtablePrefixBloomSizeRatio(
494da23a 2582 JNIEnv*, jobject, jlong jhandle,
7c673cae
FG
2583 jdouble jmemtable_prefix_bloom_size_ratio) {
2584 reinterpret_cast<rocksdb::Options*>(jhandle)
2585 ->memtable_prefix_bloom_size_ratio =
2586 static_cast<double>(jmemtable_prefix_bloom_size_ratio);
2587}
2588
2589/*
2590 * Class: org_rocksdb_Options
2591 * Method: bloomLocality
2592 * Signature: (J)I
2593 */
494da23a
TL
2594jint Java_org_rocksdb_Options_bloomLocality(
2595 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
2596 return reinterpret_cast<rocksdb::Options*>(jhandle)->bloom_locality;
2597}
2598
2599/*
2600 * Class: org_rocksdb_Options
2601 * Method: setBloomLocality
2602 * Signature: (JI)V
2603 */
494da23a
TL
2604void Java_org_rocksdb_Options_setBloomLocality(
2605 JNIEnv*, jobject, jlong jhandle, jint jbloom_locality) {
7c673cae
FG
2606 reinterpret_cast<rocksdb::Options*>(jhandle)->bloom_locality =
2607 static_cast<int32_t>(jbloom_locality);
2608}
2609
2610/*
2611 * Class: org_rocksdb_Options
2612 * Method: maxSuccessiveMerges
2613 * Signature: (J)J
2614 */
494da23a
TL
2615jlong Java_org_rocksdb_Options_maxSuccessiveMerges(
2616 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
2617 return reinterpret_cast<rocksdb::Options*>(jhandle)->max_successive_merges;
2618}
2619
2620/*
2621 * Class: org_rocksdb_Options
2622 * Method: setMaxSuccessiveMerges
2623 * Signature: (JJ)V
2624 */
2625void Java_org_rocksdb_Options_setMaxSuccessiveMerges(
494da23a
TL
2626 JNIEnv* env, jobject, jlong jhandle, jlong jmax_successive_merges) {
2627 auto s =
2628 rocksdb::JniUtil::check_if_jlong_fits_size_t(jmax_successive_merges);
7c673cae
FG
2629 if (s.ok()) {
2630 reinterpret_cast<rocksdb::Options*>(jhandle)->max_successive_merges =
2631 jmax_successive_merges;
2632 } else {
2633 rocksdb::IllegalArgumentExceptionJni::ThrowNew(env, s);
2634 }
2635}
2636
2637/*
2638 * Class: org_rocksdb_Options
2639 * Method: optimizeFiltersForHits
2640 * Signature: (J)Z
2641 */
494da23a
TL
2642jboolean Java_org_rocksdb_Options_optimizeFiltersForHits(
2643 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
2644 return reinterpret_cast<rocksdb::Options*>(jhandle)
2645 ->optimize_filters_for_hits;
7c673cae
FG
2646}
2647
2648/*
2649 * Class: org_rocksdb_Options
2650 * Method: setOptimizeFiltersForHits
2651 * Signature: (JZ)V
2652 */
2653void Java_org_rocksdb_Options_setOptimizeFiltersForHits(
494da23a 2654 JNIEnv*, jobject, jlong jhandle, jboolean joptimize_filters_for_hits) {
11fdf7f2
TL
2655 reinterpret_cast<rocksdb::Options*>(jhandle)->optimize_filters_for_hits =
2656 static_cast<bool>(joptimize_filters_for_hits);
7c673cae
FG
2657}
2658
2659/*
2660 * Class: org_rocksdb_Options
2661 * Method: optimizeForSmallDb
2662 * Signature: (J)V
2663 */
494da23a
TL
2664void Java_org_rocksdb_Options_optimizeForSmallDb(
2665 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
2666 reinterpret_cast<rocksdb::Options*>(jhandle)->OptimizeForSmallDb();
2667}
2668
2669/*
2670 * Class: org_rocksdb_Options
2671 * Method: optimizeForPointLookup
2672 * Signature: (JJ)V
2673 */
2674void Java_org_rocksdb_Options_optimizeForPointLookup(
494da23a 2675 JNIEnv*, jobject, jlong jhandle, jlong block_cache_size_mb) {
11fdf7f2
TL
2676 reinterpret_cast<rocksdb::Options*>(jhandle)->OptimizeForPointLookup(
2677 block_cache_size_mb);
7c673cae
FG
2678}
2679
2680/*
2681 * Class: org_rocksdb_Options
2682 * Method: optimizeLevelStyleCompaction
2683 * Signature: (JJ)V
2684 */
2685void Java_org_rocksdb_Options_optimizeLevelStyleCompaction(
494da23a 2686 JNIEnv*, jobject, jlong jhandle, jlong memtable_memory_budget) {
11fdf7f2
TL
2687 reinterpret_cast<rocksdb::Options*>(jhandle)->OptimizeLevelStyleCompaction(
2688 memtable_memory_budget);
7c673cae
FG
2689}
2690
2691/*
2692 * Class: org_rocksdb_Options
2693 * Method: optimizeUniversalStyleCompaction
2694 * Signature: (JJ)V
2695 */
2696void Java_org_rocksdb_Options_optimizeUniversalStyleCompaction(
494da23a 2697 JNIEnv*, jobject, jlong jhandle, jlong memtable_memory_budget) {
11fdf7f2
TL
2698 reinterpret_cast<rocksdb::Options*>(jhandle)
2699 ->OptimizeUniversalStyleCompaction(memtable_memory_budget);
7c673cae
FG
2700}
2701
2702/*
2703 * Class: org_rocksdb_Options
2704 * Method: prepareForBulkLoad
2705 * Signature: (J)V
2706 */
494da23a
TL
2707void Java_org_rocksdb_Options_prepareForBulkLoad(
2708 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2 2709 reinterpret_cast<rocksdb::Options*>(jhandle)->PrepareForBulkLoad();
7c673cae
FG
2710}
2711
2712/*
2713 * Class: org_rocksdb_Options
2714 * Method: memtableHugePageSize
2715 * Signature: (J)J
2716 */
494da23a
TL
2717jlong Java_org_rocksdb_Options_memtableHugePageSize(
2718 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2 2719 return reinterpret_cast<rocksdb::Options*>(jhandle)->memtable_huge_page_size;
7c673cae
FG
2720}
2721
2722/*
2723 * Class: org_rocksdb_Options
2724 * Method: setMemtableHugePageSize
2725 * Signature: (JJ)V
2726 */
2727void Java_org_rocksdb_Options_setMemtableHugePageSize(
494da23a
TL
2728 JNIEnv* env, jobject, jlong jhandle, jlong jmemtable_huge_page_size) {
2729 auto s =
2730 rocksdb::JniUtil::check_if_jlong_fits_size_t(jmemtable_huge_page_size);
7c673cae 2731 if (s.ok()) {
11fdf7f2
TL
2732 reinterpret_cast<rocksdb::Options*>(jhandle)->memtable_huge_page_size =
2733 jmemtable_huge_page_size;
7c673cae
FG
2734 } else {
2735 rocksdb::IllegalArgumentExceptionJni::ThrowNew(env, s);
2736 }
2737}
2738
2739/*
2740 * Class: org_rocksdb_Options
2741 * Method: softPendingCompactionBytesLimit
2742 * Signature: (J)J
2743 */
494da23a
TL
2744jlong Java_org_rocksdb_Options_softPendingCompactionBytesLimit(
2745 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
2746 return reinterpret_cast<rocksdb::Options*>(jhandle)
2747 ->soft_pending_compaction_bytes_limit;
7c673cae
FG
2748}
2749
2750/*
2751 * Class: org_rocksdb_Options
2752 * Method: setSoftPendingCompactionBytesLimit
2753 * Signature: (JJ)V
2754 */
2755void Java_org_rocksdb_Options_setSoftPendingCompactionBytesLimit(
494da23a 2756 JNIEnv*, jobject, jlong jhandle,
11fdf7f2
TL
2757 jlong jsoft_pending_compaction_bytes_limit) {
2758 reinterpret_cast<rocksdb::Options*>(jhandle)
2759 ->soft_pending_compaction_bytes_limit =
2760 static_cast<int64_t>(jsoft_pending_compaction_bytes_limit);
7c673cae
FG
2761}
2762
2763/*
2764 * Class: org_rocksdb_Options
2765 * Method: softHardCompactionBytesLimit
2766 * Signature: (J)J
2767 */
494da23a
TL
2768jlong Java_org_rocksdb_Options_hardPendingCompactionBytesLimit(
2769 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
2770 return reinterpret_cast<rocksdb::Options*>(jhandle)
2771 ->hard_pending_compaction_bytes_limit;
7c673cae
FG
2772}
2773
2774/*
2775 * Class: org_rocksdb_Options
2776 * Method: setHardPendingCompactionBytesLimit
2777 * Signature: (JJ)V
2778 */
2779void Java_org_rocksdb_Options_setHardPendingCompactionBytesLimit(
494da23a 2780 JNIEnv*, jobject, jlong jhandle,
11fdf7f2
TL
2781 jlong jhard_pending_compaction_bytes_limit) {
2782 reinterpret_cast<rocksdb::Options*>(jhandle)
2783 ->hard_pending_compaction_bytes_limit =
2784 static_cast<int64_t>(jhard_pending_compaction_bytes_limit);
7c673cae
FG
2785}
2786
2787/*
2788 * Class: org_rocksdb_Options
2789 * Method: level0FileNumCompactionTrigger
2790 * Signature: (J)I
2791 */
494da23a
TL
2792jint Java_org_rocksdb_Options_level0FileNumCompactionTrigger(
2793 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
2794 return reinterpret_cast<rocksdb::Options*>(jhandle)
2795 ->level0_file_num_compaction_trigger;
7c673cae
FG
2796}
2797
2798/*
2799 * Class: org_rocksdb_Options
2800 * Method: setLevel0FileNumCompactionTrigger
2801 * Signature: (JI)V
2802 */
2803void Java_org_rocksdb_Options_setLevel0FileNumCompactionTrigger(
494da23a 2804 JNIEnv*, jobject, jlong jhandle,
7c673cae 2805 jint jlevel0_file_num_compaction_trigger) {
11fdf7f2
TL
2806 reinterpret_cast<rocksdb::Options*>(jhandle)
2807 ->level0_file_num_compaction_trigger =
2808 static_cast<int32_t>(jlevel0_file_num_compaction_trigger);
7c673cae
FG
2809}
2810
2811/*
2812 * Class: org_rocksdb_Options
2813 * Method: level0SlowdownWritesTrigger
2814 * Signature: (J)I
2815 */
494da23a
TL
2816jint Java_org_rocksdb_Options_level0SlowdownWritesTrigger(
2817 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
2818 return reinterpret_cast<rocksdb::Options*>(jhandle)
2819 ->level0_slowdown_writes_trigger;
7c673cae
FG
2820}
2821
2822/*
2823 * Class: org_rocksdb_Options
2824 * Method: setLevel0SlowdownWritesTrigger
2825 * Signature: (JI)V
2826 */
2827void Java_org_rocksdb_Options_setLevel0SlowdownWritesTrigger(
494da23a 2828 JNIEnv*, jobject, jlong jhandle, jint jlevel0_slowdown_writes_trigger) {
11fdf7f2
TL
2829 reinterpret_cast<rocksdb::Options*>(jhandle)->level0_slowdown_writes_trigger =
2830 static_cast<int32_t>(jlevel0_slowdown_writes_trigger);
7c673cae
FG
2831}
2832
2833/*
2834 * Class: org_rocksdb_Options
2835 * Method: level0StopWritesTrigger
2836 * Signature: (J)I
2837 */
494da23a
TL
2838jint Java_org_rocksdb_Options_level0StopWritesTrigger(
2839 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
2840 return reinterpret_cast<rocksdb::Options*>(jhandle)
2841 ->level0_stop_writes_trigger;
7c673cae
FG
2842}
2843
2844/*
2845 * Class: org_rocksdb_Options
2846 * Method: setLevel0StopWritesTrigger
2847 * Signature: (JI)V
2848 */
2849void Java_org_rocksdb_Options_setLevel0StopWritesTrigger(
494da23a 2850 JNIEnv*, jobject, jlong jhandle, jint jlevel0_stop_writes_trigger) {
11fdf7f2
TL
2851 reinterpret_cast<rocksdb::Options*>(jhandle)->level0_stop_writes_trigger =
2852 static_cast<int32_t>(jlevel0_stop_writes_trigger);
7c673cae
FG
2853}
2854
2855/*
2856 * Class: org_rocksdb_Options
2857 * Method: maxBytesForLevelMultiplierAdditional
2858 * Signature: (J)[I
2859 */
2860jintArray Java_org_rocksdb_Options_maxBytesForLevelMultiplierAdditional(
494da23a 2861 JNIEnv* env, jobject, jlong jhandle) {
11fdf7f2
TL
2862 auto mbflma = reinterpret_cast<rocksdb::Options*>(jhandle)
2863 ->max_bytes_for_level_multiplier_additional;
7c673cae
FG
2864
2865 const size_t size = mbflma.size();
2866
2867 jint* additionals = new jint[size];
2868 for (size_t i = 0; i < size; i++) {
2869 additionals[i] = static_cast<jint>(mbflma[i]);
2870 }
2871
2872 jsize jlen = static_cast<jsize>(size);
2873 jintArray result = env->NewIntArray(jlen);
11fdf7f2
TL
2874 if (result == nullptr) {
2875 // exception thrown: OutOfMemoryError
2876 delete[] additionals;
2877 return nullptr;
7c673cae
FG
2878 }
2879
2880 env->SetIntArrayRegion(result, 0, jlen, additionals);
11fdf7f2
TL
2881 if (env->ExceptionCheck()) {
2882 // exception thrown: ArrayIndexOutOfBoundsException
2883 env->DeleteLocalRef(result);
2884 delete[] additionals;
2885 return nullptr;
7c673cae
FG
2886 }
2887
11fdf7f2 2888 delete[] additionals;
7c673cae
FG
2889
2890 return result;
2891}
2892
2893/*
2894 * Class: org_rocksdb_Options
2895 * Method: setMaxBytesForLevelMultiplierAdditional
2896 * Signature: (J[I)V
2897 */
2898void Java_org_rocksdb_Options_setMaxBytesForLevelMultiplierAdditional(
494da23a 2899 JNIEnv* env, jobject, jlong jhandle,
7c673cae
FG
2900 jintArray jmax_bytes_for_level_multiplier_additional) {
2901 jsize len = env->GetArrayLength(jmax_bytes_for_level_multiplier_additional);
11fdf7f2
TL
2902 jint* additionals = env->GetIntArrayElements(
2903 jmax_bytes_for_level_multiplier_additional, nullptr);
2904 if (additionals == nullptr) {
7c673cae
FG
2905 // exception thrown: OutOfMemoryError
2906 return;
2907 }
2908
2909 auto* opt = reinterpret_cast<rocksdb::Options*>(jhandle);
2910 opt->max_bytes_for_level_multiplier_additional.clear();
2911 for (jsize i = 0; i < len; i++) {
11fdf7f2
TL
2912 opt->max_bytes_for_level_multiplier_additional.push_back(
2913 static_cast<int32_t>(additionals[i]));
7c673cae
FG
2914 }
2915
2916 env->ReleaseIntArrayElements(jmax_bytes_for_level_multiplier_additional,
11fdf7f2 2917 additionals, JNI_ABORT);
7c673cae
FG
2918}
2919
2920/*
2921 * Class: org_rocksdb_Options
2922 * Method: paranoidFileChecks
2923 * Signature: (J)Z
2924 */
494da23a
TL
2925jboolean Java_org_rocksdb_Options_paranoidFileChecks(
2926 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2 2927 return reinterpret_cast<rocksdb::Options*>(jhandle)->paranoid_file_checks;
7c673cae
FG
2928}
2929
2930/*
2931 * Class: org_rocksdb_Options
2932 * Method: setParanoidFileChecks
2933 * Signature: (JZ)V
2934 */
2935void Java_org_rocksdb_Options_setParanoidFileChecks(
494da23a 2936 JNIEnv*, jobject, jlong jhandle, jboolean jparanoid_file_checks) {
11fdf7f2
TL
2937 reinterpret_cast<rocksdb::Options*>(jhandle)->paranoid_file_checks =
2938 static_cast<bool>(jparanoid_file_checks);
7c673cae
FG
2939}
2940
2941/*
2942 * Class: org_rocksdb_Options
2943 * Method: setCompactionPriority
2944 * Signature: (JB)V
2945 */
2946void Java_org_rocksdb_Options_setCompactionPriority(
494da23a 2947 JNIEnv*, jobject, jlong jhandle, jbyte jcompaction_priority_value) {
7c673cae
FG
2948 auto* opts = reinterpret_cast<rocksdb::Options*>(jhandle);
2949 opts->compaction_pri =
11fdf7f2
TL
2950 rocksdb::CompactionPriorityJni::toCppCompactionPriority(
2951 jcompaction_priority_value);
7c673cae
FG
2952}
2953
2954/*
2955 * Class: org_rocksdb_Options
2956 * Method: compactionPriority
2957 * Signature: (J)B
2958 */
494da23a
TL
2959jbyte Java_org_rocksdb_Options_compactionPriority(
2960 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
2961 auto* opts = reinterpret_cast<rocksdb::Options*>(jhandle);
2962 return rocksdb::CompactionPriorityJni::toJavaCompactionPriority(
2963 opts->compaction_pri);
2964}
2965
2966/*
2967 * Class: org_rocksdb_Options
2968 * Method: setReportBgIoStats
2969 * Signature: (JZ)V
2970 */
494da23a
TL
2971void Java_org_rocksdb_Options_setReportBgIoStats(
2972 JNIEnv*, jobject, jlong jhandle, jboolean jreport_bg_io_stats) {
7c673cae
FG
2973 auto* opts = reinterpret_cast<rocksdb::Options*>(jhandle);
2974 opts->report_bg_io_stats = static_cast<bool>(jreport_bg_io_stats);
2975}
2976
2977/*
2978 * Class: org_rocksdb_Options
2979 * Method: reportBgIoStats
2980 * Signature: (J)Z
2981 */
494da23a
TL
2982jboolean Java_org_rocksdb_Options_reportBgIoStats(
2983 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
2984 auto* opts = reinterpret_cast<rocksdb::Options*>(jhandle);
2985 return static_cast<bool>(opts->report_bg_io_stats);
2986}
2987
494da23a
TL
2988/*
2989 * Class: org_rocksdb_Options
2990 * Method: setTtl
2991 * Signature: (JJ)V
2992 */
2993void Java_org_rocksdb_Options_setTtl(
2994 JNIEnv*, jobject, jlong jhandle, jlong jttl) {
2995 auto* opts = reinterpret_cast<rocksdb::Options*>(jhandle);
2996 opts->ttl = static_cast<uint64_t>(jttl);
2997}
2998
2999/*
3000 * Class: org_rocksdb_Options
3001 * Method: ttl
3002 * Signature: (J)J
3003 */
3004jlong Java_org_rocksdb_Options_ttl(
3005 JNIEnv*, jobject, jlong jhandle) {
3006 auto* opts = reinterpret_cast<rocksdb::Options*>(jhandle);
3007 return static_cast<jlong>(opts->ttl);
3008}
3009
7c673cae
FG
3010/*
3011 * Class: org_rocksdb_Options
3012 * Method: setCompactionOptionsUniversal
3013 * Signature: (JJ)V
3014 */
3015void Java_org_rocksdb_Options_setCompactionOptionsUniversal(
494da23a 3016 JNIEnv*, jobject, jlong jhandle,
7c673cae
FG
3017 jlong jcompaction_options_universal_handle) {
3018 auto* opts = reinterpret_cast<rocksdb::Options*>(jhandle);
11fdf7f2
TL
3019 auto* opts_uni = reinterpret_cast<rocksdb::CompactionOptionsUniversal*>(
3020 jcompaction_options_universal_handle);
7c673cae
FG
3021 opts->compaction_options_universal = *opts_uni;
3022}
3023
3024/*
3025 * Class: org_rocksdb_Options
3026 * Method: setCompactionOptionsFIFO
3027 * Signature: (JJ)V
3028 */
3029void Java_org_rocksdb_Options_setCompactionOptionsFIFO(
494da23a 3030 JNIEnv*, jobject, jlong jhandle, jlong jcompaction_options_fifo_handle) {
7c673cae 3031 auto* opts = reinterpret_cast<rocksdb::Options*>(jhandle);
11fdf7f2
TL
3032 auto* opts_fifo = reinterpret_cast<rocksdb::CompactionOptionsFIFO*>(
3033 jcompaction_options_fifo_handle);
7c673cae
FG
3034 opts->compaction_options_fifo = *opts_fifo;
3035}
3036
3037/*
3038 * Class: org_rocksdb_Options
3039 * Method: setForceConsistencyChecks
3040 * Signature: (JZ)V
3041 */
3042void Java_org_rocksdb_Options_setForceConsistencyChecks(
494da23a 3043 JNIEnv*, jobject, jlong jhandle, jboolean jforce_consistency_checks) {
7c673cae
FG
3044 auto* opts = reinterpret_cast<rocksdb::Options*>(jhandle);
3045 opts->force_consistency_checks = static_cast<bool>(jforce_consistency_checks);
3046}
3047
3048/*
3049 * Class: org_rocksdb_Options
3050 * Method: forceConsistencyChecks
3051 * Signature: (J)Z
3052 */
494da23a
TL
3053jboolean Java_org_rocksdb_Options_forceConsistencyChecks(
3054 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
3055 auto* opts = reinterpret_cast<rocksdb::Options*>(jhandle);
3056 return static_cast<bool>(opts->force_consistency_checks);
3057}
3058
3059//////////////////////////////////////////////////////////////////////////////
3060// rocksdb::ColumnFamilyOptions
3061
3062/*
3063 * Class: org_rocksdb_ColumnFamilyOptions
3064 * Method: newColumnFamilyOptions
3065 * Signature: ()J
3066 */
3067jlong Java_org_rocksdb_ColumnFamilyOptions_newColumnFamilyOptions(
494da23a 3068 JNIEnv*, jclass) {
7c673cae
FG
3069 auto* op = new rocksdb::ColumnFamilyOptions();
3070 return reinterpret_cast<jlong>(op);
3071}
3072
11fdf7f2
TL
3073/*
3074 * Class: org_rocksdb_ColumnFamilyOptions
3075 * Method: copyColumnFamilyOptions
3076 * Signature: (J)J
3077 */
3078jlong Java_org_rocksdb_ColumnFamilyOptions_copyColumnFamilyOptions(
494da23a 3079 JNIEnv*, jclass, jlong jhandle) {
11fdf7f2
TL
3080 auto new_opt = new rocksdb::ColumnFamilyOptions(
3081 *(reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)));
3082 return reinterpret_cast<jlong>(new_opt);
3083}
3084
494da23a
TL
3085/*
3086 * Class: org_rocksdb_ColumnFamilyOptions
3087 * Method: newColumnFamilyOptionsFromOptions
3088 * Signature: (J)J
3089 */
3090jlong Java_org_rocksdb_ColumnFamilyOptions_newColumnFamilyOptionsFromOptions(
3091 JNIEnv*, jclass, jlong joptions_handle) {
3092 auto new_opt = new rocksdb::ColumnFamilyOptions(
3093 *reinterpret_cast<rocksdb::Options*>(joptions_handle));
3094 return reinterpret_cast<jlong>(new_opt);
3095}
3096
7c673cae
FG
3097/*
3098 * Class: org_rocksdb_ColumnFamilyOptions
3099 * Method: getColumnFamilyOptionsFromProps
3100 * Signature: (Ljava/util/String;)J
3101 */
3102jlong Java_org_rocksdb_ColumnFamilyOptions_getColumnFamilyOptionsFromProps(
494da23a 3103 JNIEnv* env, jclass, jstring jopt_string) {
7c673cae 3104 const char* opt_string = env->GetStringUTFChars(jopt_string, nullptr);
11fdf7f2 3105 if (opt_string == nullptr) {
7c673cae
FG
3106 // exception thrown: OutOfMemoryError
3107 return 0;
3108 }
3109
3110 auto* cf_options = new rocksdb::ColumnFamilyOptions();
3111 rocksdb::Status status = rocksdb::GetColumnFamilyOptionsFromString(
3112 rocksdb::ColumnFamilyOptions(), opt_string, cf_options);
3113
3114 env->ReleaseStringUTFChars(jopt_string, opt_string);
3115
3116 // Check if ColumnFamilyOptions creation was possible.
3117 jlong ret_value = 0;
3118 if (status.ok()) {
3119 ret_value = reinterpret_cast<jlong>(cf_options);
3120 } else {
3121 // if operation failed the ColumnFamilyOptions need to be deleted
3122 // again to prevent a memory leak.
3123 delete cf_options;
3124 }
3125 return ret_value;
3126}
3127
3128/*
3129 * Class: org_rocksdb_ColumnFamilyOptions
3130 * Method: disposeInternal
3131 * Signature: (J)V
3132 */
494da23a
TL
3133void Java_org_rocksdb_ColumnFamilyOptions_disposeInternal(
3134 JNIEnv*, jobject, jlong handle) {
7c673cae
FG
3135 auto* cfo = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(handle);
3136 assert(cfo != nullptr);
3137 delete cfo;
3138}
3139
3140/*
3141 * Class: org_rocksdb_ColumnFamilyOptions
3142 * Method: optimizeForSmallDb
3143 * Signature: (J)V
3144 */
494da23a
TL
3145void Java_org_rocksdb_ColumnFamilyOptions_optimizeForSmallDb(
3146 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
3147 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3148 ->OptimizeForSmallDb();
7c673cae
FG
3149}
3150
3151/*
3152 * Class: org_rocksdb_ColumnFamilyOptions
3153 * Method: optimizeForPointLookup
3154 * Signature: (JJ)V
3155 */
3156void Java_org_rocksdb_ColumnFamilyOptions_optimizeForPointLookup(
494da23a 3157 JNIEnv*, jobject, jlong jhandle, jlong block_cache_size_mb) {
11fdf7f2
TL
3158 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3159 ->OptimizeForPointLookup(block_cache_size_mb);
7c673cae
FG
3160}
3161
3162/*
3163 * Class: org_rocksdb_ColumnFamilyOptions
3164 * Method: optimizeLevelStyleCompaction
3165 * Signature: (JJ)V
3166 */
3167void Java_org_rocksdb_ColumnFamilyOptions_optimizeLevelStyleCompaction(
494da23a 3168 JNIEnv*, jobject, jlong jhandle, jlong memtable_memory_budget) {
11fdf7f2
TL
3169 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3170 ->OptimizeLevelStyleCompaction(memtable_memory_budget);
7c673cae
FG
3171}
3172
3173/*
3174 * Class: org_rocksdb_ColumnFamilyOptions
3175 * Method: optimizeUniversalStyleCompaction
3176 * Signature: (JJ)V
3177 */
3178void Java_org_rocksdb_ColumnFamilyOptions_optimizeUniversalStyleCompaction(
494da23a 3179 JNIEnv*, jobject, jlong jhandle, jlong memtable_memory_budget) {
11fdf7f2
TL
3180 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3181 ->OptimizeUniversalStyleCompaction(memtable_memory_budget);
7c673cae
FG
3182}
3183
3184/*
3185 * Class: org_rocksdb_ColumnFamilyOptions
3186 * Method: setComparatorHandle
3187 * Signature: (JI)V
3188 */
3189void Java_org_rocksdb_ColumnFamilyOptions_setComparatorHandle__JI(
494da23a 3190 JNIEnv*, jobject, jlong jhandle, jint builtinComparator) {
7c673cae
FG
3191 switch (builtinComparator) {
3192 case 1:
3193 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)->comparator =
3194 rocksdb::ReverseBytewiseComparator();
3195 break;
3196 default:
3197 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)->comparator =
3198 rocksdb::BytewiseComparator();
3199 break;
3200 }
3201}
3202
3203/*
3204 * Class: org_rocksdb_ColumnFamilyOptions
3205 * Method: setComparatorHandle
11fdf7f2
TL
3206 * Signature: (JJB)V
3207 */
3208void Java_org_rocksdb_ColumnFamilyOptions_setComparatorHandle__JJB(
494da23a
TL
3209 JNIEnv*, jobject, jlong jopt_handle, jlong jcomparator_handle,
3210 jbyte jcomparator_type) {
11fdf7f2
TL
3211 rocksdb::Comparator* comparator = nullptr;
3212 switch (jcomparator_type) {
3213 // JAVA_COMPARATOR
3214 case 0x0:
3215 comparator =
3216 reinterpret_cast<rocksdb::ComparatorJniCallback*>(jcomparator_handle);
3217 break;
3218
3219 // JAVA_DIRECT_COMPARATOR
3220 case 0x1:
3221 comparator = reinterpret_cast<rocksdb::DirectComparatorJniCallback*>(
3222 jcomparator_handle);
3223 break;
3224
3225 // JAVA_NATIVE_COMPARATOR_WRAPPER
3226 case 0x2:
3227 comparator = reinterpret_cast<rocksdb::Comparator*>(jcomparator_handle);
3228 break;
3229 }
3230 auto* opt = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jopt_handle);
3231 opt->comparator = comparator;
7c673cae
FG
3232}
3233
3234/*
3235 * Class: org_rocksdb_ColumnFamilyOptions
3236 * Method: setMergeOperatorName
3237 * Signature: (JJjava/lang/String)V
3238 */
3239void Java_org_rocksdb_ColumnFamilyOptions_setMergeOperatorName(
494da23a 3240 JNIEnv* env, jobject, jlong jhandle, jstring jop_name) {
7c673cae
FG
3241 auto* options = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle);
3242 const char* op_name = env->GetStringUTFChars(jop_name, nullptr);
11fdf7f2 3243 if (op_name == nullptr) {
7c673cae
FG
3244 // exception thrown: OutOfMemoryError
3245 return;
3246 }
3247
3248 options->merge_operator =
3249 rocksdb::MergeOperators::CreateFromStringId(op_name);
3250 env->ReleaseStringUTFChars(jop_name, op_name);
3251}
3252
3253/*
3254 * Class: org_rocksdb_ColumnFamilyOptions
3255 * Method: setMergeOperator
3256 * Signature: (JJjava/lang/String)V
3257 */
3258void Java_org_rocksdb_ColumnFamilyOptions_setMergeOperator(
494da23a 3259 JNIEnv*, jobject, jlong jhandle, jlong mergeOperatorHandle) {
7c673cae 3260 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)->merge_operator =
11fdf7f2
TL
3261 *(reinterpret_cast<std::shared_ptr<rocksdb::MergeOperator>*>(
3262 mergeOperatorHandle));
7c673cae
FG
3263}
3264
3265/*
3266 * Class: org_rocksdb_ColumnFamilyOptions
3267 * Method: setCompactionFilterHandle
3268 * Signature: (JJ)V
3269 */
3270void Java_org_rocksdb_ColumnFamilyOptions_setCompactionFilterHandle(
494da23a 3271 JNIEnv*, jobject, jlong jopt_handle, jlong jcompactionfilter_handle) {
11fdf7f2
TL
3272 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jopt_handle)
3273 ->compaction_filter =
3274 reinterpret_cast<rocksdb::CompactionFilter*>(jcompactionfilter_handle);
3275}
3276
3277/*
3278 * Class: org_rocksdb_ColumnFamilyOptions
3279 * Method: setCompactionFilterFactoryHandle
3280 * Signature: (JJ)V
3281 */
494da23a
TL
3282void Java_org_rocksdb_ColumnFamilyOptions_setCompactionFilterFactoryHandle(
3283 JNIEnv*, jobject, jlong jopt_handle,
11fdf7f2
TL
3284 jlong jcompactionfilterfactory_handle) {
3285 auto* cff_factory =
3286 reinterpret_cast<std::shared_ptr<rocksdb::CompactionFilterFactoryJniCallback>*>(
3287 jcompactionfilterfactory_handle);
3288 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jopt_handle)
3289 ->compaction_filter_factory = *cff_factory;
7c673cae
FG
3290}
3291
3292/*
3293 * Class: org_rocksdb_ColumnFamilyOptions
3294 * Method: setWriteBufferSize
3295 * Signature: (JJ)I
3296 */
3297void Java_org_rocksdb_ColumnFamilyOptions_setWriteBufferSize(
494da23a
TL
3298 JNIEnv* env, jobject, jlong jhandle, jlong jwrite_buffer_size) {
3299 auto s = rocksdb::JniUtil::check_if_jlong_fits_size_t(jwrite_buffer_size);
7c673cae 3300 if (s.ok()) {
11fdf7f2
TL
3301 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3302 ->write_buffer_size = jwrite_buffer_size;
7c673cae
FG
3303 } else {
3304 rocksdb::IllegalArgumentExceptionJni::ThrowNew(env, s);
3305 }
3306}
3307
3308/*
3309 * Class: org_rocksdb_ColumnFamilyOptions
3310 * Method: writeBufferSize
3311 * Signature: (J)J
3312 */
494da23a
TL
3313jlong Java_org_rocksdb_ColumnFamilyOptions_writeBufferSize(
3314 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
3315 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3316 ->write_buffer_size;
7c673cae
FG
3317}
3318
3319/*
3320 * Class: org_rocksdb_ColumnFamilyOptions
3321 * Method: setMaxWriteBufferNumber
3322 * Signature: (JI)V
3323 */
3324void Java_org_rocksdb_ColumnFamilyOptions_setMaxWriteBufferNumber(
494da23a 3325 JNIEnv*, jobject, jlong jhandle, jint jmax_write_buffer_number) {
11fdf7f2
TL
3326 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3327 ->max_write_buffer_number = jmax_write_buffer_number;
7c673cae
FG
3328}
3329
3330/*
3331 * Class: org_rocksdb_ColumnFamilyOptions
3332 * Method: maxWriteBufferNumber
3333 * Signature: (J)I
3334 */
494da23a
TL
3335jint Java_org_rocksdb_ColumnFamilyOptions_maxWriteBufferNumber(
3336 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
3337 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3338 ->max_write_buffer_number;
7c673cae
FG
3339}
3340
3341/*
3342 * Method: setMemTableFactory
3343 * Signature: (JJ)V
3344 */
3345void Java_org_rocksdb_ColumnFamilyOptions_setMemTableFactory(
494da23a 3346 JNIEnv*, jobject, jlong jhandle, jlong jfactory_handle) {
11fdf7f2
TL
3347 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3348 ->memtable_factory.reset(
3349 reinterpret_cast<rocksdb::MemTableRepFactory*>(jfactory_handle));
7c673cae
FG
3350}
3351
3352/*
3353 * Class: org_rocksdb_ColumnFamilyOptions
3354 * Method: memTableFactoryName
3355 * Signature: (J)Ljava/lang/String
3356 */
3357jstring Java_org_rocksdb_ColumnFamilyOptions_memTableFactoryName(
494da23a 3358 JNIEnv* env, jobject, jlong jhandle) {
7c673cae
FG
3359 auto* opt = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle);
3360 rocksdb::MemTableRepFactory* tf = opt->memtable_factory.get();
3361
3362 // Should never be nullptr.
3363 // Default memtable factory is SkipListFactory
3364 assert(tf);
3365
3366 // temporarly fix for the historical typo
3367 if (strcmp(tf->Name(), "HashLinkListRepFactory") == 0) {
3368 return env->NewStringUTF("HashLinkedListRepFactory");
3369 }
3370
3371 return env->NewStringUTF(tf->Name());
3372}
3373
3374/*
3375 * Method: useFixedLengthPrefixExtractor
3376 * Signature: (JI)V
3377 */
3378void Java_org_rocksdb_ColumnFamilyOptions_useFixedLengthPrefixExtractor(
494da23a 3379 JNIEnv*, jobject, jlong jhandle, jint jprefix_length) {
11fdf7f2
TL
3380 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3381 ->prefix_extractor.reset(
3382 rocksdb::NewFixedPrefixTransform(static_cast<int>(jprefix_length)));
7c673cae
FG
3383}
3384
3385/*
3386 * Method: useCappedPrefixExtractor
3387 * Signature: (JI)V
3388 */
3389void Java_org_rocksdb_ColumnFamilyOptions_useCappedPrefixExtractor(
494da23a 3390 JNIEnv*, jobject, jlong jhandle, jint jprefix_length) {
11fdf7f2
TL
3391 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3392 ->prefix_extractor.reset(
3393 rocksdb::NewCappedPrefixTransform(static_cast<int>(jprefix_length)));
7c673cae
FG
3394}
3395
3396/*
3397 * Method: setTableFactory
3398 * Signature: (JJ)V
3399 */
3400void Java_org_rocksdb_ColumnFamilyOptions_setTableFactory(
494da23a 3401 JNIEnv*, jobject, jlong jhandle, jlong jfactory_handle) {
11fdf7f2
TL
3402 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)->table_factory.reset(
3403 reinterpret_cast<rocksdb::TableFactory*>(jfactory_handle));
7c673cae
FG
3404}
3405
3406/*
3407 * Method: tableFactoryName
3408 * Signature: (J)Ljava/lang/String
3409 */
494da23a
TL
3410jstring Java_org_rocksdb_ColumnFamilyOptions_tableFactoryName(
3411 JNIEnv* env, jobject, jlong jhandle) {
7c673cae
FG
3412 auto* opt = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle);
3413 rocksdb::TableFactory* tf = opt->table_factory.get();
3414
3415 // Should never be nullptr.
3416 // Default memtable factory is SkipListFactory
3417 assert(tf);
3418
3419 return env->NewStringUTF(tf->Name());
3420}
3421
7c673cae
FG
3422/*
3423 * Class: org_rocksdb_ColumnFamilyOptions
3424 * Method: minWriteBufferNumberToMerge
3425 * Signature: (J)I
3426 */
3427jint Java_org_rocksdb_ColumnFamilyOptions_minWriteBufferNumberToMerge(
494da23a 3428 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
3429 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3430 ->min_write_buffer_number_to_merge;
7c673cae
FG
3431}
3432
3433/*
3434 * Class: org_rocksdb_ColumnFamilyOptions
3435 * Method: setMinWriteBufferNumberToMerge
3436 * Signature: (JI)V
3437 */
3438void Java_org_rocksdb_ColumnFamilyOptions_setMinWriteBufferNumberToMerge(
494da23a 3439 JNIEnv*, jobject, jlong jhandle, jint jmin_write_buffer_number_to_merge) {
11fdf7f2
TL
3440 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3441 ->min_write_buffer_number_to_merge =
3442 static_cast<int>(jmin_write_buffer_number_to_merge);
7c673cae
FG
3443}
3444
3445/*
3446 * Class: org_rocksdb_ColumnFamilyOptions
3447 * Method: maxWriteBufferNumberToMaintain
3448 * Signature: (J)I
3449 */
3450jint Java_org_rocksdb_ColumnFamilyOptions_maxWriteBufferNumberToMaintain(
494da23a 3451 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
3452 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3453 ->max_write_buffer_number_to_maintain;
3454}
3455
3456/*
3457 * Class: org_rocksdb_ColumnFamilyOptions
3458 * Method: setMaxWriteBufferNumberToMaintain
3459 * Signature: (JI)V
3460 */
3461void Java_org_rocksdb_ColumnFamilyOptions_setMaxWriteBufferNumberToMaintain(
494da23a 3462 JNIEnv*, jobject, jlong jhandle,
7c673cae
FG
3463 jint jmax_write_buffer_number_to_maintain) {
3464 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3465 ->max_write_buffer_number_to_maintain =
3466 static_cast<int>(jmax_write_buffer_number_to_maintain);
3467}
3468
3469/*
3470 * Class: org_rocksdb_ColumnFamilyOptions
3471 * Method: setCompressionType
3472 * Signature: (JB)V
3473 */
3474void Java_org_rocksdb_ColumnFamilyOptions_setCompressionType(
494da23a 3475 JNIEnv*, jobject, jlong jhandle, jbyte jcompression_type_value) {
7c673cae
FG
3476 auto* cf_opts = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle);
3477 cf_opts->compression = rocksdb::CompressionTypeJni::toCppCompressionType(
3478 jcompression_type_value);
3479}
3480
3481/*
3482 * Class: org_rocksdb_ColumnFamilyOptions
3483 * Method: compressionType
3484 * Signature: (J)B
3485 */
494da23a
TL
3486jbyte Java_org_rocksdb_ColumnFamilyOptions_compressionType(
3487 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
3488 auto* cf_opts = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle);
3489 return rocksdb::CompressionTypeJni::toJavaCompressionType(
3490 cf_opts->compression);
3491}
3492
3493/*
3494 * Class: org_rocksdb_ColumnFamilyOptions
3495 * Method: setCompressionPerLevel
3496 * Signature: (J[B)V
3497 */
3498void Java_org_rocksdb_ColumnFamilyOptions_setCompressionPerLevel(
494da23a 3499 JNIEnv* env, jobject, jlong jhandle, jbyteArray jcompressionLevels) {
7c673cae
FG
3500 auto* options = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle);
3501 auto uptr_compression_levels =
3502 rocksdb_compression_vector_helper(env, jcompressionLevels);
11fdf7f2
TL
3503 if (!uptr_compression_levels) {
3504 // exception occurred
3505 return;
7c673cae
FG
3506 }
3507 options->compression_per_level = *(uptr_compression_levels.get());
3508}
3509
3510/*
3511 * Class: org_rocksdb_ColumnFamilyOptions
3512 * Method: compressionPerLevel
3513 * Signature: (J)[B
3514 */
3515jbyteArray Java_org_rocksdb_ColumnFamilyOptions_compressionPerLevel(
494da23a 3516 JNIEnv* env, jobject, jlong jhandle) {
7c673cae
FG
3517 auto* cf_options = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle);
3518 return rocksdb_compression_list_helper(env,
11fdf7f2 3519 cf_options->compression_per_level);
7c673cae
FG
3520}
3521
3522/*
3523 * Class: org_rocksdb_ColumnFamilyOptions
3524 * Method: setBottommostCompressionType
3525 * Signature: (JB)V
3526 */
3527void Java_org_rocksdb_ColumnFamilyOptions_setBottommostCompressionType(
494da23a 3528 JNIEnv*, jobject, jlong jhandle, jbyte jcompression_type_value) {
7c673cae
FG
3529 auto* cf_options = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle);
3530 cf_options->bottommost_compression =
3531 rocksdb::CompressionTypeJni::toCppCompressionType(
3532 jcompression_type_value);
3533}
3534
3535/*
3536 * Class: org_rocksdb_ColumnFamilyOptions
3537 * Method: bottommostCompressionType
3538 * Signature: (J)B
3539 */
3540jbyte Java_org_rocksdb_ColumnFamilyOptions_bottommostCompressionType(
494da23a 3541 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
3542 auto* cf_options = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle);
3543 return rocksdb::CompressionTypeJni::toJavaCompressionType(
3544 cf_options->bottommost_compression);
3545}
11fdf7f2
TL
3546/*
3547 * Class: org_rocksdb_ColumnFamilyOptions
3548 * Method: setBottommostCompressionOptions
3549 * Signature: (JJ)V
3550 */
3551void Java_org_rocksdb_ColumnFamilyOptions_setBottommostCompressionOptions(
494da23a 3552 JNIEnv*, jobject, jlong jhandle,
11fdf7f2
TL
3553 jlong jbottommost_compression_options_handle) {
3554 auto* cf_options = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle);
3555 auto* bottommost_compression_options =
3556 reinterpret_cast<rocksdb::CompressionOptions*>(
3557 jbottommost_compression_options_handle);
3558 cf_options->bottommost_compression_opts = *bottommost_compression_options;
3559}
7c673cae
FG
3560
3561/*
3562 * Class: org_rocksdb_ColumnFamilyOptions
3563 * Method: setCompressionOptions
3564 * Signature: (JJ)V
3565 */
3566void Java_org_rocksdb_ColumnFamilyOptions_setCompressionOptions(
494da23a 3567 JNIEnv*, jobject, jlong jhandle, jlong jcompression_options_handle) {
7c673cae 3568 auto* cf_options = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle);
11fdf7f2
TL
3569 auto* compression_options = reinterpret_cast<rocksdb::CompressionOptions*>(
3570 jcompression_options_handle);
7c673cae
FG
3571 cf_options->compression_opts = *compression_options;
3572}
3573
3574/*
3575 * Class: org_rocksdb_ColumnFamilyOptions
3576 * Method: setCompactionStyle
3577 * Signature: (JB)V
3578 */
3579void Java_org_rocksdb_ColumnFamilyOptions_setCompactionStyle(
494da23a
TL
3580 JNIEnv*, jobject, jlong jhandle, jbyte jcompaction_style) {
3581 auto* cf_options = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle);
3582 cf_options->compaction_style =
3583 rocksdb::CompactionStyleJni::toCppCompactionStyle(jcompaction_style);
7c673cae
FG
3584}
3585
3586/*
3587 * Class: org_rocksdb_ColumnFamilyOptions
3588 * Method: compactionStyle
3589 * Signature: (J)B
3590 */
494da23a
TL
3591jbyte Java_org_rocksdb_ColumnFamilyOptions_compactionStyle(
3592 JNIEnv*, jobject, jlong jhandle) {
3593 auto* cf_options = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle);
3594 return rocksdb::CompactionStyleJni::toJavaCompactionStyle(
3595 cf_options->compaction_style);
7c673cae
FG
3596}
3597
3598/*
3599 * Class: org_rocksdb_ColumnFamilyOptions
3600 * Method: setMaxTableFilesSizeFIFO
3601 * Signature: (JJ)V
3602 */
3603void Java_org_rocksdb_ColumnFamilyOptions_setMaxTableFilesSizeFIFO(
494da23a 3604 JNIEnv*, jobject, jlong jhandle, jlong jmax_table_files_size) {
11fdf7f2
TL
3605 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3606 ->compaction_options_fifo.max_table_files_size =
3607 static_cast<uint64_t>(jmax_table_files_size);
7c673cae
FG
3608}
3609
3610/*
3611 * Class: org_rocksdb_ColumnFamilyOptions
3612 * Method: maxTableFilesSizeFIFO
3613 * Signature: (J)J
3614 */
3615jlong Java_org_rocksdb_ColumnFamilyOptions_maxTableFilesSizeFIFO(
494da23a 3616 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
3617 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3618 ->compaction_options_fifo.max_table_files_size;
7c673cae
FG
3619}
3620
3621/*
3622 * Class: org_rocksdb_ColumnFamilyOptions
3623 * Method: numLevels
3624 * Signature: (J)I
3625 */
494da23a
TL
3626jint Java_org_rocksdb_ColumnFamilyOptions_numLevels(
3627 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
3628 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)->num_levels;
3629}
3630
3631/*
3632 * Class: org_rocksdb_ColumnFamilyOptions
3633 * Method: setNumLevels
3634 * Signature: (JI)V
3635 */
494da23a
TL
3636void Java_org_rocksdb_ColumnFamilyOptions_setNumLevels(
3637 JNIEnv*, jobject, jlong jhandle, jint jnum_levels) {
7c673cae
FG
3638 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)->num_levels =
3639 static_cast<int>(jnum_levels);
3640}
3641
3642/*
3643 * Class: org_rocksdb_ColumnFamilyOptions
3644 * Method: levelZeroFileNumCompactionTrigger
3645 * Signature: (J)I
3646 */
3647jint Java_org_rocksdb_ColumnFamilyOptions_levelZeroFileNumCompactionTrigger(
494da23a 3648 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
3649 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3650 ->level0_file_num_compaction_trigger;
7c673cae
FG
3651}
3652
3653/*
3654 * Class: org_rocksdb_ColumnFamilyOptions
3655 * Method: setLevelZeroFileNumCompactionTrigger
3656 * Signature: (JI)V
3657 */
3658void Java_org_rocksdb_ColumnFamilyOptions_setLevelZeroFileNumCompactionTrigger(
494da23a 3659 JNIEnv*, jobject, jlong jhandle,
7c673cae 3660 jint jlevel0_file_num_compaction_trigger) {
11fdf7f2
TL
3661 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3662 ->level0_file_num_compaction_trigger =
3663 static_cast<int>(jlevel0_file_num_compaction_trigger);
7c673cae
FG
3664}
3665
3666/*
3667 * Class: org_rocksdb_ColumnFamilyOptions
3668 * Method: levelZeroSlowdownWritesTrigger
3669 * Signature: (J)I
3670 */
3671jint Java_org_rocksdb_ColumnFamilyOptions_levelZeroSlowdownWritesTrigger(
494da23a 3672 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
3673 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3674 ->level0_slowdown_writes_trigger;
7c673cae
FG
3675}
3676
3677/*
3678 * Class: org_rocksdb_ColumnFamilyOptions
3679 * Method: setLevelSlowdownWritesTrigger
3680 * Signature: (JI)V
3681 */
3682void Java_org_rocksdb_ColumnFamilyOptions_setLevelZeroSlowdownWritesTrigger(
494da23a 3683 JNIEnv*, jobject, jlong jhandle, jint jlevel0_slowdown_writes_trigger) {
11fdf7f2
TL
3684 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3685 ->level0_slowdown_writes_trigger =
3686 static_cast<int>(jlevel0_slowdown_writes_trigger);
7c673cae
FG
3687}
3688
3689/*
3690 * Class: org_rocksdb_ColumnFamilyOptions
3691 * Method: levelZeroStopWritesTrigger
3692 * Signature: (J)I
3693 */
3694jint Java_org_rocksdb_ColumnFamilyOptions_levelZeroStopWritesTrigger(
494da23a 3695 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
3696 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3697 ->level0_stop_writes_trigger;
7c673cae
FG
3698}
3699
3700/*
3701 * Class: org_rocksdb_ColumnFamilyOptions
3702 * Method: setLevelStopWritesTrigger
3703 * Signature: (JI)V
3704 */
3705void Java_org_rocksdb_ColumnFamilyOptions_setLevelZeroStopWritesTrigger(
494da23a 3706 JNIEnv*, jobject, jlong jhandle, jint jlevel0_stop_writes_trigger) {
11fdf7f2
TL
3707 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3708 ->level0_stop_writes_trigger =
3709 static_cast<int>(jlevel0_stop_writes_trigger);
7c673cae
FG
3710}
3711
3712/*
3713 * Class: org_rocksdb_ColumnFamilyOptions
3714 * Method: targetFileSizeBase
3715 * Signature: (J)J
3716 */
494da23a
TL
3717jlong Java_org_rocksdb_ColumnFamilyOptions_targetFileSizeBase(
3718 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
3719 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3720 ->target_file_size_base;
7c673cae
FG
3721}
3722
3723/*
3724 * Class: org_rocksdb_ColumnFamilyOptions
3725 * Method: setTargetFileSizeBase
3726 * Signature: (JJ)V
3727 */
3728void Java_org_rocksdb_ColumnFamilyOptions_setTargetFileSizeBase(
494da23a 3729 JNIEnv*, jobject, jlong jhandle, jlong jtarget_file_size_base) {
11fdf7f2
TL
3730 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3731 ->target_file_size_base = static_cast<uint64_t>(jtarget_file_size_base);
7c673cae
FG
3732}
3733
3734/*
3735 * Class: org_rocksdb_ColumnFamilyOptions
3736 * Method: targetFileSizeMultiplier
3737 * Signature: (J)I
3738 */
3739jint Java_org_rocksdb_ColumnFamilyOptions_targetFileSizeMultiplier(
494da23a 3740 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
3741 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3742 ->target_file_size_multiplier;
7c673cae
FG
3743}
3744
3745/*
3746 * Class: org_rocksdb_ColumnFamilyOptions
3747 * Method: setTargetFileSizeMultiplier
3748 * Signature: (JI)V
3749 */
3750void Java_org_rocksdb_ColumnFamilyOptions_setTargetFileSizeMultiplier(
494da23a 3751 JNIEnv*, jobject, jlong jhandle, jint jtarget_file_size_multiplier) {
11fdf7f2
TL
3752 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3753 ->target_file_size_multiplier =
3754 static_cast<int>(jtarget_file_size_multiplier);
7c673cae
FG
3755}
3756
3757/*
3758 * Class: org_rocksdb_ColumnFamilyOptions
3759 * Method: maxBytesForLevelBase
3760 * Signature: (J)J
3761 */
3762jlong Java_org_rocksdb_ColumnFamilyOptions_maxBytesForLevelBase(
494da23a 3763 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
3764 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3765 ->max_bytes_for_level_base;
7c673cae
FG
3766}
3767
3768/*
3769 * Class: org_rocksdb_ColumnFamilyOptions
3770 * Method: setMaxBytesForLevelBase
3771 * Signature: (JJ)V
3772 */
3773void Java_org_rocksdb_ColumnFamilyOptions_setMaxBytesForLevelBase(
494da23a 3774 JNIEnv*, jobject, jlong jhandle, jlong jmax_bytes_for_level_base) {
11fdf7f2
TL
3775 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3776 ->max_bytes_for_level_base =
3777 static_cast<int64_t>(jmax_bytes_for_level_base);
7c673cae
FG
3778}
3779
3780/*
3781 * Class: org_rocksdb_ColumnFamilyOptions
3782 * Method: levelCompactionDynamicLevelBytes
3783 * Signature: (J)Z
3784 */
3785jboolean Java_org_rocksdb_ColumnFamilyOptions_levelCompactionDynamicLevelBytes(
494da23a 3786 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
3787 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3788 ->level_compaction_dynamic_level_bytes;
7c673cae
FG
3789}
3790
3791/*
3792 * Class: org_rocksdb_ColumnFamilyOptions
3793 * Method: setLevelCompactionDynamicLevelBytes
3794 * Signature: (JZ)V
3795 */
3796void Java_org_rocksdb_ColumnFamilyOptions_setLevelCompactionDynamicLevelBytes(
494da23a 3797 JNIEnv*, jobject, jlong jhandle, jboolean jenable_dynamic_level_bytes) {
11fdf7f2
TL
3798 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3799 ->level_compaction_dynamic_level_bytes = (jenable_dynamic_level_bytes);
7c673cae
FG
3800}
3801
3802/*
3803 * Class: org_rocksdb_ColumnFamilyOptions
3804 * Method: maxBytesForLevelMultiplier
3805 * Signature: (J)D
3806 */
3807jdouble Java_org_rocksdb_ColumnFamilyOptions_maxBytesForLevelMultiplier(
494da23a 3808 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
3809 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3810 ->max_bytes_for_level_multiplier;
7c673cae
FG
3811}
3812
3813/*
3814 * Class: org_rocksdb_ColumnFamilyOptions
3815 * Method: setMaxBytesForLevelMultiplier
3816 * Signature: (JD)V
3817 */
3818void Java_org_rocksdb_ColumnFamilyOptions_setMaxBytesForLevelMultiplier(
494da23a 3819 JNIEnv*, jobject, jlong jhandle, jdouble jmax_bytes_for_level_multiplier) {
7c673cae
FG
3820 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3821 ->max_bytes_for_level_multiplier =
3822 static_cast<double>(jmax_bytes_for_level_multiplier);
3823}
3824
3825/*
3826 * Class: org_rocksdb_ColumnFamilyOptions
3827 * Method: maxCompactionBytes
3828 * Signature: (J)I
3829 */
494da23a
TL
3830jlong Java_org_rocksdb_ColumnFamilyOptions_maxCompactionBytes(
3831 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
3832 return static_cast<jlong>(
3833 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3834 ->max_compaction_bytes);
3835}
3836
3837/*
3838 * Class: org_rocksdb_ColumnFamilyOptions
3839 * Method: setMaxCompactionBytes
3840 * Signature: (JI)V
3841 */
3842void Java_org_rocksdb_ColumnFamilyOptions_setMaxCompactionBytes(
494da23a 3843 JNIEnv*, jobject, jlong jhandle, jlong jmax_compaction_bytes) {
7c673cae
FG
3844 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3845 ->max_compaction_bytes = static_cast<uint64_t>(jmax_compaction_bytes);
3846}
3847
3848/*
3849 * Class: org_rocksdb_ColumnFamilyOptions
3850 * Method: arenaBlockSize
3851 * Signature: (J)J
3852 */
494da23a
TL
3853jlong Java_org_rocksdb_ColumnFamilyOptions_arenaBlockSize(
3854 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
3855 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3856 ->arena_block_size;
7c673cae
FG
3857}
3858
3859/*
3860 * Class: org_rocksdb_ColumnFamilyOptions
3861 * Method: setArenaBlockSize
3862 * Signature: (JJ)V
3863 */
3864void Java_org_rocksdb_ColumnFamilyOptions_setArenaBlockSize(
494da23a
TL
3865 JNIEnv* env, jobject, jlong jhandle, jlong jarena_block_size) {
3866 auto s = rocksdb::JniUtil::check_if_jlong_fits_size_t(jarena_block_size);
7c673cae 3867 if (s.ok()) {
11fdf7f2
TL
3868 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)->arena_block_size =
3869 jarena_block_size;
7c673cae
FG
3870 } else {
3871 rocksdb::IllegalArgumentExceptionJni::ThrowNew(env, s);
3872 }
3873}
3874
3875/*
3876 * Class: org_rocksdb_ColumnFamilyOptions
3877 * Method: disableAutoCompactions
3878 * Signature: (J)Z
3879 */
3880jboolean Java_org_rocksdb_ColumnFamilyOptions_disableAutoCompactions(
494da23a 3881 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
3882 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3883 ->disable_auto_compactions;
7c673cae
FG
3884}
3885
3886/*
3887 * Class: org_rocksdb_ColumnFamilyOptions
3888 * Method: setDisableAutoCompactions
3889 * Signature: (JZ)V
3890 */
3891void Java_org_rocksdb_ColumnFamilyOptions_setDisableAutoCompactions(
494da23a 3892 JNIEnv*, jobject, jlong jhandle, jboolean jdisable_auto_compactions) {
11fdf7f2
TL
3893 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3894 ->disable_auto_compactions = static_cast<bool>(jdisable_auto_compactions);
7c673cae
FG
3895}
3896
3897/*
3898 * Class: org_rocksdb_ColumnFamilyOptions
3899 * Method: maxSequentialSkipInIterations
3900 * Signature: (J)J
3901 */
3902jlong Java_org_rocksdb_ColumnFamilyOptions_maxSequentialSkipInIterations(
494da23a 3903 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
3904 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3905 ->max_sequential_skip_in_iterations;
7c673cae
FG
3906}
3907
3908/*
3909 * Class: org_rocksdb_ColumnFamilyOptions
3910 * Method: setMaxSequentialSkipInIterations
3911 * Signature: (JJ)V
3912 */
3913void Java_org_rocksdb_ColumnFamilyOptions_setMaxSequentialSkipInIterations(
494da23a 3914 JNIEnv*, jobject, jlong jhandle,
7c673cae 3915 jlong jmax_sequential_skip_in_iterations) {
11fdf7f2
TL
3916 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3917 ->max_sequential_skip_in_iterations =
3918 static_cast<int64_t>(jmax_sequential_skip_in_iterations);
7c673cae
FG
3919}
3920
3921/*
3922 * Class: org_rocksdb_ColumnFamilyOptions
3923 * Method: inplaceUpdateSupport
3924 * Signature: (J)Z
3925 */
3926jboolean Java_org_rocksdb_ColumnFamilyOptions_inplaceUpdateSupport(
494da23a 3927 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
3928 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3929 ->inplace_update_support;
7c673cae
FG
3930}
3931
3932/*
3933 * Class: org_rocksdb_ColumnFamilyOptions
3934 * Method: setInplaceUpdateSupport
3935 * Signature: (JZ)V
3936 */
3937void Java_org_rocksdb_ColumnFamilyOptions_setInplaceUpdateSupport(
494da23a 3938 JNIEnv*, jobject, jlong jhandle, jboolean jinplace_update_support) {
11fdf7f2
TL
3939 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3940 ->inplace_update_support = static_cast<bool>(jinplace_update_support);
7c673cae
FG
3941}
3942
3943/*
3944 * Class: org_rocksdb_ColumnFamilyOptions
3945 * Method: inplaceUpdateNumLocks
3946 * Signature: (J)J
3947 */
3948jlong Java_org_rocksdb_ColumnFamilyOptions_inplaceUpdateNumLocks(
494da23a 3949 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
3950 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3951 ->inplace_update_num_locks;
7c673cae
FG
3952}
3953
3954/*
3955 * Class: org_rocksdb_ColumnFamilyOptions
3956 * Method: setInplaceUpdateNumLocks
3957 * Signature: (JJ)V
3958 */
3959void Java_org_rocksdb_ColumnFamilyOptions_setInplaceUpdateNumLocks(
494da23a
TL
3960 JNIEnv* env, jobject, jlong jhandle, jlong jinplace_update_num_locks) {
3961 auto s =
3962 rocksdb::JniUtil::check_if_jlong_fits_size_t(jinplace_update_num_locks);
7c673cae 3963 if (s.ok()) {
11fdf7f2
TL
3964 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3965 ->inplace_update_num_locks = jinplace_update_num_locks;
7c673cae
FG
3966 } else {
3967 rocksdb::IllegalArgumentExceptionJni::ThrowNew(env, s);
3968 }
3969}
3970
3971/*
3972 * Class: org_rocksdb_ColumnFamilyOptions
3973 * Method: memtablePrefixBloomSizeRatio
3974 * Signature: (J)I
3975 */
3976jdouble Java_org_rocksdb_ColumnFamilyOptions_memtablePrefixBloomSizeRatio(
494da23a 3977 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
3978 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3979 ->memtable_prefix_bloom_size_ratio;
3980}
3981
3982/*
3983 * Class: org_rocksdb_ColumnFamilyOptions
3984 * Method: setMemtablePrefixBloomSizeRatio
3985 * Signature: (JI)V
3986 */
3987void Java_org_rocksdb_ColumnFamilyOptions_setMemtablePrefixBloomSizeRatio(
494da23a 3988 JNIEnv*, jobject, jlong jhandle,
7c673cae
FG
3989 jdouble jmemtable_prefix_bloom_size_ratio) {
3990 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
3991 ->memtable_prefix_bloom_size_ratio =
3992 static_cast<double>(jmemtable_prefix_bloom_size_ratio);
3993}
3994
3995/*
3996 * Class: org_rocksdb_ColumnFamilyOptions
3997 * Method: bloomLocality
3998 * Signature: (J)I
3999 */
494da23a
TL
4000jint Java_org_rocksdb_ColumnFamilyOptions_bloomLocality(
4001 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
4002 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
4003 ->bloom_locality;
7c673cae
FG
4004}
4005
4006/*
4007 * Class: org_rocksdb_ColumnFamilyOptions
4008 * Method: setBloomLocality
4009 * Signature: (JI)V
4010 */
4011void Java_org_rocksdb_ColumnFamilyOptions_setBloomLocality(
494da23a 4012 JNIEnv*, jobject, jlong jhandle, jint jbloom_locality) {
7c673cae
FG
4013 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)->bloom_locality =
4014 static_cast<int32_t>(jbloom_locality);
4015}
4016
4017/*
4018 * Class: org_rocksdb_ColumnFamilyOptions
4019 * Method: maxSuccessiveMerges
4020 * Signature: (J)J
4021 */
494da23a
TL
4022jlong Java_org_rocksdb_ColumnFamilyOptions_maxSuccessiveMerges(
4023 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
4024 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
4025 ->max_successive_merges;
7c673cae
FG
4026}
4027
4028/*
4029 * Class: org_rocksdb_ColumnFamilyOptions
4030 * Method: setMaxSuccessiveMerges
4031 * Signature: (JJ)V
4032 */
4033void Java_org_rocksdb_ColumnFamilyOptions_setMaxSuccessiveMerges(
494da23a
TL
4034 JNIEnv* env, jobject, jlong jhandle, jlong jmax_successive_merges) {
4035 auto s =
4036 rocksdb::JniUtil::check_if_jlong_fits_size_t(jmax_successive_merges);
7c673cae 4037 if (s.ok()) {
11fdf7f2
TL
4038 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
4039 ->max_successive_merges = jmax_successive_merges;
7c673cae
FG
4040 } else {
4041 rocksdb::IllegalArgumentExceptionJni::ThrowNew(env, s);
4042 }
4043}
4044
4045/*
4046 * Class: org_rocksdb_ColumnFamilyOptions
4047 * Method: optimizeFiltersForHits
4048 * Signature: (J)Z
4049 */
4050jboolean Java_org_rocksdb_ColumnFamilyOptions_optimizeFiltersForHits(
494da23a 4051 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
4052 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
4053 ->optimize_filters_for_hits;
7c673cae
FG
4054}
4055
4056/*
4057 * Class: org_rocksdb_ColumnFamilyOptions
4058 * Method: setOptimizeFiltersForHits
4059 * Signature: (JZ)V
4060 */
4061void Java_org_rocksdb_ColumnFamilyOptions_setOptimizeFiltersForHits(
494da23a 4062 JNIEnv*, jobject, jlong jhandle, jboolean joptimize_filters_for_hits) {
11fdf7f2
TL
4063 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
4064 ->optimize_filters_for_hits =
4065 static_cast<bool>(joptimize_filters_for_hits);
7c673cae
FG
4066}
4067
4068/*
4069 * Class: org_rocksdb_ColumnFamilyOptions
4070 * Method: memtableHugePageSize
4071 * Signature: (J)J
4072 */
4073jlong Java_org_rocksdb_ColumnFamilyOptions_memtableHugePageSize(
494da23a 4074 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
4075 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
4076 ->memtable_huge_page_size;
7c673cae
FG
4077}
4078
4079/*
4080 * Class: org_rocksdb_ColumnFamilyOptions
4081 * Method: setMemtableHugePageSize
4082 * Signature: (JJ)V
4083 */
4084void Java_org_rocksdb_ColumnFamilyOptions_setMemtableHugePageSize(
494da23a
TL
4085 JNIEnv* env, jobject, jlong jhandle, jlong jmemtable_huge_page_size) {
4086 auto s =
4087 rocksdb::JniUtil::check_if_jlong_fits_size_t(jmemtable_huge_page_size);
7c673cae 4088 if (s.ok()) {
11fdf7f2
TL
4089 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
4090 ->memtable_huge_page_size = jmemtable_huge_page_size;
7c673cae
FG
4091 } else {
4092 rocksdb::IllegalArgumentExceptionJni::ThrowNew(env, s);
4093 }
4094}
4095
4096/*
4097 * Class: org_rocksdb_ColumnFamilyOptions
4098 * Method: softPendingCompactionBytesLimit
4099 * Signature: (J)J
4100 */
4101jlong Java_org_rocksdb_ColumnFamilyOptions_softPendingCompactionBytesLimit(
494da23a 4102 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
4103 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
4104 ->soft_pending_compaction_bytes_limit;
7c673cae
FG
4105}
4106
4107/*
4108 * Class: org_rocksdb_ColumnFamilyOptions
4109 * Method: setSoftPendingCompactionBytesLimit
4110 * Signature: (JJ)V
4111 */
4112void Java_org_rocksdb_ColumnFamilyOptions_setSoftPendingCompactionBytesLimit(
494da23a 4113 JNIEnv*, jobject, jlong jhandle,
11fdf7f2
TL
4114 jlong jsoft_pending_compaction_bytes_limit) {
4115 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
4116 ->soft_pending_compaction_bytes_limit =
4117 static_cast<int64_t>(jsoft_pending_compaction_bytes_limit);
7c673cae
FG
4118}
4119
4120/*
4121 * Class: org_rocksdb_ColumnFamilyOptions
4122 * Method: softHardCompactionBytesLimit
4123 * Signature: (J)J
4124 */
4125jlong Java_org_rocksdb_ColumnFamilyOptions_hardPendingCompactionBytesLimit(
494da23a 4126 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
4127 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
4128 ->hard_pending_compaction_bytes_limit;
7c673cae
FG
4129}
4130
4131/*
4132 * Class: org_rocksdb_ColumnFamilyOptions
4133 * Method: setHardPendingCompactionBytesLimit
4134 * Signature: (JJ)V
4135 */
4136void Java_org_rocksdb_ColumnFamilyOptions_setHardPendingCompactionBytesLimit(
494da23a 4137 JNIEnv*, jobject, jlong jhandle,
11fdf7f2
TL
4138 jlong jhard_pending_compaction_bytes_limit) {
4139 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
4140 ->hard_pending_compaction_bytes_limit =
4141 static_cast<int64_t>(jhard_pending_compaction_bytes_limit);
7c673cae
FG
4142}
4143
4144/*
4145 * Class: org_rocksdb_ColumnFamilyOptions
4146 * Method: level0FileNumCompactionTrigger
4147 * Signature: (J)I
4148 */
4149jint Java_org_rocksdb_ColumnFamilyOptions_level0FileNumCompactionTrigger(
494da23a 4150 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
4151 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
4152 ->level0_file_num_compaction_trigger;
7c673cae
FG
4153}
4154
4155/*
4156 * Class: org_rocksdb_ColumnFamilyOptions
4157 * Method: setLevel0FileNumCompactionTrigger
4158 * Signature: (JI)V
4159 */
4160void Java_org_rocksdb_ColumnFamilyOptions_setLevel0FileNumCompactionTrigger(
494da23a 4161 JNIEnv*, jobject, jlong jhandle,
7c673cae 4162 jint jlevel0_file_num_compaction_trigger) {
11fdf7f2
TL
4163 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
4164 ->level0_file_num_compaction_trigger =
4165 static_cast<int32_t>(jlevel0_file_num_compaction_trigger);
7c673cae
FG
4166}
4167
4168/*
4169 * Class: org_rocksdb_ColumnFamilyOptions
4170 * Method: level0SlowdownWritesTrigger
4171 * Signature: (J)I
4172 */
4173jint Java_org_rocksdb_ColumnFamilyOptions_level0SlowdownWritesTrigger(
494da23a 4174 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
4175 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
4176 ->level0_slowdown_writes_trigger;
7c673cae
FG
4177}
4178
4179/*
4180 * Class: org_rocksdb_ColumnFamilyOptions
4181 * Method: setLevel0SlowdownWritesTrigger
4182 * Signature: (JI)V
4183 */
4184void Java_org_rocksdb_ColumnFamilyOptions_setLevel0SlowdownWritesTrigger(
494da23a 4185 JNIEnv*, jobject, jlong jhandle, jint jlevel0_slowdown_writes_trigger) {
11fdf7f2
TL
4186 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
4187 ->level0_slowdown_writes_trigger =
4188 static_cast<int32_t>(jlevel0_slowdown_writes_trigger);
7c673cae
FG
4189}
4190
4191/*
4192 * Class: org_rocksdb_ColumnFamilyOptions
4193 * Method: level0StopWritesTrigger
4194 * Signature: (J)I
4195 */
4196jint Java_org_rocksdb_ColumnFamilyOptions_level0StopWritesTrigger(
494da23a 4197 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
4198 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
4199 ->level0_stop_writes_trigger;
7c673cae
FG
4200}
4201
4202/*
4203 * Class: org_rocksdb_ColumnFamilyOptions
4204 * Method: setLevel0StopWritesTrigger
4205 * Signature: (JI)V
4206 */
4207void Java_org_rocksdb_ColumnFamilyOptions_setLevel0StopWritesTrigger(
494da23a 4208 JNIEnv*, jobject, jlong jhandle, jint jlevel0_stop_writes_trigger) {
11fdf7f2
TL
4209 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
4210 ->level0_stop_writes_trigger =
4211 static_cast<int32_t>(jlevel0_stop_writes_trigger);
7c673cae
FG
4212}
4213
4214/*
4215 * Class: org_rocksdb_ColumnFamilyOptions
4216 * Method: maxBytesForLevelMultiplierAdditional
4217 * Signature: (J)[I
4218 */
494da23a
TL
4219jintArray Java_org_rocksdb_ColumnFamilyOptions_maxBytesForLevelMultiplierAdditional(
4220 JNIEnv* env, jobject, jlong jhandle) {
11fdf7f2
TL
4221 auto mbflma = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
4222 ->max_bytes_for_level_multiplier_additional;
7c673cae
FG
4223
4224 const size_t size = mbflma.size();
4225
4226 jint* additionals = new jint[size];
4227 for (size_t i = 0; i < size; i++) {
4228 additionals[i] = static_cast<jint>(mbflma[i]);
4229 }
4230
4231 jsize jlen = static_cast<jsize>(size);
4232 jintArray result = env->NewIntArray(jlen);
11fdf7f2 4233 if (result == nullptr) {
7c673cae 4234 // exception thrown: OutOfMemoryError
11fdf7f2 4235 delete[] additionals;
7c673cae
FG
4236 return nullptr;
4237 }
4238 env->SetIntArrayRegion(result, 0, jlen, additionals);
11fdf7f2
TL
4239 if (env->ExceptionCheck()) {
4240 // exception thrown: ArrayIndexOutOfBoundsException
4241 env->DeleteLocalRef(result);
4242 delete[] additionals;
4243 return nullptr;
7c673cae
FG
4244 }
4245
11fdf7f2 4246 delete[] additionals;
7c673cae
FG
4247
4248 return result;
4249}
4250
4251/*
4252 * Class: org_rocksdb_ColumnFamilyOptions
4253 * Method: setMaxBytesForLevelMultiplierAdditional
4254 * Signature: (J[I)V
4255 */
4256void Java_org_rocksdb_ColumnFamilyOptions_setMaxBytesForLevelMultiplierAdditional(
494da23a 4257 JNIEnv* env, jobject, jlong jhandle,
7c673cae
FG
4258 jintArray jmax_bytes_for_level_multiplier_additional) {
4259 jsize len = env->GetArrayLength(jmax_bytes_for_level_multiplier_additional);
11fdf7f2 4260 jint* additionals =
7c673cae 4261 env->GetIntArrayElements(jmax_bytes_for_level_multiplier_additional, 0);
11fdf7f2 4262 if (additionals == nullptr) {
7c673cae
FG
4263 // exception thrown: OutOfMemoryError
4264 return;
4265 }
4266
4267 auto* cf_opt = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle);
4268 cf_opt->max_bytes_for_level_multiplier_additional.clear();
4269 for (jsize i = 0; i < len; i++) {
11fdf7f2
TL
4270 cf_opt->max_bytes_for_level_multiplier_additional.push_back(
4271 static_cast<int32_t>(additionals[i]));
7c673cae
FG
4272 }
4273
4274 env->ReleaseIntArrayElements(jmax_bytes_for_level_multiplier_additional,
11fdf7f2 4275 additionals, JNI_ABORT);
7c673cae
FG
4276}
4277
4278/*
4279 * Class: org_rocksdb_ColumnFamilyOptions
4280 * Method: paranoidFileChecks
4281 * Signature: (J)Z
4282 */
4283jboolean Java_org_rocksdb_ColumnFamilyOptions_paranoidFileChecks(
494da23a 4284 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
4285 return reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
4286 ->paranoid_file_checks;
7c673cae
FG
4287}
4288
4289/*
4290 * Class: org_rocksdb_ColumnFamilyOptions
4291 * Method: setParanoidFileChecks
4292 * Signature: (JZ)V
4293 */
4294void Java_org_rocksdb_ColumnFamilyOptions_setParanoidFileChecks(
494da23a 4295 JNIEnv*, jobject, jlong jhandle, jboolean jparanoid_file_checks) {
11fdf7f2
TL
4296 reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle)
4297 ->paranoid_file_checks = static_cast<bool>(jparanoid_file_checks);
7c673cae
FG
4298}
4299
4300/*
4301 * Class: org_rocksdb_ColumnFamilyOptions
4302 * Method: setCompactionPriority
4303 * Signature: (JB)V
4304 */
4305void Java_org_rocksdb_ColumnFamilyOptions_setCompactionPriority(
494da23a 4306 JNIEnv*, jobject, jlong jhandle, jbyte jcompaction_priority_value) {
7c673cae
FG
4307 auto* cf_opts = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle);
4308 cf_opts->compaction_pri =
11fdf7f2
TL
4309 rocksdb::CompactionPriorityJni::toCppCompactionPriority(
4310 jcompaction_priority_value);
7c673cae
FG
4311}
4312
4313/*
4314 * Class: org_rocksdb_ColumnFamilyOptions
4315 * Method: compactionPriority
4316 * Signature: (J)B
4317 */
494da23a
TL
4318jbyte Java_org_rocksdb_ColumnFamilyOptions_compactionPriority(
4319 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
4320 auto* cf_opts = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle);
4321 return rocksdb::CompactionPriorityJni::toJavaCompactionPriority(
4322 cf_opts->compaction_pri);
4323}
4324
4325/*
4326 * Class: org_rocksdb_ColumnFamilyOptions
4327 * Method: setReportBgIoStats
4328 * Signature: (JZ)V
4329 */
4330void Java_org_rocksdb_ColumnFamilyOptions_setReportBgIoStats(
494da23a 4331 JNIEnv*, jobject, jlong jhandle, jboolean jreport_bg_io_stats) {
7c673cae
FG
4332 auto* cf_opts = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle);
4333 cf_opts->report_bg_io_stats = static_cast<bool>(jreport_bg_io_stats);
4334}
4335
4336/*
4337 * Class: org_rocksdb_ColumnFamilyOptions
4338 * Method: reportBgIoStats
4339 * Signature: (J)Z
4340 */
494da23a
TL
4341jboolean Java_org_rocksdb_ColumnFamilyOptions_reportBgIoStats(
4342 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
4343 auto* cf_opts = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle);
4344 return static_cast<bool>(cf_opts->report_bg_io_stats);
4345}
4346
494da23a
TL
4347/*
4348 * Class: org_rocksdb_ColumnFamilyOptions
4349 * Method: setTtl
4350 * Signature: (JJ)V
4351 */
4352void Java_org_rocksdb_ColumnFamilyOptions_setTtl(
4353 JNIEnv*, jobject, jlong jhandle, jlong jttl) {
4354 auto* cf_opts = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle);
4355 cf_opts->ttl = static_cast<uint64_t>(jttl);
4356}
4357
4358/*
4359 * Class: org_rocksdb_ColumnFamilyOptions
4360 * Method: ttl
4361 * Signature: (J)J
4362 */
4363JNIEXPORT jlong JNICALL Java_org_rocksdb_ColumnFamilyOptions_ttl(
4364 JNIEnv*, jobject, jlong jhandle) {
4365 auto* cf_opts = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle);
4366 return static_cast<jlong>(cf_opts->ttl);
4367}
4368
7c673cae
FG
4369/*
4370 * Class: org_rocksdb_ColumnFamilyOptions
4371 * Method: setCompactionOptionsUniversal
4372 * Signature: (JJ)V
4373 */
4374void Java_org_rocksdb_ColumnFamilyOptions_setCompactionOptionsUniversal(
494da23a 4375 JNIEnv*, jobject, jlong jhandle,
7c673cae
FG
4376 jlong jcompaction_options_universal_handle) {
4377 auto* cf_opts = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle);
11fdf7f2
TL
4378 auto* opts_uni = reinterpret_cast<rocksdb::CompactionOptionsUniversal*>(
4379 jcompaction_options_universal_handle);
7c673cae
FG
4380 cf_opts->compaction_options_universal = *opts_uni;
4381}
4382
4383/*
4384 * Class: org_rocksdb_ColumnFamilyOptions
4385 * Method: setCompactionOptionsFIFO
4386 * Signature: (JJ)V
4387 */
4388void Java_org_rocksdb_ColumnFamilyOptions_setCompactionOptionsFIFO(
494da23a 4389 JNIEnv*, jobject, jlong jhandle, jlong jcompaction_options_fifo_handle) {
7c673cae 4390 auto* cf_opts = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle);
11fdf7f2
TL
4391 auto* opts_fifo = reinterpret_cast<rocksdb::CompactionOptionsFIFO*>(
4392 jcompaction_options_fifo_handle);
7c673cae
FG
4393 cf_opts->compaction_options_fifo = *opts_fifo;
4394}
4395
4396/*
4397 * Class: org_rocksdb_ColumnFamilyOptions
4398 * Method: setForceConsistencyChecks
4399 * Signature: (JZ)V
4400 */
4401void Java_org_rocksdb_ColumnFamilyOptions_setForceConsistencyChecks(
494da23a 4402 JNIEnv*, jobject, jlong jhandle, jboolean jforce_consistency_checks) {
7c673cae 4403 auto* cf_opts = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle);
11fdf7f2
TL
4404 cf_opts->force_consistency_checks =
4405 static_cast<bool>(jforce_consistency_checks);
7c673cae
FG
4406}
4407
4408/*
4409 * Class: org_rocksdb_ColumnFamilyOptions
4410 * Method: forceConsistencyChecks
4411 * Signature: (J)Z
4412 */
4413jboolean Java_org_rocksdb_ColumnFamilyOptions_forceConsistencyChecks(
494da23a 4414 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
4415 auto* cf_opts = reinterpret_cast<rocksdb::ColumnFamilyOptions*>(jhandle);
4416 return static_cast<bool>(cf_opts->force_consistency_checks);
4417}
4418
4419/////////////////////////////////////////////////////////////////////
4420// rocksdb::DBOptions
4421
4422/*
4423 * Class: org_rocksdb_DBOptions
4424 * Method: newDBOptions
4425 * Signature: ()J
4426 */
494da23a
TL
4427jlong Java_org_rocksdb_DBOptions_newDBOptions(
4428 JNIEnv*, jclass) {
7c673cae
FG
4429 auto* dbop = new rocksdb::DBOptions();
4430 return reinterpret_cast<jlong>(dbop);
4431}
4432
11fdf7f2
TL
4433/*
4434 * Class: org_rocksdb_DBOptions
4435 * Method: copyDBOptions
4436 * Signature: (J)J
4437 */
494da23a
TL
4438jlong Java_org_rocksdb_DBOptions_copyDBOptions(
4439 JNIEnv*, jclass, jlong jhandle) {
11fdf7f2
TL
4440 auto new_opt =
4441 new rocksdb::DBOptions(*(reinterpret_cast<rocksdb::DBOptions*>(jhandle)));
4442 return reinterpret_cast<jlong>(new_opt);
4443}
4444
494da23a
TL
4445/*
4446 * Class: org_rocksdb_DBOptions
4447 * Method: newDBOptionsFromOptions
4448 * Signature: (J)J
4449 */
4450jlong Java_org_rocksdb_DBOptions_newDBOptionsFromOptions(
4451 JNIEnv*, jclass, jlong joptions_handle) {
4452 auto new_opt =
4453 new rocksdb::DBOptions(*reinterpret_cast<rocksdb::Options*>(joptions_handle));
4454 return reinterpret_cast<jlong>(new_opt);
4455}
4456
7c673cae
FG
4457/*
4458 * Class: org_rocksdb_DBOptions
4459 * Method: getDBOptionsFromProps
4460 * Signature: (Ljava/util/String;)J
4461 */
494da23a
TL
4462jlong Java_org_rocksdb_DBOptions_getDBOptionsFromProps(
4463 JNIEnv* env, jclass, jstring jopt_string) {
7c673cae 4464 const char* opt_string = env->GetStringUTFChars(jopt_string, nullptr);
11fdf7f2 4465 if (opt_string == nullptr) {
7c673cae
FG
4466 // exception thrown: OutOfMemoryError
4467 return 0;
4468 }
4469
4470 auto* db_options = new rocksdb::DBOptions();
4471 rocksdb::Status status = rocksdb::GetDBOptionsFromString(
4472 rocksdb::DBOptions(), opt_string, db_options);
4473
4474 env->ReleaseStringUTFChars(jopt_string, opt_string);
4475
4476 // Check if DBOptions creation was possible.
4477 jlong ret_value = 0;
4478 if (status.ok()) {
4479 ret_value = reinterpret_cast<jlong>(db_options);
4480 } else {
4481 // if operation failed the DBOptions need to be deleted
4482 // again to prevent a memory leak.
4483 delete db_options;
4484 }
4485 return ret_value;
4486}
4487
4488/*
4489 * Class: org_rocksdb_DBOptions
4490 * Method: disposeInternal
4491 * Signature: (J)V
4492 */
494da23a
TL
4493void Java_org_rocksdb_DBOptions_disposeInternal(
4494 JNIEnv*, jobject, jlong handle) {
7c673cae
FG
4495 auto* dbo = reinterpret_cast<rocksdb::DBOptions*>(handle);
4496 assert(dbo != nullptr);
4497 delete dbo;
4498}
4499
4500/*
4501 * Class: org_rocksdb_DBOptions
4502 * Method: optimizeForSmallDb
4503 * Signature: (J)V
4504 */
494da23a
TL
4505void Java_org_rocksdb_DBOptions_optimizeForSmallDb(
4506 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
4507 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->OptimizeForSmallDb();
4508}
4509
4510/*
4511 * Class: org_rocksdb_DBOptions
4512 * Method: setEnv
4513 * Signature: (JJ)V
4514 */
494da23a
TL
4515void Java_org_rocksdb_DBOptions_setEnv(
4516 JNIEnv*, jobject, jlong jhandle, jlong jenv_handle) {
7c673cae
FG
4517 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->env =
4518 reinterpret_cast<rocksdb::Env*>(jenv_handle);
4519}
4520
4521/*
4522 * Class: org_rocksdb_DBOptions
4523 * Method: setIncreaseParallelism
4524 * Signature: (JI)V
4525 */
494da23a
TL
4526void Java_org_rocksdb_DBOptions_setIncreaseParallelism(
4527 JNIEnv*, jobject, jlong jhandle, jint totalThreads) {
11fdf7f2
TL
4528 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->IncreaseParallelism(
4529 static_cast<int>(totalThreads));
7c673cae
FG
4530}
4531
7c673cae
FG
4532/*
4533 * Class: org_rocksdb_DBOptions
4534 * Method: setCreateIfMissing
4535 * Signature: (JZ)V
4536 */
494da23a
TL
4537void Java_org_rocksdb_DBOptions_setCreateIfMissing(
4538 JNIEnv*, jobject, jlong jhandle, jboolean flag) {
11fdf7f2 4539 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->create_if_missing = flag;
7c673cae
FG
4540}
4541
4542/*
4543 * Class: org_rocksdb_DBOptions
4544 * Method: createIfMissing
4545 * Signature: (J)Z
4546 */
494da23a
TL
4547jboolean Java_org_rocksdb_DBOptions_createIfMissing(
4548 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
4549 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)->create_if_missing;
4550}
4551
4552/*
4553 * Class: org_rocksdb_DBOptions
4554 * Method: setCreateMissingColumnFamilies
4555 * Signature: (JZ)V
4556 */
494da23a
TL
4557void Java_org_rocksdb_DBOptions_setCreateMissingColumnFamilies(
4558 JNIEnv*, jobject, jlong jhandle, jboolean flag) {
11fdf7f2
TL
4559 reinterpret_cast<rocksdb::DBOptions*>(jhandle)
4560 ->create_missing_column_families = flag;
7c673cae
FG
4561}
4562
4563/*
4564 * Class: org_rocksdb_DBOptions
4565 * Method: createMissingColumnFamilies
4566 * Signature: (J)Z
4567 */
4568jboolean Java_org_rocksdb_DBOptions_createMissingColumnFamilies(
494da23a 4569 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
4570 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)
4571 ->create_missing_column_families;
7c673cae
FG
4572}
4573
4574/*
4575 * Class: org_rocksdb_DBOptions
4576 * Method: setErrorIfExists
4577 * Signature: (JZ)V
4578 */
494da23a
TL
4579void Java_org_rocksdb_DBOptions_setErrorIfExists(
4580 JNIEnv*, jobject, jlong jhandle, jboolean error_if_exists) {
7c673cae
FG
4581 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->error_if_exists =
4582 static_cast<bool>(error_if_exists);
4583}
4584
4585/*
4586 * Class: org_rocksdb_DBOptions
4587 * Method: errorIfExists
4588 * Signature: (J)Z
4589 */
494da23a
TL
4590jboolean Java_org_rocksdb_DBOptions_errorIfExists(
4591 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
4592 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)->error_if_exists;
4593}
4594
4595/*
4596 * Class: org_rocksdb_DBOptions
4597 * Method: setParanoidChecks
4598 * Signature: (JZ)V
4599 */
494da23a
TL
4600void Java_org_rocksdb_DBOptions_setParanoidChecks(
4601 JNIEnv*, jobject, jlong jhandle, jboolean paranoid_checks) {
7c673cae
FG
4602 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->paranoid_checks =
4603 static_cast<bool>(paranoid_checks);
4604}
4605
4606/*
4607 * Class: org_rocksdb_DBOptions
4608 * Method: paranoidChecks
4609 * Signature: (J)Z
4610 */
494da23a
TL
4611jboolean Java_org_rocksdb_DBOptions_paranoidChecks(
4612 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
4613 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)->paranoid_checks;
4614}
4615
4616/*
4617 * Class: org_rocksdb_DBOptions
4618 * Method: setRateLimiter
4619 * Signature: (JJ)V
4620 */
494da23a
TL
4621void Java_org_rocksdb_DBOptions_setRateLimiter(
4622 JNIEnv*, jobject, jlong jhandle, jlong jrate_limiter_handle) {
11fdf7f2
TL
4623 std::shared_ptr<rocksdb::RateLimiter>* pRateLimiter =
4624 reinterpret_cast<std::shared_ptr<rocksdb::RateLimiter>*>(
7c673cae
FG
4625 jrate_limiter_handle);
4626 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->rate_limiter = *pRateLimiter;
4627}
4628
11fdf7f2
TL
4629/*
4630 * Class: org_rocksdb_DBOptions
4631 * Method: setSstFileManager
4632 * Signature: (JJ)V
4633 */
4634void Java_org_rocksdb_DBOptions_setSstFileManager(
494da23a 4635 JNIEnv*, jobject, jlong jhandle, jlong jsst_file_manager_handle) {
11fdf7f2
TL
4636 auto* sptr_sst_file_manager =
4637 reinterpret_cast<std::shared_ptr<rocksdb::SstFileManager>*>(
4638 jsst_file_manager_handle);
4639 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->sst_file_manager =
4640 *sptr_sst_file_manager;
4641}
4642
7c673cae
FG
4643/*
4644 * Class: org_rocksdb_DBOptions
4645 * Method: setLogger
4646 * Signature: (JJ)V
4647 */
494da23a
TL
4648void Java_org_rocksdb_DBOptions_setLogger(
4649 JNIEnv*, jobject, jlong jhandle, jlong jlogger_handle) {
11fdf7f2
TL
4650 std::shared_ptr<rocksdb::LoggerJniCallback>* pLogger =
4651 reinterpret_cast<std::shared_ptr<rocksdb::LoggerJniCallback>*>(
7c673cae
FG
4652 jlogger_handle);
4653 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->info_log = *pLogger;
4654}
4655
4656/*
4657 * Class: org_rocksdb_DBOptions
4658 * Method: setInfoLogLevel
4659 * Signature: (JB)V
4660 */
494da23a
TL
4661void Java_org_rocksdb_DBOptions_setInfoLogLevel(
4662 JNIEnv*, jobject, jlong jhandle, jbyte jlog_level) {
7c673cae 4663 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->info_log_level =
11fdf7f2 4664 static_cast<rocksdb::InfoLogLevel>(jlog_level);
7c673cae
FG
4665}
4666
4667/*
4668 * Class: org_rocksdb_DBOptions
4669 * Method: infoLogLevel
4670 * Signature: (J)B
4671 */
494da23a
TL
4672jbyte Java_org_rocksdb_DBOptions_infoLogLevel(
4673 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
4674 return static_cast<jbyte>(
4675 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->info_log_level);
4676}
4677
4678/*
4679 * Class: org_rocksdb_DBOptions
4680 * Method: setMaxTotalWalSize
4681 * Signature: (JJ)V
4682 */
494da23a
TL
4683void Java_org_rocksdb_DBOptions_setMaxTotalWalSize(
4684 JNIEnv*, jobject, jlong jhandle, jlong jmax_total_wal_size) {
7c673cae
FG
4685 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->max_total_wal_size =
4686 static_cast<jlong>(jmax_total_wal_size);
4687}
4688
4689/*
4690 * Class: org_rocksdb_DBOptions
4691 * Method: maxTotalWalSize
4692 * Signature: (J)J
4693 */
494da23a
TL
4694jlong Java_org_rocksdb_DBOptions_maxTotalWalSize(
4695 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2 4696 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)->max_total_wal_size;
7c673cae
FG
4697}
4698
4699/*
4700 * Class: org_rocksdb_DBOptions
4701 * Method: setMaxOpenFiles
4702 * Signature: (JI)V
4703 */
494da23a
TL
4704void Java_org_rocksdb_DBOptions_setMaxOpenFiles(
4705 JNIEnv*, jobject, jlong jhandle, jint max_open_files) {
7c673cae
FG
4706 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->max_open_files =
4707 static_cast<int>(max_open_files);
4708}
4709
4710/*
4711 * Class: org_rocksdb_DBOptions
4712 * Method: maxOpenFiles
4713 * Signature: (J)I
4714 */
494da23a
TL
4715jint Java_org_rocksdb_DBOptions_maxOpenFiles(
4716 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
4717 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)->max_open_files;
4718}
4719
4720/*
4721 * Class: org_rocksdb_DBOptions
4722 * Method: setMaxFileOpeningThreads
4723 * Signature: (JI)V
4724 */
4725void Java_org_rocksdb_DBOptions_setMaxFileOpeningThreads(
494da23a 4726 JNIEnv*, jobject, jlong jhandle, jint jmax_file_opening_threads) {
7c673cae
FG
4727 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->max_file_opening_threads =
4728 static_cast<int>(jmax_file_opening_threads);
4729}
4730
4731/*
4732 * Class: org_rocksdb_DBOptions
4733 * Method: maxFileOpeningThreads
4734 * Signature: (J)I
4735 */
494da23a
TL
4736jint Java_org_rocksdb_DBOptions_maxFileOpeningThreads(
4737 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
4738 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
4739 return static_cast<int>(opt->max_file_opening_threads);
4740}
4741
4742/*
4743 * Class: org_rocksdb_DBOptions
11fdf7f2
TL
4744 * Method: setStatistics
4745 * Signature: (JJ)V
7c673cae 4746 */
494da23a
TL
4747void Java_org_rocksdb_DBOptions_setStatistics(
4748 JNIEnv*, jobject, jlong jhandle, jlong jstatistics_handle) {
11fdf7f2
TL
4749 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
4750 auto* pSptr = reinterpret_cast<std::shared_ptr<rocksdb::StatisticsJni>*>(
4751 jstatistics_handle);
4752 opt->statistics = *pSptr;
7c673cae
FG
4753}
4754
4755/*
4756 * Class: org_rocksdb_DBOptions
11fdf7f2 4757 * Method: statistics
7c673cae
FG
4758 * Signature: (J)J
4759 */
494da23a
TL
4760jlong Java_org_rocksdb_DBOptions_statistics(
4761 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
4762 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
4763 std::shared_ptr<rocksdb::Statistics> sptr = opt->statistics;
4764 if (sptr == nullptr) {
4765 return 0;
4766 } else {
4767 std::shared_ptr<rocksdb::Statistics>* pSptr =
4768 new std::shared_ptr<rocksdb::Statistics>(sptr);
4769 return reinterpret_cast<jlong>(pSptr);
4770 }
7c673cae
FG
4771}
4772
4773/*
4774 * Class: org_rocksdb_DBOptions
4775 * Method: setUseFsync
4776 * Signature: (JZ)V
4777 */
494da23a
TL
4778void Java_org_rocksdb_DBOptions_setUseFsync(
4779 JNIEnv*, jobject, jlong jhandle, jboolean use_fsync) {
7c673cae
FG
4780 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->use_fsync =
4781 static_cast<bool>(use_fsync);
4782}
4783
4784/*
4785 * Class: org_rocksdb_DBOptions
4786 * Method: useFsync
4787 * Signature: (J)Z
4788 */
494da23a
TL
4789jboolean Java_org_rocksdb_DBOptions_useFsync(
4790 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
4791 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)->use_fsync;
4792}
4793
4794/*
4795 * Class: org_rocksdb_DBOptions
4796 * Method: setDbPaths
4797 * Signature: (J[Ljava/lang/String;[J)V
4798 */
494da23a
TL
4799void Java_org_rocksdb_DBOptions_setDbPaths(
4800 JNIEnv* env, jobject, jlong jhandle, jobjectArray jpaths,
4801 jlongArray jtarget_sizes) {
7c673cae
FG
4802 std::vector<rocksdb::DbPath> db_paths;
4803 jlong* ptr_jtarget_size = env->GetLongArrayElements(jtarget_sizes, nullptr);
11fdf7f2
TL
4804 if (ptr_jtarget_size == nullptr) {
4805 // exception thrown: OutOfMemoryError
4806 return;
7c673cae
FG
4807 }
4808
4809 jboolean has_exception = JNI_FALSE;
4810 const jsize len = env->GetArrayLength(jpaths);
11fdf7f2
TL
4811 for (jsize i = 0; i < len; i++) {
4812 jobject jpath =
4813 reinterpret_cast<jstring>(env->GetObjectArrayElement(jpaths, i));
4814 if (env->ExceptionCheck()) {
7c673cae 4815 // exception thrown: ArrayIndexOutOfBoundsException
11fdf7f2 4816 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size, JNI_ABORT);
7c673cae
FG
4817 return;
4818 }
11fdf7f2 4819 std::string path = rocksdb::JniUtil::copyStdString(
7c673cae
FG
4820 env, static_cast<jstring>(jpath), &has_exception);
4821 env->DeleteLocalRef(jpath);
4822
11fdf7f2
TL
4823 if (has_exception == JNI_TRUE) {
4824 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size, JNI_ABORT);
4825 return;
7c673cae
FG
4826 }
4827
4828 jlong jtarget_size = ptr_jtarget_size[i];
4829
4830 db_paths.push_back(
4831 rocksdb::DbPath(path, static_cast<uint64_t>(jtarget_size)));
4832 }
4833
4834 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size, JNI_ABORT);
4835
4836 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
4837 opt->db_paths = db_paths;
4838}
4839
4840/*
4841 * Class: org_rocksdb_DBOptions
4842 * Method: dbPathsLen
4843 * Signature: (J)J
4844 */
494da23a
TL
4845jlong Java_org_rocksdb_DBOptions_dbPathsLen(
4846 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
4847 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
4848 return static_cast<jlong>(opt->db_paths.size());
4849}
4850
4851/*
4852 * Class: org_rocksdb_DBOptions
4853 * Method: dbPaths
4854 * Signature: (J[Ljava/lang/String;[J)V
4855 */
494da23a
TL
4856void Java_org_rocksdb_DBOptions_dbPaths(
4857 JNIEnv* env, jobject, jlong jhandle, jobjectArray jpaths,
4858 jlongArray jtarget_sizes) {
7c673cae 4859 jlong* ptr_jtarget_size = env->GetLongArrayElements(jtarget_sizes, nullptr);
11fdf7f2
TL
4860 if (ptr_jtarget_size == nullptr) {
4861 // exception thrown: OutOfMemoryError
4862 return;
7c673cae
FG
4863 }
4864
4865 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
4866 const jsize len = env->GetArrayLength(jpaths);
11fdf7f2 4867 for (jsize i = 0; i < len; i++) {
7c673cae
FG
4868 rocksdb::DbPath db_path = opt->db_paths[i];
4869
4870 jstring jpath = env->NewStringUTF(db_path.path.c_str());
11fdf7f2 4871 if (jpath == nullptr) {
7c673cae 4872 // exception thrown: OutOfMemoryError
11fdf7f2 4873 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size, JNI_ABORT);
7c673cae
FG
4874 return;
4875 }
4876 env->SetObjectArrayElement(jpaths, i, jpath);
11fdf7f2 4877 if (env->ExceptionCheck()) {
7c673cae
FG
4878 // exception thrown: ArrayIndexOutOfBoundsException
4879 env->DeleteLocalRef(jpath);
11fdf7f2 4880 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size, JNI_ABORT);
7c673cae
FG
4881 return;
4882 }
4883
4884 ptr_jtarget_size[i] = static_cast<jint>(db_path.target_size);
4885 }
4886
4887 env->ReleaseLongArrayElements(jtarget_sizes, ptr_jtarget_size, JNI_COMMIT);
4888}
4889
4890/*
4891 * Class: org_rocksdb_DBOptions
4892 * Method: setDbLogDir
4893 * Signature: (JLjava/lang/String)V
4894 */
494da23a
TL
4895void Java_org_rocksdb_DBOptions_setDbLogDir(
4896 JNIEnv* env, jobject, jlong jhandle, jstring jdb_log_dir) {
7c673cae 4897 const char* log_dir = env->GetStringUTFChars(jdb_log_dir, nullptr);
11fdf7f2 4898 if (log_dir == nullptr) {
7c673cae
FG
4899 // exception thrown: OutOfMemoryError
4900 return;
4901 }
4902
4903 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->db_log_dir.assign(log_dir);
4904 env->ReleaseStringUTFChars(jdb_log_dir, log_dir);
4905}
4906
4907/*
4908 * Class: org_rocksdb_DBOptions
4909 * Method: dbLogDir
4910 * Signature: (J)Ljava/lang/String
4911 */
494da23a
TL
4912jstring Java_org_rocksdb_DBOptions_dbLogDir(
4913 JNIEnv* env, jobject, jlong jhandle) {
7c673cae
FG
4914 return env->NewStringUTF(
4915 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->db_log_dir.c_str());
4916}
4917
4918/*
4919 * Class: org_rocksdb_DBOptions
4920 * Method: setWalDir
4921 * Signature: (JLjava/lang/String)V
4922 */
494da23a
TL
4923void Java_org_rocksdb_DBOptions_setWalDir(
4924 JNIEnv* env, jobject, jlong jhandle, jstring jwal_dir) {
7c673cae
FG
4925 const char* wal_dir = env->GetStringUTFChars(jwal_dir, 0);
4926 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->wal_dir.assign(wal_dir);
4927 env->ReleaseStringUTFChars(jwal_dir, wal_dir);
4928}
4929
4930/*
4931 * Class: org_rocksdb_DBOptions
4932 * Method: walDir
4933 * Signature: (J)Ljava/lang/String
4934 */
494da23a
TL
4935jstring Java_org_rocksdb_DBOptions_walDir(
4936 JNIEnv* env, jobject, jlong jhandle) {
7c673cae
FG
4937 return env->NewStringUTF(
4938 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->wal_dir.c_str());
4939}
4940
4941/*
4942 * Class: org_rocksdb_DBOptions
4943 * Method: setDeleteObsoleteFilesPeriodMicros
4944 * Signature: (JJ)V
4945 */
4946void Java_org_rocksdb_DBOptions_setDeleteObsoleteFilesPeriodMicros(
494da23a 4947 JNIEnv*, jobject, jlong jhandle, jlong micros) {
7c673cae 4948 reinterpret_cast<rocksdb::DBOptions*>(jhandle)
11fdf7f2 4949 ->delete_obsolete_files_period_micros = static_cast<int64_t>(micros);
7c673cae
FG
4950}
4951
4952/*
4953 * Class: org_rocksdb_DBOptions
4954 * Method: deleteObsoleteFilesPeriodMicros
4955 * Signature: (J)J
4956 */
4957jlong Java_org_rocksdb_DBOptions_deleteObsoleteFilesPeriodMicros(
494da23a 4958 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
4959 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)
4960 ->delete_obsolete_files_period_micros;
4961}
4962
4963/*
4964 * Class: org_rocksdb_DBOptions
4965 * Method: setBaseBackgroundCompactions
4966 * Signature: (JI)V
4967 */
494da23a
TL
4968void Java_org_rocksdb_DBOptions_setBaseBackgroundCompactions(
4969 JNIEnv*, jobject, jlong jhandle, jint max) {
11fdf7f2
TL
4970 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->base_background_compactions =
4971 static_cast<int>(max);
7c673cae
FG
4972}
4973
4974/*
4975 * Class: org_rocksdb_DBOptions
4976 * Method: baseBackgroundCompactions
4977 * Signature: (J)I
4978 */
494da23a
TL
4979jint Java_org_rocksdb_DBOptions_baseBackgroundCompactions(
4980 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
4981 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)
4982 ->base_background_compactions;
4983}
4984
4985/*
4986 * Class: org_rocksdb_DBOptions
4987 * Method: setMaxBackgroundCompactions
4988 * Signature: (JI)V
4989 */
494da23a
TL
4990void Java_org_rocksdb_DBOptions_setMaxBackgroundCompactions(
4991 JNIEnv*, jobject, jlong jhandle, jint max) {
11fdf7f2
TL
4992 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->max_background_compactions =
4993 static_cast<int>(max);
7c673cae
FG
4994}
4995
4996/*
4997 * Class: org_rocksdb_DBOptions
4998 * Method: maxBackgroundCompactions
4999 * Signature: (J)I
5000 */
494da23a
TL
5001jint Java_org_rocksdb_DBOptions_maxBackgroundCompactions(
5002 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
5003 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)
5004 ->max_background_compactions;
7c673cae
FG
5005}
5006
5007/*
5008 * Class: org_rocksdb_DBOptions
5009 * Method: setMaxSubcompactions
5010 * Signature: (JI)V
5011 */
494da23a
TL
5012void Java_org_rocksdb_DBOptions_setMaxSubcompactions(
5013 JNIEnv*, jobject, jlong jhandle, jint max) {
11fdf7f2
TL
5014 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->max_subcompactions =
5015 static_cast<int32_t>(max);
7c673cae
FG
5016}
5017
5018/*
5019 * Class: org_rocksdb_DBOptions
5020 * Method: maxSubcompactions
5021 * Signature: (J)I
5022 */
494da23a
TL
5023jint Java_org_rocksdb_DBOptions_maxSubcompactions(
5024 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2 5025 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)->max_subcompactions;
7c673cae
FG
5026}
5027
5028/*
5029 * Class: org_rocksdb_DBOptions
5030 * Method: setMaxBackgroundFlushes
5031 * Signature: (JI)V
5032 */
5033void Java_org_rocksdb_DBOptions_setMaxBackgroundFlushes(
494da23a 5034 JNIEnv*, jobject, jlong jhandle, jint max_background_flushes) {
7c673cae
FG
5035 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->max_background_flushes =
5036 static_cast<int>(max_background_flushes);
5037}
5038
5039/*
5040 * Class: org_rocksdb_DBOptions
5041 * Method: maxBackgroundFlushes
5042 * Signature: (J)I
5043 */
494da23a
TL
5044jint Java_org_rocksdb_DBOptions_maxBackgroundFlushes(
5045 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
5046 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)->max_background_flushes;
5047}
5048
5049/*
5050 * Class: org_rocksdb_DBOptions
5051 * Method: setMaxBackgroundJobs
5052 * Signature: (JI)V
5053 */
494da23a
TL
5054void Java_org_rocksdb_DBOptions_setMaxBackgroundJobs(
5055 JNIEnv*, jobject, jlong jhandle, jint max_background_jobs) {
11fdf7f2
TL
5056 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->max_background_jobs =
5057 static_cast<int>(max_background_jobs);
5058}
5059
5060/*
5061 * Class: org_rocksdb_DBOptions
5062 * Method: maxBackgroundJobs
5063 * Signature: (J)I
5064 */
494da23a
TL
5065jint Java_org_rocksdb_DBOptions_maxBackgroundJobs(
5066 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2 5067 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)->max_background_jobs;
7c673cae
FG
5068}
5069
5070/*
5071 * Class: org_rocksdb_DBOptions
5072 * Method: setMaxLogFileSize
5073 * Signature: (JJ)V
5074 */
494da23a
TL
5075void Java_org_rocksdb_DBOptions_setMaxLogFileSize(
5076 JNIEnv* env, jobject, jlong jhandle, jlong max_log_file_size) {
5077 auto s = rocksdb::JniUtil::check_if_jlong_fits_size_t(max_log_file_size);
7c673cae
FG
5078 if (s.ok()) {
5079 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->max_log_file_size =
5080 max_log_file_size;
5081 } else {
5082 rocksdb::IllegalArgumentExceptionJni::ThrowNew(env, s);
5083 }
5084}
5085
5086/*
5087 * Class: org_rocksdb_DBOptions
5088 * Method: maxLogFileSize
5089 * Signature: (J)J
5090 */
494da23a
TL
5091jlong Java_org_rocksdb_DBOptions_maxLogFileSize(
5092 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5093 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)->max_log_file_size;
5094}
5095
5096/*
5097 * Class: org_rocksdb_DBOptions
5098 * Method: setLogFileTimeToRoll
5099 * Signature: (JJ)V
5100 */
5101void Java_org_rocksdb_DBOptions_setLogFileTimeToRoll(
494da23a
TL
5102 JNIEnv* env, jobject, jlong jhandle, jlong log_file_time_to_roll) {
5103 auto s =
5104 rocksdb::JniUtil::check_if_jlong_fits_size_t(log_file_time_to_roll);
7c673cae
FG
5105 if (s.ok()) {
5106 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->log_file_time_to_roll =
5107 log_file_time_to_roll;
5108 } else {
5109 rocksdb::IllegalArgumentExceptionJni::ThrowNew(env, s);
5110 }
5111}
5112
5113/*
5114 * Class: org_rocksdb_DBOptions
5115 * Method: logFileTimeToRoll
5116 * Signature: (J)J
5117 */
494da23a
TL
5118jlong Java_org_rocksdb_DBOptions_logFileTimeToRoll(
5119 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5120 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)->log_file_time_to_roll;
5121}
5122
5123/*
5124 * Class: org_rocksdb_DBOptions
5125 * Method: setKeepLogFileNum
5126 * Signature: (JJ)V
5127 */
494da23a
TL
5128void Java_org_rocksdb_DBOptions_setKeepLogFileNum(
5129 JNIEnv* env, jobject, jlong jhandle, jlong keep_log_file_num) {
5130 auto s = rocksdb::JniUtil::check_if_jlong_fits_size_t(keep_log_file_num);
7c673cae
FG
5131 if (s.ok()) {
5132 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->keep_log_file_num =
5133 keep_log_file_num;
5134 } else {
5135 rocksdb::IllegalArgumentExceptionJni::ThrowNew(env, s);
5136 }
5137}
5138
5139/*
5140 * Class: org_rocksdb_DBOptions
5141 * Method: keepLogFileNum
5142 * Signature: (J)J
5143 */
494da23a
TL
5144jlong Java_org_rocksdb_DBOptions_keepLogFileNum(
5145 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5146 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)->keep_log_file_num;
5147}
5148
5149/*
5150 * Class: org_rocksdb_DBOptions
5151 * Method: setRecycleLogFileNum
5152 * Signature: (JJ)V
5153 */
5154void Java_org_rocksdb_DBOptions_setRecycleLogFileNum(
494da23a
TL
5155 JNIEnv* env, jobject, jlong jhandle, jlong recycle_log_file_num) {
5156 auto s = rocksdb::JniUtil::check_if_jlong_fits_size_t(recycle_log_file_num);
7c673cae
FG
5157 if (s.ok()) {
5158 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->recycle_log_file_num =
5159 recycle_log_file_num;
5160 } else {
5161 rocksdb::IllegalArgumentExceptionJni::ThrowNew(env, s);
5162 }
5163}
5164
5165/*
5166 * Class: org_rocksdb_DBOptions
5167 * Method: recycleLogFileNum
5168 * Signature: (J)J
5169 */
494da23a
TL
5170jlong Java_org_rocksdb_DBOptions_recycleLogFileNum(
5171 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5172 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)->recycle_log_file_num;
5173}
5174
5175/*
5176 * Class: org_rocksdb_DBOptions
5177 * Method: setMaxManifestFileSize
5178 * Signature: (JJ)V
5179 */
5180void Java_org_rocksdb_DBOptions_setMaxManifestFileSize(
494da23a 5181 JNIEnv*, jobject, jlong jhandle, jlong max_manifest_file_size) {
7c673cae
FG
5182 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->max_manifest_file_size =
5183 static_cast<int64_t>(max_manifest_file_size);
5184}
5185
5186/*
5187 * Class: org_rocksdb_DBOptions
5188 * Method: maxManifestFileSize
5189 * Signature: (J)J
5190 */
494da23a
TL
5191jlong Java_org_rocksdb_DBOptions_maxManifestFileSize(
5192 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2 5193 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)->max_manifest_file_size;
7c673cae
FG
5194}
5195
5196/*
5197 * Class: org_rocksdb_DBOptions
5198 * Method: setTableCacheNumshardbits
5199 * Signature: (JI)V
5200 */
5201void Java_org_rocksdb_DBOptions_setTableCacheNumshardbits(
494da23a 5202 JNIEnv*, jobject, jlong jhandle, jint table_cache_numshardbits) {
7c673cae
FG
5203 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->table_cache_numshardbits =
5204 static_cast<int>(table_cache_numshardbits);
5205}
5206
5207/*
5208 * Class: org_rocksdb_DBOptions
5209 * Method: tableCacheNumshardbits
5210 * Signature: (J)I
5211 */
494da23a
TL
5212jint Java_org_rocksdb_DBOptions_tableCacheNumshardbits(
5213 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
5214 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)
5215 ->table_cache_numshardbits;
7c673cae
FG
5216}
5217
5218/*
5219 * Class: org_rocksdb_DBOptions
5220 * Method: setWalTtlSeconds
5221 * Signature: (JJ)V
5222 */
494da23a
TL
5223void Java_org_rocksdb_DBOptions_setWalTtlSeconds(
5224 JNIEnv*, jobject, jlong jhandle, jlong WAL_ttl_seconds) {
7c673cae
FG
5225 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->WAL_ttl_seconds =
5226 static_cast<int64_t>(WAL_ttl_seconds);
5227}
5228
5229/*
5230 * Class: org_rocksdb_DBOptions
5231 * Method: walTtlSeconds
5232 * Signature: (J)J
5233 */
494da23a
TL
5234jlong Java_org_rocksdb_DBOptions_walTtlSeconds(
5235 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5236 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)->WAL_ttl_seconds;
5237}
5238
5239/*
5240 * Class: org_rocksdb_DBOptions
5241 * Method: setWalSizeLimitMB
5242 * Signature: (JJ)V
5243 */
494da23a
TL
5244void Java_org_rocksdb_DBOptions_setWalSizeLimitMB(
5245 JNIEnv*, jobject, jlong jhandle, jlong WAL_size_limit_MB) {
7c673cae
FG
5246 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->WAL_size_limit_MB =
5247 static_cast<int64_t>(WAL_size_limit_MB);
5248}
5249
5250/*
5251 * Class: org_rocksdb_DBOptions
5252 * Method: walTtlSeconds
5253 * Signature: (J)J
5254 */
494da23a
TL
5255jlong Java_org_rocksdb_DBOptions_walSizeLimitMB(
5256 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5257 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)->WAL_size_limit_MB;
5258}
5259
5260/*
5261 * Class: org_rocksdb_DBOptions
5262 * Method: setManifestPreallocationSize
5263 * Signature: (JJ)V
5264 */
5265void Java_org_rocksdb_DBOptions_setManifestPreallocationSize(
494da23a
TL
5266 JNIEnv* env, jobject, jlong jhandle, jlong preallocation_size) {
5267 auto s = rocksdb::JniUtil::check_if_jlong_fits_size_t(preallocation_size);
7c673cae 5268 if (s.ok()) {
11fdf7f2
TL
5269 reinterpret_cast<rocksdb::DBOptions*>(jhandle)
5270 ->manifest_preallocation_size = preallocation_size;
7c673cae
FG
5271 } else {
5272 rocksdb::IllegalArgumentExceptionJni::ThrowNew(env, s);
5273 }
5274}
5275
5276/*
5277 * Class: org_rocksdb_DBOptions
5278 * Method: manifestPreallocationSize
5279 * Signature: (J)J
5280 */
494da23a
TL
5281jlong Java_org_rocksdb_DBOptions_manifestPreallocationSize(
5282 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5283 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)
5284 ->manifest_preallocation_size;
5285}
5286
5287/*
5288 * Class: org_rocksdb_DBOptions
5289 * Method: useDirectReads
5290 * Signature: (J)Z
5291 */
494da23a
TL
5292jboolean Java_org_rocksdb_DBOptions_useDirectReads(
5293 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5294 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)->use_direct_reads;
5295}
5296
5297/*
5298 * Class: org_rocksdb_DBOptions
5299 * Method: setUseDirectReads
5300 * Signature: (JZ)V
5301 */
494da23a
TL
5302void Java_org_rocksdb_DBOptions_setUseDirectReads(
5303 JNIEnv*, jobject, jlong jhandle, jboolean use_direct_reads) {
7c673cae
FG
5304 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->use_direct_reads =
5305 static_cast<bool>(use_direct_reads);
5306}
5307
5308/*
5309 * Class: org_rocksdb_DBOptions
5310 * Method: useDirectIoForFlushAndCompaction
5311 * Signature: (J)Z
5312 */
5313jboolean Java_org_rocksdb_DBOptions_useDirectIoForFlushAndCompaction(
494da23a 5314 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5315 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)
5316 ->use_direct_io_for_flush_and_compaction;
5317}
5318
5319/*
5320 * Class: org_rocksdb_DBOptions
5321 * Method: setUseDirectReads
5322 * Signature: (JZ)V
5323 */
5324void Java_org_rocksdb_DBOptions_setUseDirectIoForFlushAndCompaction(
494da23a 5325 JNIEnv*, jobject, jlong jhandle,
7c673cae
FG
5326 jboolean use_direct_io_for_flush_and_compaction) {
5327 reinterpret_cast<rocksdb::DBOptions*>(jhandle)
5328 ->use_direct_io_for_flush_and_compaction =
5329 static_cast<bool>(use_direct_io_for_flush_and_compaction);
5330}
5331
5332/*
5333 * Class: org_rocksdb_DBOptions
5334 * Method: setAllowFAllocate
5335 * Signature: (JZ)V
5336 */
494da23a
TL
5337void Java_org_rocksdb_DBOptions_setAllowFAllocate(
5338 JNIEnv*, jobject, jlong jhandle, jboolean jallow_fallocate) {
7c673cae
FG
5339 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->allow_fallocate =
5340 static_cast<bool>(jallow_fallocate);
5341}
5342
5343/*
5344 * Class: org_rocksdb_DBOptions
5345 * Method: allowFAllocate
5346 * Signature: (J)Z
5347 */
494da23a
TL
5348jboolean Java_org_rocksdb_DBOptions_allowFAllocate(
5349 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5350 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5351 return static_cast<jboolean>(opt->allow_fallocate);
5352}
5353
5354/*
5355 * Class: org_rocksdb_DBOptions
5356 * Method: setAllowMmapReads
5357 * Signature: (JZ)V
5358 */
494da23a
TL
5359void Java_org_rocksdb_DBOptions_setAllowMmapReads(
5360 JNIEnv*, jobject, jlong jhandle, jboolean allow_mmap_reads) {
7c673cae
FG
5361 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->allow_mmap_reads =
5362 static_cast<bool>(allow_mmap_reads);
5363}
5364
5365/*
5366 * Class: org_rocksdb_DBOptions
5367 * Method: allowMmapReads
5368 * Signature: (J)Z
5369 */
494da23a
TL
5370jboolean Java_org_rocksdb_DBOptions_allowMmapReads(
5371 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5372 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)->allow_mmap_reads;
5373}
5374
5375/*
5376 * Class: org_rocksdb_DBOptions
5377 * Method: setAllowMmapWrites
5378 * Signature: (JZ)V
5379 */
494da23a
TL
5380void Java_org_rocksdb_DBOptions_setAllowMmapWrites(
5381 JNIEnv*, jobject, jlong jhandle, jboolean allow_mmap_writes) {
7c673cae
FG
5382 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->allow_mmap_writes =
5383 static_cast<bool>(allow_mmap_writes);
5384}
5385
5386/*
5387 * Class: org_rocksdb_DBOptions
5388 * Method: allowMmapWrites
5389 * Signature: (J)Z
5390 */
494da23a
TL
5391jboolean Java_org_rocksdb_DBOptions_allowMmapWrites(
5392 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5393 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)->allow_mmap_writes;
5394}
5395
5396/*
5397 * Class: org_rocksdb_DBOptions
5398 * Method: setIsFdCloseOnExec
5399 * Signature: (JZ)V
5400 */
5401void Java_org_rocksdb_DBOptions_setIsFdCloseOnExec(
494da23a 5402 JNIEnv*, jobject, jlong jhandle, jboolean is_fd_close_on_exec) {
7c673cae
FG
5403 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->is_fd_close_on_exec =
5404 static_cast<bool>(is_fd_close_on_exec);
5405}
5406
5407/*
5408 * Class: org_rocksdb_DBOptions
5409 * Method: isFdCloseOnExec
5410 * Signature: (J)Z
5411 */
494da23a
TL
5412jboolean Java_org_rocksdb_DBOptions_isFdCloseOnExec(
5413 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5414 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)->is_fd_close_on_exec;
5415}
5416
5417/*
5418 * Class: org_rocksdb_DBOptions
5419 * Method: setStatsDumpPeriodSec
5420 * Signature: (JI)V
5421 */
5422void Java_org_rocksdb_DBOptions_setStatsDumpPeriodSec(
494da23a 5423 JNIEnv*, jobject, jlong jhandle, jint stats_dump_period_sec) {
7c673cae
FG
5424 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->stats_dump_period_sec =
5425 static_cast<int>(stats_dump_period_sec);
5426}
5427
5428/*
5429 * Class: org_rocksdb_DBOptions
5430 * Method: statsDumpPeriodSec
5431 * Signature: (J)I
5432 */
494da23a
TL
5433jint Java_org_rocksdb_DBOptions_statsDumpPeriodSec(
5434 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5435 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)->stats_dump_period_sec;
5436}
5437
5438/*
5439 * Class: org_rocksdb_DBOptions
5440 * Method: setAdviseRandomOnOpen
5441 * Signature: (JZ)V
5442 */
5443void Java_org_rocksdb_DBOptions_setAdviseRandomOnOpen(
494da23a 5444 JNIEnv*, jobject, jlong jhandle, jboolean advise_random_on_open) {
7c673cae
FG
5445 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->advise_random_on_open =
5446 static_cast<bool>(advise_random_on_open);
5447}
5448
5449/*
5450 * Class: org_rocksdb_DBOptions
5451 * Method: adviseRandomOnOpen
5452 * Signature: (J)Z
5453 */
494da23a
TL
5454jboolean Java_org_rocksdb_DBOptions_adviseRandomOnOpen(
5455 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5456 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)->advise_random_on_open;
5457}
5458
5459/*
5460 * Class: org_rocksdb_DBOptions
5461 * Method: setDbWriteBufferSize
5462 * Signature: (JJ)V
5463 */
5464void Java_org_rocksdb_DBOptions_setDbWriteBufferSize(
494da23a 5465 JNIEnv*, jobject, jlong jhandle, jlong jdb_write_buffer_size) {
7c673cae
FG
5466 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5467 opt->db_write_buffer_size = static_cast<size_t>(jdb_write_buffer_size);
5468}
5469
494da23a
TL
5470/*
5471 * Class: org_rocksdb_DBOptions
5472 * Method: setWriteBufferManager
5473 * Signature: (JJ)V
5474 */
5475void Java_org_rocksdb_DBOptions_setWriteBufferManager(
5476 JNIEnv*, jobject, jlong jdb_options_handle,
5477 jlong jwrite_buffer_manager_handle) {
5478 auto* write_buffer_manager =
5479 reinterpret_cast<std::shared_ptr<rocksdb::WriteBufferManager> *>(jwrite_buffer_manager_handle);
5480 reinterpret_cast<rocksdb::DBOptions*>(jdb_options_handle)->write_buffer_manager =
5481 *write_buffer_manager;
5482}
5483
7c673cae
FG
5484/*
5485 * Class: org_rocksdb_DBOptions
5486 * Method: dbWriteBufferSize
5487 * Signature: (J)J
5488 */
494da23a
TL
5489jlong Java_org_rocksdb_DBOptions_dbWriteBufferSize(
5490 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5491 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5492 return static_cast<jlong>(opt->db_write_buffer_size);
5493}
5494
5495/*
5496 * Class: org_rocksdb_DBOptions
5497 * Method: setAccessHintOnCompactionStart
5498 * Signature: (JB)V
5499 */
5500void Java_org_rocksdb_DBOptions_setAccessHintOnCompactionStart(
494da23a 5501 JNIEnv*, jobject, jlong jhandle, jbyte jaccess_hint_value) {
7c673cae
FG
5502 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5503 opt->access_hint_on_compaction_start =
5504 rocksdb::AccessHintJni::toCppAccessHint(jaccess_hint_value);
5505}
5506
5507/*
5508 * Class: org_rocksdb_DBOptions
5509 * Method: accessHintOnCompactionStart
5510 * Signature: (J)B
5511 */
494da23a
TL
5512jbyte Java_org_rocksdb_DBOptions_accessHintOnCompactionStart(
5513 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5514 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5515 return rocksdb::AccessHintJni::toJavaAccessHint(
5516 opt->access_hint_on_compaction_start);
5517}
5518
5519/*
5520 * Class: org_rocksdb_DBOptions
5521 * Method: setNewTableReaderForCompactionInputs
5522 * Signature: (JZ)V
5523 */
5524void Java_org_rocksdb_DBOptions_setNewTableReaderForCompactionInputs(
494da23a 5525 JNIEnv*, jobject, jlong jhandle,
7c673cae
FG
5526 jboolean jnew_table_reader_for_compaction_inputs) {
5527 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5528 opt->new_table_reader_for_compaction_inputs =
5529 static_cast<bool>(jnew_table_reader_for_compaction_inputs);
5530}
5531
5532/*
5533 * Class: org_rocksdb_DBOptions
5534 * Method: newTableReaderForCompactionInputs
5535 * Signature: (J)Z
5536 */
5537jboolean Java_org_rocksdb_DBOptions_newTableReaderForCompactionInputs(
494da23a 5538 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5539 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5540 return static_cast<bool>(opt->new_table_reader_for_compaction_inputs);
5541}
5542
5543/*
5544 * Class: org_rocksdb_DBOptions
5545 * Method: setCompactionReadaheadSize
5546 * Signature: (JJ)V
5547 */
5548void Java_org_rocksdb_DBOptions_setCompactionReadaheadSize(
494da23a 5549 JNIEnv*, jobject, jlong jhandle, jlong jcompaction_readahead_size) {
7c673cae
FG
5550 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5551 opt->compaction_readahead_size =
5552 static_cast<size_t>(jcompaction_readahead_size);
5553}
5554
5555/*
5556 * Class: org_rocksdb_DBOptions
5557 * Method: compactionReadaheadSize
5558 * Signature: (J)J
5559 */
494da23a
TL
5560jlong Java_org_rocksdb_DBOptions_compactionReadaheadSize(
5561 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5562 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5563 return static_cast<jlong>(opt->compaction_readahead_size);
5564}
5565
5566/*
5567 * Class: org_rocksdb_DBOptions
5568 * Method: setRandomAccessMaxBufferSize
5569 * Signature: (JJ)V
5570 */
5571void Java_org_rocksdb_DBOptions_setRandomAccessMaxBufferSize(
494da23a 5572 JNIEnv*, jobject, jlong jhandle, jlong jrandom_access_max_buffer_size) {
7c673cae
FG
5573 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5574 opt->random_access_max_buffer_size =
5575 static_cast<size_t>(jrandom_access_max_buffer_size);
5576}
5577
5578/*
5579 * Class: org_rocksdb_DBOptions
5580 * Method: randomAccessMaxBufferSize
5581 * Signature: (J)J
5582 */
494da23a
TL
5583jlong Java_org_rocksdb_DBOptions_randomAccessMaxBufferSize(
5584 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5585 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5586 return static_cast<jlong>(opt->random_access_max_buffer_size);
5587}
5588
5589/*
5590 * Class: org_rocksdb_DBOptions
5591 * Method: setWritableFileMaxBufferSize
5592 * Signature: (JJ)V
5593 */
5594void Java_org_rocksdb_DBOptions_setWritableFileMaxBufferSize(
494da23a 5595 JNIEnv*, jobject, jlong jhandle, jlong jwritable_file_max_buffer_size) {
7c673cae
FG
5596 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5597 opt->writable_file_max_buffer_size =
5598 static_cast<size_t>(jwritable_file_max_buffer_size);
5599}
5600
5601/*
5602 * Class: org_rocksdb_DBOptions
5603 * Method: writableFileMaxBufferSize
5604 * Signature: (J)J
5605 */
494da23a
TL
5606jlong Java_org_rocksdb_DBOptions_writableFileMaxBufferSize(
5607 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5608 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5609 return static_cast<jlong>(opt->writable_file_max_buffer_size);
5610}
5611
5612/*
5613 * Class: org_rocksdb_DBOptions
5614 * Method: setUseAdaptiveMutex
5615 * Signature: (JZ)V
5616 */
5617void Java_org_rocksdb_DBOptions_setUseAdaptiveMutex(
494da23a 5618 JNIEnv*, jobject, jlong jhandle, jboolean use_adaptive_mutex) {
7c673cae
FG
5619 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->use_adaptive_mutex =
5620 static_cast<bool>(use_adaptive_mutex);
5621}
5622
5623/*
5624 * Class: org_rocksdb_DBOptions
5625 * Method: useAdaptiveMutex
5626 * Signature: (J)Z
5627 */
494da23a
TL
5628jboolean Java_org_rocksdb_DBOptions_useAdaptiveMutex(
5629 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5630 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)->use_adaptive_mutex;
5631}
5632
5633/*
5634 * Class: org_rocksdb_DBOptions
5635 * Method: setBytesPerSync
5636 * Signature: (JJ)V
5637 */
494da23a
TL
5638void Java_org_rocksdb_DBOptions_setBytesPerSync(
5639 JNIEnv*, jobject, jlong jhandle, jlong bytes_per_sync) {
7c673cae
FG
5640 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->bytes_per_sync =
5641 static_cast<int64_t>(bytes_per_sync);
5642}
5643
5644/*
5645 * Class: org_rocksdb_DBOptions
5646 * Method: bytesPerSync
5647 * Signature: (J)J
5648 */
494da23a
TL
5649jlong Java_org_rocksdb_DBOptions_bytesPerSync(
5650 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5651 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)->bytes_per_sync;
5652}
5653
5654/*
5655 * Class: org_rocksdb_DBOptions
5656 * Method: setWalBytesPerSync
5657 * Signature: (JJ)V
5658 */
494da23a
TL
5659void Java_org_rocksdb_DBOptions_setWalBytesPerSync(
5660 JNIEnv*, jobject, jlong jhandle, jlong jwal_bytes_per_sync) {
7c673cae
FG
5661 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->wal_bytes_per_sync =
5662 static_cast<int64_t>(jwal_bytes_per_sync);
5663}
5664
5665/*
5666 * Class: org_rocksdb_DBOptions
5667 * Method: walBytesPerSync
5668 * Signature: (J)J
5669 */
494da23a
TL
5670jlong Java_org_rocksdb_DBOptions_walBytesPerSync(
5671 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5672 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5673 return static_cast<jlong>(opt->wal_bytes_per_sync);
5674}
5675
5676/*
5677 * Class: org_rocksdb_DBOptions
494da23a
TL
5678 * Method: setDelayedWriteRate
5679 * Signature: (JJ)V
5680 */
5681void Java_org_rocksdb_DBOptions_setDelayedWriteRate(
5682 JNIEnv*, jobject, jlong jhandle, jlong jdelayed_write_rate) {
5683 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5684 opt->delayed_write_rate = static_cast<uint64_t>(jdelayed_write_rate);
5685}
5686
5687/*
5688 * Class: org_rocksdb_DBOptions
5689 * Method: delayedWriteRate
5690 * Signature: (J)J
5691 */
5692jlong Java_org_rocksdb_DBOptions_delayedWriteRate(
5693 JNIEnv*, jobject, jlong jhandle) {
5694 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5695 return static_cast<jlong>(opt->delayed_write_rate);
5696}
5697
5698/*
5699 * Class: org_rocksdb_DBOptions
5700 * Method: setEnablePipelinedWrite
7c673cae
FG
5701 * Signature: (JZ)V
5702 */
494da23a
TL
5703void Java_org_rocksdb_DBOptions_setEnablePipelinedWrite(
5704 JNIEnv*, jobject, jlong jhandle, jboolean jenable_pipelined_write) {
7c673cae 5705 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
494da23a 5706 opt->enable_pipelined_write = jenable_pipelined_write == JNI_TRUE;
7c673cae
FG
5707}
5708
5709/*
5710 * Class: org_rocksdb_DBOptions
494da23a 5711 * Method: enablePipelinedWrite
7c673cae
FG
5712 * Signature: (J)Z
5713 */
494da23a
TL
5714jboolean Java_org_rocksdb_DBOptions_enablePipelinedWrite(
5715 JNIEnv*, jobject, jlong jhandle) {
7c673cae 5716 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
494da23a 5717 return static_cast<jboolean>(opt->enable_pipelined_write);
7c673cae
FG
5718}
5719
5720/*
5721 * Class: org_rocksdb_DBOptions
494da23a
TL
5722 * Method: setEnableThreadTracking
5723 * Signature: (JZ)V
7c673cae 5724 */
494da23a
TL
5725void Java_org_rocksdb_DBOptions_setEnableThreadTracking(
5726 JNIEnv*, jobject, jlong jhandle, jboolean jenable_thread_tracking) {
7c673cae 5727 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
494da23a 5728 opt->enable_thread_tracking = jenable_thread_tracking == JNI_TRUE;
7c673cae
FG
5729}
5730
5731/*
5732 * Class: org_rocksdb_DBOptions
494da23a
TL
5733 * Method: enableThreadTracking
5734 * Signature: (J)Z
7c673cae 5735 */
494da23a
TL
5736jboolean Java_org_rocksdb_DBOptions_enableThreadTracking(
5737 JNIEnv*, jobject, jlong jhandle) {
7c673cae 5738 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
494da23a 5739 return static_cast<jboolean>(opt->enable_thread_tracking);
7c673cae
FG
5740}
5741
5742/*
5743 * Class: org_rocksdb_DBOptions
5744 * Method: setAllowConcurrentMemtableWrite
5745 * Signature: (JZ)V
5746 */
5747void Java_org_rocksdb_DBOptions_setAllowConcurrentMemtableWrite(
494da23a 5748 JNIEnv*, jobject, jlong jhandle, jboolean allow) {
11fdf7f2
TL
5749 reinterpret_cast<rocksdb::DBOptions*>(jhandle)
5750 ->allow_concurrent_memtable_write = static_cast<bool>(allow);
7c673cae
FG
5751}
5752
5753/*
5754 * Class: org_rocksdb_DBOptions
5755 * Method: allowConcurrentMemtableWrite
5756 * Signature: (J)Z
5757 */
5758jboolean Java_org_rocksdb_DBOptions_allowConcurrentMemtableWrite(
494da23a 5759 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
5760 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)
5761 ->allow_concurrent_memtable_write;
7c673cae
FG
5762}
5763
5764/*
5765 * Class: org_rocksdb_DBOptions
5766 * Method: setEnableWriteThreadAdaptiveYield
5767 * Signature: (JZ)V
5768 */
5769void Java_org_rocksdb_DBOptions_setEnableWriteThreadAdaptiveYield(
494da23a 5770 JNIEnv*, jobject, jlong jhandle, jboolean yield) {
11fdf7f2
TL
5771 reinterpret_cast<rocksdb::DBOptions*>(jhandle)
5772 ->enable_write_thread_adaptive_yield = static_cast<bool>(yield);
7c673cae
FG
5773}
5774
5775/*
5776 * Class: org_rocksdb_DBOptions
5777 * Method: enableWriteThreadAdaptiveYield
5778 * Signature: (J)Z
5779 */
5780jboolean Java_org_rocksdb_DBOptions_enableWriteThreadAdaptiveYield(
494da23a 5781 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
5782 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)
5783 ->enable_write_thread_adaptive_yield;
7c673cae
FG
5784}
5785
5786/*
5787 * Class: org_rocksdb_DBOptions
5788 * Method: setWriteThreadMaxYieldUsec
5789 * Signature: (JJ)V
5790 */
494da23a
TL
5791void Java_org_rocksdb_DBOptions_setWriteThreadMaxYieldUsec(
5792 JNIEnv*, jobject, jlong jhandle, jlong max) {
11fdf7f2
TL
5793 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->write_thread_max_yield_usec =
5794 static_cast<int64_t>(max);
7c673cae
FG
5795}
5796
5797/*
5798 * Class: org_rocksdb_DBOptions
5799 * Method: writeThreadMaxYieldUsec
5800 * Signature: (J)J
5801 */
494da23a
TL
5802jlong Java_org_rocksdb_DBOptions_writeThreadMaxYieldUsec(
5803 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
5804 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)
5805 ->write_thread_max_yield_usec;
7c673cae
FG
5806}
5807
5808/*
5809 * Class: org_rocksdb_DBOptions
5810 * Method: setWriteThreadSlowYieldUsec
5811 * Signature: (JJ)V
5812 */
494da23a
TL
5813void Java_org_rocksdb_DBOptions_setWriteThreadSlowYieldUsec(
5814 JNIEnv*, jobject, jlong jhandle, jlong slow) {
11fdf7f2
TL
5815 reinterpret_cast<rocksdb::DBOptions*>(jhandle)->write_thread_slow_yield_usec =
5816 static_cast<int64_t>(slow);
7c673cae
FG
5817}
5818
5819/*
5820 * Class: org_rocksdb_DBOptions
5821 * Method: writeThreadSlowYieldUsec
5822 * Signature: (J)J
5823 */
494da23a
TL
5824jlong Java_org_rocksdb_DBOptions_writeThreadSlowYieldUsec(
5825 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
5826 return reinterpret_cast<rocksdb::DBOptions*>(jhandle)
5827 ->write_thread_slow_yield_usec;
7c673cae
FG
5828}
5829
5830/*
5831 * Class: org_rocksdb_DBOptions
5832 * Method: setSkipStatsUpdateOnDbOpen
5833 * Signature: (JZ)V
5834 */
5835void Java_org_rocksdb_DBOptions_setSkipStatsUpdateOnDbOpen(
494da23a 5836 JNIEnv*, jobject, jlong jhandle, jboolean jskip_stats_update_on_db_open) {
7c673cae
FG
5837 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5838 opt->skip_stats_update_on_db_open =
5839 static_cast<bool>(jskip_stats_update_on_db_open);
5840}
5841
5842/*
5843 * Class: org_rocksdb_DBOptions
5844 * Method: skipStatsUpdateOnDbOpen
5845 * Signature: (J)Z
5846 */
494da23a
TL
5847jboolean Java_org_rocksdb_DBOptions_skipStatsUpdateOnDbOpen(
5848 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5849 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5850 return static_cast<jboolean>(opt->skip_stats_update_on_db_open);
5851}
5852
5853/*
5854 * Class: org_rocksdb_DBOptions
5855 * Method: setWalRecoveryMode
5856 * Signature: (JB)V
5857 */
5858void Java_org_rocksdb_DBOptions_setWalRecoveryMode(
494da23a 5859 JNIEnv*, jobject, jlong jhandle, jbyte jwal_recovery_mode_value) {
7c673cae 5860 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
11fdf7f2
TL
5861 opt->wal_recovery_mode = rocksdb::WALRecoveryModeJni::toCppWALRecoveryMode(
5862 jwal_recovery_mode_value);
7c673cae
FG
5863}
5864
5865/*
5866 * Class: org_rocksdb_DBOptions
5867 * Method: walRecoveryMode
5868 * Signature: (J)B
5869 */
494da23a
TL
5870jbyte Java_org_rocksdb_DBOptions_walRecoveryMode(
5871 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5872 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5873 return rocksdb::WALRecoveryModeJni::toJavaWALRecoveryMode(
5874 opt->wal_recovery_mode);
5875}
5876
5877/*
5878 * Class: org_rocksdb_DBOptions
5879 * Method: setAllow2pc
5880 * Signature: (JZ)V
5881 */
494da23a
TL
5882void Java_org_rocksdb_DBOptions_setAllow2pc(
5883 JNIEnv*, jobject, jlong jhandle, jboolean jallow_2pc) {
7c673cae
FG
5884 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5885 opt->allow_2pc = static_cast<bool>(jallow_2pc);
5886}
5887
5888/*
5889 * Class: org_rocksdb_DBOptions
5890 * Method: allow2pc
5891 * Signature: (J)Z
5892 */
494da23a
TL
5893jboolean Java_org_rocksdb_DBOptions_allow2pc(
5894 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5895 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5896 return static_cast<jboolean>(opt->allow_2pc);
5897}
5898
5899/*
5900 * Class: org_rocksdb_DBOptions
5901 * Method: setRowCache
5902 * Signature: (JJ)V
5903 */
494da23a
TL
5904void Java_org_rocksdb_DBOptions_setRowCache(
5905 JNIEnv*, jobject, jlong jhandle, jlong jrow_cache_handle) {
7c673cae 5906 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
11fdf7f2
TL
5907 auto* row_cache =
5908 reinterpret_cast<std::shared_ptr<rocksdb::Cache>*>(jrow_cache_handle);
7c673cae
FG
5909 opt->row_cache = *row_cache;
5910}
5911
494da23a
TL
5912/*
5913 * Class: org_rocksdb_DBOptions
5914 * Method: setWalFilter
5915 * Signature: (JJ)V
5916 */
5917void Java_org_rocksdb_DBOptions_setWalFilter(
5918 JNIEnv*, jobject, jlong jhandle, jlong jwal_filter_handle) {
5919 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5920 auto* wal_filter =
5921 reinterpret_cast<rocksdb::WalFilterJniCallback*>(jwal_filter_handle);
5922 opt->wal_filter = wal_filter;
5923}
5924
7c673cae
FG
5925/*
5926 * Class: org_rocksdb_DBOptions
5927 * Method: setFailIfOptionsFileError
5928 * Signature: (JZ)V
5929 */
5930void Java_org_rocksdb_DBOptions_setFailIfOptionsFileError(
494da23a 5931 JNIEnv*, jobject, jlong jhandle, jboolean jfail_if_options_file_error) {
7c673cae
FG
5932 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5933 opt->fail_if_options_file_error =
5934 static_cast<bool>(jfail_if_options_file_error);
5935}
5936
5937/*
5938 * Class: org_rocksdb_DBOptions
5939 * Method: failIfOptionsFileError
5940 * Signature: (J)Z
5941 */
494da23a
TL
5942jboolean Java_org_rocksdb_DBOptions_failIfOptionsFileError(
5943 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5944 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5945 return static_cast<jboolean>(opt->fail_if_options_file_error);
5946}
5947
5948/*
5949 * Class: org_rocksdb_DBOptions
5950 * Method: setDumpMallocStats
5951 * Signature: (JZ)V
5952 */
5953void Java_org_rocksdb_DBOptions_setDumpMallocStats(
494da23a 5954 JNIEnv*, jobject, jlong jhandle, jboolean jdump_malloc_stats) {
7c673cae
FG
5955 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5956 opt->dump_malloc_stats = static_cast<bool>(jdump_malloc_stats);
5957}
5958
5959/*
5960 * Class: org_rocksdb_DBOptions
5961 * Method: dumpMallocStats
5962 * Signature: (J)Z
5963 */
494da23a
TL
5964jboolean Java_org_rocksdb_DBOptions_dumpMallocStats(
5965 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5966 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5967 return static_cast<jboolean>(opt->dump_malloc_stats);
5968}
5969
5970/*
5971 * Class: org_rocksdb_DBOptions
5972 * Method: setAvoidFlushDuringRecovery
5973 * Signature: (JZ)V
5974 */
5975void Java_org_rocksdb_DBOptions_setAvoidFlushDuringRecovery(
494da23a 5976 JNIEnv*, jobject, jlong jhandle, jboolean javoid_flush_during_recovery) {
7c673cae 5977 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
11fdf7f2
TL
5978 opt->avoid_flush_during_recovery =
5979 static_cast<bool>(javoid_flush_during_recovery);
7c673cae
FG
5980}
5981
5982/*
5983 * Class: org_rocksdb_DBOptions
5984 * Method: avoidFlushDuringRecovery
5985 * Signature: (J)Z
5986 */
494da23a
TL
5987jboolean Java_org_rocksdb_DBOptions_avoidFlushDuringRecovery(
5988 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
5989 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
5990 return static_cast<jboolean>(opt->avoid_flush_during_recovery);
5991}
5992
494da23a
TL
5993/*
5994 * Class: org_rocksdb_DBOptions
5995 * Method: setAllowIngestBehind
5996 * Signature: (JZ)V
5997 */
5998void Java_org_rocksdb_DBOptions_setAllowIngestBehind(
5999 JNIEnv*, jobject, jlong jhandle, jboolean jallow_ingest_behind) {
6000 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
6001 opt->allow_ingest_behind = jallow_ingest_behind == JNI_TRUE;
6002}
6003
6004/*
6005 * Class: org_rocksdb_DBOptions
6006 * Method: allowIngestBehind
6007 * Signature: (J)Z
6008 */
6009jboolean Java_org_rocksdb_DBOptions_allowIngestBehind(
6010 JNIEnv*, jobject, jlong jhandle) {
6011 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
6012 return static_cast<jboolean>(opt->allow_ingest_behind);
6013}
6014
6015/*
6016 * Class: org_rocksdb_DBOptions
6017 * Method: setPreserveDeletes
6018 * Signature: (JZ)V
6019 */
6020void Java_org_rocksdb_DBOptions_setPreserveDeletes(
6021 JNIEnv*, jobject, jlong jhandle, jboolean jpreserve_deletes) {
6022 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
6023 opt->preserve_deletes = jpreserve_deletes == JNI_TRUE;
6024}
6025
6026/*
6027 * Class: org_rocksdb_DBOptions
6028 * Method: preserveDeletes
6029 * Signature: (J)Z
6030 */
6031jboolean Java_org_rocksdb_DBOptions_preserveDeletes(
6032 JNIEnv*, jobject, jlong jhandle) {
6033 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
6034 return static_cast<jboolean>(opt->preserve_deletes);
6035}
6036
6037/*
6038 * Class: org_rocksdb_DBOptions
6039 * Method: setTwoWriteQueues
6040 * Signature: (JZ)V
6041 */
6042void Java_org_rocksdb_DBOptions_setTwoWriteQueues(
6043 JNIEnv*, jobject, jlong jhandle, jboolean jtwo_write_queues) {
6044 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
6045 opt->two_write_queues = jtwo_write_queues == JNI_TRUE;
6046}
6047
6048/*
6049 * Class: org_rocksdb_DBOptions
6050 * Method: twoWriteQueues
6051 * Signature: (J)Z
6052 */
6053jboolean Java_org_rocksdb_DBOptions_twoWriteQueues(
6054 JNIEnv*, jobject, jlong jhandle) {
6055 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
6056 return static_cast<jboolean>(opt->two_write_queues);
6057}
6058
6059/*
6060 * Class: org_rocksdb_DBOptions
6061 * Method: setManualWalFlush
6062 * Signature: (JZ)V
6063 */
6064void Java_org_rocksdb_DBOptions_setManualWalFlush(
6065 JNIEnv*, jobject, jlong jhandle, jboolean jmanual_wal_flush) {
6066 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
6067 opt->manual_wal_flush = jmanual_wal_flush == JNI_TRUE;
6068}
6069
6070/*
6071 * Class: org_rocksdb_DBOptions
6072 * Method: manualWalFlush
6073 * Signature: (J)Z
6074 */
6075jboolean Java_org_rocksdb_DBOptions_manualWalFlush(
6076 JNIEnv*, jobject, jlong jhandle) {
6077 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
6078 return static_cast<jboolean>(opt->manual_wal_flush);
6079}
6080
6081/*
6082 * Class: org_rocksdb_DBOptions
6083 * Method: setAtomicFlush
6084 * Signature: (JZ)V
6085 */
6086void Java_org_rocksdb_DBOptions_setAtomicFlush(
6087 JNIEnv*, jobject, jlong jhandle, jboolean jatomic_flush) {
6088 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
6089 opt->atomic_flush = jatomic_flush == JNI_TRUE;
6090}
6091
6092/*
6093 * Class: org_rocksdb_DBOptions
6094 * Method: atomicFlush
6095 * Signature: (J)Z
6096 */
6097jboolean Java_org_rocksdb_DBOptions_atomicFlush(
6098 JNIEnv *, jobject, jlong jhandle) {
6099 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
6100 return static_cast<jboolean>(opt->atomic_flush);
6101}
6102
7c673cae
FG
6103/*
6104 * Class: org_rocksdb_DBOptions
6105 * Method: setAvoidFlushDuringShutdown
6106 * Signature: (JZ)V
6107 */
6108void Java_org_rocksdb_DBOptions_setAvoidFlushDuringShutdown(
494da23a 6109 JNIEnv*, jobject, jlong jhandle, jboolean javoid_flush_during_shutdown) {
7c673cae 6110 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
11fdf7f2
TL
6111 opt->avoid_flush_during_shutdown =
6112 static_cast<bool>(javoid_flush_during_shutdown);
7c673cae
FG
6113}
6114
6115/*
6116 * Class: org_rocksdb_DBOptions
6117 * Method: avoidFlushDuringShutdown
6118 * Signature: (J)Z
6119 */
494da23a
TL
6120jboolean Java_org_rocksdb_DBOptions_avoidFlushDuringShutdown(
6121 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
6122 auto* opt = reinterpret_cast<rocksdb::DBOptions*>(jhandle);
6123 return static_cast<jboolean>(opt->avoid_flush_during_shutdown);
6124}
6125
6126//////////////////////////////////////////////////////////////////////////////
6127// rocksdb::WriteOptions
6128
6129/*
6130 * Class: org_rocksdb_WriteOptions
6131 * Method: newWriteOptions
6132 * Signature: ()J
6133 */
494da23a
TL
6134jlong Java_org_rocksdb_WriteOptions_newWriteOptions(
6135 JNIEnv*, jclass) {
7c673cae
FG
6136 auto* op = new rocksdb::WriteOptions();
6137 return reinterpret_cast<jlong>(op);
6138}
6139
11fdf7f2
TL
6140/*
6141 * Class: org_rocksdb_WriteOptions
6142 * Method: copyWriteOptions
6143 * Signature: (J)J
6144 */
494da23a
TL
6145jlong Java_org_rocksdb_WriteOptions_copyWriteOptions(
6146 JNIEnv*, jclass, jlong jhandle) {
11fdf7f2
TL
6147 auto new_opt = new rocksdb::WriteOptions(
6148 *(reinterpret_cast<rocksdb::WriteOptions*>(jhandle)));
6149 return reinterpret_cast<jlong>(new_opt);
6150}
6151
7c673cae
FG
6152/*
6153 * Class: org_rocksdb_WriteOptions
6154 * Method: disposeInternal
6155 * Signature: ()V
6156 */
494da23a
TL
6157void Java_org_rocksdb_WriteOptions_disposeInternal(
6158 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
6159 auto* write_options = reinterpret_cast<rocksdb::WriteOptions*>(jhandle);
6160 assert(write_options != nullptr);
6161 delete write_options;
6162}
6163
6164/*
6165 * Class: org_rocksdb_WriteOptions
6166 * Method: setSync
6167 * Signature: (JZ)V
6168 */
494da23a
TL
6169void Java_org_rocksdb_WriteOptions_setSync(
6170 JNIEnv*, jobject, jlong jhandle, jboolean jflag) {
7c673cae
FG
6171 reinterpret_cast<rocksdb::WriteOptions*>(jhandle)->sync = jflag;
6172}
6173
6174/*
6175 * Class: org_rocksdb_WriteOptions
6176 * Method: sync
6177 * Signature: (J)Z
6178 */
494da23a
TL
6179jboolean Java_org_rocksdb_WriteOptions_sync(
6180 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
6181 return reinterpret_cast<rocksdb::WriteOptions*>(jhandle)->sync;
6182}
6183
6184/*
6185 * Class: org_rocksdb_WriteOptions
6186 * Method: setDisableWAL
6187 * Signature: (JZ)V
6188 */
494da23a
TL
6189void Java_org_rocksdb_WriteOptions_setDisableWAL(
6190 JNIEnv*, jobject, jlong jhandle, jboolean jflag) {
7c673cae
FG
6191 reinterpret_cast<rocksdb::WriteOptions*>(jhandle)->disableWAL = jflag;
6192}
6193
6194/*
6195 * Class: org_rocksdb_WriteOptions
6196 * Method: disableWAL
6197 * Signature: (J)Z
6198 */
494da23a
TL
6199jboolean Java_org_rocksdb_WriteOptions_disableWAL(
6200 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
6201 return reinterpret_cast<rocksdb::WriteOptions*>(jhandle)->disableWAL;
6202}
6203
6204/*
6205 * Class: org_rocksdb_WriteOptions
6206 * Method: setIgnoreMissingColumnFamilies
6207 * Signature: (JZ)V
6208 */
6209void Java_org_rocksdb_WriteOptions_setIgnoreMissingColumnFamilies(
494da23a 6210 JNIEnv*, jobject, jlong jhandle,
7c673cae 6211 jboolean jignore_missing_column_families) {
11fdf7f2
TL
6212 reinterpret_cast<rocksdb::WriteOptions*>(jhandle)
6213 ->ignore_missing_column_families =
6214 static_cast<bool>(jignore_missing_column_families);
7c673cae
FG
6215}
6216
6217/*
6218 * Class: org_rocksdb_WriteOptions
6219 * Method: ignoreMissingColumnFamilies
6220 * Signature: (J)Z
6221 */
6222jboolean Java_org_rocksdb_WriteOptions_ignoreMissingColumnFamilies(
494da23a 6223 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
6224 return reinterpret_cast<rocksdb::WriteOptions*>(jhandle)
6225 ->ignore_missing_column_families;
7c673cae
FG
6226}
6227
6228/*
6229 * Class: org_rocksdb_WriteOptions
6230 * Method: setNoSlowdown
6231 * Signature: (JZ)V
6232 */
494da23a
TL
6233void Java_org_rocksdb_WriteOptions_setNoSlowdown(
6234 JNIEnv*, jobject, jlong jhandle, jboolean jno_slowdown) {
7c673cae
FG
6235 reinterpret_cast<rocksdb::WriteOptions*>(jhandle)->no_slowdown =
6236 static_cast<bool>(jno_slowdown);
6237}
6238
6239/*
6240 * Class: org_rocksdb_WriteOptions
6241 * Method: noSlowdown
6242 * Signature: (J)Z
6243 */
494da23a
TL
6244jboolean Java_org_rocksdb_WriteOptions_noSlowdown(
6245 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
6246 return reinterpret_cast<rocksdb::WriteOptions*>(jhandle)->no_slowdown;
6247}
6248
494da23a
TL
6249/*
6250 * Class: org_rocksdb_WriteOptions
6251 * Method: setLowPri
6252 * Signature: (JZ)V
6253 */
6254void Java_org_rocksdb_WriteOptions_setLowPri(
6255 JNIEnv*, jobject, jlong jhandle, jboolean jlow_pri) {
6256 reinterpret_cast<rocksdb::WriteOptions*>(jhandle)->low_pri =
6257 static_cast<bool>(jlow_pri);
6258}
6259
6260/*
6261 * Class: org_rocksdb_WriteOptions
6262 * Method: lowPri
6263 * Signature: (J)Z
6264 */
6265jboolean Java_org_rocksdb_WriteOptions_lowPri(
6266 JNIEnv*, jobject, jlong jhandle) {
6267 return reinterpret_cast<rocksdb::WriteOptions*>(jhandle)->low_pri;
6268}
6269
7c673cae
FG
6270/////////////////////////////////////////////////////////////////////
6271// rocksdb::ReadOptions
6272
6273/*
6274 * Class: org_rocksdb_ReadOptions
6275 * Method: newReadOptions
6276 * Signature: ()J
6277 */
494da23a
TL
6278jlong Java_org_rocksdb_ReadOptions_newReadOptions__(
6279 JNIEnv*, jclass) {
7c673cae
FG
6280 auto* read_options = new rocksdb::ReadOptions();
6281 return reinterpret_cast<jlong>(read_options);
6282}
6283
494da23a
TL
6284/*
6285 * Class: org_rocksdb_ReadOptions
6286 * Method: newReadOptions
6287 * Signature: (ZZ)J
6288 */
6289jlong Java_org_rocksdb_ReadOptions_newReadOptions__ZZ(
6290 JNIEnv*, jclass, jboolean jverify_checksums, jboolean jfill_cache) {
6291 auto* read_options =
6292 new rocksdb::ReadOptions(static_cast<bool>(jverify_checksums),
6293 static_cast<bool>(jfill_cache));
6294 return reinterpret_cast<jlong>(read_options);
6295}
6296
11fdf7f2
TL
6297/*
6298 * Class: org_rocksdb_ReadOptions
6299 * Method: copyReadOptions
6300 * Signature: (J)J
6301 */
494da23a
TL
6302jlong Java_org_rocksdb_ReadOptions_copyReadOptions(
6303 JNIEnv*, jclass, jlong jhandle) {
11fdf7f2
TL
6304 auto new_opt = new rocksdb::ReadOptions(
6305 *(reinterpret_cast<rocksdb::ReadOptions*>(jhandle)));
6306 return reinterpret_cast<jlong>(new_opt);
6307}
6308
7c673cae
FG
6309/*
6310 * Class: org_rocksdb_ReadOptions
6311 * Method: disposeInternal
6312 * Signature: (J)V
6313 */
494da23a
TL
6314void Java_org_rocksdb_ReadOptions_disposeInternal(
6315 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
6316 auto* read_options = reinterpret_cast<rocksdb::ReadOptions*>(jhandle);
6317 assert(read_options != nullptr);
6318 delete read_options;
6319}
6320
6321/*
6322 * Class: org_rocksdb_ReadOptions
6323 * Method: setVerifyChecksums
6324 * Signature: (JZ)V
6325 */
6326void Java_org_rocksdb_ReadOptions_setVerifyChecksums(
494da23a 6327 JNIEnv*, jobject, jlong jhandle, jboolean jverify_checksums) {
7c673cae
FG
6328 reinterpret_cast<rocksdb::ReadOptions*>(jhandle)->verify_checksums =
6329 static_cast<bool>(jverify_checksums);
6330}
6331
6332/*
6333 * Class: org_rocksdb_ReadOptions
6334 * Method: verifyChecksums
6335 * Signature: (J)Z
6336 */
494da23a
TL
6337jboolean Java_org_rocksdb_ReadOptions_verifyChecksums(
6338 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2 6339 return reinterpret_cast<rocksdb::ReadOptions*>(jhandle)->verify_checksums;
7c673cae
FG
6340}
6341
6342/*
6343 * Class: org_rocksdb_ReadOptions
6344 * Method: setFillCache
6345 * Signature: (JZ)V
6346 */
494da23a
TL
6347void Java_org_rocksdb_ReadOptions_setFillCache(
6348 JNIEnv*, jobject, jlong jhandle, jboolean jfill_cache) {
7c673cae
FG
6349 reinterpret_cast<rocksdb::ReadOptions*>(jhandle)->fill_cache =
6350 static_cast<bool>(jfill_cache);
6351}
6352
6353/*
6354 * Class: org_rocksdb_ReadOptions
6355 * Method: fillCache
6356 * Signature: (J)Z
6357 */
494da23a
TL
6358jboolean Java_org_rocksdb_ReadOptions_fillCache(
6359 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
6360 return reinterpret_cast<rocksdb::ReadOptions*>(jhandle)->fill_cache;
6361}
6362
6363/*
6364 * Class: org_rocksdb_ReadOptions
6365 * Method: setTailing
6366 * Signature: (JZ)V
6367 */
494da23a
TL
6368void Java_org_rocksdb_ReadOptions_setTailing(
6369 JNIEnv*, jobject, jlong jhandle, jboolean jtailing) {
7c673cae
FG
6370 reinterpret_cast<rocksdb::ReadOptions*>(jhandle)->tailing =
6371 static_cast<bool>(jtailing);
6372}
6373
6374/*
6375 * Class: org_rocksdb_ReadOptions
6376 * Method: tailing
6377 * Signature: (J)Z
6378 */
494da23a
TL
6379jboolean Java_org_rocksdb_ReadOptions_tailing(
6380 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
6381 return reinterpret_cast<rocksdb::ReadOptions*>(jhandle)->tailing;
6382}
6383
6384/*
6385 * Class: org_rocksdb_ReadOptions
6386 * Method: managed
6387 * Signature: (J)Z
6388 */
494da23a
TL
6389jboolean Java_org_rocksdb_ReadOptions_managed(
6390 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
6391 return reinterpret_cast<rocksdb::ReadOptions*>(jhandle)->managed;
6392}
6393
6394/*
6395 * Class: org_rocksdb_ReadOptions
6396 * Method: setManaged
6397 * Signature: (JZ)V
6398 */
494da23a
TL
6399void Java_org_rocksdb_ReadOptions_setManaged(
6400 JNIEnv*, jobject, jlong jhandle, jboolean jmanaged) {
7c673cae
FG
6401 reinterpret_cast<rocksdb::ReadOptions*>(jhandle)->managed =
6402 static_cast<bool>(jmanaged);
6403}
6404
6405/*
6406 * Class: org_rocksdb_ReadOptions
6407 * Method: totalOrderSeek
6408 * Signature: (J)Z
6409 */
494da23a
TL
6410jboolean Java_org_rocksdb_ReadOptions_totalOrderSeek(
6411 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
6412 return reinterpret_cast<rocksdb::ReadOptions*>(jhandle)->total_order_seek;
6413}
6414
6415/*
6416 * Class: org_rocksdb_ReadOptions
6417 * Method: setTotalOrderSeek
6418 * Signature: (JZ)V
6419 */
6420void Java_org_rocksdb_ReadOptions_setTotalOrderSeek(
494da23a 6421 JNIEnv*, jobject, jlong jhandle, jboolean jtotal_order_seek) {
7c673cae
FG
6422 reinterpret_cast<rocksdb::ReadOptions*>(jhandle)->total_order_seek =
6423 static_cast<bool>(jtotal_order_seek);
6424}
6425
6426/*
6427 * Class: org_rocksdb_ReadOptions
6428 * Method: prefixSameAsStart
6429 * Signature: (J)Z
6430 */
494da23a
TL
6431jboolean Java_org_rocksdb_ReadOptions_prefixSameAsStart(
6432 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
6433 return reinterpret_cast<rocksdb::ReadOptions*>(jhandle)->prefix_same_as_start;
6434}
6435
6436/*
6437 * Class: org_rocksdb_ReadOptions
6438 * Method: setPrefixSameAsStart
6439 * Signature: (JZ)V
6440 */
6441void Java_org_rocksdb_ReadOptions_setPrefixSameAsStart(
494da23a 6442 JNIEnv*, jobject, jlong jhandle, jboolean jprefix_same_as_start) {
7c673cae
FG
6443 reinterpret_cast<rocksdb::ReadOptions*>(jhandle)->prefix_same_as_start =
6444 static_cast<bool>(jprefix_same_as_start);
6445}
6446
6447/*
6448 * Class: org_rocksdb_ReadOptions
6449 * Method: pinData
6450 * Signature: (J)Z
6451 */
494da23a
TL
6452jboolean Java_org_rocksdb_ReadOptions_pinData(
6453 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
6454 return reinterpret_cast<rocksdb::ReadOptions*>(jhandle)->pin_data;
6455}
6456
6457/*
6458 * Class: org_rocksdb_ReadOptions
6459 * Method: setPinData
6460 * Signature: (JZ)V
6461 */
494da23a
TL
6462void Java_org_rocksdb_ReadOptions_setPinData(
6463 JNIEnv*, jobject, jlong jhandle, jboolean jpin_data) {
7c673cae
FG
6464 reinterpret_cast<rocksdb::ReadOptions*>(jhandle)->pin_data =
6465 static_cast<bool>(jpin_data);
6466}
6467
6468/*
6469 * Class: org_rocksdb_ReadOptions
6470 * Method: backgroundPurgeOnIteratorCleanup
6471 * Signature: (J)Z
6472 */
6473jboolean Java_org_rocksdb_ReadOptions_backgroundPurgeOnIteratorCleanup(
494da23a 6474 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
6475 auto* opt = reinterpret_cast<rocksdb::ReadOptions*>(jhandle);
6476 return static_cast<jboolean>(opt->background_purge_on_iterator_cleanup);
6477}
6478
6479/*
6480 * Class: org_rocksdb_ReadOptions
6481 * Method: setBackgroundPurgeOnIteratorCleanup
6482 * Signature: (JZ)V
6483 */
6484void Java_org_rocksdb_ReadOptions_setBackgroundPurgeOnIteratorCleanup(
494da23a 6485 JNIEnv*, jobject, jlong jhandle,
7c673cae
FG
6486 jboolean jbackground_purge_on_iterator_cleanup) {
6487 auto* opt = reinterpret_cast<rocksdb::ReadOptions*>(jhandle);
6488 opt->background_purge_on_iterator_cleanup =
6489 static_cast<bool>(jbackground_purge_on_iterator_cleanup);
6490}
6491
6492/*
6493 * Class: org_rocksdb_ReadOptions
6494 * Method: readaheadSize
6495 * Signature: (J)J
6496 */
494da23a
TL
6497jlong Java_org_rocksdb_ReadOptions_readaheadSize(
6498 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
6499 auto* opt = reinterpret_cast<rocksdb::ReadOptions*>(jhandle);
6500 return static_cast<jlong>(opt->readahead_size);
6501}
6502
6503/*
6504 * Class: org_rocksdb_ReadOptions
6505 * Method: setReadaheadSize
6506 * Signature: (JJ)V
6507 */
494da23a
TL
6508void Java_org_rocksdb_ReadOptions_setReadaheadSize(
6509 JNIEnv*, jobject, jlong jhandle, jlong jreadahead_size) {
7c673cae
FG
6510 auto* opt = reinterpret_cast<rocksdb::ReadOptions*>(jhandle);
6511 opt->readahead_size = static_cast<size_t>(jreadahead_size);
6512}
6513
494da23a
TL
6514/*
6515 * Class: org_rocksdb_ReadOptions
6516 * Method: maxSkippableInternalKeys
6517 * Signature: (J)J
6518 */
6519jlong Java_org_rocksdb_ReadOptions_maxSkippableInternalKeys(
6520 JNIEnv*, jobject, jlong jhandle) {
6521 auto* opt = reinterpret_cast<rocksdb::ReadOptions*>(jhandle);
6522 return static_cast<jlong>(opt->max_skippable_internal_keys);
6523}
6524
6525/*
6526 * Class: org_rocksdb_ReadOptions
6527 * Method: setMaxSkippableInternalKeys
6528 * Signature: (JJ)V
6529 */
6530void Java_org_rocksdb_ReadOptions_setMaxSkippableInternalKeys(
6531 JNIEnv*, jobject, jlong jhandle, jlong jmax_skippable_internal_keys) {
6532 auto* opt = reinterpret_cast<rocksdb::ReadOptions*>(jhandle);
6533 opt->max_skippable_internal_keys =
6534 static_cast<uint64_t>(jmax_skippable_internal_keys);
6535}
6536
7c673cae
FG
6537/*
6538 * Class: org_rocksdb_ReadOptions
6539 * Method: ignoreRangeDeletions
6540 * Signature: (J)Z
6541 */
494da23a
TL
6542jboolean Java_org_rocksdb_ReadOptions_ignoreRangeDeletions(
6543 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
6544 auto* opt = reinterpret_cast<rocksdb::ReadOptions*>(jhandle);
6545 return static_cast<jboolean>(opt->ignore_range_deletions);
6546}
6547
6548/*
6549 * Class: org_rocksdb_ReadOptions
6550 * Method: setIgnoreRangeDeletions
6551 * Signature: (JZ)V
6552 */
6553void Java_org_rocksdb_ReadOptions_setIgnoreRangeDeletions(
494da23a 6554 JNIEnv*, jobject, jlong jhandle, jboolean jignore_range_deletions) {
7c673cae
FG
6555 auto* opt = reinterpret_cast<rocksdb::ReadOptions*>(jhandle);
6556 opt->ignore_range_deletions = static_cast<bool>(jignore_range_deletions);
6557}
6558
6559/*
6560 * Class: org_rocksdb_ReadOptions
6561 * Method: setSnapshot
6562 * Signature: (JJ)V
6563 */
494da23a
TL
6564void Java_org_rocksdb_ReadOptions_setSnapshot(
6565 JNIEnv*, jobject, jlong jhandle, jlong jsnapshot) {
7c673cae
FG
6566 reinterpret_cast<rocksdb::ReadOptions*>(jhandle)->snapshot =
6567 reinterpret_cast<rocksdb::Snapshot*>(jsnapshot);
6568}
6569
6570/*
6571 * Class: org_rocksdb_ReadOptions
6572 * Method: snapshot
6573 * Signature: (J)J
6574 */
494da23a
TL
6575jlong Java_org_rocksdb_ReadOptions_snapshot(
6576 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2 6577 auto& snapshot = reinterpret_cast<rocksdb::ReadOptions*>(jhandle)->snapshot;
7c673cae
FG
6578 return reinterpret_cast<jlong>(snapshot);
6579}
6580
6581/*
6582 * Class: org_rocksdb_ReadOptions
6583 * Method: readTier
6584 * Signature: (J)B
6585 */
494da23a
TL
6586jbyte Java_org_rocksdb_ReadOptions_readTier(
6587 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
6588 return static_cast<jbyte>(
6589 reinterpret_cast<rocksdb::ReadOptions*>(jhandle)->read_tier);
6590}
6591
6592/*
6593 * Class: org_rocksdb_ReadOptions
6594 * Method: setReadTier
6595 * Signature: (JB)V
6596 */
494da23a
TL
6597void Java_org_rocksdb_ReadOptions_setReadTier(
6598 JNIEnv*, jobject, jlong jhandle, jbyte jread_tier) {
7c673cae
FG
6599 reinterpret_cast<rocksdb::ReadOptions*>(jhandle)->read_tier =
6600 static_cast<rocksdb::ReadTier>(jread_tier);
6601}
6602
11fdf7f2
TL
6603/*
6604 * Class: org_rocksdb_ReadOptions
6605 * Method: setIterateUpperBound
6606 * Signature: (JJ)I
6607 */
6608void Java_org_rocksdb_ReadOptions_setIterateUpperBound(
494da23a 6609 JNIEnv*, jobject, jlong jhandle, jlong jupper_bound_slice_handle) {
11fdf7f2
TL
6610 reinterpret_cast<rocksdb::ReadOptions*>(jhandle)->iterate_upper_bound =
6611 reinterpret_cast<rocksdb::Slice*>(jupper_bound_slice_handle);
6612}
6613
6614/*
6615 * Class: org_rocksdb_ReadOptions
6616 * Method: iterateUpperBound
6617 * Signature: (J)J
6618 */
494da23a
TL
6619jlong Java_org_rocksdb_ReadOptions_iterateUpperBound(
6620 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2
TL
6621 auto& upper_bound_slice_handle =
6622 reinterpret_cast<rocksdb::ReadOptions*>(jhandle)->iterate_upper_bound;
6623 return reinterpret_cast<jlong>(upper_bound_slice_handle);
6624}
6625
494da23a
TL
6626/*
6627 * Class: org_rocksdb_ReadOptions
6628 * Method: setIterateLowerBound
6629 * Signature: (JJ)I
6630 */
6631void Java_org_rocksdb_ReadOptions_setIterateLowerBound(
6632 JNIEnv*, jobject, jlong jhandle, jlong jlower_bound_slice_handle) {
6633 reinterpret_cast<rocksdb::ReadOptions*>(jhandle)->iterate_lower_bound =
6634 reinterpret_cast<rocksdb::Slice*>(jlower_bound_slice_handle);
6635}
6636
6637/*
6638 * Class: org_rocksdb_ReadOptions
6639 * Method: iterateLowerBound
6640 * Signature: (J)J
6641 */
6642jlong Java_org_rocksdb_ReadOptions_iterateLowerBound(
6643 JNIEnv*, jobject, jlong jhandle) {
6644 auto& lower_bound_slice_handle =
6645 reinterpret_cast<rocksdb::ReadOptions*>(jhandle)->iterate_lower_bound;
6646 return reinterpret_cast<jlong>(lower_bound_slice_handle);
6647}
6648
6649/*
6650 * Class: org_rocksdb_ReadOptions
6651 * Method: setTableFilter
6652 * Signature: (JJ)V
6653 */
6654void Java_org_rocksdb_ReadOptions_setTableFilter(
6655 JNIEnv*, jobject, jlong jhandle, jlong jjni_table_filter_handle) {
6656 auto* opt = reinterpret_cast<rocksdb::ReadOptions*>(jhandle);
6657 auto* jni_table_filter =
6658 reinterpret_cast<rocksdb::TableFilterJniCallback*>(jjni_table_filter_handle);
6659 opt->table_filter = jni_table_filter->GetTableFilterFunction();
6660}
6661
6662/*
6663 * Class: org_rocksdb_ReadOptions
6664 * Method: setIterStartSeqnum
6665 * Signature: (JJ)V
6666 */
6667void Java_org_rocksdb_ReadOptions_setIterStartSeqnum(
6668 JNIEnv*, jobject, jlong jhandle, jlong jiter_start_seqnum) {
6669 auto* opt = reinterpret_cast<rocksdb::ReadOptions*>(jhandle);
6670 opt->iter_start_seqnum = static_cast<uint64_t>(jiter_start_seqnum);
6671}
6672
6673/*
6674 * Class: org_rocksdb_ReadOptions
6675 * Method: iterStartSeqnum
6676 * Signature: (J)J
6677 */
6678jlong Java_org_rocksdb_ReadOptions_iterStartSeqnum(
6679 JNIEnv*, jobject, jlong jhandle) {
6680 auto* opt = reinterpret_cast<rocksdb::ReadOptions*>(jhandle);
6681 return static_cast<jlong>(opt->iter_start_seqnum);
6682}
6683
7c673cae
FG
6684/////////////////////////////////////////////////////////////////////
6685// rocksdb::ComparatorOptions
6686
6687/*
6688 * Class: org_rocksdb_ComparatorOptions
6689 * Method: newComparatorOptions
6690 * Signature: ()J
6691 */
494da23a
TL
6692jlong Java_org_rocksdb_ComparatorOptions_newComparatorOptions(
6693 JNIEnv*, jclass) {
7c673cae
FG
6694 auto* comparator_opt = new rocksdb::ComparatorJniCallbackOptions();
6695 return reinterpret_cast<jlong>(comparator_opt);
6696}
6697
6698/*
6699 * Class: org_rocksdb_ComparatorOptions
6700 * Method: useAdaptiveMutex
6701 * Signature: (J)Z
6702 */
494da23a
TL
6703jboolean Java_org_rocksdb_ComparatorOptions_useAdaptiveMutex(
6704 JNIEnv*, jobject, jlong jhandle) {
7c673cae 6705 return reinterpret_cast<rocksdb::ComparatorJniCallbackOptions*>(jhandle)
11fdf7f2 6706 ->use_adaptive_mutex;
7c673cae
FG
6707}
6708
6709/*
6710 * Class: org_rocksdb_ComparatorOptions
6711 * Method: setUseAdaptiveMutex
6712 * Signature: (JZ)V
6713 */
6714void Java_org_rocksdb_ComparatorOptions_setUseAdaptiveMutex(
494da23a 6715 JNIEnv*, jobject, jlong jhandle, jboolean juse_adaptive_mutex) {
7c673cae 6716 reinterpret_cast<rocksdb::ComparatorJniCallbackOptions*>(jhandle)
11fdf7f2 6717 ->use_adaptive_mutex = static_cast<bool>(juse_adaptive_mutex);
7c673cae
FG
6718}
6719
6720/*
6721 * Class: org_rocksdb_ComparatorOptions
6722 * Method: disposeInternal
6723 * Signature: (J)V
6724 */
494da23a
TL
6725void Java_org_rocksdb_ComparatorOptions_disposeInternal(
6726 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
6727 auto* comparator_opt =
6728 reinterpret_cast<rocksdb::ComparatorJniCallbackOptions*>(jhandle);
6729 assert(comparator_opt != nullptr);
6730 delete comparator_opt;
6731}
6732
6733/////////////////////////////////////////////////////////////////////
6734// rocksdb::FlushOptions
6735
6736/*
6737 * Class: org_rocksdb_FlushOptions
6738 * Method: newFlushOptions
6739 * Signature: ()J
6740 */
494da23a
TL
6741jlong Java_org_rocksdb_FlushOptions_newFlushOptions(
6742 JNIEnv*, jclass) {
7c673cae
FG
6743 auto* flush_opt = new rocksdb::FlushOptions();
6744 return reinterpret_cast<jlong>(flush_opt);
6745}
6746
6747/*
6748 * Class: org_rocksdb_FlushOptions
6749 * Method: setWaitForFlush
6750 * Signature: (JZ)V
6751 */
494da23a
TL
6752void Java_org_rocksdb_FlushOptions_setWaitForFlush(
6753 JNIEnv*, jobject, jlong jhandle, jboolean jwait) {
11fdf7f2
TL
6754 reinterpret_cast<rocksdb::FlushOptions*>(jhandle)->wait =
6755 static_cast<bool>(jwait);
7c673cae
FG
6756}
6757
6758/*
6759 * Class: org_rocksdb_FlushOptions
6760 * Method: waitForFlush
6761 * Signature: (J)Z
6762 */
494da23a
TL
6763jboolean Java_org_rocksdb_FlushOptions_waitForFlush(
6764 JNIEnv*, jobject, jlong jhandle) {
11fdf7f2 6765 return reinterpret_cast<rocksdb::FlushOptions*>(jhandle)->wait;
7c673cae
FG
6766}
6767
494da23a
TL
6768/*
6769 * Class: org_rocksdb_FlushOptions
6770 * Method: setAllowWriteStall
6771 * Signature: (JZ)V
6772 */
6773void Java_org_rocksdb_FlushOptions_setAllowWriteStall(
6774 JNIEnv*, jobject, jlong jhandle, jboolean jallow_write_stall) {
6775 auto* flush_options = reinterpret_cast<rocksdb::FlushOptions*>(jhandle);
6776 flush_options->allow_write_stall = jallow_write_stall == JNI_TRUE;
6777}
6778
6779/*
6780 * Class: org_rocksdb_FlushOptions
6781 * Method: allowWriteStall
6782 * Signature: (J)Z
6783 */
6784jboolean Java_org_rocksdb_FlushOptions_allowWriteStall(
6785 JNIEnv*, jobject, jlong jhandle) {
6786 auto* flush_options = reinterpret_cast<rocksdb::FlushOptions*>(jhandle);
6787 return static_cast<jboolean>(flush_options->allow_write_stall);
6788}
6789
7c673cae
FG
6790/*
6791 * Class: org_rocksdb_FlushOptions
6792 * Method: disposeInternal
6793 * Signature: (J)V
6794 */
494da23a
TL
6795void Java_org_rocksdb_FlushOptions_disposeInternal(
6796 JNIEnv*, jobject, jlong jhandle) {
7c673cae
FG
6797 auto* flush_opt = reinterpret_cast<rocksdb::FlushOptions*>(jhandle);
6798 assert(flush_opt != nullptr);
6799 delete flush_opt;
6800}