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::TransactionDBOptions.
8 
9 #include <jni.h>
10 
11 #include "include/org_rocksdb_TransactionDBOptions.h"
12 
13 #include "rocksdb/utilities/transaction_db.h"
14 
15 #include "rocksjni/portal.h"
16 
17 /*
18  * Class:     org_rocksdb_TransactionDBOptions
19  * Method:    newTransactionDBOptions
20  * Signature: ()J
21  */
Java_org_rocksdb_TransactionDBOptions_newTransactionDBOptions(JNIEnv *,jclass)22 jlong Java_org_rocksdb_TransactionDBOptions_newTransactionDBOptions(
23     JNIEnv* /*env*/, jclass /*jcls*/) {
24   ROCKSDB_NAMESPACE::TransactionDBOptions* opts =
25       new ROCKSDB_NAMESPACE::TransactionDBOptions();
26   return reinterpret_cast<jlong>(opts);
27 }
28 
29 /*
30  * Class:     org_rocksdb_TransactionDBOptions
31  * Method:    getMaxNumLocks
32  * Signature: (J)J
33  */
Java_org_rocksdb_TransactionDBOptions_getMaxNumLocks(JNIEnv *,jobject,jlong jhandle)34 jlong Java_org_rocksdb_TransactionDBOptions_getMaxNumLocks(JNIEnv* /*env*/,
35                                                            jobject /*jobj*/,
36                                                            jlong jhandle) {
37   auto* opts =
38       reinterpret_cast<ROCKSDB_NAMESPACE::TransactionDBOptions*>(jhandle);
39   return opts->max_num_locks;
40 }
41 
42 /*
43  * Class:     org_rocksdb_TransactionDBOptions
44  * Method:    setMaxNumLocks
45  * Signature: (JJ)V
46  */
Java_org_rocksdb_TransactionDBOptions_setMaxNumLocks(JNIEnv *,jobject,jlong jhandle,jlong jmax_num_locks)47 void Java_org_rocksdb_TransactionDBOptions_setMaxNumLocks(
48     JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle, jlong jmax_num_locks) {
49   auto* opts =
50       reinterpret_cast<ROCKSDB_NAMESPACE::TransactionDBOptions*>(jhandle);
51   opts->max_num_locks = jmax_num_locks;
52 }
53 
54 /*
55  * Class:     org_rocksdb_TransactionDBOptions
56  * Method:    getNumStripes
57  * Signature: (J)J
58  */
Java_org_rocksdb_TransactionDBOptions_getNumStripes(JNIEnv *,jobject,jlong jhandle)59 jlong Java_org_rocksdb_TransactionDBOptions_getNumStripes(JNIEnv* /*env*/,
60                                                           jobject /*jobj*/,
61                                                           jlong jhandle) {
62   auto* opts =
63       reinterpret_cast<ROCKSDB_NAMESPACE::TransactionDBOptions*>(jhandle);
64   return opts->num_stripes;
65 }
66 
67 /*
68  * Class:     org_rocksdb_TransactionDBOptions
69  * Method:    setNumStripes
70  * Signature: (JJ)V
71  */
Java_org_rocksdb_TransactionDBOptions_setNumStripes(JNIEnv *,jobject,jlong jhandle,jlong jnum_stripes)72 void Java_org_rocksdb_TransactionDBOptions_setNumStripes(JNIEnv* /*env*/,
73                                                          jobject /*jobj*/,
74                                                          jlong jhandle,
75                                                          jlong jnum_stripes) {
76   auto* opts =
77       reinterpret_cast<ROCKSDB_NAMESPACE::TransactionDBOptions*>(jhandle);
78   opts->num_stripes = jnum_stripes;
79 }
80 
81 /*
82  * Class:     org_rocksdb_TransactionDBOptions
83  * Method:    getTransactionLockTimeout
84  * Signature: (J)J
85  */
Java_org_rocksdb_TransactionDBOptions_getTransactionLockTimeout(JNIEnv *,jobject,jlong jhandle)86 jlong Java_org_rocksdb_TransactionDBOptions_getTransactionLockTimeout(
87     JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle) {
88   auto* opts =
89       reinterpret_cast<ROCKSDB_NAMESPACE::TransactionDBOptions*>(jhandle);
90   return opts->transaction_lock_timeout;
91 }
92 
93 /*
94  * Class:     org_rocksdb_TransactionDBOptions
95  * Method:    setTransactionLockTimeout
96  * Signature: (JJ)V
97  */
Java_org_rocksdb_TransactionDBOptions_setTransactionLockTimeout(JNIEnv *,jobject,jlong jhandle,jlong jtransaction_lock_timeout)98 void Java_org_rocksdb_TransactionDBOptions_setTransactionLockTimeout(
99     JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle,
100     jlong jtransaction_lock_timeout) {
101   auto* opts =
102       reinterpret_cast<ROCKSDB_NAMESPACE::TransactionDBOptions*>(jhandle);
103   opts->transaction_lock_timeout = jtransaction_lock_timeout;
104 }
105 
106 /*
107  * Class:     org_rocksdb_TransactionDBOptions
108  * Method:    getDefaultLockTimeout
109  * Signature: (J)J
110  */
Java_org_rocksdb_TransactionDBOptions_getDefaultLockTimeout(JNIEnv *,jobject,jlong jhandle)111 jlong Java_org_rocksdb_TransactionDBOptions_getDefaultLockTimeout(
112     JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle) {
113   auto* opts =
114       reinterpret_cast<ROCKSDB_NAMESPACE::TransactionDBOptions*>(jhandle);
115   return opts->default_lock_timeout;
116 }
117 
118 /*
119  * Class:     org_rocksdb_TransactionDBOptions
120  * Method:    setDefaultLockTimeout
121  * Signature: (JJ)V
122  */
Java_org_rocksdb_TransactionDBOptions_setDefaultLockTimeout(JNIEnv *,jobject,jlong jhandle,jlong jdefault_lock_timeout)123 void Java_org_rocksdb_TransactionDBOptions_setDefaultLockTimeout(
124     JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle,
125     jlong jdefault_lock_timeout) {
126   auto* opts =
127       reinterpret_cast<ROCKSDB_NAMESPACE::TransactionDBOptions*>(jhandle);
128   opts->default_lock_timeout = jdefault_lock_timeout;
129 }
130 
131 /*
132  * Class:     org_rocksdb_TransactionDBOptions
133  * Method:    getWritePolicy
134  * Signature: (J)B
135  */
Java_org_rocksdb_TransactionDBOptions_getWritePolicy(JNIEnv *,jobject,jlong jhandle)136 jbyte Java_org_rocksdb_TransactionDBOptions_getWritePolicy(JNIEnv* /*env*/,
137                                                            jobject /*jobj*/,
138                                                            jlong jhandle) {
139   auto* opts =
140       reinterpret_cast<ROCKSDB_NAMESPACE::TransactionDBOptions*>(jhandle);
141   return ROCKSDB_NAMESPACE::TxnDBWritePolicyJni::toJavaTxnDBWritePolicy(
142       opts->write_policy);
143 }
144 
145 /*
146  * Class:     org_rocksdb_TransactionDBOptions
147  * Method:    setWritePolicy
148  * Signature: (JB)V
149  */
Java_org_rocksdb_TransactionDBOptions_setWritePolicy(JNIEnv *,jobject,jlong jhandle,jbyte jwrite_policy)150 void Java_org_rocksdb_TransactionDBOptions_setWritePolicy(JNIEnv* /*env*/,
151                                                           jobject /*jobj*/,
152                                                           jlong jhandle,
153                                                           jbyte jwrite_policy) {
154   auto* opts =
155       reinterpret_cast<ROCKSDB_NAMESPACE::TransactionDBOptions*>(jhandle);
156   opts->write_policy =
157       ROCKSDB_NAMESPACE::TxnDBWritePolicyJni::toCppTxnDBWritePolicy(
158           jwrite_policy);
159 }
160 
161 /*
162  * Class:     org_rocksdb_TransactionDBOptions
163  * Method:    disposeInternal
164  * Signature: (J)V
165  */
Java_org_rocksdb_TransactionDBOptions_disposeInternal(JNIEnv *,jobject,jlong jhandle)166 void Java_org_rocksdb_TransactionDBOptions_disposeInternal(JNIEnv* /*env*/,
167                                                            jobject /*jobj*/,
168                                                            jlong jhandle) {
169   delete reinterpret_cast<ROCKSDB_NAMESPACE::TransactionDBOptions*>(jhandle);
170 }
171