blob: b9bcab1a46d2ebcbd866b1ec56fd20db1ba2b1fb [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,
23};
24
25NS_ASSUME_NONNULL_BEGIN
26
Mirko Bonadeie8d57242018-09-17 10:22:56 +020027RTC_OBJC_EXPORT
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020028@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. */
39- (instancetype)initWithType:(RTCSdpType)type sdp:(NSString *)sdp NS_DESIGNATED_INITIALIZER;
40
41+ (NSString *)stringForType:(RTCSdpType)type;
42
43+ (RTCSdpType)typeForString:(NSString *)string;
44
45@end
46
47NS_ASSUME_NONNULL_END