]>
Commit | Line | Data |
---|---|---|
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 | |
f67539c2 TL |
7 | // calling c++ ROCKSDB_NAMESPACE::BackupEnginge and |
8 | // ROCKSDB_NAMESPACE::BackupableDBOptions methods from Java side. | |
7c673cae | 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 | */ | |
28 | jlong 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 | } | |
f67539c2 | 35 | auto* bopt = new ROCKSDB_NAMESPACE::BackupableDBOptions(cpath); |
7c673cae FG |
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 |
45 | jstring Java_org_rocksdb_BackupableDBOptions_backupDir(JNIEnv* env, |
46 | jobject /*jopt*/, | |
47 | jlong jhandle) { | |
f67539c2 TL |
48 | auto* bopt = |
49 | reinterpret_cast<ROCKSDB_NAMESPACE::BackupableDBOptions*>(jhandle); | |
7c673cae FG |
50 | return env->NewStringUTF(bopt->backup_dir.c_str()); |
51 | } | |
52 | ||
53 | /* | |
54 | * Class: org_rocksdb_BackupableDBOptions | |
55 | * Method: setBackupEnv | |
56 | * Signature: (JJ)V | |
57 | */ | |
58 | void Java_org_rocksdb_BackupableDBOptions_setBackupEnv( | |
11fdf7f2 | 59 | JNIEnv* /*env*/, jobject /*jopt*/, jlong jhandle, jlong jrocks_env_handle) { |
f67539c2 TL |
60 | auto* bopt = |
61 | reinterpret_cast<ROCKSDB_NAMESPACE::BackupableDBOptions*>(jhandle); | |
62 | auto* rocks_env = | |
63 | reinterpret_cast<ROCKSDB_NAMESPACE::Env*>(jrocks_env_handle); | |
7c673cae FG |
64 | bopt->backup_env = rocks_env; |
65 | } | |
66 | ||
67 | /* | |
68 | * Class: org_rocksdb_BackupableDBOptions | |
69 | * Method: setShareTableFiles | |
70 | * Signature: (JZ)V | |
71 | */ | |
11fdf7f2 TL |
72 | void Java_org_rocksdb_BackupableDBOptions_setShareTableFiles(JNIEnv* /*env*/, |
73 | jobject /*jobj*/, | |
74 | jlong jhandle, | |
75 | jboolean flag) { | |
f67539c2 TL |
76 | auto* bopt = |
77 | reinterpret_cast<ROCKSDB_NAMESPACE::BackupableDBOptions*>(jhandle); | |
7c673cae FG |
78 | bopt->share_table_files = flag; |
79 | } | |
80 | ||
81 | /* | |
82 | * Class: org_rocksdb_BackupableDBOptions | |
83 | * Method: shareTableFiles | |
84 | * Signature: (J)Z | |
85 | */ | |
11fdf7f2 TL |
86 | jboolean Java_org_rocksdb_BackupableDBOptions_shareTableFiles(JNIEnv* /*env*/, |
87 | jobject /*jobj*/, | |
88 | jlong jhandle) { | |
f67539c2 TL |
89 | auto* bopt = |
90 | reinterpret_cast<ROCKSDB_NAMESPACE::BackupableDBOptions*>(jhandle); | |
7c673cae FG |
91 | return bopt->share_table_files; |
92 | } | |
93 | ||
94 | /* | |
95 | * Class: org_rocksdb_BackupableDBOptions | |
96 | * Method: setInfoLog | |
97 | * Signature: (JJ)V | |
98 | */ | |
11fdf7f2 TL |
99 | void Java_org_rocksdb_BackupableDBOptions_setInfoLog(JNIEnv* /*env*/, |
100 | jobject /*jobj*/, | |
101 | jlong jhandle, | |
102 | jlong /*jlogger_handle*/) { | |
f67539c2 TL |
103 | auto* bopt = |
104 | reinterpret_cast<ROCKSDB_NAMESPACE::BackupableDBOptions*>(jhandle); | |
7c673cae | 105 | auto* sptr_logger = |
f67539c2 TL |
106 | reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::LoggerJniCallback>*>( |
107 | jhandle); | |
7c673cae FG |
108 | bopt->info_log = sptr_logger->get(); |
109 | } | |
110 | ||
111 | /* | |
112 | * Class: org_rocksdb_BackupableDBOptions | |
113 | * Method: setSync | |
114 | * Signature: (JZ)V | |
115 | */ | |
11fdf7f2 TL |
116 | void Java_org_rocksdb_BackupableDBOptions_setSync(JNIEnv* /*env*/, |
117 | jobject /*jobj*/, | |
118 | jlong jhandle, | |
119 | jboolean flag) { | |
f67539c2 TL |
120 | auto* bopt = |
121 | reinterpret_cast<ROCKSDB_NAMESPACE::BackupableDBOptions*>(jhandle); | |
7c673cae FG |
122 | bopt->sync = flag; |
123 | } | |
124 | ||
125 | /* | |
126 | * Class: org_rocksdb_BackupableDBOptions | |
127 | * Method: sync | |
128 | * Signature: (J)Z | |
129 | */ | |
11fdf7f2 TL |
130 | jboolean Java_org_rocksdb_BackupableDBOptions_sync(JNIEnv* /*env*/, |
131 | jobject /*jobj*/, | |
132 | jlong jhandle) { | |
f67539c2 TL |
133 | auto* bopt = |
134 | reinterpret_cast<ROCKSDB_NAMESPACE::BackupableDBOptions*>(jhandle); | |
7c673cae FG |
135 | return bopt->sync; |
136 | } | |
137 | ||
138 | /* | |
139 | * Class: org_rocksdb_BackupableDBOptions | |
140 | * Method: setDestroyOldData | |
141 | * Signature: (JZ)V | |
142 | */ | |
11fdf7f2 TL |
143 | void Java_org_rocksdb_BackupableDBOptions_setDestroyOldData(JNIEnv* /*env*/, |
144 | jobject /*jobj*/, | |
145 | jlong jhandle, | |
146 | jboolean flag) { | |
f67539c2 TL |
147 | auto* bopt = |
148 | reinterpret_cast<ROCKSDB_NAMESPACE::BackupableDBOptions*>(jhandle); | |
7c673cae FG |
149 | bopt->destroy_old_data = flag; |
150 | } | |
151 | ||
152 | /* | |
153 | * Class: org_rocksdb_BackupableDBOptions | |
154 | * Method: destroyOldData | |
155 | * Signature: (J)Z | |
156 | */ | |
11fdf7f2 TL |
157 | jboolean Java_org_rocksdb_BackupableDBOptions_destroyOldData(JNIEnv* /*env*/, |
158 | jobject /*jobj*/, | |
159 | jlong jhandle) { | |
f67539c2 TL |
160 | auto* bopt = |
161 | reinterpret_cast<ROCKSDB_NAMESPACE::BackupableDBOptions*>(jhandle); | |
7c673cae FG |
162 | return bopt->destroy_old_data; |
163 | } | |
164 | ||
165 | /* | |
166 | * Class: org_rocksdb_BackupableDBOptions | |
167 | * Method: setBackupLogFiles | |
168 | * Signature: (JZ)V | |
169 | */ | |
11fdf7f2 TL |
170 | void Java_org_rocksdb_BackupableDBOptions_setBackupLogFiles(JNIEnv* /*env*/, |
171 | jobject /*jobj*/, | |
172 | jlong jhandle, | |
173 | jboolean flag) { | |
f67539c2 TL |
174 | auto* bopt = |
175 | reinterpret_cast<ROCKSDB_NAMESPACE::BackupableDBOptions*>(jhandle); | |
7c673cae FG |
176 | bopt->backup_log_files = flag; |
177 | } | |
178 | ||
179 | /* | |
180 | * Class: org_rocksdb_BackupableDBOptions | |
181 | * Method: backupLogFiles | |
182 | * Signature: (J)Z | |
183 | */ | |
11fdf7f2 TL |
184 | jboolean Java_org_rocksdb_BackupableDBOptions_backupLogFiles(JNIEnv* /*env*/, |
185 | jobject /*jobj*/, | |
186 | jlong jhandle) { | |
f67539c2 TL |
187 | auto* bopt = |
188 | reinterpret_cast<ROCKSDB_NAMESPACE::BackupableDBOptions*>(jhandle); | |
7c673cae FG |
189 | return bopt->backup_log_files; |
190 | } | |
191 | ||
192 | /* | |
193 | * Class: org_rocksdb_BackupableDBOptions | |
194 | * Method: setBackupRateLimit | |
195 | * Signature: (JJ)V | |
196 | */ | |
197 | void Java_org_rocksdb_BackupableDBOptions_setBackupRateLimit( | |
11fdf7f2 TL |
198 | JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle, |
199 | jlong jbackup_rate_limit) { | |
f67539c2 TL |
200 | auto* bopt = |
201 | reinterpret_cast<ROCKSDB_NAMESPACE::BackupableDBOptions*>(jhandle); | |
7c673cae FG |
202 | bopt->backup_rate_limit = jbackup_rate_limit; |
203 | } | |
204 | ||
205 | /* | |
206 | * Class: org_rocksdb_BackupableDBOptions | |
207 | * Method: backupRateLimit | |
208 | * Signature: (J)J | |
209 | */ | |
11fdf7f2 TL |
210 | jlong Java_org_rocksdb_BackupableDBOptions_backupRateLimit(JNIEnv* /*env*/, |
211 | jobject /*jobj*/, | |
212 | jlong jhandle) { | |
f67539c2 TL |
213 | auto* bopt = |
214 | reinterpret_cast<ROCKSDB_NAMESPACE::BackupableDBOptions*>(jhandle); | |
7c673cae FG |
215 | return bopt->backup_rate_limit; |
216 | } | |
217 | ||
218 | /* | |
219 | * Class: org_rocksdb_BackupableDBOptions | |
220 | * Method: setBackupRateLimiter | |
221 | * Signature: (JJ)V | |
222 | */ | |
223 | void Java_org_rocksdb_BackupableDBOptions_setBackupRateLimiter( | |
11fdf7f2 TL |
224 | JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle, |
225 | jlong jrate_limiter_handle) { | |
f67539c2 TL |
226 | auto* bopt = |
227 | reinterpret_cast<ROCKSDB_NAMESPACE::BackupableDBOptions*>(jhandle); | |
7c673cae | 228 | auto* sptr_rate_limiter = |
f67539c2 | 229 | reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::RateLimiter>*>( |
11fdf7f2 | 230 | jrate_limiter_handle); |
7c673cae FG |
231 | bopt->backup_rate_limiter = *sptr_rate_limiter; |
232 | } | |
233 | ||
234 | /* | |
235 | * Class: org_rocksdb_BackupableDBOptions | |
236 | * Method: setRestoreRateLimit | |
237 | * Signature: (JJ)V | |
238 | */ | |
239 | void Java_org_rocksdb_BackupableDBOptions_setRestoreRateLimit( | |
11fdf7f2 TL |
240 | JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle, |
241 | jlong jrestore_rate_limit) { | |
f67539c2 TL |
242 | auto* bopt = |
243 | reinterpret_cast<ROCKSDB_NAMESPACE::BackupableDBOptions*>(jhandle); | |
7c673cae FG |
244 | bopt->restore_rate_limit = jrestore_rate_limit; |
245 | } | |
246 | ||
247 | /* | |
248 | * Class: org_rocksdb_BackupableDBOptions | |
249 | * Method: restoreRateLimit | |
250 | * Signature: (J)J | |
251 | */ | |
11fdf7f2 TL |
252 | jlong Java_org_rocksdb_BackupableDBOptions_restoreRateLimit(JNIEnv* /*env*/, |
253 | jobject /*jobj*/, | |
254 | jlong jhandle) { | |
f67539c2 TL |
255 | auto* bopt = |
256 | reinterpret_cast<ROCKSDB_NAMESPACE::BackupableDBOptions*>(jhandle); | |
7c673cae FG |
257 | return bopt->restore_rate_limit; |
258 | } | |
259 | ||
260 | /* | |
261 | * Class: org_rocksdb_BackupableDBOptions | |
262 | * Method: setRestoreRateLimiter | |
263 | * Signature: (JJ)V | |
264 | */ | |
265 | void Java_org_rocksdb_BackupableDBOptions_setRestoreRateLimiter( | |
11fdf7f2 TL |
266 | JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle, |
267 | jlong jrate_limiter_handle) { | |
f67539c2 TL |
268 | auto* bopt = |
269 | reinterpret_cast<ROCKSDB_NAMESPACE::BackupableDBOptions*>(jhandle); | |
7c673cae | 270 | auto* sptr_rate_limiter = |
f67539c2 | 271 | reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::RateLimiter>*>( |
11fdf7f2 | 272 | jrate_limiter_handle); |
7c673cae FG |
273 | bopt->restore_rate_limiter = *sptr_rate_limiter; |
274 | } | |
275 | ||
276 | /* | |
277 | * Class: org_rocksdb_BackupableDBOptions | |
278 | * Method: setShareFilesWithChecksum | |
279 | * Signature: (JZ)V | |
280 | */ | |
281 | void Java_org_rocksdb_BackupableDBOptions_setShareFilesWithChecksum( | |
11fdf7f2 | 282 | JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle, jboolean flag) { |
f67539c2 TL |
283 | auto* bopt = |
284 | reinterpret_cast<ROCKSDB_NAMESPACE::BackupableDBOptions*>(jhandle); | |
7c673cae FG |
285 | bopt->share_files_with_checksum = flag; |
286 | } | |
287 | ||
288 | /* | |
289 | * Class: org_rocksdb_BackupableDBOptions | |
290 | * Method: shareFilesWithChecksum | |
291 | * Signature: (J)Z | |
292 | */ | |
293 | jboolean Java_org_rocksdb_BackupableDBOptions_shareFilesWithChecksum( | |
11fdf7f2 | 294 | JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle) { |
f67539c2 TL |
295 | auto* bopt = |
296 | reinterpret_cast<ROCKSDB_NAMESPACE::BackupableDBOptions*>(jhandle); | |
7c673cae FG |
297 | return bopt->share_files_with_checksum; |
298 | } | |
299 | ||
300 | /* | |
301 | * Class: org_rocksdb_BackupableDBOptions | |
302 | * Method: setMaxBackgroundOperations | |
303 | * Signature: (JI)V | |
304 | */ | |
305 | void Java_org_rocksdb_BackupableDBOptions_setMaxBackgroundOperations( | |
11fdf7f2 TL |
306 | JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle, |
307 | jint max_background_operations) { | |
f67539c2 TL |
308 | auto* bopt = |
309 | reinterpret_cast<ROCKSDB_NAMESPACE::BackupableDBOptions*>(jhandle); | |
11fdf7f2 | 310 | bopt->max_background_operations = static_cast<int>(max_background_operations); |
7c673cae FG |
311 | } |
312 | ||
313 | /* | |
314 | * Class: org_rocksdb_BackupableDBOptions | |
315 | * Method: maxBackgroundOperations | |
316 | * Signature: (J)I | |
317 | */ | |
318 | jint Java_org_rocksdb_BackupableDBOptions_maxBackgroundOperations( | |
11fdf7f2 | 319 | JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle) { |
f67539c2 TL |
320 | auto* bopt = |
321 | reinterpret_cast<ROCKSDB_NAMESPACE::BackupableDBOptions*>(jhandle); | |
7c673cae FG |
322 | return static_cast<jint>(bopt->max_background_operations); |
323 | } | |
324 | ||
325 | /* | |
326 | * Class: org_rocksdb_BackupableDBOptions | |
327 | * Method: setCallbackTriggerIntervalSize | |
328 | * Signature: (JJ)V | |
329 | */ | |
330 | void Java_org_rocksdb_BackupableDBOptions_setCallbackTriggerIntervalSize( | |
11fdf7f2 | 331 | JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle, |
7c673cae | 332 | jlong jcallback_trigger_interval_size) { |
f67539c2 TL |
333 | auto* bopt = |
334 | reinterpret_cast<ROCKSDB_NAMESPACE::BackupableDBOptions*>(jhandle); | |
7c673cae FG |
335 | bopt->callback_trigger_interval_size = |
336 | static_cast<uint64_t>(jcallback_trigger_interval_size); | |
337 | } | |
338 | ||
339 | /* | |
340 | * Class: org_rocksdb_BackupableDBOptions | |
341 | * Method: callbackTriggerIntervalSize | |
342 | * Signature: (J)J | |
343 | */ | |
344 | jlong Java_org_rocksdb_BackupableDBOptions_callbackTriggerIntervalSize( | |
11fdf7f2 | 345 | JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle) { |
f67539c2 TL |
346 | auto* bopt = |
347 | reinterpret_cast<ROCKSDB_NAMESPACE::BackupableDBOptions*>(jhandle); | |
7c673cae FG |
348 | return static_cast<jlong>(bopt->callback_trigger_interval_size); |
349 | } | |
350 | ||
351 | /* | |
352 | * Class: org_rocksdb_BackupableDBOptions | |
353 | * Method: disposeInternal | |
354 | * Signature: (J)V | |
355 | */ | |
11fdf7f2 TL |
356 | void Java_org_rocksdb_BackupableDBOptions_disposeInternal(JNIEnv* /*env*/, |
357 | jobject /*jopt*/, | |
358 | jlong jhandle) { | |
f67539c2 TL |
359 | auto* bopt = |
360 | reinterpret_cast<ROCKSDB_NAMESPACE::BackupableDBOptions*>(jhandle); | |
7c673cae FG |
361 | assert(bopt != nullptr); |
362 | delete bopt; | |
363 | } |