23 class HPACKDecodeBuffer;
35 using Buf = std::unique_ptr<folly::IOBuf>;
46 const std::vector<HPACKHeader>& headers,
51 std::unique_ptr<folly::IOBuf> buf);
119 bool vulnerable{
false};
122 std::unordered_map<uint64_t, std::list<OutstandingBlock>>
outstanding_;
const uint32_t kTableSize
std::vector< uint8_t > buffer(kBufferSize+16)
std::set< uint32_t > BlockReferences
void encodeInsertQ(const HPACKHeader &header, bool isStaticName, uint32_t nameIndex)
void encodeControl(const HPACKHeader &header)
std::pair< bool, uint32_t > maybeDuplicate(uint32_t relativeIndex)
void setMaxVulnerable(uint32_t maxVulnerable)
HPACKEncodeBuffer controlBuffer_
bool shouldIndex(const HPACKHeader &header) const
constexpr detail::Map< Move > move
void encodeLiteralQHelper(HPACKEncodeBuffer &buffer, const HPACKHeader &header, bool isStaticName, uint32_t nameIndex, uint8_t staticFlag, const HPACK::Instruction &idxInstr, const HPACK::Instruction &litInstr)
HPACK::DecodeError onHeaderAck(uint64_t streamId, bool all)
void encodeDuplicate(uint32_t index)
void encodeStreamLiteralQ(const HPACKHeader &header, bool isStaticName, uint32_t nameIndex, uint32_t absoluteNameIndex, uint32_t baseIndex, uint32_t *largestReference)
OutstandingBlock * curOutstanding_
BlockReferences references
HPACK::DecodeError decodeDecoderStream(std::unique_ptr< folly::IOBuf > buf)
void setHeaderTableSize(uint32_t size)
EncodeResult encode(const std::vector< HPACKHeader > &headers, uint32_t headroom, uint64_t streamId)
void trackReference(uint32_t index, uint32_t *largestReference)
QPACKEncoder(bool huffman, uint32_t tableSize=HPACK::kTableSize)
constexpr auto size(C const &c) -> decltype(c.size())
void encodeHeaderQ(const HPACKHeader &header, uint32_t baseIndex, uint32_t *largestReference)
static Options cacheChainLength()
bool allowVulnerable() const
EncodeResult(Buf c, Buf s)
void encodeLiteralQ(const HPACKHeader &header, bool isStaticName, bool postBase, uint32_t nameIndex, const HPACK::Instruction &idxInstr)
void setHeaderTableSize(HeaderTable &table, uint32_t size)
HPACK::DecodeError decodeHeaderAck(HPACKDecodeBuffer &dbuf, uint8_t prefixLength, bool all)
folly::IOBufQueue decoderIngress_
HPACK::DecodeError onTableStateSync(uint32_t inserts)
std::unordered_map< uint64_t, std::list< OutstandingBlock > > outstanding_
std::unique_ptr< folly::IOBuf > Buf
std::tuple< bool, uint32_t, uint32_t > getNameIndexQ(const HPACKHeaderName &headerName)
const uint32_t kDefaultBlocking
QPACKEncoder::EncodeResult encodeQ(const std::vector< HPACKHeader > &headers, uint64_t streamId)
Composed all(Predicate pred=Predicate())