| /* | |
| * Copyright 2015 The WebRTC project authors. All Rights Reserved. | |
| * | |
| * Use of this source code is governed by a BSD-style license | |
| * that can be found in the LICENSE file in the root of the source | |
| * tree. An additional intellectual property rights grant can be found | |
| * in the file PATENTS. All contributing project authors may | |
| * be found in the AUTHORS file in the root of the source tree. | |
| */ | |
| #import "RTCLegacyStatsReport+Private.h" | |
| #import "base/RTCLogging.h" | |
| #import "helpers/NSString+StdString.h" | |
| #include "rtc_base/checks.h" | |
| @implementation RTC_OBJC_TYPE (RTCLegacyStatsReport) | |
| @synthesize timestamp = _timestamp; | |
| @synthesize type = _type; | |
| @synthesize reportId = _reportId; | |
| @synthesize values = _values; | |
| - (NSString *)description { | |
| return [NSString | |
| stringWithFormat:@"RTC_OBJC_TYPE(RTCLegacyStatsReport):\n%@\n%@\n%f\n%@", | |
| _reportId, | |
| _type, | |
| _timestamp, | |
| _values]; | |
| } | |
| #pragma mark - Private | |
| - (instancetype)initWithNativeReport:(const webrtc::StatsReport &)nativeReport { | |
| self = [super init]; | |
| if (self) { | |
| _timestamp = nativeReport.timestamp(); | |
| _type = [NSString stringForStdString:nativeReport.TypeToString()]; | |
| _reportId = [NSString stringForStdString:nativeReport.id()->ToString()]; | |
| NSUInteger capacity = nativeReport.values().size(); | |
| NSMutableDictionary *values = | |
| [NSMutableDictionary dictionaryWithCapacity:capacity]; | |
| for (auto const &valuePair : nativeReport.values()) { | |
| NSString *key = | |
| [NSString stringForStdString:valuePair.second->display_name()]; | |
| NSString *value = | |
| [NSString stringForStdString:valuePair.second->ToString()]; | |
| // Not expecting duplicate keys. | |
| RTC_DCHECK(![values objectForKey:key]); | |
| [values setObject:value forKey:key]; | |
| } | |
| _values = values; | |
| } | |
| return self; | |
| } | |
| @end |