com.fasterxml.jackson.core.io

Class IOContext



  • public class IOContext
    extends Object
    To limit number of configuration and state objects to pass, all contextual objects that need to be passed by the factory to readers and writers are combined under this object. One instance is created for each reader and writer.

    NOTE: non-final since 2.4, to allow sub-classing.

    • Field Detail

      • _contentReference

        protected final ContentReference _contentReference
        Reference to the source object, which can be used for displaying location information
      • _encoding

        protected JsonEncoding _encoding
        Encoding used by the underlying stream, if known.
      • _managedResource

        protected final boolean _managedResource
        Flag that indicates whether underlying input/output source/target object is fully managed by the owner of this context (parser or generator). If true, it is, and is to be closed by parser/generator; if false, calling application has to do closing (unless auto-closing feature is enabled for the parser/generator in question; in which case it acts like the owner).
      • _bufferRecycler

        protected final BufferRecycler _bufferRecycler
        Recycler used for actual allocation/deallocation/reuse
      • _readIOBuffer

        protected byte[] _readIOBuffer
        Reference to the allocated I/O buffer for low-level input reading, if any allocated.
      • _writeEncodingBuffer

        protected byte[] _writeEncodingBuffer
        Reference to the allocated I/O buffer used for low-level encoding-related buffering.
      • _base64Buffer

        protected byte[] _base64Buffer
        Reference to the buffer allocated for temporary use with base64 encoding or decoding.
      • _tokenCBuffer

        protected char[] _tokenCBuffer
        Reference to the buffer allocated for tokenization purposes, in which character input is read, and from which it can be further returned.
      • _concatCBuffer

        protected char[] _concatCBuffer
        Reference to the buffer allocated for buffering it for output, before being encoded: generally this means concatenating output, then encoding when buffer fills up.
      • _nameCopyBuffer

        protected char[] _nameCopyBuffer
        Reference temporary buffer Parser instances need if calling app decides it wants to access name via 'getTextCharacters' method. Regular text buffer can not be used as it may contain textual representation of the value token.
    • Constructor Detail

      • IOContext

        public IOContext(BufferRecycler br,
                         ContentReference contentRef,
                         boolean managedResource)
        Main constructor to use.
        Parameters:
        br - BufferRecycler to use, if any (null if none)
        contentRef - Input source reference for location reporting
        managedResource - Whether input source is managed (owned) by Jackson library
        Since:
        2.13
    • Method Detail

      • isResourceManaged

        public boolean isResourceManaged()
      • contentReference

        public ContentReference contentReference()
        Accessor for getting (some) information about input source, mostly usable for error reporting purposes.
        Returns:
        Reference to input source
        Since:
        2.13
      • constructTextBuffer

        public TextBuffer constructTextBuffer()
      • allocReadIOBuffer

        public byte[] allocReadIOBuffer()
        Method for recycling or allocation byte buffer of "read I/O" type.

        Note: the method can only be called once during its life cycle. This is to protect against accidental sharing.

        Returns:
        Allocated or recycled byte buffer
      • allocReadIOBuffer

        public byte[] allocReadIOBuffer(int minSize)
        Variant of allocReadIOBuffer() that specifies smallest acceptable buffer size.
        Parameters:
        minSize - Minimum size of the buffer to recycle or allocate
        Returns:
        Allocated or recycled byte buffer
        Since:
        2.4
      • allocWriteEncodingBuffer

        public byte[] allocWriteEncodingBuffer()
        Method for recycling or allocation byte buffer of "write encoding" type.

        Note: the method can only be called once during its life cycle. This is to protect against accidental sharing.

        Returns:
        Allocated or recycled byte buffer
      • allocWriteEncodingBuffer

        public byte[] allocWriteEncodingBuffer(int minSize)
        Variant of allocWriteEncodingBuffer() that specifies smallest acceptable buffer size.
        Parameters:
        minSize - Minimum size of the buffer to recycle or allocate
        Returns:
        Allocated or recycled byte buffer
        Since:
        2.4
      • allocBase64Buffer

        public byte[] allocBase64Buffer()
        Method for recycling or allocation byte buffer of "base 64 encode/decode" type.

        Note: the method can only be called once during its life cycle. This is to protect against accidental sharing.

        Returns:
        Allocated or recycled byte buffer
      • allocBase64Buffer

        public byte[] allocBase64Buffer(int minSize)
        Variant of allocBase64Buffer() that specifies smallest acceptable buffer size.
        Parameters:
        minSize - Minimum size of the buffer to recycle or allocate
        Returns:
        Allocated or recycled byte buffer
        Since:
        2.9
      • allocTokenBuffer

        public char[] allocTokenBuffer()
      • allocTokenBuffer

        public char[] allocTokenBuffer(int minSize)
      • allocConcatBuffer

        public char[] allocConcatBuffer()
      • allocNameCopyBuffer

        public char[] allocNameCopyBuffer(int minSize)
      • releaseReadIOBuffer

        public void releaseReadIOBuffer(byte[] buf)
        Method to call when all the processing buffers can be safely recycled.
        Parameters:
        buf - Buffer instance to release (return for recycling)
      • releaseWriteEncodingBuffer

        public void releaseWriteEncodingBuffer(byte[] buf)
      • releaseBase64Buffer

        public void releaseBase64Buffer(byte[] buf)
      • releaseTokenBuffer

        public void releaseTokenBuffer(char[] buf)
      • releaseConcatBuffer

        public void releaseConcatBuffer(char[] buf)
      • releaseNameCopyBuffer

        public void releaseNameCopyBuffer(char[] buf)
      • _verifyAlloc

        protected final void _verifyAlloc(Object buffer)
      • _verifyRelease

        protected final void _verifyRelease(byte[] toRelease,
                                            byte[] src)
      • _verifyRelease

        protected final void _verifyRelease(char[] toRelease,
                                            char[] src)

Copyright © 2008–2022 FasterXML. All rights reserved.