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 <hta@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38641}
This commit is contained in:
Harald Alvestrand 2022-11-16 08:59:58 +00:00 committed by WebRTC LUCI CQ
parent 3e0658beec
commit 7ccd88f3e5
2 changed files with 19 additions and 27 deletions

View file

@ -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<uint8_t> 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<const uint8_t> 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;
}

View file

@ -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<uint8_t> 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<const uint8_t> data,
size_t& written,
int& error) override;
void Close() override;