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::CompactionOptionsUniversal.
8 
9 #include <jni.h>
10 
11 #include "include/org_rocksdb_CompactionOptionsUniversal.h"
12 #include "rocksdb/advanced_options.h"
13 #include "rocksjni/portal.h"
14 
15 /*
16  * Class:     org_rocksdb_CompactionOptionsUniversal
17  * Method:    newCompactionOptionsUniversal
18  * Signature: ()J
19  */
Java_org_rocksdb_CompactionOptionsUniversal_newCompactionOptionsUniversal(JNIEnv *,jclass)20 jlong Java_org_rocksdb_CompactionOptionsUniversal_newCompactionOptionsUniversal(
21     JNIEnv*, jclass) {
22   const auto* opt = new ROCKSDB_NAMESPACE::CompactionOptionsUniversal();
23   return reinterpret_cast<jlong>(opt);
24 }
25 
26 /*
27  * Class:     org_rocksdb_CompactionOptionsUniversal
28  * Method:    setSizeRatio
29  * Signature: (JI)V
30  */
Java_org_rocksdb_CompactionOptionsUniversal_setSizeRatio(JNIEnv *,jobject,jlong jhandle,jint jsize_ratio)31 void Java_org_rocksdb_CompactionOptionsUniversal_setSizeRatio(
32     JNIEnv*, jobject, jlong jhandle, jint jsize_ratio) {
33   auto* opt =
34       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionOptionsUniversal*>(jhandle);
35   opt->size_ratio = static_cast<unsigned int>(jsize_ratio);
36 }
37 
38 /*
39  * Class:     org_rocksdb_CompactionOptionsUniversal
40  * Method:    sizeRatio
41  * Signature: (J)I
42  */
Java_org_rocksdb_CompactionOptionsUniversal_sizeRatio(JNIEnv *,jobject,jlong jhandle)43 jint Java_org_rocksdb_CompactionOptionsUniversal_sizeRatio(
44     JNIEnv*, jobject, jlong jhandle) {
45   auto* opt =
46       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionOptionsUniversal*>(jhandle);
47   return static_cast<jint>(opt->size_ratio);
48 }
49 
50 /*
51  * Class:     org_rocksdb_CompactionOptionsUniversal
52  * Method:    setMinMergeWidth
53  * Signature: (JI)V
54  */
Java_org_rocksdb_CompactionOptionsUniversal_setMinMergeWidth(JNIEnv *,jobject,jlong jhandle,jint jmin_merge_width)55 void Java_org_rocksdb_CompactionOptionsUniversal_setMinMergeWidth(
56     JNIEnv*, jobject, jlong jhandle, jint jmin_merge_width) {
57   auto* opt =
58       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionOptionsUniversal*>(jhandle);
59   opt->min_merge_width = static_cast<unsigned int>(jmin_merge_width);
60 }
61 
62 /*
63  * Class:     org_rocksdb_CompactionOptionsUniversal
64  * Method:    minMergeWidth
65  * Signature: (J)I
66  */
Java_org_rocksdb_CompactionOptionsUniversal_minMergeWidth(JNIEnv *,jobject,jlong jhandle)67 jint Java_org_rocksdb_CompactionOptionsUniversal_minMergeWidth(
68     JNIEnv*, jobject, jlong jhandle) {
69   auto* opt =
70       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionOptionsUniversal*>(jhandle);
71   return static_cast<jint>(opt->min_merge_width);
72 }
73 
74 /*
75  * Class:     org_rocksdb_CompactionOptionsUniversal
76  * Method:    setMaxMergeWidth
77  * Signature: (JI)V
78  */
Java_org_rocksdb_CompactionOptionsUniversal_setMaxMergeWidth(JNIEnv *,jobject,jlong jhandle,jint jmax_merge_width)79 void Java_org_rocksdb_CompactionOptionsUniversal_setMaxMergeWidth(
80     JNIEnv*, jobject, jlong jhandle, jint jmax_merge_width) {
81   auto* opt =
82       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionOptionsUniversal*>(jhandle);
83   opt->max_merge_width = static_cast<unsigned int>(jmax_merge_width);
84 }
85 
86 /*
87  * Class:     org_rocksdb_CompactionOptionsUniversal
88  * Method:    maxMergeWidth
89  * Signature: (J)I
90  */
Java_org_rocksdb_CompactionOptionsUniversal_maxMergeWidth(JNIEnv *,jobject,jlong jhandle)91 jint Java_org_rocksdb_CompactionOptionsUniversal_maxMergeWidth(
92     JNIEnv*, jobject, jlong jhandle) {
93   auto* opt =
94       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionOptionsUniversal*>(jhandle);
95   return static_cast<jint>(opt->max_merge_width);
96 }
97 
98 /*
99  * Class:     org_rocksdb_CompactionOptionsUniversal
100  * Method:    setMaxSizeAmplificationPercent
101  * Signature: (JI)V
102  */
Java_org_rocksdb_CompactionOptionsUniversal_setMaxSizeAmplificationPercent(JNIEnv *,jobject,jlong jhandle,jint jmax_size_amplification_percent)103 void Java_org_rocksdb_CompactionOptionsUniversal_setMaxSizeAmplificationPercent(
104     JNIEnv*, jobject, jlong jhandle, jint jmax_size_amplification_percent) {
105   auto* opt =
106       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionOptionsUniversal*>(jhandle);
107   opt->max_size_amplification_percent =
108       static_cast<unsigned int>(jmax_size_amplification_percent);
109 }
110 
111 /*
112  * Class:     org_rocksdb_CompactionOptionsUniversal
113  * Method:    maxSizeAmplificationPercent
114  * Signature: (J)I
115  */
Java_org_rocksdb_CompactionOptionsUniversal_maxSizeAmplificationPercent(JNIEnv *,jobject,jlong jhandle)116 jint Java_org_rocksdb_CompactionOptionsUniversal_maxSizeAmplificationPercent(
117     JNIEnv*, jobject, jlong jhandle) {
118   auto* opt =
119       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionOptionsUniversal*>(jhandle);
120   return static_cast<jint>(opt->max_size_amplification_percent);
121 }
122 
123 /*
124  * Class:     org_rocksdb_CompactionOptionsUniversal
125  * Method:    setCompressionSizePercent
126  * Signature: (JI)V
127  */
Java_org_rocksdb_CompactionOptionsUniversal_setCompressionSizePercent(JNIEnv *,jobject,jlong jhandle,jint jcompression_size_percent)128 void Java_org_rocksdb_CompactionOptionsUniversal_setCompressionSizePercent(
129     JNIEnv*, jobject, jlong jhandle,
130     jint jcompression_size_percent) {
131   auto* opt =
132       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionOptionsUniversal*>(jhandle);
133   opt->compression_size_percent =
134       static_cast<unsigned int>(jcompression_size_percent);
135 }
136 
137 /*
138  * Class:     org_rocksdb_CompactionOptionsUniversal
139  * Method:    compressionSizePercent
140  * Signature: (J)I
141  */
Java_org_rocksdb_CompactionOptionsUniversal_compressionSizePercent(JNIEnv *,jobject,jlong jhandle)142 jint Java_org_rocksdb_CompactionOptionsUniversal_compressionSizePercent(
143     JNIEnv*, jobject, jlong jhandle) {
144   auto* opt =
145       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionOptionsUniversal*>(jhandle);
146   return static_cast<jint>(opt->compression_size_percent);
147 }
148 
149 /*
150  * Class:     org_rocksdb_CompactionOptionsUniversal
151  * Method:    setStopStyle
152  * Signature: (JB)V
153  */
Java_org_rocksdb_CompactionOptionsUniversal_setStopStyle(JNIEnv *,jobject,jlong jhandle,jbyte jstop_style_value)154 void Java_org_rocksdb_CompactionOptionsUniversal_setStopStyle(
155     JNIEnv*, jobject, jlong jhandle, jbyte jstop_style_value) {
156   auto* opt =
157       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionOptionsUniversal*>(jhandle);
158   opt->stop_style =
159       ROCKSDB_NAMESPACE::CompactionStopStyleJni::toCppCompactionStopStyle(
160           jstop_style_value);
161 }
162 
163 /*
164  * Class:     org_rocksdb_CompactionOptionsUniversal
165  * Method:    stopStyle
166  * Signature: (J)B
167  */
Java_org_rocksdb_CompactionOptionsUniversal_stopStyle(JNIEnv *,jobject,jlong jhandle)168 jbyte Java_org_rocksdb_CompactionOptionsUniversal_stopStyle(
169     JNIEnv*, jobject, jlong jhandle) {
170   auto* opt =
171       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionOptionsUniversal*>(jhandle);
172   return ROCKSDB_NAMESPACE::CompactionStopStyleJni::toJavaCompactionStopStyle(
173       opt->stop_style);
174 }
175 
176 /*
177  * Class:     org_rocksdb_CompactionOptionsUniversal
178  * Method:    setAllowTrivialMove
179  * Signature: (JZ)V
180  */
Java_org_rocksdb_CompactionOptionsUniversal_setAllowTrivialMove(JNIEnv *,jobject,jlong jhandle,jboolean jallow_trivial_move)181 void Java_org_rocksdb_CompactionOptionsUniversal_setAllowTrivialMove(
182     JNIEnv*, jobject, jlong jhandle, jboolean jallow_trivial_move) {
183   auto* opt =
184       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionOptionsUniversal*>(jhandle);
185   opt->allow_trivial_move = static_cast<bool>(jallow_trivial_move);
186 }
187 
188 /*
189  * Class:     org_rocksdb_CompactionOptionsUniversal
190  * Method:    allowTrivialMove
191  * Signature: (J)Z
192  */
Java_org_rocksdb_CompactionOptionsUniversal_allowTrivialMove(JNIEnv *,jobject,jlong jhandle)193 jboolean Java_org_rocksdb_CompactionOptionsUniversal_allowTrivialMove(
194     JNIEnv*, jobject, jlong jhandle) {
195   auto* opt =
196       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionOptionsUniversal*>(jhandle);
197   return opt->allow_trivial_move;
198 }
199 
200 /*
201  * Class:     org_rocksdb_CompactionOptionsUniversal
202  * Method:    disposeInternal
203  * Signature: (J)V
204  */
Java_org_rocksdb_CompactionOptionsUniversal_disposeInternal(JNIEnv *,jobject,jlong jhandle)205 void Java_org_rocksdb_CompactionOptionsUniversal_disposeInternal(
206     JNIEnv*, jobject, jlong jhandle) {
207   delete reinterpret_cast<ROCKSDB_NAMESPACE::CompactionOptionsUniversal*>(
208       jhandle);
209 }
210