forked from premiere/premiere-libtorrent
updated documentation for add_torrent
This commit is contained in:
parent
55fac2518d
commit
94d9f09d8a
|
@ -164,17 +164,18 @@
|
||||||
</li>
|
</li>
|
||||||
<li><a class="reference" href="#threads" id="id136" name="id136">threads</a></li>
|
<li><a class="reference" href="#threads" id="id136" name="id136">threads</a></li>
|
||||||
<li><a class="reference" href="#storage-allocation" id="id137" name="id137">storage allocation</a><ul>
|
<li><a class="reference" href="#storage-allocation" id="id137" name="id137">storage allocation</a><ul>
|
||||||
<li><a class="reference" href="#full-allocation" id="id138" name="id138">full allocation</a></li>
|
<li><a class="reference" href="#sparse-allocation" id="id138" name="id138">sparse allocation</a></li>
|
||||||
<li><a class="reference" href="#compact-allocation" id="id139" name="id139">compact allocation</a></li>
|
<li><a class="reference" href="#full-allocation" id="id139" name="id139">full allocation</a></li>
|
||||||
|
<li><a class="reference" href="#compact-allocation" id="id140" name="id140">compact allocation</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a class="reference" href="#extensions" id="id140" name="id140">extensions</a><ul>
|
<li><a class="reference" href="#extensions" id="id141" name="id141">extensions</a><ul>
|
||||||
<li><a class="reference" href="#metadata-from-peers" id="id141" name="id141">metadata from peers</a></li>
|
<li><a class="reference" href="#metadata-from-peers" id="id142" name="id142">metadata from peers</a></li>
|
||||||
<li><a class="reference" href="#http-seeding" id="id142" name="id142">HTTP seeding</a></li>
|
<li><a class="reference" href="#http-seeding" id="id143" name="id143">HTTP seeding</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a class="reference" href="#filename-checks" id="id143" name="id143">filename checks</a></li>
|
<li><a class="reference" href="#filename-checks" id="id144" name="id144">filename checks</a></li>
|
||||||
<li><a class="reference" href="#acknowledgments" id="id144" name="id144">acknowledgments</a></li>
|
<li><a class="reference" href="#acknowledgments" id="id145" name="id145">acknowledgments</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="section">
|
<div class="section">
|
||||||
|
@ -373,7 +374,7 @@ torrent_handle add_torrent(
|
||||||
torrent_info const& ti
|
torrent_info const& ti
|
||||||
, boost::filesystem::path const& save_path
|
, boost::filesystem::path const& save_path
|
||||||
, entry const& resume_data = entry()
|
, entry const& resume_data = entry()
|
||||||
, bool compact_mode = true
|
, storage_mode_t storage_mode = storage_mode_sparse
|
||||||
, bool paused = false);
|
, bool paused = false);
|
||||||
|
|
||||||
torrent_handle add_torrent(
|
torrent_handle add_torrent(
|
||||||
|
@ -382,7 +383,7 @@ torrent_handle add_torrent(
|
||||||
, char const* name
|
, char const* name
|
||||||
, boost::filesystem::path const& save_path
|
, boost::filesystem::path const& save_path
|
||||||
, entry const& resume_data = entry()
|
, entry const& resume_data = entry()
|
||||||
, bool compact_mode = true
|
, storage_mode_t storage_mode = storage_mode_sparse
|
||||||
, bool paused = false);
|
, bool paused = false);
|
||||||
</pre>
|
</pre>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
@ -396,12 +397,22 @@ for checking, being checked or downloading) <tt class="docutils literal"><span c
|
||||||
<p>The optional parameter, <tt class="docutils literal"><span class="pre">resume_data</span></tt> can be given if up to date fast-resume data
|
<p>The optional parameter, <tt class="docutils literal"><span class="pre">resume_data</span></tt> can be given if up to date fast-resume data
|
||||||
is available. The fast-resume data can be acquired from a running torrent by calling
|
is available. The fast-resume data can be acquired from a running torrent by calling
|
||||||
<tt class="docutils literal"><span class="pre">torrent_handle::write_resume_data()</span></tt>. See <a class="reference" href="#fast-resume">fast resume</a>.</p>
|
<tt class="docutils literal"><span class="pre">torrent_handle::write_resume_data()</span></tt>. See <a class="reference" href="#fast-resume">fast resume</a>.</p>
|
||||||
<p>The <tt class="docutils literal"><span class="pre">compact_mode</span></tt> parameter refers to the layout of the storage for this torrent. If
|
<p>The <tt class="docutils literal"><span class="pre">storage_mode</span></tt> parameter refers to the layout of the storage for this torrent.
|
||||||
set to true (default), the storage will grow as more pieces are downloaded, and pieces
|
There are 3 different modes:</p>
|
||||||
|
<dl class="docutils">
|
||||||
|
<dt>storage_mode_sparse</dt>
|
||||||
|
<dd>All pieces will be written to the place where they belong and sparse files
|
||||||
|
will be used. This is the recommended, and default mode.</dd>
|
||||||
|
<dt>storage_mode_allocate</dt>
|
||||||
|
<dd>All pieces will be allocated, zeroes will be written to the files, before
|
||||||
|
the data is downloaded and written to the file. This might be useful for
|
||||||
|
filesystems that don't support sparse files.</dd>
|
||||||
|
<dt>storage_mode_compact</dt>
|
||||||
|
<dd>The storage will grow as more pieces are downloaded, and pieces
|
||||||
are rearranged to finally be in their correct places once the entire torrent has been
|
are rearranged to finally be in their correct places once the entire torrent has been
|
||||||
downloaded. If it is false, the entire storage is allocated before download begins. I.e.
|
downloaded.</dd>
|
||||||
the files contained in the torrent are filled with zeros, and each downloaded piece
|
</dl>
|
||||||
is put in its final place directly when downloaded. For more info, see <a class="reference" href="#storage-allocation">storage allocation</a>.</p>
|
<p>For more information, see <a class="reference" href="#storage-allocation">storage allocation</a>.</p>
|
||||||
<p><tt class="docutils literal"><span class="pre">paused</span></tt> is a boolean that specifies whether or not the torrent is to be started in
|
<p><tt class="docutils literal"><span class="pre">paused</span></tt> is a boolean that specifies whether or not the torrent is to be started in
|
||||||
a paused state. I.e. it won't connect to the tracker or any of the peers until it's
|
a paused state. I.e. it won't connect to the tracker or any of the peers until it's
|
||||||
resumed. This is typically a good way of avoiding race conditions when setting
|
resumed. This is typically a good way of avoiding race conditions when setting
|
||||||
|
@ -415,6 +426,8 @@ with extensions enabled (<tt class="docutils literal"><span class="pre">TORRENT_
|
||||||
takes an optional <tt class="docutils literal"><span class="pre">name</span></tt> argument. This may be 0 in case no name should be assigned
|
takes an optional <tt class="docutils literal"><span class="pre">name</span></tt> argument. This may be 0 in case no name should be assigned
|
||||||
to the torrent. In case it's not 0, the name is used for the torrent as long as it doesn't
|
to the torrent. In case it's not 0, the name is used for the torrent as long as it doesn't
|
||||||
have metadata. See <tt class="docutils literal"><span class="pre">torrent_handle::name</span></tt>.</p>
|
have metadata. See <tt class="docutils literal"><span class="pre">torrent_handle::name</span></tt>.</p>
|
||||||
|
<p>If the torrent doesn't have a tracker, but relies on the DHT to find peers, the
|
||||||
|
<tt class="docutils literal"><span class="pre">tracker_url</span></tt> can be 0.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="section">
|
<div class="section">
|
||||||
<h2><a id="remove-torrent-find-torrent-get-torrents" name="remove-torrent-find-torrent-get-torrents">remove_torrent() find_torrent() get_torrents()</a></h2>
|
<h2><a id="remove-torrent-find-torrent-get-torrents" name="remove-torrent-find-torrent-get-torrents">remove_torrent() find_torrent() get_torrents()</a></h2>
|
||||||
|
@ -3498,25 +3511,34 @@ non-blocking host name resolution to simulate non-blocking behavior.</li>
|
||||||
</div>
|
</div>
|
||||||
<div class="section">
|
<div class="section">
|
||||||
<h1><a id="storage-allocation" name="storage-allocation">storage allocation</a></h1>
|
<h1><a id="storage-allocation" name="storage-allocation">storage allocation</a></h1>
|
||||||
<p>There are two modes in which storage (files on disk) are allocated in libtorrent.</p>
|
<p>There are three modes in which storage (files on disk) are allocated in libtorrent.</p>
|
||||||
<blockquote>
|
<ol class="arabic simple">
|
||||||
<ul class="simple">
|
|
||||||
<li>The traditional <em>full allocation</em> mode, where the entire files are filled up with
|
<li>The traditional <em>full allocation</em> mode, where the entire files are filled up with
|
||||||
zeros before anything is downloaded. libtorrent will look for sparse files support
|
zeros before anything is downloaded. libtorrent will look for sparse files support
|
||||||
in the filesystem that is used for storage, and use sparse files or file system
|
in the filesystem that is used for storage, and use sparse files or file system
|
||||||
zero fill support if present. This means that on NTFS, full allocation mode will
|
zero fill support if present. This means that on NTFS, full allocation mode will
|
||||||
only allocate storage for the downloaded pieces.</li>
|
only allocate storage for the downloaded pieces.</li>
|
||||||
<li>And the <em>compact allocation</em> mode, where only files are allocated for actual
|
<li>The <em>compact allocation</em> mode, where only files are allocated for actual
|
||||||
pieces that have been downloaded. This is the default allocation mode in libtorrent.</li>
|
pieces that have been downloaded. This is the default allocation mode in libtorrent.</li>
|
||||||
</ul>
|
<li>The <em>sparce allocation</em>, sparse files are used, and pieces are downloaded directly
|
||||||
</blockquote>
|
to where they belong. This is the recommended (and default) mode.</li>
|
||||||
<p>The allocation mode is selected when a torrent is started. It is passed as a boolean
|
</ol>
|
||||||
argument to <tt class="docutils literal"><span class="pre">session::add_torrent()</span></tt> (see <a class="reference" href="#add-torrent">add_torrent()</a>). These two modes have
|
<p>The allocation mode is selected when a torrent is started. It is passed as an
|
||||||
different drawbacks and benefits.</p>
|
argument to <tt class="docutils literal"><span class="pre">session::add_torrent()</span></tt> (see <a class="reference" href="#add-torrent">add_torrent()</a>).</p>
|
||||||
<p>The decision to use full allocation or compact allocation typically depends on whether
|
<p>The decision to use full allocation or compact allocation typically depends on whether
|
||||||
any files are filtered and if the filesystem supports sparse files.</p>
|
any files are filtered and if the filesystem supports sparse files.</p>
|
||||||
<p>To know if the filesystem supports sparse files (and to know if libtorrent believes the
|
<div class="section">
|
||||||
filesystem supports sparse files), see <a class="reference" href="#supports-sparse-files">supports_sparse_files()</a>.</p>
|
<h2><a id="sparse-allocation" name="sparse-allocation">sparse allocation</a></h2>
|
||||||
|
<p>On filesystems that supports sparse files, this allocation mode will only use
|
||||||
|
as much space as has been downloaded.</p>
|
||||||
|
<blockquote>
|
||||||
|
<ul class="simple">
|
||||||
|
<li>It does not require an allocation pass on startup.</li>
|
||||||
|
<li>It supports skipping files (setting prioirty to 0 to not download).</li>
|
||||||
|
<li>Fast resume data will remain valid even when file time stamps are out of date.</li>
|
||||||
|
</ul>
|
||||||
|
</blockquote>
|
||||||
|
</div>
|
||||||
<div class="section">
|
<div class="section">
|
||||||
<h2><a id="full-allocation" name="full-allocation">full allocation</a></h2>
|
<h2><a id="full-allocation" name="full-allocation">full allocation</a></h2>
|
||||||
<p>When a torrent is started in full allocation mode, the checker thread (see <a class="reference" href="#threads">threads</a>)
|
<p>When a torrent is started in full allocation mode, the checker thread (see <a class="reference" href="#threads">threads</a>)
|
||||||
|
|
|
@ -208,7 +208,7 @@ add_torrent()
|
||||||
torrent_info const& ti
|
torrent_info const& ti
|
||||||
, boost::filesystem::path const& save_path
|
, boost::filesystem::path const& save_path
|
||||||
, entry const& resume_data = entry()
|
, entry const& resume_data = entry()
|
||||||
, bool compact_mode = true
|
, storage_mode_t storage_mode = storage_mode_sparse
|
||||||
, bool paused = false);
|
, bool paused = false);
|
||||||
|
|
||||||
torrent_handle add_torrent(
|
torrent_handle add_torrent(
|
||||||
|
@ -217,7 +217,7 @@ add_torrent()
|
||||||
, char const* name
|
, char const* name
|
||||||
, boost::filesystem::path const& save_path
|
, boost::filesystem::path const& save_path
|
||||||
, entry const& resume_data = entry()
|
, entry const& resume_data = entry()
|
||||||
, bool compact_mode = true
|
, storage_mode_t storage_mode = storage_mode_sparse
|
||||||
, bool paused = false);
|
, bool paused = false);
|
||||||
|
|
||||||
You add torrents through the ``add_torrent()`` function where you give an
|
You add torrents through the ``add_torrent()`` function where you give an
|
||||||
|
@ -233,12 +233,24 @@ The optional parameter, ``resume_data`` can be given if up to date fast-resume d
|
||||||
is available. The fast-resume data can be acquired from a running torrent by calling
|
is available. The fast-resume data can be acquired from a running torrent by calling
|
||||||
``torrent_handle::write_resume_data()``. See `fast resume`_.
|
``torrent_handle::write_resume_data()``. See `fast resume`_.
|
||||||
|
|
||||||
The ``compact_mode`` parameter refers to the layout of the storage for this torrent. If
|
The ``storage_mode`` parameter refers to the layout of the storage for this torrent.
|
||||||
set to true (default), the storage will grow as more pieces are downloaded, and pieces
|
There are 3 different modes:
|
||||||
are rearranged to finally be in their correct places once the entire torrent has been
|
|
||||||
downloaded. If it is false, the entire storage is allocated before download begins. I.e.
|
storage_mode_sparse
|
||||||
the files contained in the torrent are filled with zeros, and each downloaded piece
|
All pieces will be written to the place where they belong and sparse files
|
||||||
is put in its final place directly when downloaded. For more info, see `storage allocation`_.
|
will be used. This is the recommended, and default mode.
|
||||||
|
|
||||||
|
storage_mode_allocate
|
||||||
|
All pieces will be allocated, zeroes will be written to the files, before
|
||||||
|
the data is downloaded and written to the file. This might be useful for
|
||||||
|
filesystems that don't support sparse files.
|
||||||
|
|
||||||
|
storage_mode_compact
|
||||||
|
The storage will grow as more pieces are downloaded, and pieces
|
||||||
|
are rearranged to finally be in their correct places once the entire torrent has been
|
||||||
|
downloaded.
|
||||||
|
|
||||||
|
For more information, see `storage allocation`_.
|
||||||
|
|
||||||
``paused`` is a boolean that specifies whether or not the torrent is to be started in
|
``paused`` is a boolean that specifies whether or not the torrent is to be started in
|
||||||
a paused state. I.e. it won't connect to the tracker or any of the peers until it's
|
a paused state. I.e. it won't connect to the tracker or any of the peers until it's
|
||||||
|
@ -256,6 +268,10 @@ takes an optional ``name`` argument. This may be 0 in case no name should be ass
|
||||||
to the torrent. In case it's not 0, the name is used for the torrent as long as it doesn't
|
to the torrent. In case it's not 0, the name is used for the torrent as long as it doesn't
|
||||||
have metadata. See ``torrent_handle::name``.
|
have metadata. See ``torrent_handle::name``.
|
||||||
|
|
||||||
|
If the torrent doesn't have a tracker, but relies on the DHT to find peers, the
|
||||||
|
``tracker_url`` can be 0.
|
||||||
|
|
||||||
|
|
||||||
remove_torrent() find_torrent() get_torrents()
|
remove_torrent() find_torrent() get_torrents()
|
||||||
----------------------------------------------
|
----------------------------------------------
|
||||||
|
|
||||||
|
@ -3618,26 +3634,38 @@ libtorrent starts 2 or 3 threads.
|
||||||
storage allocation
|
storage allocation
|
||||||
==================
|
==================
|
||||||
|
|
||||||
There are two modes in which storage (files on disk) are allocated in libtorrent.
|
There are three modes in which storage (files on disk) are allocated in libtorrent.
|
||||||
|
|
||||||
* The traditional *full allocation* mode, where the entire files are filled up with
|
1. The traditional *full allocation* mode, where the entire files are filled up with
|
||||||
zeros before anything is downloaded. libtorrent will look for sparse files support
|
zeros before anything is downloaded. libtorrent will look for sparse files support
|
||||||
in the filesystem that is used for storage, and use sparse files or file system
|
in the filesystem that is used for storage, and use sparse files or file system
|
||||||
zero fill support if present. This means that on NTFS, full allocation mode will
|
zero fill support if present. This means that on NTFS, full allocation mode will
|
||||||
only allocate storage for the downloaded pieces.
|
only allocate storage for the downloaded pieces.
|
||||||
|
|
||||||
* And the *compact allocation* mode, where only files are allocated for actual
|
2. The *compact allocation* mode, where only files are allocated for actual
|
||||||
pieces that have been downloaded. This is the default allocation mode in libtorrent.
|
pieces that have been downloaded. This is the default allocation mode in libtorrent.
|
||||||
|
|
||||||
The allocation mode is selected when a torrent is started. It is passed as a boolean
|
3. The *sparce allocation*, sparse files are used, and pieces are downloaded directly
|
||||||
argument to ``session::add_torrent()`` (see `add_torrent()`_). These two modes have
|
to where they belong. This is the recommended (and default) mode.
|
||||||
different drawbacks and benefits.
|
|
||||||
|
The allocation mode is selected when a torrent is started. It is passed as an
|
||||||
|
argument to ``session::add_torrent()`` (see `add_torrent()`_).
|
||||||
|
|
||||||
The decision to use full allocation or compact allocation typically depends on whether
|
The decision to use full allocation or compact allocation typically depends on whether
|
||||||
any files are filtered and if the filesystem supports sparse files.
|
any files are filtered and if the filesystem supports sparse files.
|
||||||
|
|
||||||
To know if the filesystem supports sparse files (and to know if libtorrent believes the
|
sparse allocation
|
||||||
filesystem supports sparse files), see `supports_sparse_files()`_.
|
-----------------
|
||||||
|
|
||||||
|
On filesystems that supports sparse files, this allocation mode will only use
|
||||||
|
as much space as has been downloaded.
|
||||||
|
|
||||||
|
* It does not require an allocation pass on startup.
|
||||||
|
|
||||||
|
* It supports skipping files (setting prioirty to 0 to not download).
|
||||||
|
|
||||||
|
* Fast resume data will remain valid even when file time stamps are out of date.
|
||||||
|
|
||||||
|
|
||||||
full allocation
|
full allocation
|
||||||
---------------
|
---------------
|
||||||
|
|
Loading…
Reference in New Issue