| /* |
| * Copyright 2016 The WebRTC project authors. All Rights Reserved. |
| * |
| * Use of this source code is governed by a BSD-style license |
| * that can be found in the LICENSE file in the root of the source |
| * tree. An additional intellectual property rights grant can be found |
| * in the file PATENTS. All contributing project authors may |
| * be found in the AUTHORS file in the root of the source tree. |
| */ |
| |
| package org.webrtc; |
| |
| /** |
| * Class for holding the native pointer of a histogram. Since there is no way to destroy a |
| * histogram, please don't create unnecessary instances of this object. This class is thread safe. |
| * |
| * Usage example: |
| * private static final Histogram someMetricHistogram = |
| * Histogram.createCounts("WebRTC.Video.SomeMetric", 1, 10000, 50); |
| * someMetricHistogram.addSample(someVariable); |
| */ |
| class Histogram { |
| private final long handle; |
| |
| private Histogram(long handle) { |
| this.handle = handle; |
| } |
| |
| static public Histogram createCounts(String name, int min, int max, int bucketCount) { |
| return new Histogram(nativeCreateCounts(name, min, max, bucketCount)); |
| } |
| |
| static public Histogram createEnumeration(String name, int max) { |
| return new Histogram(nativeCreateEnumeration(name, max)); |
| } |
| |
| public void addSample(int sample) { |
| nativeAddSample(handle, sample); |
| } |
| |
| private static native long nativeCreateCounts(String name, int min, int max, int bucketCount); |
| private static native long nativeCreateEnumeration(String name, int max); |
| private static native void nativeAddSample(long handle, int sample); |
| } |