com.fasterxml.jackson.core.util
Class BufferRecycler

java.lang.Object
  extended by com.fasterxml.jackson.core.util.BufferRecycler

public 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.


Field Summary
protected  byte[][] _byteBuffers
           
protected  char[][] _charBuffers
           
static int BYTE_BASE64_CODEC_BUFFER
          Buffer used for concatenating binary data that is either being encoded as base64 output, or decoded from base64 input.
static int BYTE_READ_IO_BUFFER
          Buffer used for reading byte-based input.
static int BYTE_WRITE_CONCAT_BUFFER
          Buffer used for temporarily concatenating output; used for example when requesting output as byte array.
static int BYTE_WRITE_ENCODING_BUFFER
          Buffer used for temporarily storing encoded content; used for example by UTF-8 encoding writer
static int CHAR_CONCAT_BUFFER
           
static int CHAR_NAME_COPY_BUFFER
           
static int CHAR_TEXT_BUFFER
           
static int CHAR_TOKEN_BUFFER
           
 
Constructor Summary
  BufferRecycler()
          Default constructor used for creating instances of this default implementation.
protected BufferRecycler(int bbCount, int cbCount)
          Alternate constructor to be used by sub-classes, to allow customization of number of low-level buffers in use.
 
Method Summary
 byte[] allocByteBuffer(int ix)
           
 byte[] allocByteBuffer(int ix, int minSize)
           
 char[] allocCharBuffer(int ix)
           
 char[] allocCharBuffer(int ix, int minSize)
           
protected  byte[] balloc(int size)
           
protected  int byteBufferLength(int ix)
           
protected  char[] calloc(int size)
           
protected  int charBufferLength(int ix)
           
 void releaseByteBuffer(int ix, byte[] buffer)
           
 void releaseCharBuffer(int ix, char[] buffer)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BYTE_READ_IO_BUFFER

public static final int BYTE_READ_IO_BUFFER
Buffer used for reading byte-based input.

See Also:
Constant Field Values

BYTE_WRITE_ENCODING_BUFFER

public static final int BYTE_WRITE_ENCODING_BUFFER
Buffer used for temporarily storing encoded content; used for example by UTF-8 encoding writer

See Also:
Constant Field Values

BYTE_WRITE_CONCAT_BUFFER

public static final int BYTE_WRITE_CONCAT_BUFFER
Buffer used for temporarily concatenating output; used for example when requesting output as byte array.

See Also:
Constant Field Values

BYTE_BASE64_CODEC_BUFFER

public static final int BYTE_BASE64_CODEC_BUFFER
Buffer used for concatenating binary data that is either being encoded as base64 output, or decoded from base64 input.

Since:
2.1
See Also:
Constant Field Values

CHAR_TOKEN_BUFFER

public static final int CHAR_TOKEN_BUFFER
See Also:
Constant Field Values

CHAR_CONCAT_BUFFER

public static final int CHAR_CONCAT_BUFFER
See Also:
Constant Field Values

CHAR_TEXT_BUFFER

public static final int CHAR_TEXT_BUFFER
See Also:
Constant Field Values

CHAR_NAME_COPY_BUFFER

public static final int CHAR_NAME_COPY_BUFFER
See Also:
Constant Field Values

_byteBuffers

protected final byte[][] _byteBuffers

_charBuffers

protected final char[][] _charBuffers
Constructor Detail

BufferRecycler

public BufferRecycler()
Default constructor used for creating instances of this default implementation.


BufferRecycler

protected BufferRecycler(int bbCount,
                         int cbCount)
Alternate constructor to be used by sub-classes, to allow customization of number of low-level buffers in use.

Since:
2.4
Method Detail

allocByteBuffer

public final byte[] allocByteBuffer(int ix)
Parameters:
ix - One of READ_IO_BUFFER constants.

allocByteBuffer

public byte[] allocByteBuffer(int ix,
                              int minSize)

releaseByteBuffer

public final void releaseByteBuffer(int ix,
                                    byte[] buffer)

allocCharBuffer

public final char[] allocCharBuffer(int ix)

allocCharBuffer

public char[] allocCharBuffer(int ix,
                              int minSize)

releaseCharBuffer

public void releaseCharBuffer(int ix,
                              char[] buffer)

byteBufferLength

protected int byteBufferLength(int ix)

charBufferLength

protected int charBufferLength(int ix)

balloc

protected byte[] balloc(int size)

calloc

protected char[] calloc(int size)


Copyright © 2008-2016 FasterXML. All Rights Reserved.