2.2.1.13 Knowledge
Inheritance: BaseStructure
 /// <summary>
 /// Parse the QueryChangesResponse structure.
 /// </summary>
 /// <param name="s">An stream containing QueryChangesResponse structure.</param>
 public override void Parse(Stream s)
 {
     base.Parse(s);
     this.queryChangesResponse = new bit32StreamObjectHeaderStart();
     this.queryChangesResponse.Parse(s);
     this.StorageIndexExtendedGUID = new ExtendedGUID();
     this.StorageIndexExtendedGUID = this.StorageIndexExtendedGUID.TryParse(s);
     byte tempbyte = ReadByte();
     this.P = GetBits(tempbyte, 0, 1);
     this.Reserved = GetBits(tempbyte, 1, 7);
     this.Knowledge = new Knowledge();
     this.Knowledge.Parse(s);
 }
 /// <summary>
 /// Parse the PutChangesResponse structure.
 /// </summary>
 /// <param name="s">An stream containing PutChangesResponse structure.</param>
 public override void Parse(Stream s)
 {
     base.Parse(s);
     this.putChangesResponse = new bit32StreamObjectHeaderStart();
     this.putChangesResponse.Parse(s);
     this.AppliedStorageIndexId = new ExtendedGUID();
     this.AppliedStorageIndexId = this.AppliedStorageIndexId.TryParse(s);
     this.DataElementsAdded = new ExtendedGUIDArray();
     this.DataElementsAdded.Parse(s);
     this.ResultantKnowledge = new Knowledge();
     this.ResultantKnowledge.Parse(s);
     this.DiagnosticRequestOptionOutput = new DiagnosticRequesOptionOutput();
     this.DiagnosticRequestOptionOutput.Parse(s);
 }
        /// <summary>
        /// Parse the Filter structure.
        /// </summary>
        /// <param name="s">An stream containing Filter structure.</param>
        public override void Parse(Stream s)
        {
            base.Parse(s);
            this.queryChangesRequest = new bit32StreamObjectHeaderStart();
            this.queryChangesRequest.Parse(s);
            byte tempByte = ReadByte();
            this.A = GetBits(tempByte, 0, 1);
            this.B = GetBits(tempByte, 1, 1);
            this.C = GetBits(tempByte, 2, 1);
            this.D = GetBits(tempByte, 3, 1);
            this.E = GetBits(tempByte, 4, 1);
            this.F = GetBits(tempByte, 5, 1);
            this.G = GetBits(tempByte, 6, 2);
            this.queryChangesRequestArguments = new bit32StreamObjectHeaderStart();
            this.queryChangesRequestArguments.Parse(s);
            byte tempByte2 = ReadByte();
            this.F2 = GetBits(tempByte2, 0, 1);
            this.G2 = GetBits(tempByte2, 1, 1);
            this.H = GetBits(tempByte2, 2, 6);
            this.CellID = new CellID();
            this.CellID.Parse(s);
            if (ContainsStreamObjectHeader(0x059))
            {
                this.QueryChangesDataConstraints = new bit32StreamObjectHeaderStart();
                this.QueryChangesDataConstraints.Parse(s);
            }
            if (this.QueryChangesDataConstraints != null)
            {
                this.MaxDataElements = new CompactUnsigned64bitInteger();
                this.MaxDataElements = this.MaxDataElements.TryParse(s);
            }

            //TODO£ºThe below two fields are newly add in TD, but they have not conatined in the capture data for sharepoint 2013 server
            //this.MajorVersionNumber = new CompactUnsigned64bitInteger();
            //this.MajorVersionNumber = this.MajorVersionNumber.TryParse(s);
            //this.MinorVersionNumber = new CompactUnsigned64bitInteger();
            //this.MinorVersionNumber = this.MinorVersionNumber.TryParse(s);
            List<Filter> FilterList = new List<Filter>();
            while (ContainsStreamObjectHeader(0x47))
            {
                Filter tempFilter = new Filter();
                FilterList.Add(tempFilter);
            }
            this.QueryChangesFilters = FilterList.ToArray();

            if (ContainsStreamObjectHeader(0x10))
            {
                this.Knowledge = new Knowledge();
                this.Knowledge.Parse(s);
            }
        }
 /// <summary>
 /// Parse the PutChangesRequest structure.
 /// </summary>
 /// <param name="s">An stream containing PutChangesRequest structure.</param>
 public override void Parse(Stream s)
 {
     base.Parse(s);
     this.putChangesRequest = new bit32StreamObjectHeaderStart();
     this.putChangesRequest.Parse(s);
     this.StorageIndexExtendedGUID = new ExtendedGUID();
     this.StorageIndexExtendedGUID = this.StorageIndexExtendedGUID.TryParse(s);
     this.ExpectedStorageIndexExtendedGUID = new ExtendedGUID();
     this.ExpectedStorageIndexExtendedGUID = this.ExpectedStorageIndexExtendedGUID.TryParse(s);
     byte tempByte = ReadByte();
     this.A = (byte)GetBits(tempByte, 0, 1);
     this.B = (byte)GetBits(tempByte, 1, 1);
     this.C = (byte)GetBits(tempByte, 2, 1);
     this.D = (byte)GetBits(tempByte, 3, 1);
     this.E = (byte)GetBits(tempByte, 4, 1);
     this.F = (byte)GetBits(tempByte, 5, 1);
     this.G = (byte)GetBits(tempByte, 6, 1);
     this.H = (byte)GetBits(tempByte, 7, 1);
     if (ContainsStreamObjectHeader(0x86))
     {
         this.AdditionalFlags = new AdditionalFlags();
         this.AdditionalFlags.Parse(s);
     }
     if (ContainsStreamObjectHeader(0x85))
     {
         this.LockId = new LockId();
         this.LockId.Parse(s);
     }
     if (ContainsStreamObjectHeader(0x10))
     {
         this.ClientKnowledge = new Knowledge();
         this.ClientKnowledge.Parse(s);
     }
     if (ContainsStreamObjectHeader(0x8A))
     {
         this.DiagnosticRequestOptionInput = new DiagnosticRequestOptionInput();
         this.DiagnosticRequestOptionInput.Parse(s);
     }
 }