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