#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "net/spdy/spdy_write_queue.h"
#include <cstddef>
#include <utility>
#include <vector>
#include "base/check_op.h"
#include "base/containers/circular_deque.h"
#include "base/trace_event/memory_usage_estimator.h"
#include "net/spdy/spdy_buffer.h"
#include "net/spdy/spdy_buffer_producer.h"
#include "net/spdy/spdy_stream.h"
namespace net {
bool IsSpdyFrameTypeWriteCapped(spdy::SpdyFrameType frame_type) { … }
SpdyWriteQueue::PendingWrite::PendingWrite() = default;
SpdyWriteQueue::PendingWrite::PendingWrite(
spdy::SpdyFrameType frame_type,
std::unique_ptr<SpdyBufferProducer> frame_producer,
const base::WeakPtr<SpdyStream>& stream,
const MutableNetworkTrafficAnnotationTag& traffic_annotation)
: … { … }
SpdyWriteQueue::PendingWrite::~PendingWrite() = default;
SpdyWriteQueue::PendingWrite::PendingWrite(PendingWrite&& other) = default;
SpdyWriteQueue::PendingWrite& SpdyWriteQueue::PendingWrite::operator=(
PendingWrite&& other) = default;
SpdyWriteQueue::SpdyWriteQueue() = default;
SpdyWriteQueue::~SpdyWriteQueue() { … }
bool SpdyWriteQueue::IsEmpty() const { … }
void SpdyWriteQueue::Enqueue(
RequestPriority priority,
spdy::SpdyFrameType frame_type,
std::unique_ptr<SpdyBufferProducer> frame_producer,
const base::WeakPtr<SpdyStream>& stream,
const NetworkTrafficAnnotationTag& traffic_annotation) { … }
bool SpdyWriteQueue::Dequeue(
spdy::SpdyFrameType* frame_type,
std::unique_ptr<SpdyBufferProducer>* frame_producer,
base::WeakPtr<SpdyStream>* stream,
MutableNetworkTrafficAnnotationTag* traffic_annotation) { … }
void SpdyWriteQueue::RemovePendingWritesForStream(SpdyStream* stream) { … }
void SpdyWriteQueue::RemovePendingWritesForStreamsAfter(
spdy::SpdyStreamId last_good_stream_id) { … }
void SpdyWriteQueue::ChangePriorityOfWritesForStream(
SpdyStream* stream,
RequestPriority old_priority,
RequestPriority new_priority) { … }
void SpdyWriteQueue::Clear() { … }
}