2023-12-19 21:43:17 +00:00
|
|
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
2023-12-18 21:43:01 +00:00
|
|
|
//
|
2023-12-19 21:43:17 +00:00
|
|
|
// 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).
|
2023-12-18 21:43:01 +00:00
|
|
|
|
|
|
|
#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<TablePropertiesCollectorFactoriesJniWrapper *>(jhandle);
|
|
|
|
delete instance;
|
|
|
|
}
|