Package org.apache.avro.util.springframework

# Class ConcurrentReferenceHashMap.Segment

java.lang.Object
java.util.concurrent.locks.ReentrantLock
org.apache.avro.util.springframework.ConcurrentReferenceHashMap.Segment

All Implemented Interfaces:
  `Serializable`, `Lock`

Enclosing class:
  `ConcurrentReferenceHashMap<K,V>`

protected final class ConcurrentReferenceHashMap.Segment extends ReentrantLock
A single segment used to divide the map to allow better concurrent performance.

See Also:
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`Segment(int initialSize, int resizeThreshold)`

## Method Summary

Modifier and Type
Method
Description
`void`
`clear()`
Clear all items from this segment.
`<T> T`
`doTask(int hash, Object key, ConcurrentReferenceHashMap<K,V>.org.apache.avro.util.springframework.ConcurrentReferenceHashMap.Task<T> task)`
Apply an update operation to this segment.
`int`
`getCount()`
Return the total number of references in this segment.
`ConcurrentReferenceHashMap.Reference<K,V>`
`getReference(Object key, int hash, ConcurrentReferenceHashMap.Restructure restructure)`
`int`
`getSize()`
Return the size of the current references array.

### 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`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### Segment

public Segment(int initialSize, int resizeThreshold)

## Method Details

### getReference

@Nullable public ConcurrentReferenceHashMap.Reference<K,V> getReference(@Nullable Object key, int hash, ConcurrentReferenceHashMap.Restructure restructure)

### doTask

@Nullable public <T> T doTask(int hash, @Nullable Object key, ConcurrentReferenceHashMap<K,V>.org.apache.avro.util.springframework.ConcurrentReferenceHashMap.Task<T> task)
Apply an update operation to this segment. The segment will be locked during the update.

Parameters:
  `hash` - the hash of the key
  `key` - the key
  `task` - the update operation
Returns:
  the result of the operation

### clear

public void clear()
Clear all items from this segment.

### getSize

public int getSize()
Return the size of the current references array.

### getCount

public int getCount()
Return the total number of references in this segment.