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::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::OptimisticTransactionOptions* opts =
24       new rocksdb::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::OptimisticTransactionOptions*>(jhandle);
37   return opts->set_snapshot;
38 }
39 
40 /*
41  * Class:     org_rocksdb_OptimisticTransactionOptions
42  * Method:    setSetSnapshot
43  * Signature: (JZ)V
44  */
Java_org_rocksdb_OptimisticTransactionOptions_setSetSnapshot(JNIEnv *,jobject,jlong jhandle,jboolean jset_snapshot)45 void Java_org_rocksdb_OptimisticTransactionOptions_setSetSnapshot(
46     JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle, jboolean jset_snapshot) {
47   auto* opts =
48       reinterpret_cast<rocksdb::OptimisticTransactionOptions*>(jhandle);
49   opts->set_snapshot = jset_snapshot;
50 }
51 
52 /*
53  * Class:     org_rocksdb_OptimisticTransactionOptions
54  * Method:    setComparator
55  * Signature: (JJ)V
56  */
Java_org_rocksdb_OptimisticTransactionOptions_setComparator(JNIEnv *,jobject,jlong jhandle,jlong jcomparator_handle)57 void Java_org_rocksdb_OptimisticTransactionOptions_setComparator(
58     JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle,
59     jlong jcomparator_handle) {
60   auto* opts =
61       reinterpret_cast<rocksdb::OptimisticTransactionOptions*>(jhandle);
62   opts->cmp = reinterpret_cast<rocksdb::Comparator*>(jcomparator_handle);
63 }
64 
65 /*
66  * Class:     org_rocksdb_OptimisticTransactionOptions
67  * Method:    disposeInternal
68  * Signature: (J)V
69  */
Java_org_rocksdb_OptimisticTransactionOptions_disposeInternal(JNIEnv *,jobject,jlong jhandle)70 void Java_org_rocksdb_OptimisticTransactionOptions_disposeInternal(
71     JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle) {
72   delete reinterpret_cast<rocksdb::OptimisticTransactionOptions*>(jhandle);
73 }
74