Exemplo n.º 1
0
        public static void ValidateSentinel(this BitReader reader, byte[] expectedSentinel)
        {
            if (expectedSentinel.Length != 16)
            {
                throw new InvalidOperationException("Expected sentinel must be 16 bytes");
            }

            reader.AlignToByte();
            ValidateBytes(reader, expectedSentinel);
        }
Exemplo n.º 2
0
        internal static DwgHeaderVariables Parse(BitReader reader, DwgVersionId version)
        {
            var header = new DwgHeaderVariables();

            reader.ValidateSentinel(StartSentinel);
            reader.StartCrcCheck();
            var size        = reader.Read_RL();
            var startOffset = reader.Offset;

            header.ReadVariables(reader, version);
            reader.AlignToByte();
            var unreadByteCount = Math.Max(startOffset + size - reader.Offset, 0);
            var unreadBytes     = reader.ReadBytes(unreadByteCount);

            reader.ValidateCrc(initialValue: InitialCrcValue);
            reader.ValidateSentinel(EndSentinel);
            return(header);
        }