#include "quiche/quic/core/quic_stream_sequencer.h"
#include <algorithm>
#include <cstddef>
#include <limits>
#include <string>
#include <utility>
#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
#include "quiche/quic/core/quic_clock.h"
#include "quiche/quic/core/quic_error_codes.h"
#include "quiche/quic/core/quic_packets.h"
#include "quiche/quic/core/quic_stream.h"
#include "quiche/quic/core/quic_stream_sequencer_buffer.h"
#include "quiche/quic/core/quic_types.h"
#include "quiche/quic/core/quic_utils.h"
#include "quiche/quic/platform/api/quic_bug_tracker.h"
#include "quiche/quic/platform/api/quic_flag_utils.h"
#include "quiche/quic/platform/api/quic_flags.h"
#include "quiche/quic/platform/api/quic_logging.h"
#include "quiche/quic/platform/api/quic_stack_trace.h"
namespace quic {
QuicStreamSequencer::QuicStreamSequencer(StreamInterface* quic_stream)
: … { … }
QuicStreamSequencer::~QuicStreamSequencer() { … }
void QuicStreamSequencer::OnStreamFrame(const QuicStreamFrame& frame) { … }
void QuicStreamSequencer::OnCryptoFrame(const QuicCryptoFrame& frame) { … }
void QuicStreamSequencer::OnFrameData(QuicStreamOffset byte_offset,
size_t data_len,
const char* data_buffer) { … }
bool QuicStreamSequencer::CloseStreamAtOffset(QuicStreamOffset offset) { … }
void QuicStreamSequencer::MaybeCloseStream() { … }
int QuicStreamSequencer::GetReadableRegions(iovec* iov, size_t iov_len) const { … }
bool QuicStreamSequencer::GetReadableRegion(iovec* iov) const { … }
bool QuicStreamSequencer::PeekRegion(QuicStreamOffset offset,
iovec* iov) const { … }
void QuicStreamSequencer::Read(std::string* buffer) { … }
size_t QuicStreamSequencer::Readv(const struct iovec* iov, size_t iov_len) { … }
bool QuicStreamSequencer::HasBytesToRead() const { … }
size_t QuicStreamSequencer::ReadableBytes() const { … }
bool QuicStreamSequencer::IsClosed() const { … }
void QuicStreamSequencer::MarkConsumed(size_t num_bytes_consumed) { … }
void QuicStreamSequencer::SetBlockedUntilFlush() { … }
void QuicStreamSequencer::SetUnblocked() { … }
void QuicStreamSequencer::StopReading() { … }
void QuicStreamSequencer::ReleaseBuffer() { … }
void QuicStreamSequencer::ReleaseBufferIfEmpty() { … }
void QuicStreamSequencer::FlushBufferedFrames() { … }
size_t QuicStreamSequencer::NumBytesBuffered() const { … }
QuicStreamOffset QuicStreamSequencer::NumBytesConsumed() const { … }
bool QuicStreamSequencer::IsAllDataAvailable() const { … }
std::string QuicStreamSequencer::DebugString() const { … }
}