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 and Description
`Segment(int initialSize, int resizeThreshold)`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `clear()` Clear all items from this segment.
`<T> T` `doTask(int hash, Object key, 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 Detail

#### Segment

    public Segment(int initialSize,
                   int resizeThreshold)

### Method Detail

#### 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,
                                  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.