org.elasticsearch.common.compress.lzf
Class BufferRecycler

java.lang.Object
  extended by org.elasticsearch.common.compress.lzf.BufferRecycler

public class BufferRecycler
extends java.lang.Object

Simple helper class to encapsulate details of basic buffer recycling scheme, which helps a lot (as per profiling) for smaller encoding cases.


Field Summary
protected static java.lang.ThreadLocal<java.lang.ref.SoftReference<BufferRecycler>> _recyclerRef
          This ThreadLocal contains a java.lang.ref.SoftRerefence to a BufferRecycler used to provide a low-cost buffer recycling for buffers we need for encoding, decoding.
 
Constructor Summary
BufferRecycler()
           
 
Method Summary
 byte[] allocDecodeBuffer(int size)
           
 byte[] allocEncodingBuffer(int minSize)
           
 int[] allocEncodingHash(int suggestedSize)
           
 byte[] allocInputBuffer(int minSize)
           
 byte[] allocOutputBuffer(int minSize)
           
static void clean()
           
static BufferRecycler instance()
          Accessor to get thread-local recycler instance
 void releaseDecodeBuffer(byte[] buffer)
           
 void releaseEncodeBuffer(byte[] buffer)
           
 void releaseEncodingHash(int[] buffer)
           
 void releaseInputBuffer(byte[] buffer)
           
 void releaseOutputBuffer(byte[] buffer)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_recyclerRef

protected static final java.lang.ThreadLocal<java.lang.ref.SoftReference<BufferRecycler>> _recyclerRef
This ThreadLocal contains a java.lang.ref.SoftRerefence to a BufferRecycler used to provide a low-cost buffer recycling for buffers we need for encoding, decoding.

Constructor Detail

BufferRecycler

public BufferRecycler()
Method Detail

instance

public static BufferRecycler instance()
Accessor to get thread-local recycler instance


clean

public static void clean()

allocEncodingBuffer

public byte[] allocEncodingBuffer(int minSize)

releaseEncodeBuffer

public void releaseEncodeBuffer(byte[] buffer)

allocOutputBuffer

public byte[] allocOutputBuffer(int minSize)

releaseOutputBuffer

public void releaseOutputBuffer(byte[] buffer)

allocEncodingHash

public int[] allocEncodingHash(int suggestedSize)

releaseEncodingHash

public void releaseEncodingHash(int[] buffer)

allocInputBuffer

public byte[] allocInputBuffer(int minSize)

releaseInputBuffer

public void releaseInputBuffer(byte[] buffer)

allocDecodeBuffer

public byte[] allocDecodeBuffer(int size)

releaseDecodeBuffer

public void releaseDecodeBuffer(byte[] buffer)