org.apache.lucene.util
Class IntBlockPool

java.lang.Object
  extended by 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.