Class NonBlockingByteBufferJsonParser

  • All Implemented Interfaces:
    ByteBufferFeeder, NonBlockingInputFeeder, Versioned, java.io.Closeable, java.lang.AutoCloseable

    public class NonBlockingByteBufferJsonParser
    extends NonBlockingUtf8JsonParserBase
    implements ByteBufferFeeder
    Non-blocking parser implementation for JSON content that takes its input via ByteBuffer instance(s) passed.

    NOTE: only supports parsing of UTF-8 encoded content (and 7-bit US-ASCII since it is strict subset of UTF-8): other encodings are not supported.

    Since:
    2.14
    • Method Detail

      • getNonBlockingInputFeeder

        public NonBlockingInputFeeder getNonBlockingInputFeeder()
        Description copied from class: JsonParser
        Method that will either return a feeder instance (if parser uses non-blocking, aka asynchronous access); or null for parsers that use blocking I/O.
        Overrides:
        getNonBlockingInputFeeder in class JsonParser
        Returns:
        Input feeder to use with non-blocking (async) parsing
      • feedInput

        public void feedInput​(java.nio.ByteBuffer byteBuffer)
                       throws java.io.IOException
        Description copied from interface: ByteBufferFeeder
        Method that can be called to feed more data, if (and only if) NonBlockingInputFeeder.needMoreInput() returns true.
        Specified by:
        feedInput in interface ByteBufferFeeder
        Parameters:
        byteBuffer - Buffer that contains additional input to read
        Throws:
        java.io.IOException - if the state is such that this method should not be called (has not yet consumed existing input data, or has been marked as closed)
      • releaseBuffered

        public int releaseBuffered​(java.io.OutputStream out)
                            throws java.io.IOException
        Description copied from class: JsonParser
        Method that can be called to push back any content that has been read but not consumed by the parser. This is usually done after reading all content of interest using parser. Content is released by writing it to given stream if possible; if underlying input is byte-based it can released, if not (char-based) it can not.
        Specified by:
        releaseBuffered in class NonBlockingJsonParserBase
        Parameters:
        out - OutputStream to which buffered, undecoded content is written to
        Returns:
        -1 if the underlying content source is not byte based (that is, input can not be sent to OutputStream; otherwise number of bytes released (0 if there was nothing to release)
        Throws:
        java.io.IOException - if write to stream threw exception