Trait/Object

upickle.core

BufferingInputStreamParser

Related Docs: object BufferingInputStreamParser | package core

Permalink

trait BufferingInputStreamParser extends BufferingByteParser

Defines common functionality to any parser that works on a java.io.InputStream

Allows you to look up individual bytes by index, take slices of byte ranges or strings, and drop old portions of buffered data once you are certain you no longer need them.

The buffer size is managed by allowing it to grow in size until it exceeds its capacity. When that happens, one of two things happen:

- If the buffer has enough space, we left-shift the data in the buffer to over-write the portion that has already been dropped.

- If the buffer does not have enough space, we allocate a new buffer big enough to hold the new data we need to store (size a power of two multiple of the old size) and copy the data over, again shifted left .

Linear Supertypes
BufferingByteParser, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. BufferingInputStreamParser
  2. BufferingByteParser
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def inputStream: InputStream

    Permalink
  2. abstract def maxBufferStartSize: Int

    Permalink
  3. abstract def minBufferStartSize: Int

    Permalink

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. def appendBytesToBuilder(elems: ByteBuilder, elemsStart: Int, elemsLength: Int): Unit

    Permalink
    Definition Classes
    BufferingByteParser
  5. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  6. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. def dropBufferUntil(i: Int): Unit

    Permalink
    Definition Classes
    BufferingByteParser
  8. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. def getBufferCopyCount(): Int

    Permalink
    Definition Classes
    BufferingByteParser
  12. def getBufferGrowCount(): Int

    Permalink
    Definition Classes
    BufferingByteParser
  13. def getBufferLength(): Int

    Permalink
    Definition Classes
    BufferingByteParser
  14. def getByteSafe(i: Int): Byte

    Permalink
    Definition Classes
    BufferingByteParser
  15. def getByteUnsafe(i: Int): Byte

    Permalink
    Definition Classes
    BufferingByteParser
  16. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  17. def getLastIdx: Int

    Permalink
    Definition Classes
    BufferingByteParser
  18. def growBuffer(until: Int): Unit

    Permalink

    Copies the non-dropped Bytes in the current buffer to the start of either the current buffer, or a newly-allocated larger buffer if necessary.

    Copies the non-dropped Bytes in the current buffer to the start of either the current buffer, or a newly-allocated larger buffer if necessary.

    Definition Classes
    BufferingByteParser
  19. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  20. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  21. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  22. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  23. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  24. def readDataIntoBuffer(buffer: Array[Byte], bufferOffset: Int): (Array[Byte], Boolean, Int)

    Permalink
  25. def requestUntil(until: Int): Boolean

    Permalink

    Used to ensure that elements up to until are available to read; returns whether or not we have read off the end of the input.

    Used to ensure that elements up to until are available to read; returns whether or not we have read off the end of the input.

    In the fast path, when until is less than the lastIdx we have buffered, there is no work to do and we return false.

    In the slow path, when until is more than lastIdx, we then run growBuffer to grow the buffer if necessary, and then readDataIntoBuffer to populate it. readDataIntoBuffer returns a newDone value to indicate whether we have read off the end of the input or not.

    Note that for some subclasses, growBuffer may be a no-op when we already know we have reached the end of input.

    Attributes
    protected
    Definition Classes
    BufferingByteParser
  26. def sliceArr(i: Int, n: Int): (Array[Byte], Int, Int)

    Permalink
    Definition Classes
    BufferingByteParser
  27. def sliceString(i: Int, k: Int): String

    Permalink
    Definition Classes
    BufferingByteParser
  28. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  29. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  30. def unsafeCharSeqForRange(start: Int, length: Int): WrapByteArrayCharSeq

    Permalink
    Definition Classes
    BufferingByteParser
  31. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  32. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  33. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from BufferingByteParser

Inherited from AnyRef

Inherited from Any

Ungrouped