Class PSA<K,V>
java.lang.Object
com.github.benmanes.caffeine.cache.Node<K,V>
com.github.benmanes.caffeine.cache.PS<K,V>
com.github.benmanes.caffeine.cache.PSA<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)
- StrongValues (inherited)
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final long
(package private) long
Fields inherited from class com.github.benmanes.caffeine.cache.PS
key, KEY_OFFSET, 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
ConstructorsConstructorDescriptionPSA()
PSA
(Object keyReference, V value, ReferenceQueue<V> valueReferenceQueue, int weight, long now) PSA
(K key, ReferenceQueue<K> keyReferenceQueue, V value, ReferenceQueue<V> valueReferenceQueue, int weight, long now) -
Method Summary
Modifier and TypeMethodDescriptionboolean
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.final long
Returns 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.long
Returns 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 void
setAccessTime
(long accessTime) Sets the access time in nanoseconds.final void
setNextInAccessOrder
(Node<K, V> nextInAccessOrder) Sets the next element or null if there is no link.void
setNextInVariableOrder
(Node<K, V> nextInAccessOrder) final 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.PS
containsValue, die, getKey, getKeyReference, getValue, getValueReference, isAlive, isDead, isRetired, retire, setValue
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, softValues, weakValues
-
Field Details
-
ACCESS_TIME_OFFSET
protected static final long ACCESS_TIME_OFFSET -
accessTime
volatile long accessTime -
previousInAccessOrder
-
nextInAccessOrder
-
-
Constructor Details
-
PSA
PSA() -
PSA
PSA(K key, ReferenceQueue<K> keyReferenceQueue, V value, ReferenceQueue<V> valueReferenceQueue, int weight, long now) -
PSA
PSA(Object keyReference, V value, ReferenceQueue<V> valueReferenceQueue, int weight, long now)
-
-
Method Details
-
getPreviousInVariableOrder
- Overrides:
getPreviousInVariableOrder
in classNode<K,
V>
-
setPreviousInVariableOrder
- Overrides:
setPreviousInVariableOrder
in classNode<K,
V>
-
getNextInVariableOrder
- Overrides:
getNextInVariableOrder
in classNode<K,
V>
-
setNextInVariableOrder
- 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
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
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
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
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, ReferenceQueue<K> keyReferenceQueue, V value, ReferenceQueue<V> valueReferenceQueue, int weight, long now) Description copied from interface:NodeFactory
Returns 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:NodeFactory
Returns a node optimized for the specified features.
-