#include "net/quic/bidirectional_stream_quic_impl.h"
#include <utility>
#include "base/functional/bind.h"
#include "base/location.h"
#include "base/logging.h"
#include "base/memory/raw_ptr.h"
#include "base/task/single_thread_task_runner.h"
#include "base/timer/timer.h"
#include "net/http/bidirectional_stream_request_info.h"
#include "net/http/http_util.h"
#include "net/socket/next_proto.h"
#include "net/spdy/spdy_http_utils.h"
#include "net/third_party/quiche/src/quiche/quic/core/quic_connection.h"
#include "quic_http_stream.h"
namespace net {
namespace {
class ScopedBoolSaver { … };
}
BidirectionalStreamQuicImpl::BidirectionalStreamQuicImpl(
std::unique_ptr<QuicChromiumClientSession::Handle> session)
: … { … }
BidirectionalStreamQuicImpl::~BidirectionalStreamQuicImpl() { … }
void BidirectionalStreamQuicImpl::Start(
const BidirectionalStreamRequestInfo* request_info,
const NetLogWithSource& net_log,
bool send_request_headers_automatically,
BidirectionalStreamImpl::Delegate* delegate,
std::unique_ptr<base::OneShotTimer> timer,
const NetworkTrafficAnnotationTag& traffic_annotation) { … }
void BidirectionalStreamQuicImpl::SendRequestHeaders() { … }
int BidirectionalStreamQuicImpl::WriteHeaders() { … }
int BidirectionalStreamQuicImpl::ReadData(IOBuffer* buffer, int buffer_len) { … }
void BidirectionalStreamQuicImpl::SendvData(
const std::vector<scoped_refptr<IOBuffer>>& buffers,
const std::vector<int>& lengths,
bool end_stream) { … }
NextProto BidirectionalStreamQuicImpl::GetProtocol() const { … }
int64_t BidirectionalStreamQuicImpl::GetTotalReceivedBytes() const { … }
int64_t BidirectionalStreamQuicImpl::GetTotalSentBytes() const { … }
bool BidirectionalStreamQuicImpl::GetLoadTimingInfo(
LoadTimingInfo* load_timing_info) const { … }
void BidirectionalStreamQuicImpl::PopulateNetErrorDetails(
NetErrorDetails* details) { … }
void BidirectionalStreamQuicImpl::OnStreamReady(int rv) { … }
void BidirectionalStreamQuicImpl::OnSendDataComplete(int rv) { … }
void BidirectionalStreamQuicImpl::OnReadInitialHeadersComplete(int rv) { … }
void BidirectionalStreamQuicImpl::ReadInitialHeaders() { … }
void BidirectionalStreamQuicImpl::ReadTrailingHeaders() { … }
void BidirectionalStreamQuicImpl::OnReadTrailingHeadersComplete(int rv) { … }
void BidirectionalStreamQuicImpl::OnReadDataComplete(int rv) { … }
void BidirectionalStreamQuicImpl::NotifyError(int error) { … }
void BidirectionalStreamQuicImpl::NotifyErrorImpl(int error,
bool notify_delegate_later) { … }
void BidirectionalStreamQuicImpl::NotifyFailure(
BidirectionalStreamImpl::Delegate* delegate,
int error) { … }
void BidirectionalStreamQuicImpl::NotifyStreamReady() { … }
void BidirectionalStreamQuicImpl::ResetStream() { … }
}