File: System\IO\Compression\ZipBlocks.FieldLocations.cs
Web Access
Project: src\src\libraries\System.IO.Compression\src\System.IO.Compression.csproj (System.IO.Compression)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
namespace System.IO.Compression
{
    internal sealed partial class ZipGenericExtraField
    {
        internal static class FieldLocations
        {
            public const int Tag = 0;
            public const int Size = Tag + FieldLengths.Tag;
            public const int DynamicData = Size + FieldLengths.Size;
        }
    }
 
    internal sealed partial class Zip64ExtraField
    {
        internal static class FieldLocations
        {
            public const int Tag = ZipGenericExtraField.FieldLocations.Tag;
            public const int Size = ZipGenericExtraField.FieldLocations.Size;
            public const int UncompressedSize = ZipGenericExtraField.FieldLocations.DynamicData;
            public const int CompressedSize = UncompressedSize + FieldLengths.UncompressedSize;
            public const int LocalHeaderOffset = CompressedSize + FieldLengths.CompressedSize;
            public const int StartDiskNumber = LocalHeaderOffset + FieldLengths.LocalHeaderOffset;
        }
    }
 
    internal sealed partial class Zip64EndOfCentralDirectoryLocator
    {
        private static class FieldLocations
        {
            public const int Signature = 0;
            public const int NumberOfDiskWithZip64EOCD = Signature + FieldLengths.Signature;
            public const int OffsetOfZip64EOCD = NumberOfDiskWithZip64EOCD + FieldLengths.NumberOfDiskWithZip64EOCD;
            public const int TotalNumberOfDisks = OffsetOfZip64EOCD + FieldLengths.OffsetOfZip64EOCD;
        }
    }
 
    internal sealed partial class Zip64EndOfCentralDirectoryRecord
    {
        private static class FieldLocations
        {
            public const int Signature = 0;
            public const int SizeOfThisRecord = Signature + FieldLengths.Signature;
            public const int VersionMadeBy = SizeOfThisRecord + FieldLengths.SizeOfThisRecord;
            public const int VersionNeededToExtract = VersionMadeBy + FieldLengths.VersionMadeBy;
            public const int NumberOfThisDisk = VersionNeededToExtract + FieldLengths.VersionNeededToExtract;
            public const int NumberOfDiskWithStartOfCD = NumberOfThisDisk + FieldLengths.NumberOfThisDisk;
            public const int NumberOfEntriesOnThisDisk = NumberOfDiskWithStartOfCD + FieldLengths.NumberOfDiskWithStartOfCD;
            public const int NumberOfEntriesTotal = NumberOfEntriesOnThisDisk + FieldLengths.NumberOfEntriesOnThisDisk;
            public const int SizeOfCentralDirectory = NumberOfEntriesTotal + FieldLengths.NumberOfEntriesTotal;
            public const int OffsetOfCentralDirectory = SizeOfCentralDirectory + FieldLengths.SizeOfCentralDirectory;
        }
    }
 
    internal readonly partial struct ZipLocalFileHeader
    {
        internal static class FieldLocations
        {
            public const int Signature = 0;
            public const int VersionNeededToExtract = Signature + FieldLengths.Signature;
            public const int GeneralPurposeBitFlags = VersionNeededToExtract + FieldLengths.VersionNeededToExtract;
            public const int CompressionMethod = GeneralPurposeBitFlags + FieldLengths.GeneralPurposeBitFlags;
            public const int LastModified = CompressionMethod + FieldLengths.CompressionMethod;
            public const int Crc32 = LastModified + FieldLengths.LastModified;
            public const int CompressedSize = Crc32 + FieldLengths.Crc32;
            public const int UncompressedSize = CompressedSize + FieldLengths.CompressedSize;
            public const int FilenameLength = UncompressedSize + FieldLengths.UncompressedSize;
            public const int ExtraFieldLength = FilenameLength + FieldLengths.FilenameLength;
            public const int DynamicData = ExtraFieldLength + FieldLengths.ExtraFieldLength;
        }
 
        internal sealed partial class ZipDataDescriptor
        {
            internal static class FieldLocations
            {
                public const int Signature = 0;
                public const int Crc32 = Signature + FieldLengths.Signature;
                public const int CompressedSize = Crc32 + FieldLengths.Crc32;
                public const int UncompressedSize = CompressedSize + FieldLengths.CompressedSize;
            }
        }
 
        internal sealed partial class Zip64DataDescriptor
        {
            internal static class FieldLocations
            {
                public const int Signature = 0;
                public const int Crc32 = Signature + FieldLengths.Signature;
                public const int CompressedSize = Crc32 + FieldLengths.Crc32;
                public const int UncompressedSize = CompressedSize + FieldLengths.CompressedSize;
            }
        }
    }
 
    internal sealed partial class ZipCentralDirectoryFileHeader
    {
        internal static class FieldLocations
        {
            public const int Signature = 0;
            public const int VersionMadeBySpecification = Signature + FieldLengths.Signature;
            public const int VersionMadeByCompatibility = VersionMadeBySpecification + FieldLengths.VersionMadeBySpecification;
            public const int VersionNeededToExtract = VersionMadeByCompatibility + FieldLengths.VersionMadeByCompatibility;
            public const int GeneralPurposeBitFlags = VersionNeededToExtract + FieldLengths.VersionNeededToExtract;
            public const int CompressionMethod = GeneralPurposeBitFlags + FieldLengths.GeneralPurposeBitFlags;
            public const int LastModified = CompressionMethod + FieldLengths.CompressionMethod;
            public const int Crc32 = LastModified + FieldLengths.LastModified;
            public const int CompressedSize = Crc32 + FieldLengths.Crc32;
            public const int UncompressedSize = CompressedSize + FieldLengths.CompressedSize;
            public const int FilenameLength = UncompressedSize + FieldLengths.UncompressedSize;
            public const int ExtraFieldLength = FilenameLength + FieldLengths.FilenameLength;
            public const int FileCommentLength = ExtraFieldLength + FieldLengths.ExtraFieldLength;
            public const int DiskNumberStart = FileCommentLength + FieldLengths.FileCommentLength;
            public const int InternalFileAttributes = DiskNumberStart + FieldLengths.DiskNumberStart;
            public const int ExternalFileAttributes = InternalFileAttributes + FieldLengths.InternalFileAttributes;
            public const int RelativeOffsetOfLocalHeader = ExternalFileAttributes + FieldLengths.ExternalFileAttributes;
            public const int DynamicData = RelativeOffsetOfLocalHeader + FieldLengths.RelativeOffsetOfLocalHeader;
        }
    }
 
    internal sealed partial class ZipEndOfCentralDirectoryBlock
    {
        private static class FieldLocations
        {
            public const int Signature = 0;
            public const int NumberOfThisDisk = Signature + FieldLengths.Signature;
            public const int NumberOfTheDiskWithTheStartOfTheCentralDirectory = NumberOfThisDisk + FieldLengths.NumberOfThisDisk;
            public const int NumberOfEntriesInTheCentralDirectoryOnThisDisk = NumberOfTheDiskWithTheStartOfTheCentralDirectory + FieldLengths.NumberOfTheDiskWithTheStartOfTheCentralDirectory;
            public const int NumberOfEntriesInTheCentralDirectory = NumberOfEntriesInTheCentralDirectoryOnThisDisk + FieldLengths.NumberOfEntriesInTheCentralDirectoryOnThisDisk;
            public const int SizeOfCentralDirectory = NumberOfEntriesInTheCentralDirectory + FieldLengths.NumberOfEntriesInTheCentralDirectory;
            public const int OffsetOfStartOfCentralDirectoryWithRespectToTheStartingDiskNumber = SizeOfCentralDirectory + FieldLengths.SizeOfCentralDirectory;
            public const int ArchiveCommentLength = OffsetOfStartOfCentralDirectoryWithRespectToTheStartingDiskNumber + FieldLengths.OffsetOfStartOfCentralDirectoryWithRespectToTheStartingDiskNumber;
            public const int DynamicData = ArchiveCommentLength + FieldLengths.ArchiveCommentLength;
        }
    }
}