DataStreamReader
Reads data serialized by a DataStreamWriter.
Read time 6 minutesLast updated 6 days ago
Definition
- Type: Struct
- Namespace: Unity.Collections
- Assembly: UnityEngine.ManagedKernelModule
public struct DataStreamReader
Remarks
The DataStreamReader class is the counterpart of the DataStreamWriter class and can be used to deserialize data which was prepared with it.
Data is stored in the endian format native to the current machine architecture.
For network byte order use the so named methods.
Simple usage example:
using (var data = new NativeArray\<byte\>(16, Allocator.Persistent)) { var dataWriter = new DataStreamWriter(data); dataWriter.WriteInt(42); dataWriter.WriteInt(1234); dataWriter.Flush(); var dataReader = new DataStreamReader(dataWriter.AsNativeArray()); var myFirstInt = dataReader.ReadInt(); var mySecondInt = dataReader.ReadInt(); }
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
Constructor | Description |
|---|---|
| DataStreamReader(Unity.Collections.NativeArray{System.Byte}) | Initializes a new instance of the DataStreamReader struct with a NativeArray\<byte\> |
Properties
Property | 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. |
| Length | The total size of the buffer space this reader is working with. |
Static Properties
Property | Description |
|---|---|
| IsLittleEndian | Show the byte order in which the current computer architecture stores data. |
Methods
Method | Description |
|---|---|
| Flush | Aligns the read pointer to the next byte-aligned position. Does nothing if already aligned. |
| 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 | Read and copy data into the given |
| ReadDouble | Reads a 8-byte floating point value from the current stream and advances the current position of the stream by four bytes. |
| ReadFixedString | 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 | Reads a 8-byte floating point value from the data stream using a StreamCompressionModel. |
| ReadPackedDoubleDelta | Reads a 8-byte floating point value from the data stream. |
| ReadPackedFixedString128Delta | Reads a |
| ReadPackedFixedString32Delta | Reads a |
| ReadPackedFixedString4096Delta | Reads a |
| ReadPackedFixedString512Delta | Reads a |
| ReadPackedFixedString64Delta | Reads a |
| ReadPackedFixedStringDelta | 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 | Reads a 4-byte floating point value from the data stream using a StreamCompressionModel. |
| ReadPackedFloatDelta | Reads a 4-byte floating point value from the data stream. |
| ReadPackedInt | Reads a 4-byte signed integer value from the data stream using a StreamCompressionModel. |
| ReadPackedIntDelta | Reads a 4-byte signed integer delta value from the data stream using a StreamCompressionModel. |
| ReadPackedLong | Reads an 8-byte signed long value from the data stream using a StreamCompressionModel. |
| ReadPackedLongDelta | Reads an 8-byte signed long delta value from the data stream using a StreamCompressionModel. |
| ReadPackedUInt | 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 | Reads a 4-byte unsigned integer delta value from the data stream using a StreamCompressionModel. |
| ReadPackedULong | Reads an 8-byte unsigned long value from the data stream using a StreamCompressionModel. |
| ReadPackedULongDelta | Reads an 8-byte unsigned long delta value from the data stream using a StreamCompressionModel. |
| ReadRawBits | 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 | Sets the current position of this stream to the given value. An error will be logged if |