Dotty Documentation

0.1.1-bin-SNAPSHOT

class TastyBuffer

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.

[-] Constructors

TastyBuffer ( initialSize: Int )

[-] Members

[+] var bytes : Array [ Byte ]

The current byte array, will be expanded as needed

[+] private val initialSize : Int
[+] var length : Int

The number of bytes written

[+] 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.

[+] def bytes_= ( x$1: Array [ Byte ] ) : Unit

The current byte array, will be expanded as needed

[+] def currentAddr : Addr

The address referring to the end of data written so far

[+] def fillAddr ( at: Addr , target: Addr ) : Unit

Fill reserved space at address at with address target

[+] def getAddr ( at: Addr ) : R

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

[+] def getByte ( at: Addr ) : Int

The byte at given address

[+] def getLongNat ( at: Addr ) : Long

The long natural number at address at

[+] def getNat ( at: Addr ) : Int

The natural number at address at

[+] def length_= ( x$1: Int ) : Unit

The number of bytes written

[+] 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.

[+] def reserveAddr ( ) : Addr

Reserve AddrWidth bytes to write an address into

[+] final def skipNat ( at: Addr ) : Addr

The address after the natural number found at address at.

[+] final def skipZeroes ( at: Addr ) : Addr

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

[+] def writeAddr ( addr: Addr ) : Unit

Write address without leading zeroes

[+] def writeByte ( b: Int ) : Unit

Write a byte of data.

[+] def writeBytes ( data: Array [ Byte ] , n: Int ) : Unit

Write the first n bytes of data.

[+] 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.

[+] def writeLongInt ( x: Long ) : Unit

Like writeInt, but for longs

[+] def writeLongNat ( x: Long ) : Unit

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.

[+] def writeNat ( x: Int ) : Unit

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

[+] def writeUncompressedLong ( x: Long ) : Unit

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