Struct DataStreamReader
The DataStreamReader
class is the counterpart of the
DataStreamWriter
class and can be be used to deserialize
data which was prepared with it.
Inherited Members
Namespace: Unity.Networking.Transport
Assembly: solution.dll
Syntax
public struct DataStreamReader
Remarks
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);
}
The 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.
See the DataStreamWriter class for more information and examples.
Constructors
Name | Description |
---|---|
DataStreamReader(byte*, int) | Initializes a new instance of the DataStreamReader struct with a pointer and length. |
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. |
GetUnsafeReadOnlyPtr() | Get a pointer to the stream's data. Note that the pointer always points at the beginning of the data, no matter how much was read from the stream. |
ReadByte() | Reads an unsigned byte from the current stream and advances the current position of the stream by one byte. |
ReadBytes(byte*, int) | Read the requested number of bytes to the given pointer. |
ReadBytes(NativeArray<byte>) | Read and copy data into the given NativeArray of bytes. The number of bytes read is the length of the provided array. |
ReadFixedString(byte*, int) | Read and copy a fixed string (of unknown length) into the given buffer. |
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. |
ReadPackedFixedString128Delta(FixedString128Bytes, NetworkCompressionModel) | Reads a |
ReadPackedFixedString32Delta(FixedString32Bytes, NetworkCompressionModel) | Reads a |
ReadPackedFixedString4096Delta(FixedString4096Bytes, NetworkCompressionModel) | Reads a |
ReadPackedFixedString512Delta(FixedString512Bytes, NetworkCompressionModel) | Reads a |
ReadPackedFixedString64Delta(FixedString64Bytes, NetworkCompressionModel) | Reads a |
ReadPackedFixedStringDelta(byte*, int, byte*, ushort, NetworkCompressionModel) | Read and copy a fixed string delta (of unknown length) into the given buffer. |
ReadPackedFloat(NetworkCompressionModel) | Reads a 4-byte floating point value from the data stream using a NetworkCompressionModel. |
ReadPackedFloatDelta(float, NetworkCompressionModel) | Reads a 4-byte floating point value from the data stream. If the first bit is 0, the data did not change and |
ReadPackedInt(NetworkCompressionModel) | Reads a 4-byte signed integer value from the data stream using a NetworkCompressionModel.
|
ReadPackedIntDelta(int, NetworkCompressionModel) | Reads a 4-byte signed integer delta value from the data stream using a NetworkCompressionModel. |
ReadPackedLong(NetworkCompressionModel) | Reads an 8-byte signed long value from the data stream using a NetworkCompressionModel.
|
ReadPackedLongDelta(long, NetworkCompressionModel) | Reads an 8-byte signed long delta value from the data stream using a NetworkCompressionModel. |
ReadPackedUInt(NetworkCompressionModel) | Reads a 4-byte unsigned integer from the current stream using a NetworkCompressionModel and advances the current position the number of bits depending on the model. |
ReadPackedUIntDelta(uint, NetworkCompressionModel) | Reads a 4-byte unsigned integer delta value from the data stream using a NetworkCompressionModel. |
ReadPackedULong(NetworkCompressionModel) | Reads an 8-byte unsigned long value from the data stream using a NetworkCompressionModel. |
ReadPackedULongDelta(ulong, NetworkCompressionModel) | Reads an 8-byte unsigned long delta value from the data stream using a NetworkCompressionModel. |
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 |