blob: 89b2f55d09cca0b755381d0c7a7865afeb3ce1b3 [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
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020013#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
Yves Gerey665174f2018-06-19 15:03:05 +020045- (instancetype)initWithRemovedCandidates:(NSArray<RTCIceCandidate *> *)candidates;
Honghai Zhangda2ba4d2016-05-23 11:53:14 -070046
47@end
48
Donald E Curtisa8736442015-08-05 15:48:13 -070049@interface ARDSessionDescriptionMessage : ARDSignalingMessage
50
51@property(nonatomic, readonly) RTCSessionDescription *sessionDescription;
52
53- (instancetype)initWithDescription:(RTCSessionDescription *)description;
54
55@end
56
57@interface ARDByeMessage : ARDSignalingMessage
58@end