org.apache.lucene.util
Class RecyclingIntBlockAllocator

java.lang.Object
  extended by org.apache.lucene.util.IntBlockPool.Allocator
      extended by 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.