Files

601 lines
30 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<title>GzipArchive Class Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset="utf-8">
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
<script src="../js/lunr.min.js" defer></script>
<script src="../js/typeahead.jquery.js" defer></script>
<script src="../js/jazzy.search.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Class/GzipArchive" class="dashAnchor"></a>
<a title="GzipArchive Class Reference"></a>
<header class="header">
<p class="header-col header-col--primary">
<a class="header-link" href="../index.html">
SWCompression 4.9.1 Docs
</a>
(100% documented)
</p>
<div class="header-col--secondary">
<form role="search" action="../search.json">
<input type="text" placeholder="Search documentation" data-typeahead>
</form>
</div>
<p class="header-col header-col--secondary">
<a class="header-link" href="https://github.com/tsolomko/SWCompression">
<img class="header-icon" src="../img/gh.png" alt="GitHub"/>
View on GitHub
</a>
</p>
</header>
<p class="breadcrumbs">
<a class="breadcrumb" href="../index.html">SWCompression</a>
<img class="carat" src="../img/carat.png" alt=""/>
<a class="breadcrumb" href="../Archives.html">Archives</a>
<img class="carat" src="../img/carat.png" alt=""/>
GzipArchive Class Reference
</p>
<div class="content-wrapper">
<nav class="navigation">
<ul class="nav-groups">
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Compression.html">Compression</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/BZip2.html">BZip2</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/BZip2/BlockSize.html"> BlockSize</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/Deflate.html">Deflate</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/LZMA.html">LZMA</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/LZMAProperties.html">LZMAProperties</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/LZMA2.html">LZMA2</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/LZ4.html">LZ4</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Archives.html">Archives</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/GzipArchive.html">GzipArchive</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/GzipArchive/Member.html"> Member</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/GzipHeader.html">GzipHeader</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/GzipHeader/ExtraField.html"> ExtraField</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/XZArchive.html">XZArchive</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/ZlibArchive.html">ZlibArchive</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/ZlibHeader.html">ZlibHeader</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/ZlibHeader/CompressionLevel.html"> CompressionLevel</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../7-Zip.html">7-Zip</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/SevenZipContainer.html">SevenZipContainer</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/SevenZipEntry.html">SevenZipEntry</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/SevenZipEntryInfo.html">SevenZipEntryInfo</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../TAR.html">TAR</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/TarContainer.html">TarContainer</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/TarContainer/Format.html"> Format</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/TarReader.html">TarReader</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/TarWriter.html">TarWriter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/TarEntry.html">TarEntry</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/TarEntryInfo.html">TarEntryInfo</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../ZIP.html">ZIP</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/ZipContainer.html">ZipContainer</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/ZipEntry.html">ZipEntry</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/ZipEntryInfo.html">ZipEntryInfo</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/ZipExtraField.html">ZipExtraField</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/ZipExtraFieldLocation.html">ZipExtraFieldLocation</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Errors.html">Errors</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/BZip2Error.html">BZip2Error</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/DataError.html">DataError</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/DeflateError.html">DeflateError</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/GzipError.html">GzipError</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/LZMAError.html">LZMAError</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/LZMA2Error.html">LZMA2Error</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/SevenZipError.html">SevenZipError</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/TarCreateError.html">TarCreateError</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/TarError.html">TarError</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/XZError.html">XZError</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/ZipError.html">ZipError</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/ZlibError.html">ZlibError</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/Archive.html">Archive</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/Container.html">Container</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/ContainerEntry.html">ContainerEntry</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/ContainerEntryInfo.html">ContainerEntryInfo</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/CompressionAlgorithm.html">CompressionAlgorithm</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/DecompressionAlgorithm.html">DecompressionAlgorithm</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Common%20Auxiliary%20Types.html">Common Auxiliary Types</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/ContainerEntryType.html">ContainerEntryType</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/DosAttributes.html">DosAttributes</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Permissions.html">Permissions</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/CompressionMethod.html">CompressionMethod</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/FileSystemType.html">FileSystemType</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section class="section">
<div class="section-content top-matter">
<h1>GzipArchive</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">GzipArchive</span> <span class="p">:</span> <span class="kt"><a href="../Protocols/Archive.html">Archive</a></span></code></pre>
</div>
</div>
<p>Provides unarchive and archive functions for GZip archives.</p>
<div class="slightly-smaller">
<a href="https://github.com/tsolomko/SWCompression/tree/4.9.1/Sources/GZip/GzipArchive.swift#L10-L243">Show on GitHub</a>
</div>
</div>
</section>
<section class="section">
<div class="section-content">
<div class="task-group">
<ul class="item-container">
<li class="item">
<div>
<code>
<a name="/s:13SWCompression11GzipArchiveC6MemberV"></a>
<a name="//apple_ref/swift/Struct/Member" class="dashAnchor"></a>
<a class="token" href="#/s:13SWCompression11GzipArchiveC6MemberV">Member</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Represents the member of a multi-member GZip archive.</p>
<a href="../Classes/GzipArchive/Member.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">Member</span></code></pre>
</div>
</div>
<div class="slightly-smaller">
<a href="https://github.com/tsolomko/SWCompression/tree/4.9.1/Sources/GZip/GzipArchive.swift#L13-L23">Show on GitHub</a>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:13SWCompression11GzipArchiveC9unarchive7archive10Foundation4DataVAH_tKFZ"></a>
<a name="//apple_ref/swift/Method/unarchive(archive:)" class="dashAnchor"></a>
<a class="token" href="#/s:13SWCompression11GzipArchiveC9unarchive7archive10Foundation4DataVAH_tKFZ">unarchive(archive:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Unarchives GZip archive.</p>
<div class="aside aside-note">
<p class="aside-title">Note</p>
<p>This function is specification compliant.</p>
</div><div class="aside aside-throws">
<p class="aside-title">Throws</p>
<p><code><a href="../Enums/DeflateError.html">DeflateError</a></code> or <code><a href="../Enums/GzipError.html">GzipError</a></code> depending on the type of the problem.
It may indicate that either archive is damaged or it might not be archived with GZip
or compressed with Deflate at all.</p>
</div>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">unarchive</span><span class="p">(</span><span class="n">archive</span> <span class="nv">data</span><span class="p">:</span> <span class="kt">Data</span><span class="p">)</span> <span class="k">throws</span> <span class="o">-&gt;</span> <span class="kt">Data</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>archive</em>
</code>
</td>
<td>
<div>
<p>Data archived with GZip.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>Unarchived data.</p>
</div>
<div class="slightly-smaller">
<a href="https://github.com/tsolomko/SWCompression/tree/4.9.1/Sources/GZip/GzipArchive.swift#L38-L48">Show on GitHub</a>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:13SWCompression11GzipArchiveC14multiUnarchive7archiveSayAC6MemberVG10Foundation4DataV_tKFZ"></a>
<a name="//apple_ref/swift/Method/multiUnarchive(archive:)" class="dashAnchor"></a>
<a class="token" href="#/s:13SWCompression11GzipArchiveC14multiUnarchive7archiveSayAC6MemberVG10Foundation4DataV_tKFZ">multiUnarchive(archive:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Unarchives multi-member GZip archive.
Multi-member GZip archives are essentially several GZip archives following each other in a single file.</p>
<div class="aside aside-throws">
<p class="aside-title">Throws</p>
<p><code><a href="../Enums/DeflateError.html">DeflateError</a></code> or <code><a href="../Enums/GzipError.html">GzipError</a></code> depending on the type of the problem.
It may indicate that one of the members of archive is damaged or
it might not be archived with GZip or compressed with Deflate at all.</p>
</div>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">multiUnarchive</span><span class="p">(</span><span class="n">archive</span> <span class="nv">data</span><span class="p">:</span> <span class="kt">Data</span><span class="p">)</span> <span class="k">throws</span> <span class="o">-&gt;</span> <span class="p">[</span><span class="kt"><a href="../Classes/GzipArchive/Member.html">Member</a></span><span class="p">]</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>archive</em>
</code>
</td>
<td>
<div>
<p>GZip archive with one or more members.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>Unarchived data.</p>
</div>
<div class="slightly-smaller">
<a href="https://github.com/tsolomko/SWCompression/tree/4.9.1/Sources/GZip/GzipArchive.swift#L62-L77">Show on GitHub</a>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:13SWCompression11GzipArchiveC7archive4data7comment8fileName14writeHeaderCRC10isTextFile6osType16modificationTime11extraFields10Foundation4DataVAO_SSSgAPS2bAA0n6SystemP0OSgAM4DateVSgSayAA0bJ0V10ExtraFieldVGtKFZ"></a>
<a name="//apple_ref/swift/Method/archive(data:comment:fileName:writeHeaderCRC:isTextFile:osType:modificationTime:extraFields:)" class="dashAnchor"></a>
<a class="token" href="#/s:13SWCompression11GzipArchiveC7archive4data7comment8fileName14writeHeaderCRC10isTextFile6osType16modificationTime11extraFields10Foundation4DataVAO_SSSgAPS2bAA0n6SystemP0OSgAM4DateVSgSayAA0bJ0V10ExtraFieldVGtKFZ">archive(data:<wbr>comment:<wbr>fileName:<wbr>writeHeaderCRC:<wbr>isTextFile:<wbr>osType:<wbr>modificationTime:<wbr>extraFields:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Archives <code>data</code> into GZip archive, using various specified options.
Data will be also compressed with Deflate algorithm.
It will be also specified in archive&rsquo;s header that the compressor used the slowest Deflate algorithm.</p>
<div class="aside aside-note">
<p class="aside-title">Note</p>
<p>This function is specification compliant.</p>
</div><div class="aside aside-throws">
<p class="aside-title">Throws</p>
<p><code><a href="../Enums/GzipError.html#/s:13SWCompression9GzipErrorO21cannotEncodeISOLatin1yA2CmF">GzipError.cannotEncodeISOLatin1</a></code> if a file name or a comment cannot be encoded with ISO-Latin-1 encoding
or if the total sum of the binary content length of all extra fields plus 4 for each field exceeds <code>UInt16.max</code>.</p>
</div>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">archive</span><span class="p">(</span><span class="nv">data</span><span class="p">:</span> <span class="kt">Data</span><span class="p">,</span> <span class="nv">comment</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">fileName</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span>
<span class="nv">writeHeaderCRC</span><span class="p">:</span> <span class="kt">Bool</span> <span class="o">=</span> <span class="kc">false</span><span class="p">,</span> <span class="nv">isTextFile</span><span class="p">:</span> <span class="kt">Bool</span> <span class="o">=</span> <span class="kc">false</span><span class="p">,</span>
<span class="nv">osType</span><span class="p">:</span> <span class="kt"><a href="../Enums/FileSystemType.html">FileSystemType</a></span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span> <span class="nv">modificationTime</span><span class="p">:</span> <span class="kt">Date</span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span>
<span class="nv">extraFields</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Structs/GzipHeader.html">GzipHeader</a></span><span class="o">.</span><span class="kt">ExtraField</span><span class="p">]</span> <span class="o">=</span> <span class="p">[])</span> <span class="k">throws</span> <span class="o">-&gt;</span> <span class="kt">Data</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>data</em>
</code>
</td>
<td>
<div>
<p>Data to compress and archive.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>comment</em>
</code>
</td>
<td>
<div>
<p>Additional comment, which will be stored as a separate field in archive.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>fileName</em>
</code>
</td>
<td>
<div>
<p>Name of the file which will be archived.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>writeHeaderCRC</em>
</code>
</td>
<td>
<div>
<p>Set to true, if you want to store consistency check for archive&rsquo;s header.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>isTextFile</em>
</code>
</td>
<td>
<div>
<p>Set to true, if the file which will be archived is text file or ASCII-file.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>osType</em>
</code>
</td>
<td>
<div>
<p>Type of the system on which this archive will be created.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>modificationTime</em>
</code>
</td>
<td>
<div>
<p>Last time the file was modified.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>extraFields</em>
</code>
</td>
<td>
<div>
<p>Any extra fields. Note that no extra field is allowed to have second byte of the extra
field (subfield) ID equal to zero. In addition, the length of a field&rsquo;s binary content must be less than
<code>UInt16.max</code>, while the total sum of the binary content length of all extra fields plus 4 for each field must also
not exceed <code>UInt16.max</code>. See GZip format specification for more details.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>Resulting archive&rsquo;s data.</p>
</div>
<div class="slightly-smaller">
<a href="https://github.com/tsolomko/SWCompression/tree/4.9.1/Sources/GZip/GzipArchive.swift#L126-L241">Show on GitHub</a>
</div>
</section>
</div>
</li>
</ul>
</div>
</div>
</section>
</article>
</div>
<section class="footer">
<p>© 2026 Timofey Solomko</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external noopener">jazzy ♪♫ v0.15.4</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external noopener">Realm</a> project.</p>
</section>
</body>
</html>