docs.unity3d.com
Search Results for

    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.

    Inherited Members
    ValueType.Equals(object)
    ValueType.GetHashCode()
    ValueType.ToString()
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    object.GetType()
    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 FixedString128Bytes value from the current stream and advances the current position of the stream by the length of the string.

    ReadFixedString32()

    Reads a FixedString32Bytes value from the current stream and advances the current position of the stream by the length of the string.

    ReadFixedString4096()

    Reads a FixedString4096Bytes value from the current stream and advances the current position of the stream by the length of the string.

    ReadFixedString512()

    Reads a FixedString512Bytes value from the current stream and advances the current position of the stream by the length of the string.

    ReadFixedString64()

    Reads a FixedString64Bytes value from the current stream and advances the current position of the stream by the length of the string.

    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 FixedString128Bytes delta value to the data stream using a NetworkCompressionModel.

    ReadPackedFixedString32Delta(FixedString32Bytes, NetworkCompressionModel)

    Reads a FixedString32Bytes delta value to the data stream using a NetworkCompressionModel.

    ReadPackedFixedString4096Delta(FixedString4096Bytes, NetworkCompressionModel)

    Reads a FixedString4096Bytes delta value to the data stream using a NetworkCompressionModel.

    ReadPackedFixedString512Delta(FixedString512Bytes, NetworkCompressionModel)

    Reads a FixedString512Bytes delta value to the data stream using a NetworkCompressionModel.

    ReadPackedFixedString64Delta(FixedString64Bytes, NetworkCompressionModel)

    Reads a FixedString64Bytes delta value to the data stream using a NetworkCompressionModel.

    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 baseline will be returned.

    ReadPackedInt(NetworkCompressionModel)

    Reads a 4-byte signed integer value from the data stream using a NetworkCompressionModel.
    Negative values de-interleaves from positive values before returning, for example (0, -1, 1, -2, 2) -> (-2, -1, 0, 1, 2)

    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.
    Negative values de-interleaves from positive values before returning, for example (0, -1, 1, -2, 2) -> (-2, -1, 0, 1, 2)

    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 pos is outside the length of the stream.
    In addition this will reset the bit index and the bit buffer.

    In This Article
    Back to top
    Copyright © 2023 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)