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 <Foundation/Foundation.h>
12 
13 #import "RTCICECandidate.h"
14 #import "RTCSessionDescription.h"
15 
16 typedef enum {
17   kARDSignalingMessageTypeCandidate,
18   kARDSignalingMessageTypeOffer,
19   kARDSignalingMessageTypeAnswer,
20   kARDSignalingMessageTypeBye,
21 } ARDSignalingMessageType;
22 
23 @interface ARDSignalingMessage : NSObject
24 
25 @property(nonatomic, readonly) ARDSignalingMessageType type;
26 
27 + (ARDSignalingMessage *)messageFromJSONString:(NSString *)jsonString;
28 - (NSData *)JSONData;
29 
30 @end
31 
32 @interface ARDICECandidateMessage : ARDSignalingMessage
33 
34 @property(nonatomic, readonly) RTCICECandidate *candidate;
35 
36 - (instancetype)initWithCandidate:(RTCICECandidate *)candidate;
37 
38 @end
39 
40 @interface ARDSessionDescriptionMessage : ARDSignalingMessage
41 
42 @property(nonatomic, readonly) RTCSessionDescription *sessionDescription;
43 
44 - (instancetype)initWithDescription:(RTCSessionDescription *)description;
45 
46 @end
47 
48 @interface ARDByeMessage : ARDSignalingMessage
49 @end
50