SetUtil::setDifference(update_to_these_names, watch->resource_names_, newly_added_to_watch);
SetUtil::setDifference(watch->resource_names_, update_to_these_names, newly_removed_from_watch);
absl::flat_hash_set<std::string> added_resources = findAdditions(newly_added_to_watch, watch);
absl::flat_hash_set<Watch*> WatchMap::watchesInterestedIn(const std::string& resource_name) {
is_xdstp ? XdsResourceIdentifier::encodeUrn(xdstp_resource, encode_options) : resource_name);
// If that fails, consider namespace/glob matching. This is the slow path for xdstp:// and should
const bool map_is_single_wildcard = (watches_.size() == 1 && wildcard_watches_.size() == 1);
THROW_IF_NOT_OK(watch->callbacks_.onConfigUpdate(this_watch_updates->second, version_info));
// cares about. Each entry in the map-pair is then a nice little bundle that can be fed directly
// be for the same resource type, so we can just use the callbacks of the first watch to decode.
void WatchMap::onConfigUpdateFailed(ConfigUpdateFailureReason reason, const EnvoyException* e) {