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.
6 // This file implements the "bridge" between Java and C++ for
7 // rocksdb::Comparator.
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"
21 // <editor-fold desc="org.rocksdb.AbstractComparator>
24 * Class: org_rocksdb_AbstractComparator
25 * Method: disposeInternal
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);
36 // <editor-fold desc="org.rocksdb.Comparator>
39 * Class: org_rocksdb_Comparator
40 * Method: createNewComparator0
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
);
53 // <editor-fold desc="org.rocksdb.DirectComparator>
56 * Class: org_rocksdb_DirectComparator
57 * Method: createNewDirectComparator0
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
);