com.fasterxml.jackson.core.util

Class 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 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
      • _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–2017 FasterXML. All rights reserved.