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

Initialize an empty resource cache.



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

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

Instance Method Details

#clearObject

Clear all cached resources



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

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

#get_cluster(name) ⇒ Object

Get cluster by name



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

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

#get_endpoints(cluster_name) ⇒ Object

Get endpoints for cluster



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

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

#update_cluster(cluster) ⇒ Object

Update cluster in cache



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

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

#update_endpoints(cluster_name, endpoints) ⇒ Object

Update endpoints for cluster



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

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