| /* | 
 |  *  Copyright 2014 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 <Foundation/Foundation.h> | 
 |  | 
 | #import "sdk/objc/api/peerconnection/RTCIceCandidate.h" | 
 | #import "sdk/objc/api/peerconnection/RTCSessionDescription.h" | 
 |  | 
 | typedef enum { | 
 |   kARDSignalingMessageTypeCandidate, | 
 |   kARDSignalingMessageTypeCandidateRemoval, | 
 |   kARDSignalingMessageTypeOffer, | 
 |   kARDSignalingMessageTypeAnswer, | 
 |   kARDSignalingMessageTypeBye, | 
 | } ARDSignalingMessageType; | 
 |  | 
 | @interface ARDSignalingMessage : NSObject | 
 |  | 
 | @property(nonatomic, readonly) ARDSignalingMessageType type; | 
 |  | 
 | + (ARDSignalingMessage *)messageFromJSONString:(NSString *)jsonString; | 
 | - (NSData *)JSONData; | 
 |  | 
 | @end | 
 |  | 
 | @interface ARDICECandidateMessage : ARDSignalingMessage | 
 |  | 
 | @property(nonatomic, readonly) RTC_OBJC_TYPE(RTCIceCandidate) * candidate; | 
 |  | 
 | - (instancetype)initWithCandidate:(RTC_OBJC_TYPE(RTCIceCandidate) *)candidate; | 
 |  | 
 | @end | 
 |  | 
 | @interface ARDICECandidateRemovalMessage : ARDSignalingMessage | 
 |  | 
 | @property(nonatomic, readonly) | 
 |     NSArray<RTC_OBJC_TYPE(RTCIceCandidate) *> *candidates; | 
 |  | 
 | - (instancetype)initWithRemovedCandidates: | 
 |     (NSArray<RTC_OBJC_TYPE(RTCIceCandidate) *> *)candidates; | 
 |  | 
 | @end | 
 |  | 
 | @interface ARDSessionDescriptionMessage : ARDSignalingMessage | 
 |  | 
 | @property(nonatomic, readonly) RTC_OBJC_TYPE(RTCSessionDescription) * | 
 |     sessionDescription; | 
 |  | 
 | - (instancetype)initWithDescription: | 
 |     (RTC_OBJC_TYPE(RTCSessionDescription) *)description; | 
 |  | 
 | @end | 
 |  | 
 | @interface ARDByeMessage : ARDSignalingMessage | 
 | @end |