public static ChunkedMessage Decode(Stream inputStream)
        {
            if (inputStream == null || !inputStream.CanRead)
            {
                return(null);
            }
            ChunkedMessage instance = new ChunkedMessage();

            instance.PayloadHeader = ChunkedPayloadHeader.Decode(inputStream);
            ushort?seqValue = BaseType.ReadUInt16(inputStream);

            if (seqValue == null)
            {
                return(null);
            }
            instance.MessageSequenceNumber = seqValue.Value;
            uint?offSetValue = BaseType.ReadUInt32(inputStream);

            if (offSetValue == null)
            {
                return(null);
            }
            instance.ChunkOffset = offSetValue.Value;
            uint?sizeValue = BaseType.ReadUInt32(inputStream);

            if (sizeValue == null)
            {
                return(null);
            }
            instance.TotalSize = sizeValue.Value;
            instance.ChunkData = SimpleArray <byte> .Decode(inputStream, BaseType.ReadByte);

            return(instance);
        }
        public static ChunkedPayloadHeader Decode(Stream inputStream)
        {
            if (inputStream == null || !inputStream.CanRead)
            {
                return(null);
            }
            ChunkedPayloadHeader instance = new ChunkedPayloadHeader();
            ushort?value = BaseType.ReadUInt16(inputStream);

            if (value == null)
            {
                return(null);
            }
            instance.DataSetWriterID = value.Value;
            return(instance);
        }