Package com.google.common.collect
Class MapMakerInternalMap.WeakKeyDummyValueSegment<K>
- java.lang.Object
-
- java.util.concurrent.locks.ReentrantLock
-
- com.google.common.collect.MapMakerInternalMap.Segment<K,MapMaker.Dummy,MapMakerInternalMap.WeakKeyDummyValueEntry<K>,MapMakerInternalMap.WeakKeyDummyValueSegment<K>>
-
- com.google.common.collect.MapMakerInternalMap.WeakKeyDummyValueSegment<K>
-
- All Implemented Interfaces:
java.io.Serializable
,java.util.concurrent.locks.Lock
- Enclosing class:
- MapMakerInternalMap<K,V,E extends MapMakerInternalMap.InternalEntry<K,V,E>,S extends MapMakerInternalMap.Segment<K,V,E,S>>
static final class MapMakerInternalMap.WeakKeyDummyValueSegment<K> extends MapMakerInternalMap.Segment<K,MapMaker.Dummy,MapMakerInternalMap.WeakKeyDummyValueEntry<K>,MapMakerInternalMap.WeakKeyDummyValueSegment<K>>
Concrete implementation ofMapMakerInternalMap.Segment
for weak keys andMapMaker.Dummy
values.
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.ref.ReferenceQueue<K>
queueForKeys
-
Fields inherited from class com.google.common.collect.MapMakerInternalMap.Segment
count, map, maxSegmentSize, modCount, readCount, table, threshold
-
-
Constructor Summary
Constructors Constructor Description WeakKeyDummyValueSegment(MapMakerInternalMap<K,MapMaker.Dummy,MapMakerInternalMap.WeakKeyDummyValueEntry<K>,MapMakerInternalMap.WeakKeyDummyValueSegment<K>> map, int initialCapacity, int maxSegmentSize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MapMakerInternalMap.WeakKeyDummyValueEntry<K>
castForTesting(MapMakerInternalMap.InternalEntry<K,MapMaker.Dummy,?> entry)
Unsafe cast of the given entry toE
, the type of the specificMapMakerInternalMap.InternalEntry
implementation type.(package private) java.lang.ref.ReferenceQueue<K>
getKeyReferenceQueueForTesting()
Unsafely extracts the key reference queue used by this segment.(package private) void
maybeClearReferenceQueues()
Clears the reference queues used by this segment, if any.(package private) void
maybeDrainReferenceQueues()
Drains the reference queues used by this segment, if any.(package private) MapMakerInternalMap.WeakKeyDummyValueSegment<K>
self()
-
Methods inherited from class com.google.common.collect.MapMakerInternalMap.Segment
clear, clearReferenceQueue, clearValueForTesting, containsKey, containsValue, copyEntry, copyForTesting, drainKeyReferenceQueue, drainValueReferenceQueue, expand, get, getEntry, getFirst, getLiveEntry, getLiveValue, getLiveValueForTesting, getValueReferenceQueueForTesting, getWeakValueReferenceForTesting, initTable, isCollected, newEntryArray, newEntryForTesting, newWeakValueReferenceForTesting, postReadCleanup, preWriteCleanup, put, reclaimKey, reclaimValue, remove, remove, removeEntryForTesting, removeFromChain, removeFromChainForTesting, removeTableEntryForTesting, replace, replace, runCleanup, runLockedCleanup, setTableEntryForTesting, setValue, setValueForTesting, setWeakValueReferenceForTesting, tryDrainReferenceQueues
-
Methods inherited from class java.util.concurrent.locks.ReentrantLock
getHoldCount, getOwner, getQueuedThreads, getQueueLength, getWaitingThreads, getWaitQueueLength, hasQueuedThread, hasQueuedThreads, hasWaiters, isFair, isHeldByCurrentThread, isLocked, lock, lockInterruptibly, newCondition, toString, tryLock, tryLock, unlock
-
-
-
-
Field Detail
-
queueForKeys
private final java.lang.ref.ReferenceQueue<K> queueForKeys
-
-
Constructor Detail
-
WeakKeyDummyValueSegment
WeakKeyDummyValueSegment(MapMakerInternalMap<K,MapMaker.Dummy,MapMakerInternalMap.WeakKeyDummyValueEntry<K>,MapMakerInternalMap.WeakKeyDummyValueSegment<K>> map, int initialCapacity, int maxSegmentSize)
-
-
Method Detail
-
self
MapMakerInternalMap.WeakKeyDummyValueSegment<K> self()
Description copied from class:MapMakerInternalMap.Segment
Returnsthis
up-casted to the specificMapMakerInternalMap.Segment
implementation typeS
.This method exists so that the
MapMakerInternalMap.Segment
code can be generic in terms ofS
, the type of the concrete implementation.- Specified by:
self
in classMapMakerInternalMap.Segment<K,MapMaker.Dummy,MapMakerInternalMap.WeakKeyDummyValueEntry<K>,MapMakerInternalMap.WeakKeyDummyValueSegment<K>>
-
getKeyReferenceQueueForTesting
java.lang.ref.ReferenceQueue<K> getKeyReferenceQueueForTesting()
Description copied from class:MapMakerInternalMap.Segment
Unsafely extracts the key reference queue used by this segment.
-
castForTesting
public MapMakerInternalMap.WeakKeyDummyValueEntry<K> castForTesting(MapMakerInternalMap.InternalEntry<K,MapMaker.Dummy,?> entry)
Description copied from class:MapMakerInternalMap.Segment
Unsafe cast of the given entry toE
, the type of the specificMapMakerInternalMap.InternalEntry
implementation type.This method is provided as a convenience for tests. Otherwise they'd need to be knowledgable about all the implementation details of our type system trickery.
- Specified by:
castForTesting
in classMapMakerInternalMap.Segment<K,MapMaker.Dummy,MapMakerInternalMap.WeakKeyDummyValueEntry<K>,MapMakerInternalMap.WeakKeyDummyValueSegment<K>>
-
maybeDrainReferenceQueues
void maybeDrainReferenceQueues()
Description copied from class:MapMakerInternalMap.Segment
Drains the reference queues used by this segment, if any.
-
maybeClearReferenceQueues
void maybeClearReferenceQueues()
Description copied from class:MapMakerInternalMap.Segment
Clears the reference queues used by this segment, if any.
-
-