From 7ccd88f3e5b8527f30b6495709df8fe28c580521 Mon Sep 17 00:00:00 2001 From: Harald Alvestrand Date: Wed, 16 Nov 2022 08:59:58 +0000 Subject: [PATCH] Convert SocketStream to use new StreamInterface API Bug: webrtc:14632 Change-Id: I09a6799a9b70f073dde5b7074e4431570c8c9c67 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/283543 Commit-Queue: Harald Alvestrand Reviewed-by: Tomas Gunnarsson Cr-Commit-Position: refs/heads/main@{#38641} --- rtc_base/socket_stream.cc | 32 +++++++++++++------------------- rtc_base/socket_stream.h | 14 ++++++-------- 2 files changed, 19 insertions(+), 27 deletions(-) diff --git a/rtc_base/socket_stream.cc b/rtc_base/socket_stream.cc index a526f0c0c8..5c993ea233 100644 --- a/rtc_base/socket_stream.cc +++ b/rtc_base/socket_stream.cc @@ -60,42 +60,36 @@ StreamState SocketStream::GetState() const { } } -StreamResult SocketStream::Read(void* buffer, - size_t buffer_len, - size_t* read, - int* error) { +StreamResult SocketStream::Read(rtc::ArrayView buffer, + size_t& read, + int& error) { RTC_DCHECK(socket_ != nullptr); - int result = socket_->Recv(buffer, buffer_len, nullptr); + int result = socket_->Recv(buffer.data(), buffer.size(), nullptr); if (result < 0) { if (socket_->IsBlocking()) return SR_BLOCK; - if (error) - *error = socket_->GetError(); + error = socket_->GetError(); return SR_ERROR; } - if ((result > 0) || (buffer_len == 0)) { - if (read) - *read = result; + if ((result > 0) || (buffer.size() == 0)) { + read = result; return SR_SUCCESS; } return SR_EOS; } -StreamResult SocketStream::Write(const void* data, - size_t data_len, - size_t* written, - int* error) { +StreamResult SocketStream::Write(rtc::ArrayView data, + size_t& written, + int& error) { RTC_DCHECK(socket_ != nullptr); - int result = socket_->Send(data, data_len); + int result = socket_->Send(data.data(), data.size()); if (result < 0) { if (socket_->IsBlocking()) return SR_BLOCK; - if (error) - *error = socket_->GetError(); + error = socket_->GetError(); return SR_ERROR; } - if (written) - *written = result; + written = result; return SR_SUCCESS; } diff --git a/rtc_base/socket_stream.h b/rtc_base/socket_stream.h index f678f805d7..492cc42e96 100644 --- a/rtc_base/socket_stream.h +++ b/rtc_base/socket_stream.h @@ -36,15 +36,13 @@ class SocketStream : public StreamInterface, public sigslot::has_slots<> { StreamState GetState() const override; - StreamResult Read(void* buffer, - size_t buffer_len, - size_t* read, - int* error) override; + StreamResult Read(rtc::ArrayView buffer, + size_t& read, + int& error) override; - StreamResult Write(const void* data, - size_t data_len, - size_t* written, - int* error) override; + StreamResult Write(rtc::ArrayView data, + size_t& written, + int& error) override; void Close() override;