org.codehaus.jackson.util
Class BufferRecycler

java.lang.Object
  extended by org.codehaus.jackson.util.BufferRecycler

public final class BufferRecycler
extends Object

This is a small utility class, whose main functionality is to allow simple reuse of raw byte/char buffers. It is usually used through ThreadLocal member of the owning class pointing to instance of this class through a SoftReference. The end result is a low-overhead GC-cleanable recycling: hopefully ideal for use by stream readers.


Nested Class Summary
static class BufferRecycler.ByteBufferType
           
static class BufferRecycler.CharBufferType
           
 
Field Summary
static int DEFAULT_WRITE_CONCAT_BUFFER_LEN
           
protected  byte[][] mByteBuffers
           
protected  char[][] mCharBuffers
           
 
Constructor Summary
BufferRecycler()
           
 
Method Summary
 byte[] allocByteBuffer(BufferRecycler.ByteBufferType type)
           
 char[] allocCharBuffer(BufferRecycler.CharBufferType type)
           
 char[] allocCharBuffer(BufferRecycler.CharBufferType type, int minSize)
           
 void releaseByteBuffer(BufferRecycler.ByteBufferType type, byte[] buffer)
           
 void releaseCharBuffer(BufferRecycler.CharBufferType type, char[] buffer)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_WRITE_CONCAT_BUFFER_LEN

public static final int DEFAULT_WRITE_CONCAT_BUFFER_LEN
See Also:
Constant Field Values

mByteBuffers

protected final byte[][] mByteBuffers

mCharBuffers

protected final char[][] mCharBuffers
Constructor Detail

BufferRecycler

public BufferRecycler()
Method Detail

allocByteBuffer

public byte[] allocByteBuffer(BufferRecycler.ByteBufferType type)

releaseByteBuffer

public void releaseByteBuffer(BufferRecycler.ByteBufferType type,
                              byte[] buffer)

allocCharBuffer

public char[] allocCharBuffer(BufferRecycler.CharBufferType type)

allocCharBuffer

public char[] allocCharBuffer(BufferRecycler.CharBufferType type,
                              int minSize)

releaseCharBuffer

public void releaseCharBuffer(BufferRecycler.CharBufferType type,
                              char[] buffer)