blob: e60517282b9c925433fad983ad5250446b8fe516 [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,
Honghai Zhangda2ba4d2016-05-23 11:53:14 -070018 kARDSignalingMessageTypeCandidateRemoval,
Donald E Curtisa8736442015-08-05 15:48:13 -070019 kARDSignalingMessageTypeOffer,
20 kARDSignalingMessageTypeAnswer,
21 kARDSignalingMessageTypeBye,
22} ARDSignalingMessageType;
23
24@interface ARDSignalingMessage : NSObject
25
26@property(nonatomic, readonly) ARDSignalingMessageType type;
27
28+ (ARDSignalingMessage *)messageFromJSONString:(NSString *)jsonString;
29- (NSData *)JSONData;
30
31@end
32
33@interface ARDICECandidateMessage : ARDSignalingMessage
34
hjon79858f82016-03-13 22:08:26 -070035@property(nonatomic, readonly) RTCIceCandidate *candidate;
Donald E Curtisa8736442015-08-05 15:48:13 -070036
hjon79858f82016-03-13 22:08:26 -070037- (instancetype)initWithCandidate:(RTCIceCandidate *)candidate;
Donald E Curtisa8736442015-08-05 15:48:13 -070038
39@end
40
Honghai Zhangda2ba4d2016-05-23 11:53:14 -070041@interface ARDICECandidateRemovalMessage : ARDSignalingMessage
42
43@property(nonatomic, readonly) NSArray<RTCIceCandidate *> *candidates;
44
45- (instancetype)initWithRemovedCandidates:
46 (NSArray<RTCIceCandidate *> *)candidates;
47
48@end
49
Donald E Curtisa8736442015-08-05 15:48:13 -070050@interface ARDSessionDescriptionMessage : ARDSignalingMessage
51
52@property(nonatomic, readonly) RTCSessionDescription *sessionDescription;
53
54- (instancetype)initWithDescription:(RTCSessionDescription *)description;
55
56@end
57
58@interface ARDByeMessage : ARDSignalingMessage
59@end