mirror of
https://github.com/tsolomko/SWCompression.git
synced 2026-06-23 14:56:41 +00:00
466 lines
24 KiB
HTML
466 lines
24 KiB
HTML
<!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>
|