|
13 | 13 | #include "include/org_rocksdb_Statistics.h"
|
14 | 14 | #include "rocksjni/portal.h"
|
15 | 15 | #include "rocksdb/statistics.h"
|
| 16 | +#include <iostream> |
16 | 17 |
|
17 | 18 | /*
|
18 | 19 | * Class: org_rocksdb_Statistics
|
19 | 20 | * Method: getTickerCount0
|
20 | 21 | * Signature: (IJ)J
|
21 | 22 | */
|
22 | 23 | jlong Java_org_rocksdb_Statistics_getTickerCount0(
|
23 |
| - JNIEnv* env, jobject jobj, int ticker, jlong handle) { |
| 24 | + JNIEnv* env, jobject jobj, int tickerType, jlong handle) { |
24 | 25 | auto st = reinterpret_cast<rocksdb::Statistics*>(handle);
|
25 | 26 | assert(st != nullptr);
|
26 | 27 |
|
27 |
| - return st->getTickerCount(static_cast<rocksdb::Tickers>(ticker)); |
| 28 | + return st->getTickerCount(static_cast<rocksdb::Tickers>(tickerType)); |
| 29 | +} |
| 30 | + |
| 31 | +jobject Java_org_rocksdb_Statistics_geHistogramData0( |
| 32 | + JNIEnv* env, jobject jobj, int histogramType, jlong handle) { |
| 33 | + auto st = reinterpret_cast<rocksdb::Statistics*>(handle); |
| 34 | + assert(st != nullptr); |
| 35 | + |
| 36 | + rocksdb::HistogramData data; |
| 37 | + st->histogramData(static_cast<rocksdb::Histograms>(histogramType), |
| 38 | + &data); |
| 39 | + |
| 40 | + // Don't reuse class pointer |
| 41 | + jclass jclazz = env->FindClass("org/rocksdb/HistogramData"); |
| 42 | + jmethodID mid = rocksdb::HistogramDataJni::getConstructorMethodId( |
| 43 | + env, jclazz); |
| 44 | + return env->NewObject(jclazz, mid, data.median, data.percentile95, |
| 45 | + data.percentile99, data.average, data.standard_deviation); |
28 | 46 | }
|
0 commit comments