| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 /* |  | 
| 2  *  Copyright 2014 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 "RTCIceCandidate+JSON.h" |  | 
| 12 |  | 
| 13 #import "WebRTC/RTCLogging.h" |  | 
| 14 |  | 
| 15 static NSString const *kRTCICECandidateTypeKey = @"type"; |  | 
| 16 static NSString const *kRTCICECandidateTypeValue = @"candidate"; |  | 
| 17 static NSString const *kRTCICECandidateMidKey = @"id"; |  | 
| 18 static NSString const *kRTCICECandidateMLineIndexKey = @"label"; |  | 
| 19 static NSString const *kRTCICECandidateSdpKey = @"candidate"; |  | 
| 20 static NSString const *kRTCICECandidatesTypeKey = @"candidates"; |  | 
| 21 |  | 
| 22 |  | 
| 23 @implementation RTCIceCandidate (JSON) |  | 
| 24 |  | 
| 25 + (RTCIceCandidate *)candidateFromJSONDictionary:(NSDictionary *)dictionary { |  | 
| 26   NSString *mid = dictionary[kRTCICECandidateMidKey]; |  | 
| 27   NSString *sdp = dictionary[kRTCICECandidateSdpKey]; |  | 
| 28   NSNumber *num = dictionary[kRTCICECandidateMLineIndexKey]; |  | 
| 29   NSInteger mLineIndex = [num integerValue]; |  | 
| 30   return [[RTCIceCandidate alloc] initWithSdp:sdp |  | 
| 31                                 sdpMLineIndex:mLineIndex |  | 
| 32                                        sdpMid:mid]; |  | 
| 33 } |  | 
| 34 |  | 
| 35 + (NSData *)JSONDataForIceCandidates:(NSArray<RTCIceCandidate *> *)candidates |  | 
| 36                             withType:(NSString *)typeValue { |  | 
| 37   NSMutableArray *jsonCandidates = |  | 
| 38       [NSMutableArray arrayWithCapacity:candidates.count]; |  | 
| 39   for (RTCIceCandidate *candidate in candidates) { |  | 
| 40     NSDictionary *jsonCandidate = [candidate JSONDictionary]; |  | 
| 41     [jsonCandidates addObject:jsonCandidate]; |  | 
| 42   } |  | 
| 43   NSDictionary *json = @{ |  | 
| 44     kRTCICECandidateTypeKey : typeValue, |  | 
| 45     kRTCICECandidatesTypeKey : jsonCandidates |  | 
| 46   }; |  | 
| 47   NSError *error = nil; |  | 
| 48   NSData *data = |  | 
| 49       [NSJSONSerialization dataWithJSONObject:json |  | 
| 50                                       options:NSJSONWritingPrettyPrinted |  | 
| 51                                         error:&error]; |  | 
| 52   if (error) { |  | 
| 53     RTCLogError(@"Error serializing JSON: %@", error); |  | 
| 54     return nil; |  | 
| 55   } |  | 
| 56   return data; |  | 
| 57 } |  | 
| 58 |  | 
| 59 + (NSArray<RTCIceCandidate *> *)candidatesFromJSONDictionary: |  | 
| 60     (NSDictionary *)dictionary { |  | 
| 61   NSArray *jsonCandidates = dictionary[kRTCICECandidatesTypeKey]; |  | 
| 62   NSMutableArray<RTCIceCandidate *> *candidates = |  | 
| 63       [NSMutableArray arrayWithCapacity:jsonCandidates.count]; |  | 
| 64   for (NSDictionary *jsonCandidate in jsonCandidates) { |  | 
| 65     RTCIceCandidate *candidate = |  | 
| 66         [RTCIceCandidate candidateFromJSONDictionary:jsonCandidate]; |  | 
| 67     [candidates addObject:candidate]; |  | 
| 68   } |  | 
| 69   return candidates; |  | 
| 70 } |  | 
| 71 |  | 
| 72 - (NSData *)JSONData { |  | 
| 73   NSDictionary *json = @{ |  | 
| 74     kRTCICECandidateTypeKey : kRTCICECandidateTypeValue, |  | 
| 75     kRTCICECandidateMLineIndexKey : @(self.sdpMLineIndex), |  | 
| 76     kRTCICECandidateMidKey : self.sdpMid, |  | 
| 77     kRTCICECandidateSdpKey : self.sdp |  | 
| 78   }; |  | 
| 79   NSError *error = nil; |  | 
| 80   NSData *data = |  | 
| 81       [NSJSONSerialization dataWithJSONObject:json |  | 
| 82                                       options:NSJSONWritingPrettyPrinted |  | 
| 83                                         error:&error]; |  | 
| 84   if (error) { |  | 
| 85     RTCLogError(@"Error serializing JSON: %@", error); |  | 
| 86     return nil; |  | 
| 87   } |  | 
| 88   return data; |  | 
| 89 } |  | 
| 90 |  | 
| 91 - (NSDictionary *)JSONDictionary{ |  | 
| 92   NSDictionary *json = @{ |  | 
| 93     kRTCICECandidateMLineIndexKey : @(self.sdpMLineIndex), |  | 
| 94     kRTCICECandidateMidKey : self.sdpMid, |  | 
| 95     kRTCICECandidateSdpKey : self.sdp |  | 
| 96   }; |  | 
| 97   return json; |  | 
| 98 } |  | 
| 99 |  | 
| 100 @end |  | 
| OLD | NEW | 
|---|