17 #ifndef GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_CONFIG_SELECTOR_H
18 #define GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_CONFIG_SELECTOR_H
26 #include "absl/strings/string_view.h"
39 #define GRPC_ARG_CONFIG_SELECTOR "grpc.internal.config_selector"
72 virtual const char*
name()
const = 0;
79 if (cs1 ==
nullptr)
return cs2 ==
nullptr;
80 if (cs2 ==
nullptr)
return false;
81 if (strcmp(cs1->
name(), cs2->
name()) != 0)
return false;
87 virtual std::vector<const grpc_channel_filter*>
GetFilters() {
return {}; }
106 : service_config_(
std::move(service_config)) {
113 const char*
name()
const override {
return "default"; }
122 service_config_->GetMethodParsedConfigVector(*args.
path);
Definition: config_selector.h:45
virtual const char * name() const =0
virtual grpc_channel_args * ModifyChannelArgs(grpc_channel_args *args)
Definition: config_selector.h:91
static RefCountedPtr< ConfigSelector > GetFromChannelArgs(const grpc_channel_args &args)
Definition: config_selector.cc:50
~ConfigSelector() override=default
virtual bool Equals(const ConfigSelector *other) const =0
grpc_arg MakeChannelArg() const
Definition: config_selector.cc:44
virtual std::vector< const grpc_channel_filter * > GetFilters()
Definition: config_selector.h:87
static bool Equals(const ConfigSelector *cs1, const ConfigSelector *cs2)
Definition: config_selector.h:78
virtual CallConfig GetCallConfig(GetCallConfigArgs args)=0
Definition: config_selector.h:103
const char * name() const override
Definition: config_selector.h:113
bool Equals(const ConfigSelector *) const override
Definition: config_selector.h:117
DefaultConfigSelector(RefCountedPtr< ServiceConfig > service_config)
Definition: config_selector.h:105
CallConfig GetCallConfig(GetCallConfigArgs args) override
Definition: config_selector.h:119
Definition: ref_counted.h:282
Definition: ref_counted_ptr.h:35
absl::InlinedVector< std::unique_ptr< ParsedConfig >, kNumPreallocatedParsers > ParsedConfigVector
Definition: service_config_parser.h:71
#define GRPC_ERROR_NONE
The following "special" errors can be propagated without allocating memory.
Definition: error.h:228
#define GPR_DEBUG_ASSERT(x)
Definition: log.h:101
Round Robin Policy.
Definition: backend_metric.cc:26
Definition: async_unary_call.h:398
A single argument...
Definition: grpc_types.h:103
An array of arguments that can be passed around.
Definition: grpc_types.h:132
Definition: config_selector.h:53
const ServiceConfigParser::ParsedConfigVector * method_configs
Definition: config_selector.h:58
std::map< const char *, absl::string_view > call_attributes
Definition: config_selector.h:63
std::function< void()> on_call_committed
Definition: config_selector.h:67
RefCountedPtr< ServiceConfig > service_config
Definition: config_selector.h:61
grpc_error_handle error
Definition: config_selector.h:55
Definition: config_selector.h:47
grpc_metadata_batch * initial_metadata
Definition: config_selector.h:49
Arena * arena
Definition: config_selector.h:50
grpc_slice * path
Definition: config_selector.h:48
Definition: error_internal.h:41
A grpc_slice s, if initialized, represents the byte range s.bytes[0..s.length-1].
Definition: slice.h:60