Struct DataStreamReader
Writes data in an endian format to deserialize data.
Namespace: Unity.Collections
Assembly: solution.dll
Syntax
[MovedFrom(true, "Unity.Networking.Transport", null, null)]
public struct DataStreamReader
Remarks
The DataStreamReader class is the counterpart of the DataStreamWriter class and can be be used to deserialize data which was prepared with it.
DataStreamWriter writes this data in the endian format native
to the current machine architecture.
For network byte order use the so named methods.
Simple usage example:
using (var dataWriter = new DataStreamWriter(16, Allocator.Persistent))
{
dataWriter.Write(42);
dataWriter.Write(1234);
// Length is the actual amount of data inside the writer,
// Capacity is the total amount.
var dataReader = new DataStreamReader(dataWriter, 0, dataWriter.Length);
var context = default(DataStreamReader.Context);
var myFirstInt = dataReader.ReadInt(ref context);
var mySecondInt = dataReader.ReadInt(ref context);
}
DataStreamReader carries the position of the read pointer inside the struct, taking a copy of the reader will also copy the read position. This includes passing the reader to a method by value instead of by ref.
Constructors
Name | Description |
---|---|
DataStreamReader(NativeArray<byte>) | Initializes a new instance of the DataStreamReader struct with a NativeArray<byte> |
Properties
Name | Description |
---|---|
HasFailedReads | If there is a read failure this returns true. A read failure might happen if this attempts to read more than there is capacity for. |
IsCreated | True if the reader has been pointed to a valid buffer space. This would be false if the reader was created with no arguments. |
IsLittleEndian | Show the byte order in which the current computer architecture stores data. |
Length | The total size of the buffer space this reader is working with. |
Methods
Name | Description |
---|---|
GetBitsRead() | Gets the number of bits read from the data stream. |
GetBytesRead() | Gets the number of bytes read from the data stream. |
ReadByte() | Reads an unsigned byte from the current stream and advances the current position of the stream by one byte. |
ReadBytes(NativeArray<byte>) | Read and copy data into the given NativeArray of bytes, an error will be logged if not enough bytes are available. |
ReadDouble() | Reads a 8-byte floating point value from the current stream and advances the current position of the stream by four bytes. |
ReadFixedString(NativeArray<byte>) | Read and copy data into the given NativeArray of bytes, an error will be logged if not enough bytes are available in the array. |
ReadFixedString128() | Reads a |
ReadFixedString32() | Reads a |
ReadFixedString4096() | Reads a |
ReadFixedString512() | Reads a |
ReadFixedString64() | Reads a |
ReadFloat() | Reads a 4-byte floating point value from the current stream and advances the current position of the stream by four bytes. |
ReadInt() | Reads a 4-byte signed integer from the current stream and advances the current position of the stream by four bytes. |
ReadIntNetworkByteOrder() | Reads a 4-byte signed integer from the current stream in Big-endian byte order and advances the current position of the stream by four bytes. If the current endianness is in little-endian order, the byte order will be swapped. |
ReadLong() | Reads an 8-byte signed long from the stream and advances the current position of the stream by eight bytes. |
ReadPackedDouble(StreamCompressionModel) | Reads a 8-byte floating point value from the data stream using a StreamCompressionModel. |
ReadPackedDoubleDelta(double, StreamCompressionModel) | Reads a 8-byte floating point value from the data stream. If the first bit is 0, the data did not change and |
ReadPackedFixedString128Delta(FixedString128Bytes, StreamCompressionModel) | Reads a |
ReadPackedFixedString32Delta(FixedString32Bytes, StreamCompressionModel) | Reads a |
ReadPackedFixedString4096Delta(FixedString4096Bytes, StreamCompressionModel) | Reads a |
ReadPackedFixedString512Delta(FixedString512Bytes, StreamCompressionModel) | Reads a |
ReadPackedFixedString64Delta(FixedString64Bytes, StreamCompressionModel) | Reads a |
ReadPackedFixedStringDelta(NativeArray<byte>, NativeArray<byte>, StreamCompressionModel) | Read and copy data into the given NativeArray of bytes, an error will be logged if not enough bytes are available in the array. |
ReadPackedFloat(StreamCompressionModel) | Reads a 4-byte floating point value from the data stream using a StreamCompressionModel. |
ReadPackedFloatDelta(float, StreamCompressionModel) | Reads a 4-byte floating point value from the data stream. If the first bit is 0, the data did not change and |
ReadPackedInt(StreamCompressionModel) | Reads a 4-byte signed integer value from the data stream using a StreamCompressionModel.
|
ReadPackedIntDelta(int, StreamCompressionModel) | Reads a 4-byte signed integer delta value from the data stream using a StreamCompressionModel. |
ReadPackedLong(StreamCompressionModel) | Reads an 8-byte signed long value from the data stream using a StreamCompressionModel.
|
ReadPackedLongDelta(long, StreamCompressionModel) | Reads an 8-byte signed long delta value from the data stream using a StreamCompressionModel. |
ReadPackedUInt(StreamCompressionModel) | Reads a 4-byte unsigned integer from the current stream using a StreamCompressionModel and advances the current position the number of bits depending on the model. |
ReadPackedUIntDelta(uint, StreamCompressionModel) | Reads a 4-byte unsigned integer delta value from the data stream using a StreamCompressionModel. |
ReadPackedULong(StreamCompressionModel) | Reads an 8-byte unsigned long value from the data stream using a StreamCompressionModel. |
ReadPackedULongDelta(ulong, StreamCompressionModel) | Reads an 8-byte unsigned long delta value from the data stream using a StreamCompressionModel. |
ReadRawBits(int) | Reads a specified number of bits from the data stream. |
ReadShort() | Reads a 2-byte signed short from the current stream and advances the current position of the stream by two bytes. |
ReadShortNetworkByteOrder() | Reads a 2-byte signed short from the current stream in Big-endian byte order and advances the current position of the stream by two bytes. If the current endianness is in little-endian order, the byte order will be swapped. |
ReadUInt() | Reads a 4-byte unsigned integer from the current stream and advances the current position of the stream by four bytes. |
ReadUIntNetworkByteOrder() | Reads a 4-byte unsigned integer from the current stream in Big-endian byte order and advances the current position of the stream by four bytes. If the current endianness is in little-endian order, the byte order will be swapped. |
ReadULong() | Reads an 8-byte unsigned long from the stream and advances the current position of the stream by eight bytes. |
ReadUShort() | Reads a 2-byte unsigned short from the current stream and advances the current position of the stream by two bytes. |
ReadUShortNetworkByteOrder() | Reads a 2-byte unsigned short from the current stream in Big-endian byte order and advances the current position of the stream by two bytes. If the current endianness is in little-endian order, the byte order will be swapped. |
SeekSet(int) | Sets the current position of this stream to the given value.
An error will be logged if |