Package com.tangosol.util
Class SegmentedConcurrentMap.ConditionalRemoveAction
- java.lang.Object
-
- com.tangosol.util.SegmentedHashMap.EntryActionAdapter
-
- com.tangosol.util.SegmentedHashMap.RemoveAction
-
- com.tangosol.util.SegmentedConcurrentMap.ConditionalRemoveAction
-
- All Implemented Interfaces:
SegmentedHashMap.EntryAction
,SegmentedHashMap.IterableEntryAction
- Enclosing class:
- SegmentedConcurrentMap
protected class SegmentedConcurrentMap.ConditionalRemoveAction extends SegmentedHashMap.RemoveAction
Action support for a conditional remove(). The action performs a logical locked remove if the entry is currently mapped to the assumed value, and is expected to run while holding the segment-lock for the specified key. If the Entry corresponding to the specified key is still necessary in the map (e.g. for representing a lock state), the Entry may not be physically removed, but rather converted to be synthetic.The context object for a ConditionalRemoveAction is the assumed associated value.
The result of invoking a ConditionalRemoveAction is the previous value associated with the specified key if it is successfully removed, or NO_VALUE if the key is not mapped to the assumed value. Note that a synthetic Entry does not represent a key-value mapping, so NO_VALUE is returned if a matching synthetic Entry is found.
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
ConditionalRemoveAction()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Object
invokeFound(Object oKey, Object oContext, SegmentedHashMap.Entry[] aeBucket, int nBucket, SegmentedHashMap.Entry entryPrev, SegmentedHashMap.Entry entryCur)
Invoke some action, holding the segment lock, when a matching Entry is found.-
Methods inherited from class com.tangosol.util.SegmentedHashMap.EntryActionAdapter
invokeNotFound, isComplete
-
-
-
-
Method Detail
-
invokeFound
public Object invokeFound(Object oKey, Object oContext, SegmentedHashMap.Entry[] aeBucket, int nBucket, SegmentedHashMap.Entry entryPrev, SegmentedHashMap.Entry entryCur)
Invoke some action, holding the segment lock, when a matching Entry is found.- Specified by:
invokeFound
in interfaceSegmentedHashMap.EntryAction
- Overrides:
invokeFound
in classSegmentedHashMap.RemoveAction
- Parameters:
oKey
- the key to which the action is appliedoContext
- opaque context specific to the actionaeBucket
- the bucket arraynBucket
- the index into the bucket arrayentryPrev
- the Entry object immediately preceding the Entry that was found, or nullentryCur
- the Entry object that was found- Returns:
- an opaque result value
-
-