blob: 87eb8c0210668a89f63490955bb3c67b2422d48c [file] [log] [blame]
asapersson0ab07d62016-06-08 04:59:16 -07001/*
2 * Copyright 2016 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020011#import "RTCMetrics.h"
asapersson0ab07d62016-06-08 04:59:16 -070012
13#import "RTCMetricsSampleInfo+Private.h"
14
Ali Tofigh969c1352022-05-13 10:26:58 +020015#include "rtc_base/string_utils.h"
16
Peter Hanspers28dbf972018-02-01 13:33:18 +010017void RTCEnableMetrics(void) {
asapersson0ab07d62016-06-08 04:59:16 -070018 webrtc::metrics::Enable();
19}
20
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020021NSArray<RTC_OBJC_TYPE(RTCMetricsSampleInfo) *> *RTCGetAndResetMetrics(void) {
Ali Tofigh969c1352022-05-13 10:26:58 +020022 std::map<std::string, std::unique_ptr<webrtc::metrics::SampleInfo>, rtc::AbslStringViewCmp>
asapersson0ab07d62016-06-08 04:59:16 -070023 histograms;
24 webrtc::metrics::GetAndReset(&histograms);
25
26 NSMutableArray *metrics =
27 [NSMutableArray arrayWithCapacity:histograms.size()];
28 for (auto const &histogram : histograms) {
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020029 RTC_OBJC_TYPE(RTCMetricsSampleInfo) *metric =
30 [[RTC_OBJC_TYPE(RTCMetricsSampleInfo) alloc] initWithNativeSampleInfo:*histogram.second];
asapersson0ab07d62016-06-08 04:59:16 -070031 [metrics addObject:metric];
32 }
33 return metrics;
34}