3 writes to _header
System.Formats.Tar (3)
System\Formats\Tar\TarEntry.cs (3)
32
_header
= header;
49
_header
= new TarHeader(format, entryName, TarHelpers.GetDefaultMode(entryType), DateTimeOffset.UtcNow, entryType);
66
_header
= new TarHeader(format, compatibleEntryType, other._header);
133 references to _header
System.Formats.Tar (133)
System\Formats\Tar\GnuTarEntry.cs (8)
57
_header
._aTime = gnuOther.AccessTime;
58
_header
._cTime = gnuOther.ChangeTime;
62
Debug.Assert(
_header
._aTime == default);
63
Debug.Assert(
_header
._cTime == default);
76
get =>
_header
._aTime;
79
_header
._aTime = value;
92
get =>
_header
._cTime;
95
_header
._cTime = value;
System\Formats\Tar\PaxGlobalExtendedAttributesTarEntry.cs (2)
29
_header
.AddExtendedAttributes(globalExtendedAttributes);
35
public IReadOnlyDictionary<string, string> GlobalExtendedAttributes => field ??=
_header
.ExtendedAttributes.AsReadOnly();
System\Formats\Tar\PaxTarEntry.cs (12)
40
_header
._prefix = string.Empty;
71
_header
._prefix = string.Empty;
72
_header
.ReplaceNormalAttributesWithExtended(extendedAttributes);
75
_header
._name = entryName;
76
_header
.ExtendedAttributes[TarHeader.PaxEaName] = entryName;
91
if (other.
_header
._format is TarEntryFormat.Ustar or TarEntryFormat.Pax)
93
_header
._prefix = other.
_header
._prefix;
98
_header
.ReplaceNormalAttributesWithExtended(paxOther.ExtendedAttributes);
104
_header
.ExtendedAttributes[TarHeader.PaxEaATime] = TarHelpers.GetTimestampStringFromDateTimeOffset(gnuOther.AccessTime);
108
_header
.ExtendedAttributes[TarHeader.PaxEaCTime] = TarHelpers.GetTimestampStringFromDateTimeOffset(gnuOther.ChangeTime);
129
public IReadOnlyDictionary<string, string> ExtendedAttributes => field ??=
_header
.GetPopulatedExtendedAttributes().AsReadOnly();
System\Formats\Tar\PosixTarEntry.cs (30)
25
_header
._uName = string.Empty;
26
_header
._gName = string.Empty;
27
_header
._devMajor = 0;
28
_header
._devMinor = 0;
37
Debug.Assert(other.
_header
._uName != null);
38
Debug.Assert(other.
_header
._gName != null);
39
_header
._uName = other.
_header
._uName;
40
_header
._gName = other.
_header
._gName;
41
_header
._devMajor = other.
_header
._devMajor;
42
_header
._devMinor = other.
_header
._devMinor;
44
_header
._uName ??= string.Empty;
45
_header
._gName ??= string.Empty;
56
get =>
_header
._devMajor;
59
if (
_header
._typeFlag is not TarEntryType.BlockDevice and not TarEntryType.CharacterDevice)
70
_header
._devMajor = value;
71
_header
.SyncNumericExtendedAttribute(TarHeader.PaxEaDevMajor, value, TarHeader.Octal8ByteFieldMaxValue);
83
get =>
_header
._devMinor;
86
if (
_header
._typeFlag is not TarEntryType.BlockDevice and not TarEntryType.CharacterDevice)
97
_header
._devMinor = value;
98
_header
.SyncNumericExtendedAttribute(TarHeader.PaxEaDevMinor, value, TarHeader.Octal8ByteFieldMaxValue);
109
get =>
_header
._gName ?? string.Empty;
113
_header
._gName = value;
114
_header
.SyncStringExtendedAttribute(TarHeader.PaxEaGName, value, FieldLengths.GName);
125
get =>
_header
._uName ?? string.Empty;
129
_header
._uName = value;
130
_header
.SyncStringExtendedAttribute(TarHeader.PaxEaUName, value, FieldLengths.UName);
System\Formats\Tar\TarEntry.cs (30)
24
protected bool FormatIsOctalOnly =>
_header
._format is TarEntryFormat.V7 or TarEntryFormat.Ustar;
66
_header = new TarHeader(format, compatibleEntryType, other.
_header
);
72
public int Checksum =>
_header
._checksum;
77
public TarEntryType EntryType =>
_header
._typeFlag;
82
public TarEntryFormat Format =>
_header
._format;
90
get =>
_header
._gid;
93
_header
._gid = value;
94
_header
.SyncNumericExtendedAttribute(TarHeader.PaxEaGid, value, TarHeader.Octal8ByteFieldMaxValue);
105
get =>
_header
._mTime;
112
_header
._mTime = value;
113
_header
.SyncTimestampExtendedAttribute(TarHeader.PaxEaMTime, value);
121
public long Length =>
_header
._dataStream != null ?
_header
._dataStream.Length :
_header
._size;
132
get =>
_header
._linkName ?? string.Empty;
135
if (
_header
._typeFlag is not TarEntryType.HardLink and not TarEntryType.SymbolicLink)
140
_header
._linkName = value;
141
_header
.SyncStringExtendedAttribute(TarHeader.PaxEaLinkName, value);
153
get => (UnixFileMode)(
_header
._mode & (int)TarHelpers.ValidUnixFileModes);
160
_header
._mode = (int)value;
170
get =>
_header
._name;
174
_header
._name = value;
175
_header
.SyncStringExtendedAttribute(TarHeader.PaxEaName, value);
185
get =>
_header
._uid;
188
_header
._uid = value;
189
_header
.SyncNumericExtendedAttribute(TarHeader.PaxEaUid, value, TarHeader.Octal8ByteFieldMaxValue);
270
get =>
_header
._dataStream;
293
_header
._dataStream?.Dispose();
295
_header
._dataStream = value;
306
public long DataOffset =>
_header
._dataOffset;
System\Formats\Tar\TarEntry.Unix.cs (4)
17
Interop.CheckIo(Interop.Sys.CreateBlockDevice(destinationFileName, (uint)Mode, (uint)
_header
._devMajor, (uint)
_header
._devMinor), destinationFileName);
24
Interop.CheckIo(Interop.Sys.CreateCharacterDevice(destinationFileName, (uint)Mode, (uint)
_header
._devMajor, (uint)
_header
._devMinor), destinationFileName);
System\Formats\Tar\TarReader.cs (11)
209
Debug.Assert(_previouslyReadEntry.
_header
._endOfHeaderAndDataAndBlockAlignment > 0);
210
_archiveStream.Position = _previouslyReadEntry.
_header
._endOfHeaderAndDataAndBlockAlignment;
212
else if (_previouslyReadEntry.
_header
._size > 0)
219
if (_previouslyReadEntry.
_header
._dataStream is not SubReadStream dataStream)
226
TarHelpers.SkipBlockAlignmentPadding(_archiveStream, _previouslyReadEntry.
_header
._size);
242
Debug.Assert(_previouslyReadEntry.
_header
._endOfHeaderAndDataAndBlockAlignment > 0);
243
_archiveStream.Position = _previouslyReadEntry.
_header
._endOfHeaderAndDataAndBlockAlignment;
245
else if (_previouslyReadEntry.
_header
._size > 0)
252
if (_previouslyReadEntry.
_header
._dataStream is not SubReadStream dataStream)
259
await TarHelpers.SkipBlockAlignmentPaddingAsync(_archiveStream, _previouslyReadEntry.
_header
._size, cancellationToken).ConfigureAwait(false);
604
if (entry.
_header
._dataStream is SubReadStream dataStream)
System\Formats\Tar\TarWriter.cs (21)
203
entry.
_header
._dataStream?.Dispose();
214
if (entry.
_header
._dataStream != null)
216
await entry.
_header
._dataStream.DisposeAsync().ConfigureAwait(false);
262
ValidateEntryLinkName(entry.
_header
._typeFlag, entry.
_header
._linkName);
311
ValidateEntryLinkName(entry.
_header
._typeFlag, entry.
_header
._linkName);
325
entry.
_header
.WriteAsV7(_archiveStream, buffer);
329
entry.
_header
.WriteAsUstar(_archiveStream, buffer);
333
if (entry.
_header
._typeFlag is TarEntryType.GlobalExtendedAttributes)
335
entry.
_header
.WriteAsPaxGlobalExtendedAttributes(_archiveStream, buffer, _nextGlobalExtendedAttributesEntryNumber++);
339
entry.
_header
.WriteAsPax(_archiveStream, buffer);
344
entry.
_header
.WriteAsGnu(_archiveStream, buffer);
366
TarEntryFormat.V7 => entry.
_header
.WriteAsV7Async(_archiveStream, buffer, cancellationToken),
367
TarEntryFormat.Ustar => entry.
_header
.WriteAsUstarAsync(_archiveStream, buffer, cancellationToken),
368
TarEntryFormat.Pax when entry.
_header
._typeFlag is TarEntryType.GlobalExtendedAttributes => entry.
_header
.WriteAsPaxGlobalExtendedAttributesAsync(_archiveStream, buffer, _nextGlobalExtendedAttributesEntryNumber++, cancellationToken),
369
TarEntryFormat.Pax => entry.
_header
.WriteAsPaxAsync(_archiveStream, buffer, cancellationToken),
370
TarEntryFormat.Gnu => entry.
_header
.WriteAsGnuAsync(_archiveStream, buffer, cancellationToken),
419
if (!_archiveStream.CanSeek && entry.
_header
._dataStream != null && !entry.
_header
._dataStream.CanSeek)
System\Formats\Tar\TarWriter.Unix.cs (10)
83
entry.
_header
._devMajor = (int)major;
84
entry.
_header
._devMinor = (int)minor;
87
entry.
_header
._mTime = TarHelpers.GetDateTimeOffsetFromSecondsSinceEpoch(status.MTime);
95
entry.
_header
._mode = status.Mode & (int)TarHelpers.ValidUnixFileModes;
98
entry.
_header
._uid = (int)status.Uid;
104
entry.
_header
._uName = uName;
107
entry.
_header
._gid = (int)status.Gid;
115
entry.
_header
._gName = gName;
130
Debug.Assert(entry.
_header
._dataStream == null);
131
entry.
_header
._dataStream = new FileStream(fullPath, FileMode.Open, FileAccess.Read, FileShare.Read, 4096, fileOptions);
System\Formats\Tar\UstarTarEntry.cs (5)
35
_header
._prefix = string.Empty;
47
if (other.
_header
._format is TarEntryFormat.Ustar or TarEntryFormat.Pax)
49
_header
._prefix = other.
_header
._prefix;
53
_header
._prefix = string.Empty;