]> git.proxmox.com Git - ceph.git/blob - ceph/src/rocksdb/java/rocksjni/config_options.cc
import quincy beta 17.1.0
[ceph.git] / ceph / src / rocksdb / java / rocksjni / config_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_NAMESPACE::ConfigOptions methods
8 // from Java side.
9
10 #include <jni.h>
11
12 #include "include/org_rocksdb_ConfigOptions.h"
13 #include "rocksdb/convenience.h"
14 #include "rocksjni/portal.h"
15
16 /*
17 * Class: org_rocksdb_ConfigOptions
18 * Method: disposeInternal
19 * Signature: (J)V
20 */
21 void Java_org_rocksdb_ConfigOptions_disposeInternal(JNIEnv *, jobject,
22 jlong jhandle) {
23 auto *co = reinterpret_cast<ROCKSDB_NAMESPACE::ConfigOptions *>(jhandle);
24 assert(co != nullptr);
25 delete co;
26 }
27
28 /*
29 * Class: org_rocksdb_ConfigOptions
30 * Method: newConfigOptions
31 * Signature: ()J
32 */
33 jlong Java_org_rocksdb_ConfigOptions_newConfigOptions(JNIEnv *, jclass) {
34 auto *cfg_opt = new ROCKSDB_NAMESPACE::ConfigOptions();
35 return reinterpret_cast<jlong>(cfg_opt);
36 }
37
38 /*
39 * Class: org_rocksdb_ConfigOptions
40 * Method: setDelimiter
41 * Signature: (JLjava/lang/String;)V
42 */
43 void Java_org_rocksdb_ConfigOptions_setDelimiter(JNIEnv *env, jclass,
44 jlong handle, jstring s) {
45 auto *cfg_opt = reinterpret_cast<ROCKSDB_NAMESPACE::ConfigOptions *>(handle);
46 const char *delim = env->GetStringUTFChars(s, nullptr);
47 if (delim == nullptr) {
48 // exception thrown: OutOfMemoryError
49 return;
50 }
51 cfg_opt->delimiter = delim;
52 env->ReleaseStringUTFChars(s, delim);
53 }
54
55 /*
56 * Class: org_rocksdb_ConfigOptions
57 * Method: setIgnoreUnknownOptions
58 * Signature: (JZ)V
59 */
60 void Java_org_rocksdb_ConfigOptions_setIgnoreUnknownOptions(JNIEnv *, jclass,
61 jlong handle,
62 jboolean b) {
63 auto *cfg_opt = reinterpret_cast<ROCKSDB_NAMESPACE::ConfigOptions *>(handle);
64 cfg_opt->ignore_unknown_options = static_cast<bool>(b);
65 }
66
67 /*
68 * Class: org_rocksdb_ConfigOptions
69 * Method: setInputStringsEscaped
70 * Signature: (JZ)V
71 */
72 void Java_org_rocksdb_ConfigOptions_setInputStringsEscaped(JNIEnv *, jclass,
73 jlong handle,
74 jboolean b) {
75 auto *cfg_opt = reinterpret_cast<ROCKSDB_NAMESPACE::ConfigOptions *>(handle);
76 cfg_opt->input_strings_escaped = static_cast<bool>(b);
77 }
78
79 /*
80 * Class: org_rocksdb_ConfigOptions
81 * Method: setSanityLevel
82 * Signature: (JI)V
83 */
84 void Java_org_rocksdb_ConfigOptions_setSanityLevel(JNIEnv *, jclass,
85 jlong handle, jbyte level) {
86 auto *cfg_opt = reinterpret_cast<ROCKSDB_NAMESPACE::ConfigOptions *>(handle);
87 cfg_opt->sanity_level = ROCKSDB_NAMESPACE::SanityLevelJni::toCppSanityLevel(level);
88 }