| /* | |
| * Copyright 2017 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; | |
| import java.util.Map; | |
| /** | |
| * Java version of webrtc::RTCStatsReport. Each RTCStatsReport produced by | |
| * getStats contains multiple RTCStats objects; one for each underlying object | |
| * (codec, stream, transport, etc.) that was inspected to produce the stats. | |
| */ | |
| public class RTCStatsReport { | |
| private final long timestampUs; | |
| private final Map<String, RTCStats> stats; | |
| public RTCStatsReport(long timestampUs, Map<String, RTCStats> stats) { | |
| this.timestampUs = timestampUs; | |
| this.stats = stats; | |
| } | |
| // Timestamp in microseconds. | |
| public double getTimestampUs() { | |
| return timestampUs; | |
| } | |
| // Map of stats object IDs to stats objects. Can be used to easily look up | |
| // other stats objects, when they refer to each other by ID. | |
| public Map<String, RTCStats> getStatsMap() { | |
| return stats; | |
| } | |
| @Override | |
| public String toString() { | |
| StringBuilder builder = new StringBuilder(); | |
| builder.append("{ timestampUs: ").append(timestampUs).append(", stats: [\n"); | |
| boolean first = true; | |
| for (RTCStats stat : stats.values()) { | |
| if (!first) { | |
| builder.append(",\n"); | |
| } | |
| builder.append(stat); | |
| first = false; | |
| } | |
| builder.append(" ] }"); | |
| return builder.toString(); | |
| } | |
| // TODO(bugs.webrtc.org/8557) Use ctor directly with full Map type. | |
| @SuppressWarnings("unchecked") | |
| @CalledByNative | |
| private static RTCStatsReport create(long timestampUs, Map stats) { | |
| return new RTCStatsReport(timestampUs, stats); | |
| } | |
| } |