/// <summary> /// Parse fields from a FastTransferStream. /// </summary> /// <param name="stream">A FastTransferStream.</param> public override void Parse(FastTransferStream stream) { List<ProgressPerMessageChange> InterProgressPerMessageChanges = new List<ProgressPerMessageChange>(); if (ProgressTotal.Verify(stream)) { this.ProgressTotal = new ProgressTotal(stream); } while (ProgressPerMessageChange.Verify(stream)) { InterProgressPerMessageChanges.Add(new ProgressPerMessageChange(stream)); } this.ProgressPerMessageChanges = InterProgressPerMessageChanges.ToArray(); if (Deletions.Verify(stream)) { this.Deletions = new Deletions(stream); } if (ReadStateChanges.Verify(stream)) { this.ReadStateChanges = new ReadStateChanges(stream); } this.State = new State(stream); if (stream.ReadMarker() == Markers.IncrSyncEnd) { this.EndMarker = Markers.IncrSyncEnd; } else { throw new Exception("The ContentsSync cannot be parsed successfully. The IncrSyncEnd Marker is missed."); } }
/// <summary> /// Parse fields from a FastTransferStream. /// </summary> /// <param name="stream">A FastTransferStream.</param> public override void Parse(FastTransferStream stream) { List<FolderChange> InterFolderChanges = new List<FolderChange>(); while (FolderChange.Verify(stream)) { InterFolderChanges.Add(new FolderChange(stream)); } this.FolderChanges = InterFolderChanges.ToArray(); if (Deletions.Verify(stream)) { this.Deletions = new Deletions(stream); } this.State = new State(stream); if (stream.ReadMarker() == Markers.IncrSyncEnd) { this.EndMarker = Markers.IncrSyncEnd; } else { throw new Exception("The HierarchySync cannot be parsed successfully. The IncrSyncEnd Marker is missed."); } }