/// <summary> /// Parse the StreamObjectHeader structure. /// </summary> /// <param name="s">An stream containing StreamObjectHeader structure.</param> public StreamObjectHeader TryParse(Stream s) { base.Parse(s); byte temp = ReadByte(); s.Position -= 1; StreamObjectHeader streamObjectHeader = new StreamObjectHeader(); if ((temp & 0x03) == 0x0) { streamObjectHeader = new bit16StreamObjectHeaderStart(); streamObjectHeader.Parse(s); } else if ((temp & 0x03) == 0x02) { streamObjectHeader = new bit32StreamObjectHeaderStart(); streamObjectHeader.Parse(s); } else if ((temp & 0x03) == 0x01) { streamObjectHeader = new bit8StreamObjectHeaderEnd(); streamObjectHeader.Parse(s); } else if ((temp & 0x03) == 0x03) { streamObjectHeader = new bit16StreamObjectHeaderEnd(); streamObjectHeader.Parse(s); } return streamObjectHeader; }