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>>
class PDA<K,V> extends PD<K,V>
WARNING: GENERATED CODE A cache entry that provides the following features:- ExpireAccess
- StrongKeys (inherited)
- SoftValues (inherited)
-
-
Field Summary
Fields Modifier and Type Field Description protected static long
ACCESS_TIME_OFFSET
(package private) long
accessTime
(package private) Node<K,V>
nextInAccessOrder
(package private) Node<K,V>
previousInAccessOrder
-
Fields inherited from class com.github.benmanes.caffeine.cache.PD
value, VALUE_OFFSET
-
Fields inherited from interface com.github.benmanes.caffeine.cache.NodeFactory
DEAD_STRONG_KEY, DEAD_WEAK_KEY, RETIRED_STRONG_KEY, RETIRED_WEAK_KEY
-
-
Constructor Summary
Constructors Constructor Description PDA()
PDA(java.lang.Object keyReference, V value, java.lang.ref.ReferenceQueue<V> valueReferenceQueue, int weight, long now)
PDA(K key, java.lang.ref.ReferenceQueue<K> keyReferenceQueue, V value, java.lang.ref.ReferenceQueue<V> valueReferenceQueue, int weight, long now)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
casVariableTime(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.long
getAccessTime()
Returns the time that this entry was last accessed, in ns.Node<K,V>
getNextInAccessOrder()
Retrieves the next element or null if either the element is unlinked or the last element on the deque.Node<K,V>
getNextInVariableOrder()
Node<K,V>
getPreviousInAccessOrder()
Retrieves the previous element or null if either the element is unlinked or the first element on the deque.Node<K,V>
getPreviousInVariableOrder()
long
getVariableTime()
Returns the variable expiration time, in nanoseconds.Node<K,V>
newNode(java.lang.Object keyReference, V value, java.lang.ref.ReferenceQueue<V> valueReferenceQueue, int weight, long now)
Returns a node optimized for the specified features.Node<K,V>
newNode(K key, java.lang.ref.ReferenceQueue<K> keyReferenceQueue, V value, java.lang.ref.ReferenceQueue<V> valueReferenceQueue, int weight, long now)
Returns a node optimized for the specified features.void
setAccessTime(long accessTime)
Sets the access time in nanoseconds.void
setNextInAccessOrder(Node<K,V> nextInAccessOrder)
Sets the next element or null if there is no link.void
setNextInVariableOrder(Node<K,V> nextInAccessOrder)
void
setPreviousInAccessOrder(Node<K,V> previousInAccessOrder)
Sets the previous element or null if there is no link.void
setPreviousInVariableOrder(Node<K,V> previousInAccessOrder)
void
setVariableTime(long accessTime)
Sets the variable expiration time in nanoseconds.-
Methods inherited from class com.github.benmanes.caffeine.cache.PD
containsValue, die, getKey, getKeyReference, getValue, getValueReference, isAlive, isDead, isRetired, retire, setValue, softValues
-
Methods inherited from class com.github.benmanes.caffeine.cache.Node
casWriteTime, getNextInWriteOrder, getPolicyWeight, getPreviousInWriteOrder, getQueueType, getWeight, getWriteTime, inMainProbation, inMainProtected, inWindow, makeMainProbation, makeMainProtected, makeWindow, setNextInWriteOrder, setPolicyWeight, setPreviousInWriteOrder, setQueueType, setWeight, setWriteTime, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.github.benmanes.caffeine.cache.NodeFactory
newLookupKey, newReferenceKey, weakValues
-
-
-
-
Method Detail
-
getPreviousInVariableOrder
public Node<K,V> getPreviousInVariableOrder()
- Overrides:
getPreviousInVariableOrder
in classNode<K,V>
-
setPreviousInVariableOrder
public void setPreviousInVariableOrder(Node<K,V> previousInAccessOrder)
- Overrides:
setPreviousInVariableOrder
in classNode<K,V>
-
getNextInVariableOrder
public Node<K,V> getNextInVariableOrder()
- Overrides:
getNextInVariableOrder
in classNode<K,V>
-
setNextInVariableOrder
public void setNextInVariableOrder(Node<K,V> nextInAccessOrder)
- Overrides:
setNextInVariableOrder
in classNode<K,V>
-
getVariableTime
public long getVariableTime()
Description copied from class:Node
Returns the variable expiration time, in nanoseconds.- Overrides:
getVariableTime
in classNode<K,V>
-
setVariableTime
public void setVariableTime(long accessTime)
Description copied from class:Node
Sets the variable expiration time in nanoseconds. This update may be set lazily and rely on the memory fence when the lock is released.- Overrides:
setVariableTime
in classNode<K,V>
-
casVariableTime
public boolean casVariableTime(long expect, long update)
Description copied from class:Node
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.- Overrides:
casVariableTime
in classNode<K,V>
-
getAccessTime
public final long getAccessTime()
Description copied from class:Node
Returns the time that this entry was last accessed, in ns.- Overrides:
getAccessTime
in classNode<K,V>
-
setAccessTime
public final void setAccessTime(long accessTime)
Description copied from class:Node
Sets the access time in nanoseconds. This update may be set lazily and rely on the memory fence when the lock is released.- Overrides:
setAccessTime
in classNode<K,V>
-
getPreviousInAccessOrder
public final Node<K,V> getPreviousInAccessOrder()
Description copied from interface:AccessOrderDeque.AccessOrder
Retrieves the previous element or null if either the element is unlinked or the first element on the deque.- Specified by:
getPreviousInAccessOrder
in interfaceAccessOrderDeque.AccessOrder<K>
- Overrides:
getPreviousInAccessOrder
in classNode<K,V>
-
setPreviousInAccessOrder
public final void setPreviousInAccessOrder(Node<K,V> previousInAccessOrder)
Description copied from interface:AccessOrderDeque.AccessOrder
Sets the previous element or null if there is no link.- Specified by:
setPreviousInAccessOrder
in interfaceAccessOrderDeque.AccessOrder<K>
- Overrides:
setPreviousInAccessOrder
in classNode<K,V>
-
getNextInAccessOrder
public final Node<K,V> getNextInAccessOrder()
Description copied from interface:AccessOrderDeque.AccessOrder
Retrieves the next element or null if either the element is unlinked or the last element on the deque.- Specified by:
getNextInAccessOrder
in interfaceAccessOrderDeque.AccessOrder<K>
- Overrides:
getNextInAccessOrder
in classNode<K,V>
-
setNextInAccessOrder
public final void setNextInAccessOrder(Node<K,V> nextInAccessOrder)
Description copied from interface:AccessOrderDeque.AccessOrder
Sets the next element or null if there is no link.- Specified by:
setNextInAccessOrder
in interfaceAccessOrderDeque.AccessOrder<K>
- Overrides:
setNextInAccessOrder
in classNode<K,V>
-
newNode
public Node<K,V> newNode(K key, java.lang.ref.ReferenceQueue<K> keyReferenceQueue, V value, java.lang.ref.ReferenceQueue<V> valueReferenceQueue, int weight, long now)
Description copied from interface:NodeFactory
Returns a node optimized for the specified features.
-
-