blob: c33997fb466ecc879b1fc8f93fb1785cd97b5eac [file] [log] [blame]
Donald E Curtisa8736442015-08-05 15:48:13 -07001/*
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
16typedef 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