blob: 18eafe26736517f85f675ec0c7e5700da9bb69ec [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>
tkchin9eeb6242016-04-27 01:54:20 -070012
13#import "WebRTC/RTCIceCandidate.h"
14#import "WebRTC/RTCSessionDescription.h"
Donald E Curtisa8736442015-08-05 15:48:13 -070015
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
hjon79858f82016-03-13 22:08:26 -070034@property(nonatomic, readonly) RTCIceCandidate *candidate;
Donald E Curtisa8736442015-08-05 15:48:13 -070035
hjon79858f82016-03-13 22:08:26 -070036- (instancetype)initWithCandidate:(RTCIceCandidate *)candidate;
Donald E Curtisa8736442015-08-05 15:48:13 -070037
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