This adds support for protobuf ObjC support for using the proto package to
define the prefix for the file
(https://github.com/protocolbuffers/protobuf/pull/8760).
Once protobuf cuts a release, it likely makes sense to support the same
generator options that the objc generator does, but for now the environment
variable support can used to enable this when building from recent sources.
Eliminate HPACK table
Use a switch statement instead of a table lookup for the first byte of
HPACK parsing.
This will lead the way to some other improvements down the track (I have
a substantial overhaul here planned), but this is a necessary first
step.
* Use constexpr to simplify HPACK parser
This is a bit of a trial balloon: in C++11, generate at load time a
table that used to be hard coded. In C++14, generate that same table at
compile time, but eliminate the code generator.
Should this work out, I'd like to expand the technique so that we can
eliminate some of the confusing tables in this file by keeping the code
that generates them *in the same place* as the code that consumes them.
* comments
* c++14 fixes
* match/overload abstraction
* update projects
* match should really not accept mutable args
* typo
* tests
* usage comment
* mutable version
* build stuff
* clang-format
* add an escape hatch to avoid needing port_platform.h in files that do not need port_platform.h
* unused args
* Make it possible for a test to not depend on gpr
* add tests
* compile fix
* sepelling
* add CallDispatchController API and use it in both retry and non-retry cases
* call commit when LB call is cancelled
* use DualRefCounted for ClusterState
* pass CallDispatchController on per-call basis instead of via channel args, and maybe don't use it for existing cluster refs
* use new API for xDS cluster unref, move fallback to recv_trailing_metadata, and ensure that Commit() gets called at most once
* clang-format and clang-tidy
* create a separate CallDispatchController for each call
* add virtual dtor
* Update visibility tags
Add some tags to the bazel build that we can leverage internally to help
control visibility in the Google build system.
* review feedback
* Add needed visibility tag
* Tighten the error tolerance requirement by 10x
* Make it 5 sigma instead of 4.5
* Rewrap comments
* Loosen the max concurrent requests in certain test cases
* Update visibility tags
Add some tags to the bazel build that we can leverage internally to help
control visibility in the Google build system.
* review feedback
The length of the address was invalid (uninitialized data). It just so
happens that the posix iomgr implementation wasn't affected by this, but
the EventEngine iomgr asserts the validity of addresses and would crash.
I've added an assert of address validity in the posix iomgr impl as
well.