Class Reader
Fast deserializer for network messages.
Inheritance
Namespace: SuperNet.Netcode.Util
Assembly: cs.temp.dll.dll
Syntax
public class Reader : IDisposable
Constructors
Reader(ArraySegment<Byte>)
Create a new reader from the provided array segment.
Declaration
public Reader(ArraySegment<byte> segment)
Parameters
Type | Name | Description |
---|---|---|
ArraySegment<System.Byte> | segment | Array segment to read from. |
Reader(Byte[], Int32, Int32)
Create a new reader from the provided array segment.
Declaration
public Reader(byte[] array, int offset, int count)
Parameters
Type | Name | Description |
---|---|---|
System.Byte[] | array | Array to read from. |
System.Int32 | offset | Offset in the array to start reading from. |
System.Int32 | count | Number of bytes to read. |
Fields
First
Index of the first byte that is included in the message.
Declaration
public readonly int First
Field Value
Type | Description |
---|---|
System.Int32 |
Last
Index of the last byte that is not included in the message.
Declaration
public readonly int Last
Field Value
Type | Description |
---|---|
System.Int32 |
Properties
Available
Number of bytes still available to be read or 0 if the reader has been disposed.
Declaration
public int Available { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
Buffer
Internal buffer that contains the serialized message or null if the reader has been disposed.
Declaration
public byte[] Buffer { get; }
Property Value
Type | Description |
---|---|
System.Byte[] |
Disposed
True if reader has been disposed.
Declaration
public bool Disposed { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
Position
Current position in the internal buffer or 0 if the reader has been disposed.
Declaration
public int Position { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
Methods
CheckAvailableSpace(Int32)
Check if message has enough bytes left, throw exception if not.
Declaration
public void CheckAvailableSpace(int length)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | length | Length to check for. |
Dispose()
Invalidate the underlying buffer when it gets used for something else. Calling this causes all future read operation to fail.
Declaration
public void Dispose()
ReadBoolean()
Read a single boolean (1 byte).
Declaration
public bool ReadBoolean()
Returns
Type | Description |
---|---|
System.Boolean | Boolean value. |
ReadBoolean(out Boolean, out Boolean, out Boolean, out Boolean, out Boolean, out Boolean, out Boolean, out Boolean)
Read 8 booleans (1 byte).
Declaration
public void ReadBoolean(out bool v0, out bool v1, out bool v2, out bool v3, out bool v4, out bool v5, out bool v6, out bool v7)
Parameters
Type | Name | Description |
---|---|---|
System.Boolean | v0 | First boolean value. |
System.Boolean | v1 | Second boolean value. |
System.Boolean | v2 | Third boolean value. |
System.Boolean | v3 | Fourth boolean value. |
System.Boolean | v4 | Fifth boolean value. |
System.Boolean | v5 | Sixth boolean value. |
System.Boolean | v6 | Seventh boolean value. |
System.Boolean | v7 | Eighth boolean value. |
ReadByte()
Read byte (1 byte).
Declaration
public byte ReadByte()
Returns
Type | Description |
---|---|
System.Byte | Byte value. |
ReadBytes(Byte[], Int32, Int32)
Read into an array segment.
Declaration
public void ReadBytes(byte[] array, int offset, int count)
Parameters
Type | Name | Description |
---|---|---|
System.Byte[] | array | Array to read to. |
System.Int32 | offset | Array offset to read to. |
System.Int32 | count | Number of bytes to read. |
ReadChar()
Read a single character (2 bytes).
Declaration
public char ReadChar()
Returns
Type | Description |
---|---|
System.Char | Character value. |
ReadDecimal()
Read decimal (16 bytes).
Declaration
public decimal ReadDecimal()
Returns
Type | Description |
---|---|
System.Decimal | Decimal value. |
ReadDouble()
Read double (8 bytes).
Declaration
public double ReadDouble()
Returns
Type | Description |
---|---|
System.Double | Double value. |
ReadEnum<T>()
Read enum (1, 2 or 4 bytes).
Number of bytes read is dependant on the underlying type the enum is backed by.
Declaration
public T ReadEnum<T>()
where T : struct, IConvertible
Returns
Type | Description |
---|---|
T | Enum value. |
Type Parameters
Name | Description |
---|---|
T | Enum type. |
ReadInt16()
Read short (2 bytes).
Declaration
public short ReadInt16()
Returns
Type | Description |
---|---|
System.Int16 | Short value. |
ReadInt32()
Read integer (4 bytes).
Declaration
public int ReadInt32()
Returns
Type | Description |
---|---|
System.Int32 | Integer value. |
ReadInt64()
Read long integer (8 bytes).
Declaration
public long ReadInt64()
Returns
Type | Description |
---|---|
System.Int64 | Long integer value. |
ReadSByte()
Read signed byte (1 byte).
Declaration
public sbyte ReadSByte()
Returns
Type | Description |
---|---|
System.SByte | Signed byte value. |
ReadSingle()
Read float (4 bytes).
Declaration
public float ReadSingle()
Returns
Type | Description |
---|---|
System.Single | Float value. |
ReadString()
Read 4 bytes length, then UTF8 encoded string.
Declaration
public string ReadString()
Returns
Type | Description |
---|---|
System.String | String value or null if length is negative. |
ReadUInt16()
Read unsigned short (2 bytes).
Declaration
public ushort ReadUInt16()
Returns
Type | Description |
---|---|
System.UInt16 | Unsigned short value. |
ReadUInt32()
Read unsigned integer (4 bytes).
Declaration
public uint ReadUInt32()
Returns
Type | Description |
---|---|
System.UInt32 | Unsigned integer value. |
ReadUInt64()
Read unsigned long integer (8 bytes).
Declaration
public ulong ReadUInt64()
Returns
Type | Description |
---|---|
System.UInt64 | Unsigned long integer value. |
Reset(Int32)
Manually set the read position.
Declaration
public void Reset(int position)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | position | Position to set. |
Skip(Int32)
Advance the read position without reading anything.
Declaration
public void Skip(int length)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | length | Number of bytes to skip for. |