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::CompactionJobStats.
8 
9 #include <jni.h>
10 
11 #include "include/org_rocksdb_CompactionJobStats.h"
12 #include "rocksdb/compaction_job_stats.h"
13 #include "rocksjni/portal.h"
14 
15 /*
16  * Class:     org_rocksdb_CompactionJobStats
17  * Method:    newCompactionJobStats
18  * Signature: ()J
19  */
Java_org_rocksdb_CompactionJobStats_newCompactionJobStats(JNIEnv *,jclass)20 jlong Java_org_rocksdb_CompactionJobStats_newCompactionJobStats(
21     JNIEnv*, jclass) {
22   auto* compact_job_stats = new ROCKSDB_NAMESPACE::CompactionJobStats();
23   return reinterpret_cast<jlong>(compact_job_stats);
24 }
25 
26 /*
27  * Class:     org_rocksdb_CompactionJobStats
28  * Method:    disposeInternal
29  * Signature: (J)V
30  */
Java_org_rocksdb_CompactionJobStats_disposeInternal(JNIEnv *,jobject,jlong jhandle)31 void Java_org_rocksdb_CompactionJobStats_disposeInternal(
32     JNIEnv *, jobject, jlong jhandle) {
33   auto* compact_job_stats =
34       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
35   delete compact_job_stats;
36 }
37 
38 /*
39  * Class:     org_rocksdb_CompactionJobStats
40  * Method:    reset
41  * Signature: (J)V
42  */
Java_org_rocksdb_CompactionJobStats_reset(JNIEnv *,jclass,jlong jhandle)43 void Java_org_rocksdb_CompactionJobStats_reset(
44     JNIEnv*, jclass, jlong jhandle) {
45   auto* compact_job_stats =
46       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
47   compact_job_stats->Reset();
48 }
49 
50 /*
51  * Class:     org_rocksdb_CompactionJobStats
52  * Method:    add
53  * Signature: (JJ)V
54  */
Java_org_rocksdb_CompactionJobStats_add(JNIEnv *,jclass,jlong jhandle,jlong jother_handle)55 void Java_org_rocksdb_CompactionJobStats_add(
56     JNIEnv*, jclass, jlong jhandle, jlong jother_handle) {
57   auto* compact_job_stats =
58       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
59   auto* other_compact_job_stats =
60       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jother_handle);
61   compact_job_stats->Add(*other_compact_job_stats);
62 }
63 
64 /*
65  * Class:     org_rocksdb_CompactionJobStats
66  * Method:    elapsedMicros
67  * Signature: (J)J
68  */
Java_org_rocksdb_CompactionJobStats_elapsedMicros(JNIEnv *,jclass,jlong jhandle)69 jlong Java_org_rocksdb_CompactionJobStats_elapsedMicros(
70     JNIEnv*, jclass, jlong jhandle) {
71   auto* compact_job_stats =
72       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
73   return static_cast<jlong>(compact_job_stats->elapsed_micros);
74 }
75 
76 /*
77  * Class:     org_rocksdb_CompactionJobStats
78  * Method:    numInputRecords
79  * Signature: (J)J
80  */
Java_org_rocksdb_CompactionJobStats_numInputRecords(JNIEnv *,jclass,jlong jhandle)81 jlong Java_org_rocksdb_CompactionJobStats_numInputRecords(
82     JNIEnv*, jclass, jlong jhandle) {
83   auto* compact_job_stats =
84       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
85   return static_cast<jlong>(compact_job_stats->num_input_records);
86 }
87 
88 /*
89  * Class:     org_rocksdb_CompactionJobStats
90  * Method:    numInputFiles
91  * Signature: (J)J
92  */
Java_org_rocksdb_CompactionJobStats_numInputFiles(JNIEnv *,jclass,jlong jhandle)93 jlong Java_org_rocksdb_CompactionJobStats_numInputFiles(
94     JNIEnv*, jclass, jlong jhandle) {
95   auto* compact_job_stats =
96       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
97   return static_cast<jlong>(compact_job_stats->num_input_files);
98 }
99 
100 /*
101  * Class:     org_rocksdb_CompactionJobStats
102  * Method:    numInputFilesAtOutputLevel
103  * Signature: (J)J
104  */
Java_org_rocksdb_CompactionJobStats_numInputFilesAtOutputLevel(JNIEnv *,jclass,jlong jhandle)105 jlong Java_org_rocksdb_CompactionJobStats_numInputFilesAtOutputLevel(
106     JNIEnv*, jclass, jlong jhandle) {
107   auto* compact_job_stats =
108       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
109   return static_cast<jlong>(
110       compact_job_stats->num_input_files_at_output_level);
111 }
112 
113 /*
114  * Class:     org_rocksdb_CompactionJobStats
115  * Method:    numOutputRecords
116  * Signature: (J)J
117  */
Java_org_rocksdb_CompactionJobStats_numOutputRecords(JNIEnv *,jclass,jlong jhandle)118 jlong Java_org_rocksdb_CompactionJobStats_numOutputRecords(
119     JNIEnv*, jclass, jlong jhandle) {
120   auto* compact_job_stats =
121       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
122   return static_cast<jlong>(
123       compact_job_stats->num_output_records);
124 }
125 
126 /*
127  * Class:     org_rocksdb_CompactionJobStats
128  * Method:    numOutputFiles
129  * Signature: (J)J
130  */
Java_org_rocksdb_CompactionJobStats_numOutputFiles(JNIEnv *,jclass,jlong jhandle)131 jlong Java_org_rocksdb_CompactionJobStats_numOutputFiles(
132     JNIEnv*, jclass, jlong jhandle) {
133   auto* compact_job_stats =
134       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
135   return static_cast<jlong>(
136       compact_job_stats->num_output_files);
137 }
138 
139 /*
140  * Class:     org_rocksdb_CompactionJobStats
141  * Method:    isManualCompaction
142  * Signature: (J)Z
143  */
Java_org_rocksdb_CompactionJobStats_isManualCompaction(JNIEnv *,jclass,jlong jhandle)144 jboolean Java_org_rocksdb_CompactionJobStats_isManualCompaction(
145     JNIEnv*, jclass, jlong jhandle) {
146   auto* compact_job_stats =
147       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
148   if (compact_job_stats->is_manual_compaction) {
149     return JNI_TRUE;
150   } else {
151     return JNI_FALSE;
152   }
153 }
154 
155 /*
156  * Class:     org_rocksdb_CompactionJobStats
157  * Method:    totalInputBytes
158  * Signature: (J)J
159  */
Java_org_rocksdb_CompactionJobStats_totalInputBytes(JNIEnv *,jclass,jlong jhandle)160 jlong Java_org_rocksdb_CompactionJobStats_totalInputBytes(
161     JNIEnv*, jclass, jlong jhandle) {
162   auto* compact_job_stats =
163       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
164   return static_cast<jlong>(
165       compact_job_stats->total_input_bytes);
166 }
167 
168 /*
169  * Class:     org_rocksdb_CompactionJobStats
170  * Method:    totalOutputBytes
171  * Signature: (J)J
172  */
Java_org_rocksdb_CompactionJobStats_totalOutputBytes(JNIEnv *,jclass,jlong jhandle)173 jlong Java_org_rocksdb_CompactionJobStats_totalOutputBytes(
174     JNIEnv*, jclass, jlong jhandle) {
175   auto* compact_job_stats =
176       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
177   return static_cast<jlong>(
178       compact_job_stats->total_output_bytes);
179 }
180 
181 /*
182  * Class:     org_rocksdb_CompactionJobStats
183  * Method:    numRecordsReplaced
184  * Signature: (J)J
185  */
Java_org_rocksdb_CompactionJobStats_numRecordsReplaced(JNIEnv *,jclass,jlong jhandle)186 jlong Java_org_rocksdb_CompactionJobStats_numRecordsReplaced(
187     JNIEnv*, jclass, jlong jhandle) {
188   auto* compact_job_stats =
189       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
190   return static_cast<jlong>(
191       compact_job_stats->num_records_replaced);
192 }
193 
194 /*
195  * Class:     org_rocksdb_CompactionJobStats
196  * Method:    totalInputRawKeyBytes
197  * Signature: (J)J
198  */
Java_org_rocksdb_CompactionJobStats_totalInputRawKeyBytes(JNIEnv *,jclass,jlong jhandle)199 jlong Java_org_rocksdb_CompactionJobStats_totalInputRawKeyBytes(
200     JNIEnv*, jclass, jlong jhandle) {
201   auto* compact_job_stats =
202       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
203   return static_cast<jlong>(
204       compact_job_stats->total_input_raw_key_bytes);
205 }
206 
207 /*
208  * Class:     org_rocksdb_CompactionJobStats
209  * Method:    totalInputRawValueBytes
210  * Signature: (J)J
211  */
Java_org_rocksdb_CompactionJobStats_totalInputRawValueBytes(JNIEnv *,jclass,jlong jhandle)212 jlong Java_org_rocksdb_CompactionJobStats_totalInputRawValueBytes(
213     JNIEnv*, jclass, jlong jhandle) {
214   auto* compact_job_stats =
215       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
216   return static_cast<jlong>(
217       compact_job_stats->total_input_raw_value_bytes);
218 }
219 
220 /*
221  * Class:     org_rocksdb_CompactionJobStats
222  * Method:    numInputDeletionRecords
223  * Signature: (J)J
224  */
Java_org_rocksdb_CompactionJobStats_numInputDeletionRecords(JNIEnv *,jclass,jlong jhandle)225 jlong Java_org_rocksdb_CompactionJobStats_numInputDeletionRecords(
226     JNIEnv*, jclass, jlong jhandle) {
227   auto* compact_job_stats =
228       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
229   return static_cast<jlong>(
230       compact_job_stats->num_input_deletion_records);
231 }
232 
233 /*
234  * Class:     org_rocksdb_CompactionJobStats
235  * Method:    numExpiredDeletionRecords
236  * Signature: (J)J
237  */
Java_org_rocksdb_CompactionJobStats_numExpiredDeletionRecords(JNIEnv *,jclass,jlong jhandle)238 jlong Java_org_rocksdb_CompactionJobStats_numExpiredDeletionRecords(
239     JNIEnv*, jclass, jlong jhandle) {
240   auto* compact_job_stats =
241       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
242   return static_cast<jlong>(
243       compact_job_stats->num_expired_deletion_records);
244 }
245 
246 /*
247  * Class:     org_rocksdb_CompactionJobStats
248  * Method:    numCorruptKeys
249  * Signature: (J)J
250  */
Java_org_rocksdb_CompactionJobStats_numCorruptKeys(JNIEnv *,jclass,jlong jhandle)251 jlong Java_org_rocksdb_CompactionJobStats_numCorruptKeys(
252     JNIEnv*, jclass, jlong jhandle) {
253   auto* compact_job_stats =
254       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
255   return static_cast<jlong>(
256       compact_job_stats->num_corrupt_keys);
257 }
258 
259 /*
260  * Class:     org_rocksdb_CompactionJobStats
261  * Method:    fileWriteNanos
262  * Signature: (J)J
263  */
Java_org_rocksdb_CompactionJobStats_fileWriteNanos(JNIEnv *,jclass,jlong jhandle)264 jlong Java_org_rocksdb_CompactionJobStats_fileWriteNanos(
265     JNIEnv*, jclass, jlong jhandle) {
266   auto* compact_job_stats =
267       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
268   return static_cast<jlong>(
269       compact_job_stats->file_write_nanos);
270 }
271 
272 /*
273  * Class:     org_rocksdb_CompactionJobStats
274  * Method:    fileRangeSyncNanos
275  * Signature: (J)J
276  */
Java_org_rocksdb_CompactionJobStats_fileRangeSyncNanos(JNIEnv *,jclass,jlong jhandle)277 jlong Java_org_rocksdb_CompactionJobStats_fileRangeSyncNanos(
278     JNIEnv*, jclass, jlong jhandle) {
279   auto* compact_job_stats =
280       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
281   return static_cast<jlong>(
282       compact_job_stats->file_range_sync_nanos);
283 }
284 
285 /*
286  * Class:     org_rocksdb_CompactionJobStats
287  * Method:    fileFsyncNanos
288  * Signature: (J)J
289  */
Java_org_rocksdb_CompactionJobStats_fileFsyncNanos(JNIEnv *,jclass,jlong jhandle)290 jlong Java_org_rocksdb_CompactionJobStats_fileFsyncNanos(
291     JNIEnv*, jclass, jlong jhandle) {
292   auto* compact_job_stats =
293       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
294   return static_cast<jlong>(
295       compact_job_stats->file_fsync_nanos);
296 }
297 
298 /*
299  * Class:     org_rocksdb_CompactionJobStats
300  * Method:    filePrepareWriteNanos
301  * Signature: (J)J
302  */
Java_org_rocksdb_CompactionJobStats_filePrepareWriteNanos(JNIEnv *,jclass,jlong jhandle)303 jlong Java_org_rocksdb_CompactionJobStats_filePrepareWriteNanos(
304     JNIEnv*, jclass, jlong jhandle) {
305   auto* compact_job_stats =
306       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
307   return static_cast<jlong>(
308       compact_job_stats->file_prepare_write_nanos);
309 }
310 
311 /*
312  * Class:     org_rocksdb_CompactionJobStats
313  * Method:    smallestOutputKeyPrefix
314  * Signature: (J)[B
315  */
Java_org_rocksdb_CompactionJobStats_smallestOutputKeyPrefix(JNIEnv * env,jclass,jlong jhandle)316 jbyteArray Java_org_rocksdb_CompactionJobStats_smallestOutputKeyPrefix(
317     JNIEnv* env, jclass, jlong jhandle) {
318   auto* compact_job_stats =
319       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
320   return ROCKSDB_NAMESPACE::JniUtil::copyBytes(
321       env, compact_job_stats->smallest_output_key_prefix);
322 }
323 
324 /*
325  * Class:     org_rocksdb_CompactionJobStats
326  * Method:    largestOutputKeyPrefix
327  * Signature: (J)[B
328  */
Java_org_rocksdb_CompactionJobStats_largestOutputKeyPrefix(JNIEnv * env,jclass,jlong jhandle)329 jbyteArray Java_org_rocksdb_CompactionJobStats_largestOutputKeyPrefix(
330     JNIEnv* env, jclass, jlong jhandle) {
331   auto* compact_job_stats =
332       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
333   return ROCKSDB_NAMESPACE::JniUtil::copyBytes(
334       env, compact_job_stats->largest_output_key_prefix);
335 }
336 
337 /*
338  * Class:     org_rocksdb_CompactionJobStats
339  * Method:    numSingleDelFallthru
340  * Signature: (J)J
341  */
Java_org_rocksdb_CompactionJobStats_numSingleDelFallthru(JNIEnv *,jclass,jlong jhandle)342 jlong Java_org_rocksdb_CompactionJobStats_numSingleDelFallthru(
343     JNIEnv*, jclass, jlong jhandle) {
344   auto* compact_job_stats =
345       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
346   return static_cast<jlong>(
347       compact_job_stats->num_single_del_fallthru);
348 }
349 
350 /*
351  * Class:     org_rocksdb_CompactionJobStats
352  * Method:    numSingleDelMismatch
353  * Signature: (J)J
354  */
Java_org_rocksdb_CompactionJobStats_numSingleDelMismatch(JNIEnv *,jclass,jlong jhandle)355 jlong Java_org_rocksdb_CompactionJobStats_numSingleDelMismatch(
356     JNIEnv*, jclass, jlong jhandle) {
357   auto* compact_job_stats =
358       reinterpret_cast<ROCKSDB_NAMESPACE::CompactionJobStats*>(jhandle);
359   return static_cast<jlong>(
360       compact_job_stats->num_single_del_mismatch);
361 }
362