blob: 35a52290145534431b73c1640233ef24f973c71c [file] [log] [blame]
Jon Hjellea2c353f2016-01-11 13:11:38 -08001/*
2 * Copyright 2015 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 "RTCStatsReport.h"
12
13#include "webrtc/base/checks.h"
14
15#import "webrtc/api/objc/RTCStatsReport+Private.h"
16#import "webrtc/base/objc/NSString+StdString.h"
17#import "webrtc/base/objc/RTCLogging.h"
18
19@implementation RTCStatsReport
20
21@synthesize timestamp = _timestamp;
22@synthesize type = _type;
23@synthesize statsId = _statsId;
24@synthesize values = _values;
25
26- (NSString *)description {
27 return [NSString stringWithFormat:@"RTCStatsReport:\n%@\n%@\n%f\n%@",
28 _statsId,
29 _type,
30 _timestamp,
31 _values];
32}
33
34#pragma mark - Private
35
36- (instancetype)initWithNativeReport:(const webrtc::StatsReport &)nativeReport {
37 if (self = [super init]) {
38 _timestamp = nativeReport.timestamp();
39 _type = [NSString stringForStdString:nativeReport.TypeToString()];
40 _statsId = [NSString stringForStdString:
41 nativeReport.id()->ToString()];
42
43 NSUInteger capacity = nativeReport.values().size();
44 NSMutableDictionary *values =
45 [NSMutableDictionary dictionaryWithCapacity:capacity];
46 for (auto const &valuePair : nativeReport.values()) {
47 NSString *key = [NSString stringForStdString:
48 valuePair.second->display_name()];
49 NSString *value = [NSString stringForStdString:
50 valuePair.second->ToString()];
51
52 // Not expecting duplicate keys.
53 RTC_DCHECK(values[key]);
54
55 values[key] = value;
56 }
57 _values = values;
58 }
59 return self;
60}
61
62@end