Class PDA<K,V>
java.lang.Object
com.github.benmanes.caffeine.cache.Node<K,V>
com.github.benmanes.caffeine.cache.PD<K,V>
com.github.benmanes.caffeine.cache.PDA<K,V>
- All Implemented Interfaces:
AccessOrderDeque.AccessOrder<Node<K,V>>, NodeFactory<K, V>, WriteOrderDeque.WriteOrder<Node<K, V>>
WARNING: GENERATED CODE
A cache entry that provides the following features:
- ExpireAccess
- StrongKeys (inherited)
- SoftValues (inherited)
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final long(package private) longFields inherited from class PD
value, VALUE_OFFSETFields inherited from interface NodeFactory
DEAD_STRONG_KEY, DEAD_WEAK_KEY, RETIRED_STRONG_KEY, RETIRED_WEAK_KEY -
Constructor Summary
ConstructorsConstructorDescriptionPDA()PDA(Object keyReference, V value, ReferenceQueue<V> valueReferenceQueue, int weight, long now) PDA(K key, ReferenceQueue<K> keyReferenceQueue, V value, ReferenceQueue<V> valueReferenceQueue, int weight, long now) -
Method Summary
Modifier and TypeMethodDescriptionbooleancasVariableTime(long expect, long update) Atomically sets the variable time to the given updated value if the current value equals the expected value and returns if the update was successful.final longReturns the time that this entry was last accessed, in ns.Retrieves the next element or null if either the element is unlinked or the last element on the deque.Retrieves the previous element or null if either the element is unlinked or the first element on the deque.longReturns the variable expiration time, in nanoseconds.newNode(Object keyReference, V value, ReferenceQueue<V> valueReferenceQueue, int weight, long now) Returns a node optimized for the specified features.newNode(K key, ReferenceQueue<K> keyReferenceQueue, V value, ReferenceQueue<V> valueReferenceQueue, int weight, long now) Returns a node optimized for the specified features.final voidsetAccessTime(long accessTime) Sets the access time in nanoseconds.final voidsetNextInAccessOrder(Node<K, V> nextInAccessOrder) Sets the next element or null if there is no link.voidsetNextInVariableOrder(Node<K, V> nextInAccessOrder) final voidsetPreviousInAccessOrder(Node<K, V> previousInAccessOrder) Sets the previous element or null if there is no link.voidsetPreviousInVariableOrder(Node<K, V> previousInAccessOrder) voidsetVariableTime(long accessTime) Sets the variable expiration time in nanoseconds.Methods inherited from class PD
containsValue, die, getKey, getKeyReference, getValue, getValueReference, isAlive, isDead, isRetired, retire, setValue, softValuesMethods inherited from class Node
casWriteTime, getNextInWriteOrder, getPolicyWeight, getPreviousInWriteOrder, getQueueType, getWeight, getWriteTime, inMainProbation, inMainProtected, inWindow, makeMainProbation, makeMainProtected, makeWindow, setNextInWriteOrder, setPolicyWeight, setPreviousInWriteOrder, setQueueType, setWeight, setWriteTime, toStringMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface NodeFactory
newLookupKey, newReferenceKey, weakValues
-
Field Details
-
ACCESS_TIME_OFFSET
protected static final long ACCESS_TIME_OFFSET -
accessTime
volatile long accessTime -
previousInAccessOrder
-
nextInAccessOrder
-
-
Constructor Details
-
PDA
PDA() -
PDA
PDA(K key, ReferenceQueue<K> keyReferenceQueue, V value, ReferenceQueue<V> valueReferenceQueue, int weight, long now) -
PDA
PDA(Object keyReference, V value, ReferenceQueue<V> valueReferenceQueue, int weight, long now)
-
-
Method Details
-
getPreviousInVariableOrder
-
setPreviousInVariableOrder
-
getNextInVariableOrder
-
setNextInVariableOrder
-
getVariableTime
public long getVariableTime()Description copied from class:NodeReturns the variable expiration time, in nanoseconds.- Overrides:
getVariableTimein classNode<K,V>
-
setVariableTime
public void setVariableTime(long accessTime) Description copied from class:NodeSets the variable expiration time in nanoseconds. This update may be set lazily and rely on the memory fence when the lock is released.- Overrides:
setVariableTimein classNode<K,V>
-
casVariableTime
public boolean casVariableTime(long expect, long update) Description copied from class:NodeAtomically sets the variable time to the given updated value if the current value equals the expected value and returns if the update was successful.- Overrides:
casVariableTimein classNode<K,V>
-
getAccessTime
public final long getAccessTime()Description copied from class:NodeReturns the time that this entry was last accessed, in ns.- Overrides:
getAccessTimein classNode<K,V>
-
setAccessTime
public final void setAccessTime(long accessTime) Description copied from class:NodeSets the access time in nanoseconds. This update may be set lazily and rely on the memory fence when the lock is released.- Overrides:
setAccessTimein classNode<K,V>
-
getPreviousInAccessOrder
Description copied from interface:AccessOrderDeque.AccessOrderRetrieves the previous element or null if either the element is unlinked or the first element on the deque.- Specified by:
getPreviousInAccessOrderin interfaceAccessOrderDeque.AccessOrder<K>- Overrides:
getPreviousInAccessOrderin classNode<K,V>
-
setPreviousInAccessOrder
Description copied from interface:AccessOrderDeque.AccessOrderSets the previous element or null if there is no link.- Specified by:
setPreviousInAccessOrderin interfaceAccessOrderDeque.AccessOrder<K>- Overrides:
setPreviousInAccessOrderin classNode<K,V>
-
getNextInAccessOrder
Description copied from interface:AccessOrderDeque.AccessOrderRetrieves the next element or null if either the element is unlinked or the last element on the deque.- Specified by:
getNextInAccessOrderin interfaceAccessOrderDeque.AccessOrder<K>- Overrides:
getNextInAccessOrderin classNode<K,V>
-
setNextInAccessOrder
Description copied from interface:AccessOrderDeque.AccessOrderSets the next element or null if there is no link.- Specified by:
setNextInAccessOrderin interfaceAccessOrderDeque.AccessOrder<K>- Overrides:
setNextInAccessOrderin classNode<K,V>
-
newNode
public Node<K,V> newNode(K key, ReferenceQueue<K> keyReferenceQueue, V value, ReferenceQueue<V> valueReferenceQueue, int weight, long now) Description copied from interface:NodeFactoryReturns a node optimized for the specified features. -
newNode
public Node<K,V> newNode(Object keyReference, V value, ReferenceQueue<V> valueReferenceQueue, int weight, long now) Description copied from interface:NodeFactoryReturns a node optimized for the specified features.
-