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
    Modifier and Type | Method and Description
    --- | ---
    `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.

Copyright © 2009–2024 The Apache Software Foundation. All rights reserved.