示例#1
0
            /// <exception cref="System.IO.IOException"/>
            internal void SerializeINodeSection(OutputStream @out)
            {
                INodeMap inodesMap = fsn.dir.GetINodeMap();

                FsImageProto.INodeSection.Builder b = FsImageProto.INodeSection.NewBuilder().SetLastInodeId
                                                          (fsn.dir.GetLastInodeId()).SetNumInodes(inodesMap.Size());
                FsImageProto.INodeSection s = ((FsImageProto.INodeSection)b.Build());
                s.WriteDelimitedTo(@out);
                int i = 0;
                IEnumerator <INodeWithAdditionalFields> iter = inodesMap.GetMapIterator();

                while (iter.HasNext())
                {
                    INodeWithAdditionalFields n = iter.Next();
                    Save(@out, n);
                    ++i;
                    if (i % FSImageFormatProtobuf.Saver.CheckCancelInterval == 0)
                    {
                        context.CheckCancelled();
                    }
                }
                parent.CommitSection(summary, FSImageFormatProtobuf.SectionName.Inode);
            }