Files

466 lines
24 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>TAR 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/Section/TAR" class="dashAnchor"></a>
<a title="TAR 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=""/>
TAR 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>TAR</h1>
</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:13SWCompression12TarContainerC"></a>
<a name="//apple_ref/swift/Class/TarContainer" class="dashAnchor"></a>
<a class="token" href="#/s:13SWCompression12TarContainerC">TarContainer</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Provides functions for work with TAR containers.</p>
<a href="Classes/TarContainer.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">class</span> <span class="kt">TarContainer</span> <span class="p">:</span> <span class="kt"><a href="Protocols/Container.html">Container</a></span></code></pre>
</div>
</div>
<div class="slightly-smaller">
<a href="https://github.com/tsolomko/SWCompression/tree/4.9.1/Sources/TAR/TarContainer.swift#L9-L263">Show on GitHub</a>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:13SWCompression9TarReaderV"></a>
<a name="//apple_ref/swift/Struct/TarReader" class="dashAnchor"></a>
<a class="token" href="#/s:13SWCompression9TarReaderV">TarReader</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>A type that allows to iteratively read TAR entries from a container provided by a <code>FileHandle</code>.</p>
<p>The <code>TarReader</code> may be helpful in reducing the peak memory usage on certain platforms. However, to achieve this either
the <code><a href="Structs/TarReader.html#/s:13SWCompression9TarReaderV7processyxxAA0B5EntryVSgKXEKlF">TarReader.process(_:)</a></code> function should be used or both the call to <code><a href="Structs/TarReader.html#/s:13SWCompression9TarReaderV4readAA0B5EntryVSgyKF">TarReader.read()</a></code> and the processing of the
returned entry should be wrapped inside the <code>autoreleasepool</code>. Since the <code>autoreleasepool</code> is available only on Darwin
platforms, the memory reducing effect may be not as significant on non-Darwin platforms (such as Linux or Windows).</p>
<p>The following code demonstrates an example usage of the <code>TarReader</code>:</p>
<pre class="highlight swift"><code> <span class="k">let</span> <span class="nv">handle</span><span class="p">:</span> <span class="kt">FileHandle</span> <span class="o">=</span> <span class="o">...</span>
<span class="k">let</span> <span class="nv">reader</span> <span class="o">=</span> <span class="kt">TarReader</span><span class="p">(</span><span class="nv">fileHandle</span><span class="p">:</span> <span class="n">handle</span><span class="p">)</span>
<span class="k">try</span> <span class="n">reader</span><span class="o">.</span><span class="n">process</span> <span class="p">{</span> <span class="o">...</span> <span class="p">}</span>
<span class="o">...</span>
<span class="k">try</span> <span class="n">handle</span><span class="o">.</span><span class="nf">close</span><span class="p">()</span>
</code></pre>
<p>Note that closing the <code>FileHandle</code> remains the responsibility of the caller.</p>
<a href="Structs/TarReader.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">TarReader</span></code></pre>
</div>
</div>
<div class="slightly-smaller">
<a href="https://github.com/tsolomko/SWCompression/tree/4.9.1/Sources/TAR/TarReader.swift#L27-L157">Show on GitHub</a>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:13SWCompression9TarWriterV"></a>
<a name="//apple_ref/swift/Struct/TarWriter" class="dashAnchor"></a>
<a class="token" href="#/s:13SWCompression9TarWriterV">TarWriter</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>A type that allows to iteratively create TAR containers with the output being written into a <code>FileHandle</code>.</p>
<p>The <code>TarWriter</code> may be helpful in reducing the peak memory usage on certain platforms. However, to achieve this both
the creation of TAR entries and the calls to <code>TarWriter</code> should be wrapped inside the <code>autoreleasepool</code>. Since the
<code>autoreleasepool</code> is available only on Darwin platforms, the memory reducing effect may be not as significant on
non-Darwin platforms (such as Linux or Windows).</p>
<p>The following code demonstrates an example usage of the <code>TarWriter</code>:</p>
<pre class="highlight swift"><code> <span class="k">let</span> <span class="nv">handle</span><span class="p">:</span> <span class="kt">FileHandle</span> <span class="o">=</span> <span class="o">...</span>
<span class="k">let</span> <span class="nv">writer</span> <span class="o">=</span> <span class="kt">TarWriter</span><span class="p">(</span><span class="nv">fileHandle</span><span class="p">:</span> <span class="n">handle</span><span class="p">)</span>
<span class="k">try</span> <span class="n">autoreleasepool</span> <span class="p">{</span>
<span class="k">let</span> <span class="nv">entry</span><span class="p">:</span> <span class="kt">TarEntry</span> <span class="o">=</span> <span class="o">...</span>
<span class="k">try</span> <span class="n">writer</span><span class="o">.</span><span class="nf">append</span><span class="p">(</span><span class="n">entry</span><span class="p">)</span>
<span class="p">}</span>
<span class="k">try</span> <span class="n">writer</span><span class="o">.</span><span class="nf">finalize</span><span class="p">()</span>
<span class="k">try</span> <span class="n">handle</span><span class="o">.</span><span class="nf">close</span><span class="p">()</span>
</code></pre>
<p>Note that <code><a href="Structs/TarWriter.html#/s:13SWCompression9TarWriterV8finalizeyyKF">TarWriter.finalize()</a></code> must be called after finishing appending entries to the container. In addition,
closing the <code>FileHandle</code> remains the responsibility of the caller.</p>
<a href="Structs/TarWriter.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">TarWriter</span></code></pre>
</div>
</div>
<div class="slightly-smaller">
<a href="https://github.com/tsolomko/SWCompression/tree/4.9.1/Sources/TAR/TarWriter.swift#L30-L133">Show on GitHub</a>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:13SWCompression8TarEntryV"></a>
<a name="//apple_ref/swift/Struct/TarEntry" class="dashAnchor"></a>
<a class="token" href="#/s:13SWCompression8TarEntryV">TarEntry</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Represents an entry from the TAR container.</p>
<a href="Structs/TarEntry.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">TarEntry</span> <span class="p">:</span> <span class="kt"><a href="Protocols/ContainerEntry.html">ContainerEntry</a></span></code></pre>
</div>
</div>
<div class="slightly-smaller">
<a href="https://github.com/tsolomko/SWCompression/tree/4.9.1/Sources/TAR/TarEntry.swift#L9-L38">Show on GitHub</a>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:13SWCompression12TarEntryInfoV"></a>
<a name="//apple_ref/swift/Struct/TarEntryInfo" class="dashAnchor"></a>
<a class="token" href="#/s:13SWCompression12TarEntryInfoV">TarEntryInfo</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Provides access to information about an entry from the TAR container.</p>
<a href="Structs/TarEntryInfo.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">TarEntryInfo</span> <span class="p">:</span> <span class="kt"><a href="Protocols/ContainerEntryInfo.html">ContainerEntryInfo</a></span></code></pre>
</div>
</div>
<div class="slightly-smaller">
<a href="https://github.com/tsolomko/SWCompression/tree/4.9.1/Sources/TAR/TarEntryInfo.swift#L9-L244">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>