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