This code adds an iomgr implementation that's backed by an EventEngine. This uses the EventEngine API alone, and separate work will introduce an EventEngine prototype to plug into it.
See also drfloob#1: @nicolasnoble has a pull request against this branch, implementing the libuv-based EventEngine. One goal here is to implement the iomgr code such that it can be merged independently without affecting normal builds.
This implementation can be built using bazel build --cxxopt='-DGRPC_USE_EVENT_ENGINE' :all
Some shortcuts are being taken to get a working, testable version of the engine. EventEngines are not pluggable, for example.
* Ring hash implementation
* Fixing an error caught during import:
ipv6 addresses need small modifications when creating the ring entry.
* fixing an error
* removing debugs
* Remove unnecssary hashing
* small cleanup
* Create client_context_test_peer.h
mock-up class for ClientContext
* Add ClientContextTestPeer as a friend for test
* Update client_context_test_peer.h
* Update client_context_test_peer.h
* unit test for client_context_test_peer.h
* unit test for client_context_test_peer.h
* fix for tools/buildgen/generate_projects.sh
* Revert "fix for tools/buildgen/generate_projects.sh"
This reverts commit b007aa8c2b.
* re-fix for tools/buildgen/generate_projects.sh
* Remove an empty line
Co-authored-by: Vijay Pai <vpai@google.com>
* rename ChannelData to ClientChannel
* make ClientChannel class definition public
* move retry code to its own filter
* move LB call factory method to ClientChannel class
* move dynamic termination filter out of ClientChannel class
* update comments
* remove retry parsing from client channel service config parser
* fix clang-tidy
* fix service_config_test
* clang-format
* Implement FilterChainMatch logic
* Add tests for transport protocol too
* Tests for duplicate NACKing
* Introduce ConnectionManager as an interface for config fetchers
* Do not parameterize IncrementIfNonZero
* Some formatting
* Reviewer comments
* Add filter chain match information for duplicate match error
* Reviewer comments
* Some cleanup
* Reviewer comments
* Reviewer comments
* Reviewer comments
* Clang-tidy
This caused problems internally. The interface deletion needs a cherrypick, but I will do an overnight test first, before I reintroduce. CC @nicolasnoble
* Implement C++ Admin Interface API
* Address reviewer's requests
* Remove static asserts for raw pointers
* Make sanity tests happy
* Windows: pacify conflict between ifndef and macros
* Disable admin services test on iOS
* Make iOS happy by:
* Letting grpcpp_admin conditionally depend on grpcpp_csds
* Fix an unexpected side-effect of dependency update
* tools/buildgen/extract_metadata_from_bazel_xml.py changes from #25272
* regenerate projects
* get rid of useless _deduplicate_append
* extract_deps worked for both collapsed_sources and collapsed_deps only due to mismatch of bazel label vs target name mismatch
* special handling for absl has no effect
* improve comments
* remove changes that are not needed yet
* Implement the xDS Config Dump as CSDS in Core
* Revemp the logic of caching and constructing the CSDS response
* Unref created error
* Fix the clang tidy complains
* Resolve comments about symbol preload and Json ctor
* Improve readability
* Merge with new ADS logic && support latest CSDS
* Refactor the version/client_status logic
* Add support for error_state
* Add support for does_not_exist
* Add node information
* Fix the ProtoBuf segfault
* More test cases
* Refactor to use bytes as cache instead of JSON
* Apply clang_tidy's suggestion
* Resolve reviewer's requests
* Tiny stylish fixes && make sanity test happy
* WIP: still working on the matchers
* Update a bunch of matchers
* Improve readability a bit
* Resolve reviewer's suggestions
* Resolve reviewer's comments
* Make Unpack fail fast
* Refactored with dynamic filters
* Error-tolerance tuned
* Fix leak of grpc_error and data race of canceller
* Adopt the latest xDS HTTP filter framework
* Fix fault injection tests' conflict with router filter
* Test alternative setup (override, no-override) without copy
* Refactor file strcutures of fault injection filter
* Rewrite the Json parsing/assembling logic again
* Added logic for aborting streaming RPC && resolve comments
* Revert "Revert "xDS HTTP filter support for gRPC client" (#25555)"
This reverts commit 785a128a83.
* xds_end2end_test: avoid flakes from lingering shutdown from previous test