]> git.proxmox.com Git - ceph.git/blob - ceph/src/rocksdb/java/rocksjni/compaction_options.cc
import 14.2.4 nautilus point release
[ceph.git] / ceph / src / rocksdb / java / rocksjni / compaction_options.cc
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::CompactionOptions.
8
9 #include <jni.h>
10
11 #include "include/org_rocksdb_CompactionOptions.h"
12 #include "rocksdb/options.h"
13 #include "rocksjni/portal.h"
14
15
16 /*
17 * Class: org_rocksdb_CompactionOptions
18 * Method: newCompactionOptions
19 * Signature: ()J
20 */
21 jlong Java_org_rocksdb_CompactionOptions_newCompactionOptions(
22 JNIEnv*, jclass) {
23 auto* compact_opts = new rocksdb::CompactionOptions();
24 return reinterpret_cast<jlong>(compact_opts);
25 }
26
27 /*
28 * Class: org_rocksdb_CompactionOptions
29 * Method: disposeInternal
30 * Signature: (J)V
31 */
32 void Java_org_rocksdb_CompactionOptions_disposeInternal(
33 JNIEnv *, jobject, jlong jhandle) {
34 auto* compact_opts =
35 reinterpret_cast<rocksdb::CompactionOptions*>(jhandle);
36 delete compact_opts;
37 }
38
39 /*
40 * Class: org_rocksdb_CompactionOptions
41 * Method: compression
42 * Signature: (J)B
43 */
44 jbyte Java_org_rocksdb_CompactionOptions_compression(
45 JNIEnv*, jclass, jlong jhandle) {
46 auto* compact_opts =
47 reinterpret_cast<rocksdb::CompactionOptions*>(jhandle);
48 return rocksdb::CompressionTypeJni::toJavaCompressionType(
49 compact_opts->compression);
50 }
51
52 /*
53 * Class: org_rocksdb_CompactionOptions
54 * Method: setCompression
55 * Signature: (JB)V
56 */
57 void Java_org_rocksdb_CompactionOptions_setCompression(
58 JNIEnv*, jclass, jlong jhandle, jbyte jcompression_type_value) {
59 auto* compact_opts =
60 reinterpret_cast<rocksdb::CompactionOptions*>(jhandle);
61 compact_opts->compression =
62 rocksdb::CompressionTypeJni::toCppCompressionType(
63 jcompression_type_value);
64 }
65
66 /*
67 * Class: org_rocksdb_CompactionOptions
68 * Method: outputFileSizeLimit
69 * Signature: (J)J
70 */
71 jlong Java_org_rocksdb_CompactionOptions_outputFileSizeLimit(
72 JNIEnv*, jclass, jlong jhandle) {
73 auto* compact_opts =
74 reinterpret_cast<rocksdb::CompactionOptions*>(jhandle);
75 return static_cast<jlong>(
76 compact_opts->output_file_size_limit);
77 }
78
79 /*
80 * Class: org_rocksdb_CompactionOptions
81 * Method: setOutputFileSizeLimit
82 * Signature: (JJ)V
83 */
84 void Java_org_rocksdb_CompactionOptions_setOutputFileSizeLimit(
85 JNIEnv*, jclass, jlong jhandle, jlong joutput_file_size_limit) {
86 auto* compact_opts =
87 reinterpret_cast<rocksdb::CompactionOptions*>(jhandle);
88 compact_opts->output_file_size_limit =
89 static_cast<uint64_t>(joutput_file_size_limit);
90 }
91
92 /*
93 * Class: org_rocksdb_CompactionOptions
94 * Method: maxSubcompactions
95 * Signature: (J)I
96 */
97 jint Java_org_rocksdb_CompactionOptions_maxSubcompactions(
98 JNIEnv*, jclass, jlong jhandle) {
99 auto* compact_opts =
100 reinterpret_cast<rocksdb::CompactionOptions*>(jhandle);
101 return static_cast<jint>(
102 compact_opts->max_subcompactions);
103 }
104
105 /*
106 * Class: org_rocksdb_CompactionOptions
107 * Method: setMaxSubcompactions
108 * Signature: (JI)V
109 */
110 void Java_org_rocksdb_CompactionOptions_setMaxSubcompactions(
111 JNIEnv*, jclass, jlong jhandle, jint jmax_subcompactions) {
112 auto* compact_opts =
113 reinterpret_cast<rocksdb::CompactionOptions*>(jhandle);
114 compact_opts->max_subcompactions =
115 static_cast<uint32_t>(jmax_subcompactions);
116 }