Class PD<K,V>
- java.lang.Object
-
- com.github.benmanes.caffeine.cache.Node<K,V>
-
- com.github.benmanes.caffeine.cache.PD<K,V>
-
- All Implemented Interfaces:
AccessOrderDeque.AccessOrder<Node<K,V>>
,NodeFactory<K,V>
,WriteOrderDeque.WriteOrder<Node<K,V>>
class PD<K,V> extends Node<K,V> implements NodeFactory<K,V>
WARNING: GENERATED CODE A cache entry that provides the following features:- StrongKeys
- SoftValues
-
-
Field Summary
Fields Modifier and Type Field Description (package private) References.SoftValueReference<V>
value
protected static long
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 PD()
PD(java.lang.Object keyReference, V value, java.lang.ref.ReferenceQueue<V> valueReferenceQueue, int weight, long now)
PD(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
containsValue(java.lang.Object value)
Returnstrue
if the given objects are considered equivalent.void
die()
Sets the node to the dead state.K
getKey()
Return the key ornull
if it has been reclaimed by the garbage collector.java.lang.Object
getKeyReference()
Returns the reference that the cache is holding the entry by.V
getValue()
Return the value ornull
if it has been reclaimed by the garbage collector.java.lang.Object
getValueReference()
Returns the reference to the value.boolean
isAlive()
If the entry is available in the hash-table and page replacement policy.boolean
isDead()
If the entry was removed from the hash-table and the page replacement policy.boolean
isRetired()
If the entry was removed from the hash-table and is awaiting removal from the page replacement policy.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
retire()
Sets the node to the retired state.void
setValue(V value, java.lang.ref.ReferenceQueue<V> referenceQueue)
Sets the value, which may be held strongly, weakly, or softly.boolean
softValues()
Returns whether this factory supports soft values.-
Methods inherited from class com.github.benmanes.caffeine.cache.Node
casVariableTime, casWriteTime, getAccessTime, getNextInAccessOrder, getNextInVariableOrder, getNextInWriteOrder, getPolicyWeight, getPreviousInAccessOrder, getPreviousInVariableOrder, getPreviousInWriteOrder, getQueueType, getVariableTime, getWeight, getWriteTime, inMainProbation, inMainProtected, inWindow, makeMainProbation, makeMainProtected, makeWindow, setAccessTime, setNextInAccessOrder, setNextInVariableOrder, setNextInWriteOrder, setPolicyWeight, setPreviousInAccessOrder, setPreviousInVariableOrder, setPreviousInWriteOrder, setQueueType, setVariableTime, 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
-
-
-
-
Field Detail
-
VALUE_OFFSET
protected static final long VALUE_OFFSET
-
value
volatile References.SoftValueReference<V> value
-
-
Method Detail
-
getKeyReference
public final java.lang.Object getKeyReference()
Description copied from class:Node
Returns the reference that the cache is holding the entry by. This is either the key if strongly held or aWeakReference
to that key.- Specified by:
getKeyReference
in classNode<K,V>
-
getKey
public final K getKey()
Description copied from class:Node
Return the key ornull
if it has been reclaimed by the garbage collector.
-
getValue
public final V getValue()
Description copied from class:Node
Return the value ornull
if it has been reclaimed by the garbage collector.
-
getValueReference
public final java.lang.Object getValueReference()
Description copied from class:Node
Returns the reference to the value. This is either the value if strongly held or aReference
to that value.- Specified by:
getValueReference
in classNode<K,V>
-
setValue
public final void setValue(V value, java.lang.ref.ReferenceQueue<V> referenceQueue)
Description copied from class:Node
Sets the value, which may be held strongly, weakly, or softly. This update may be set lazily and rely on the memory fence when the lock is released.
-
containsValue
public final boolean containsValue(java.lang.Object value)
Description copied from class:Node
Returnstrue
if the given objects are considered equivalent. A strongly held value is compared by equality and a weakly or softly held value is compared by identity.- Specified by:
containsValue
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.- Specified by:
newNode
in interfaceNodeFactory<K,V>
-
newNode
public Node<K,V> newNode(java.lang.Object keyReference, 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.- Specified by:
newNode
in interfaceNodeFactory<K,V>
-
softValues
public boolean softValues()
Description copied from interface:NodeFactory
Returns whether this factory supports soft values.- Specified by:
softValues
in interfaceNodeFactory<K,V>
-
isAlive
public final boolean isAlive()
Description copied from class:Node
If the entry is available in the hash-table and page replacement policy.
-
isRetired
public final boolean isRetired()
Description copied from class:Node
If the entry was removed from the hash-table and is awaiting removal from the page replacement policy.
-
retire
public final void retire()
Description copied from class:Node
Sets the node to the retired state.
-
isDead
public final boolean isDead()
Description copied from class:Node
If the entry was removed from the hash-table and the page replacement policy.
-
-