public static FsImageProto.INodeSection.INodeFile.Builder BuildINodeFile(INodeFileAttributes file, FSImageFormatProtobuf.SaverContext state) { FsImageProto.INodeSection.INodeFile.Builder b = FsImageProto.INodeSection.INodeFile .NewBuilder().SetAccessTime(file.GetAccessTime()).SetModificationTime(file.GetModificationTime ()).SetPermission(BuildPermissionStatus(file, state.GetStringMap())).SetPreferredBlockSize (file.GetPreferredBlockSize()).SetReplication(file.GetFileReplication()).SetStoragePolicyID (file.GetLocalStoragePolicyID()); AclFeature f = file.GetAclFeature(); if (f != null) { b.SetAcl(BuildAclEntries(f, state.GetStringMap())); } XAttrFeature xAttrFeature = file.GetXAttrFeature(); if (xAttrFeature != null) { b.SetXAttrs(BuildXAttrs(xAttrFeature, state.GetStringMap())); } return(b); }
/// <exception cref="System.IO.IOException"/> private void Save(OutputStream @out, INodeFile n) { FsImageProto.INodeSection.INodeFile.Builder b = BuildINodeFile(n, parent.GetSaverContext ()); if (n.GetBlocks() != null) { foreach (Block block in n.GetBlocks()) { b.AddBlocks(PBHelper.Convert(block)); } } FileUnderConstructionFeature uc = n.GetFileUnderConstructionFeature(); if (uc != null) { FsImageProto.INodeSection.FileUnderConstructionFeature f = ((FsImageProto.INodeSection.FileUnderConstructionFeature )FsImageProto.INodeSection.FileUnderConstructionFeature.NewBuilder().SetClientName (uc.GetClientName()).SetClientMachine(uc.GetClientMachine()).Build()); b.SetFileUC(f); } FsImageProto.INodeSection.INode r = ((FsImageProto.INodeSection.INode)BuildINodeCommon (n).SetType(FsImageProto.INodeSection.INode.Type.File).SetFile(b).Build()); r.WriteDelimitedTo(@out); }