## 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
`static int` `DEFAULT_BUFFERED_BLOCKS`

Fields inherited from class org.apache.lucene.util.IntBlockPool.Allocator
`blockSize`

Constructor Summary
`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
`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-2013 Apache Software Foundation. All Rights Reserved.