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++
7 // for ROCKSDB_NAMESPACE::TransactionOptions.
8 
9 #include <jni.h>
10 
11 #include "include/org_rocksdb_TransactionOptions.h"
12 
13 #include "rocksdb/utilities/transaction_db.h"
14 
15 /*
16  * Class:     org_rocksdb_TransactionOptions
17  * Method:    newTransactionOptions
18  * Signature: ()J
19  */
Java_org_rocksdb_TransactionOptions_newTransactionOptions(JNIEnv *,jclass)20 jlong Java_org_rocksdb_TransactionOptions_newTransactionOptions(
21     JNIEnv* /*env*/, jclass /*jcls*/) {
22   auto* opts = new ROCKSDB_NAMESPACE::TransactionOptions();
23   return reinterpret_cast<jlong>(opts);
24 }
25 
26 /*
27  * Class:     org_rocksdb_TransactionOptions
28  * Method:    isSetSnapshot
29  * Signature: (J)Z
30  */
Java_org_rocksdb_TransactionOptions_isSetSnapshot(JNIEnv *,jobject,jlong jhandle)31 jboolean Java_org_rocksdb_TransactionOptions_isSetSnapshot(JNIEnv* /*env*/,
32                                                            jobject /*jobj*/,
33                                                            jlong jhandle) {
34   auto* opts =
35       reinterpret_cast<ROCKSDB_NAMESPACE::TransactionOptions*>(jhandle);
36   return opts->set_snapshot;
37 }
38 
39 /*
40  * Class:     org_rocksdb_TransactionOptions
41  * Method:    setSetSnapshot
42  * Signature: (JZ)V
43  */
Java_org_rocksdb_TransactionOptions_setSetSnapshot(JNIEnv *,jobject,jlong jhandle,jboolean jset_snapshot)44 void Java_org_rocksdb_TransactionOptions_setSetSnapshot(
45     JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle, jboolean jset_snapshot) {
46   auto* opts =
47       reinterpret_cast<ROCKSDB_NAMESPACE::TransactionOptions*>(jhandle);
48   opts->set_snapshot = jset_snapshot;
49 }
50 
51 /*
52  * Class:     org_rocksdb_TransactionOptions
53  * Method:    isDeadlockDetect
54  * Signature: (J)Z
55  */
Java_org_rocksdb_TransactionOptions_isDeadlockDetect(JNIEnv *,jobject,jlong jhandle)56 jboolean Java_org_rocksdb_TransactionOptions_isDeadlockDetect(JNIEnv* /*env*/,
57                                                               jobject /*jobj*/,
58                                                               jlong jhandle) {
59   auto* opts =
60       reinterpret_cast<ROCKSDB_NAMESPACE::TransactionOptions*>(jhandle);
61   return opts->deadlock_detect;
62 }
63 
64 /*
65  * Class:     org_rocksdb_TransactionOptions
66  * Method:    setDeadlockDetect
67  * Signature: (JZ)V
68  */
Java_org_rocksdb_TransactionOptions_setDeadlockDetect(JNIEnv *,jobject,jlong jhandle,jboolean jdeadlock_detect)69 void Java_org_rocksdb_TransactionOptions_setDeadlockDetect(
70     JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle,
71     jboolean jdeadlock_detect) {
72   auto* opts =
73       reinterpret_cast<ROCKSDB_NAMESPACE::TransactionOptions*>(jhandle);
74   opts->deadlock_detect = jdeadlock_detect;
75 }
76 
77 /*
78  * Class:     org_rocksdb_TransactionOptions
79  * Method:    getLockTimeout
80  * Signature: (J)J
81  */
Java_org_rocksdb_TransactionOptions_getLockTimeout(JNIEnv *,jobject,jlong jhandle)82 jlong Java_org_rocksdb_TransactionOptions_getLockTimeout(JNIEnv* /*env*/,
83                                                          jobject /*jobj*/,
84                                                          jlong jhandle) {
85   auto* opts =
86       reinterpret_cast<ROCKSDB_NAMESPACE::TransactionOptions*>(jhandle);
87   return opts->lock_timeout;
88 }
89 
90 /*
91  * Class:     org_rocksdb_TransactionOptions
92  * Method:    setLockTimeout
93  * Signature: (JJ)V
94  */
Java_org_rocksdb_TransactionOptions_setLockTimeout(JNIEnv *,jobject,jlong jhandle,jlong jlock_timeout)95 void Java_org_rocksdb_TransactionOptions_setLockTimeout(JNIEnv* /*env*/,
96                                                         jobject /*jobj*/,
97                                                         jlong jhandle,
98                                                         jlong jlock_timeout) {
99   auto* opts =
100       reinterpret_cast<ROCKSDB_NAMESPACE::TransactionOptions*>(jhandle);
101   opts->lock_timeout = jlock_timeout;
102 }
103 
104 /*
105  * Class:     org_rocksdb_TransactionOptions
106  * Method:    getExpiration
107  * Signature: (J)J
108  */
Java_org_rocksdb_TransactionOptions_getExpiration(JNIEnv *,jobject,jlong jhandle)109 jlong Java_org_rocksdb_TransactionOptions_getExpiration(JNIEnv* /*env*/,
110                                                         jobject /*jobj*/,
111                                                         jlong jhandle) {
112   auto* opts =
113       reinterpret_cast<ROCKSDB_NAMESPACE::TransactionOptions*>(jhandle);
114   return opts->expiration;
115 }
116 
117 /*
118  * Class:     org_rocksdb_TransactionOptions
119  * Method:    setExpiration
120  * Signature: (JJ)V
121  */
Java_org_rocksdb_TransactionOptions_setExpiration(JNIEnv *,jobject,jlong jhandle,jlong jexpiration)122 void Java_org_rocksdb_TransactionOptions_setExpiration(JNIEnv* /*env*/,
123                                                        jobject /*jobj*/,
124                                                        jlong jhandle,
125                                                        jlong jexpiration) {
126   auto* opts =
127       reinterpret_cast<ROCKSDB_NAMESPACE::TransactionOptions*>(jhandle);
128   opts->expiration = jexpiration;
129 }
130 
131 /*
132  * Class:     org_rocksdb_TransactionOptions
133  * Method:    getDeadlockDetectDepth
134  * Signature: (J)J
135  */
Java_org_rocksdb_TransactionOptions_getDeadlockDetectDepth(JNIEnv *,jobject,jlong jhandle)136 jlong Java_org_rocksdb_TransactionOptions_getDeadlockDetectDepth(
137     JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle) {
138   auto* opts =
139       reinterpret_cast<ROCKSDB_NAMESPACE::TransactionOptions*>(jhandle);
140   return opts->deadlock_detect_depth;
141 }
142 
143 /*
144  * Class:     org_rocksdb_TransactionOptions
145  * Method:    setDeadlockDetectDepth
146  * Signature: (JJ)V
147  */
Java_org_rocksdb_TransactionOptions_setDeadlockDetectDepth(JNIEnv *,jobject,jlong jhandle,jlong jdeadlock_detect_depth)148 void Java_org_rocksdb_TransactionOptions_setDeadlockDetectDepth(
149     JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle,
150     jlong jdeadlock_detect_depth) {
151   auto* opts =
152       reinterpret_cast<ROCKSDB_NAMESPACE::TransactionOptions*>(jhandle);
153   opts->deadlock_detect_depth = jdeadlock_detect_depth;
154 }
155 
156 /*
157  * Class:     org_rocksdb_TransactionOptions
158  * Method:    getMaxWriteBatchSize
159  * Signature: (J)J
160  */
Java_org_rocksdb_TransactionOptions_getMaxWriteBatchSize(JNIEnv *,jobject,jlong jhandle)161 jlong Java_org_rocksdb_TransactionOptions_getMaxWriteBatchSize(JNIEnv* /*env*/,
162                                                                jobject /*jobj*/,
163                                                                jlong jhandle) {
164   auto* opts =
165       reinterpret_cast<ROCKSDB_NAMESPACE::TransactionOptions*>(jhandle);
166   return opts->max_write_batch_size;
167 }
168 
169 /*
170  * Class:     org_rocksdb_TransactionOptions
171  * Method:    setMaxWriteBatchSize
172  * Signature: (JJ)V
173  */
Java_org_rocksdb_TransactionOptions_setMaxWriteBatchSize(JNIEnv *,jobject,jlong jhandle,jlong jmax_write_batch_size)174 void Java_org_rocksdb_TransactionOptions_setMaxWriteBatchSize(
175     JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle,
176     jlong jmax_write_batch_size) {
177   auto* opts =
178       reinterpret_cast<ROCKSDB_NAMESPACE::TransactionOptions*>(jhandle);
179   opts->max_write_batch_size = jmax_write_batch_size;
180 }
181 
182 /*
183  * Class:     org_rocksdb_TransactionOptions
184  * Method:    disposeInternal
185  * Signature: (J)V
186  */
Java_org_rocksdb_TransactionOptions_disposeInternal(JNIEnv *,jobject,jlong jhandle)187 void Java_org_rocksdb_TransactionOptions_disposeInternal(JNIEnv* /*env*/,
188                                                          jobject /*jobj*/,
189                                                          jlong jhandle) {
190   delete reinterpret_cast<ROCKSDB_NAMESPACE::TransactionOptions*>(jhandle);
191 }
192