Event::Dispatcher& dispatcher = cluster_context.serverFactoryContext().mainThreadDispatcher();
void EdsClusterImpl::BatchUpdateHelper::batchUpdate(PrioritySet::HostUpdateCb& host_update_cb) {
cluster_load_assignment_.policy(), overprovisioning_factor, kDefaultOverProvisioningFactor);
THROW_IF_NOT_OK(parent_.validateEndpoints(cluster_load_assignment_.endpoints(), priority_state));
for (size_t i = priority_state.size(); i < parent_.priority_set_.hostSetsPerPriority().size();
PriorityStateManager& priority_state_manager, absl::flat_hash_set<std::string>& all_new_hosts) {
ENVOY_LOG(debug, "Missing ClusterLoadAssignment for {} in onConfigUpdate()", edsServiceName());
// Compare the current set of LEDS localities (localities using LEDS) to the one received in the
cluster_load_assignment_ = std::make_unique<envoy::config::endpoint::v3::ClusterLoadAssignment>(
HostsPerLocalityConstSharedPtr hosts_per_locality_copy = host_set->hostsPerLocality().filter(
// We need to trigger updateHosts with the new host vectors if they have changed. We also do this
// when the locality weight map or the overprovisioning factor. Note calling updateDynamicHostList
// is responsible for both determining whether there was a change and to perform the actual update
// to current_hosts_copy, so it must be called even if we know that we need to update (e.g. if the
// performance implications, since this has the knock on effect that we rebuild the load balancers
const bool hosts_updated = updateDynamicHostList(new_hosts, *current_hosts_copy, hosts_added,