/// <summary>save all the snapshot diff to fsimage</summary> /// <exception cref="System.IO.IOException"/> public void SerializeSnapshotDiffSection(OutputStream @out) { INodeMap inodesMap = fsn.GetFSDirectory().GetINodeMap(); IList <INodeReference> refList = parent.GetSaverContext().GetRefList(); int i = 0; IEnumerator <INodeWithAdditionalFields> iter = inodesMap.GetMapIterator(); while (iter.HasNext()) { INodeWithAdditionalFields inode = iter.Next(); if (inode.IsFile()) { SerializeFileDiffList(inode.AsFile(), @out); } else { if (inode.IsDirectory()) { SerializeDirDiffList(inode.AsDirectory(), refList, @out); } } ++i; if (i % FSImageFormatProtobuf.Saver.CheckCancelInterval == 0) { context.CheckCancelled(); } } parent.CommitSection(headers, FSImageFormatProtobuf.SectionName.SnapshotDiff); }