regenerated html

This commit is contained in:
Arvid Norberg 2011-07-30 17:53:34 +00:00
parent 7817229f5d
commit a46fe97ab3
3 changed files with 250 additions and 216 deletions

View File

@ -57,13 +57,13 @@
<div class="contents topic" id="table-of-contents">
<p class="topic-title first">Table of contents</p>
<ul class="simple">
<li><a class="reference internal" href="#downloading-and-building" id="id9">downloading and building</a><ul>
<li><a class="reference internal" href="#building-from-svn" id="id10">building from svn</a></li>
<li><a class="reference internal" href="#building-with-bbv2" id="id11">building with BBv2</a></li>
<li><a class="reference internal" href="#building-with-autotools" id="id12">building with autotools</a></li>
<li><a class="reference internal" href="#building-with-other-build-systems" id="id13">building with other build systems</a></li>
<li><a class="reference internal" href="#build-configurations" id="id14">build configurations</a></li>
<li><a class="reference internal" href="#building-openssl-for-windows" id="id15">building openssl for windows</a></li>
<li><a class="reference internal" href="#downloading-and-building" id="id8">downloading and building</a><ul>
<li><a class="reference internal" href="#building-from-svn" id="id9">building from svn</a></li>
<li><a class="reference internal" href="#building-with-bbv2" id="id10">building with BBv2</a></li>
<li><a class="reference internal" href="#building-with-autotools" id="id11">building with autotools</a></li>
<li><a class="reference internal" href="#building-with-other-build-systems" id="id12">building with other build systems</a></li>
<li><a class="reference internal" href="#build-configurations" id="id13">build configurations</a></li>
<li><a class="reference internal" href="#building-openssl-for-windows" id="id14">building openssl for windows</a></li>
</ul>
</li>
</ul>
@ -93,18 +93,8 @@ when linking against libtorrent.</p>
<div class="section" id="building-from-svn">
<h2>building from svn</h2>
<p>To build libtorrent from svn you need to check out the libtorrent sources from
sourceforge and also check out the asio sources from its sourceforge cvs.
If you downloaded a release tarball, you can skip this section.</p>
<p>To prepare the directory structure for building, follow these steps:</p>
<ul class="simple">
<li>Check out libtorrent (<a class="reference external" href="http://sourceforge.net/svn/?group_id=79942">instructions</a>).</li>
<li>Check out asio (<a class="reference external" href="http://sourceforge.net/cvs/?group_id=122478">instructions</a>).</li>
<li>Copy the <tt class="docutils literal"><span class="pre">asio/include/asio/</span></tt> directory into the <tt class="docutils literal"><span class="pre">libtorrent/include/libtorrent/</span></tt>
directory. Alternatively you can make a symbolic link.</li>
<li>Copy <tt class="docutils literal"><span class="pre">asio/include/asio.hpp</span></tt> into <tt class="docutils literal"><span class="pre">libtorrent/include/libtorrent</span></tt>.</li>
</ul>
<p>Now the libtorrent directory is ready for building. Follow the steps in one
of the following sections depending on which build system you prefer to use.</p>
sourceforge. If you downloaded a release tarball, you can skip this section.</p>
<p>To check out libtorrent follow these <a class="reference external" href="http://sourceforge.net/svn/?group_id=79942">instructions</a>.</p>
</div>
<div class="section" id="building-with-bbv2">
<h2>building with BBv2</h2>
@ -215,16 +205,16 @@ as a shared library (DLL), since you will get separate heaps in the library
and in the client application. It will result in crashes and possibly link
errors.</p>
</div>
<div class="warning">
<p class="first admonition-title">Warning</p>
<div class="note">
<p class="first admonition-title">Note</p>
<p class="last">With boost-build V2 (Milestone 11), the darwin toolset uses the <tt class="docutils literal"><span class="pre">-s</span></tt> linker
option to strip debug symbols. This option is buggy in Apple's GCC, and
will make the executable crash on startup. On Mac OS X, instead build
your release executables with the <tt class="docutils literal"><span class="pre">debug-symbols=on</span></tt> option, and
later strip your executable with <tt class="docutils literal"><span class="pre">strip</span></tt>.</p>
</div>
<div class="warning">
<p class="first admonition-title">Warning</p>
<div class="note">
<p class="first admonition-title">Note</p>
<p class="last">Some linux systems requires linking against <tt class="docutils literal"><span class="pre">librt</span></tt> in order to access
the POSIX clock functions. If you get an error complaining about a missing
symbol <tt class="docutils literal"><span class="pre">clock_gettime</span></tt>, you have to give <tt class="docutils literal"><span class="pre">need-librt=yes</span></tt> on the
@ -247,6 +237,12 @@ Also, make sure the paths are correct in the different environments. In cygwin,
(<tt class="docutils literal"><span class="pre">BOOST_BUILD_PATH</span></tt> and <tt class="docutils literal"><span class="pre">BOOST_ROOT</span></tt>) should be in the typical unix-format (e.g.
<tt class="docutils literal"><span class="pre">/cygdrive/c/boost_1_34_0</span></tt>). In the windows environment, they should have the typical
windows format (<tt class="docutils literal"><span class="pre">c:/boost_1_34_0</span></tt>).</p>
<div class="note">
<p class="first admonition-title">Note</p>
<p class="last">In Jamfiles, spaces are separators. It's typically easiest to avoid spaces
in path names. If you want spaces in your paths, make sure to quote them
with double quotes (&quot;).</p>
</div>
<p>The <tt class="docutils literal"><span class="pre">Jamfile</span></tt> will define <tt class="docutils literal"><span class="pre">NDEBUG</span></tt> when it's building a release build.
For more build configuration flags see <a class="reference internal" href="#build-configurations">Build configurations</a>.</p>
<p>Build features:</p>
@ -585,7 +581,7 @@ with the following option:</p>
</pre>
<p>The above option make use of -DNDEBUG, which is used throughout libtorrent.</p>
</div>
<div class="section" id="id8">
<div class="section" id="id7">
<h3>Step 3: Building libtorrent</h3>
<p>Once the configure script is run successfully, you just type <tt class="docutils literal"><span class="pre">make</span></tt> and
libtorrent, the examples and the tests will be built.</p>

View File

@ -78,6 +78,7 @@
<li><a class="reference internal" href="#add-node" id="id18">add_node()</a></li>
<li><a class="reference internal" href="#add-tracker" id="id19">add_tracker()</a></li>
<li><a class="reference internal" href="#set-priv-priv" id="id20">set_priv() priv()</a></li>
<li><a class="reference internal" href="#merkle-tree" id="id21">merkle_tree()</a></li>
</ul>
</li>
</ul>
@ -394,7 +395,10 @@ optimized disk-I/O.</dd>
be opened in clients that don't specifically support merkle torrents.
The benefit is that the resulting torrent file will be much smaller and
not grow with more pieces. When this option is specified, it is
recommended to have a fairly small piece size, say 64 kiB.</dd>
recommended to have a fairly small piece size, say 64 kiB.
When creating merkle torrents, the full hash tree is also generated
and should be saved off separately. It is accessed through the
<tt class="docutils literal"><span class="pre">merkle_tree()</span></tt> function.</dd>
<dt>modification_time</dt>
<dd>This will include the file modification time as part of the torrent.
This is not enabled by default, as it might cause problems when you
@ -537,6 +541,20 @@ bool priv() const;
</blockquote>
<p>Sets and queries the private flag of the torrent.</p>
</div>
<div class="section" id="merkle-tree">
<h2>merkle_tree()</h2>
<blockquote>
<pre class="literal-block">
std::vector&lt;sha1_hash&gt; const&amp; merkle_tree() const;
</pre>
</blockquote>
<p>This function returns the merkle hash tree, if the torrent was created as a merkle
torrent. The tree is created by <tt class="docutils literal"><span class="pre">generate()</span></tt> and won't be valid until that function
has been called. When creating a merkle tree torrent, the actual tree itself has to
be saved off separately and fed into libtorrent the first time you start seeding it,
through the <tt class="docutils literal"><span class="pre">torrent_info::set_merkle_tree()</span></tt> function. From that point onwards, the
tree will be saved in the resume data.</p>
</div>
</div>
</div>
<div id="footer">

View File

@ -113,220 +113,221 @@
<li><a class="reference internal" href="#trackers" id="id63">trackers()</a></li>
<li><a class="reference internal" href="#total-size-piece-length-piece-size-num-pieces" id="id64">total_size() piece_length() piece_size() num_pieces()</a></li>
<li><a class="reference internal" href="#hash-for-piece-hash-for-piece-ptr-info-hash" id="id65">hash_for_piece() hash_for_piece_ptr() info_hash()</a></li>
<li><a class="reference internal" href="#name-comment-creation-date-creator" id="id66">name() comment() creation_date() creator()</a></li>
<li><a class="reference internal" href="#priv" id="id67">priv()</a></li>
<li><a class="reference internal" href="#nodes" id="id68">nodes()</a></li>
<li><a class="reference internal" href="#add-node" id="id69">add_node()</a></li>
<li><a class="reference internal" href="#metadata-metadata-size" id="id70">metadata() metadata_size()</a></li>
<li><a class="reference internal" href="#merkle-tree-set-merkle-tree" id="id66">merkle_tree() set_merkle_tree()</a></li>
<li><a class="reference internal" href="#name-comment-creation-date-creator" id="id67">name() comment() creation_date() creator()</a></li>
<li><a class="reference internal" href="#priv" id="id68">priv()</a></li>
<li><a class="reference internal" href="#nodes" id="id69">nodes()</a></li>
<li><a class="reference internal" href="#add-node" id="id70">add_node()</a></li>
<li><a class="reference internal" href="#metadata-metadata-size" id="id71">metadata() metadata_size()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#torrent-handle" id="id71">torrent_handle</a><ul>
<li><a class="reference internal" href="#set-piece-deadline" id="id72">set_piece_deadline()</a></li>
<li><a class="reference internal" href="#piece-availability" id="id73">piece_availability()</a></li>
<li><a class="reference internal" href="#piece-priority-prioritize-pieces-piece-priorities" id="id74">piece_priority() prioritize_pieces() piece_priorities()</a></li>
<li><a class="reference internal" href="#file-priority-prioritize-files-file-priorities" id="id75">file_priority() prioritize_files() file_priorities()</a></li>
<li><a class="reference internal" href="#file-progress" id="id76">file_progress()</a></li>
<li><a class="reference internal" href="#save-path" id="id77">save_path()</a></li>
<li><a class="reference internal" href="#move-storage" id="id78">move_storage()</a></li>
<li><a class="reference internal" href="#id4" id="id79">rename_file()</a></li>
<li><a class="reference internal" href="#get-storage-impl" id="id80">get_storage_impl()</a></li>
<li><a class="reference internal" href="#super-seeding" id="id81">super_seeding()</a></li>
<li><a class="reference internal" href="#add-piece" id="id82">add_piece()</a></li>
<li><a class="reference internal" href="#read-piece" id="id83">read_piece()</a></li>
<li><a class="reference internal" href="#force-reannounce-force-dht-announce" id="id84">force_reannounce() force_dht_announce()</a></li>
<li><a class="reference internal" href="#scrape-tracker" id="id85">scrape_tracker()</a></li>
<li><a class="reference internal" href="#connect-peer" id="id86">connect_peer()</a></li>
<li><a class="reference internal" href="#name" id="id87">name()</a></li>
<li><a class="reference internal" href="#set-ratio" id="id88">set_ratio()</a></li>
<li><a class="reference internal" href="#set-upload-limit-set-download-limit-upload-limit-download-limit" id="id89">set_upload_limit() set_download_limit() upload_limit() download_limit()</a></li>
<li><a class="reference internal" href="#set-sequential-download" id="id90">set_sequential_download()</a></li>
<li><a class="reference internal" href="#get-peer-download-limit-get-peer-upload-limit-set-peer-upload-limit-set-peer-download-limit" id="id91">get_peer_download_limit() get_peer_upload_limit() set_peer_upload_limit() set_peer_download_limit()</a></li>
<li><a class="reference internal" href="#pause-resume" id="id92">pause() resume()</a></li>
<li><a class="reference internal" href="#flush-cache" id="id93">flush_cache()</a></li>
<li><a class="reference internal" href="#force-recheck" id="id94">force_recheck()</a></li>
<li><a class="reference internal" href="#clear-error" id="id95">clear_error()</a></li>
<li><a class="reference internal" href="#set-upload-mode" id="id96">set_upload_mode()</a></li>
<li><a class="reference internal" href="#set-share-mode" id="id97">set_share_mode()</a></li>
<li><a class="reference internal" href="#apply-ip-filter" id="id98">apply_ip_filter()</a></li>
<li><a class="reference internal" href="#resolve-countries" id="id99">resolve_countries()</a></li>
<li><a class="reference internal" href="#is-seed" id="id100">is_seed()</a></li>
<li><a class="reference internal" href="#auto-managed" id="id101">auto_managed()</a></li>
<li><a class="reference internal" href="#set-metadata" id="id102">set_metadata()</a></li>
<li><a class="reference internal" href="#set-tracker-login" id="id103">set_tracker_login()</a></li>
<li><a class="reference internal" href="#trackers-replace-trackers-add-tracker" id="id104">trackers() replace_trackers() add_tracker()</a></li>
<li><a class="reference internal" href="#add-url-seed-remove-url-seed-url-seeds" id="id105">add_url_seed() remove_url_seed() url_seeds()</a></li>
<li><a class="reference internal" href="#add-http-seed-remove-http-seed-http-seeds" id="id106">add_http_seed() remove_http_seed() http_seeds()</a></li>
<li><a class="reference internal" href="#queue-position-queue-position-up-queue-position-down-queue-position-top-queue-position-bottom" id="id107">queue_position() queue_position_up() queue_position_down() queue_position_top() queue_position_bottom()</a></li>
<li><a class="reference internal" href="#set-priority" id="id108">set_priority()</a></li>
<li><a class="reference internal" href="#use-interface" id="id109">use_interface()</a></li>
<li><a class="reference internal" href="#info-hash" id="id110">info_hash()</a></li>
<li><a class="reference internal" href="#set-max-uploads-max-uploads" id="id111">set_max_uploads() max_uploads()</a></li>
<li><a class="reference internal" href="#set-max-connections-max-connections" id="id112">set_max_connections() max_connections()</a></li>
<li><a class="reference internal" href="#save-resume-data" id="id113">save_resume_data()</a></li>
<li><a class="reference internal" href="#need-save-resume-data" id="id114">need_save_resume_data()</a></li>
<li><a class="reference internal" href="#id5" id="id115">status()</a></li>
<li><a class="reference internal" href="#get-download-queue" id="id116">get_download_queue()</a></li>
<li><a class="reference internal" href="#get-peer-info" id="id117">get_peer_info()</a></li>
<li><a class="reference internal" href="#get-torrent-info" id="id118">get_torrent_info()</a></li>
<li><a class="reference internal" href="#is-valid" id="id119">is_valid()</a></li>
<li><a class="reference internal" href="#torrent-handle" id="id72">torrent_handle</a><ul>
<li><a class="reference internal" href="#set-piece-deadline" id="id73">set_piece_deadline()</a></li>
<li><a class="reference internal" href="#piece-availability" id="id74">piece_availability()</a></li>
<li><a class="reference internal" href="#piece-priority-prioritize-pieces-piece-priorities" id="id75">piece_priority() prioritize_pieces() piece_priorities()</a></li>
<li><a class="reference internal" href="#file-priority-prioritize-files-file-priorities" id="id76">file_priority() prioritize_files() file_priorities()</a></li>
<li><a class="reference internal" href="#file-progress" id="id77">file_progress()</a></li>
<li><a class="reference internal" href="#save-path" id="id78">save_path()</a></li>
<li><a class="reference internal" href="#move-storage" id="id79">move_storage()</a></li>
<li><a class="reference internal" href="#id4" id="id80">rename_file()</a></li>
<li><a class="reference internal" href="#get-storage-impl" id="id81">get_storage_impl()</a></li>
<li><a class="reference internal" href="#super-seeding" id="id82">super_seeding()</a></li>
<li><a class="reference internal" href="#add-piece" id="id83">add_piece()</a></li>
<li><a class="reference internal" href="#read-piece" id="id84">read_piece()</a></li>
<li><a class="reference internal" href="#force-reannounce-force-dht-announce" id="id85">force_reannounce() force_dht_announce()</a></li>
<li><a class="reference internal" href="#scrape-tracker" id="id86">scrape_tracker()</a></li>
<li><a class="reference internal" href="#connect-peer" id="id87">connect_peer()</a></li>
<li><a class="reference internal" href="#name" id="id88">name()</a></li>
<li><a class="reference internal" href="#set-ratio" id="id89">set_ratio()</a></li>
<li><a class="reference internal" href="#set-upload-limit-set-download-limit-upload-limit-download-limit" id="id90">set_upload_limit() set_download_limit() upload_limit() download_limit()</a></li>
<li><a class="reference internal" href="#set-sequential-download" id="id91">set_sequential_download()</a></li>
<li><a class="reference internal" href="#get-peer-download-limit-get-peer-upload-limit-set-peer-upload-limit-set-peer-download-limit" id="id92">get_peer_download_limit() get_peer_upload_limit() set_peer_upload_limit() set_peer_download_limit()</a></li>
<li><a class="reference internal" href="#pause-resume" id="id93">pause() resume()</a></li>
<li><a class="reference internal" href="#flush-cache" id="id94">flush_cache()</a></li>
<li><a class="reference internal" href="#force-recheck" id="id95">force_recheck()</a></li>
<li><a class="reference internal" href="#clear-error" id="id96">clear_error()</a></li>
<li><a class="reference internal" href="#set-upload-mode" id="id97">set_upload_mode()</a></li>
<li><a class="reference internal" href="#set-share-mode" id="id98">set_share_mode()</a></li>
<li><a class="reference internal" href="#apply-ip-filter" id="id99">apply_ip_filter()</a></li>
<li><a class="reference internal" href="#resolve-countries" id="id100">resolve_countries()</a></li>
<li><a class="reference internal" href="#is-seed" id="id101">is_seed()</a></li>
<li><a class="reference internal" href="#auto-managed" id="id102">auto_managed()</a></li>
<li><a class="reference internal" href="#set-metadata" id="id103">set_metadata()</a></li>
<li><a class="reference internal" href="#set-tracker-login" id="id104">set_tracker_login()</a></li>
<li><a class="reference internal" href="#trackers-replace-trackers-add-tracker" id="id105">trackers() replace_trackers() add_tracker()</a></li>
<li><a class="reference internal" href="#add-url-seed-remove-url-seed-url-seeds" id="id106">add_url_seed() remove_url_seed() url_seeds()</a></li>
<li><a class="reference internal" href="#add-http-seed-remove-http-seed-http-seeds" id="id107">add_http_seed() remove_http_seed() http_seeds()</a></li>
<li><a class="reference internal" href="#queue-position-queue-position-up-queue-position-down-queue-position-top-queue-position-bottom" id="id108">queue_position() queue_position_up() queue_position_down() queue_position_top() queue_position_bottom()</a></li>
<li><a class="reference internal" href="#set-priority" id="id109">set_priority()</a></li>
<li><a class="reference internal" href="#use-interface" id="id110">use_interface()</a></li>
<li><a class="reference internal" href="#info-hash" id="id111">info_hash()</a></li>
<li><a class="reference internal" href="#set-max-uploads-max-uploads" id="id112">set_max_uploads() max_uploads()</a></li>
<li><a class="reference internal" href="#set-max-connections-max-connections" id="id113">set_max_connections() max_connections()</a></li>
<li><a class="reference internal" href="#save-resume-data" id="id114">save_resume_data()</a></li>
<li><a class="reference internal" href="#need-save-resume-data" id="id115">need_save_resume_data()</a></li>
<li><a class="reference internal" href="#id5" id="id116">status()</a></li>
<li><a class="reference internal" href="#get-download-queue" id="id117">get_download_queue()</a></li>
<li><a class="reference internal" href="#get-peer-info" id="id118">get_peer_info()</a></li>
<li><a class="reference internal" href="#get-torrent-info" id="id119">get_torrent_info()</a></li>
<li><a class="reference internal" href="#is-valid" id="id120">is_valid()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#torrent-status" id="id120">torrent_status</a></li>
<li><a class="reference internal" href="#peer-info" id="id121">peer_info</a></li>
<li><a class="reference internal" href="#feed-handle" id="id122">feed_handle</a><ul>
<li><a class="reference internal" href="#update-feed" id="id123">update_feed()</a></li>
<li><a class="reference internal" href="#get-feed-status" id="id124">get_feed_status()</a></li>
<li><a class="reference internal" href="#set-settings-settings" id="id125">set_settings() settings()</a></li>
<li><a class="reference internal" href="#torrent-status" id="id121">torrent_status</a></li>
<li><a class="reference internal" href="#peer-info" id="id122">peer_info</a></li>
<li><a class="reference internal" href="#feed-handle" id="id123">feed_handle</a><ul>
<li><a class="reference internal" href="#update-feed" id="id124">update_feed()</a></li>
<li><a class="reference internal" href="#get-feed-status" id="id125">get_feed_status()</a></li>
<li><a class="reference internal" href="#set-settings-settings" id="id126">set_settings() settings()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#feed-item" id="id126">feed_item</a></li>
<li><a class="reference internal" href="#session-customization" id="id127">session customization</a><ul>
<li><a class="reference internal" href="#presets" id="id128">presets</a></li>
<li><a class="reference internal" href="#session-settings" id="id129">session_settings</a></li>
<li><a class="reference internal" href="#feed-item" id="id127">feed_item</a></li>
<li><a class="reference internal" href="#session-customization" id="id128">session customization</a><ul>
<li><a class="reference internal" href="#presets" id="id129">presets</a></li>
<li><a class="reference internal" href="#session-settings" id="id130">session_settings</a></li>
</ul>
</li>
<li><a class="reference internal" href="#pe-settings" id="id130">pe_settings</a></li>
<li><a class="reference internal" href="#proxy-settings" id="id131">proxy_settings</a></li>
<li><a class="reference internal" href="#ip-filter" id="id132">ip_filter</a><ul>
<li><a class="reference internal" href="#id8" id="id133">ip_filter()</a></li>
<li><a class="reference internal" href="#add-rule" id="id134">add_rule()</a></li>
<li><a class="reference internal" href="#access" id="id135">access()</a></li>
<li><a class="reference internal" href="#export-filter" id="id136">export_filter()</a></li>
<li><a class="reference internal" href="#pe-settings" id="id131">pe_settings</a></li>
<li><a class="reference internal" href="#proxy-settings" id="id132">proxy_settings</a></li>
<li><a class="reference internal" href="#ip-filter" id="id133">ip_filter</a><ul>
<li><a class="reference internal" href="#id8" id="id134">ip_filter()</a></li>
<li><a class="reference internal" href="#add-rule" id="id135">add_rule()</a></li>
<li><a class="reference internal" href="#access" id="id136">access()</a></li>
<li><a class="reference internal" href="#export-filter" id="id137">export_filter()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#big-number" id="id137">big_number</a></li>
<li><a class="reference internal" href="#bitfield" id="id138">bitfield</a></li>
<li><a class="reference internal" href="#hasher" id="id139">hasher</a></li>
<li><a class="reference internal" href="#fingerprint" id="id140">fingerprint</a></li>
<li><a class="reference internal" href="#upnp-and-nat-pmp" id="id141">UPnP and NAT-PMP</a><ul>
<li><a class="reference internal" href="#add-mapping" id="id142">add_mapping()</a></li>
<li><a class="reference internal" href="#delete-mapping" id="id143">delete_mapping()</a></li>
<li><a class="reference internal" href="#router-model" id="id144">router_model()</a></li>
<li><a class="reference internal" href="#big-number" id="id138">big_number</a></li>
<li><a class="reference internal" href="#bitfield" id="id139">bitfield</a></li>
<li><a class="reference internal" href="#hasher" id="id140">hasher</a></li>
<li><a class="reference internal" href="#fingerprint" id="id141">fingerprint</a></li>
<li><a class="reference internal" href="#upnp-and-nat-pmp" id="id142">UPnP and NAT-PMP</a><ul>
<li><a class="reference internal" href="#add-mapping" id="id143">add_mapping()</a></li>
<li><a class="reference internal" href="#delete-mapping" id="id144">delete_mapping()</a></li>
<li><a class="reference internal" href="#router-model" id="id145">router_model()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#free-functions" id="id145">free functions</a><ul>
<li><a class="reference internal" href="#identify-client" id="id146">identify_client()</a></li>
<li><a class="reference internal" href="#client-fingerprint" id="id147">client_fingerprint()</a></li>
<li><a class="reference internal" href="#lazy-bdecode" id="id148">lazy_bdecode()</a></li>
<li><a class="reference internal" href="#bdecode-bencode" id="id149">bdecode() bencode()</a></li>
<li><a class="reference internal" href="#add-magnet-uri" id="id150">add_magnet_uri()</a></li>
<li><a class="reference internal" href="#make-magnet-uri" id="id151">make_magnet_uri()</a></li>
<li><a class="reference internal" href="#free-functions" id="id146">free functions</a><ul>
<li><a class="reference internal" href="#identify-client" id="id147">identify_client()</a></li>
<li><a class="reference internal" href="#client-fingerprint" id="id148">client_fingerprint()</a></li>
<li><a class="reference internal" href="#lazy-bdecode" id="id149">lazy_bdecode()</a></li>
<li><a class="reference internal" href="#bdecode-bencode" id="id150">bdecode() bencode()</a></li>
<li><a class="reference internal" href="#add-magnet-uri" id="id151">add_magnet_uri()</a></li>
<li><a class="reference internal" href="#make-magnet-uri" id="id152">make_magnet_uri()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#alerts" id="id152">alerts</a><ul>
<li><a class="reference internal" href="#torrent-added-alert" id="id153">torrent_added_alert</a></li>
<li><a class="reference internal" href="#torrent-removed-alert" id="id154">torrent_removed_alert</a></li>
<li><a class="reference internal" href="#read-piece-alert" id="id155">read_piece_alert</a></li>
<li><a class="reference internal" href="#external-ip-alert" id="id156">external_ip_alert</a></li>
<li><a class="reference internal" href="#listen-failed-alert" id="id157">listen_failed_alert</a></li>
<li><a class="reference internal" href="#listen-succeeded-alert" id="id158">listen_succeeded_alert</a></li>
<li><a class="reference internal" href="#portmap-error-alert" id="id159">portmap_error_alert</a></li>
<li><a class="reference internal" href="#portmap-alert" id="id160">portmap_alert</a></li>
<li><a class="reference internal" href="#portmap-log-alert" id="id161">portmap_log_alert</a></li>
<li><a class="reference internal" href="#file-error-alert" id="id162">file_error_alert</a></li>
<li><a class="reference internal" href="#torrent-error-alert" id="id163">torrent_error_alert</a></li>
<li><a class="reference internal" href="#file-renamed-alert" id="id164">file_renamed_alert</a></li>
<li><a class="reference internal" href="#file-rename-failed-alert" id="id165">file_rename_failed_alert</a></li>
<li><a class="reference internal" href="#tracker-announce-alert" id="id166">tracker_announce_alert</a></li>
<li><a class="reference internal" href="#tracker-error-alert" id="id167">tracker_error_alert</a></li>
<li><a class="reference internal" href="#tracker-reply-alert" id="id168">tracker_reply_alert</a></li>
<li><a class="reference internal" href="#tracker-warning-alert" id="id169">tracker_warning_alert</a></li>
<li><a class="reference internal" href="#scrape-reply-alert" id="id170">scrape_reply_alert</a></li>
<li><a class="reference internal" href="#scrape-failed-alert" id="id171">scrape_failed_alert</a></li>
<li><a class="reference internal" href="#url-seed-alert" id="id172">url_seed_alert</a></li>
<li><a class="reference internal" href="#hash-failed-alert" id="id173">hash_failed_alert</a></li>
<li><a class="reference internal" href="#peer-alert" id="id174">peer_alert</a></li>
<li><a class="reference internal" href="#peer-connect-alert" id="id175">peer_connect_alert</a></li>
<li><a class="reference internal" href="#peer-ban-alert" id="id176">peer_ban_alert</a></li>
<li><a class="reference internal" href="#peer-snubbed-alert" id="id177">peer_snubbed_alert</a></li>
<li><a class="reference internal" href="#peer-unsnubbed-alert" id="id178">peer_unsnubbed_alert</a></li>
<li><a class="reference internal" href="#peer-error-alert" id="id179">peer_error_alert</a></li>
<li><a class="reference internal" href="#peer-connected-alert" id="id180">peer_connected_alert</a></li>
<li><a class="reference internal" href="#peer-disconnected-alert" id="id181">peer_disconnected_alert</a></li>
<li><a class="reference internal" href="#invalid-request-alert" id="id182">invalid_request_alert</a></li>
<li><a class="reference internal" href="#request-dropped-alert" id="id183">request_dropped_alert</a></li>
<li><a class="reference internal" href="#block-timeout-alert" id="id184">block_timeout_alert</a></li>
<li><a class="reference internal" href="#block-finished-alert" id="id185">block_finished_alert</a></li>
<li><a class="reference internal" href="#lsd-peer-alert" id="id186">lsd_peer_alert</a></li>
<li><a class="reference internal" href="#file-completed-alert" id="id187">file_completed_alert</a></li>
<li><a class="reference internal" href="#block-downloading-alert" id="id188">block_downloading_alert</a></li>
<li><a class="reference internal" href="#unwanted-block-alert" id="id189">unwanted_block_alert</a></li>
<li><a class="reference internal" href="#torrent-delete-failed-alert" id="id190">torrent_delete_failed_alert</a></li>
<li><a class="reference internal" href="#torrent-deleted-alert" id="id191">torrent_deleted_alert</a></li>
<li><a class="reference internal" href="#torrent-finished-alert" id="id192">torrent_finished_alert</a></li>
<li><a class="reference internal" href="#performance-alert" id="id193">performance_alert</a></li>
<li><a class="reference internal" href="#state-changed-alert" id="id194">state_changed_alert</a></li>
<li><a class="reference internal" href="#metadata-failed-alert" id="id195">metadata_failed_alert</a></li>
<li><a class="reference internal" href="#metadata-received-alert" id="id196">metadata_received_alert</a></li>
<li><a class="reference internal" href="#fastresume-rejected-alert" id="id197">fastresume_rejected_alert</a></li>
<li><a class="reference internal" href="#peer-blocked-alert" id="id198">peer_blocked_alert</a></li>
<li><a class="reference internal" href="#storage-moved-alert" id="id199">storage_moved_alert</a></li>
<li><a class="reference internal" href="#storage-moved-failed-alert" id="id200">storage_moved_failed_alert</a></li>
<li><a class="reference internal" href="#torrent-paused-alert" id="id201">torrent_paused_alert</a></li>
<li><a class="reference internal" href="#torrent-resumed-alert" id="id202">torrent_resumed_alert</a></li>
<li><a class="reference internal" href="#save-resume-data-alert" id="id203">save_resume_data_alert</a></li>
<li><a class="reference internal" href="#save-resume-data-failed-alert" id="id204">save_resume_data_failed_alert</a></li>
<li><a class="reference internal" href="#stats-alert" id="id205">stats_alert</a></li>
<li><a class="reference internal" href="#cache-flushed-alert" id="id206">cache_flushed_alert</a></li>
<li><a class="reference internal" href="#dht-announce-alert" id="id207">dht_announce_alert</a></li>
<li><a class="reference internal" href="#dht-get-peers-alert" id="id208">dht_get_peers_alert</a></li>
<li><a class="reference internal" href="#dht-reply-alert" id="id209">dht_reply_alert</a></li>
<li><a class="reference internal" href="#dht-bootstrap-alert" id="id210">dht_bootstrap_alert</a></li>
<li><a class="reference internal" href="#anonymous-mode-alert" id="id211">anonymous_mode_alert</a></li>
<li><a class="reference internal" href="#rss-alert" id="id212">rss_alert</a></li>
<li><a class="reference internal" href="#alerts" id="id153">alerts</a><ul>
<li><a class="reference internal" href="#torrent-added-alert" id="id154">torrent_added_alert</a></li>
<li><a class="reference internal" href="#torrent-removed-alert" id="id155">torrent_removed_alert</a></li>
<li><a class="reference internal" href="#read-piece-alert" id="id156">read_piece_alert</a></li>
<li><a class="reference internal" href="#external-ip-alert" id="id157">external_ip_alert</a></li>
<li><a class="reference internal" href="#listen-failed-alert" id="id158">listen_failed_alert</a></li>
<li><a class="reference internal" href="#listen-succeeded-alert" id="id159">listen_succeeded_alert</a></li>
<li><a class="reference internal" href="#portmap-error-alert" id="id160">portmap_error_alert</a></li>
<li><a class="reference internal" href="#portmap-alert" id="id161">portmap_alert</a></li>
<li><a class="reference internal" href="#portmap-log-alert" id="id162">portmap_log_alert</a></li>
<li><a class="reference internal" href="#file-error-alert" id="id163">file_error_alert</a></li>
<li><a class="reference internal" href="#torrent-error-alert" id="id164">torrent_error_alert</a></li>
<li><a class="reference internal" href="#file-renamed-alert" id="id165">file_renamed_alert</a></li>
<li><a class="reference internal" href="#file-rename-failed-alert" id="id166">file_rename_failed_alert</a></li>
<li><a class="reference internal" href="#tracker-announce-alert" id="id167">tracker_announce_alert</a></li>
<li><a class="reference internal" href="#tracker-error-alert" id="id168">tracker_error_alert</a></li>
<li><a class="reference internal" href="#tracker-reply-alert" id="id169">tracker_reply_alert</a></li>
<li><a class="reference internal" href="#tracker-warning-alert" id="id170">tracker_warning_alert</a></li>
<li><a class="reference internal" href="#scrape-reply-alert" id="id171">scrape_reply_alert</a></li>
<li><a class="reference internal" href="#scrape-failed-alert" id="id172">scrape_failed_alert</a></li>
<li><a class="reference internal" href="#url-seed-alert" id="id173">url_seed_alert</a></li>
<li><a class="reference internal" href="#hash-failed-alert" id="id174">hash_failed_alert</a></li>
<li><a class="reference internal" href="#peer-alert" id="id175">peer_alert</a></li>
<li><a class="reference internal" href="#peer-connect-alert" id="id176">peer_connect_alert</a></li>
<li><a class="reference internal" href="#peer-ban-alert" id="id177">peer_ban_alert</a></li>
<li><a class="reference internal" href="#peer-snubbed-alert" id="id178">peer_snubbed_alert</a></li>
<li><a class="reference internal" href="#peer-unsnubbed-alert" id="id179">peer_unsnubbed_alert</a></li>
<li><a class="reference internal" href="#peer-error-alert" id="id180">peer_error_alert</a></li>
<li><a class="reference internal" href="#peer-connected-alert" id="id181">peer_connected_alert</a></li>
<li><a class="reference internal" href="#peer-disconnected-alert" id="id182">peer_disconnected_alert</a></li>
<li><a class="reference internal" href="#invalid-request-alert" id="id183">invalid_request_alert</a></li>
<li><a class="reference internal" href="#request-dropped-alert" id="id184">request_dropped_alert</a></li>
<li><a class="reference internal" href="#block-timeout-alert" id="id185">block_timeout_alert</a></li>
<li><a class="reference internal" href="#block-finished-alert" id="id186">block_finished_alert</a></li>
<li><a class="reference internal" href="#lsd-peer-alert" id="id187">lsd_peer_alert</a></li>
<li><a class="reference internal" href="#file-completed-alert" id="id188">file_completed_alert</a></li>
<li><a class="reference internal" href="#block-downloading-alert" id="id189">block_downloading_alert</a></li>
<li><a class="reference internal" href="#unwanted-block-alert" id="id190">unwanted_block_alert</a></li>
<li><a class="reference internal" href="#torrent-delete-failed-alert" id="id191">torrent_delete_failed_alert</a></li>
<li><a class="reference internal" href="#torrent-deleted-alert" id="id192">torrent_deleted_alert</a></li>
<li><a class="reference internal" href="#torrent-finished-alert" id="id193">torrent_finished_alert</a></li>
<li><a class="reference internal" href="#performance-alert" id="id194">performance_alert</a></li>
<li><a class="reference internal" href="#state-changed-alert" id="id195">state_changed_alert</a></li>
<li><a class="reference internal" href="#metadata-failed-alert" id="id196">metadata_failed_alert</a></li>
<li><a class="reference internal" href="#metadata-received-alert" id="id197">metadata_received_alert</a></li>
<li><a class="reference internal" href="#fastresume-rejected-alert" id="id198">fastresume_rejected_alert</a></li>
<li><a class="reference internal" href="#peer-blocked-alert" id="id199">peer_blocked_alert</a></li>
<li><a class="reference internal" href="#storage-moved-alert" id="id200">storage_moved_alert</a></li>
<li><a class="reference internal" href="#storage-moved-failed-alert" id="id201">storage_moved_failed_alert</a></li>
<li><a class="reference internal" href="#torrent-paused-alert" id="id202">torrent_paused_alert</a></li>
<li><a class="reference internal" href="#torrent-resumed-alert" id="id203">torrent_resumed_alert</a></li>
<li><a class="reference internal" href="#save-resume-data-alert" id="id204">save_resume_data_alert</a></li>
<li><a class="reference internal" href="#save-resume-data-failed-alert" id="id205">save_resume_data_failed_alert</a></li>
<li><a class="reference internal" href="#stats-alert" id="id206">stats_alert</a></li>
<li><a class="reference internal" href="#cache-flushed-alert" id="id207">cache_flushed_alert</a></li>
<li><a class="reference internal" href="#dht-announce-alert" id="id208">dht_announce_alert</a></li>
<li><a class="reference internal" href="#dht-get-peers-alert" id="id209">dht_get_peers_alert</a></li>
<li><a class="reference internal" href="#dht-reply-alert" id="id210">dht_reply_alert</a></li>
<li><a class="reference internal" href="#dht-bootstrap-alert" id="id211">dht_bootstrap_alert</a></li>
<li><a class="reference internal" href="#anonymous-mode-alert" id="id212">anonymous_mode_alert</a></li>
<li><a class="reference internal" href="#rss-alert" id="id213">rss_alert</a></li>
</ul>
</li>
<li><a class="reference internal" href="#alert-dispatcher" id="id213">alert dispatcher</a></li>
<li><a class="reference internal" href="#exceptions" id="id214">exceptions</a><ul>
<li><a class="reference internal" href="#libtorrent-exception" id="id215">libtorrent_exception</a></li>
<li><a class="reference internal" href="#alert-dispatcher" id="id214">alert dispatcher</a></li>
<li><a class="reference internal" href="#exceptions" id="id215">exceptions</a><ul>
<li><a class="reference internal" href="#libtorrent-exception" id="id216">libtorrent_exception</a></li>
</ul>
</li>
<li><a class="reference internal" href="#error-code" id="id216">error_code</a><ul>
<li><a class="reference internal" href="#translating-error-codes" id="id217">translating error codes</a></li>
<li><a class="reference internal" href="#error-code" id="id217">error_code</a><ul>
<li><a class="reference internal" href="#translating-error-codes" id="id218">translating error codes</a></li>
</ul>
</li>
<li><a class="reference internal" href="#storage-interface" id="id218">storage_interface</a><ul>
<li><a class="reference internal" href="#initialize" id="id219">initialize()</a></li>
<li><a class="reference internal" href="#has-any-file" id="id220">has_any_file()</a></li>
<li><a class="reference internal" href="#hint-read" id="id221">hint_read()</a></li>
<li><a class="reference internal" href="#readv-writev" id="id222">readv() writev()</a></li>
<li><a class="reference internal" href="#sparse-end" id="id223">sparse_end()</a></li>
<li><a class="reference internal" href="#id10" id="id224">move_storage()</a></li>
<li><a class="reference internal" href="#verify-resume-data" id="id225">verify_resume_data()</a></li>
<li><a class="reference internal" href="#write-resume-data" id="id226">write_resume_data()</a></li>
<li><a class="reference internal" href="#move-slot" id="id227">move_slot()</a></li>
<li><a class="reference internal" href="#swap-slots" id="id228">swap_slots()</a></li>
<li><a class="reference internal" href="#swap-slots3" id="id229">swap_slots3()</a></li>
<li><a class="reference internal" href="#id11" id="id230">rename_file()</a></li>
<li><a class="reference internal" href="#release-files" id="id231">release_files()</a></li>
<li><a class="reference internal" href="#delete-files" id="id232">delete_files()</a></li>
<li><a class="reference internal" href="#finalize-file" id="id233">finalize_file()</a></li>
<li><a class="reference internal" href="#example" id="id234">example</a></li>
<li><a class="reference internal" href="#storage-interface" id="id219">storage_interface</a><ul>
<li><a class="reference internal" href="#initialize" id="id220">initialize()</a></li>
<li><a class="reference internal" href="#has-any-file" id="id221">has_any_file()</a></li>
<li><a class="reference internal" href="#hint-read" id="id222">hint_read()</a></li>
<li><a class="reference internal" href="#readv-writev" id="id223">readv() writev()</a></li>
<li><a class="reference internal" href="#sparse-end" id="id224">sparse_end()</a></li>
<li><a class="reference internal" href="#id10" id="id225">move_storage()</a></li>
<li><a class="reference internal" href="#verify-resume-data" id="id226">verify_resume_data()</a></li>
<li><a class="reference internal" href="#write-resume-data" id="id227">write_resume_data()</a></li>
<li><a class="reference internal" href="#move-slot" id="id228">move_slot()</a></li>
<li><a class="reference internal" href="#swap-slots" id="id229">swap_slots()</a></li>
<li><a class="reference internal" href="#swap-slots3" id="id230">swap_slots3()</a></li>
<li><a class="reference internal" href="#id11" id="id231">rename_file()</a></li>
<li><a class="reference internal" href="#release-files" id="id232">release_files()</a></li>
<li><a class="reference internal" href="#delete-files" id="id233">delete_files()</a></li>
<li><a class="reference internal" href="#finalize-file" id="id234">finalize_file()</a></li>
<li><a class="reference internal" href="#example" id="id235">example</a></li>
</ul>
</li>
<li><a class="reference internal" href="#magnet-links" id="id235">magnet links</a></li>
<li><a class="reference internal" href="#queuing" id="id236">queuing</a><ul>
<li><a class="reference internal" href="#downloading" id="id237">downloading</a></li>
<li><a class="reference internal" href="#seeding" id="id238">seeding</a></li>
<li><a class="reference internal" href="#magnet-links" id="id236">magnet links</a></li>
<li><a class="reference internal" href="#queuing" id="id237">queuing</a><ul>
<li><a class="reference internal" href="#downloading" id="id238">downloading</a></li>
<li><a class="reference internal" href="#seeding" id="id239">seeding</a></li>
</ul>
</li>
<li><a class="reference internal" href="#fast-resume" id="id239">fast resume</a><ul>
<li><a class="reference internal" href="#file-format" id="id240">file format</a></li>
<li><a class="reference internal" href="#fast-resume" id="id240">fast resume</a><ul>
<li><a class="reference internal" href="#file-format" id="id241">file format</a></li>
</ul>
</li>
<li><a class="reference internal" href="#threads" id="id241">threads</a></li>
<li><a class="reference internal" href="#storage-allocation" id="id242">storage allocation</a><ul>
<li><a class="reference internal" href="#sparse-allocation" id="id243">sparse allocation</a></li>
<li><a class="reference internal" href="#full-allocation" id="id244">full allocation</a></li>
<li><a class="reference internal" href="#compact-allocation" id="id245">compact allocation</a></li>
<li><a class="reference internal" href="#threads" id="id242">threads</a></li>
<li><a class="reference internal" href="#storage-allocation" id="id243">storage allocation</a><ul>
<li><a class="reference internal" href="#sparse-allocation" id="id244">sparse allocation</a></li>
<li><a class="reference internal" href="#full-allocation" id="id245">full allocation</a></li>
<li><a class="reference internal" href="#compact-allocation" id="id246">compact allocation</a></li>
</ul>
</li>
<li><a class="reference internal" href="#extensions" id="id246">extensions</a><ul>
<li><a class="reference internal" href="#metadata-from-peers" id="id247">metadata from peers</a></li>
<li><a class="reference internal" href="#http-seeding" id="id248">HTTP seeding</a></li>
<li><a class="reference internal" href="#extensions" id="id247">extensions</a><ul>
<li><a class="reference internal" href="#metadata-from-peers" id="id248">metadata from peers</a></li>
<li><a class="reference internal" href="#http-seeding" id="id249">HTTP seeding</a></li>
</ul>
</li>
<li><a class="reference internal" href="#filename-checks" id="id249">filename checks</a></li>
<li><a class="reference internal" href="#filename-checks" id="id250">filename checks</a></li>
</ul>
</div>
<div class="section" id="overview">
@ -1826,6 +1827,9 @@ public:
sha1_hash const&amp; hash_for_piece(unsigned int index) const;
char const* hash_for_piece_ptr(unsigned int index) const;
std::vector&lt;sha1_hash&gt; const&amp; merkle_tree() const;
void set_merkle_tree(std::vector&lt;sha1_hash&gt;&amp; h);
boost::shared_array&lt;char&gt; metadata() const;
int metadata_size() const;
};
@ -2191,6 +2195,22 @@ torrent file. For more information on the <tt class="docutils literal"><span cla
<tt class="docutils literal"><span class="pre">hash_for_piece_ptr()</span></tt> returns a pointer to the 20 byte sha1 digest for the piece.
Note that the string is not null-terminated.</p>
</div>
<div class="section" id="merkle-tree-set-merkle-tree">
<h2>merkle_tree() set_merkle_tree()</h2>
<blockquote>
<pre class="literal-block">
std::vector&lt;sha1_hash&gt; const&amp; merkle_tree() const;
void set_merkle_tree(std::vector&lt;sha1_hash&gt;&amp; h);
</pre>
</blockquote>
<p><tt class="docutils literal"><span class="pre">merkle_tree()</span></tt> returns a reference to the merkle tree for this torrent, if any.</p>
<p><tt class="docutils literal"><span class="pre">set_merkle_tree()</span></tt> moves the passed in merkle tree into the torrent_info object.
i.e. <tt class="docutils literal"><span class="pre">h</span></tt> will not be identical after the call. You need to set the merkle tree for
a torrent that you've just created (as a merkle torrent). The merkle tree is retrieved
from the <tt class="docutils literal"><span class="pre">create_torrent::merkle_tree()</span></tt> function, and need to be saved separately
from the torrent file itself. Once it's added to libtorrent, the merkle tree will be
persisted in the resume data.</p>
</div>
<div class="section" id="name-comment-creation-date-creator">
<h2>name() comment() creation_date() creator()</h2>
<blockquote>
@ -6319,7 +6339,7 @@ struct peer_disconnected_alert: peer_alert
<div class="section" id="invalid-request-alert">
<h2>invalid_request_alert</h2>
<p>This is a debug alert that is generated by an incoming invalid piece request.
<tt class="docutils literal"><span class="pre">Ïp</span></tt> is the address of the peer and the <tt class="docutils literal"><span class="pre">request</span></tt> is the actual incoming
<tt class="docutils literal"><span class="pre">ìp</span></tt> is the address of the peer and the <tt class="docutils literal"><span class="pre">request</span></tt> is the actual incoming
request from the peer.</p>
<pre class="literal-block">
struct invalid_request_alert: peer_alert
@ -7770,13 +7790,13 @@ std::string error_code_to_string(boost::system::error_code const&amp; ec)
static const char const* swedish[] =
{
&quot;inget fel&quot;,
&quot;en fil i torrenten kolliderar med en fil frÂn en annan torrent&quot;,
&quot;en fil i torrenten kolliderar med en fil från en annan torrent&quot;,
&quot;hash check misslyckades&quot;,
&quot;torrent filen r inte en dictionary&quot;,
&quot;'info'-nyckeln saknas eller r korrupt i torrentfilen&quot;,
&quot;'info'-f‰ltet ‰r inte en dictionary&quot;,
&quot;'piece length' f‰ltet saknas eller ‰r korrupt i torrentfilen&quot;,
&quot;torrentfilen saknar namnfltet&quot;,
&quot;torrent filen är inte en dictionary&quot;,
&quot;'info'-nyckeln saknas eller är korrupt i torrentfilen&quot;,
&quot;'info'-fältet är inte en dictionary&quot;,
&quot;'piece length' fältet saknas eller är korrupt i torrentfilen&quot;,
&quot;torrentfilen saknar namnfältet&quot;,
&quot;ogiltigt namn i torrentfilen (kan vara en attack)&quot;,
// ... more strings here
};