Package org.infinispan.container.entries
Class TransientMortalCacheEntry
java.lang.Object
org.infinispan.container.entries.AbstractInternalCacheEntry
org.infinispan.container.entries.TransientMortalCacheEntry
- All Implemented Interfaces:
Cloneable,Map.Entry,CacheEntry,InternalCacheEntry,MetadataAware
A cache entry that is both transient and mortal.
- Since:
- 4.0
- Author:
- Manik Surtani
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected longprotected longprotected longprotected longFields inherited from class org.infinispan.container.entries.AbstractInternalCacheEntry
internalMetadata, key, value -
Constructor Summary
ConstructorsModifierConstructorDescriptionTransientMortalCacheEntry(Object key, Object value, long maxIdle, long lifespan, long currentTimeMillis) TransientMortalCacheEntry(Object key, Object value, long maxIdle, long lifespan, long lastUsed, long created) protectedTransientMortalCacheEntry(Object key, Object value, PrivateMetadata internalMetadata, long maxIdle, long lifespan, long lastUsed, long created) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidappendFieldsToString(StringBuilder builder) final booleanbooleanclone()longfinal longOnly used with entries that have a lifespan, this determines when an entry is due to expire.longlonglongGet metadata of this cache entry.booleanisExpired(long now) voidreincarnate(long now) "Reincarnates" an entry.voidsetLifespan(long lifespan) voidsetMaxIdle(long maxIdle) voidsetMetadata(Metadata metadata) Set the metadata in the cache entry.Creates a representation of this entry as anInternalCacheValue.final voidtouch(long currentTimeMillis) Updates access timestamps on this instance to a specified timeMethods inherited from class org.infinispan.container.entries.AbstractInternalCacheEntry
commit, equals, getInternalMetadata, getKey, getValue, hashCode, isChanged, isCreated, isEvicted, isL1Entry, isNull, isRemoved, setChanged, setCreated, setEvicted, setInternalMetadata, setRemoved, setSkipLookup, setValue, skipLookup, toStringMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.infinispan.container.entries.CacheEntry
setCreated, setLastUsed
-
Field Details
-
maxIdle
protected long maxIdle -
lastUsed
protected long lastUsed -
lifespan
protected long lifespan -
created
protected long created
-
-
Constructor Details
-
TransientMortalCacheEntry
-
TransientMortalCacheEntry
-
TransientMortalCacheEntry
protected TransientMortalCacheEntry(Object key, Object value, PrivateMetadata internalMetadata, long maxIdle, long lifespan, long lastUsed, long created)
-
-
Method Details
-
setLifespan
public void setLifespan(long lifespan) -
setMaxIdle
public void setMaxIdle(long maxIdle) -
getLifespan
public long getLifespan()- Returns:
- retrieves the lifespan of this entry. -1 means an unlimited lifespan.
-
canExpire
public final boolean canExpire()- Returns:
- true if the entry can expire, false otherwise
-
canExpireMaxIdle
public boolean canExpireMaxIdle()- Returns:
- true if this entry can expire via max idle, false otherwise
-
getCreated
public long getCreated()- Returns:
- timestamp when the entry was created
-
isExpired
public boolean isExpired(long now) - Parameters:
now- the current time as defined bySystem.currentTimeMillis()orTimeService.wallClockTime()- Returns:
- true if the entry has expired; false otherwise
-
getExpiryTime
public final long getExpiryTime()Description copied from interface:InternalCacheEntryOnly used with entries that have a lifespan, this determines when an entry is due to expire.- Returns:
- timestamp when the entry is due to expire, or -1 if it doesn't have a lifespan
-
toInternalCacheValue
Description copied from interface:InternalCacheEntryCreates a representation of this entry as anInternalCacheValue. The main purpose of this is to provide a representation that does not have a reference to the key. This is useful in situations where the key is already known or stored elsewhere, making serialization and deserialization more efficient. Note that this should not be used to optimize memory overhead, since the saving of an additional reference to a key (a single object reference) does not warrant the cost of constructing an InternalCacheValue. This only makes sense when marshalling is involved, since the cost of marshalling the key again can be sidestepped using an InternalCacheValue if the key is already known/marshalled.- Returns:
- a new InternalCacheValue encapsulating this InternalCacheEntry's value and expiration information.
-
getLastUsed
public long getLastUsed()- Returns:
- timestamp when the entry was last used
-
touch
public final void touch(long currentTimeMillis) Description copied from interface:InternalCacheEntryUpdates access timestamps on this instance to a specified time- Parameters:
currentTimeMillis- the current time as defined bySystem.currentTimeMillis()orTimeService.wallClockTime()
-
reincarnate
public void reincarnate(long now) Description copied from interface:InternalCacheEntry"Reincarnates" an entry. Essentially, resets the 'created' timestamp of the entry to the current time.- Parameters:
now- the current time as defined bySystem.currentTimeMillis()orTimeService.wallClockTime()
-
getMaxIdle
public long getMaxIdle()- Returns:
- the maximum allowed time for which this entry can be idle, after which it is considered expired.
-
getMetadata
Description copied from interface:MetadataAwareGet metadata of this cache entry.- Specified by:
getMetadatain interfaceMetadataAware- Overrides:
getMetadatain classAbstractInternalCacheEntry- Returns:
- a Metadata instance
-
setMetadata
Description copied from interface:MetadataAwareSet the metadata in the cache entry.- Specified by:
setMetadatain interfaceMetadataAware- Overrides:
setMetadatain classAbstractInternalCacheEntry- Parameters:
metadata- to apply to the cache entry
-
clone
- Specified by:
clonein interfaceCacheEntry- Specified by:
clonein interfaceInternalCacheEntry- Overrides:
clonein classAbstractInternalCacheEntry
-
appendFieldsToString
- Overrides:
appendFieldsToStringin classAbstractInternalCacheEntry
-