]>
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 | |
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 | */ | |
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 | } | |
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 |
45 | jstring 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 | */ | |
57 | void 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 |
69 | void 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 |
82 | jboolean 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 |
94 | void 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 |
109 | void 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 |
122 | jboolean 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 |
134 | void 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 |
147 | jboolean 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 |
159 | void 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 |
172 | jboolean 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 | */ | |
184 | void 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 |
196 | jlong 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 | */ | |
208 | void 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 | */ | |
223 | void 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 |
235 | jlong 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 | */ | |
247 | void 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 | */ | |
262 | void 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 | */ | |
273 | jboolean 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 | */ | |
284 | void 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 | */ | |
296 | jint 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 | */ | |
307 | void 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 | */ | |
320 | jlong 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 |
331 | void 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 | } |