update build docs

This commit is contained in:
Arvid Norberg 2011-11-19 20:07:41 +00:00
parent 3d04b5cc49
commit f4cf656306
4 changed files with 452 additions and 351 deletions

View File

@ -2,25 +2,23 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script type="text/javascript">
/* <![CDATA[ */
(function() {
var s = document.createElement('script'), t = document.getElementsByTagName('script')[0];
s.type = 'text/javascript';
s.async = true;
s.src = 'http://api.flattr.com/js/0.6/load.js?mode=auto';
t.parentNode.insertBefore(s, t);
})();
/* ]]> */
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />
<title>libtorrent manual</title>
<meta name="author" content="Arvid Norberg, arvid&#64;rasterbar.com" />
<link rel="stylesheet" type="text/css" href="../../css/base.css" />
<link rel="stylesheet" type="text/css" href="../../css/rst.css" />
<script type="text/javascript">
/* <![CDATA[ */
(function() {
var s = document.createElement('script'), t = document.getElementsByTagName('script')[0];
s.type = 'text/javascript';
s.async = true;
s.src = 'http://api.flattr.com/js/0.6/load.js?mode=auto';
t.parentNode.insertBefore(s, t);
})();
/* ]]> */
</script>
<link rel="stylesheet" href="style.css" type="text/css" />
<style type="text/css">
/* Hides from IE-mac \*/
@ -502,16 +500,10 @@ and boost.program_options.</p>
<p>No build system is present if libtorrent is checked out from CVS - it
needs to be generated first. If you're building from a released tarball,
you may skip directly to <a class="reference internal" href="#step-2-running-configure">Step 2: Running configure</a>.</p>
<p>Execute the following commands, in the given order, to generate
the build system:</p>
<p>Execute the following command to generate the build system:</p>
<pre class="literal-block">
aclocal -I m4
autoheader
libtoolize --copy --force
automake --add-missing --copy --gnu
autoconf
./autotool.sh
</pre>
<p>On darwin/OSX you have to run <tt class="docutils literal"><span class="pre">glibtoolize</span></tt> instead of <tt class="docutils literal"><span class="pre">libtoolize</span></tt>.</p>
</div>
<div class="section" id="step-2-running-configure">
<h3>Step 2: Running configure</h3>

View File

@ -410,16 +410,9 @@ No build system is present if libtorrent is checked out from CVS - it
needs to be generated first. If you're building from a released tarball,
you may skip directly to `Step 2: Running configure`_.
Execute the following commands, in the given order, to generate
the build system::
Execute the following command to generate the build system::
aclocal -I m4
autoheader
libtoolize --copy --force
automake --add-missing --copy --gnu
autoconf
On darwin/OSX you have to run ``glibtoolize`` instead of ``libtoolize``.
./autotool.sh
Step 2: Running configure
~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -64,282 +64,285 @@
<li><a class="reference internal" href="#load-state-save-state" id="id20">load_state() save_state()</a></li>
<li><a class="reference internal" href="#pause-resume-is-paused" id="id21">pause() resume() is_paused()</a></li>
<li><a class="reference internal" href="#abort" id="id22">abort()</a></li>
<li><a class="reference internal" href="#add-torrent" id="id23">add_torrent()</a></li>
<li><a class="reference internal" href="#async-add-torrent-add-torrent" id="id23">async_add_torrent() add_torrent()</a></li>
<li><a class="reference internal" href="#remove-torrent" id="id24">remove_torrent()</a></li>
<li><a class="reference internal" href="#find-torrent-get-torrents" id="id25">find_torrent() get_torrents()</a></li>
<li><a class="reference internal" href="#get-torrent-status-refresh-torrent-status" id="id26">get_torrent_status() refresh_torrent_status()</a></li>
<li><a class="reference internal" href="#load-asnum-db-load-country-db-as-for-ip" id="id27">load_asnum_db() load_country_db() as_for_ip()</a></li>
<li><a class="reference internal" href="#set-ip-filter" id="id28">set_ip_filter()</a></li>
<li><a class="reference internal" href="#get-ip-filter" id="id29">get_ip_filter()</a></li>
<li><a class="reference internal" href="#status" id="id30">status()</a></li>
<li><a class="reference internal" href="#get-cache-status" id="id31">get_cache_status()</a></li>
<li><a class="reference internal" href="#get-cache-info" id="id32">get_cache_info()</a></li>
<li><a class="reference internal" href="#is-listening-listen-port-listen-on" id="id33">is_listening() listen_port() listen_on()</a></li>
<li><a class="reference internal" href="#set-alert-mask" id="id34">set_alert_mask()</a></li>
<li><a class="reference internal" href="#pop-alerts-pop-alert-wait-for-alert" id="id35">pop_alerts() pop_alert() wait_for_alert()</a></li>
<li><a class="reference internal" href="#add-feed" id="id36">add_feed()</a></li>
<li><a class="reference internal" href="#remove-feed" id="id37">remove_feed()</a></li>
<li><a class="reference internal" href="#get-feeds" id="id38">get_feeds()</a></li>
<li><a class="reference internal" href="#add-extension" id="id39">add_extension()</a></li>
<li><a class="reference internal" href="#set-settings-set-pe-settings" id="id40">set_settings() set_pe_settings()</a></li>
<li><a class="reference internal" href="#set-proxy-proxy" id="id41">set_proxy() proxy()</a></li>
<li><a class="reference internal" href="#set-i2p-proxy-i2p-proxy" id="id42">set_i2p_proxy() i2p_proxy()</a></li>
<li><a class="reference internal" href="#start-dht-stop-dht-set-dht-settings-dht-state-is-dht-running" id="id43">start_dht() stop_dht() set_dht_settings() dht_state() is_dht_running()</a></li>
<li><a class="reference internal" href="#add-dht-node-add-dht-router" id="id44">add_dht_node() add_dht_router()</a></li>
<li><a class="reference internal" href="#start-lsd-stop-lsd" id="id45">start_lsd() stop_lsd()</a></li>
<li><a class="reference internal" href="#start-upnp-stop-upnp" id="id46">start_upnp() stop_upnp()</a></li>
<li><a class="reference internal" href="#start-natpmp-stop-natpmp" id="id47">start_natpmp() stop_natpmp()</a></li>
<li><a class="reference internal" href="#post-torrent-updates" id="id27">post_torrent_updates()</a></li>
<li><a class="reference internal" href="#load-asnum-db-load-country-db-as-for-ip" id="id28">load_asnum_db() load_country_db() as_for_ip()</a></li>
<li><a class="reference internal" href="#set-ip-filter" id="id29">set_ip_filter()</a></li>
<li><a class="reference internal" href="#get-ip-filter" id="id30">get_ip_filter()</a></li>
<li><a class="reference internal" href="#status" id="id31">status()</a></li>
<li><a class="reference internal" href="#get-cache-status" id="id32">get_cache_status()</a></li>
<li><a class="reference internal" href="#get-cache-info" id="id33">get_cache_info()</a></li>
<li><a class="reference internal" href="#is-listening-listen-port-listen-on" id="id34">is_listening() listen_port() listen_on()</a></li>
<li><a class="reference internal" href="#set-alert-mask" id="id35">set_alert_mask()</a></li>
<li><a class="reference internal" href="#pop-alerts-pop-alert-wait-for-alert" id="id36">pop_alerts() pop_alert() wait_for_alert()</a></li>
<li><a class="reference internal" href="#add-feed" id="id37">add_feed()</a></li>
<li><a class="reference internal" href="#remove-feed" id="id38">remove_feed()</a></li>
<li><a class="reference internal" href="#get-feeds" id="id39">get_feeds()</a></li>
<li><a class="reference internal" href="#add-extension" id="id40">add_extension()</a></li>
<li><a class="reference internal" href="#set-settings-set-pe-settings" id="id41">set_settings() set_pe_settings()</a></li>
<li><a class="reference internal" href="#set-proxy-proxy" id="id42">set_proxy() proxy()</a></li>
<li><a class="reference internal" href="#set-i2p-proxy-i2p-proxy" id="id43">set_i2p_proxy() i2p_proxy()</a></li>
<li><a class="reference internal" href="#start-dht-stop-dht-set-dht-settings-dht-state-is-dht-running" id="id44">start_dht() stop_dht() set_dht_settings() dht_state() is_dht_running()</a></li>
<li><a class="reference internal" href="#add-dht-node-add-dht-router" id="id45">add_dht_node() add_dht_router()</a></li>
<li><a class="reference internal" href="#start-lsd-stop-lsd" id="id46">start_lsd() stop_lsd()</a></li>
<li><a class="reference internal" href="#start-upnp-stop-upnp" id="id47">start_upnp() stop_upnp()</a></li>
<li><a class="reference internal" href="#start-natpmp-stop-natpmp" id="id48">start_natpmp() stop_natpmp()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#entry" id="id48">entry</a><ul>
<li><a class="reference internal" href="#integer-string-list-dict-type" id="id49">integer() string() list() dict() type()</a></li>
<li><a class="reference internal" href="#operator" id="id50">operator[]</a></li>
<li><a class="reference internal" href="#find-key" id="id51">find_key()</a></li>
<li><a class="reference internal" href="#entry" id="id49">entry</a><ul>
<li><a class="reference internal" href="#integer-string-list-dict-type" id="id50">integer() string() list() dict() type()</a></li>
<li><a class="reference internal" href="#operator" id="id51">operator[]</a></li>
<li><a class="reference internal" href="#find-key" id="id52">find_key()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#torrent-info" id="id52">torrent_info</a><ul>
<li><a class="reference internal" href="#id3" id="id53">torrent_info()</a></li>
<li><a class="reference internal" href="#add-tracker" id="id54">add_tracker()</a></li>
<li><a class="reference internal" href="#files-orig-files" id="id55">files() orig_files()</a></li>
<li><a class="reference internal" href="#remap-files" id="id56">remap_files()</a></li>
<li><a class="reference internal" href="#rename-file" id="id57">rename_file()</a></li>
<li><a class="reference internal" href="#begin-files-end-files-rbegin-files-rend-files" id="id58">begin_files() end_files() rbegin_files() rend_files()</a></li>
<li><a class="reference internal" href="#num-files-file-at" id="id59">num_files() file_at()</a></li>
<li><a class="reference internal" href="#map-block" id="id60">map_block()</a></li>
<li><a class="reference internal" href="#map-file" id="id61">map_file()</a></li>
<li><a class="reference internal" href="#add-url-seed-add-http-seed" id="id62">add_url_seed() add_http_seed()</a></li>
<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="#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>
<li><a class="reference internal" href="#torrent-info" id="id53">torrent_info</a><ul>
<li><a class="reference internal" href="#id3" id="id54">torrent_info()</a></li>
<li><a class="reference internal" href="#add-tracker" id="id55">add_tracker()</a></li>
<li><a class="reference internal" href="#files-orig-files" id="id56">files() orig_files()</a></li>
<li><a class="reference internal" href="#remap-files" id="id57">remap_files()</a></li>
<li><a class="reference internal" href="#rename-file" id="id58">rename_file()</a></li>
<li><a class="reference internal" href="#begin-files-end-files-rbegin-files-rend-files" id="id59">begin_files() end_files() rbegin_files() rend_files()</a></li>
<li><a class="reference internal" href="#num-files-file-at" id="id60">num_files() file_at()</a></li>
<li><a class="reference internal" href="#map-block" id="id61">map_block()</a></li>
<li><a class="reference internal" href="#map-file" id="id62">map_file()</a></li>
<li><a class="reference internal" href="#add-url-seed-add-http-seed" id="id63">add_url_seed() add_http_seed()</a></li>
<li><a class="reference internal" href="#trackers" id="id64">trackers()</a></li>
<li><a class="reference internal" href="#total-size-piece-length-piece-size-num-pieces" id="id65">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="id66">hash_for_piece() hash_for_piece_ptr() info_hash()</a></li>
<li><a class="reference internal" href="#merkle-tree-set-merkle-tree" id="id67">merkle_tree() set_merkle_tree()</a></li>
<li><a class="reference internal" href="#name-comment-creation-date-creator" id="id68">name() comment() creation_date() creator()</a></li>
<li><a class="reference internal" href="#priv" id="id69">priv()</a></li>
<li><a class="reference internal" href="#nodes" id="id70">nodes()</a></li>
<li><a class="reference internal" href="#add-node" id="id71">add_node()</a></li>
<li><a class="reference internal" href="#metadata-metadata-size" id="id72">metadata() metadata_size()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#torrent-handle" id="id72">torrent_handle</a><ul>
<li><a class="reference internal" href="#set-piece-deadline-reset-piece-deadline" id="id73">set_piece_deadline() reset_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>
<li><a class="reference internal" href="#set-ssl-certificate" id="id121">set_ssl_certificate()</a></li>
<li><a class="reference internal" href="#torrent-handle" id="id73">torrent_handle</a><ul>
<li><a class="reference internal" href="#set-piece-deadline-reset-piece-deadline" id="id74">set_piece_deadline() reset_piece_deadline()</a></li>
<li><a class="reference internal" href="#piece-availability" id="id75">piece_availability()</a></li>
<li><a class="reference internal" href="#piece-priority-prioritize-pieces-piece-priorities" id="id76">piece_priority() prioritize_pieces() piece_priorities()</a></li>
<li><a class="reference internal" href="#file-priority-prioritize-files-file-priorities" id="id77">file_priority() prioritize_files() file_priorities()</a></li>
<li><a class="reference internal" href="#file-progress" id="id78">file_progress()</a></li>
<li><a class="reference internal" href="#save-path" id="id79">save_path()</a></li>
<li><a class="reference internal" href="#move-storage" id="id80">move_storage()</a></li>
<li><a class="reference internal" href="#id4" id="id81">rename_file()</a></li>
<li><a class="reference internal" href="#get-storage-impl" id="id82">get_storage_impl()</a></li>
<li><a class="reference internal" href="#super-seeding" id="id83">super_seeding()</a></li>
<li><a class="reference internal" href="#add-piece" id="id84">add_piece()</a></li>
<li><a class="reference internal" href="#read-piece" id="id85">read_piece()</a></li>
<li><a class="reference internal" href="#force-reannounce-force-dht-announce" id="id86">force_reannounce() force_dht_announce()</a></li>
<li><a class="reference internal" href="#scrape-tracker" id="id87">scrape_tracker()</a></li>
<li><a class="reference internal" href="#connect-peer" id="id88">connect_peer()</a></li>
<li><a class="reference internal" href="#name" id="id89">name()</a></li>
<li><a class="reference internal" href="#set-ratio" id="id90">set_ratio()</a></li>
<li><a class="reference internal" href="#set-upload-limit-set-download-limit-upload-limit-download-limit" id="id91">set_upload_limit() set_download_limit() upload_limit() download_limit()</a></li>
<li><a class="reference internal" href="#set-sequential-download" id="id92">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="id93">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="id94">pause() resume()</a></li>
<li><a class="reference internal" href="#flush-cache" id="id95">flush_cache()</a></li>
<li><a class="reference internal" href="#force-recheck" id="id96">force_recheck()</a></li>
<li><a class="reference internal" href="#clear-error" id="id97">clear_error()</a></li>
<li><a class="reference internal" href="#set-upload-mode" id="id98">set_upload_mode()</a></li>
<li><a class="reference internal" href="#set-share-mode" id="id99">set_share_mode()</a></li>
<li><a class="reference internal" href="#apply-ip-filter" id="id100">apply_ip_filter()</a></li>
<li><a class="reference internal" href="#resolve-countries" id="id101">resolve_countries()</a></li>
<li><a class="reference internal" href="#is-seed" id="id102">is_seed()</a></li>
<li><a class="reference internal" href="#auto-managed" id="id103">auto_managed()</a></li>
<li><a class="reference internal" href="#set-metadata" id="id104">set_metadata()</a></li>
<li><a class="reference internal" href="#set-tracker-login" id="id105">set_tracker_login()</a></li>
<li><a class="reference internal" href="#trackers-replace-trackers-add-tracker" id="id106">trackers() replace_trackers() add_tracker()</a></li>
<li><a class="reference internal" href="#add-url-seed-remove-url-seed-url-seeds" id="id107">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="id108">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="id109">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="id110">set_priority()</a></li>
<li><a class="reference internal" href="#use-interface" id="id111">use_interface()</a></li>
<li><a class="reference internal" href="#info-hash" id="id112">info_hash()</a></li>
<li><a class="reference internal" href="#set-max-uploads-max-uploads" id="id113">set_max_uploads() max_uploads()</a></li>
<li><a class="reference internal" href="#set-max-connections-max-connections" id="id114">set_max_connections() max_connections()</a></li>
<li><a class="reference internal" href="#save-resume-data" id="id115">save_resume_data()</a></li>
<li><a class="reference internal" href="#need-save-resume-data" id="id116">need_save_resume_data()</a></li>
<li><a class="reference internal" href="#id5" id="id117">status()</a></li>
<li><a class="reference internal" href="#get-download-queue" id="id118">get_download_queue()</a></li>
<li><a class="reference internal" href="#get-peer-info" id="id119">get_peer_info()</a></li>
<li><a class="reference internal" href="#get-torrent-info" id="id120">get_torrent_info()</a></li>
<li><a class="reference internal" href="#is-valid" id="id121">is_valid()</a></li>
<li><a class="reference internal" href="#set-ssl-certificate" id="id122">set_ssl_certificate()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#torrent-status" id="id122">torrent_status</a></li>
<li><a class="reference internal" href="#peer-info" id="id123">peer_info</a></li>
<li><a class="reference internal" href="#feed-handle" id="id124">feed_handle</a><ul>
<li><a class="reference internal" href="#update-feed" id="id125">update_feed()</a></li>
<li><a class="reference internal" href="#get-feed-status" id="id126">get_feed_status()</a></li>
<li><a class="reference internal" href="#set-settings-settings" id="id127">set_settings() settings()</a></li>
<li><a class="reference internal" href="#torrent-status" id="id123">torrent_status</a></li>
<li><a class="reference internal" href="#peer-info" id="id124">peer_info</a></li>
<li><a class="reference internal" href="#feed-handle" id="id125">feed_handle</a><ul>
<li><a class="reference internal" href="#update-feed" id="id126">update_feed()</a></li>
<li><a class="reference internal" href="#get-feed-status" id="id127">get_feed_status()</a></li>
<li><a class="reference internal" href="#set-settings-settings" id="id128">set_settings() settings()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#feed-item" id="id128">feed_item</a></li>
<li><a class="reference internal" href="#session-customization" id="id129">session customization</a><ul>
<li><a class="reference internal" href="#presets" id="id130">presets</a></li>
<li><a class="reference internal" href="#session-settings" id="id131">session_settings</a></li>
<li><a class="reference internal" href="#feed-item" id="id129">feed_item</a></li>
<li><a class="reference internal" href="#session-customization" id="id130">session customization</a><ul>
<li><a class="reference internal" href="#presets" id="id131">presets</a></li>
<li><a class="reference internal" href="#session-settings" id="id132">session_settings</a></li>
</ul>
</li>
<li><a class="reference internal" href="#pe-settings" id="id132">pe_settings</a></li>
<li><a class="reference internal" href="#proxy-settings" id="id133">proxy_settings</a></li>
<li><a class="reference internal" href="#ip-filter" id="id134">ip_filter</a><ul>
<li><a class="reference internal" href="#id8" id="id135">ip_filter()</a></li>
<li><a class="reference internal" href="#add-rule" id="id136">add_rule()</a></li>
<li><a class="reference internal" href="#access" id="id137">access()</a></li>
<li><a class="reference internal" href="#export-filter" id="id138">export_filter()</a></li>
<li><a class="reference internal" href="#pe-settings" id="id133">pe_settings</a></li>
<li><a class="reference internal" href="#proxy-settings" id="id134">proxy_settings</a></li>
<li><a class="reference internal" href="#ip-filter" id="id135">ip_filter</a><ul>
<li><a class="reference internal" href="#id8" id="id136">ip_filter()</a></li>
<li><a class="reference internal" href="#add-rule" id="id137">add_rule()</a></li>
<li><a class="reference internal" href="#access" id="id138">access()</a></li>
<li><a class="reference internal" href="#export-filter" id="id139">export_filter()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#big-number" id="id139">big_number</a></li>
<li><a class="reference internal" href="#bitfield" id="id140">bitfield</a></li>
<li><a class="reference internal" href="#hasher" id="id141">hasher</a></li>
<li><a class="reference internal" href="#fingerprint" id="id142">fingerprint</a></li>
<li><a class="reference internal" href="#upnp-and-nat-pmp" id="id143">UPnP and NAT-PMP</a><ul>
<li><a class="reference internal" href="#add-mapping" id="id144">add_mapping()</a></li>
<li><a class="reference internal" href="#delete-mapping" id="id145">delete_mapping()</a></li>
<li><a class="reference internal" href="#router-model" id="id146">router_model()</a></li>
<li><a class="reference internal" href="#big-number" id="id140">big_number</a></li>
<li><a class="reference internal" href="#bitfield" id="id141">bitfield</a></li>
<li><a class="reference internal" href="#hasher" id="id142">hasher</a></li>
<li><a class="reference internal" href="#fingerprint" id="id143">fingerprint</a></li>
<li><a class="reference internal" href="#upnp-and-nat-pmp" id="id144">UPnP and NAT-PMP</a><ul>
<li><a class="reference internal" href="#add-mapping" id="id145">add_mapping()</a></li>
<li><a class="reference internal" href="#delete-mapping" id="id146">delete_mapping()</a></li>
<li><a class="reference internal" href="#router-model" id="id147">router_model()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#free-functions" id="id147">free functions</a><ul>
<li><a class="reference internal" href="#identify-client" id="id148">identify_client()</a></li>
<li><a class="reference internal" href="#client-fingerprint" id="id149">client_fingerprint()</a></li>
<li><a class="reference internal" href="#lazy-bdecode" id="id150">lazy_bdecode()</a></li>
<li><a class="reference internal" href="#bdecode-bencode" id="id151">bdecode() bencode()</a></li>
<li><a class="reference internal" href="#add-magnet-uri" id="id152">add_magnet_uri()</a></li>
<li><a class="reference internal" href="#make-magnet-uri" id="id153">make_magnet_uri()</a></li>
<li><a class="reference internal" href="#free-functions" id="id148">free functions</a><ul>
<li><a class="reference internal" href="#identify-client" id="id149">identify_client()</a></li>
<li><a class="reference internal" href="#client-fingerprint" id="id150">client_fingerprint()</a></li>
<li><a class="reference internal" href="#lazy-bdecode" id="id151">lazy_bdecode()</a></li>
<li><a class="reference internal" href="#bdecode-bencode" id="id152">bdecode() bencode()</a></li>
<li><a class="reference internal" href="#add-magnet-uri" id="id153">add_magnet_uri()</a></li>
<li><a class="reference internal" href="#make-magnet-uri" id="id154">make_magnet_uri()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#alerts" id="id154">alerts</a><ul>
<li><a class="reference internal" href="#torrent-added-alert" id="id155">torrent_added_alert</a></li>
<li><a class="reference internal" href="#torrent-removed-alert" id="id156">torrent_removed_alert</a></li>
<li><a class="reference internal" href="#read-piece-alert" id="id157">read_piece_alert</a></li>
<li><a class="reference internal" href="#external-ip-alert" id="id158">external_ip_alert</a></li>
<li><a class="reference internal" href="#listen-failed-alert" id="id159">listen_failed_alert</a></li>
<li><a class="reference internal" href="#listen-succeeded-alert" id="id160">listen_succeeded_alert</a></li>
<li><a class="reference internal" href="#portmap-error-alert" id="id161">portmap_error_alert</a></li>
<li><a class="reference internal" href="#portmap-alert" id="id162">portmap_alert</a></li>
<li><a class="reference internal" href="#portmap-log-alert" id="id163">portmap_log_alert</a></li>
<li><a class="reference internal" href="#file-error-alert" id="id164">file_error_alert</a></li>
<li><a class="reference internal" href="#torrent-error-alert" id="id165">torrent_error_alert</a></li>
<li><a class="reference internal" href="#file-renamed-alert" id="id166">file_renamed_alert</a></li>
<li><a class="reference internal" href="#file-rename-failed-alert" id="id167">file_rename_failed_alert</a></li>
<li><a class="reference internal" href="#tracker-announce-alert" id="id168">tracker_announce_alert</a></li>
<li><a class="reference internal" href="#tracker-error-alert" id="id169">tracker_error_alert</a></li>
<li><a class="reference internal" href="#tracker-reply-alert" id="id170">tracker_reply_alert</a></li>
<li><a class="reference internal" href="#tracker-warning-alert" id="id171">tracker_warning_alert</a></li>
<li><a class="reference internal" href="#scrape-reply-alert" id="id172">scrape_reply_alert</a></li>
<li><a class="reference internal" href="#scrape-failed-alert" id="id173">scrape_failed_alert</a></li>
<li><a class="reference internal" href="#url-seed-alert" id="id174">url_seed_alert</a></li>
<li><a class="reference internal" href="#hash-failed-alert" id="id175">hash_failed_alert</a></li>
<li><a class="reference internal" href="#peer-alert" id="id176">peer_alert</a></li>
<li><a class="reference internal" href="#peer-connect-alert" id="id177">peer_connect_alert</a></li>
<li><a class="reference internal" href="#peer-ban-alert" id="id178">peer_ban_alert</a></li>
<li><a class="reference internal" href="#peer-snubbed-alert" id="id179">peer_snubbed_alert</a></li>
<li><a class="reference internal" href="#peer-unsnubbed-alert" id="id180">peer_unsnubbed_alert</a></li>
<li><a class="reference internal" href="#peer-error-alert" id="id181">peer_error_alert</a></li>
<li><a class="reference internal" href="#peer-connected-alert" id="id182">peer_connected_alert</a></li>
<li><a class="reference internal" href="#peer-disconnected-alert" id="id183">peer_disconnected_alert</a></li>
<li><a class="reference internal" href="#invalid-request-alert" id="id184">invalid_request_alert</a></li>
<li><a class="reference internal" href="#request-dropped-alert" id="id185">request_dropped_alert</a></li>
<li><a class="reference internal" href="#block-timeout-alert" id="id186">block_timeout_alert</a></li>
<li><a class="reference internal" href="#block-finished-alert" id="id187">block_finished_alert</a></li>
<li><a class="reference internal" href="#lsd-peer-alert" id="id188">lsd_peer_alert</a></li>
<li><a class="reference internal" href="#file-completed-alert" id="id189">file_completed_alert</a></li>
<li><a class="reference internal" href="#block-downloading-alert" id="id190">block_downloading_alert</a></li>
<li><a class="reference internal" href="#unwanted-block-alert" id="id191">unwanted_block_alert</a></li>
<li><a class="reference internal" href="#torrent-delete-failed-alert" id="id192">torrent_delete_failed_alert</a></li>
<li><a class="reference internal" href="#torrent-deleted-alert" id="id193">torrent_deleted_alert</a></li>
<li><a class="reference internal" href="#torrent-finished-alert" id="id194">torrent_finished_alert</a></li>
<li><a class="reference internal" href="#performance-alert" id="id195">performance_alert</a></li>
<li><a class="reference internal" href="#state-changed-alert" id="id196">state_changed_alert</a></li>
<li><a class="reference internal" href="#metadata-failed-alert" id="id197">metadata_failed_alert</a></li>
<li><a class="reference internal" href="#metadata-received-alert" id="id198">metadata_received_alert</a></li>
<li><a class="reference internal" href="#fastresume-rejected-alert" id="id199">fastresume_rejected_alert</a></li>
<li><a class="reference internal" href="#peer-blocked-alert" id="id200">peer_blocked_alert</a></li>
<li><a class="reference internal" href="#storage-moved-alert" id="id201">storage_moved_alert</a></li>
<li><a class="reference internal" href="#storage-moved-failed-alert" id="id202">storage_moved_failed_alert</a></li>
<li><a class="reference internal" href="#torrent-paused-alert" id="id203">torrent_paused_alert</a></li>
<li><a class="reference internal" href="#torrent-resumed-alert" id="id204">torrent_resumed_alert</a></li>
<li><a class="reference internal" href="#save-resume-data-alert" id="id205">save_resume_data_alert</a></li>
<li><a class="reference internal" href="#save-resume-data-failed-alert" id="id206">save_resume_data_failed_alert</a></li>
<li><a class="reference internal" href="#stats-alert" id="id207">stats_alert</a></li>
<li><a class="reference internal" href="#cache-flushed-alert" id="id208">cache_flushed_alert</a></li>
<li><a class="reference internal" href="#torrent-need-cert-alert" id="id209">torrent_need_cert_alert</a></li>
<li><a class="reference internal" href="#dht-announce-alert" id="id210">dht_announce_alert</a></li>
<li><a class="reference internal" href="#dht-get-peers-alert" id="id211">dht_get_peers_alert</a></li>
<li><a class="reference internal" href="#dht-reply-alert" id="id212">dht_reply_alert</a></li>
<li><a class="reference internal" href="#dht-bootstrap-alert" id="id213">dht_bootstrap_alert</a></li>
<li><a class="reference internal" href="#anonymous-mode-alert" id="id214">anonymous_mode_alert</a></li>
<li><a class="reference internal" href="#rss-alert" id="id215">rss_alert</a></li>
<li><a class="reference internal" href="#incoming-connection-alert" id="id216">incoming_connection_alert</a></li>
<li><a class="reference internal" href="#alerts" id="id155">alerts</a><ul>
<li><a class="reference internal" href="#torrent-added-alert" id="id156">torrent_added_alert</a></li>
<li><a class="reference internal" href="#add-torrent-alert" id="id157">add_torrent_alert</a></li>
<li><a class="reference internal" href="#torrent-removed-alert" id="id158">torrent_removed_alert</a></li>
<li><a class="reference internal" href="#read-piece-alert" id="id159">read_piece_alert</a></li>
<li><a class="reference internal" href="#external-ip-alert" id="id160">external_ip_alert</a></li>
<li><a class="reference internal" href="#listen-failed-alert" id="id161">listen_failed_alert</a></li>
<li><a class="reference internal" href="#listen-succeeded-alert" id="id162">listen_succeeded_alert</a></li>
<li><a class="reference internal" href="#portmap-error-alert" id="id163">portmap_error_alert</a></li>
<li><a class="reference internal" href="#portmap-alert" id="id164">portmap_alert</a></li>
<li><a class="reference internal" href="#portmap-log-alert" id="id165">portmap_log_alert</a></li>
<li><a class="reference internal" href="#file-error-alert" id="id166">file_error_alert</a></li>
<li><a class="reference internal" href="#torrent-error-alert" id="id167">torrent_error_alert</a></li>
<li><a class="reference internal" href="#file-renamed-alert" id="id168">file_renamed_alert</a></li>
<li><a class="reference internal" href="#file-rename-failed-alert" id="id169">file_rename_failed_alert</a></li>
<li><a class="reference internal" href="#tracker-announce-alert" id="id170">tracker_announce_alert</a></li>
<li><a class="reference internal" href="#tracker-error-alert" id="id171">tracker_error_alert</a></li>
<li><a class="reference internal" href="#tracker-reply-alert" id="id172">tracker_reply_alert</a></li>
<li><a class="reference internal" href="#tracker-warning-alert" id="id173">tracker_warning_alert</a></li>
<li><a class="reference internal" href="#scrape-reply-alert" id="id174">scrape_reply_alert</a></li>
<li><a class="reference internal" href="#scrape-failed-alert" id="id175">scrape_failed_alert</a></li>
<li><a class="reference internal" href="#url-seed-alert" id="id176">url_seed_alert</a></li>
<li><a class="reference internal" href="#hash-failed-alert" id="id177">hash_failed_alert</a></li>
<li><a class="reference internal" href="#peer-alert" id="id178">peer_alert</a></li>
<li><a class="reference internal" href="#peer-connect-alert" id="id179">peer_connect_alert</a></li>
<li><a class="reference internal" href="#peer-ban-alert" id="id180">peer_ban_alert</a></li>
<li><a class="reference internal" href="#peer-snubbed-alert" id="id181">peer_snubbed_alert</a></li>
<li><a class="reference internal" href="#peer-unsnubbed-alert" id="id182">peer_unsnubbed_alert</a></li>
<li><a class="reference internal" href="#peer-error-alert" id="id183">peer_error_alert</a></li>
<li><a class="reference internal" href="#peer-connected-alert" id="id184">peer_connected_alert</a></li>
<li><a class="reference internal" href="#peer-disconnected-alert" id="id185">peer_disconnected_alert</a></li>
<li><a class="reference internal" href="#invalid-request-alert" id="id186">invalid_request_alert</a></li>
<li><a class="reference internal" href="#request-dropped-alert" id="id187">request_dropped_alert</a></li>
<li><a class="reference internal" href="#block-timeout-alert" id="id188">block_timeout_alert</a></li>
<li><a class="reference internal" href="#block-finished-alert" id="id189">block_finished_alert</a></li>
<li><a class="reference internal" href="#lsd-peer-alert" id="id190">lsd_peer_alert</a></li>
<li><a class="reference internal" href="#file-completed-alert" id="id191">file_completed_alert</a></li>
<li><a class="reference internal" href="#block-downloading-alert" id="id192">block_downloading_alert</a></li>
<li><a class="reference internal" href="#unwanted-block-alert" id="id193">unwanted_block_alert</a></li>
<li><a class="reference internal" href="#torrent-delete-failed-alert" id="id194">torrent_delete_failed_alert</a></li>
<li><a class="reference internal" href="#torrent-deleted-alert" id="id195">torrent_deleted_alert</a></li>
<li><a class="reference internal" href="#torrent-finished-alert" id="id196">torrent_finished_alert</a></li>
<li><a class="reference internal" href="#performance-alert" id="id197">performance_alert</a></li>
<li><a class="reference internal" href="#state-changed-alert" id="id198">state_changed_alert</a></li>
<li><a class="reference internal" href="#metadata-failed-alert" id="id199">metadata_failed_alert</a></li>
<li><a class="reference internal" href="#metadata-received-alert" id="id200">metadata_received_alert</a></li>
<li><a class="reference internal" href="#fastresume-rejected-alert" id="id201">fastresume_rejected_alert</a></li>
<li><a class="reference internal" href="#peer-blocked-alert" id="id202">peer_blocked_alert</a></li>
<li><a class="reference internal" href="#storage-moved-alert" id="id203">storage_moved_alert</a></li>
<li><a class="reference internal" href="#storage-moved-failed-alert" id="id204">storage_moved_failed_alert</a></li>
<li><a class="reference internal" href="#torrent-paused-alert" id="id205">torrent_paused_alert</a></li>
<li><a class="reference internal" href="#torrent-resumed-alert" id="id206">torrent_resumed_alert</a></li>
<li><a class="reference internal" href="#save-resume-data-alert" id="id207">save_resume_data_alert</a></li>
<li><a class="reference internal" href="#save-resume-data-failed-alert" id="id208">save_resume_data_failed_alert</a></li>
<li><a class="reference internal" href="#stats-alert" id="id209">stats_alert</a></li>
<li><a class="reference internal" href="#cache-flushed-alert" id="id210">cache_flushed_alert</a></li>
<li><a class="reference internal" href="#torrent-need-cert-alert" id="id211">torrent_need_cert_alert</a></li>
<li><a class="reference internal" href="#dht-announce-alert" id="id212">dht_announce_alert</a></li>
<li><a class="reference internal" href="#dht-get-peers-alert" id="id213">dht_get_peers_alert</a></li>
<li><a class="reference internal" href="#dht-reply-alert" id="id214">dht_reply_alert</a></li>
<li><a class="reference internal" href="#dht-bootstrap-alert" id="id215">dht_bootstrap_alert</a></li>
<li><a class="reference internal" href="#anonymous-mode-alert" id="id216">anonymous_mode_alert</a></li>
<li><a class="reference internal" href="#rss-alert" id="id217">rss_alert</a></li>
<li><a class="reference internal" href="#incoming-connection-alert" id="id218">incoming_connection_alert</a></li>
<li><a class="reference internal" href="#state-update-alert" id="id219">state_update_alert</a></li>
</ul>
</li>
<li><a class="reference internal" href="#alert-dispatcher" id="id217">alert dispatcher</a></li>
<li><a class="reference internal" href="#exceptions" id="id218">exceptions</a><ul>
<li><a class="reference internal" href="#libtorrent-exception" id="id219">libtorrent_exception</a></li>
<li><a class="reference internal" href="#alert-dispatcher" id="id220">alert dispatcher</a></li>
<li><a class="reference internal" href="#exceptions" id="id221">exceptions</a><ul>
<li><a class="reference internal" href="#libtorrent-exception" id="id222">libtorrent_exception</a></li>
</ul>
</li>
<li><a class="reference internal" href="#error-code" id="id220">error_code</a><ul>
<li><a class="reference internal" href="#translating-error-codes" id="id221">translating error codes</a></li>
<li><a class="reference internal" href="#error-code" id="id223">error_code</a><ul>
<li><a class="reference internal" href="#translating-error-codes" id="id224">translating error codes</a></li>
</ul>
</li>
<li><a class="reference internal" href="#storage-interface" id="id222">storage_interface</a><ul>
<li><a class="reference internal" href="#initialize" id="id223">initialize()</a></li>
<li><a class="reference internal" href="#has-any-file" id="id224">has_any_file()</a></li>
<li><a class="reference internal" href="#hint-read" id="id225">hint_read()</a></li>
<li><a class="reference internal" href="#readv-writev" id="id226">readv() writev()</a></li>
<li><a class="reference internal" href="#sparse-end" id="id227">sparse_end()</a></li>
<li><a class="reference internal" href="#id10" id="id228">move_storage()</a></li>
<li><a class="reference internal" href="#verify-resume-data" id="id229">verify_resume_data()</a></li>
<li><a class="reference internal" href="#write-resume-data" id="id230">write_resume_data()</a></li>
<li><a class="reference internal" href="#move-slot" id="id231">move_slot()</a></li>
<li><a class="reference internal" href="#swap-slots" id="id232">swap_slots()</a></li>
<li><a class="reference internal" href="#swap-slots3" id="id233">swap_slots3()</a></li>
<li><a class="reference internal" href="#id11" id="id234">rename_file()</a></li>
<li><a class="reference internal" href="#release-files" id="id235">release_files()</a></li>
<li><a class="reference internal" href="#delete-files" id="id236">delete_files()</a></li>
<li><a class="reference internal" href="#finalize-file" id="id237">finalize_file()</a></li>
<li><a class="reference internal" href="#example" id="id238">example</a></li>
<li><a class="reference internal" href="#storage-interface" id="id225">storage_interface</a><ul>
<li><a class="reference internal" href="#initialize" id="id226">initialize()</a></li>
<li><a class="reference internal" href="#has-any-file" id="id227">has_any_file()</a></li>
<li><a class="reference internal" href="#hint-read" id="id228">hint_read()</a></li>
<li><a class="reference internal" href="#readv-writev" id="id229">readv() writev()</a></li>
<li><a class="reference internal" href="#sparse-end" id="id230">sparse_end()</a></li>
<li><a class="reference internal" href="#id10" id="id231">move_storage()</a></li>
<li><a class="reference internal" href="#verify-resume-data" id="id232">verify_resume_data()</a></li>
<li><a class="reference internal" href="#write-resume-data" id="id233">write_resume_data()</a></li>
<li><a class="reference internal" href="#move-slot" id="id234">move_slot()</a></li>
<li><a class="reference internal" href="#swap-slots" id="id235">swap_slots()</a></li>
<li><a class="reference internal" href="#swap-slots3" id="id236">swap_slots3()</a></li>
<li><a class="reference internal" href="#id11" id="id237">rename_file()</a></li>
<li><a class="reference internal" href="#release-files" id="id238">release_files()</a></li>
<li><a class="reference internal" href="#delete-files" id="id239">delete_files()</a></li>
<li><a class="reference internal" href="#finalize-file" id="id240">finalize_file()</a></li>
<li><a class="reference internal" href="#example" id="id241">example</a></li>
</ul>
</li>
<li><a class="reference internal" href="#magnet-links" id="id239">magnet links</a></li>
<li><a class="reference internal" href="#queuing" id="id240">queuing</a><ul>
<li><a class="reference internal" href="#downloading" id="id241">downloading</a></li>
<li><a class="reference internal" href="#seeding" id="id242">seeding</a></li>
<li><a class="reference internal" href="#magnet-links" id="id242">magnet links</a></li>
<li><a class="reference internal" href="#queuing" id="id243">queuing</a><ul>
<li><a class="reference internal" href="#downloading" id="id244">downloading</a></li>
<li><a class="reference internal" href="#seeding" id="id245">seeding</a></li>
</ul>
</li>
<li><a class="reference internal" href="#fast-resume" id="id243">fast resume</a><ul>
<li><a class="reference internal" href="#file-format" id="id244">file format</a></li>
<li><a class="reference internal" href="#fast-resume" id="id246">fast resume</a><ul>
<li><a class="reference internal" href="#file-format" id="id247">file format</a></li>
</ul>
</li>
<li><a class="reference internal" href="#threads" id="id245">threads</a></li>
<li><a class="reference internal" href="#storage-allocation" id="id246">storage allocation</a><ul>
<li><a class="reference internal" href="#sparse-allocation" id="id247">sparse allocation</a></li>
<li><a class="reference internal" href="#full-allocation" id="id248">full allocation</a></li>
<li><a class="reference internal" href="#compact-allocation" id="id249">compact allocation</a></li>
<li><a class="reference internal" href="#threads" id="id248">threads</a></li>
<li><a class="reference internal" href="#storage-allocation" id="id249">storage allocation</a><ul>
<li><a class="reference internal" href="#sparse-allocation" id="id250">sparse allocation</a></li>
<li><a class="reference internal" href="#full-allocation" id="id251">full allocation</a></li>
<li><a class="reference internal" href="#compact-allocation" id="id252">compact allocation</a></li>
</ul>
</li>
<li><a class="reference internal" href="#extensions" id="id250">extensions</a><ul>
<li><a class="reference internal" href="#metadata-from-peers" id="id251">metadata from peers</a></li>
<li><a class="reference internal" href="#dont-have" id="id252">dont_have</a></li>
<li><a class="reference internal" href="#http-seeding" id="id253">HTTP seeding</a></li>
<li><a class="reference internal" href="#extensions" id="id253">extensions</a><ul>
<li><a class="reference internal" href="#metadata-from-peers" id="id254">metadata from peers</a></li>
<li><a class="reference internal" href="#dont-have" id="id255">dont_have</a></li>
<li><a class="reference internal" href="#http-seeding" id="id256">HTTP seeding</a></li>
</ul>
</li>
<li><a class="reference internal" href="#piece-picker" id="id254">piece picker</a><ul>
<li><a class="reference internal" href="#internal-representation" id="id255">internal representation</a></li>
<li><a class="reference internal" href="#picker-strategy" id="id256">picker strategy</a></li>
<li><a class="reference internal" href="#reverse-order" id="id257">reverse order</a></li>
<li><a class="reference internal" href="#parole-mode" id="id258">parole mode</a></li>
<li><a class="reference internal" href="#prioritize-partial-pieces" id="id259">prioritize partial pieces</a></li>
<li><a class="reference internal" href="#prefer-whole-pieces" id="id260">prefer whole pieces</a></li>
<li><a class="reference internal" href="#piece-picker" id="id257">piece picker</a><ul>
<li><a class="reference internal" href="#internal-representation" id="id258">internal representation</a></li>
<li><a class="reference internal" href="#picker-strategy" id="id259">picker strategy</a></li>
<li><a class="reference internal" href="#reverse-order" id="id260">reverse order</a></li>
<li><a class="reference internal" href="#parole-mode" id="id261">parole mode</a></li>
<li><a class="reference internal" href="#prioritize-partial-pieces" id="id262">prioritize partial pieces</a></li>
<li><a class="reference internal" href="#prefer-whole-pieces" id="id263">prefer whole pieces</a></li>
</ul>
</li>
<li><a class="reference internal" href="#ssl-torrents" id="id261">SSL torrents</a></li>
<li><a class="reference internal" href="#filename-checks" id="id262">filename checks</a></li>
<li><a class="reference internal" href="#ssl-torrents" id="id264">SSL torrents</a></li>
<li><a class="reference internal" href="#filename-checks" id="id265">filename checks</a></li>
</ul>
</div>
<div class="section" id="overview">
@ -357,7 +360,7 @@ the <tt class="docutils literal"><span class="pre">session</span></tt>, it conta
<li><p class="first">start DHT, LSD, UPnP, NAT-PMP etc (see <a class="reference internal" href="#start-dht-stop-dht-set-dht-settings-dht-state-is-dht-running">start_dht() stop_dht() set_dht_settings() dht_state() is_dht_running()</a>
<a class="reference internal" href="#start-lsd-stop-lsd">start_lsd() stop_lsd()</a>, <a class="reference internal" href="#start-upnp-stop-upnp">start_upnp() stop_upnp()</a> and <a class="reference internal" href="#start-natpmp-stop-natpmp">start_natpmp() stop_natpmp()</a>)</p>
</li>
<li><p class="first">parse .torrent-files and add them to the session (see <a class="reference internal" href="#bdecode-bencode">bdecode() bencode()</a> and <a class="reference internal" href="#add-torrent">add_torrent()</a>)</p>
<li><p class="first">parse .torrent-files and add them to the session (see <a class="reference internal" href="#bdecode-bencode">bdecode() bencode()</a> and <a href="#id266"><span class="problematic" id="id267">`add_torrent()`_</span></a>)</p>
</li>
<li><p class="first">main loop (see <a class="reference internal" href="#session">session</a>)</p>
<blockquote>
@ -466,6 +469,8 @@ class session: public boost::noncopyable
add_torrent_params const&amp; params
, error_code&amp; ec);
void async_add_torrent(add_torrent_params const&amp; params);
void pause();
void resume();
@ -691,8 +696,8 @@ public:
};
</pre>
</div>
<div class="section" id="add-torrent">
<h2>add_torrent()</h2>
<div class="section" id="async-add-torrent-add-torrent">
<h2>async_add_torrent() add_torrent()</h2>
<blockquote>
<pre class="literal-block">
typedef boost::function&lt;storage_interface*(file_storage const&amp;
@ -703,6 +708,20 @@ struct add_torrent_params
{
add_torrent_params(storage_constructor_type s);
enum flags_t
{
flag_seed_mode = 0x001,
flag_override_resume_data = 0x002,
flag_upload_mode = 0x004,
flag_share_mode = 0x008,
flag_apply_ip_filter = 0x010,
flag_paused = 0x020,
flag_auto_managed = 0x040.
flag_duplicate_is_error = 0x080,
flag_merge_resume_trackers = 0x100,
flag_update_subscribe = 0x200
};
int version;
boost::intrusive_ptr&lt;torrent_info&gt; ti;
char const* tracker_url;
@ -711,31 +730,29 @@ struct add_torrent_params
fs::path save_path;
std::vector&lt;char&gt;* resume_data;
storage_mode_t storage_mode;
bool paused;
bool auto_managed;
bool duplicate_is_error;
storage_constructor_type storage;
void* userdata;
bool seed_mode;
bool override_resume_data;
bool upload_mode;
std::vector&lt;boost::uint8_t&gt; const* file_priorities;
bool share_mode;
std::string trackerid;
std::string url;
std::string uuid;
std::string source_feed_url;
bool apply_ip_filter;
bool merge_resume_trackers;
boost::uint64_t flags;
};
torrent_handle add_torrent(add_torrent_params const&amp; params);
torrent_handle add_torrent(add_torrent_params const&amp; params
, error_code&amp; ec);
void async_add_torrent(add_torrent_params const&amp; params);
</pre>
</blockquote>
<p>You add torrents through the <tt class="docutils literal"><span class="pre">add_torrent()</span></tt> function where you give an
object with all the parameters.</p>
object with all the parameters. The <tt class="docutils literal"><span class="pre">add_torrent()</span></tt> overloads will block
until the torrent has been added (or failed to be added) and returns an
error code and a <tt class="docutils literal"><span class="pre">torrent_handle</span></tt>. In order to add torrents more efficiently,
consider using <tt class="docutils literal"><span class="pre">async_add_torrent()</span></tt> which returns immediately, without
waiting for the torrent to add. Notification of the torrent being added is sent
as <a class="reference internal" href="#add-torrent-alert">add_torrent_alert</a>.</p>
<p>The overload that does not take an <tt class="docutils literal"><span class="pre">error_code</span></tt> throws an exception on
error and is not available when building without exception support.</p>
<p>The only mandatory parameters are <tt class="docutils literal"><span class="pre">save_path</span></tt> which is the directory where you
@ -781,20 +798,6 @@ are rearranged to finally be in their correct places once the entire torrent has
downloaded.</dd>
</dl>
<p>For more information, see <a class="reference internal" 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
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
configuration options on torrents before starting them.</p>
<p>If you pass in resume data, the paused state of the torrent when the resume data
was saved will override the paused state you pass in here. You can override this
by setting <tt class="docutils literal"><span class="pre">override_resume_data</span></tt>.</p>
<p>If <tt class="docutils literal"><span class="pre">auto_managed</span></tt> is true, this torrent will be queued, started and seeded
automatically by libtorrent. When this is set, the torrent should also be started
as paused. The default queue order is the order the torrents were added. They
are all downloaded in that order. For more details, see <a class="reference internal" href="#queuing">queuing</a>.</p>
<p>If you pass in resume data, the auto_managed state of the torrent when the resume data
was saved will override the auto_managed state you pass in here. You can override this
by setting <tt class="docutils literal"><span class="pre">override_resume_data</span></tt>.</p>
<p><tt class="docutils literal"><span class="pre">storage</span></tt> can be used to customize how the data is stored. The default
storage will simply write the data to the files it belongs to, but it could be
overridden to save everything to a single file at a specific location or encrypt the
@ -802,40 +805,8 @@ content on disk for instance. For more information about the <tt class="docutils
that needs to be implemented for a custom storage, see <a class="reference internal" href="#storage-interface">storage_interface</a>.</p>
<p>The <tt class="docutils literal"><span class="pre">userdata</span></tt> parameter is optional and will be passed on to the extension
constructor functions, if any (see <a class="reference internal" href="#add-extension">add_extension()</a>).</p>
<p>If <tt class="docutils literal"><span class="pre">seed_mode</span></tt> is set to true, libtorrent will assume that all files are present
for this torrent and that they all match the hashes in the torrent file. Each time
a peer requests to download a block, the piece is verified against the hash, unless
it has been verified already. If a hash fails, the torrent will automatically leave
the seed mode and recheck all the files. The use case for this mode is if a torrent
is created and seeded, or if the user already know that the files are complete, this
is a way to avoid the initial file checks, and significantly reduce the startup time.</p>
<p>Setting <tt class="docutils literal"><span class="pre">seed_mode</span></tt> on a torrent without metadata (a .torrent file) is a no-op
and will be ignored.</p>
<p>If resume data is passed in with this torrent, the seed mode saved in there will
override the seed mode you set here.</p>
<p>The <a class="reference internal" href="#torrent-handle">torrent_handle</a> returned by <tt class="docutils literal"><span class="pre">add_torrent()</span></tt> can be used to retrieve information
about the torrent's progress, its peers etc. It is also used to abort a torrent.</p>
<p>If <tt class="docutils literal"><span class="pre">override_resume_data</span></tt> is set to true, the <tt class="docutils literal"><span class="pre">paused</span></tt> and <tt class="docutils literal"><span class="pre">auto_managed</span></tt>
state of the torrent are not loaded from the resume data, but the states requested
by this <tt class="docutils literal"><span class="pre">add_torrent_params</span></tt> will override it.</p>
<p>If <tt class="docutils literal"><span class="pre">upload_mode</span></tt> is set to true, the torrent will be initialized in upload-mode,
which means it will not make any piece requests. This state is typically entered
on disk I/O errors, and if the torrent is also auto managed, it will be taken out
of this state periodically. This mode can be used to avoid race conditions when
adjusting priorities of pieces before allowing the torrent to start downloading.</p>
<p><tt class="docutils literal"><span class="pre">share_mode</span></tt> determines if the torrent should be added in <em>share mode</em> or not.
Share mode indicates that we are not interested in downloading the torrent, but
merlely want to improve our share ratio (i.e. increase it). A torrent started in
share mode will do its best to never download more than it uploads to the swarm.
If the swarm does not have enough demand for upload capacity, the torrent will
not download anything. This mode is intended to be safe to add any number of torrents
to, without manual screening, without the risk of downloading more than is uploaded.</p>
<p>A torrent in share mode sets the priority to all pieces to 0, except for the pieces
that are downloaded, when pieces are decided to be downloaded. This affects the progress
bar, which might be set to &quot;100% finished&quot; most of the time. Do not change file or piece
priorities for torrents in share mode, it will make it not work.</p>
<p>The share mode has one setting, the share ratio target, see <tt class="docutils literal"><span class="pre">session_settings::share_mode_target</span></tt>
for more info.</p>
<p><tt class="docutils literal"><span class="pre">file_priorities</span></tt> can be set to control the initial file priorities when adding
a torrent. The semantics are the same as for <tt class="docutils literal"><span class="pre">torrent_handle::prioritize_files()</span></tt>.</p>
<p><tt class="docutils literal"><span class="pre">version</span></tt> is filled in by the constructor and should be left untouched. It
@ -848,11 +819,77 @@ running with the same UUID as the one being added, it will be considered a dupli
is mainly useful for RSS feed items which has UUIDs specified.</p>
<p><tt class="docutils literal"><span class="pre">source_feed_url</span></tt> should point to the URL of the RSS feed this torrent comes from,
if it comes from an RSS feed.</p>
<p><tt class="docutils literal"><span class="pre">apply_ip_filter</span></tt> determines if the IP filter should apply to this torrent or not. By
default all torrents are subject to filtering by the IP filter. This is useful if certain
torrents needs to be excempt for some reason, being an auto-update torrent for instance.</p>
<p><tt class="docutils literal"><span class="pre">merge_resume_trackers</span></tt> defaults to false and specifies whether tracker URLs loaded from
<p><tt class="docutils literal"><span class="pre">flags</span></tt> is a 64 bit integer used for flags controlling aspects of this torrent
and how it's added. These are the flags:</p>
<pre class="literal-block">
enum flags_t
{
flag_seed_mode = 0x001,
flag_override_resume_data = 0x002,
flag_upload_mode = 0x004,
flag_share_mode = 0x008,
flag_apply_ip_filter = 0x010,
flag_paused = 0x020,
flag_auto_managed = 0x040.
flag_duplicate_is_error = 0x080,
flag_merge_resume_trackers = 0x100,
flag_update_subscribe = 0x200
}
</pre>
<p><tt class="docutils literal"><span class="pre">flag_apply_ip_filter</span></tt> determines if the IP filter should apply to this torrent or not. By
default all torrents are subject to filtering by the IP filter (i.e. this flag is set by
default). This is useful if certain torrents needs to be excempt for some reason, being
an auto-update torrent for instance.</p>
<p><tt class="docutils literal"><span class="pre">flag_merge_resume_trackers</span></tt> defaults to off and specifies whether tracker URLs loaded from
resume data should be added to the trackers in the torrent or replace the trackers.</p>
<p><tt class="docutils literal"><span class="pre">flag_update_subscribe</span></tt> is on by default and means that this torrent will be part of state
updates when calling <a class="reference internal" href="#post-torrent-updates">post_torrent_updates()</a>.</p>
<p><tt class="docutils literal"><span class="pre">flag_paused</span></tt> 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
resumed. This is typically a good way of avoiding race conditions when setting
configuration options on torrents before starting them.</p>
<p>If you pass in resume data, the paused state of the torrent when the resume data
was saved will override the paused state you pass in here. You can override this
by setting <tt class="docutils literal"><span class="pre">flag_override_resume_data</span></tt>.</p>
<p>If <tt class="docutils literal"><span class="pre">flag_auto_managed</span></tt> is set, the torrent will be queued, started and seeded
automatically by libtorrent. When this is set, the torrent should also be started
as paused. The default queue order is the order the torrents were added. They
are all downloaded in that order. For more details, see <a class="reference internal" href="#queuing">queuing</a>.</p>
<p>If you pass in resume data, the auto_managed state of the torrent when the resume data
was saved will override the auto_managed state you pass in here. You can override this
by setting <tt class="docutils literal"><span class="pre">override_resume_data</span></tt>.</p>
<p>If <tt class="docutils literal"><span class="pre">flag_seed_mode</span></tt> is set, libtorrent will assume that all files are present
for this torrent and that they all match the hashes in the torrent file. Each time
a peer requests to download a block, the piece is verified against the hash, unless
it has been verified already. If a hash fails, the torrent will automatically leave
the seed mode and recheck all the files. The use case for this mode is if a torrent
is created and seeded, or if the user already know that the files are complete, this
is a way to avoid the initial file checks, and significantly reduce the startup time.</p>
<p>Setting <tt class="docutils literal"><span class="pre">flag_seed_mode</span></tt> on a torrent without metadata (a .torrent file) is a no-op
and will be ignored.</p>
<p>If resume data is passed in with this torrent, the seed mode saved in there will
override the seed mode you set here.</p>
<p>If <tt class="docutils literal"><span class="pre">flag_override_resume_data</span></tt> is set, the <tt class="docutils literal"><span class="pre">paused</span></tt> and <tt class="docutils literal"><span class="pre">auto_managed</span></tt>
state of the torrent are not loaded from the resume data, but the states requested
by the flags in <tt class="docutils literal"><span class="pre">add_torrent_params</span></tt> will override them.</p>
<p>If <tt class="docutils literal"><span class="pre">flag_upload_mode</span></tt> is set, the torrent will be initialized in upload-mode,
which means it will not make any piece requests. This state is typically entered
on disk I/O errors, and if the torrent is also auto managed, it will be taken out
of this state periodically. This mode can be used to avoid race conditions when
adjusting priorities of pieces before allowing the torrent to start downloading.</p>
<p><tt class="docutils literal"><span class="pre">flag_share_mode</span></tt> determines if the torrent should be added in <em>share mode</em> or not.
Share mode indicates that we are not interested in downloading the torrent, but
merlely want to improve our share ratio (i.e. increase it). A torrent started in
share mode will do its best to never download more than it uploads to the swarm.
If the swarm does not have enough demand for upload capacity, the torrent will
not download anything. This mode is intended to be safe to add any number of torrents
to, without manual screening, without the risk of downloading more than is uploaded.</p>
<p>A torrent in share mode sets the priority to all pieces to 0, except for the pieces
that are downloaded, when pieces are decided to be downloaded. This affects the progress
bar, which might be set to &quot;100% finished&quot; most of the time. Do not change file or piece
priorities for torrents in share mode, it will make it not work.</p>
<p>The share mode has one setting, the share ratio target, see <tt class="docutils literal"><span class="pre">session_settings::share_mode_target</span></tt>
for more info.</p>
</div>
<div class="section" id="remove-torrent">
<h2>remove_torrent()</h2>
@ -895,6 +932,12 @@ void refresh_torrent_status(std::vector&lt;torrent_status&gt;* ret
, boost::uint32_t flags = 0) const;
</pre>
</blockquote>
<div class="note">
<p class="first admonition-title">Note</p>
<p class="last">these calls are potentially expensive and won't scale well
with lots of torrents. If you're concerned about performance, consider
using <tt class="docutils literal"><span class="pre">post_torrent_updates()</span></tt> instead.</p>
</div>
<p><tt class="docutils literal"><span class="pre">get_torrent_status</span></tt> returns a vector of the <tt class="docutils literal"><span class="pre">torrent_status</span></tt> for every
torrent which satisfies <tt class="docutils literal"><span class="pre">pred</span></tt>, which is a predicate function which determines
if a torrent should be included in the returned set or not. Returning true means
@ -912,6 +955,19 @@ if you have a lot of torrents.</p>
<p>Any <tt class="docutils literal"><span class="pre">torrent_status</span></tt> object whose <tt class="docutils literal"><span class="pre">handle</span></tt> member is not referring to a
valid torrent are ignored.</p>
</div>
<div class="section" id="post-torrent-updates">
<h2>post_torrent_updates()</h2>
<blockquote>
<pre class="literal-block">
void post_torrent_updates();
</pre>
</blockquote>
<p>This functions instructs the session to post the <a class="reference internal" href="#state-update-alert">state_update_alert</a>, containing
the status of all torrents whose state changed since the last time this function
was called.</p>
<p>Only torrents who has the state subscription flag set will be included. This flag
is on by default. See <tt class="docutils literal"><span class="pre">add_torrent_params</span></tt> under <a class="reference internal" href="#async-add-torrent-add-torrent">async_add_torrent() add_torrent()</a>.</p>
</div>
<div class="section" id="load-asnum-db-load-country-db-as-for-ip">
<h2>load_asnum_db() load_country_db() as_for_ip()</h2>
<blockquote>
@ -1358,7 +1414,7 @@ minutes between refreshes.</p>
This object is used as a template for adding torrents from feeds,
but some torrent specific fields will be overridden by the
individual torrent being added. For more information on the
<tt class="docutils literal"><span class="pre">add_torrent_params</span></tt>, see <a class="reference internal" href="#add-torrent">add_torrent()</a>.</p>
<tt class="docutils literal"><span class="pre">add_torrent_params</span></tt>, see <a href="#id268"><span class="problematic" id="id269">`add_torrent()`_</span></a>.</p>
<p>The returned <a class="reference internal" href="#feed-handle">feed_handle</a> is a handle which is used to interact
with the feed, things like forcing a refresh or querying for
information about the items in the feed. For more information,
@ -2579,7 +2635,7 @@ and no calculation is required.</p>
boost::filesystem::path save_path() const;
</pre>
</blockquote>
<p><tt class="docutils literal"><span class="pre">save_path()</span></tt> returns the path that was given to <a class="reference internal" href="#add-torrent">add_torrent()</a> when this torrent
<p><tt class="docutils literal"><span class="pre">save_path()</span></tt> returns the path that was given to <a href="#id270"><span class="problematic" id="id271">`add_torrent()`_</span></a> when this torrent
was started.</p>
</div>
<div class="section" id="move-storage">
@ -4655,7 +4711,7 @@ are kept in memory after the torrent becomes a seed or not. If it is set to
needed anymore since the torrent won't download anything more). If it's set
to false they are not freed. If they are freed, the <a class="reference internal" href="#torrent-info">torrent_info</a> returned
by get_torrent_info() will return an object that may be incomplete, that
cannot be passed back to <a class="reference internal" href="#add-torrent">add_torrent()</a> for instance.</p>
cannot be passed back to <a href="#id272"><span class="problematic" id="id273">`add_torrent()`_</span></a> for instance.</p>
<p><tt class="docutils literal"><span class="pre">upnp_ignore_nonrouters</span></tt> indicates whether or not the UPnP implementation
should ignore any broadcast response from a device whose address is not the
configured router for this machine. i.e. it's a way to not talk to other
@ -5799,7 +5855,7 @@ torrent_handle add_magnet_uri(session&amp; ses, std::string const&amp; uri
and adds the torrent to the specified session (<tt class="docutils literal"><span class="pre">ses</span></tt>). It returns the
handle to the newly added torrent, or an invalid handle in case parsing
failed. To control some initial settings of the torrent, sepcify those in
the <tt class="docutils literal"><span class="pre">add_torrent_params</span></tt>, <tt class="docutils literal"><span class="pre">p</span></tt>. See <a class="reference internal" href="#add-torrent">add_torrent()</a>.</p>
the <tt class="docutils literal"><span class="pre">add_torrent_params</span></tt>, <tt class="docutils literal"><span class="pre">p</span></tt>. See <a href="#id274"><span class="problematic" id="id275">`add_torrent()`_</span></a>.</p>
<p>The overload that does not take an <tt class="docutils literal"><span class="pre">error_code</span></tt> throws an exception on
error and is not available when building without exception support.</p>
<p>A simpler way to add a magnet link to a session is to pass in the
@ -6014,6 +6070,23 @@ struct torrent_added_alert: torrent_alert
};
</pre>
</div>
<div class="section" id="add-torrent-alert">
<h2>add_torrent_alert</h2>
<p>This alert is always posted when a torrent was added via <tt class="docutils literal"><span class="pre">async_add_torrent()</span></tt>
and contains the return status of the add operation. The torrent handle of the new
torrent can be found in the base class' <tt class="docutils literal"><span class="pre">handle</span></tt> member.</p>
<pre class="literal-block">
struct add_torrent_alert: torrent_alert
{
// ...
add_torrent_params params;
error_code error;
};
</pre>
<p><tt class="docutils literal"><span class="pre">params</span></tt> is a copy of the parameters used when adding the torrent, it can be used
to identify which invocation to <tt class="docutils literal"><span class="pre">async_add_torrent()</span></tt> caused this alert.</p>
<p><tt class="docutils literal"><span class="pre">error</span></tt> is set to the error, if any, adding the torrent.</p>
</div>
<div class="section" id="torrent-removed-alert">
<h2>torrent_removed_alert</h2>
<p>The <tt class="docutils literal"><span class="pre">torrent_removed_alert</span></tt> is posted whenever a torrent is removed. Since
@ -7005,6 +7078,24 @@ as:</p>
</table>
<p><tt class="docutils literal"><span class="pre">ip</span></tt> is the IP address and port the connection came from.</p>
</div>
<div class="section" id="state-update-alert">
<h2>state_update_alert</h2>
<p>This alert is only posted when requested by the user, by calling <a class="reference internal" href="#post-torrent-updates">post_torrent_updates()</a>
on the session. It contains the torrent status of all torrents that changed
since last time this message was posted. Its category is <tt class="docutils literal"><span class="pre">status_notification</span></tt>, but
it's not subject to filtering, since it's only manually posted anyway.</p>
<pre class="literal-block">
struct state_update_alert: alert
{
// ...
std::vector&lt;torrent_status&gt; status;
};
</pre>
<p><tt class="docutils literal"><span class="pre">status</span></tt> contains the torrent status of all torrents that changed since last time
this message was posted. Note that you can map a torrent status to a specific torrent
via its <tt class="docutils literal"><span class="pre">handle</span></tt> member. The receiving end is suggested to have all torrents sorted
by the <tt class="docutils literal"><span class="pre">torrent_handle</span></tt> or hashed by it, for efficient updates.</p>
</div>
</div>
<div class="section" id="alert-dispatcher">
<h1>alert dispatcher</h1>
@ -8325,7 +8416,7 @@ torrents are being downloaded at any given time, and once a torrent is completel
downloaded, the next in line is started.</p>
<p>Torrents that are <em>auto managed</em> are subject to the queuing and the active torrents
limits. To make a torrent auto managed, set <tt class="docutils literal"><span class="pre">auto_managed</span></tt> to true when adding the
torrent (see <a class="reference internal" href="#add-torrent">add_torrent()</a>).</p>
torrent (see <a href="#id276"><span class="problematic" id="id277">`add_torrent()`_</span></a>).</p>
<p>The limits of the number of downloading and seeding torrents are controlled via
<tt class="docutils literal"><span class="pre">active_downloads</span></tt>, <tt class="docutils literal"><span class="pre">active_seeds</span></tt> and <tt class="docutils literal"><span class="pre">active_limit</span></tt> in <a class="reference internal" href="#session-settings">session_settings</a>.
These limits takes non auto managed torrents into account as well. If there are
@ -8373,7 +8464,7 @@ will not check the piece hashes then, and rely on the information given in the
fast-resume data. The fast-resume data also contains information about which
blocks, in the unfinished pieces, were downloaded, so it will not have to
start from scratch on the partially downloaded pieces.</p>
<p>To use the fast-resume data you simply give it to <a class="reference internal" href="#add-torrent">add_torrent()</a>, and it
<p>To use the fast-resume data you simply give it to <a href="#id278"><span class="problematic" id="id279">`add_torrent()`_</span></a>, and it
will skip the time consuming checks. It may have to do the checking anyway, if
the fast-resume data is corrupt or doesn't fit the storage for that torrent,
then it will not trust the fast-resume data and just do the checking.</p>
@ -8611,7 +8702,7 @@ to where they belong. This is the recommended (and default) mode.</li>
Support for this is deprecated and will be removed in future versions of libtorrent.
It's still described in here for completeness.</p>
<p>The allocation mode is selected when a torrent is started. It is passed as an
argument to <tt class="docutils literal"><span class="pre">session::add_torrent()</span></tt> (see <a class="reference internal" href="#add-torrent">add_torrent()</a>).</p>
argument to <tt class="docutils literal"><span class="pre">session::add_torrent()</span></tt> (see <a href="#id280"><span class="problematic" id="id281">`add_torrent()`_</span></a>).</p>
<p>The decision to use full allocation or compact allocation typically depends on whether
any files have priority 0 and if the filesystem supports sparse files.</p>
<div class="section" id="sparse-allocation">
@ -9027,6 +9118,33 @@ altogether. You can use:</p>
boost::filesystem::path::default_name_check(boost::filesystem::native);
</pre>
<p>for example. For more information, see the <a class="reference external" href="http://www.boost.org/libs/filesystem/doc/index.htm">Boost.Filesystem docs</a>.</p>
</div>
<div class="system-messages section">
<h1>Docutils System Messages</h1>
<div class="system-message" id="id266">
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">manual.rst</tt>, line 25); <em><a href="#id267">backlink</a></em></p>
Unknown target name: &quot;add_torrent()&quot;.</div>
<div class="system-message" id="id268">
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">manual.rst</tt>, line 1189); <em><a href="#id269">backlink</a></em></p>
Unknown target name: &quot;add_torrent()&quot;.</div>
<div class="system-message" id="id270">
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">manual.rst</tt>, line 2538); <em><a href="#id271">backlink</a></em></p>
Unknown target name: &quot;add_torrent()&quot;.</div>
<div class="system-message" id="id272">
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">manual.rst</tt>, line 4741); <em><a href="#id273">backlink</a></em></p>
Unknown target name: &quot;add_torrent()&quot;.</div>
<div class="system-message" id="id274">
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">manual.rst</tt>, line 6054); <em><a href="#id275">backlink</a></em></p>
Unknown target name: &quot;add_torrent()&quot;.</div>
<div class="system-message" id="id276">
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">manual.rst</tt>, line 8445); <em><a href="#id277">backlink</a></em></p>
Unknown target name: &quot;add_torrent()&quot;.</div>
<div class="system-message" id="id278">
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">manual.rst</tt>, line 8508); <em><a href="#id279">backlink</a></em></p>
Unknown target name: &quot;add_torrent()&quot;.</div>
<div class="system-message" id="id280">
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">manual.rst</tt>, line 8703); <em><a href="#id281">backlink</a></em></p>
Unknown target name: &quot;add_torrent()&quot;.</div>
</div>
</div>
<div id="footer">

View File

@ -2,25 +2,23 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script type="text/javascript">
/* <![CDATA[ */
(function() {
var s = document.createElement('script'), t = document.getElementsByTagName('script')[0];
s.type = 'text/javascript';
s.async = true;
s.src = 'http://api.flattr.com/js/0.6/load.js?mode=auto';
t.parentNode.insertBefore(s, t);
})();
/* ]]> */
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />
<title>libtorrent python binding</title>
<meta name="author" content="Arvid Norberg, arvid&#64;rasterbar.com" />
<link rel="stylesheet" type="text/css" href="../../css/base.css" />
<link rel="stylesheet" type="text/css" href="../../css/rst.css" />
<script type="text/javascript">
/* <![CDATA[ */
(function() {
var s = document.createElement('script'), t = document.getElementsByTagName('script')[0];
s.type = 'text/javascript';
s.async = true;
s.src = 'http://api.flattr.com/js/0.6/load.js?mode=auto';
t.parentNode.insertBefore(s, t);
})();
/* ]]> */
</script>
<link rel="stylesheet" href="style.css" type="text/css" />
<style type="text/css">
/* Hides from IE-mac \*/
@ -101,7 +99,7 @@ using python : 2.3 ;
you've installed python in a non-standard location, you have to add the prefix
path used when you installed python as a second option. Like this:</p>
<pre class="literal-block">
using python : 2.3 : /usr ;
using python : 2.6 : /usr/bin/python2.6 : /usr/include/python2.6 : /usr/lib/python2.6 ;
</pre>
<p>The bindings require <em>at least</em> python version 2.2.</p>
<p>For more information on how to install and set up boost-build, see the