#include "net/websockets/websocket_basic_stream_adapters.h"
#include <cstring>
#include <ostream>
#include <utility>
#include "base/check.h"
#include "base/check_op.h"
#include "base/functional/bind.h"
#include "base/functional/callback.h"
#include "base/location.h"
#include "base/logging.h"
#include "base/memory/scoped_refptr.h"
#include "base/notreached.h"
#include "base/task/single_thread_task_runner.h"
#include "net/base/io_buffer.h"
#include "net/socket/client_socket_handle.h"
#include "net/socket/stream_socket.h"
#include "net/socket/stream_socket_handle.h"
#include "net/spdy/spdy_buffer.h"
#include "net/third_party/quiche/src/quiche/quic/core/http/quic_header_list.h"
#include "net/third_party/quiche/src/quiche/quic/core/http/spdy_utils.h"
#include "net/third_party/quiche/src/quiche/quic/core/quic_ack_listener_interface.h"
#include "net/third_party/quiche/src/quiche/quic/core/quic_error_codes.h"
#include "net/websockets/websocket_quic_spdy_stream.h"
namespace net {
struct NetworkTrafficAnnotationTag;
WebSocketClientSocketHandleAdapter::WebSocketClientSocketHandleAdapter(
std::unique_ptr<StreamSocketHandle> connection)
: … { … }
WebSocketClientSocketHandleAdapter::~WebSocketClientSocketHandleAdapter() =
default;
int WebSocketClientSocketHandleAdapter::Read(IOBuffer* buf,
int buf_len,
CompletionOnceCallback callback) { … }
int WebSocketClientSocketHandleAdapter::Write(
IOBuffer* buf,
int buf_len,
CompletionOnceCallback callback,
const NetworkTrafficAnnotationTag& traffic_annotation) { … }
void WebSocketClientSocketHandleAdapter::Disconnect() { … }
bool WebSocketClientSocketHandleAdapter::is_initialized() const { … }
WebSocketSpdyStreamAdapter::WebSocketSpdyStreamAdapter(
base::WeakPtr<SpdyStream> stream,
Delegate* delegate,
NetLogWithSource net_log)
: … { … }
WebSocketSpdyStreamAdapter::~WebSocketSpdyStreamAdapter() { … }
void WebSocketSpdyStreamAdapter::DetachDelegate() { … }
int WebSocketSpdyStreamAdapter::Read(IOBuffer* buf,
int buf_len,
CompletionOnceCallback callback) { … }
int WebSocketSpdyStreamAdapter::Write(
IOBuffer* buf,
int buf_len,
CompletionOnceCallback callback,
const NetworkTrafficAnnotationTag& traffic_annotation) { … }
void WebSocketSpdyStreamAdapter::Disconnect() { … }
bool WebSocketSpdyStreamAdapter::is_initialized() const { … }
void WebSocketSpdyStreamAdapter::OnHeadersSent() { … }
void WebSocketSpdyStreamAdapter::OnEarlyHintsReceived(
const quiche::HttpHeaderBlock& headers) { … }
void WebSocketSpdyStreamAdapter::OnHeadersReceived(
const quiche::HttpHeaderBlock& response_headers) { … }
void WebSocketSpdyStreamAdapter::OnDataReceived(
std::unique_ptr<SpdyBuffer> buffer) { … }
void WebSocketSpdyStreamAdapter::OnDataSent() { … }
void WebSocketSpdyStreamAdapter::OnTrailers(
const quiche::HttpHeaderBlock& trailers) { … }
void WebSocketSpdyStreamAdapter::OnClose(int status) { … }
bool WebSocketSpdyStreamAdapter::CanGreaseFrameType() const { … }
NetLogSource WebSocketSpdyStreamAdapter::source_dependency() const { … }
int WebSocketSpdyStreamAdapter::CopySavedReadDataIntoBuffer() { … }
void WebSocketSpdyStreamAdapter::CallDelegateOnClose() { … }
WebSocketQuicStreamAdapter::WebSocketQuicStreamAdapter(
WebSocketQuicSpdyStream* websocket_quic_spdy_stream,
Delegate* delegate)
: … { … }
WebSocketQuicStreamAdapter::~WebSocketQuicStreamAdapter() { … }
size_t WebSocketQuicStreamAdapter::WriteHeaders(
quiche::HttpHeaderBlock header_block,
bool fin) { … }
int WebSocketQuicStreamAdapter::Read(IOBuffer* buf,
int buf_len,
CompletionOnceCallback callback) { … }
int WebSocketQuicStreamAdapter::Write(
IOBuffer* buf,
int buf_len,
CompletionOnceCallback callback,
const NetworkTrafficAnnotationTag& traffic_annotation) { … }
void WebSocketQuicStreamAdapter::Disconnect() { … }
bool WebSocketQuicStreamAdapter::is_initialized() const { … }
void WebSocketQuicStreamAdapter::OnInitialHeadersComplete(
bool fin,
size_t frame_len,
const quic::QuicHeaderList& quic_header_list) { … }
void WebSocketQuicStreamAdapter::OnBodyAvailable() { … }
void WebSocketQuicStreamAdapter::ClearStream() { … }
}