/* * Copyright 2015 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #import "RTCPeerConnection+Private.h" #import "RTCDataChannel+Private.h" #import "RTCDataChannelConfiguration+Private.h" #import "helpers/NSString+StdString.h" @implementation RTC_OBJC_TYPE (RTCPeerConnection) (DataChannel) - (nullable RTC_OBJC_TYPE(RTCDataChannel) *)dataChannelForLabel : (NSString *)label configuration : (RTC_OBJC_TYPE(RTCDataChannelConfiguration) *)configuration { std::string labelString = [NSString stdStringForString:label]; const webrtc::DataChannelInit nativeInit = configuration.nativeDataChannelInit; auto result = self.nativePeerConnection->CreateDataChannelOrError(labelString, &nativeInit); if (!result.ok()) { return nil; } return [[RTC_OBJC_TYPE(RTCDataChannel) alloc] initWithFactory:self.factory nativeDataChannel:result.MoveValue()]; } @end