89 references to FieldLengths
System.Formats.Tar (89)
System\Formats\Tar\FieldLocations.cs (30)
12
internal const ushort Mode =
FieldLengths
.Name;
13
internal const ushort Uid = Mode +
FieldLengths
.Mode;
14
internal const ushort Gid = Uid +
FieldLengths
.Uid;
15
internal const ushort Size = Gid +
FieldLengths
.Gid;
16
internal const ushort MTime = Size +
FieldLengths
.Size;
17
internal const ushort Checksum = MTime +
FieldLengths
.MTime;
18
internal const ushort TypeFlag = Checksum +
FieldLengths
.Checksum;
19
internal const ushort LinkName = TypeFlag +
FieldLengths
.TypeFlag;
23
internal const ushort Magic = LinkName +
FieldLengths
.LinkName;
24
internal const ushort Version = Magic +
FieldLengths
.Magic;
25
internal const ushort UName = Version +
FieldLengths
.Version;
26
internal const ushort GName = UName +
FieldLengths
.UName;
27
internal const ushort DevMajor = GName +
FieldLengths
.GName;
28
internal const ushort DevMinor = DevMajor +
FieldLengths
.DevMajor;
32
internal const ushort Prefix = DevMinor +
FieldLengths
.DevMinor;
36
internal const ushort ATime = DevMinor +
FieldLengths
.DevMinor;
37
internal const ushort CTime = ATime +
FieldLengths
.ATime;
38
internal const ushort Offset = CTime +
FieldLengths
.CTime;
39
internal const ushort LongNames = Offset +
FieldLengths
.Offset;
40
internal const ushort Unused = LongNames +
FieldLengths
.LongNames;
41
internal const ushort Sparse = Unused +
FieldLengths
.Unused;
42
internal const ushort IsExtended = Sparse +
FieldLengths
.Sparse;
43
internal const ushort RealSize = IsExtended +
FieldLengths
.IsExtended;
45
internal const ushort GnuUnused = CTime +
FieldLengths
.CTime;
49
internal const ushort V7Padding = LinkName +
FieldLengths
.LinkName;
50
internal const ushort PosixPadding = Prefix +
FieldLengths
.Prefix;
51
internal const ushort GnuPadding = RealSize +
FieldLengths
.RealSize;
53
internal const ushort V7Data = V7Padding +
FieldLengths
.V7Padding;
54
internal const ushort PosixData = PosixPadding +
FieldLengths
.PosixPadding;
55
internal const ushort GnuData = GnuPadding +
FieldLengths
.GnuPadding;
System\Formats\Tar\TarHeader.Read.cs (17)
369
ReadOnlySpan<byte> spanChecksum = buffer.Slice(FieldLocations.Checksum,
FieldLengths
.Checksum);
381
long size = TarHelpers.ParseNumeric<long>(buffer.Slice(FieldLocations.Size,
FieldLengths
.Size));
389
name: TarHelpers.GetTrimmedUtf8String(buffer.Slice(FieldLocations.Name,
FieldLengths
.Name)),
390
mode: TarHelpers.ParseNumeric<int>(buffer.Slice(FieldLocations.Mode,
FieldLengths
.Mode)),
391
mTime: TarHelpers.GetDateTimeOffsetFromSecondsSinceEpoch(TarHelpers.ParseNumeric<long>(buffer.Slice(FieldLocations.MTime,
FieldLengths
.MTime))),
396
_uid = TarHelpers.ParseNumeric<int>(buffer.Slice(FieldLocations.Uid,
FieldLengths
.Uid)),
397
_gid = TarHelpers.ParseNumeric<int>(buffer.Slice(FieldLocations.Gid,
FieldLengths
.Gid)),
398
_linkName = TarHelpers.GetTrimmedUtf8String(buffer.Slice(FieldLocations.LinkName,
FieldLengths
.LinkName))
433
ReadOnlySpan<byte> magic = buffer.Slice(FieldLocations.Magic,
FieldLengths
.Magic);
472
ReadOnlySpan<byte> version = buffer.Slice(FieldLocations.Version,
FieldLengths
.Version);
522
_uName = TarHelpers.GetTrimmedUtf8String(buffer.Slice(FieldLocations.UName,
FieldLengths
.UName));
523
_gName = TarHelpers.GetTrimmedUtf8String(buffer.Slice(FieldLocations.GName,
FieldLengths
.GName));
530
_devMajor = TarHelpers.ParseNumeric<int>(buffer.Slice(FieldLocations.DevMajor,
FieldLengths
.DevMajor));
533
_devMinor = TarHelpers.ParseNumeric<int>(buffer.Slice(FieldLocations.DevMinor,
FieldLengths
.DevMinor));
542
ReadOnlySpan<byte> aTimeBuffer = buffer.Slice(FieldLocations.ATime,
FieldLengths
.ATime);
548
ReadOnlySpan<byte> cTimeBuffer = buffer.Slice(FieldLocations.CTime,
FieldLengths
.CTime);
562
_prefix = TarHelpers.GetTrimmedUtf8String(buffer.Slice(FieldLocations.Prefix,
FieldLengths
.Prefix));
System\Formats\Tar\TarHeader.Write.cs (42)
362
private bool IsLinkNameTooLongForRegularField() => _linkName != null && (Encoding.UTF8.GetByteCount(_linkName) + 1) >
FieldLengths
.LinkName;
366
private bool IsNameTooLongForRegularField() => (Encoding.UTF8.GetByteCount(_name)) >
FieldLengths
.Name;
563
if (encodedLength >
FieldLengths
.Name)
570
int utf16NameTruncatedLength = GetUtf16TruncatedTextLength(name,
FieldLengths
.Name);
574
return WriteAsUtf8String(name, buffer.Slice(FieldLocations.Name,
FieldLengths
.Name));
584
const int MaxPathName =
FieldLengths
.Prefix + 1 +
FieldLengths
.Name;
596
if (pathNameBytes.Length <=
FieldLengths
.Name)
598
return WriteLeftAlignedBytesAndGetChecksum(pathNameBytes, buffer.Slice(FieldLocations.Name,
FieldLengths
.Name));
618
while (prefix.Length - name.Length >
FieldLengths
.Prefix)
630
if (prefix.Length <=
FieldLengths
.Prefix && name.Length <=
FieldLengths
.Name)
634
int checksum = WriteLeftAlignedBytesAndGetChecksum(prefix, buffer.Slice(FieldLocations.Prefix,
FieldLengths
.Prefix));
635
checksum += WriteLeftAlignedBytesAndGetChecksum(name, buffer.Slice(FieldLocations.Name,
FieldLengths
.Name));
655
checksum += FormatNumeric(_mode, buffer.Slice(FieldLocations.Mode,
FieldLengths
.Mode));
660
checksum += FormatNumeric(_uid, buffer.Slice(FieldLocations.Uid,
FieldLengths
.Uid));
665
checksum += FormatNumeric(_gid, buffer.Slice(FieldLocations.Gid,
FieldLengths
.Gid));
670
checksum += FormatNumeric(_size, buffer.Slice(FieldLocations.Size,
FieldLengths
.Size));
673
checksum += WriteAsTimestamp(_mTime, buffer.Slice(FieldLocations.MTime,
FieldLengths
.MTime));
683
if (GetUtf8TextLength(linkName) >
FieldLengths
.LinkName)
690
int truncatedLength = GetUtf16TruncatedTextLength(linkName,
FieldLengths
.LinkName);
694
checksum += WriteAsUtf8String(linkName, buffer.Slice(FieldLocations.LinkName,
FieldLengths
.LinkName));
719
int checksum = WriteLeftAlignedBytesAndGetChecksum(UstarMagicBytes, buffer.Slice(FieldLocations.Magic,
FieldLengths
.Magic));
720
checksum += WriteLeftAlignedBytesAndGetChecksum(UstarVersionBytes, buffer.Slice(FieldLocations.Version,
FieldLengths
.Version));
727
int checksum = WriteLeftAlignedBytesAndGetChecksum(GnuMagicBytes, buffer.Slice(FieldLocations.Magic,
FieldLengths
.Magic));
728
checksum += WriteLeftAlignedBytesAndGetChecksum(GnuVersionBytes, buffer.Slice(FieldLocations.Version,
FieldLengths
.Version));
741
if (GetUtf8TextLength(uName) >
FieldLengths
.UName)
748
int truncatedLength = GetUtf16TruncatedTextLength(uName,
FieldLengths
.UName);
752
checksum += WriteAsUtf8String(uName, buffer.Slice(FieldLocations.UName,
FieldLengths
.UName));
759
if (GetUtf8TextLength(gName) >
FieldLengths
.GName)
766
int truncatedLength = GetUtf16TruncatedTextLength(gName,
FieldLengths
.GName);
770
checksum += WriteAsUtf8String(gName, buffer.Slice(FieldLocations.GName,
FieldLengths
.GName));
775
checksum += FormatNumeric(_devMajor, buffer.Slice(FieldLocations.DevMajor,
FieldLengths
.DevMajor));
780
checksum += FormatNumeric(_devMinor, buffer.Slice(FieldLocations.DevMinor,
FieldLengths
.DevMinor));
795
checksum += WriteAsTimestamp(_aTime, buffer.Slice(FieldLocations.ATime,
FieldLengths
.ATime));
799
checksum += WriteAsTimestamp(_cTime, buffer.Slice(FieldLocations.CTime,
FieldLengths
.CTime));
805
checksum += WriteLeftAlignedBytesAndGetChecksum(_gnuUnusedBytes, buffer.Slice(FieldLocations.GnuUnused,
FieldLengths
.AllGnuUnused));
960
TryAddStringField(ExtendedAttributes, PaxEaGName, _gName,
FieldLengths
.GName);
961
TryAddStringField(ExtendedAttributes, PaxEaUName, _uName,
FieldLengths
.UName);
1037
Span<byte> converted = stackalloc byte[
FieldLengths
.Checksum];
1041
Span<byte> destination = buffer.Slice(FieldLocations.Checksum,
FieldLengths
.Checksum);
1225
return result.Length >=
FieldLengths
.Name ?