#include "quiche/quic/core/http/quic_spdy_client_stream.h"
#include <string>
#include <utility>
#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
#include "quiche/quic/core/http/quic_spdy_client_session.h"
#include "quiche/quic/core/http/spdy_utils.h"
#include "quiche/quic/core/http/web_transport_http3.h"
#include "quiche/quic/core/quic_alarm.h"
#include "quiche/quic/platform/api/quic_flags.h"
#include "quiche/quic/platform/api/quic_logging.h"
#include "quiche/common/platform/api/quiche_flag_utils.h"
#include "quiche/common/quiche_text_utils.h"
#include "quiche/spdy/core/spdy_protocol.h"
HttpHeaderBlock;
namespace quic {
QuicSpdyClientStream::QuicSpdyClientStream(QuicStreamId id,
QuicSpdyClientSession* session,
StreamType type)
: … { … }
QuicSpdyClientStream::QuicSpdyClientStream(PendingStream* pending,
QuicSpdyClientSession* session)
: … { … }
QuicSpdyClientStream::~QuicSpdyClientStream() = default;
bool QuicSpdyClientStream::CopyAndValidateHeaders(
const QuicHeaderList& header_list, int64_t& content_length,
quiche::HttpHeaderBlock& headers) { … }
bool QuicSpdyClientStream::ParseAndValidateStatusCode() { … }
void QuicSpdyClientStream::OnInitialHeadersComplete(
bool fin, size_t frame_len, const QuicHeaderList& header_list) { … }
void QuicSpdyClientStream::OnTrailingHeadersComplete(
bool fin, size_t frame_len, const QuicHeaderList& header_list) { … }
void QuicSpdyClientStream::OnBodyAvailable() { … }
size_t QuicSpdyClientStream::SendRequest(HttpHeaderBlock headers,
absl::string_view body, bool fin) { … }
bool QuicSpdyClientStream::ValidateReceivedHeaders(
const QuicHeaderList& header_list) { … }
void QuicSpdyClientStream::OnFinRead() { … }
}