Async::GRPC::XDSSourceAsyncGRPCXDSResourceCache

class ResourceCache

Caches discovered xDS resources Thread-safe cache for clusters and endpoints

Definitions

def get_cluster(name)

Get cluster by name

Signature

parameter name String

Cluster name

returns Resources::Cluster, nil

Cached cluster or nil

Implementation

def get_cluster(name)
	@mutex.synchronize{@clusters[name]}
end

def update_cluster(cluster)

Update cluster in cache

Signature

parameter cluster Resources::Cluster

Cluster to cache

Implementation

def update_cluster(cluster)
	@mutex.synchronize{@clusters[cluster.name] = cluster}
end

def get_endpoints(cluster_name)

Get endpoints for cluster

Signature

parameter cluster_name String

Cluster name

returns Array<Async::HTTP::Endpoint>, nil

Cached endpoints or nil

Implementation

def get_endpoints(cluster_name)
	@mutex.synchronize{@endpoints[cluster_name]}
end

def update_endpoints(cluster_name, endpoints)

Update endpoints for cluster

Signature

parameter cluster_name String

Cluster name

parameter endpoints Array<Async::HTTP::Endpoint>

Endpoints to cache

Implementation

def update_endpoints(cluster_name, endpoints)
	@mutex.synchronize{@endpoints[cluster_name] = endpoints}
end

def clear

Clear all cached resources

Implementation

def clear
	@mutex.synchronize do
		@clusters.clear
		@endpoints.clear
	end
end