TastyBuffer

dotty.tools.tasty.TastyBuffer
See theTastyBuffer companion object
class TastyBuffer(initialSize: Int)

A byte array buffer that can be filled with bytes or natural numbers in TASTY format, and that supports reading and patching addresses represented as natural numbers.

Attributes

Companion:
object
Source:
TastyBuffer.scala
Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Concise view

Value members

Concrete methods

def assemble(): Unit

Hook to be overridden in subclasses. Perform all actions necessary to assemble the final byte array. After assemble no more output actions to this buffer are permitted.

Hook to be overridden in subclasses. Perform all actions necessary to assemble the final byte array. After assemble no more output actions to this buffer are permitted.

Attributes

Source:
TastyBuffer.scala

The address referring to the end of data written so far

The address referring to the end of data written so far

Attributes

Source:
TastyBuffer.scala
def fillAddr(at: Addr, target: Addr): Unit

Fill reserved space at address at with address target

Fill reserved space at address at with address target

Attributes

Source:
TastyBuffer.scala
def getAddr(at: Addr): Addr

The address (represented as a natural number) at address at

The address (represented as a natural number) at address at

Attributes

Source:
TastyBuffer.scala
def getByte(at: Addr): Int

The byte at given address

The byte at given address

Attributes

Source:
TastyBuffer.scala
def getLongNat(at: Addr): Long

The long natural number at address at

The long natural number at address at

Attributes

Source:
TastyBuffer.scala
def getNat(at: Addr): Int

The natural number at address at

The natural number at address at

Attributes

Source:
TastyBuffer.scala
def putNat(at: Addr, x: Int, width: Int): Unit

Write natural number x right-adjusted in a field of width bytes starting with address at.

Write natural number x right-adjusted in a field of width bytes starting with address at.

Attributes

Source:
TastyBuffer.scala

Reserve AddrWidth bytes to write an address into

Reserve AddrWidth bytes to write an address into

Attributes

Source:
TastyBuffer.scala
final def skipNat(at: Addr): Addr

The address after the natural number found at address at.

The address after the natural number found at address at.

Attributes

Source:
TastyBuffer.scala
final def skipZeroes(at: Addr): Addr

The smallest address equal to or following at which points to a non-zero byte

The smallest address equal to or following at which points to a non-zero byte

Attributes

Source:
TastyBuffer.scala
def writeAddr(addr: Addr): Unit

Write address without leading zeroes

Write address without leading zeroes

Attributes

Source:
TastyBuffer.scala
def writeByte(b: Int): Unit

Write a byte of data.

Write a byte of data.

Attributes

Source:
TastyBuffer.scala
def writeBytes(data: Array[Byte], n: Int): Unit

Write the first n bytes of data.

Write the first n bytes of data.

Attributes

Source:
TastyBuffer.scala
def writeInt(x: Int): Unit

Write a natural number in 2's complement big endian format, base 128. All but the last digits have bit 0x80 set.

Write a natural number in 2's complement big endian format, base 128. All but the last digits have bit 0x80 set.

Attributes

Source:
TastyBuffer.scala

Like writeInt, but for longs

Like writeInt, but for longs

Attributes

Source:
TastyBuffer.scala

Like writeNat, but for longs. Note that the binary representation of LongNat is identical to Nat if the long value is in the range Int.MIN_VALUE to Int.MAX_VALUE.

Like writeNat, but for longs. Note that the binary representation of LongNat is identical to Nat if the long value is in the range Int.MIN_VALUE to Int.MAX_VALUE.

Attributes

Source:
TastyBuffer.scala
def writeNat(x: Int): Unit

Write a natural number in big endian format, base 128. All but the last digits have bit 0x80 set.

Write a natural number in big endian format, base 128. All but the last digits have bit 0x80 set.

Attributes

Source:
TastyBuffer.scala

Write an uncompressed Long stored in 8 bytes in big endian format

Write an uncompressed Long stored in 8 bytes in big endian format

Attributes

Source:
TastyBuffer.scala

Concrete fields

The current byte array, will be expanded as needed

The current byte array, will be expanded as needed

Attributes

Source:
TastyBuffer.scala
var length: Int

The number of bytes written

The number of bytes written

Attributes

Source:
TastyBuffer.scala