2.2.1.10 Cell ID
Inheritance: BaseStructure
 /// <summary>
 /// Parse the CellIDFilter structure.
 /// </summary>
 /// <param name="s">An stream containing CellIDFilter structure.</param>
 public override void Parse(Stream s)
 {
     base.Parse(s);
     this.QueryChangesFilterCellID = new bit32StreamObjectHeaderStart();
     this.QueryChangesFilterCellID.Parse(s);
     this.CellID = new CellID();
     this.CellID.Parse(s);
 }
 /// <summary>
 /// Parse the CellIDArray structure.
 /// </summary>
 /// <param name="s">An stream containing CellIDArray structure.</param>
 public override void Parse(Stream s)
 {
     base.Parse(s);
     this.Count = new CompactUnsigned64bitInteger();
     this.Count = this.Count.TryParse(s);
     List<CellID> tempContent = new List<CellID>();
     if (this.Count.GetUint(Count) > 0)
     {
         ulong tempCount = this.Count.GetUint(Count);
         CellID tempGuid = new CellID();
         do
         {
             tempGuid.Parse(s);
             tempContent.Add(tempGuid);
             tempCount--;
         } while (tempCount > 0);
         this.Content = tempContent.ToArray();
     }
 }
 /// <summary>
 /// Parse the StorageIndexCellMappingValues structure.
 /// </summary>
 /// <param name="s">An stream containing StorageIndexCellMappingValues structure.</param>
 public override void Parse(Stream s)
 {
     base.Parse(s);
     this.StorageIndexCellMapping = new bit16StreamObjectHeaderStart();
     this.StorageIndexCellMapping.Parse(s);
     this.CellID = new CellID();
     this.CellID.Parse(s);
     this.CellMappingExtendedGUID = new ExtendedGUID();
     this.CellMappingExtendedGUID = this.CellMappingExtendedGUID.TryParse(s);
     this.CellMappingSerialNumber = new SerialNumber();
     this.CellMappingSerialNumber = this.CellMappingSerialNumber.TryParse(s);
 }
 /// <summary>
 /// Parse the StorageManifestRootDeclareValues structure.
 /// </summary>
 /// <param name="s">An stream containing StorageManifestRootDeclareValues structure.</param>
 public override void Parse(Stream s)
 {
     base.Parse(s);
     this.StorageManifestRootDeclare = new bit16StreamObjectHeaderStart();
     this.StorageManifestRootDeclare.Parse(s);
     this.RootExtendedGUID = new ExtendedGUID();
     this.RootExtendedGUID = this.RootExtendedGUID.TryParse(s);
     this.CellID = new CellID();
     this.CellID.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);
            }
        }