com.fasterxml.jackson.core.json.async

## Class NonBlockingJsonParser

- java.lang.Object
- - com.fasterxml.jackson.core.JsonParser
  - - com.fasterxml.jackson.core.base.ParserMinimalBase
    - - com.fasterxml.jackson.core.base.ParserBase
      - - com.fasterxml.jackson.core.json.JsonParserBase
        - - com.fasterxml.jackson.core.json.async.NonBlockingJsonParserBase
          - - com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase
            - - com.fasterxml.jackson.core.json.async.NonBlockingJsonParser

All Implemented Interfaces:
  ByteArrayFeeder, NonBlockingInputFeeder, Versioned, Closeable, AutoCloseable

    public class NonBlockingJsonParser
    extends NonBlockingUtf8JsonParserBase
    implements ByteArrayFeeder

Non-blocking parser implementation for JSON content that takes its input via `byte[]` 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.9

### Nested Class Summary

### Nested classes/interfaces inherited from class com.fasterxml.jackson.core.JsonParser

`JsonParser.Feature, JsonParser.NumberType, JsonParser.NumberTypeFP`

### Field Summary

### Fields inherited from class com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase

`_icLatin1, _origBufferLen`

### Fields inherited from class com.fasterxml.jackson.core.json.async.NonBlockingJsonParserBase

`_currBufferStart, _currInputRowAlt, _endOfInput, _majorState, _majorStateAfterValue, _minorState, _minorStateAfterSplit, _nonStdTokenType, _pending32, _pendingBytes, _quad1, _quadBuffer, _quadLength, _quoted32, _quotedDigits, _symbols, MAJOR_ARRAY_ELEMENT_FIRST, MAJOR_ARRAY_ELEMENT_NEXT, MAJOR_CLOSED, MAJOR_INITIAL, MAJOR_OBJECT_FIELD_FIRST, MAJOR_OBJECT_FIELD_NEXT, MAJOR_OBJECT_VALUE, MAJOR_ROOT, MINOR_COMMENT_C, MINOR_COMMENT_CLOSING_ASTERISK, MINOR_COMMENT_CPP, MINOR_COMMENT_LEADING_SLASH, MINOR_COMMENT_YAML, MINOR_FIELD_APOS_NAME, MINOR_FIELD_LEADING_COMMA, MINOR_FIELD_LEADING_WS, MINOR_FIELD_NAME, MINOR_FIELD_NAME_ESCAPE, MINOR_FIELD_UNQUOTED_NAME, MINOR_NUMBER_EXPONENT_DIGITS, MINOR_NUMBER_EXPONENT_MARKER, MINOR_NUMBER_FRACTION_DIGITS, MINOR_NUMBER_INTEGER_DIGITS, MINOR_NUMBER_MINUS, MINOR_NUMBER_MINUSZERO, MINOR_NUMBER_PLUS, MINOR_NUMBER_ZERO, MINOR_ROOT_BOM, MINOR_ROOT_GOT_SEPARATOR, MINOR_ROOT_NEED_SEPARATOR, MINOR_VALUE_APOS_STRING, MINOR_VALUE_EXPECTING_COLON, MINOR_VALUE_EXPECTING_COMMA, MINOR_VALUE_LEADING_WS, MINOR_VALUE_STRING, MINOR_VALUE_STRING_ESCAPE, MINOR_VALUE_STRING_UTF8_2, MINOR_VALUE_STRING_UTF8_3, MINOR_VALUE_STRING_UTF8_4, MINOR_VALUE_TOKEN_ERROR, MINOR_VALUE_TOKEN_FALSE, MINOR_VALUE_TOKEN_NON_STD, MINOR_VALUE_TOKEN_NULL, MINOR_VALUE_TOKEN_TRUE, MINOR_VALUE_WS_AFTER_COMMA, NON_STD_TOKEN_INFINITY, NON_STD_TOKEN_MINUS_INFINITY, NON_STD_TOKEN_NAN, NON_STD_TOKEN_PLUS_INFINITY, NON_STD_TOKEN_VALUES, NON_STD_TOKENS`

### Fields inherited from class com.fasterxml.jackson.core.json.JsonParserBase

`_objectCodec, FEAT_MASK_ALLOW_CTRL_RS, FEAT_MASK_NON_NUM_NUMBERS, INPUT_CODES_LATIN1, INPUT_CODES_UTF8`

### Fields inherited from class com.fasterxml.jackson.core.base.ParserBase

`_binaryValue, _byteArrayBuilder, _closed, _currInputProcessed, _currInputRow, _currInputRowStart, _expLength, _fractLength, _inputEnd, _inputPtr, _intLength, _ioContext, _nameCopied, _nameCopyBuffer, _nextToken, _numberBigDecimal, _numberBigInt, _numberDouble, _numberFloat, _numberInt, _numberIsNaN, _numberLong, _numberNegative, _numberString, _numTypesValid, _parsingContext, _textBuffer, _tokenInputCol, _tokenInputRow, _tokenInputTotal, JSON_READ_CAPABILITIES`

### Fields inherited from class com.fasterxml.jackson.core.base.ParserMinimalBase

`_currToken, _lastClearedToken, _streamReadConstraints, _tokenCount, _trackMaxTokenCount, BD_MAX_INT, BD_MAX_LONG, BD_MIN_INT, BD_MIN_LONG, BI_MAX_INT, BI_MAX_LONG, BI_MIN_INT, BI_MIN_LONG, CHAR_NULL, INT_0, INT_9, INT_APOS, INT_ASTERISK, INT_BACKSLASH, INT_COLON, INT_COMMA, INT_CR, INT_e, INT_E, INT_HASH, INT_LBRACKET, INT_LCURLY, INT_LF, INT_MINUS, INT_PERIOD, INT_PLUS, INT_QUOTE, INT_RBRACKET, INT_RCURLY, INT_RS, INT_SLASH, INT_SPACE, INT_TAB, MAX_ERROR_TOKEN_LENGTH, MAX_INT_D, MAX_INT_L, MAX_LONG_D, MIN_INT_D, MIN_INT_L, MIN_LONG_D, NO_BYTES, NO_INTS, NR_BIGDECIMAL, NR_BIGINT, NR_DOUBLE, NR_FLOAT, NR_INT, NR_LONG, NR_UNKNOWN`

### Fields inherited from class com.fasterxml.jackson.core.JsonParser

`_features, _requestPayload, DEFAULT_READ_CAPABILITIES`

### Constructor Summary

Constructors
Constructor and Description
`NonBlockingJsonParser(IOContext ctxt, int parserFeatures, ByteQuadsCanonicalizer sym)`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `feedInput(byte[] buf, int start, int end)` Method that can be called to feed more data, if (and only if) `NonBlockingInputFeeder.needMoreInput()` returns true.
`protected byte` `getByteFromBuffer(int ptr)`
`protected byte` `getNextSignedByteFromBuffer()`
`protected int` `getNextUnsignedByteFromBuffer()`
`ByteArrayFeeder` `getNonBlockingInputFeeder()` 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.
`int` `releaseBuffered(OutputStream out)` Method that can be called to push back any content that has been read but not consumed by the parser.

### Methods inherited from class com.fasterxml.jackson.core.json.async.NonBlockingUtf8JsonParserBase

`_decodeEscaped, _finishErrorToken, _finishErrorTokenWithEOF, _finishFieldWithEscape, _finishFloatExponent, _finishFloatFraction, _finishKeywordToken, _finishKeywordTokenWithEOF, _finishNonStdToken, _finishNonStdTokenWithEOF, _finishNumberIntegralPart, _finishNumberLeadingNegZeroes, _finishNumberLeadingPosNegZeroes, _finishNumberLeadingPosZeroes, _finishNumberLeadingZeroes, _finishNumberMinus, _finishNumberPlus, _finishNumberPlusMinus, _finishToken, _finishTokenWithEOF, _reportErrorToken, _startAposString, _startFalseToken, _startFloat, _startFloatThatStartsWithPeriod, _startNegativeNumber, _startNullToken, _startNumberLeadingZero, _startPositiveNumber, _startPositiveNumber, _startString, _startTrueToken, _startUnexpectedValue, endOfInput, needMoreInput, nextToken`

### Methods inherited from class com.fasterxml.jackson.core.json.async.NonBlockingJsonParserBase

`_addName, _closeArrayScope, _closeInput, _closeObjectScope, _currentLocationMinusOne, _eofAsNextToken, _fieldComplete, _findName, _findName, _findName, _getText2, _nonStdToken, _padLastQuad, _releaseBuffers, _reportInvalidChar, _reportInvalidInitial, _reportInvalidOther, _reportInvalidOther, _startArrayScope, _startObjectScope, _updateTokenLocation, _valueComplete, _valueCompleteInt, _valueNonStdNumberComplete, canParseAsync, currentLocation, currentTokenLocation, getBinaryValue, getEmbeddedObject, getInputSource, getText, getText, getTextCharacters, getTextLength, getTextOffset, getValueAsString, getValueAsString, hasTextCharacters, readBinaryValue, setCodec, symbolTableForTests`

### Methods inherited from class com.fasterxml.jackson.core.json.JsonParserBase

`_isAllowedCtrlCharRS, getCodec, getCurrentLocation, getNumberTypeFP, getReadCapabilities, getTokenLocation`

### Methods inherited from class com.fasterxml.jackson.core.base.ParserBase

`_checkStdFeatureChanges, _contentReference, _contentReferenceRedacted, _convertBigDecimalToBigInteger, _decodeBase64Escape, _decodeBase64Escape, _eofAsNextChar, _finishString, _getBigDecimal, _getBigInteger, _getByteArrayBuilder, _getNumberDouble, _getNumberFloat, _getSourceReference, _growNameDecodeBuffer, _handleBase64MissingPadding, _handleEOF, _handleUnrecognizedCharacterEscape, _parseIntValue, _parseNumericValue, _reportExtraEndMarker, _reportMismatchedEndMarker, _reportTooLongIntegral, _throwUnquotedSpace, _validJsonTokenList, _validJsonValueList, assignCurrentValue, close, convertNumberToBigDecimal, convertNumberToBigInteger, convertNumberToDouble, convertNumberToFloat, convertNumberToInt, convertNumberToLong, createChildArrayContext, createChildObjectContext, currentValue, disable, enable, getBigIntegerValue, getCurrentName, getDecimalValue, getDoubleValue, getFloatValue, getIntValue, getLongValue, getNumberType, getNumberValue, getNumberValueDeferred, getNumberValueExact, getParsingContext, getTokenCharacterOffset, getTokenColumnNr, getTokenLineNr, growArrayBy, isClosed, isNaN, loadMore, loadMoreGuaranteed, overrideCurrentName, overrideStdFeatures, reportInvalidBase64Char, reportInvalidBase64Char, reset, resetAsNaN, resetFloat, resetInt, setFeatureMask, version`

### Methods inherited from class com.fasterxml.jackson.core.base.ParserMinimalBase

`_ascii, _asciiBytes, _constructError, _decodeBase64, _getCharDesc, _hasTextualNull, _longIntegerDesc, _longNumberDesc, _nullSafeUpdateToken, _reportError, _reportError, _reportError, _reportInputCoercion, _reportInvalidEOF, _reportInvalidEOF, _reportInvalidEOFInValue, _reportMissingRootWS, _reportUnexpectedChar, _reportUnexpectedNumberChar, _throwInternal, _throwInternalReturnAny, _throwInvalidSpace, _updateToken, _updateTokenToNA, _updateTokenToNull, _wrapError, clearCurrentToken, currentToken, currentTokenCount, currentTokenId, getCurrentToken, getCurrentTokenId, getLastClearedToken, getValueAsBoolean, getValueAsDouble, getValueAsInt, getValueAsInt, getValueAsLong, getValueAsLong, hasCurrentToken, hasToken, hasTokenId, isExpectedNumberIntToken, isExpectedStartArrayToken, isExpectedStartObjectToken, nextValue, reportInvalidNumber, reportOverflowInt, reportOverflowInt, reportOverflowInt, reportOverflowLong, reportOverflowLong, reportOverflowLong, reportUnexpectedNumberChar, skipChildren, streamReadConstraints`

### Methods inherited from class com.fasterxml.jackson.core.JsonParser

`_codec, _constructError, _constructReadException, _constructReadException, _constructReadException, _constructReadException, _constructReadException, _constructReadException, _reportUnsupportedOperation, canReadObjectId, canReadTypeId, canUseSchema, configure, currentName, finishToken, getBinaryValue, getBooleanValue, getByteValue, getCurrentValue, getFeatureMask, getFormatFeatures, getObjectId, getSchema, getShortValue, getTypeId, getValueAsBoolean, getValueAsDouble, isEnabled, isEnabled, nextBooleanValue, nextFieldName, nextFieldName, nextIntValue, nextLongValue, nextTextValue, overrideFormatFeatures, readBinaryValue, readValueAs, readValueAs, readValueAsTree, readValuesAs, readValuesAs, releaseBuffered, requiresCustomCodec, setCurrentValue, setRequestPayloadOnError, setRequestPayloadOnError, setRequestPayloadOnError, setSchema`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface com.fasterxml.jackson.core.async.NonBlockingInputFeeder

`endOfInput, needMoreInput`

### Constructor Detail

#### NonBlockingJsonParser

    public NonBlockingJsonParser(IOContext ctxt,
                                 int parserFeatures,
                                 ByteQuadsCanonicalizer sym)

### Method Detail

#### getNonBlockingInputFeeder

    public ByteArrayFeeder 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(byte[] buf,
                          int start,
                          int end)
                   throws IOException

Description copied from interface: `ByteArrayFeeder`
Method that can be called to feed more data, if (and only if) `NonBlockingInputFeeder.needMoreInput()` returns true.

Specified by:
  `feedInput` in interface `ByteArrayFeeder`
Parameters:
  `buf` - Byte array that contains data to feed: caller must ensure data remains stable until it is fully processed (which is true when `NonBlockingInputFeeder.needMoreInput()` returns true)
  `start` - Offset within array where input data to process starts
  `end` - Offset after last byte contained in the input array
Throws:
  `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(OutputStream out)
                        throws 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 cannot.

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 cannot be sent to `OutputStream`; otherwise number of bytes released (0 if there was nothing to release)
Throws:
  `IOException` - if write to stream threw exception

#### getNextSignedByteFromBuffer

    protected byte getNextSignedByteFromBuffer()

Specified by:
  `getNextSignedByteFromBuffer` in class `NonBlockingUtf8JsonParserBase`
Returns:
  next signed byte from the buffer

#### getNextUnsignedByteFromBuffer

    protected int getNextUnsignedByteFromBuffer()

Specified by:
  `getNextUnsignedByteFromBuffer` in class `NonBlockingUtf8JsonParserBase`
Returns:
  next unsigned byte from the buffer

#### getByteFromBuffer

    protected byte getByteFromBuffer(int ptr)

Specified by:
  `getByteFromBuffer` in class `NonBlockingUtf8JsonParserBase`
Parameters:
  `ptr` - pointer to byte that is required
Returns:
  byte from the buffer at the given pointer