org.apache.lucene.util

## Class RecyclingIntBlockAllocator

- java.lang.Object
- - org.apache.lucene.util.IntBlockPool.Allocator
  - - org.apache.lucene.util.RecyclingIntBlockAllocator

-     public final class RecyclingIntBlockAllocator
      extends IntBlockPool.Allocator

  A `IntBlockPool.Allocator` implementation that recycles unused int blocks in a buffer and reuses them in subsequent calls to `getIntBlock()`.

  Note: This class is not thread-safe

  NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `DEFAULT_BUFFERED_BLOCKS`

    - ### Fields inherited from class org.apache.lucene.util.IntBlockPool.Allocator

      `blockSize`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RecyclingIntBlockAllocator()` Creates a new `RecyclingIntBlockAllocator` with a block size of `IntBlockPool.INT_BLOCK_SIZE`, upper buffered docs limit of `DEFAULT_BUFFERED_BLOCKS` (64).
    `RecyclingIntBlockAllocator(int blockSize, int maxBufferedBlocks)` Creates a new `RecyclingIntBlockAllocator`.
    `RecyclingIntBlockAllocator(int blockSize, int maxBufferedBlocks, Counter bytesUsed)` Creates a new `RecyclingIntBlockAllocator`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `long` | `bytesUsed()`
    `int` | `freeBlocks(int num)` Removes the given number of int blocks from the buffer if possible.
    `int[]` | `getIntBlock()`
    `int` | `maxBufferedBlocks()`
    `int` | `numBufferedBlocks()`
    `void` | `recycleIntBlocks(int[][] blocks, int start, int end)`

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

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

- - ### Field Detail

    - #### DEFAULT_BUFFERED_BLOCKS

          public static final int DEFAULT_BUFFERED_BLOCKS

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### RecyclingIntBlockAllocator

          public RecyclingIntBlockAllocator(int blockSize,
                                            int maxBufferedBlocks,
                                            Counter bytesUsed)

      Creates a new `RecyclingIntBlockAllocator`
      Parameters:
        `blockSize` - the block size in bytes
        `maxBufferedBlocks` - maximum number of buffered int block
        `bytesUsed` - `Counter` reference counting internally allocated bytes

    - #### RecyclingIntBlockAllocator

          public RecyclingIntBlockAllocator(int blockSize,
                                            int maxBufferedBlocks)

      Creates a new `RecyclingIntBlockAllocator`.
      Parameters:
        `blockSize` - the size of each block returned by this allocator
        `maxBufferedBlocks` - maximum number of buffered int blocks

    - #### RecyclingIntBlockAllocator

          public RecyclingIntBlockAllocator()

      Creates a new `RecyclingIntBlockAllocator` with a block size of `IntBlockPool.INT_BLOCK_SIZE`, upper buffered docs limit of `DEFAULT_BUFFERED_BLOCKS` (64).

  - ### Method Detail

    - #### getIntBlock

          public int[] getIntBlock()

      Overrides:
        `getIntBlock` in class `IntBlockPool.Allocator`

    - #### recycleIntBlocks

          public void recycleIntBlocks(int[][] blocks,
                                       int start,
                                       int end)

      Specified by:
        `recycleIntBlocks` in class `IntBlockPool.Allocator`

    - #### numBufferedBlocks

          public int numBufferedBlocks()

      Returns:
        the number of currently buffered blocks

    - #### bytesUsed

          public long bytesUsed()

      Returns:
        the number of bytes currently allocated by this `IntBlockPool.Allocator`

    - #### maxBufferedBlocks

          public int maxBufferedBlocks()

      Returns:
        the maximum number of buffered byte blocks

    - #### freeBlocks

          public int freeBlocks(int num)

      Removes the given number of int blocks from the buffer if possible.
      Parameters:
        `num` - the number of int blocks to remove
      Returns:
        the number of actually removed buffers

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.