FSSHTTPandWOPIInspector.Parsers.bit32StreamObjectHeaderStart.Parse C# (CSharp) Method

Parse() public method

Parse the bit32StreamObjectHeaderStart structure.
public Parse ( Stream s ) : void
s Stream An stream containing bit32StreamObjectHeaderStart structure.
return void
        public override void Parse(Stream s)
        {
            base.Parse(s);
            int index = 0;
            int temp = ReadINT32();
            this.A = (byte)GetBits(temp, index, 2);
            index = index + 2;
            this.B = (byte)GetBits(temp, index, 1);
            index = index + 1;
            this.Type = (StreamObjectTypeHeaderStart)GetBits(temp, index, 14);
            index = index + 14;
            this.Length = (byte)GetBits(temp, index, 15);

            if (this.Length == 32767)
            {
                this.LargeLength = new CompactUnsigned64bitInteger();
                this.LargeLength = this.LargeLength.TryParse(s);
            }
        }

Usage Example

        /// <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;
        }
bit32StreamObjectHeaderStart