]> git.proxmox.com Git - ceph.git/blame - ceph/src/rocksdb/java/rocksjni/backupablejni.cc
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / rocksdb / java / rocksjni / backupablejni.cc
CommitLineData
7c673cae 1// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
11fdf7f2
TL
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).
7c673cae
FG
5//
6// This file implements the "bridge" between Java and C++ and enables
11fdf7f2 7// calling c++ rocksdb::BackupEnginge and rocksdb::BackupableDBOptions methods
7c673cae
FG
8// from Java side.
9
11fdf7f2 10#include <jni.h>
7c673cae
FG
11#include <stdio.h>
12#include <stdlib.h>
7c673cae
FG
13#include <string>
14#include <vector>
15
16#include "include/org_rocksdb_BackupableDBOptions.h"
7c673cae 17#include "rocksdb/utilities/backupable_db.h"
11fdf7f2 18#include "rocksjni/portal.h"
7c673cae
FG
19
20///////////////////////////////////////////////////////////////////////////
21// BackupDBOptions
22
23/*
24 * Class: org_rocksdb_BackupableDBOptions
25 * Method: newBackupableDBOptions
26 * Signature: (Ljava/lang/String;)J
27 */
28jlong Java_org_rocksdb_BackupableDBOptions_newBackupableDBOptions(
11fdf7f2 29 JNIEnv* env, jclass /*jcls*/, jstring jpath) {
7c673cae 30 const char* cpath = env->GetStringUTFChars(jpath, nullptr);
11fdf7f2 31 if (cpath == nullptr) {
7c673cae
FG
32 // exception thrown: OutOfMemoryError
33 return 0;
34 }
35 auto* bopt = new rocksdb::BackupableDBOptions(cpath);
36 env->ReleaseStringUTFChars(jpath, cpath);
37 return reinterpret_cast<jlong>(bopt);
38}
39
40/*
41 * Class: org_rocksdb_BackupableDBOptions
42 * Method: backupDir
43 * Signature: (J)Ljava/lang/String;
44 */
11fdf7f2
TL
45jstring Java_org_rocksdb_BackupableDBOptions_backupDir(JNIEnv* env,
46 jobject /*jopt*/,
47 jlong jhandle) {
7c673cae
FG
48 auto* bopt = reinterpret_cast<rocksdb::BackupableDBOptions*>(jhandle);
49 return env->NewStringUTF(bopt->backup_dir.c_str());
50}
51
52/*
53 * Class: org_rocksdb_BackupableDBOptions
54 * Method: setBackupEnv
55 * Signature: (JJ)V
56 */
57void Java_org_rocksdb_BackupableDBOptions_setBackupEnv(
11fdf7f2 58 JNIEnv* /*env*/, jobject /*jopt*/, jlong jhandle, jlong jrocks_env_handle) {
7c673cae
FG
59 auto* bopt = reinterpret_cast<rocksdb::BackupableDBOptions*>(jhandle);
60 auto* rocks_env = reinterpret_cast<rocksdb::Env*>(jrocks_env_handle);
61 bopt->backup_env = rocks_env;
62}
63
64/*
65 * Class: org_rocksdb_BackupableDBOptions
66 * Method: setShareTableFiles
67 * Signature: (JZ)V
68 */
11fdf7f2
TL
69void Java_org_rocksdb_BackupableDBOptions_setShareTableFiles(JNIEnv* /*env*/,
70 jobject /*jobj*/,
71 jlong jhandle,
72 jboolean flag) {
7c673cae
FG
73 auto* bopt = reinterpret_cast<rocksdb::BackupableDBOptions*>(jhandle);
74 bopt->share_table_files = flag;
75}
76
77/*
78 * Class: org_rocksdb_BackupableDBOptions
79 * Method: shareTableFiles
80 * Signature: (J)Z
81 */
11fdf7f2
TL
82jboolean Java_org_rocksdb_BackupableDBOptions_shareTableFiles(JNIEnv* /*env*/,
83 jobject /*jobj*/,
84 jlong jhandle) {
7c673cae
FG
85 auto* bopt = reinterpret_cast<rocksdb::BackupableDBOptions*>(jhandle);
86 return bopt->share_table_files;
87}
88
89/*
90 * Class: org_rocksdb_BackupableDBOptions
91 * Method: setInfoLog
92 * Signature: (JJ)V
93 */
11fdf7f2
TL
94void Java_org_rocksdb_BackupableDBOptions_setInfoLog(JNIEnv* /*env*/,
95 jobject /*jobj*/,
96 jlong jhandle,
97 jlong /*jlogger_handle*/) {
7c673cae
FG
98 auto* bopt = reinterpret_cast<rocksdb::BackupableDBOptions*>(jhandle);
99 auto* sptr_logger =
11fdf7f2 100 reinterpret_cast<std::shared_ptr<rocksdb::LoggerJniCallback>*>(jhandle);
7c673cae
FG
101 bopt->info_log = sptr_logger->get();
102}
103
104/*
105 * Class: org_rocksdb_BackupableDBOptions
106 * Method: setSync
107 * Signature: (JZ)V
108 */
11fdf7f2
TL
109void Java_org_rocksdb_BackupableDBOptions_setSync(JNIEnv* /*env*/,
110 jobject /*jobj*/,
111 jlong jhandle,
112 jboolean flag) {
7c673cae
FG
113 auto* bopt = reinterpret_cast<rocksdb::BackupableDBOptions*>(jhandle);
114 bopt->sync = flag;
115}
116
117/*
118 * Class: org_rocksdb_BackupableDBOptions
119 * Method: sync
120 * Signature: (J)Z
121 */
11fdf7f2
TL
122jboolean Java_org_rocksdb_BackupableDBOptions_sync(JNIEnv* /*env*/,
123 jobject /*jobj*/,
124 jlong jhandle) {
7c673cae
FG
125 auto* bopt = reinterpret_cast<rocksdb::BackupableDBOptions*>(jhandle);
126 return bopt->sync;
127}
128
129/*
130 * Class: org_rocksdb_BackupableDBOptions
131 * Method: setDestroyOldData
132 * Signature: (JZ)V
133 */
11fdf7f2
TL
134void Java_org_rocksdb_BackupableDBOptions_setDestroyOldData(JNIEnv* /*env*/,
135 jobject /*jobj*/,
136 jlong jhandle,
137 jboolean flag) {
7c673cae
FG
138 auto* bopt = reinterpret_cast<rocksdb::BackupableDBOptions*>(jhandle);
139 bopt->destroy_old_data = flag;
140}
141
142/*
143 * Class: org_rocksdb_BackupableDBOptions
144 * Method: destroyOldData
145 * Signature: (J)Z
146 */
11fdf7f2
TL
147jboolean Java_org_rocksdb_BackupableDBOptions_destroyOldData(JNIEnv* /*env*/,
148 jobject /*jobj*/,
149 jlong jhandle) {
7c673cae
FG
150 auto* bopt = reinterpret_cast<rocksdb::BackupableDBOptions*>(jhandle);
151 return bopt->destroy_old_data;
152}
153
154/*
155 * Class: org_rocksdb_BackupableDBOptions
156 * Method: setBackupLogFiles
157 * Signature: (JZ)V
158 */
11fdf7f2
TL
159void Java_org_rocksdb_BackupableDBOptions_setBackupLogFiles(JNIEnv* /*env*/,
160 jobject /*jobj*/,
161 jlong jhandle,
162 jboolean flag) {
7c673cae
FG
163 auto* bopt = reinterpret_cast<rocksdb::BackupableDBOptions*>(jhandle);
164 bopt->backup_log_files = flag;
165}
166
167/*
168 * Class: org_rocksdb_BackupableDBOptions
169 * Method: backupLogFiles
170 * Signature: (J)Z
171 */
11fdf7f2
TL
172jboolean Java_org_rocksdb_BackupableDBOptions_backupLogFiles(JNIEnv* /*env*/,
173 jobject /*jobj*/,
174 jlong jhandle) {
7c673cae
FG
175 auto* bopt = reinterpret_cast<rocksdb::BackupableDBOptions*>(jhandle);
176 return bopt->backup_log_files;
177}
178
179/*
180 * Class: org_rocksdb_BackupableDBOptions
181 * Method: setBackupRateLimit
182 * Signature: (JJ)V
183 */
184void Java_org_rocksdb_BackupableDBOptions_setBackupRateLimit(
11fdf7f2
TL
185 JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle,
186 jlong jbackup_rate_limit) {
7c673cae
FG
187 auto* bopt = reinterpret_cast<rocksdb::BackupableDBOptions*>(jhandle);
188 bopt->backup_rate_limit = jbackup_rate_limit;
189}
190
191/*
192 * Class: org_rocksdb_BackupableDBOptions
193 * Method: backupRateLimit
194 * Signature: (J)J
195 */
11fdf7f2
TL
196jlong Java_org_rocksdb_BackupableDBOptions_backupRateLimit(JNIEnv* /*env*/,
197 jobject /*jobj*/,
198 jlong jhandle) {
7c673cae
FG
199 auto* bopt = reinterpret_cast<rocksdb::BackupableDBOptions*>(jhandle);
200 return bopt->backup_rate_limit;
201}
202
203/*
204 * Class: org_rocksdb_BackupableDBOptions
205 * Method: setBackupRateLimiter
206 * Signature: (JJ)V
207 */
208void Java_org_rocksdb_BackupableDBOptions_setBackupRateLimiter(
11fdf7f2
TL
209 JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle,
210 jlong jrate_limiter_handle) {
7c673cae
FG
211 auto* bopt = reinterpret_cast<rocksdb::BackupableDBOptions*>(jhandle);
212 auto* sptr_rate_limiter =
11fdf7f2
TL
213 reinterpret_cast<std::shared_ptr<rocksdb::RateLimiter>*>(
214 jrate_limiter_handle);
7c673cae
FG
215 bopt->backup_rate_limiter = *sptr_rate_limiter;
216}
217
218/*
219 * Class: org_rocksdb_BackupableDBOptions
220 * Method: setRestoreRateLimit
221 * Signature: (JJ)V
222 */
223void Java_org_rocksdb_BackupableDBOptions_setRestoreRateLimit(
11fdf7f2
TL
224 JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle,
225 jlong jrestore_rate_limit) {
7c673cae
FG
226 auto* bopt = reinterpret_cast<rocksdb::BackupableDBOptions*>(jhandle);
227 bopt->restore_rate_limit = jrestore_rate_limit;
228}
229
230/*
231 * Class: org_rocksdb_BackupableDBOptions
232 * Method: restoreRateLimit
233 * Signature: (J)J
234 */
11fdf7f2
TL
235jlong Java_org_rocksdb_BackupableDBOptions_restoreRateLimit(JNIEnv* /*env*/,
236 jobject /*jobj*/,
237 jlong jhandle) {
7c673cae
FG
238 auto* bopt = reinterpret_cast<rocksdb::BackupableDBOptions*>(jhandle);
239 return bopt->restore_rate_limit;
240}
241
242/*
243 * Class: org_rocksdb_BackupableDBOptions
244 * Method: setRestoreRateLimiter
245 * Signature: (JJ)V
246 */
247void Java_org_rocksdb_BackupableDBOptions_setRestoreRateLimiter(
11fdf7f2
TL
248 JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle,
249 jlong jrate_limiter_handle) {
7c673cae
FG
250 auto* bopt = reinterpret_cast<rocksdb::BackupableDBOptions*>(jhandle);
251 auto* sptr_rate_limiter =
11fdf7f2
TL
252 reinterpret_cast<std::shared_ptr<rocksdb::RateLimiter>*>(
253 jrate_limiter_handle);
7c673cae
FG
254 bopt->restore_rate_limiter = *sptr_rate_limiter;
255}
256
257/*
258 * Class: org_rocksdb_BackupableDBOptions
259 * Method: setShareFilesWithChecksum
260 * Signature: (JZ)V
261 */
262void Java_org_rocksdb_BackupableDBOptions_setShareFilesWithChecksum(
11fdf7f2 263 JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle, jboolean flag) {
7c673cae
FG
264 auto* bopt = reinterpret_cast<rocksdb::BackupableDBOptions*>(jhandle);
265 bopt->share_files_with_checksum = flag;
266}
267
268/*
269 * Class: org_rocksdb_BackupableDBOptions
270 * Method: shareFilesWithChecksum
271 * Signature: (J)Z
272 */
273jboolean Java_org_rocksdb_BackupableDBOptions_shareFilesWithChecksum(
11fdf7f2 274 JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle) {
7c673cae
FG
275 auto* bopt = reinterpret_cast<rocksdb::BackupableDBOptions*>(jhandle);
276 return bopt->share_files_with_checksum;
277}
278
279/*
280 * Class: org_rocksdb_BackupableDBOptions
281 * Method: setMaxBackgroundOperations
282 * Signature: (JI)V
283 */
284void Java_org_rocksdb_BackupableDBOptions_setMaxBackgroundOperations(
11fdf7f2
TL
285 JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle,
286 jint max_background_operations) {
7c673cae 287 auto* bopt = reinterpret_cast<rocksdb::BackupableDBOptions*>(jhandle);
11fdf7f2 288 bopt->max_background_operations = static_cast<int>(max_background_operations);
7c673cae
FG
289}
290
291/*
292 * Class: org_rocksdb_BackupableDBOptions
293 * Method: maxBackgroundOperations
294 * Signature: (J)I
295 */
296jint Java_org_rocksdb_BackupableDBOptions_maxBackgroundOperations(
11fdf7f2 297 JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle) {
7c673cae
FG
298 auto* bopt = reinterpret_cast<rocksdb::BackupableDBOptions*>(jhandle);
299 return static_cast<jint>(bopt->max_background_operations);
300}
301
302/*
303 * Class: org_rocksdb_BackupableDBOptions
304 * Method: setCallbackTriggerIntervalSize
305 * Signature: (JJ)V
306 */
307void Java_org_rocksdb_BackupableDBOptions_setCallbackTriggerIntervalSize(
11fdf7f2 308 JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle,
7c673cae
FG
309 jlong jcallback_trigger_interval_size) {
310 auto* bopt = reinterpret_cast<rocksdb::BackupableDBOptions*>(jhandle);
311 bopt->callback_trigger_interval_size =
312 static_cast<uint64_t>(jcallback_trigger_interval_size);
313}
314
315/*
316 * Class: org_rocksdb_BackupableDBOptions
317 * Method: callbackTriggerIntervalSize
318 * Signature: (J)J
319 */
320jlong Java_org_rocksdb_BackupableDBOptions_callbackTriggerIntervalSize(
11fdf7f2 321 JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle) {
7c673cae
FG
322 auto* bopt = reinterpret_cast<rocksdb::BackupableDBOptions*>(jhandle);
323 return static_cast<jlong>(bopt->callback_trigger_interval_size);
324}
325
326/*
327 * Class: org_rocksdb_BackupableDBOptions
328 * Method: disposeInternal
329 * Signature: (J)V
330 */
11fdf7f2
TL
331void Java_org_rocksdb_BackupableDBOptions_disposeInternal(JNIEnv* /*env*/,
332 jobject /*jopt*/,
333 jlong jhandle) {
7c673cae
FG
334 auto* bopt = reinterpret_cast<rocksdb::BackupableDBOptions*>(jhandle);
335 assert(bopt != nullptr);
336 delete bopt;
337}