Convert StreamInterfaceChannel to new API

Bug: webrtc:14632
Change-Id: I5c78fe6903680c65efde5d09a8988b97256a22ad
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/283526
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38642}
This commit is contained in:
Harald Alvestrand
2022-11-15 17:36:53 +00:00
committed by WebRTC LUCI CQ
parent 7ccd88f3e5
commit e844aad41a
2 changed files with 17 additions and 22 deletions

View File

@ -72,10 +72,9 @@ StreamInterfaceChannel::StreamInterfaceChannel(
state_(rtc::SS_OPEN),
packets_(kMaxPendingPackets, kMaxDtlsPacketLen) {}
rtc::StreamResult StreamInterfaceChannel::Read(void* buffer,
size_t buffer_len,
size_t* read,
int* error) {
rtc::StreamResult StreamInterfaceChannel::Read(rtc::ArrayView<uint8_t> buffer,
size_t& read,
int& error) {
RTC_DCHECK_RUN_ON(&sequence_checker_);
if (state_ == rtc::SS_CLOSED)
@ -83,27 +82,25 @@ rtc::StreamResult StreamInterfaceChannel::Read(void* buffer,
if (state_ == rtc::SS_OPENING)
return rtc::SR_BLOCK;
if (!packets_.ReadFront(buffer, buffer_len, read)) {
if (!packets_.ReadFront(buffer.data(), buffer.size(), &read)) {
return rtc::SR_BLOCK;
}
return rtc::SR_SUCCESS;
}
rtc::StreamResult StreamInterfaceChannel::Write(const void* data,
size_t data_len,
size_t* written,
int* error) {
rtc::StreamResult StreamInterfaceChannel::Write(
rtc::ArrayView<const uint8_t> data,
size_t& written,
int& error) {
RTC_DCHECK_RUN_ON(&sequence_checker_);
// Always succeeds, since this is an unreliable transport anyway.
// TODO(zhihuang): Should this block if ice_transport_'s temporarily
// unwritable?
rtc::PacketOptions packet_options;
ice_transport_->SendPacket(static_cast<const char*>(data), data_len,
packet_options);
if (written) {
*written = data_len;
}
ice_transport_->SendPacket(reinterpret_cast<const char*>(data.data()),
data.size(), packet_options);
written = data.size();
return rtc::SR_SUCCESS;
}

View File

@ -49,14 +49,12 @@ class StreamInterfaceChannel : public rtc::StreamInterface {
// Implementations of StreamInterface
rtc::StreamState GetState() const override;
void Close() override;
rtc::StreamResult Read(void* buffer,
size_t buffer_len,
size_t* read,
int* error) override;
rtc::StreamResult Write(const void* data,
size_t data_len,
size_t* written,
int* error) override;
rtc::StreamResult Read(rtc::ArrayView<uint8_t> buffer,
size_t& read,
int& error) override;
rtc::StreamResult Write(rtc::ArrayView<const uint8_t> data,
size_t& written,
int& error) override;
private:
RTC_NO_UNIQUE_ADDRESS webrtc::SequenceChecker sequence_checker_;