1 // Copyright (c) 2011-present, Facebook, Inc.  All rights reserved.
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).
5 //
6 // This file implements the "bridge" between Java and C++ for
7 // ROCKSDB_NAMESPACE::CompactionOptionsFIFO.
8 
9 #include <jni.h>
10 
11 #include "include/org_rocksdb_CompactionOptionsFIFO.h"
12 #include "rocksdb/advanced_options.h"
13 
14 /*
15  * Class:     org_rocksdb_CompactionOptionsFIFO
16  * Method:    newCompactionOptionsFIFO
17  * Signature: ()J
18  */
Java_org_rocksdb_CompactionOptionsFIFO_newCompactionOptionsFIFO(JNIEnv *,jclass)19 jlong Java_org_rocksdb_CompactionOptionsFIFO_newCompactionOptionsFIFO(
20     JNIEnv*, jclass) {
21   const auto* opt = new ROCKSDB_NAMESPACE::CompactionOptionsFIFO();
22   return reinterpret_cast<jlong>(opt);
23 }
24 
25 /*
26  * Class:     org_rocksdb_CompactionOptionsFIFO
27  * Method:    setMaxTableFilesSize
28  * Signature: (JJ)V
29  */
Java_org_rocksdb_CompactionOptionsFIFO_setMaxTableFilesSize(JNIEnv *,jobject,jlong jhandle,jlong jmax_table_files_size)30 void Java_org_rocksdb_CompactionOptionsFIFO_setMaxTableFilesSize(
31     JNIEnv*, jobject, jlong jhandle, jlong jmax_table_files_size) {
32   auto* opt =
33       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionOptionsFIFO*>(jhandle);
34   opt->max_table_files_size = static_cast<uint64_t>(jmax_table_files_size);
35 }
36 
37 /*
38  * Class:     org_rocksdb_CompactionOptionsFIFO
39  * Method:    maxTableFilesSize
40  * Signature: (J)J
41  */
Java_org_rocksdb_CompactionOptionsFIFO_maxTableFilesSize(JNIEnv *,jobject,jlong jhandle)42 jlong Java_org_rocksdb_CompactionOptionsFIFO_maxTableFilesSize(
43     JNIEnv*, jobject, jlong jhandle) {
44   auto* opt =
45       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionOptionsFIFO*>(jhandle);
46   return static_cast<jlong>(opt->max_table_files_size);
47 }
48 
49 /*
50  * Class:     org_rocksdb_CompactionOptionsFIFO
51  * Method:    setAllowCompaction
52  * Signature: (JZ)V
53  */
Java_org_rocksdb_CompactionOptionsFIFO_setAllowCompaction(JNIEnv *,jobject,jlong jhandle,jboolean allow_compaction)54 void Java_org_rocksdb_CompactionOptionsFIFO_setAllowCompaction(
55     JNIEnv*, jobject, jlong jhandle, jboolean allow_compaction) {
56   auto* opt =
57       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionOptionsFIFO*>(jhandle);
58   opt->allow_compaction = static_cast<bool>(allow_compaction);
59 }
60 
61 /*
62  * Class:     org_rocksdb_CompactionOptionsFIFO
63  * Method:    allowCompaction
64  * Signature: (J)Z
65  */
Java_org_rocksdb_CompactionOptionsFIFO_allowCompaction(JNIEnv *,jobject,jlong jhandle)66 jboolean Java_org_rocksdb_CompactionOptionsFIFO_allowCompaction(
67     JNIEnv*, jobject, jlong jhandle) {
68   auto* opt =
69       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionOptionsFIFO*>(jhandle);
70   return static_cast<jboolean>(opt->allow_compaction);
71 }
72 
73 /*
74  * Class:     org_rocksdb_CompactionOptionsFIFO
75  * Method:    disposeInternal
76  * Signature: (J)V
77  */
Java_org_rocksdb_CompactionOptionsFIFO_disposeInternal(JNIEnv *,jobject,jlong jhandle)78 void Java_org_rocksdb_CompactionOptionsFIFO_disposeInternal(
79     JNIEnv*, jobject, jlong jhandle) {
80   delete reinterpret_cast<ROCKSDB_NAMESPACE::CompactionOptionsFIFO*>(jhandle);
81 }
82