mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-12 21:30:45 +01:00
Add aliases for StreamInterface::Read/Write using ArrayView
A few usages in ssl_stream_adapter_unittests are converted to make sure the aliases are usable. Next steps are: - Change all usages inside WebRTC to the new form - Deprecate the old API - Remove the old API Pipewire failures believed to be unrelated, so No-try. No-try: true Bug: webrtc:14632 Change-Id: I618551e61a05d53e524e97483d3c7cef59b88a25 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/282221 Reviewed-by: Tomas Gunnarsson <tommi@google.com> Commit-Queue: Harald Alvestrand <hta@webrtc.org> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/main@{#38577}
This commit is contained in:
parent
13c0be44b3
commit
1f609c8582
2 changed files with 23 additions and 5 deletions
|
@ -583,10 +583,11 @@ class SSLStreamAdapterTestBase : public ::testing::Test,
|
|||
// SS_OPENING and writes should return SR_BLOCK.
|
||||
EXPECT_EQ(rtc::SS_OPENING, client_ssl_->GetState());
|
||||
EXPECT_EQ(rtc::SS_OPENING, server_ssl_->GetState());
|
||||
unsigned char packet[1];
|
||||
uint8_t packet[1];
|
||||
size_t sent;
|
||||
EXPECT_EQ(rtc::SR_BLOCK, client_ssl_->Write(&packet, 1, &sent, 0));
|
||||
EXPECT_EQ(rtc::SR_BLOCK, server_ssl_->Write(&packet, 1, &sent, 0));
|
||||
int error;
|
||||
EXPECT_EQ(rtc::SR_BLOCK, client_ssl_->Write(packet, sent, error));
|
||||
EXPECT_EQ(rtc::SR_BLOCK, server_ssl_->Write(packet, sent, error));
|
||||
|
||||
// Collect both of the certificate digests; needs to be done before calling
|
||||
// SetPeerCertificateDigest as that may reset the identity.
|
||||
|
@ -625,8 +626,10 @@ class SSLStreamAdapterTestBase : public ::testing::Test,
|
|||
EXPECT_EQ(rtc::SS_OPEN, client_ssl_->GetState());
|
||||
// If the client sends a packet while the server still hasn't verified the
|
||||
// client identity, the server should continue to return SR_BLOCK.
|
||||
EXPECT_EQ(rtc::SR_SUCCESS, client_ssl_->Write(&packet, 1, &sent, 0));
|
||||
EXPECT_EQ(rtc::SR_BLOCK, server_ssl_->Read(&packet, 1, 0, 0));
|
||||
int error;
|
||||
EXPECT_EQ(rtc::SR_SUCCESS, client_ssl_->Write(packet, sent, error));
|
||||
size_t read;
|
||||
EXPECT_EQ(rtc::SR_BLOCK, server_ssl_->Read(packet, read, error));
|
||||
} else {
|
||||
EXPECT_EQ(rtc::SS_CLOSED, client_ssl_->GetState());
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
|
||||
#include <memory>
|
||||
|
||||
#include "api/array_view.h"
|
||||
#include "rtc_base/buffer.h"
|
||||
#include "rtc_base/system/rtc_export.h"
|
||||
#include "rtc_base/third_party/sigslot/sigslot.h"
|
||||
|
@ -72,10 +73,20 @@ class RTC_EXPORT StreamInterface {
|
|||
size_t buffer_len,
|
||||
size_t* read,
|
||||
int* error) = 0;
|
||||
virtual StreamResult Read(rtc::ArrayView<uint8_t> buffer,
|
||||
size_t& read,
|
||||
int& error) {
|
||||
return Read(buffer.data(), buffer.size(), &read, &error);
|
||||
}
|
||||
virtual StreamResult Write(const void* data,
|
||||
size_t data_len,
|
||||
size_t* written,
|
||||
int* error) = 0;
|
||||
virtual StreamResult Write(rtc::ArrayView<const uint8_t> data,
|
||||
size_t& written,
|
||||
int& error) {
|
||||
return Write(data.data(), data.size(), &written, &error);
|
||||
}
|
||||
// Attempt to transition to the SS_CLOSED state. SE_CLOSE will not be
|
||||
// signalled as a result of this call.
|
||||
virtual void Close() = 0;
|
||||
|
@ -109,6 +120,10 @@ class RTC_EXPORT StreamInterface {
|
|||
size_t* written,
|
||||
int* error);
|
||||
|
||||
StreamResult WriteAll(ArrayView<uint8_t> data, size_t& written, int& error) {
|
||||
return WriteAll(data.data(), data.size(), &written, &error);
|
||||
}
|
||||
|
||||
protected:
|
||||
StreamInterface();
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue