19 #ifndef GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVING_LB_POLICY_H
20 #define GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_RESOLVING_LB_POLICY_H
62 const char** lb_policy_name,
70 void* process_resolver_result_user_data);
72 virtual const char*
name()
const override {
return "resolving_lb"; }
86 class ResolverResultHandler;
87 class ResolvingControlHelper;
91 void ShutdownLocked()
override;
94 void CreateOrUpdateLbPolicyLocked(
95 const char* lb_policy_name,
100 TraceStringVector* trace_strings);
101 void MaybeAddTraceMessagesForAddressChangesLocked(
102 bool resolution_contains_addresses, TraceStringVector* trace_strings);
103 void ConcatenateAndAddChannelTraceLocked(
104 TraceStringVector* trace_strings)
const;
111 void* process_resolver_result_user_data_ =
nullptr;
117 bool previous_resolution_contained_addresses_ =
false;
Definition: inlined_vector.h:60
Interface for load balancing policies.
Definition: lb_policy.h:81
Definition: ref_counted_ptr.h:35
Definition: resolving_lb_policy.h:52
void UpdateLocked(UpdateArgs) override
Updates the policy with new data from the resolver.
Definition: resolving_lb_policy.h:77
ResolvingLoadBalancingPolicy(Args args, TraceFlag *tracer, grpc_core::UniquePtr< char > target_uri, ProcessResolverResultCallback process_resolver_result, void *process_resolver_result_user_data)
Definition: resolving_lb_policy.cc:179
void ResetBackoffLocked() override
Resets connection backoff.
Definition: resolving_lb_policy.cc:239
virtual const char * name() const override
Returns the name of the LB policy.
Definition: resolving_lb_policy.h:72
void ExitIdleLocked() override
Tries to enter a READY connectivity state.
Definition: resolving_lb_policy.cc:232
bool(* ProcessResolverResultCallback)(void *user_data, const Resolver::Result &result, const char **lb_policy_name, RefCountedPtr< LoadBalancingPolicy::Config > *lb_policy_config, grpc_error **service_config_error)
Definition: resolving_lb_policy.h:60
Round Robin Policy.
Definition: backend_metric.cc:24
std::unique_ptr< T, DefaultDeleteChar > UniquePtr
Definition: memory.h:45
std::unique_ptr< T, Deleter > OrphanablePtr
Definition: orphanable.h:68
An array of arguments that can be passed around.
Definition: grpc_types.h:132
Args used to instantiate an LB policy.
Definition: lb_policy.h:311
Data passed to the UpdateLocked() method when new addresses and config are available.
Definition: lb_policy.h:295
Results returned by the resolver.
Definition: resolver.h:52
Definition: error_internal.h:39