Class: Async::GRPC::XDS::ResourceCache

Inherits:
Object
  • Object
show all
Defined in:
lib/async/grpc/xds/resource_cache.rb

Overview

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

Instance Method Summary collapse

Constructor Details

#initializeResourceCache

Returns a new instance of ResourceCache.



12
13
14
15
16
# File 'lib/async/grpc/xds/resource_cache.rb', line 12

def initialize
	@clusters = {}
	@endpoints = {}
	@mutex = Mutex.new
end

Instance Method Details

#clearObject

Clear all cached resources



46
47
48
49
50
51
# File 'lib/async/grpc/xds/resource_cache.rb', line 46

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

#get_cluster(name) ⇒ Object

Get cluster by name



21
22
23
# File 'lib/async/grpc/xds/resource_cache.rb', line 21

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

#get_endpoints(cluster_name) ⇒ Object

Get endpoints for cluster



34
35
36
# File 'lib/async/grpc/xds/resource_cache.rb', line 34

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

#update_cluster(cluster) ⇒ Object

Update cluster in cache



27
28
29
# File 'lib/async/grpc/xds/resource_cache.rb', line 27

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

#update_endpoints(cluster_name, endpoints) ⇒ Object

Update endpoints for cluster



41
42
43
# File 'lib/async/grpc/xds/resource_cache.rb', line 41

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