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::CompactRangeOptions.
8 
9 #include <jni.h>
10 
11 #include "include/org_rocksdb_CompactRangeOptions.h"
12 #include "rocksdb/options.h"
13 #include "rocksjni/portal.h"
14 
15 /*
16  * Class:     org_rocksdb_CompactRangeOptions
17  * Method:    newCompactRangeOptions
18  * Signature: ()J
19  */
Java_org_rocksdb_CompactRangeOptions_newCompactRangeOptions(JNIEnv *,jclass)20 jlong Java_org_rocksdb_CompactRangeOptions_newCompactRangeOptions(
21     JNIEnv* /*env*/, jclass /*jclazz*/) {
22   auto* options = new ROCKSDB_NAMESPACE::CompactRangeOptions();
23   return reinterpret_cast<jlong>(options);
24 }
25 
26 
27 /*
28  * Class:     org_rocksdb_CompactRangeOptions
29  * Method:    exclusiveManualCompaction
30  * Signature: (J)Z
31  */
Java_org_rocksdb_CompactRangeOptions_exclusiveManualCompaction(JNIEnv *,jobject,jlong jhandle)32 jboolean Java_org_rocksdb_CompactRangeOptions_exclusiveManualCompaction(
33     JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle) {
34   auto* options =
35       reinterpret_cast<ROCKSDB_NAMESPACE::CompactRangeOptions*>(jhandle);
36   return static_cast<jboolean>(options->exclusive_manual_compaction);
37 }
38 
39 /*
40  * Class:     org_rocksdb_CompactRangeOptions
41  * Method:    setExclusiveManualCompaction
42  * Signature: (JZ)V
43  */
Java_org_rocksdb_CompactRangeOptions_setExclusiveManualCompaction(JNIEnv *,jobject,jlong jhandle,jboolean exclusive_manual_compaction)44 void Java_org_rocksdb_CompactRangeOptions_setExclusiveManualCompaction(
45     JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle, jboolean exclusive_manual_compaction) {
46   auto* options =
47       reinterpret_cast<ROCKSDB_NAMESPACE::CompactRangeOptions*>(jhandle);
48   options->exclusive_manual_compaction = static_cast<bool>(exclusive_manual_compaction);
49 }
50 
51 
52 /*
53  * Class:     org_rocksdb_CompactRangeOptions
54  * Method:    bottommostLevelCompaction
55  * Signature: (J)I
56  */
Java_org_rocksdb_CompactRangeOptions_bottommostLevelCompaction(JNIEnv *,jobject,jlong jhandle)57 jint Java_org_rocksdb_CompactRangeOptions_bottommostLevelCompaction(
58     JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle) {
59   auto* options =
60       reinterpret_cast<ROCKSDB_NAMESPACE::CompactRangeOptions*>(jhandle);
61   return ROCKSDB_NAMESPACE::BottommostLevelCompactionJni::
62       toJavaBottommostLevelCompaction(options->bottommost_level_compaction);
63 }
64 
65 /*
66  * Class:     org_rocksdb_CompactRangeOptions
67  * Method:    setBottommostLevelCompaction
68  * Signature: (JI)V
69  */
Java_org_rocksdb_CompactRangeOptions_setBottommostLevelCompaction(JNIEnv *,jobject,jlong jhandle,jint bottommost_level_compaction)70 void Java_org_rocksdb_CompactRangeOptions_setBottommostLevelCompaction(
71     JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle,
72     jint bottommost_level_compaction) {
73   auto* options =
74       reinterpret_cast<ROCKSDB_NAMESPACE::CompactRangeOptions*>(jhandle);
75   options->bottommost_level_compaction =
76       ROCKSDB_NAMESPACE::BottommostLevelCompactionJni::
77           toCppBottommostLevelCompaction(bottommost_level_compaction);
78 }
79 
80 /*
81  * Class:     org_rocksdb_CompactRangeOptions
82  * Method:    changeLevel
83  * Signature: (J)Z
84  */
Java_org_rocksdb_CompactRangeOptions_changeLevel(JNIEnv *,jobject,jlong jhandle)85 jboolean Java_org_rocksdb_CompactRangeOptions_changeLevel
86   (JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle) {
87   auto* options =
88       reinterpret_cast<ROCKSDB_NAMESPACE::CompactRangeOptions*>(jhandle);
89   return static_cast<jboolean>(options->change_level);
90 }
91 
92 /*
93  * Class:     org_rocksdb_CompactRangeOptions
94  * Method:    setChangeLevel
95  * Signature: (JZ)V
96  */
Java_org_rocksdb_CompactRangeOptions_setChangeLevel(JNIEnv *,jobject,jlong jhandle,jboolean change_level)97 void Java_org_rocksdb_CompactRangeOptions_setChangeLevel
98   (JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle, jboolean change_level) {
99   auto* options =
100       reinterpret_cast<ROCKSDB_NAMESPACE::CompactRangeOptions*>(jhandle);
101   options->change_level = static_cast<bool>(change_level);
102 }
103 
104 /*
105  * Class:     org_rocksdb_CompactRangeOptions
106  * Method:    targetLevel
107  * Signature: (J)I
108  */
Java_org_rocksdb_CompactRangeOptions_targetLevel(JNIEnv *,jobject,jlong jhandle)109 jint Java_org_rocksdb_CompactRangeOptions_targetLevel
110   (JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle) {
111   auto* options =
112       reinterpret_cast<ROCKSDB_NAMESPACE::CompactRangeOptions*>(jhandle);
113   return static_cast<jint>(options->target_level);
114 }
115 
116 /*
117  * Class:     org_rocksdb_CompactRangeOptions
118  * Method:    setTargetLevel
119  * Signature: (JI)V
120  */
Java_org_rocksdb_CompactRangeOptions_setTargetLevel(JNIEnv *,jobject,jlong jhandle,jint target_level)121 void Java_org_rocksdb_CompactRangeOptions_setTargetLevel
122   (JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle, jint target_level) {
123   auto* options =
124       reinterpret_cast<ROCKSDB_NAMESPACE::CompactRangeOptions*>(jhandle);
125   options->target_level = static_cast<int>(target_level);
126 }
127 
128 /*
129  * Class:     org_rocksdb_CompactRangeOptions
130  * Method:    targetPathId
131  * Signature: (J)I
132  */
Java_org_rocksdb_CompactRangeOptions_targetPathId(JNIEnv *,jobject,jlong jhandle)133 jint Java_org_rocksdb_CompactRangeOptions_targetPathId
134   (JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle) {
135   auto* options =
136       reinterpret_cast<ROCKSDB_NAMESPACE::CompactRangeOptions*>(jhandle);
137   return static_cast<jint>(options->target_path_id);
138 }
139 
140 /*
141  * Class:     org_rocksdb_CompactRangeOptions
142  * Method:    setTargetPathId
143  * Signature: (JI)V
144  */
Java_org_rocksdb_CompactRangeOptions_setTargetPathId(JNIEnv *,jobject,jlong jhandle,jint target_path_id)145 void Java_org_rocksdb_CompactRangeOptions_setTargetPathId
146   (JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle, jint target_path_id) {
147   auto* options =
148       reinterpret_cast<ROCKSDB_NAMESPACE::CompactRangeOptions*>(jhandle);
149   options->target_path_id = static_cast<uint32_t>(target_path_id);
150 }
151 
152 /*
153  * Class:     org_rocksdb_CompactRangeOptions
154  * Method:    allowWriteStall
155  * Signature: (J)Z
156  */
Java_org_rocksdb_CompactRangeOptions_allowWriteStall(JNIEnv *,jobject,jlong jhandle)157 jboolean Java_org_rocksdb_CompactRangeOptions_allowWriteStall
158   (JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle) {
159   auto* options =
160       reinterpret_cast<ROCKSDB_NAMESPACE::CompactRangeOptions*>(jhandle);
161   return static_cast<jboolean>(options->allow_write_stall);
162 }
163 
164 /*
165  * Class:     org_rocksdb_CompactRangeOptions
166  * Method:    setAllowWriteStall
167  * Signature: (JZ)V
168  */
Java_org_rocksdb_CompactRangeOptions_setAllowWriteStall(JNIEnv *,jobject,jlong jhandle,jboolean allow_write_stall)169 void Java_org_rocksdb_CompactRangeOptions_setAllowWriteStall
170   (JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle, jboolean allow_write_stall) {
171   auto* options =
172       reinterpret_cast<ROCKSDB_NAMESPACE::CompactRangeOptions*>(jhandle);
173   options->allow_write_stall = static_cast<bool>(allow_write_stall);
174 }
175 
176 
177 /*
178  * Class:     org_rocksdb_CompactRangeOptions
179  * Method:    maxSubcompactions
180  * Signature: (J)I
181  */
Java_org_rocksdb_CompactRangeOptions_maxSubcompactions(JNIEnv *,jobject,jlong jhandle)182 jint Java_org_rocksdb_CompactRangeOptions_maxSubcompactions
183   (JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle) {
184   auto* options =
185       reinterpret_cast<ROCKSDB_NAMESPACE::CompactRangeOptions*>(jhandle);
186   return static_cast<jint>(options->max_subcompactions);
187 }
188 
189 /*
190  * Class:     org_rocksdb_CompactRangeOptions
191  * Method:    setMaxSubcompactions
192  * Signature: (JI)V
193  */
Java_org_rocksdb_CompactRangeOptions_setMaxSubcompactions(JNIEnv *,jobject,jlong jhandle,jint max_subcompactions)194 void Java_org_rocksdb_CompactRangeOptions_setMaxSubcompactions
195   (JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle, jint max_subcompactions) {
196   auto* options =
197       reinterpret_cast<ROCKSDB_NAMESPACE::CompactRangeOptions*>(jhandle);
198   options->max_subcompactions = static_cast<uint32_t>(max_subcompactions);
199 }
200 
201 /*
202  * Class:     org_rocksdb_CompactRangeOptions
203  * Method:    disposeInternal
204  * Signature: (J)V
205  */
Java_org_rocksdb_CompactRangeOptions_disposeInternal(JNIEnv *,jobject,jlong jhandle)206 void Java_org_rocksdb_CompactRangeOptions_disposeInternal(
207     JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle) {
208   auto* options =
209       reinterpret_cast<ROCKSDB_NAMESPACE::CompactRangeOptions*>(jhandle);
210   delete options;
211 }
212