Struct: endpoint-discovery.EndpointCache
Overview
EndpointCache is an LRU cache that holds a series of endpoints based on some key. The data structure makes use of a read write mutex to enable asynchronous use.
Implemented Interfaces
types.AnalyticsFilter, v4.HTTPPresigner, s3.HTTPPresignerV4, types.MetricsFilter, s3.PresignPost, arn.S3ObjectLambdaARN, types.SelectObjectContentEventStream
Constructor Functions collapse
-
func NewEndpointCache(endpointLimit int64) *EndpointCache
NewEndpointCache will return a newly initialized cache with a limit of endpointLimit entries.
Method Summary collapse
-
func (c *EndpointCache) Add(endpoint Endpoint)
Add is a concurrent safe operation that will allow new endpoints to be added to the cache.
-
func (c *EndpointCache) Get(endpointKey string) (WeightedAddress, bool)
Get will retrieve a weighted address based off of the endpoint key.
-
func (c *EndpointCache) Has(endpointKey string) bool
Has returns if the enpoint cache contains a valid entry for the endpoint key provided.
Function Details
func NewEndpointCache(endpointLimit int64) *EndpointCache
NewEndpointCache will return a newly initialized cache with a limit of endpointLimit entries.
21 22 23 24 25 26 |
// File 'service/internal/endpoint-discovery/cache.go', line 21
|
Method Details
func (c *EndpointCache) Add(endpoint Endpoint)
Add is a concurrent safe operation that will allow new endpoints to be added to the cache. If the cache is full, the number of endpoints equal endpointLimit, then this will remove the oldest entry before adding the new endpoint.
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
// File 'service/internal/endpoint-discovery/cache.go', line 66
|
func (c *EndpointCache) Get(endpointKey string) (WeightedAddress, bool)
Get will retrieve a weighted address based off of the endpoint key. If an endpoint should be retrieved, due to not existing or the current endpoint has expired the Discoverer object that was passed in will attempt to discover a new endpoint and add that to the cache.
55 56 57 58 59 60 61 |
// File 'service/internal/endpoint-discovery/cache.go', line 55
|
func (c *EndpointCache) Has(endpointKey string) bool
Has returns if the enpoint cache contains a valid entry for the endpoint key provided.
46 47 48 49 |
// File 'service/internal/endpoint-discovery/cache.go', line 46
|