webrtc/sdk/objc/api/peerconnection/RTCDataChannelConfiguration.mm
Harald Alvestrand f3736ed3d8 Datachannel: Use absl::optional for maxRetransmits and maxRetransmitTime.
These parameters are nullable in the JS API.
This allows cleaner handling of "unset" vs "set" in Chrome.

Backwards compatibility note: Behavior should not change, even for users
who set the values explicitly to -1 in the DataChannelInit struct.
Those who try to read back the value will get a compile-time error.

Bug: chromium:854385
Change-Id: Ib488ca5f70bc24ba8b4a3f71b506434c4d2c60b2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131381
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27507}
2019-04-09 08:32:43 +00:00

87 lines
2 KiB
Text

/*
* 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 "RTCDataChannelConfiguration+Private.h"
#import "helpers/NSString+StdString.h"
@implementation RTCDataChannelConfiguration
@synthesize nativeDataChannelInit = _nativeDataChannelInit;
- (BOOL)isOrdered {
return _nativeDataChannelInit.ordered;
}
- (void)setIsOrdered:(BOOL)isOrdered {
_nativeDataChannelInit.ordered = isOrdered;
}
- (NSInteger)maxRetransmitTimeMs {
return self.maxPacketLifeTime;
}
- (void)setMaxRetransmitTimeMs:(NSInteger)maxRetransmitTimeMs {
self.maxPacketLifeTime = maxRetransmitTimeMs;
}
- (int)maxPacketLifeTime {
return *_nativeDataChannelInit.maxRetransmitTime;
}
- (void)setMaxPacketLifeTime:(int)maxPacketLifeTime {
_nativeDataChannelInit.maxRetransmitTime = maxPacketLifeTime;
}
- (int)maxRetransmits {
if (_nativeDataChannelInit.maxRetransmits) {
return *_nativeDataChannelInit.maxRetransmits;
} else {
return -1;
}
}
- (void)setMaxRetransmits:(int)maxRetransmits {
_nativeDataChannelInit.maxRetransmits = maxRetransmits;
}
- (NSString *)protocol {
return [NSString stringForStdString:_nativeDataChannelInit.protocol];
}
- (void)setProtocol:(NSString *)protocol {
_nativeDataChannelInit.protocol = [NSString stdStringForString:protocol];
}
- (BOOL)isNegotiated {
return _nativeDataChannelInit.negotiated;
}
- (void)setIsNegotiated:(BOOL)isNegotiated {
_nativeDataChannelInit.negotiated = isNegotiated;
}
- (int)streamId {
return self.channelId;
}
- (void)setStreamId:(int)streamId {
self.channelId = streamId;
}
- (int)channelId {
return _nativeDataChannelInit.id;
}
- (void)setChannelId:(int)channelId {
_nativeDataChannelInit.id = channelId;
}
@end