// Copyright (c) Meta Platforms, Inc. and affiliates. // // This source code is licensed under both the GPLv2 (found in the // COPYING file in the root directory) and Apache 2.0 License // (found in the LICENSE.Apache file in the root directory). #include "java/rocksjni/table_properties_collector_factory.h" #include "java/include/org_rocksdb_TablePropertiesCollectorFactory.h" #include "java/rocksjni/cplusplus_to_java_convert.h" #include "rocksdb/db.h" #include "rocksdb/utilities/table_properties_collectors.h" /* * Class: org_rocksdb_TablePropertiesCollectorFactory * Method: newCompactOnDeletionCollectorFactory * Signature: (JJD)J */ jlong Java_org_rocksdb_TablePropertiesCollectorFactory_newCompactOnDeletionCollectorFactory( JNIEnv *, jclass, jlong sliding_window_size, jlong deletion_trigger, jdouble deletion_ratio) { auto *wrapper = new TablePropertiesCollectorFactoriesJniWrapper(); wrapper->table_properties_collector_factories = ROCKSDB_NAMESPACE::NewCompactOnDeletionCollectorFactory( sliding_window_size, deletion_trigger, deletion_ratio); return GET_CPLUSPLUS_POINTER(wrapper); } /* * Class: org_rocksdb_TablePropertiesCollectorFactory * Method: deleteCompactOnDeletionCollectorFactory * Signature: (J)J */ void Java_org_rocksdb_TablePropertiesCollectorFactory_deleteCompactOnDeletionCollectorFactory( JNIEnv *, jclass, jlong jhandle) { auto instance = reinterpret_cast(jhandle); delete instance; }