commit | 80ce32411074d0988d32b1a25ea2db2c963905c2 | [log] [tgz] |
---|---|---|
author | bnc <bnc@google.com> | Fri Jul 09 06:27:52 2021 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Fri Jul 09 06:28:57 2021 -0700 |
tree | c6c49222e1748e27a16d5732673c7f17514a6ebf | |
parent | 20c3086ad39e966c0c3630b9957871b2afc71cbd [diff] |
Remove QuicInlinedVector from platform. Internally, it was defined as absl::InlinedVector and a custom printer was added (which this CL removes). In Envoy, it was defined as absl::InlinedVector and a custom printer was added: https://github.com/envoyproxy/envoy/blob/40a656d36244652b7afd97c7d8492f643c94283d/source/common/quic/platform/quic_containers_impl.h#L51-L65 In Chromium, it was defined as std::vector, and I don't see the printer (maybe there's one in STL?). This CL removes QuicInlinedVector, inlines absl::InlinedVector, and adds quiche::PrintElements() to QUICHE, so that embedders do not have to provide their custom printers. PrintElements() is based on the Envoy custom printer implementation. However, I'm adding a helper function with std::string return value instead of an operator<<() override because 1. an operator<<() override would need to live in either std or absl namespace, and it is not nice to add stuff to library namespaces; 2. if Abseil ever adds an official operator<<() override, that would cause a clash immediately, and it would be some amount of work to resolve it while the override get upstreamed to public Abseil (internal code uses internal, source-of-truth Abseil, other QUICHE embedders use public Abseil, so QUICHE needs to work with both at the same time until new operator<<() gets merged to public Abseil and that public Abseil gets rolled into QUICHE embedders). PiperOrigin-RevId: 383833970
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. QUICHE is only supported on little-endian platforms.
Code can be viewed in CodeSearch in Quiche and is imported into Chromium.