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

View File

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