]> git.proxmox.com Git - ceph.git/blob - ceph/src/rocksdb/java/rocksjni/env_options.cc
import 14.2.4 nautilus point release
[ceph.git] / ceph / src / rocksdb / java / rocksjni / env_options.cc
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++ and enables
7 // calling C++ rocksdb::EnvOptions methods
8 // from Java side.
9
10 #include <jni.h>
11
12 #include "include/org_rocksdb_EnvOptions.h"
13 #include "rocksdb/env.h"
14
15 #define ENV_OPTIONS_SET_BOOL(_jhandle, _opt) \
16 reinterpret_cast<rocksdb::EnvOptions *>(_jhandle)->_opt = \
17 static_cast<bool>(_opt)
18
19 #define ENV_OPTIONS_SET_SIZE_T(_jhandle, _opt) \
20 reinterpret_cast<rocksdb::EnvOptions *>(_jhandle)->_opt = \
21 static_cast<size_t>(_opt)
22
23 #define ENV_OPTIONS_SET_UINT64_T(_jhandle, _opt) \
24 reinterpret_cast<rocksdb::EnvOptions *>(_jhandle)->_opt = \
25 static_cast<uint64_t>(_opt)
26
27 #define ENV_OPTIONS_GET(_jhandle, _opt) \
28 reinterpret_cast<rocksdb::EnvOptions *>(_jhandle)->_opt
29
30 /*
31 * Class: org_rocksdb_EnvOptions
32 * Method: newEnvOptions
33 * Signature: ()J
34 */
35 jlong Java_org_rocksdb_EnvOptions_newEnvOptions__(
36 JNIEnv*, jclass) {
37 auto *env_opt = new rocksdb::EnvOptions();
38 return reinterpret_cast<jlong>(env_opt);
39 }
40
41 /*
42 * Class: org_rocksdb_EnvOptions
43 * Method: newEnvOptions
44 * Signature: (J)J
45 */
46 jlong Java_org_rocksdb_EnvOptions_newEnvOptions__J(
47 JNIEnv*, jclass, jlong jdboptions_handle) {
48 auto* db_options =
49 reinterpret_cast<rocksdb::DBOptions*>(jdboptions_handle);
50 auto* env_opt = new rocksdb::EnvOptions(*db_options);
51 return reinterpret_cast<jlong>(env_opt);
52 }
53
54 /*
55 * Class: org_rocksdb_EnvOptions
56 * Method: disposeInternal
57 * Signature: (J)V
58 */
59 void Java_org_rocksdb_EnvOptions_disposeInternal(
60 JNIEnv*, jobject, jlong jhandle) {
61 auto *eo = reinterpret_cast<rocksdb::EnvOptions *>(jhandle);
62 assert(eo != nullptr);
63 delete eo;
64 }
65
66 /*
67 * Class: org_rocksdb_EnvOptions
68 * Method: setUseMmapReads
69 * Signature: (JZ)V
70 */
71 void Java_org_rocksdb_EnvOptions_setUseMmapReads(
72 JNIEnv*, jobject, jlong jhandle, jboolean use_mmap_reads) {
73 ENV_OPTIONS_SET_BOOL(jhandle, use_mmap_reads);
74 }
75
76 /*
77 * Class: org_rocksdb_EnvOptions
78 * Method: useMmapReads
79 * Signature: (J)Z
80 */
81 jboolean Java_org_rocksdb_EnvOptions_useMmapReads(
82 JNIEnv*, jobject, jlong jhandle) {
83 return ENV_OPTIONS_GET(jhandle, use_mmap_reads);
84 }
85
86 /*
87 * Class: org_rocksdb_EnvOptions
88 * Method: setUseMmapWrites
89 * Signature: (JZ)V
90 */
91 void Java_org_rocksdb_EnvOptions_setUseMmapWrites(
92 JNIEnv*, jobject, jlong jhandle, jboolean use_mmap_writes) {
93 ENV_OPTIONS_SET_BOOL(jhandle, use_mmap_writes);
94 }
95
96 /*
97 * Class: org_rocksdb_EnvOptions
98 * Method: useMmapWrites
99 * Signature: (J)Z
100 */
101 jboolean Java_org_rocksdb_EnvOptions_useMmapWrites(
102 JNIEnv*, jobject, jlong jhandle) {
103 return ENV_OPTIONS_GET(jhandle, use_mmap_writes);
104 }
105
106 /*
107 * Class: org_rocksdb_EnvOptions
108 * Method: setUseDirectReads
109 * Signature: (JZ)V
110 */
111 void Java_org_rocksdb_EnvOptions_setUseDirectReads(
112 JNIEnv*, jobject, jlong jhandle, jboolean use_direct_reads) {
113 ENV_OPTIONS_SET_BOOL(jhandle, use_direct_reads);
114 }
115
116 /*
117 * Class: org_rocksdb_EnvOptions
118 * Method: useDirectReads
119 * Signature: (J)Z
120 */
121 jboolean Java_org_rocksdb_EnvOptions_useDirectReads(
122 JNIEnv*, jobject, jlong jhandle) {
123 return ENV_OPTIONS_GET(jhandle, use_direct_reads);
124 }
125
126 /*
127 * Class: org_rocksdb_EnvOptions
128 * Method: setUseDirectWrites
129 * Signature: (JZ)V
130 */
131 void Java_org_rocksdb_EnvOptions_setUseDirectWrites(
132 JNIEnv*, jobject, jlong jhandle, jboolean use_direct_writes) {
133 ENV_OPTIONS_SET_BOOL(jhandle, use_direct_writes);
134 }
135
136 /*
137 * Class: org_rocksdb_EnvOptions
138 * Method: useDirectWrites
139 * Signature: (J)Z
140 */
141 jboolean Java_org_rocksdb_EnvOptions_useDirectWrites(
142 JNIEnv*, jobject, jlong jhandle) {
143 return ENV_OPTIONS_GET(jhandle, use_direct_writes);
144 }
145
146 /*
147 * Class: org_rocksdb_EnvOptions
148 * Method: setAllowFallocate
149 * Signature: (JZ)V
150 */
151 void Java_org_rocksdb_EnvOptions_setAllowFallocate(
152 JNIEnv*, jobject, jlong jhandle, jboolean allow_fallocate) {
153 ENV_OPTIONS_SET_BOOL(jhandle, allow_fallocate);
154 }
155
156 /*
157 * Class: org_rocksdb_EnvOptions
158 * Method: allowFallocate
159 * Signature: (J)Z
160 */
161 jboolean Java_org_rocksdb_EnvOptions_allowFallocate(
162 JNIEnv*, jobject, jlong jhandle) {
163 return ENV_OPTIONS_GET(jhandle, allow_fallocate);
164 }
165
166 /*
167 * Class: org_rocksdb_EnvOptions
168 * Method: setSetFdCloexec
169 * Signature: (JZ)V
170 */
171 void Java_org_rocksdb_EnvOptions_setSetFdCloexec(
172 JNIEnv*, jobject, jlong jhandle, jboolean set_fd_cloexec) {
173 ENV_OPTIONS_SET_BOOL(jhandle, set_fd_cloexec);
174 }
175
176 /*
177 * Class: org_rocksdb_EnvOptions
178 * Method: setFdCloexec
179 * Signature: (J)Z
180 */
181 jboolean Java_org_rocksdb_EnvOptions_setFdCloexec(
182 JNIEnv*, jobject, jlong jhandle) {
183 return ENV_OPTIONS_GET(jhandle, set_fd_cloexec);
184 }
185
186 /*
187 * Class: org_rocksdb_EnvOptions
188 * Method: setBytesPerSync
189 * Signature: (JJ)V
190 */
191 void Java_org_rocksdb_EnvOptions_setBytesPerSync(
192 JNIEnv*, jobject, jlong jhandle, jlong bytes_per_sync) {
193 ENV_OPTIONS_SET_UINT64_T(jhandle, bytes_per_sync);
194 }
195
196 /*
197 * Class: org_rocksdb_EnvOptions
198 * Method: bytesPerSync
199 * Signature: (J)J
200 */
201 jlong Java_org_rocksdb_EnvOptions_bytesPerSync(
202 JNIEnv*, jobject, jlong jhandle) {
203 return ENV_OPTIONS_GET(jhandle, bytes_per_sync);
204 }
205
206 /*
207 * Class: org_rocksdb_EnvOptions
208 * Method: setFallocateWithKeepSize
209 * Signature: (JZ)V
210 */
211 void Java_org_rocksdb_EnvOptions_setFallocateWithKeepSize(
212 JNIEnv*, jobject, jlong jhandle, jboolean fallocate_with_keep_size) {
213 ENV_OPTIONS_SET_BOOL(jhandle, fallocate_with_keep_size);
214 }
215
216 /*
217 * Class: org_rocksdb_EnvOptions
218 * Method: fallocateWithKeepSize
219 * Signature: (J)Z
220 */
221 jboolean Java_org_rocksdb_EnvOptions_fallocateWithKeepSize(
222 JNIEnv*, jobject, jlong jhandle) {
223 return ENV_OPTIONS_GET(jhandle, fallocate_with_keep_size);
224 }
225
226 /*
227 * Class: org_rocksdb_EnvOptions
228 * Method: setCompactionReadaheadSize
229 * Signature: (JJ)V
230 */
231 void Java_org_rocksdb_EnvOptions_setCompactionReadaheadSize(
232 JNIEnv*, jobject, jlong jhandle, jlong compaction_readahead_size) {
233 ENV_OPTIONS_SET_SIZE_T(jhandle, compaction_readahead_size);
234 }
235
236 /*
237 * Class: org_rocksdb_EnvOptions
238 * Method: compactionReadaheadSize
239 * Signature: (J)J
240 */
241 jlong Java_org_rocksdb_EnvOptions_compactionReadaheadSize(
242 JNIEnv*, jobject, jlong jhandle) {
243 return ENV_OPTIONS_GET(jhandle, compaction_readahead_size);
244 }
245
246 /*
247 * Class: org_rocksdb_EnvOptions
248 * Method: setRandomAccessMaxBufferSize
249 * Signature: (JJ)V
250 */
251 void Java_org_rocksdb_EnvOptions_setRandomAccessMaxBufferSize(
252 JNIEnv*, jobject, jlong jhandle, jlong random_access_max_buffer_size) {
253 ENV_OPTIONS_SET_SIZE_T(jhandle, random_access_max_buffer_size);
254 }
255
256 /*
257 * Class: org_rocksdb_EnvOptions
258 * Method: randomAccessMaxBufferSize
259 * Signature: (J)J
260 */
261 jlong Java_org_rocksdb_EnvOptions_randomAccessMaxBufferSize(
262 JNIEnv*, jobject, jlong jhandle) {
263 return ENV_OPTIONS_GET(jhandle, random_access_max_buffer_size);
264 }
265
266 /*
267 * Class: org_rocksdb_EnvOptions
268 * Method: setWritableFileMaxBufferSize
269 * Signature: (JJ)V
270 */
271 void Java_org_rocksdb_EnvOptions_setWritableFileMaxBufferSize(
272 JNIEnv*, jobject, jlong jhandle, jlong writable_file_max_buffer_size) {
273 ENV_OPTIONS_SET_SIZE_T(jhandle, writable_file_max_buffer_size);
274 }
275
276 /*
277 * Class: org_rocksdb_EnvOptions
278 * Method: writableFileMaxBufferSize
279 * Signature: (J)J
280 */
281 jlong Java_org_rocksdb_EnvOptions_writableFileMaxBufferSize(
282 JNIEnv*, jobject, jlong jhandle) {
283 return ENV_OPTIONS_GET(jhandle, writable_file_max_buffer_size);
284 }
285
286 /*
287 * Class: org_rocksdb_EnvOptions
288 * Method: setRateLimiter
289 * Signature: (JJ)V
290 */
291 void Java_org_rocksdb_EnvOptions_setRateLimiter(
292 JNIEnv*, jobject, jlong jhandle, jlong rl_handle) {
293 auto *sptr_rate_limiter =
294 reinterpret_cast<std::shared_ptr<rocksdb::RateLimiter> *>(rl_handle);
295 auto *env_opt = reinterpret_cast<rocksdb::EnvOptions *>(jhandle);
296 env_opt->rate_limiter = sptr_rate_limiter->get();
297 }