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++ for 7 // ROCKSDB_NAMESPACE::CompactionFilterFactory. 8 9 #include <jni.h> 10 #include <memory> 11 12 #include "include/org_rocksdb_AbstractCompactionFilterFactory.h" 13 #include "rocksjni/compaction_filter_factory_jnicallback.h" 14 15 /* 16 * Class: org_rocksdb_AbstractCompactionFilterFactory 17 * Method: createNewCompactionFilterFactory0 18 * Signature: ()J 19 */ Java_org_rocksdb_AbstractCompactionFilterFactory_createNewCompactionFilterFactory0(JNIEnv * env,jobject jobj)20jlong Java_org_rocksdb_AbstractCompactionFilterFactory_createNewCompactionFilterFactory0( 21 JNIEnv* env, jobject jobj) { 22 auto* cff = 23 new ROCKSDB_NAMESPACE::CompactionFilterFactoryJniCallback(env, jobj); 24 auto* ptr_sptr_cff = new std::shared_ptr< 25 ROCKSDB_NAMESPACE::CompactionFilterFactoryJniCallback>(cff); 26 return reinterpret_cast<jlong>(ptr_sptr_cff); 27 } 28 29 /* 30 * Class: org_rocksdb_AbstractCompactionFilterFactory 31 * Method: disposeInternal 32 * Signature: (J)V 33 */ Java_org_rocksdb_AbstractCompactionFilterFactory_disposeInternal(JNIEnv *,jobject,jlong jhandle)34void Java_org_rocksdb_AbstractCompactionFilterFactory_disposeInternal( 35 JNIEnv*, jobject, jlong jhandle) { 36 auto* ptr_sptr_cff = reinterpret_cast< 37 std::shared_ptr<ROCKSDB_NAMESPACE::CompactionFilterFactoryJniCallback>*>( 38 jhandle); 39 delete ptr_sptr_cff; 40 } 41