/// <summary> /// Verify that a stream's current position contains a serialized hierarchySync. /// </summary> /// <param name="stream">A FastTransferStream.</param> /// <returns>If the stream's current position contains /// a serialized hierarchySync, return true, else false.</returns> public static bool Verify(FastTransferStream stream) { return((FolderChange.Verify(stream) || Deletions.Verify(stream) || State.Verify(stream)) && stream.VerifyMarker( Markers.PidTagIncrSyncEnd, (int)stream.Length - MarkersHelper.PidTagLength - (int)stream.Position)); }
/// <summary> /// Deserialize fields from a FastTransferStream. /// </summary> /// <param name="stream">A FastTransferStream.</param> public override void Deserialize(FastTransferStream stream) { this.folderChangeList = new List <FolderChange>(); while (FolderChange.Verify(stream)) { this.folderChangeList.Add(new FolderChange(stream)); } if (Deletions.Verify(stream)) { this.deletions = new Deletions(stream); } this.state = new State(stream); if (!stream.ReadMarker(Markers.PidTagIncrSyncEnd)) { AdapterHelper.Site.Assert.Fail("The stream cannot be deserialized successfully."); } }