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::OptimisticTransactionOptions.
8 
9 #include <jni.h>
10 
11 #include "include/org_rocksdb_OptimisticTransactionOptions.h"
12 
13 #include "rocksdb/comparator.h"
14 #include "rocksdb/utilities/optimistic_transaction_db.h"
15 
16 /*
17  * Class:     org_rocksdb_OptimisticTransactionOptions
18  * Method:    newOptimisticTransactionOptions
19  * Signature: ()J
20  */
Java_org_rocksdb_OptimisticTransactionOptions_newOptimisticTransactionOptions(JNIEnv *,jclass)21 jlong Java_org_rocksdb_OptimisticTransactionOptions_newOptimisticTransactionOptions(
22     JNIEnv* /*env*/, jclass /*jcls*/) {
23   ROCKSDB_NAMESPACE::OptimisticTransactionOptions* opts =
24       new ROCKSDB_NAMESPACE::OptimisticTransactionOptions();
25   return reinterpret_cast<jlong>(opts);
26 }
27 
28 /*
29  * Class:     org_rocksdb_OptimisticTransactionOptions
30  * Method:    isSetSnapshot
31  * Signature: (J)Z
32  */
Java_org_rocksdb_OptimisticTransactionOptions_isSetSnapshot(JNIEnv *,jobject,jlong jhandle)33 jboolean Java_org_rocksdb_OptimisticTransactionOptions_isSetSnapshot(
34     JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle) {
35   auto* opts =
36       reinterpret_cast<ROCKSDB_NAMESPACE::OptimisticTransactionOptions*>(
37           jhandle);
38   return opts->set_snapshot;
39 }
40 
41 /*
42  * Class:     org_rocksdb_OptimisticTransactionOptions
43  * Method:    setSetSnapshot
44  * Signature: (JZ)V
45  */
Java_org_rocksdb_OptimisticTransactionOptions_setSetSnapshot(JNIEnv *,jobject,jlong jhandle,jboolean jset_snapshot)46 void Java_org_rocksdb_OptimisticTransactionOptions_setSetSnapshot(
47     JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle, jboolean jset_snapshot) {
48   auto* opts =
49       reinterpret_cast<ROCKSDB_NAMESPACE::OptimisticTransactionOptions*>(
50           jhandle);
51   opts->set_snapshot = jset_snapshot;
52 }
53 
54 /*
55  * Class:     org_rocksdb_OptimisticTransactionOptions
56  * Method:    setComparator
57  * Signature: (JJ)V
58  */
Java_org_rocksdb_OptimisticTransactionOptions_setComparator(JNIEnv *,jobject,jlong jhandle,jlong jcomparator_handle)59 void Java_org_rocksdb_OptimisticTransactionOptions_setComparator(
60     JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle,
61     jlong jcomparator_handle) {
62   auto* opts =
63       reinterpret_cast<ROCKSDB_NAMESPACE::OptimisticTransactionOptions*>(
64           jhandle);
65   opts->cmp =
66       reinterpret_cast<ROCKSDB_NAMESPACE::Comparator*>(jcomparator_handle);
67 }
68 
69 /*
70  * Class:     org_rocksdb_OptimisticTransactionOptions
71  * Method:    disposeInternal
72  * Signature: (J)V
73  */
Java_org_rocksdb_OptimisticTransactionOptions_disposeInternal(JNIEnv *,jobject,jlong jhandle)74 void Java_org_rocksdb_OptimisticTransactionOptions_disposeInternal(
75     JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle) {
76   delete reinterpret_cast<ROCKSDB_NAMESPACE::OptimisticTransactionOptions*>(
77       jhandle);
78 }
79