public override void Parse(Stream s) { base.Parse(s); int index = 0; byte temp = ReadByte(); // TODO this.Type = (StreamObjectTypeHeaderEnd)GetBits(temp, index, 6); index = index + 6; this.A = (byte)GetBits(temp, index, 2); }
/// <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; }