Struct DataStreamReader | Unity Transport | 0.2.4-preview.0
docs.unity3d.com
    Show / Hide Table of Contents

    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.

    Namespace: Unity.Networking.Transport
    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.Context passed to all the Read* functions carries the position of the read pointer inside the buffer inside, this can be used with the job system but normally you start by creating a default context like the example above shows.

    See the DataStreamWriter class for more information and examples.

    Constructors

    DataStreamReader(NativeSlice<Byte>)

    Declaration
    public DataStreamReader(NativeSlice<byte> slice)
    Parameters
    Type Name Description
    NativeSlice<Byte> slice

    DataStreamReader(DataStreamWriter, Int32, Int32)

    Declaration
    public DataStreamReader(DataStreamWriter writer, int offset, int length)
    Parameters
    Type Name Description
    DataStreamWriter writer
    Int32 offset
    Int32 length

    Properties

    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.

    Declaration
    public bool IsCreated { get; }
    Property Value
    Type Description
    Boolean

    Length

    The total size of the buffer space this reader is working with.

    Declaration
    public int Length { get; }
    Property Value
    Type Description
    Int32

    Methods

    GetBitsRead(ref DataStreamReader.Context)

    Declaration
    public int GetBitsRead(ref DataStreamReader.Context ctx)
    Parameters
    Type Name Description
    DataStreamReader.Context ctx
    Returns
    Type Description
    Int32

    GetBytesRead(ref DataStreamReader.Context)

    Declaration
    public int GetBytesRead(ref DataStreamReader.Context ctx)
    Parameters
    Type Name Description
    DataStreamReader.Context ctx
    Returns
    Type Description
    Int32

    ReadByte(ref DataStreamReader.Context)

    Declaration
    public byte ReadByte(ref DataStreamReader.Context ctx)
    Parameters
    Type Name Description
    DataStreamReader.Context ctx
    Returns
    Type Description
    Byte

    ReadBytes(ref DataStreamReader.Context, Byte*, Int32)

    Read and copy data to the memory location pointed to, an exception will be thrown if it does not fit.

    Declaration
    public void ReadBytes(ref DataStreamReader.Context ctx, byte *data, int length)
    Parameters
    Type Name Description
    DataStreamReader.Context ctx
    Byte* data
    Int32 length
    Exceptions
    Type Condition
    ArgumentOutOfRangeException

    Thrown if the length will put the reader out of bounds based on the current read pointer position.

    ReadBytesAsArray(ref DataStreamReader.Context, Int32)

    Create a new byte array and read the given length of bytes into it.

    Declaration
    public byte[] ReadBytesAsArray(ref DataStreamReader.Context ctx, int length)
    Parameters
    Type Name Description
    DataStreamReader.Context ctx

    Current reader context

    Int32 length

    Amount of bytes to read.

    Returns
    Type Description
    Byte[]

    Newly created byte array with the contents.

    ReadBytesIntoArray(ref DataStreamReader.Context, ref Byte[], Int32)

    Read and copy data into the given managed byte array, an exception will be thrown if it does not fit.

    Declaration
    public void ReadBytesIntoArray(ref DataStreamReader.Context ctx, ref byte[] dest, int length)
    Parameters
    Type Name Description
    DataStreamReader.Context ctx
    Byte[] dest
    Int32 length

    ReadFloat(ref DataStreamReader.Context)

    Declaration
    public float ReadFloat(ref DataStreamReader.Context ctx)
    Parameters
    Type Name Description
    DataStreamReader.Context ctx
    Returns
    Type Description
    Single

    ReadInt(ref DataStreamReader.Context)

    Declaration
    public int ReadInt(ref DataStreamReader.Context ctx)
    Parameters
    Type Name Description
    DataStreamReader.Context ctx
    Returns
    Type Description
    Int32

    ReadIntNetworkByteOrder(ref DataStreamReader.Context)

    Declaration
    public int ReadIntNetworkByteOrder(ref DataStreamReader.Context ctx)
    Parameters
    Type Name Description
    DataStreamReader.Context ctx
    Returns
    Type Description
    Int32

    ReadPackedFloat(ref DataStreamReader.Context, NetworkCompressionModel)

    Declaration
    public float ReadPackedFloat(ref DataStreamReader.Context ctx, NetworkCompressionModel model)
    Parameters
    Type Name Description
    DataStreamReader.Context ctx
    NetworkCompressionModel model
    Returns
    Type Description
    Single

    ReadPackedFloatDelta(ref DataStreamReader.Context, Single, NetworkCompressionModel)

    Declaration
    public float ReadPackedFloatDelta(ref DataStreamReader.Context ctx, float baseline, NetworkCompressionModel model)
    Parameters
    Type Name Description
    DataStreamReader.Context ctx
    Single baseline
    NetworkCompressionModel model
    Returns
    Type Description
    Single

    ReadPackedInt(ref DataStreamReader.Context, NetworkCompressionModel)

    Declaration
    public int ReadPackedInt(ref DataStreamReader.Context ctx, NetworkCompressionModel model)
    Parameters
    Type Name Description
    DataStreamReader.Context ctx
    NetworkCompressionModel model
    Returns
    Type Description
    Int32

    ReadPackedIntDelta(ref DataStreamReader.Context, Int32, NetworkCompressionModel)

    Declaration
    public int ReadPackedIntDelta(ref DataStreamReader.Context ctx, int baseline, NetworkCompressionModel model)
    Parameters
    Type Name Description
    DataStreamReader.Context ctx
    Int32 baseline
    NetworkCompressionModel model
    Returns
    Type Description
    Int32

    ReadPackedStringDelta(ref DataStreamReader.Context, NativeString64, NetworkCompressionModel)

    Declaration
    public NativeString64 ReadPackedStringDelta(ref DataStreamReader.Context ctx, NativeString64 baseline, NetworkCompressionModel model)
    Parameters
    Type Name Description
    DataStreamReader.Context ctx
    NativeString64 baseline
    NetworkCompressionModel model
    Returns
    Type Description
    NativeString64

    ReadPackedUInt(ref DataStreamReader.Context, NetworkCompressionModel)

    Declaration
    public uint ReadPackedUInt(ref DataStreamReader.Context ctx, NetworkCompressionModel model)
    Parameters
    Type Name Description
    DataStreamReader.Context ctx
    NetworkCompressionModel model
    Returns
    Type Description
    UInt32

    ReadPackedUIntDelta(ref DataStreamReader.Context, UInt32, NetworkCompressionModel)

    Declaration
    public uint ReadPackedUIntDelta(ref DataStreamReader.Context ctx, uint baseline, NetworkCompressionModel model)
    Parameters
    Type Name Description
    DataStreamReader.Context ctx
    UInt32 baseline
    NetworkCompressionModel model
    Returns
    Type Description
    UInt32

    ReadShort(ref DataStreamReader.Context)

    Declaration
    public short ReadShort(ref DataStreamReader.Context ctx)
    Parameters
    Type Name Description
    DataStreamReader.Context ctx
    Returns
    Type Description
    Int16

    ReadShortNetworkByteOrder(ref DataStreamReader.Context)

    Declaration
    public short ReadShortNetworkByteOrder(ref DataStreamReader.Context ctx)
    Parameters
    Type Name Description
    DataStreamReader.Context ctx
    Returns
    Type Description
    Int16

    ReadString(ref DataStreamReader.Context)

    Declaration
    public NativeString64 ReadString(ref DataStreamReader.Context ctx)
    Parameters
    Type Name Description
    DataStreamReader.Context ctx
    Returns
    Type Description
    NativeString64

    ReadUInt(ref DataStreamReader.Context)

    Declaration
    public uint ReadUInt(ref DataStreamReader.Context ctx)
    Parameters
    Type Name Description
    DataStreamReader.Context ctx
    Returns
    Type Description
    UInt32

    ReadUIntNetworkByteOrder(ref DataStreamReader.Context)

    Declaration
    public uint ReadUIntNetworkByteOrder(ref DataStreamReader.Context ctx)
    Parameters
    Type Name Description
    DataStreamReader.Context ctx
    Returns
    Type Description
    UInt32

    ReadULong(ref DataStreamReader.Context)

    Declaration
    public ulong ReadULong(ref DataStreamReader.Context ctx)
    Parameters
    Type Name Description
    DataStreamReader.Context ctx
    Returns
    Type Description
    UInt64

    ReadUShort(ref DataStreamReader.Context)

    Declaration
    public ushort ReadUShort(ref DataStreamReader.Context ctx)
    Parameters
    Type Name Description
    DataStreamReader.Context ctx
    Returns
    Type Description
    UInt16

    ReadUShortNetworkByteOrder(ref DataStreamReader.Context)

    Declaration
    public ushort ReadUShortNetworkByteOrder(ref DataStreamReader.Context ctx)
    Parameters
    Type Name Description
    DataStreamReader.Context ctx
    Returns
    Type Description
    UInt16

    Extension Methods

    DataStreamUnsafeUtility.GetUnsafeReadOnlyPtr(DataStreamReader)
    Back to top
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023