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).
6 // This file implements the "bridge" between Java and C++ for
7 // rocksdb::CompactionOptions.
11 #include "include/org_rocksdb_CompactionOptions.h"
12 #include "rocksdb/options.h"
13 #include "rocksjni/portal.h"
17 * Class: org_rocksdb_CompactionOptions
18 * Method: newCompactionOptions
21 jlong
Java_org_rocksdb_CompactionOptions_newCompactionOptions(
23 auto* compact_opts
= new rocksdb::CompactionOptions();
24 return reinterpret_cast<jlong
>(compact_opts
);
28 * Class: org_rocksdb_CompactionOptions
29 * Method: disposeInternal
32 void Java_org_rocksdb_CompactionOptions_disposeInternal(
33 JNIEnv
*, jobject
, jlong jhandle
) {
35 reinterpret_cast<rocksdb::CompactionOptions
*>(jhandle
);
40 * Class: org_rocksdb_CompactionOptions
44 jbyte
Java_org_rocksdb_CompactionOptions_compression(
45 JNIEnv
*, jclass
, jlong jhandle
) {
47 reinterpret_cast<rocksdb::CompactionOptions
*>(jhandle
);
48 return rocksdb::CompressionTypeJni::toJavaCompressionType(
49 compact_opts
->compression
);
53 * Class: org_rocksdb_CompactionOptions
54 * Method: setCompression
57 void Java_org_rocksdb_CompactionOptions_setCompression(
58 JNIEnv
*, jclass
, jlong jhandle
, jbyte jcompression_type_value
) {
60 reinterpret_cast<rocksdb::CompactionOptions
*>(jhandle
);
61 compact_opts
->compression
=
62 rocksdb::CompressionTypeJni::toCppCompressionType(
63 jcompression_type_value
);
67 * Class: org_rocksdb_CompactionOptions
68 * Method: outputFileSizeLimit
71 jlong
Java_org_rocksdb_CompactionOptions_outputFileSizeLimit(
72 JNIEnv
*, jclass
, jlong jhandle
) {
74 reinterpret_cast<rocksdb::CompactionOptions
*>(jhandle
);
75 return static_cast<jlong
>(
76 compact_opts
->output_file_size_limit
);
80 * Class: org_rocksdb_CompactionOptions
81 * Method: setOutputFileSizeLimit
84 void Java_org_rocksdb_CompactionOptions_setOutputFileSizeLimit(
85 JNIEnv
*, jclass
, jlong jhandle
, jlong joutput_file_size_limit
) {
87 reinterpret_cast<rocksdb::CompactionOptions
*>(jhandle
);
88 compact_opts
->output_file_size_limit
=
89 static_cast<uint64_t>(joutput_file_size_limit
);
93 * Class: org_rocksdb_CompactionOptions
94 * Method: maxSubcompactions
97 jint
Java_org_rocksdb_CompactionOptions_maxSubcompactions(
98 JNIEnv
*, jclass
, jlong jhandle
) {
100 reinterpret_cast<rocksdb::CompactionOptions
*>(jhandle
);
101 return static_cast<jint
>(
102 compact_opts
->max_subcompactions
);
106 * Class: org_rocksdb_CompactionOptions
107 * Method: setMaxSubcompactions
110 void Java_org_rocksdb_CompactionOptions_setMaxSubcompactions(
111 JNIEnv
*, jclass
, jlong jhandle
, jint jmax_subcompactions
) {
113 reinterpret_cast<rocksdb::CompactionOptions
*>(jhandle
);
114 compact_opts
->max_subcompactions
=
115 static_cast<uint32_t>(jmax_subcompactions
);