proxygen
|
#include <QPACKScheme.h>
Classes | |
struct | QPACKAck |
Public Member Functions | |
QPACKScheme (CompressionSimulator *sim, uint32_t tableSize, uint32_t maxBlocking) | |
~QPACKScheme () | |
std::unique_ptr< Ack > | getAck (uint16_t seqn) override |
void | recvAck (std::unique_ptr< Ack > ack) override |
std::pair< FrameFlags, std::unique_ptr< folly::IOBuf > > | encode (bool, std::vector< compress::Header > allHeaders, SimStats &stats) override |
void | decode (FrameFlags flags, std::unique_ptr< folly::IOBuf > encodedReq, SimStats &stats, SimStreamingCallback &callback) override |
uint32_t | getHolBlockCount () const override |
Public Member Functions inherited from proxygen::compress::CompressionScheme | |
CompressionScheme (CompressionSimulator *sim) | |
virtual | ~CompressionScheme () |
void | runLoopCallback () noexceptoverride |
Public Member Functions inherited from folly::EventBase::LoopCallback | |
virtual | ~LoopCallback ()=default |
void | cancelLoopCallback () |
bool | isLoopCallbackScheduled () const |
Public Attributes | |
QPACKCodec | client_ |
QPACKCodec | server_ |
std::map< uint16_t, std::unique_ptr< folly::IOBuf > > | controlQueue_ |
uint16_t | encodeControlIndex_ {0} |
uint16_t | decodeControlIndex_ {0} |
std::map< uint16_t, std::unique_ptr< folly::IOBuf > > | acks_ |
uint16_t | sendAck_ {1} |
uint16_t | recvAck_ {1} |
Public Attributes inherited from proxygen::compress::CompressionScheme | |
std::list< BlockInfo > | encodedBlocks |
std::list< BlockInfo > | packetBlocks |
size_t | index {0} |
std::chrono::milliseconds | prev |
size_t | packetBytes {0} |
std::chrono::milliseconds | decodeDelay |
std::list< uint16_t > | packetIndices |
Additional Inherited Members | |
Public Types inherited from proxygen::compress::CompressionScheme | |
using | BlockInfo = std::tuple< FrameFlags, bool, std::unique_ptr< folly::IOBuf >, SimStreamingCallback * > |
Definition at line 18 of file QPACKScheme.h.
|
inlineexplicit |
Definition at line 20 of file QPACKScheme.h.
References client_, proxygen::NoPathIndexingStrategy::getInstance(), server_, proxygen::QPACKCodec::setDecoderHeaderTableMaxSize(), proxygen::QPACKCodec::setEncoderHeaderTableSize(), proxygen::QPACKCodec::setHeaderIndexingStrategy(), proxygen::QPACKCodec::setMaxBlocking(), and proxygen::QPACKCodec::setMaxVulnerable().
|
inline |
Definition at line 31 of file QPACKScheme.h.
References proxygen::QPACKCodec::getQueuedBytes(), and server_.
|
inlineoverridevirtual |
Implements proxygen::compress::CompressionScheme.
Definition at line 115 of file QPACKScheme.h.
References proxygen::compress::FrameFlags::allowOOO, folly::IOBufQueue::append(), controlQueue_, decodeControlIndex_, proxygen::QPACKCodec::decodeEncoderStream(), proxygen::QPACKCodec::decodeStreaming(), proxygen::QPACKCodec::getQueuedBytes(), proxygen::compress::SimStats::maxQueueBufferBytes, proxygen::compress::SimStreamingCallback::maybeMarkHolDelay(), folly::gen::move, folly::io::detail::CursorBase< Derived, BufType >::readBE(), proxygen::compress::SimStreamingCallback::requestIndex, proxygen::compress::QPACKScheme::QPACKAck::seqn, proxygen::compress::SimStreamingCallback::seqn, server_, uint16_t, and uint32_t.
|
inlineoverridevirtual |
Implements proxygen::compress::CompressionScheme.
Definition at line 81 of file QPACKScheme.h.
References client_, wangle::HTTPHeaderSize::compressed, proxygen::compress::SimStats::compressed, proxygen::QPACKCodec::encode(), encodeControlIndex_, proxygen::HeaderCodec::getEncodedSize(), proxygen::compress::CompressionScheme::index, folly::io::QueueAppender::insert(), folly::IOBufQueue::move(), folly::gen::move, uint16_t, uint32_t, proxygen::compress::SimStats::uncompressed, wangle::HTTPHeaderSize::uncompressed, and folly::io::detail::Writable< Derived >::writeBE().
Implements proxygen::compress::CompressionScheme.
Definition at line 51 of file QPACKScheme.h.
References proxygen::QPACKCodec::encodeHeaderAck(), proxygen::QPACKCodec::encodeTableStateSync(), folly::gen::move, sendAck_, proxygen::compress::QPACKScheme::QPACKAck::seqn, and server_.
|
inlineoverridevirtual |
Implements proxygen::compress::CompressionScheme.
Definition at line 164 of file QPACKScheme.h.
References proxygen::QPACKCodec::getHolBlockCount(), and server_.
|
inlineoverridevirtual |
Implements proxygen::compress::CompressionScheme.
Definition at line 58 of file QPACKScheme.h.
References acks_, client_, proxygen::QPACKCodec::decodeDecoderStream(), folly::gen::move, proxygen::HPACK::NONE, and recvAck_.
std::map<uint16_t, std::unique_ptr<folly::IOBuf> > proxygen::compress::QPACKScheme::acks_ |
Definition at line 173 of file QPACKScheme.h.
Referenced by recvAck().
QPACKCodec proxygen::compress::QPACKScheme::client_ |
Definition at line 168 of file QPACKScheme.h.
Referenced by encode(), QPACKScheme(), and recvAck().
std::map<uint16_t, std::unique_ptr<folly::IOBuf> > proxygen::compress::QPACKScheme::controlQueue_ |
Definition at line 170 of file QPACKScheme.h.
Referenced by decode().
uint16_t proxygen::compress::QPACKScheme::decodeControlIndex_ {0} |
Definition at line 172 of file QPACKScheme.h.
Referenced by decode().
uint16_t proxygen::compress::QPACKScheme::encodeControlIndex_ {0} |
Definition at line 171 of file QPACKScheme.h.
Referenced by encode().
uint16_t proxygen::compress::QPACKScheme::recvAck_ {1} |
Definition at line 175 of file QPACKScheme.h.
Referenced by recvAck().
uint16_t proxygen::compress::QPACKScheme::sendAck_ {1} |
Definition at line 174 of file QPACKScheme.h.
Referenced by getAck().
QPACKCodec proxygen::compress::QPACKScheme::server_ |
Definition at line 169 of file QPACKScheme.h.
Referenced by decode(), getAck(), getHolBlockCount(), QPACKScheme(), and ~QPACKScheme().