Package io.grpc.rls
Class CachingRlsLbClient.DataCacheEntry
- java.lang.Object
-
- io.grpc.rls.CachingRlsLbClient.CacheEntry
-
- io.grpc.rls.CachingRlsLbClient.DataCacheEntry
-
- Enclosing class:
- CachingRlsLbClient
final class CachingRlsLbClient.DataCacheEntry extends CachingRlsLbClient.CacheEntry
Implementation ofCachingRlsLbClient.CacheEntry
contains valid data.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<LbPolicyConfiguration.ChildPolicyWrapper>
childPolicyWrappers
private long
expireTime
private long
minEvictionTime
private RlsProtoData.RouteLookupResponse
response
private long
staleTime
-
Fields inherited from class io.grpc.rls.CachingRlsLbClient.CacheEntry
request
-
-
Constructor Summary
Constructors Constructor Description DataCacheEntry(RlsProtoData.RouteLookupRequest request, RlsProtoData.RouteLookupResponse response)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) int
calcStringSize(java.lang.String target)
(package private) void
cleanup()
(package private) LbPolicyConfiguration.ChildPolicyWrapper
getChildPolicyWrapper()
(package private) LbPolicyConfiguration.ChildPolicyWrapper
getChildPolicyWrapper(java.lang.String target)
(package private) java.lang.String
getHeaderData()
(package private) int
getSizeBytes()
(package private) boolean
isExpired(long now)
protected boolean
isOldEnoughToBeEvicted(long now)
(package private) boolean
isStaled(long now)
(package private) void
maybeRefresh()
Refreshes cache entry by creatingCachingRlsLbClient.PendingCacheEntry
.java.lang.String
toString()
-
-
-
Field Detail
-
response
private final RlsProtoData.RouteLookupResponse response
-
minEvictionTime
private final long minEvictionTime
-
expireTime
private final long expireTime
-
staleTime
private final long staleTime
-
childPolicyWrappers
private final java.util.List<LbPolicyConfiguration.ChildPolicyWrapper> childPolicyWrappers
-
-
Constructor Detail
-
DataCacheEntry
DataCacheEntry(RlsProtoData.RouteLookupRequest request, RlsProtoData.RouteLookupResponse response)
-
-
Method Detail
-
maybeRefresh
void maybeRefresh()
Refreshes cache entry by creatingCachingRlsLbClient.PendingCacheEntry
. When thePendingCacheEntry
received data from RLS server, it will replace the data entry if valid data still exists. Flow looks like following.Timeline | async refresh V put new cache (entry2) entry1: Pending | hasValue | staled | entry2: | OV* | pending | hasValue | staled | OV: old value
-
getChildPolicyWrapper
LbPolicyConfiguration.ChildPolicyWrapper getChildPolicyWrapper(java.lang.String target)
-
getChildPolicyWrapper
@Nullable LbPolicyConfiguration.ChildPolicyWrapper getChildPolicyWrapper()
-
getHeaderData
java.lang.String getHeaderData()
-
calcStringSize
int calcStringSize(java.lang.String target)
-
getSizeBytes
int getSizeBytes()
- Specified by:
getSizeBytes
in classCachingRlsLbClient.CacheEntry
-
isExpired
boolean isExpired(long now)
- Specified by:
isExpired
in classCachingRlsLbClient.CacheEntry
-
isStaled
boolean isStaled(long now)
-
isOldEnoughToBeEvicted
protected boolean isOldEnoughToBeEvicted(long now)
- Overrides:
isOldEnoughToBeEvicted
in classCachingRlsLbClient.CacheEntry
-
cleanup
void cleanup()
- Specified by:
cleanup
in classCachingRlsLbClient.CacheEntry
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-