]> git.proxmox.com Git - ceph.git/blob - ceph/src/rocksdb/java/rocksjni/comparator.cc
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / rocksdb / java / rocksjni / comparator.cc
1 // Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
2 // This source code is licensed under the BSD-style license found in the
3 // LICENSE file in the root directory of this source tree. An additional grant
4 // of patent rights can be found in the PATENTS file in the same directory.
5 //
6 // This file implements the "bridge" between Java and C++ for
7 // rocksdb::Comparator.
8
9 #include <stdio.h>
10 #include <stdlib.h>
11 #include <jni.h>
12 #include <string>
13 #include <functional>
14
15 #include "include/org_rocksdb_AbstractComparator.h"
16 #include "include/org_rocksdb_Comparator.h"
17 #include "include/org_rocksdb_DirectComparator.h"
18 #include "rocksjni/comparatorjnicallback.h"
19 #include "rocksjni/portal.h"
20
21 // <editor-fold desc="org.rocksdb.AbstractComparator>
22
23 /*
24 * Class: org_rocksdb_AbstractComparator
25 * Method: disposeInternal
26 * Signature: (J)V
27 */
28 void Java_org_rocksdb_AbstractComparator_disposeInternal(
29 JNIEnv* env, jobject jobj, jlong handle) {
30 auto* bcjc = reinterpret_cast<rocksdb::BaseComparatorJniCallback*>(handle);
31 assert(bcjc != nullptr);
32 delete bcjc;
33 }
34 // </editor-fold>
35
36 // <editor-fold desc="org.rocksdb.Comparator>
37
38 /*
39 * Class: org_rocksdb_Comparator
40 * Method: createNewComparator0
41 * Signature: ()J
42 */
43 jlong Java_org_rocksdb_Comparator_createNewComparator0(
44 JNIEnv* env, jobject jobj, jlong copt_handle) {
45 const rocksdb::ComparatorJniCallbackOptions* copt =
46 reinterpret_cast<rocksdb::ComparatorJniCallbackOptions*>(copt_handle);
47 const rocksdb::ComparatorJniCallback* c =
48 new rocksdb::ComparatorJniCallback(env, jobj, copt);
49 return reinterpret_cast<jlong>(c);
50 }
51 // </editor-fold>
52
53 // <editor-fold desc="org.rocksdb.DirectComparator>
54
55 /*
56 * Class: org_rocksdb_DirectComparator
57 * Method: createNewDirectComparator0
58 * Signature: ()J
59 */
60 jlong Java_org_rocksdb_DirectComparator_createNewDirectComparator0(
61 JNIEnv* env, jobject jobj, jlong copt_handle) {
62 const rocksdb::ComparatorJniCallbackOptions* copt =
63 reinterpret_cast<rocksdb::ComparatorJniCallbackOptions*>(copt_handle);
64 const rocksdb::DirectComparatorJniCallback* c =
65 new rocksdb::DirectComparatorJniCallback(env, jobj, copt);
66 return reinterpret_cast<jlong>(c);
67 }
68 // </editor-fold>