Example #1
0
 private static bool ReadFixedData(ref ArrayOffset <byte> input, int length, out byte[] data)
 {
     if (input.Length < length)
     {
         data = null;
         return(false);
     }
     data = new byte[length];
     input.CopyTo(data, 0, length);
     input += length;
     return(true);
 }
Example #2
0
        private static bool ReadVariableDataUInt16Header(ref ArrayOffset <byte> input, out byte[] data)
        {
            const int headerSize = sizeof(ushort);

            if (input.Length < headerSize)
            {
                data = null;
                return(false);
            }
            var chunkSize = (ushort)(input[0] << 8 | input[1]); //Big endian read

            input += headerSize;
            if (chunkSize == 0)
            {
                data = new byte[0];
                return(true);
            }
            var result = new byte[chunkSize];

            input.CopyTo(result, 0, chunkSize);
            input += chunkSize;
            data   = result;
            return(true);
        }