blob: 7db53da8bea8421c97de691da6c527922245c510 [file] [log] [blame]
Jon Hjelle67e83d62016-01-06 12:05:22 -08001/*
2 * Copyright 2015 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
tkchin9eeb6242016-04-27 01:54:20 -070013#import <WebRTC/RTCMacros.h>
tkchin8b577ed2016-04-19 10:04:41 -070014
Jon Hjelle67e83d62016-01-06 12:05:22 -080015/**
16 * Represents the session description type. This exposes the same types that are
17 * in C++, which doesn't include the rollback type that is in the W3C spec.
18 */
19typedef NS_ENUM(NSInteger, RTCSdpType) {
20 RTCSdpTypeOffer,
21 RTCSdpTypePrAnswer,
22 RTCSdpTypeAnswer,
23};
24
25NS_ASSUME_NONNULL_BEGIN
26
tkchin8b577ed2016-04-19 10:04:41 -070027RTC_EXPORT
Jon Hjelle67e83d62016-01-06 12:05:22 -080028@interface RTCSessionDescription : NSObject
29
30/** The type of session description. */
31@property(nonatomic, readonly) RTCSdpType type;
32
33/** The SDP string representation of this session description. */
34@property(nonatomic, readonly) NSString *sdp;
35
36- (instancetype)init NS_UNAVAILABLE;
37
38/** Initialize a session description with a type and SDP string. */
Yves Gerey665174f2018-06-19 15:03:05 +020039- (instancetype)initWithType:(RTCSdpType)type sdp:(NSString *)sdp NS_DESIGNATED_INITIALIZER;
Jon Hjelle67e83d62016-01-06 12:05:22 -080040
hjona2f77982016-03-04 07:09:09 -080041+ (NSString *)stringForType:(RTCSdpType)type;
42
43+ (RTCSdpType)typeForString:(NSString *)string;
44
Jon Hjelle67e83d62016-01-06 12:05:22 -080045@end
46
47NS_ASSUME_NONNULL_END