1/* 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 11#import "RTCMetrics.h" 12 13#import "RTCMetricsSampleInfo+Private.h" 14 15#include "rtc_base/string_utils.h" 16 17void RTCEnableMetrics(void) { 18 webrtc::metrics::Enable(); 19} 20 21NSArray<RTC_OBJC_TYPE(RTCMetricsSampleInfo) *> *RTCGetAndResetMetrics(void) { 22 std::map<std::string, std::unique_ptr<webrtc::metrics::SampleInfo>, rtc::AbslStringViewCmp> 23 histograms; 24 webrtc::metrics::GetAndReset(&histograms); 25 26 NSMutableArray *metrics = 27 [NSMutableArray arrayWithCapacity:histograms.size()]; 28 for (auto const &histogram : histograms) { 29 RTC_OBJC_TYPE(RTCMetricsSampleInfo) *metric = 30 [[RTC_OBJC_TYPE(RTCMetricsSampleInfo) alloc] initWithNativeSampleInfo:*histogram.second]; 31 [metrics addObject:metric]; 32 } 33 return metrics; 34} 35