final class InputStreamParser[J] extends ByteParser[J] with BufferingInputStreamParser

Parser that reads in bytes from an InputStream, buffering them in memory until a reset call discards them.

Mostly the same as ByteArrayParser, except using an UberBuffer rather than reading directly from an Array[Byte].

Generally not meant to be used directly, but via ujson.Readable.fromReadable

Linear Supertypes
BufferingInputStreamParser, ByteParser[J], BufferingByteParser, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. InputStreamParser
  2. BufferingInputStreamParser
  3. ByteParser
  4. BufferingByteParser
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new InputStreamParser(inputStream: InputStream, minBufferStartSize: Int = BufferingInputStreamParser.defaultMinBufferStartSize, maxBufferStartSize: Int = BufferingInputStreamParser.defaultMaxBufferStartSize)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def appendBytesToBuilder(bytes: ByteBuilder, bytesStart: Int, bytesLength: Int): Unit
    Definition Classes
    BufferingByteParser
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def atEof(i: Int): Boolean

    Return true iff 'i' is at or beyond the end of the input (EOF).

    Return true iff 'i' is at or beyond the end of the input (EOF).

    Attributes
    protected[this]
    Definition Classes
    ByteParser
  7. def checkSafeIndex(j: Int): Int
    Definition Classes
    ByteParser
  8. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  9. final def close(): Unit

    Should be called when parsing is finished.

    Should be called when parsing is finished.

    Attributes
    protected[this]
    Definition Classes
    InputStreamParserByteParser
  10. def collectionEndFor(stackHead: ObjArrVisitor[_, _]): Int
    Definition Classes
    ByteParser
  11. final def descape(i: Int): Char

    Generate a Char from the hex digits of "\u1234" (i.e.

    Generate a Char from the hex digits of "\u1234" (i.e. "1234").

    NOTE: This is only capable of generating characters from the basic plane. This is why it can only return Char instead of Int.

    Attributes
    protected[this]
    Definition Classes
    ByteParser
  12. def die(i: Int, msg: String): Nothing

    Used to generate error messages with character info and offsets.

    Used to generate error messages with character info and offsets.

    Attributes
    protected[this]
    Definition Classes
    ByteParser
  13. def dieWithFailureMessage(i: Int, state: Int): Nothing
    Definition Classes
    ByteParser
  14. def dropBufferUntil(i: Int): Unit
    Definition Classes
    BufferingByteParser
  15. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  17. def failIfNotData(state: Int, i: Int): Unit
    Definition Classes
    ByteParser
  18. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  19. def getBuffer: Array[Byte]
    Definition Classes
    BufferingByteParser
  20. def getBufferCopyCount(): Int
    Definition Classes
    BufferingByteParser
  21. def getBufferGrowCount(): Int
    Definition Classes
    BufferingByteParser
  22. def getBufferLength(): Int
    Definition Classes
    BufferingByteParser
  23. def getByteSafe(i: Int): Byte
    Definition Classes
    ByteParser → BufferingByteParser
  24. def getByteUnsafe(i: Int): Byte
    Definition Classes
    BufferingByteParser
  25. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  26. def getFirstIdx: Int
    Definition Classes
    BufferingByteParser
  27. def getLastIdx: Int
    Definition Classes
    BufferingByteParser
  28. def growBuffer(until: Int): Unit
    Definition Classes
    BufferingByteParser
  29. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  30. val inputStream: InputStream
    Definition Classes
    InputStreamParser → BufferingInputStreamParser
  31. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  32. val maxBufferStartSize: Int
    Definition Classes
    InputStreamParser → BufferingInputStreamParser
  33. val minBufferStartSize: Int
    Definition Classes
    InputStreamParser → BufferingInputStreamParser
  34. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  35. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  36. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  37. final def parse(facade: Visitor[_, J]): J

    Parse the JSON document into a single JSON value.

    Parse the JSON document into a single JSON value.

    The parser considers documents like '333', 'true', and '"foo"' to be valid, as well as more traditional documents like [1,2,3,4,5]. However, multiple top-level objects are not allowed.

    Definition Classes
    ByteParser
  38. final def parseFalse(i: Int, facade: Visitor[_, J]): J

    Parse the JSON constant "false".

    Parse the JSON constant "false".

    Note that this method assumes that the first character has already been checked.

    Attributes
    protected[this]
    Definition Classes
    ByteParser
  39. final def parseNested(state: Int, i: Int, stackHead: ObjArrVisitor[_, J], stackTail: List[ObjArrVisitor[_, J]]): (J, Int)

    Tail-recursive parsing method to do the bulk of JSON parsing.

    Tail-recursive parsing method to do the bulk of JSON parsing.

    This single method manages parser states, data, etc. Except for parsing non-recursive values (like strings, numbers, and constants) all important work happens in this loop (or in methods it calls, like reset()).

    Currently the code is optimized to make use of switch statements. Future work should consider whether this is better or worse than manually constructed if/else statements or something else. Also, it may be possible to reorder some cases for speed improvements.

    Attributes
    protected[this]
    Definition Classes
    ByteParser
    Annotations
    @tailrec()
  40. final def parseNull(i: Int, facade: Visitor[_, J]): J

    Parse the JSON constant "null".

    Parse the JSON constant "null".

    Note that this method assumes that the first character has already been checked.

    Attributes
    protected[this]
    Definition Classes
    ByteParser
  41. final def parseNum(i: Int, ctxt: ObjArrVisitor[Any, J], facade: Visitor[_, J]): Int

    Parse the given number, and add it to the given context.

    Parse the given number, and add it to the given context.

    We don't actually instantiate a number here, but rather pass the string of for future use. Facades can choose to be lazy and just store the string. This ends up being way faster and has the nice side-effect that we know exactly how the user represented the number.

    Attributes
    protected[this]
    Definition Classes
    ByteParser
  42. final def parseNumTopLevel(i: Int, facade: Visitor[_, J]): (J, Int)

    Parse the given number, and add it to the given context.

    Parse the given number, and add it to the given context.

    This method is a bit slower than parseNum() because it has to be sure it doesn't run off the end of the input.

    Normally (when operating in rparse in the context of an outer array or object) we don't need to worry about this and can just grab characters, because if we run out of characters that would indicate bad input. This is for cases where the number could possibly be followed by a valid EOF.

    This method has all the same caveats as the previous method.

    Attributes
    protected[this]
    Definition Classes
    ByteParser
  43. final def parseStringComplex(i0: Int, safeIndex0: Int): Int
    Attributes
    protected[this]
    Definition Classes
    ByteParser
  44. final def parseStringComplex(i0: Int): Int

    Parse a string that is known to have escape sequences.

    Parse a string that is known to have escape sequences.

    Attributes
    protected[this]
    Definition Classes
    ByteParser
  45. final def parseStringKey(i: Int, stackHead: ObjArrVisitor[_, J]): Int
    Attributes
    protected[this]
    Definition Classes
    ByteParser
  46. final def parseStringSimple(i: Int, safeIndex0: Int): Int
    Attributes
    protected[this]
    Definition Classes
    ByteParser
  47. final def parseStringSimple(i: Int): Int

    See if the string has any escape sequences.

    See if the string has any escape sequences. If not, return the end of the string. If so, bail out and return -1.

    This method expects the data to be in UTF-16 and accesses it as chars.

    Attributes
    protected[this]
    Definition Classes
    ByteParser
  48. def parseStringToOutputBuilder(i: Int, k: Int): Int
    Definition Classes
    ByteParser
  49. final def parseStringTopLevel(i: Int, facade: Visitor[_, J]): (J, Int)
    Attributes
    protected[this]
    Definition Classes
    ByteParser
  50. final def parseStringValue(i: Int, stackHead: ObjArrVisitor[_, J]): Int

    Parse the string according to JSON rules, and add to the given context.

    Parse the string according to JSON rules, and add to the given context.

    This method expects the data to be in UTF-16, and access it as Char. It performs the correct checks to make sure that we don't interpret a multi-char code point incorrectly.

    Attributes
    protected[this]
    Definition Classes
    ByteParser
  51. final def parseTopLevel(i: Int, facade: Visitor[_, J]): (J, Int)
    Attributes
    protected[this]
    Definition Classes
    ByteParser
  52. final def parseTopLevel0(i: Int, facade: Visitor[_, J]): (J, Int)

    Parse and return the next JSON value and the position beyond it.

    Parse and return the next JSON value and the position beyond it.

    Attributes
    protected[this]
    Definition Classes
    ByteParser
    Annotations
    @tailrec()
  53. final def parseTrue(i: Int, facade: Visitor[_, J]): J

    Parse the JSON constant "true".

    Parse the JSON constant "true".

    Note that this method assumes that the first character has already been checked.

    Attributes
    protected[this]
    Definition Classes
    ByteParser
  54. def readDataIntoBuffer(buffer: Array[Byte], bufferOffset: Int): (Array[Byte], Boolean, Int)
    Definition Classes
    BufferingInputStreamParser → BufferingByteParser
  55. def reject(j: Int): PartialFunction[Throwable, Nothing]
    Definition Classes
    ByteParser
  56. def requestUntil(until: Int): Boolean
    Attributes
    protected
    Definition Classes
    BufferingByteParser
  57. def requestUntilGetSafeIndex(until: Int): Int
    Attributes
    protected
    Definition Classes
    BufferingByteParser
  58. def requestUntilOrThrow(j: Int): Unit

    A fast-path to check whether an index can be safely accessed, before calling getByteUnsafe.

    A fast-path to check whether an index can be safely accessed, before calling getByteUnsafe. Together, it is similar to calling getByteSafe, except this returns the new safeIndex which the caller can then use to call getByteUnsafe multiple times before needing to call this again.

    Definition Classes
    ByteParser
  59. def sliceArr(i: Int, n: Int): (Array[Byte], Int, Int)
    Definition Classes
    BufferingByteParser
  60. def sliceString(i: Int, k: Int): String
    Definition Classes
    BufferingByteParser
  61. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  62. def toString(): String
    Definition Classes
    AnyRef → Any
  63. def tryCloseCollection(stackHead: ObjArrVisitor[_, J], stackTail: List[ObjArrVisitor[_, J]], i: Int): Option[(J, Int)]
    Definition Classes
    ByteParser
  64. def unsafeCharSeqForRange(start: Int, length: Int): WrapByteArrayCharSeq
    Definition Classes
    BufferingByteParser
  65. def visitFloat64StringPartsWithWrapper(facade: Visitor[_, J], decIndex: Int, expIndex: Int, i: Int, j: Int): J
    Definition Classes
    ByteParser
  66. def visitString(i: Int, s: CharSequence, stackHead: ObjArrVisitor[_, J]): Unit
    Definition Classes
    ByteParser
  67. def visitStringKey(i: Int, s: CharSequence, stackHead: ObjArrVisitor[_, J]): Unit
    Definition Classes
    ByteParser
  68. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  69. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  70. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from BufferingInputStreamParser

Inherited from ByteParser[J]

Inherited from BufferingByteParser

Inherited from AnyRef

Inherited from Any

Ungrouped