RefMapIn

abstract class RefMapIn[Repr](in0: DataInput)

Building block for deserializing Product based type hierarchies.

Building block for deserializing Product based type hierarchies.

By default, the following type tags are supported:

  • 'B' Boolean
  • 'C' Const (freely definable type -- must implement readIdentifiedConst)
  • 'D' Double
  • 'F' Float
  • 'I' Int
  • 'L' Long
  • 'M' Map[_, _]
  • 'O' Option[_]
  • 'P' Product (through registered ProductReader instances)
  • 'S' String
  • 'T' Set[_]
  • 'X' Vec[_] (IndexedSeq)
  • 'U' Unit ()
  • 'R' (freely definable type -- must implement readIdentifiedR)
  • 'Y' (freely definable type -- must implement readIdentifiedY)
  • 'u' (freely definable type -- must implement readIdentifiedU)
  • 'E' (freely definable type -- must implement readIdentifiedE)
  • '<' reference to previous object (as written by RefMapOut)
  • '\u0000' null

Sub-classes may want to patch into readCustomElem and readCustomProduct to handle specific new types.

Value Params
in0

the binary input to read from

class Object
trait Matchable
class Any

Type members

Types

type Const <: Product
type E
type R
type U
type Y

Value members

Abstract methods

protected def readProductWithKey(key: String, arity: Int): Product

Concrete methods

final def in: DataInput
final def readBoolean(): Boolean
protected def readCustomElem(cookie: Char): Any
protected def readCustomProduct(cookie: Char): Product
final def readDouble(): Double
final def readDoubleVec(): IndexedSeq[Double]
def readElem(): Any
protected def readElemWithCookie(cookie: Char): Any
final def readFloat(): Float
final def readFloatVec(): IndexedSeq[Float]
protected def readIdentifiedConst(): Const
protected def readIdentifiedE(): E
protected def readIdentifiedR(): R
protected def readIdentifiedU(): U
protected def readIdentifiedY(): Y
final def readInt(): Int
final def readIntVec(): IndexedSeq[Int]
final def readLong(): Long
final def readMap[K, V](key: => K, value: => V): Map[K, V]
final def readOption[A](elem: => A): Option[A]
def readProduct(): Product
final def readProductT[A <: Product](): A

Like readProduct but casts the result (unsafe)

Like readProduct but casts the result (unsafe)

protected def readProductWithCookie(cookie: Char): Product
final def readSet[A](elem: => A): Set[A]
final def readString(): String
final def readStringOption(): Option[String]
final def readVec[A](elem: => A): IndexedSeq[A]
final protected def unexpectedCookie(cookie: Char): Nothing
final protected def unexpectedCookie(cookie: Char, expected: Char): Nothing