mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-13 13:50:40 +01:00
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:
parent
3e0658beec
commit
7ccd88f3e5
2 changed files with 19 additions and 27 deletions
|
@ -60,42 +60,36 @@ StreamState SocketStream::GetState() const {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
StreamResult SocketStream::Read(void* buffer,
|
StreamResult SocketStream::Read(rtc::ArrayView<uint8_t> buffer,
|
||||||
size_t buffer_len,
|
size_t& read,
|
||||||
size_t* read,
|
int& error) {
|
||||||
int* error) {
|
|
||||||
RTC_DCHECK(socket_ != nullptr);
|
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 (result < 0) {
|
||||||
if (socket_->IsBlocking())
|
if (socket_->IsBlocking())
|
||||||
return SR_BLOCK;
|
return SR_BLOCK;
|
||||||
if (error)
|
error = socket_->GetError();
|
||||||
*error = socket_->GetError();
|
|
||||||
return SR_ERROR;
|
return SR_ERROR;
|
||||||
}
|
}
|
||||||
if ((result > 0) || (buffer_len == 0)) {
|
if ((result > 0) || (buffer.size() == 0)) {
|
||||||
if (read)
|
read = result;
|
||||||
*read = result;
|
|
||||||
return SR_SUCCESS;
|
return SR_SUCCESS;
|
||||||
}
|
}
|
||||||
return SR_EOS;
|
return SR_EOS;
|
||||||
}
|
}
|
||||||
|
|
||||||
StreamResult SocketStream::Write(const void* data,
|
StreamResult SocketStream::Write(rtc::ArrayView<const uint8_t> data,
|
||||||
size_t data_len,
|
size_t& written,
|
||||||
size_t* written,
|
int& error) {
|
||||||
int* error) {
|
|
||||||
RTC_DCHECK(socket_ != nullptr);
|
RTC_DCHECK(socket_ != nullptr);
|
||||||
int result = socket_->Send(data, data_len);
|
int result = socket_->Send(data.data(), data.size());
|
||||||
if (result < 0) {
|
if (result < 0) {
|
||||||
if (socket_->IsBlocking())
|
if (socket_->IsBlocking())
|
||||||
return SR_BLOCK;
|
return SR_BLOCK;
|
||||||
if (error)
|
error = socket_->GetError();
|
||||||
*error = socket_->GetError();
|
|
||||||
return SR_ERROR;
|
return SR_ERROR;
|
||||||
}
|
}
|
||||||
if (written)
|
written = result;
|
||||||
*written = result;
|
|
||||||
return SR_SUCCESS;
|
return SR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,15 +36,13 @@ class SocketStream : public StreamInterface, public sigslot::has_slots<> {
|
||||||
|
|
||||||
StreamState GetState() const override;
|
StreamState GetState() const override;
|
||||||
|
|
||||||
StreamResult Read(void* buffer,
|
StreamResult Read(rtc::ArrayView<uint8_t> buffer,
|
||||||
size_t buffer_len,
|
size_t& read,
|
||||||
size_t* read,
|
int& error) override;
|
||||||
int* error) override;
|
|
||||||
|
|
||||||
StreamResult Write(const void* data,
|
StreamResult Write(rtc::ArrayView<const uint8_t> data,
|
||||||
size_t data_len,
|
size_t& written,
|
||||||
size_t* written,
|
int& error) override;
|
||||||
int* error) override;
|
|
||||||
|
|
||||||
void Close() override;
|
void Close() override;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue