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 15void RTCEnableMetrics(void) { 16 webrtc::metrics::Enable(); 17} 18 19NSArray<RTC_OBJC_TYPE(RTCMetricsSampleInfo) *> *RTCGetAndResetMetrics(void) { 20 std::map<std::string, std::unique_ptr<webrtc::metrics::SampleInfo>> 21 histograms; 22 webrtc::metrics::GetAndReset(&histograms); 23 24 NSMutableArray *metrics = 25 [NSMutableArray arrayWithCapacity:histograms.size()]; 26 for (auto const &histogram : histograms) { 27 RTC_OBJC_TYPE(RTCMetricsSampleInfo) *metric = 28 [[RTC_OBJC_TYPE(RTCMetricsSampleInfo) alloc] initWithNativeSampleInfo:*histogram.second]; 29 [metrics addObject:metric]; 30 } 31 return metrics; 32} 33