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::FilterPolicy.
8 
9 #include <jni.h>
10 
11 #include "include/org_rocksdb_IngestExternalFileOptions.h"
12 #include "rocksdb/options.h"
13 
14 /*
15  * Class:     org_rocksdb_IngestExternalFileOptions
16  * Method:    newIngestExternalFileOptions
17  * Signature: ()J
18  */
Java_org_rocksdb_IngestExternalFileOptions_newIngestExternalFileOptions__(JNIEnv *,jclass)19 jlong Java_org_rocksdb_IngestExternalFileOptions_newIngestExternalFileOptions__(
20     JNIEnv*, jclass) {
21   auto* options = new ROCKSDB_NAMESPACE::IngestExternalFileOptions();
22   return reinterpret_cast<jlong>(options);
23 }
24 
25 /*
26  * Class:     org_rocksdb_IngestExternalFileOptions
27  * Method:    newIngestExternalFileOptions
28  * Signature: (ZZZZ)J
29  */
Java_org_rocksdb_IngestExternalFileOptions_newIngestExternalFileOptions__ZZZZ(JNIEnv *,jclass,jboolean jmove_files,jboolean jsnapshot_consistency,jboolean jallow_global_seqno,jboolean jallow_blocking_flush)30 jlong Java_org_rocksdb_IngestExternalFileOptions_newIngestExternalFileOptions__ZZZZ(
31     JNIEnv*, jclass, jboolean jmove_files,
32     jboolean jsnapshot_consistency, jboolean jallow_global_seqno,
33     jboolean jallow_blocking_flush) {
34   auto* options = new ROCKSDB_NAMESPACE::IngestExternalFileOptions();
35   options->move_files = static_cast<bool>(jmove_files);
36   options->snapshot_consistency = static_cast<bool>(jsnapshot_consistency);
37   options->allow_global_seqno = static_cast<bool>(jallow_global_seqno);
38   options->allow_blocking_flush = static_cast<bool>(jallow_blocking_flush);
39   return reinterpret_cast<jlong>(options);
40 }
41 
42 /*
43  * Class:     org_rocksdb_IngestExternalFileOptions
44  * Method:    moveFiles
45  * Signature: (J)Z
46  */
Java_org_rocksdb_IngestExternalFileOptions_moveFiles(JNIEnv *,jobject,jlong jhandle)47 jboolean Java_org_rocksdb_IngestExternalFileOptions_moveFiles(
48     JNIEnv*, jobject, jlong jhandle) {
49   auto* options =
50       reinterpret_cast<ROCKSDB_NAMESPACE::IngestExternalFileOptions*>(jhandle);
51   return static_cast<jboolean>(options->move_files);
52 }
53 
54 /*
55  * Class:     org_rocksdb_IngestExternalFileOptions
56  * Method:    setMoveFiles
57  * Signature: (JZ)V
58  */
Java_org_rocksdb_IngestExternalFileOptions_setMoveFiles(JNIEnv *,jobject,jlong jhandle,jboolean jmove_files)59 void Java_org_rocksdb_IngestExternalFileOptions_setMoveFiles(
60     JNIEnv*, jobject, jlong jhandle, jboolean jmove_files) {
61   auto* options =
62       reinterpret_cast<ROCKSDB_NAMESPACE::IngestExternalFileOptions*>(jhandle);
63   options->move_files = static_cast<bool>(jmove_files);
64 }
65 
66 /*
67  * Class:     org_rocksdb_IngestExternalFileOptions
68  * Method:    snapshotConsistency
69  * Signature: (J)Z
70  */
Java_org_rocksdb_IngestExternalFileOptions_snapshotConsistency(JNIEnv *,jobject,jlong jhandle)71 jboolean Java_org_rocksdb_IngestExternalFileOptions_snapshotConsistency(
72     JNIEnv*, jobject, jlong jhandle) {
73   auto* options =
74       reinterpret_cast<ROCKSDB_NAMESPACE::IngestExternalFileOptions*>(jhandle);
75   return static_cast<jboolean>(options->snapshot_consistency);
76 }
77 
78 /*
79  * Class:     org_rocksdb_IngestExternalFileOptions
80  * Method:    setSnapshotConsistency
81  * Signature: (JZ)V
82  */
Java_org_rocksdb_IngestExternalFileOptions_setSnapshotConsistency(JNIEnv *,jobject,jlong jhandle,jboolean jsnapshot_consistency)83 void Java_org_rocksdb_IngestExternalFileOptions_setSnapshotConsistency(
84     JNIEnv*, jobject, jlong jhandle, jboolean jsnapshot_consistency) {
85   auto* options =
86       reinterpret_cast<ROCKSDB_NAMESPACE::IngestExternalFileOptions*>(jhandle);
87   options->snapshot_consistency = static_cast<bool>(jsnapshot_consistency);
88 }
89 
90 /*
91  * Class:     org_rocksdb_IngestExternalFileOptions
92  * Method:    allowGlobalSeqNo
93  * Signature: (J)Z
94  */
Java_org_rocksdb_IngestExternalFileOptions_allowGlobalSeqNo(JNIEnv *,jobject,jlong jhandle)95 jboolean Java_org_rocksdb_IngestExternalFileOptions_allowGlobalSeqNo(
96     JNIEnv*, jobject, jlong jhandle) {
97   auto* options =
98       reinterpret_cast<ROCKSDB_NAMESPACE::IngestExternalFileOptions*>(jhandle);
99   return static_cast<jboolean>(options->allow_global_seqno);
100 }
101 
102 /*
103  * Class:     org_rocksdb_IngestExternalFileOptions
104  * Method:    setAllowGlobalSeqNo
105  * Signature: (JZ)V
106  */
Java_org_rocksdb_IngestExternalFileOptions_setAllowGlobalSeqNo(JNIEnv *,jobject,jlong jhandle,jboolean jallow_global_seqno)107 void Java_org_rocksdb_IngestExternalFileOptions_setAllowGlobalSeqNo(
108     JNIEnv*, jobject, jlong jhandle, jboolean jallow_global_seqno) {
109   auto* options =
110       reinterpret_cast<ROCKSDB_NAMESPACE::IngestExternalFileOptions*>(jhandle);
111   options->allow_global_seqno = static_cast<bool>(jallow_global_seqno);
112 }
113 
114 /*
115  * Class:     org_rocksdb_IngestExternalFileOptions
116  * Method:    allowBlockingFlush
117  * Signature: (J)Z
118  */
Java_org_rocksdb_IngestExternalFileOptions_allowBlockingFlush(JNIEnv *,jobject,jlong jhandle)119 jboolean Java_org_rocksdb_IngestExternalFileOptions_allowBlockingFlush(
120     JNIEnv*, jobject, jlong jhandle) {
121   auto* options =
122       reinterpret_cast<ROCKSDB_NAMESPACE::IngestExternalFileOptions*>(jhandle);
123   return static_cast<jboolean>(options->allow_blocking_flush);
124 }
125 
126 /*
127  * Class:     org_rocksdb_IngestExternalFileOptions
128  * Method:    setAllowBlockingFlush
129  * Signature: (JZ)V
130  */
Java_org_rocksdb_IngestExternalFileOptions_setAllowBlockingFlush(JNIEnv *,jobject,jlong jhandle,jboolean jallow_blocking_flush)131 void Java_org_rocksdb_IngestExternalFileOptions_setAllowBlockingFlush(
132     JNIEnv*, jobject, jlong jhandle, jboolean jallow_blocking_flush) {
133   auto* options =
134       reinterpret_cast<ROCKSDB_NAMESPACE::IngestExternalFileOptions*>(jhandle);
135   options->allow_blocking_flush = static_cast<bool>(jallow_blocking_flush);
136 }
137 
138 /*
139  * Class:     org_rocksdb_IngestExternalFileOptions
140  * Method:    ingestBehind
141  * Signature: (J)Z
142  */
Java_org_rocksdb_IngestExternalFileOptions_ingestBehind(JNIEnv *,jobject,jlong jhandle)143 jboolean Java_org_rocksdb_IngestExternalFileOptions_ingestBehind(
144     JNIEnv*, jobject, jlong jhandle) {
145   auto* options =
146       reinterpret_cast<ROCKSDB_NAMESPACE::IngestExternalFileOptions*>(jhandle);
147   return options->ingest_behind == JNI_TRUE;
148 }
149 
150 /*
151  * Class:     org_rocksdb_IngestExternalFileOptions
152  * Method:    setIngestBehind
153  * Signature: (JZ)V
154  */
Java_org_rocksdb_IngestExternalFileOptions_setIngestBehind(JNIEnv *,jobject,jlong jhandle,jboolean jingest_behind)155 void Java_org_rocksdb_IngestExternalFileOptions_setIngestBehind(
156     JNIEnv*, jobject, jlong jhandle, jboolean jingest_behind) {
157   auto* options =
158       reinterpret_cast<ROCKSDB_NAMESPACE::IngestExternalFileOptions*>(jhandle);
159   options->ingest_behind = jingest_behind == JNI_TRUE;
160 }
161 
162 /*
163  * Class:     org_rocksdb_IngestExternalFileOptions
164  * Method:    writeGlobalSeqno
165  * Signature: (J)Z
166  */
Java_org_rocksdb_IngestExternalFileOptions_writeGlobalSeqno(JNIEnv *,jobject,jlong jhandle)167 JNIEXPORT jboolean JNICALL Java_org_rocksdb_IngestExternalFileOptions_writeGlobalSeqno(
168     JNIEnv*, jobject, jlong jhandle) {
169   auto* options =
170       reinterpret_cast<ROCKSDB_NAMESPACE::IngestExternalFileOptions*>(jhandle);
171   return options->write_global_seqno == JNI_TRUE;
172 }
173 
174 /*
175  * Class:     org_rocksdb_IngestExternalFileOptions
176  * Method:    setWriteGlobalSeqno
177  * Signature: (JZ)V
178  */
Java_org_rocksdb_IngestExternalFileOptions_setWriteGlobalSeqno(JNIEnv *,jobject,jlong jhandle,jboolean jwrite_global_seqno)179 JNIEXPORT void JNICALL Java_org_rocksdb_IngestExternalFileOptions_setWriteGlobalSeqno(
180     JNIEnv*, jobject, jlong jhandle, jboolean jwrite_global_seqno) {
181   auto* options =
182       reinterpret_cast<ROCKSDB_NAMESPACE::IngestExternalFileOptions*>(jhandle);
183   options->write_global_seqno = jwrite_global_seqno == JNI_TRUE;
184 }
185 
186 /*
187  * Class:     org_rocksdb_IngestExternalFileOptions
188  * Method:    disposeInternal
189  * Signature: (J)V
190  */
Java_org_rocksdb_IngestExternalFileOptions_disposeInternal(JNIEnv *,jobject,jlong jhandle)191 void Java_org_rocksdb_IngestExternalFileOptions_disposeInternal(
192     JNIEnv*, jobject, jlong jhandle) {
193   auto* options =
194       reinterpret_cast<ROCKSDB_NAMESPACE::IngestExternalFileOptions*>(jhandle);
195   delete options;
196 }
197