Refactor QpackEncoder::EncodeHeaderList().

FirstPassEncode() currently is only 42 lines long, but soon it is going to grow
to about 200 lines.  It is beneficial to break EncodeHeaderList() into two
pieces, not only because it would otherwise be getting too long, but also to
better highlight what information is the product of the first pass and what gets
passed into the second pass.

Also change from list<InstructionWithValues> to vector<InstructionWithValues>, because reserve() can be called with the final size at construction time, making vector more efficient.

Also add TODO to send dynamic table capacity update.

gfe-relnote: n/a, change to QUIC v99-only code.  Protected by existing disabled gfe2_reloadable_flag_quic_enable_version_99.
PiperOrigin-RevId: 262659191
Change-Id: I61a5fbcd6816238a8436d49fc85b2d7dae5089c6
2 files changed
tree: f717c96db81c901ea7cab6d3f37163cb9cfd59e0
  1. common/
  2. epoll_server/
  3. http2/
  4. quic/
  5. spdy/
  6. CONTRIBUTING.md
  7. LICENSE
  8. README.md
README.md

QUICHE

QUICHE (QUIC, Http/2, Etc) is Google‘s implementation of QUIC and related protocols. It powers Chromium as well as Google’s QUIC servers and some other projects.

The code is currently in process of being moved from https://cs.chromium.org/chromium/src/net/third_party/ into this repository. Please excuse our appearance while we're under construction.