blob: 8a9479d5cf3927d57e43529b8788a48d9310fbcc [file] [log] [blame]
Anders Carlsson7bca8ca2018-08-30 09:30:29 +02001/*
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
13#import "RTCMacros.h"
14
15/**
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,
Philipp Hancke5152ea52020-09-09 14:58:32 +020023 RTCSdpTypeRollback,
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020024};
25
26NS_ASSUME_NONNULL_BEGIN
27
Mirko Bonadeie8d57242018-09-17 10:22:56 +020028RTC_OBJC_EXPORT
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020029@interface RTC_OBJC_TYPE (RTCSessionDescription) : NSObject
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020030
31/** The type of session description. */
32@property(nonatomic, readonly) RTCSdpType type;
33
34/** The SDP string representation of this session description. */
35@property(nonatomic, readonly) NSString *sdp;
36
37- (instancetype)init NS_UNAVAILABLE;
38
39/** Initialize a session description with a type and SDP string. */
40- (instancetype)initWithType:(RTCSdpType)type sdp:(NSString *)sdp NS_DESIGNATED_INITIALIZER;
41
42+ (NSString *)stringForType:(RTCSdpType)type;
43
44+ (RTCSdpType)typeForString:(NSString *)string;
45
46@end
47
48NS_ASSUME_NONNULL_END