Change SendOrQueueMessage to take a QuicMemSliceSpan. QuicMemSliceSpan now has a `ConsumeAll` method in its API, which allows us to move the mem slices into a queue of messages to send. This is now the same mechanism used to store mem slice spans in a stream or message's send buffer. It ensures that mem slices are properly ref-counted so that the contents are not deleted after storing them. This should enable zero-copy writes down the line. However, currently, we still have two copies: - One in the application layer, where we create mem slices by copying data - One in the session, when converting mem slices back into a mem slice span Nothing stops us from fixing the former, but it requires a bit of refactoring at the application layer. The latter requires an API for building a QuicMemSliceSpan out of QuicMemSlices without copying them. This should be possible, but doesn't seem to exist today. gfe-relnote: n/a (Quartc only) PiperOrigin-RevId: 247442584 Change-Id: Ie1bc1ad2f878ee312a5e13b048fd2233864c3d18
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.