blob: ac19e8fba76750b16ace565c9a5a9d65e7b3dff6 [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
Mirko Bonadei19640aa2020-10-19 16:12:43 +020013#import "sdk/objc/api/peerconnection/RTCIceCandidate.h"
14#import "sdk/objc/api/peerconnection/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
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020035@property(nonatomic, readonly) RTC_OBJC_TYPE(RTCIceCandidate) * candidate;
Donald E Curtisa8736442015-08-05 15:48:13 -070036
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020037- (instancetype)initWithCandidate:(RTC_OBJC_TYPE(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
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020043@property(nonatomic, readonly) NSArray<RTC_OBJC_TYPE(RTCIceCandidate) *> *candidates;
Honghai Zhangda2ba4d2016-05-23 11:53:14 -070044
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020045- (instancetype)initWithRemovedCandidates:(NSArray<RTC_OBJC_TYPE(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
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020051@property(nonatomic, readonly) RTC_OBJC_TYPE(RTCSessionDescription) * sessionDescription;
Donald E Curtisa8736442015-08-05 15:48:13 -070052
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020053- (instancetype)initWithDescription:(RTC_OBJC_TYPE(RTCSessionDescription) *)description;
Donald E Curtisa8736442015-08-05 15:48:13 -070054
55@end
56
57@interface ARDByeMessage : ARDSignalingMessage
58@end