## org.apache.lucene.util
Class IntBlockPool

    java.lang.Object
      org.apache.lucene.util.IntBlockPool

    public final class IntBlockPool

extends Object

A pool for int blocks similar to `ByteBlockPool`

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

Nested Class Summary
`static class` `IntBlockPool.Allocator` Abstract class for allocating and freeing int blocks.
`static class` `IntBlockPool.DirectAllocator` A simple `IntBlockPool.Allocator` that never recycles.
`static class` `IntBlockPool.SliceReader` A `IntBlockPool.SliceReader` that can read int slices written by a `IntBlockPool.SliceWriter`
`static class` `IntBlockPool.SliceWriter` A `IntBlockPool.SliceWriter` that allows to write multiple integer slices into a given `IntBlockPool`.

Field Summary
`int[]` `buffer` Current head buffer
`int[][]` `buffers` array of buffers currently used in the pool.
`static int` `INT_BLOCK_MASK`
`static int` `INT_BLOCK_SHIFT`
`static int` `INT_BLOCK_SIZE`
`int` `intOffset` Current head offset
`int` `intUpto` Pointer to the current position in head buffer

Constructor Summary
`IntBlockPool()` Creates a new `IntBlockPool` with a default `IntBlockPool.Allocator`.
`IntBlockPool(IntBlockPool.Allocator allocator)` Creates a new `IntBlockPool` with the given `IntBlockPool.Allocator`.

Method Summary
`void` `nextBuffer()` Advances the pool to its next buffer.
`void` `reset()` Resets the pool to its initial state reusing the first buffer.
`void` `reset(boolean zeroFillBuffers, boolean reuseFirst)` Expert: Resets the pool to its initial state reusing the first buffer.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### INT_BLOCK_SHIFT

    public static final int INT_BLOCK_SHIFT

See Also:
  Constant Field Values

### INT_BLOCK_SIZE

    public static final int INT_BLOCK_SIZE

See Also:
  Constant Field Values

### INT_BLOCK_MASK

    public static final int INT_BLOCK_MASK

See Also:
  Constant Field Values

### buffers

    public int[][] buffers

  array of buffers currently used in the pool. Buffers are allocated if needed don't modify this outside of this class

### intUpto

    public int intUpto

  Pointer to the current position in head buffer

### buffer

    public int[] buffer

  Current head buffer

### intOffset

    public int intOffset

  Current head offset

Constructor Detail

### IntBlockPool

    public IntBlockPool()

  Creates a new `IntBlockPool` with a default `IntBlockPool.Allocator`.

  See Also:
    `nextBuffer()`

### IntBlockPool

    public IntBlockPool(IntBlockPool.Allocator allocator)

  Creates a new `IntBlockPool` with the given `IntBlockPool.Allocator`.

  See Also:
    `nextBuffer()`

Method Detail

### reset

    public void reset()

  Resets the pool to its initial state reusing the first buffer. Calling `nextBuffer()` is not needed after reset.

### reset

    public void reset(boolean zeroFillBuffers,
                      boolean reuseFirst)

  Expert: Resets the pool to its initial state reusing the first buffer.

  Parameters:
    `zeroFillBuffers` - if `true` the buffers are filled with `0`. This should be set to `true` if this pool is used with `IntBlockPool.SliceWriter`.
    `reuseFirst` - if `true` the first buffer will be reused and calling `nextBuffer()` is not needed after reset iff the block pool was used before ie. `nextBuffer()` was called before.

### nextBuffer

    public void nextBuffer()

  Advances the pool to its next buffer. This method should be called once after the constructor to initialize the pool. In contrast to the constructor a `reset()` call will advance the pool to its first buffer immediately.

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