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;