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++ for
7 // ROCKSDB_NAMESPACE::CompressionOptions.
8 
9 #include <jni.h>
10 
11 #include "include/org_rocksdb_CompressionOptions.h"
12 #include "rocksdb/advanced_options.h"
13 
14 /*
15  * Class:     org_rocksdb_CompressionOptions
16  * Method:    newCompressionOptions
17  * Signature: ()J
18  */
Java_org_rocksdb_CompressionOptions_newCompressionOptions(JNIEnv *,jclass)19 jlong Java_org_rocksdb_CompressionOptions_newCompressionOptions(
20     JNIEnv*, jclass) {
21   const auto* opt = new ROCKSDB_NAMESPACE::CompressionOptions();
22   return reinterpret_cast<jlong>(opt);
23 }
24 
25 /*
26  * Class:     org_rocksdb_CompressionOptions
27  * Method:    setWindowBits
28  * Signature: (JI)V
29  */
Java_org_rocksdb_CompressionOptions_setWindowBits(JNIEnv *,jobject,jlong jhandle,jint jwindow_bits)30 void Java_org_rocksdb_CompressionOptions_setWindowBits(
31     JNIEnv*, jobject, jlong jhandle, jint jwindow_bits) {
32   auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::CompressionOptions*>(jhandle);
33   opt->window_bits = static_cast<int>(jwindow_bits);
34 }
35 
36 /*
37  * Class:     org_rocksdb_CompressionOptions
38  * Method:    windowBits
39  * Signature: (J)I
40  */
Java_org_rocksdb_CompressionOptions_windowBits(JNIEnv *,jobject,jlong jhandle)41 jint Java_org_rocksdb_CompressionOptions_windowBits(
42     JNIEnv*, jobject, jlong jhandle) {
43   auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::CompressionOptions*>(jhandle);
44   return static_cast<jint>(opt->window_bits);
45 }
46 
47 /*
48  * Class:     org_rocksdb_CompressionOptions
49  * Method:    setLevel
50  * Signature: (JI)V
51  */
Java_org_rocksdb_CompressionOptions_setLevel(JNIEnv *,jobject,jlong jhandle,jint jlevel)52 void Java_org_rocksdb_CompressionOptions_setLevel(
53     JNIEnv*, jobject, jlong jhandle, jint jlevel) {
54   auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::CompressionOptions*>(jhandle);
55   opt->level = static_cast<int>(jlevel);
56 }
57 
58 /*
59  * Class:     org_rocksdb_CompressionOptions
60  * Method:    level
61  * Signature: (J)I
62  */
Java_org_rocksdb_CompressionOptions_level(JNIEnv *,jobject,jlong jhandle)63 jint Java_org_rocksdb_CompressionOptions_level(
64     JNIEnv*, jobject, jlong jhandle) {
65   auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::CompressionOptions*>(jhandle);
66   return static_cast<jint>(opt->level);
67 }
68 
69 /*
70  * Class:     org_rocksdb_CompressionOptions
71  * Method:    setStrategy
72  * Signature: (JI)V
73  */
Java_org_rocksdb_CompressionOptions_setStrategy(JNIEnv *,jobject,jlong jhandle,jint jstrategy)74 void Java_org_rocksdb_CompressionOptions_setStrategy(
75     JNIEnv*, jobject, jlong jhandle, jint jstrategy) {
76   auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::CompressionOptions*>(jhandle);
77   opt->strategy = static_cast<int>(jstrategy);
78 }
79 
80 /*
81  * Class:     org_rocksdb_CompressionOptions
82  * Method:    strategy
83  * Signature: (J)I
84  */
Java_org_rocksdb_CompressionOptions_strategy(JNIEnv *,jobject,jlong jhandle)85 jint Java_org_rocksdb_CompressionOptions_strategy(
86     JNIEnv*, jobject, jlong jhandle) {
87   auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::CompressionOptions*>(jhandle);
88   return static_cast<jint>(opt->strategy);
89 }
90 
91 /*
92  * Class:     org_rocksdb_CompressionOptions
93  * Method:    setMaxDictBytes
94  * Signature: (JI)V
95  */
Java_org_rocksdb_CompressionOptions_setMaxDictBytes(JNIEnv *,jobject,jlong jhandle,jint jmax_dict_bytes)96 void Java_org_rocksdb_CompressionOptions_setMaxDictBytes(
97     JNIEnv*, jobject, jlong jhandle, jint jmax_dict_bytes) {
98   auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::CompressionOptions*>(jhandle);
99   opt->max_dict_bytes = static_cast<uint32_t>(jmax_dict_bytes);
100 }
101 
102 /*
103  * Class:     org_rocksdb_CompressionOptions
104  * Method:    maxDictBytes
105  * Signature: (J)I
106  */
Java_org_rocksdb_CompressionOptions_maxDictBytes(JNIEnv *,jobject,jlong jhandle)107 jint Java_org_rocksdb_CompressionOptions_maxDictBytes(
108     JNIEnv*, jobject, jlong jhandle) {
109   auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::CompressionOptions*>(jhandle);
110   return static_cast<jint>(opt->max_dict_bytes);
111 }
112 
113 /*
114  * Class:     org_rocksdb_CompressionOptions
115  * Method:    setZstdMaxTrainBytes
116  * Signature: (JI)V
117  */
Java_org_rocksdb_CompressionOptions_setZstdMaxTrainBytes(JNIEnv *,jobject,jlong jhandle,jint jzstd_max_train_bytes)118 void Java_org_rocksdb_CompressionOptions_setZstdMaxTrainBytes(
119     JNIEnv*, jobject, jlong jhandle, jint jzstd_max_train_bytes) {
120   auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::CompressionOptions*>(jhandle);
121   opt->zstd_max_train_bytes = static_cast<uint32_t>(jzstd_max_train_bytes);
122 }
123 
124 /*
125  * Class:     org_rocksdb_CompressionOptions
126  * Method:    zstdMaxTrainBytes
127  * Signature: (J)I
128  */
Java_org_rocksdb_CompressionOptions_zstdMaxTrainBytes(JNIEnv *,jobject,jlong jhandle)129 jint Java_org_rocksdb_CompressionOptions_zstdMaxTrainBytes(
130     JNIEnv *, jobject, jlong jhandle) {
131   auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::CompressionOptions*>(jhandle);
132   return static_cast<jint>(opt->zstd_max_train_bytes);
133 }
134 
135 /*
136  * Class:     org_rocksdb_CompressionOptions
137  * Method:    setEnabled
138  * Signature: (JZ)V
139  */
Java_org_rocksdb_CompressionOptions_setEnabled(JNIEnv *,jobject,jlong jhandle,jboolean jenabled)140 void Java_org_rocksdb_CompressionOptions_setEnabled(
141     JNIEnv*, jobject, jlong jhandle, jboolean jenabled) {
142   auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::CompressionOptions*>(jhandle);
143   opt->enabled = jenabled == JNI_TRUE;
144 }
145 
146 /*
147  * Class:     org_rocksdb_CompressionOptions
148  * Method:    enabled
149  * Signature: (J)Z
150  */
Java_org_rocksdb_CompressionOptions_enabled(JNIEnv *,jobject,jlong jhandle)151 jboolean Java_org_rocksdb_CompressionOptions_enabled(
152     JNIEnv*, jobject, jlong jhandle) {
153   auto* opt = reinterpret_cast<ROCKSDB_NAMESPACE::CompressionOptions*>(jhandle);
154   return static_cast<bool>(opt->enabled);
155 }
156 /*
157  * Class:     org_rocksdb_CompressionOptions
158  * Method:    disposeInternal
159  * Signature: (J)V
160  */
Java_org_rocksdb_CompressionOptions_disposeInternal(JNIEnv *,jobject,jlong jhandle)161 void Java_org_rocksdb_CompressionOptions_disposeInternal(
162     JNIEnv*, jobject, jlong jhandle) {
163   delete reinterpret_cast<ROCKSDB_NAMESPACE::CompressionOptions*>(jhandle);
164 }
165