BinaryOutput

io.github.vigoo.desert.BinaryOutput
trait BinaryOutput

Interface for writing binary data

The low level write operations for primitive types must be implemented.

Also contains some higher level functions such as variable integer encoding and compression support, which have a default implementation based on the primitives.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Members list

Value members

Abstract methods

def writeByte(value: Byte): Unit

Writes one byte

Writes one byte

Value parameters

value

The value to write

Attributes

def writeBytes(value: Array[Byte]): Unit

Writes an array of bytes (without writing any information about the number of bytes)

Writes an array of bytes (without writing any information about the number of bytes)

Value parameters

value

The bytes to write

Attributes

def writeBytes(value: Array[Byte], start: Int, count: Int): Unit

Writes a slice of an array of bytes (without writing any infomation about the number of bytes)

Writes a slice of an array of bytes (without writing any infomation about the number of bytes)

Value parameters

count

Number of bytes to write

start

Index of the first byte to write

value

The byte array

Attributes

def writeDouble(value: Double): Unit

Writes one 64-bit floating point value

Writes one 64-bit floating point value

Value parameters

value

The value to write

Attributes

def writeFloat(value: Float): Unit

Writes one 32-bit floating point value

Writes one 32-bit floating point value

Value parameters

value

The value to write

Attributes

def writeInt(value: Int): Unit

Writes one 32-bit integer

Writes one 32-bit integer

Value parameters

value

The value to write

Attributes

def writeLong(value: Long): Unit

Writes one 64-bit integer

Writes one 64-bit integer

Value parameters

value

The value to write

Attributes

def writeShort(value: Short): Unit

Writes one 16-bit integer

Writes one 16-bit integer

Value parameters

value

The value to write

Attributes

Concrete methods

def writeCompressedByteArray(uncompressedData: Array[Byte], level: Int): Unit

Compress the given byte array with ZIP and write write the compressed data to the output

Compress the given byte array with ZIP and write write the compressed data to the output

The compressed data is prepended with the uncompressed and the compressed data sizes, encoded with variable-length integer encoding.

Use the BinaryInput.readCompressedByteArray function to read it back.

Value parameters

level

Compression level. Use constants from the Deflater class

uncompressedData

Uncompressed data

Attributes

def writeVarInt(value: Int, optimizeForPositive: Boolean): Unit

Writes a 32-bit integer with a variable-length encoding

Writes a 32-bit integer with a variable-length encoding

The number of encoded bytes is 1-5. Based on https://github.com/EsotericSoftware/kryo/blob/master/src/com/esotericsoftware/kryo/io/ByteBufferOutput.java#L290

Value parameters

optimizeForPositive

If true the encoding is optimized for positive numbers

value

The value to write

Attributes