| /* | |
| * 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 |