introduced TORRENT_NO_DEPRECATE, to disable deprecated functions. Made example not use deprecated functions. Documented magnet uri related functions.

This commit is contained in:
Arvid Norberg
2008-08-03 15:14:08 +00:00
parent 18b14e56df
commit cbf8e6f3b1
16 changed files with 351 additions and 180 deletions

View File

@@ -144,85 +144,88 @@
<li><a class="reference" href="#identify-client" id="id123" name="id123">identify_client()</a></li>
<li><a class="reference" href="#client-fingerprint" id="id124" name="id124">client_fingerprint()</a></li>
<li><a class="reference" href="#bdecode-bencode" id="id125" name="id125">bdecode() bencode()</a></li>
<li><a class="reference" href="#add-magnet-uri" id="id126" name="id126">add_magnet_uri()</a></li>
<li><a class="reference" href="#make-magnet-uri" id="id127" name="id127">make_magnet_uri()</a></li>
</ul>
</li>
<li><a class="reference" href="#alerts" id="id126" name="id126">alerts</a><ul>
<li><a class="reference" href="#external-ip-alert" id="id127" name="id127">external_ip_alert</a></li>
<li><a class="reference" href="#listen-failed-alert" id="id128" name="id128">listen_failed_alert</a></li>
<li><a class="reference" href="#portmap-error-alert" id="id129" name="id129">portmap_error_alert</a></li>
<li><a class="reference" href="#portmap-alert" id="id130" name="id130">portmap_alert</a></li>
<li><a class="reference" href="#file-error-alert" id="id131" name="id131">file_error_alert</a></li>
<li><a class="reference" href="#tracker-announce-alert" id="id132" name="id132">tracker_announce_alert</a></li>
<li><a class="reference" href="#tracker-error-alert" id="id133" name="id133">tracker_error_alert</a></li>
<li><a class="reference" href="#tracker-reply-alert" id="id134" name="id134">tracker_reply_alert</a></li>
<li><a class="reference" href="#dht-reply-alert" id="id135" name="id135">dht_reply_alert</a></li>
<li><a class="reference" href="#tracker-warning-alert" id="id136" name="id136">tracker_warning_alert</a></li>
<li><a class="reference" href="#scrape-reply-alert" id="id137" name="id137">scrape_reply_alert</a></li>
<li><a class="reference" href="#scrape-failed-alert" id="id138" name="id138">scrape_failed_alert</a></li>
<li><a class="reference" href="#url-seed-alert" id="id139" name="id139">url_seed_alert</a></li>
<li><a class="reference" href="#hash-failed-alert" id="id140" name="id140">hash_failed_alert</a></li>
<li><a class="reference" href="#peer-ban-alert" id="id141" name="id141">peer_ban_alert</a></li>
<li><a class="reference" href="#peer-error-alert" id="id142" name="id142">peer_error_alert</a></li>
<li><a class="reference" href="#invalid-request-alert" id="id143" name="id143">invalid_request_alert</a></li>
<li><a class="reference" href="#torrent-finished-alert" id="id144" name="id144">torrent_finished_alert</a></li>
<li><a class="reference" href="#metadata-failed-alert" id="id145" name="id145">metadata_failed_alert</a></li>
<li><a class="reference" href="#metadata-received-alert" id="id146" name="id146">metadata_received_alert</a></li>
<li><a class="reference" href="#fastresume-rejected-alert" id="id147" name="id147">fastresume_rejected_alert</a></li>
<li><a class="reference" href="#peer-blocked-alert" id="id148" name="id148">peer_blocked_alert</a></li>
<li><a class="reference" href="#storage-moved-alert" id="id149" name="id149">storage_moved_alert</a></li>
<li><a class="reference" href="#torrent-paused-alert" id="id150" name="id150">torrent_paused_alert</a></li>
<li><a class="reference" href="#torrent-resumed-alert" id="id151" name="id151">torrent_resumed_alert</a></li>
<li><a class="reference" href="#save-resume-data-alert" id="id152" name="id152">save_resume_data_alert</a></li>
<li><a class="reference" href="#save-resume-data-failed-alert" id="id153" name="id153">save_resume_data_failed_alert</a></li>
<li><a class="reference" href="#dispatcher" id="id154" name="id154">dispatcher</a></li>
<li><a class="reference" href="#alerts" id="id128" name="id128">alerts</a><ul>
<li><a class="reference" href="#external-ip-alert" id="id129" name="id129">external_ip_alert</a></li>
<li><a class="reference" href="#listen-failed-alert" id="id130" name="id130">listen_failed_alert</a></li>
<li><a class="reference" href="#portmap-error-alert" id="id131" name="id131">portmap_error_alert</a></li>
<li><a class="reference" href="#portmap-alert" id="id132" name="id132">portmap_alert</a></li>
<li><a class="reference" href="#file-error-alert" id="id133" name="id133">file_error_alert</a></li>
<li><a class="reference" href="#tracker-announce-alert" id="id134" name="id134">tracker_announce_alert</a></li>
<li><a class="reference" href="#tracker-error-alert" id="id135" name="id135">tracker_error_alert</a></li>
<li><a class="reference" href="#tracker-reply-alert" id="id136" name="id136">tracker_reply_alert</a></li>
<li><a class="reference" href="#dht-reply-alert" id="id137" name="id137">dht_reply_alert</a></li>
<li><a class="reference" href="#tracker-warning-alert" id="id138" name="id138">tracker_warning_alert</a></li>
<li><a class="reference" href="#scrape-reply-alert" id="id139" name="id139">scrape_reply_alert</a></li>
<li><a class="reference" href="#scrape-failed-alert" id="id140" name="id140">scrape_failed_alert</a></li>
<li><a class="reference" href="#url-seed-alert" id="id141" name="id141">url_seed_alert</a></li>
<li><a class="reference" href="#hash-failed-alert" id="id142" name="id142">hash_failed_alert</a></li>
<li><a class="reference" href="#peer-ban-alert" id="id143" name="id143">peer_ban_alert</a></li>
<li><a class="reference" href="#peer-error-alert" id="id144" name="id144">peer_error_alert</a></li>
<li><a class="reference" href="#invalid-request-alert" id="id145" name="id145">invalid_request_alert</a></li>
<li><a class="reference" href="#torrent-finished-alert" id="id146" name="id146">torrent_finished_alert</a></li>
<li><a class="reference" href="#metadata-failed-alert" id="id147" name="id147">metadata_failed_alert</a></li>
<li><a class="reference" href="#metadata-received-alert" id="id148" name="id148">metadata_received_alert</a></li>
<li><a class="reference" href="#fastresume-rejected-alert" id="id149" name="id149">fastresume_rejected_alert</a></li>
<li><a class="reference" href="#peer-blocked-alert" id="id150" name="id150">peer_blocked_alert</a></li>
<li><a class="reference" href="#storage-moved-alert" id="id151" name="id151">storage_moved_alert</a></li>
<li><a class="reference" href="#torrent-paused-alert" id="id152" name="id152">torrent_paused_alert</a></li>
<li><a class="reference" href="#torrent-resumed-alert" id="id153" name="id153">torrent_resumed_alert</a></li>
<li><a class="reference" href="#save-resume-data-alert" id="id154" name="id154">save_resume_data_alert</a></li>
<li><a class="reference" href="#save-resume-data-failed-alert" id="id155" name="id155">save_resume_data_failed_alert</a></li>
<li><a class="reference" href="#dispatcher" id="id156" name="id156">dispatcher</a></li>
</ul>
</li>
<li><a class="reference" href="#exceptions" id="id155" name="id155">exceptions</a><ul>
<li><a class="reference" href="#invalid-handle" id="id156" name="id156">invalid_handle</a></li>
<li><a class="reference" href="#duplicate-torrent" id="id157" name="id157">duplicate_torrent</a></li>
<li><a class="reference" href="#invalid-encoding" id="id158" name="id158">invalid_encoding</a></li>
<li><a class="reference" href="#type-error" id="id159" name="id159">type_error</a></li>
<li><a class="reference" href="#invalid-torrent-file" id="id160" name="id160">invalid_torrent_file</a></li>
<li><a class="reference" href="#exceptions" id="id157" name="id157">exceptions</a><ul>
<li><a class="reference" href="#invalid-handle" id="id158" name="id158">invalid_handle</a></li>
<li><a class="reference" href="#duplicate-torrent" id="id159" name="id159">duplicate_torrent</a></li>
<li><a class="reference" href="#invalid-encoding" id="id160" name="id160">invalid_encoding</a></li>
<li><a class="reference" href="#type-error" id="id161" name="id161">type_error</a></li>
<li><a class="reference" href="#invalid-torrent-file" id="id162" name="id162">invalid_torrent_file</a></li>
</ul>
</li>
<li><a class="reference" href="#storage-interface" id="id161" name="id161">storage_interface</a><ul>
<li><a class="reference" href="#initialize" id="id162" name="id162">initialize()</a></li>
<li><a class="reference" href="#read" id="id163" name="id163">read()</a></li>
<li><a class="reference" href="#write" id="id164" name="id164">write()</a></li>
<li><a class="reference" href="#id12" id="id165" name="id165">move_storage()</a></li>
<li><a class="reference" href="#verify-resume-data" id="id166" name="id166">verify_resume_data()</a></li>
<li><a class="reference" href="#write-resume-data" id="id167" name="id167">write_resume_data()</a></li>
<li><a class="reference" href="#move-slot" id="id168" name="id168">move_slot()</a></li>
<li><a class="reference" href="#swap-slots" id="id169" name="id169">swap_slots()</a></li>
<li><a class="reference" href="#swap-slots3" id="id170" name="id170">swap_slots3()</a></li>
<li><a class="reference" href="#hash-for-slot" id="id171" name="id171">hash_for_slot()</a></li>
<li><a class="reference" href="#release-files" id="id172" name="id172">release_files()</a></li>
<li><a class="reference" href="#delete-files" id="id173" name="id173">delete_files()</a></li>
<li><a class="reference" href="#storage-interface" id="id163" name="id163">storage_interface</a><ul>
<li><a class="reference" href="#initialize" id="id164" name="id164">initialize()</a></li>
<li><a class="reference" href="#read" id="id165" name="id165">read()</a></li>
<li><a class="reference" href="#write" id="id166" name="id166">write()</a></li>
<li><a class="reference" href="#id12" id="id167" name="id167">move_storage()</a></li>
<li><a class="reference" href="#verify-resume-data" id="id168" name="id168">verify_resume_data()</a></li>
<li><a class="reference" href="#write-resume-data" id="id169" name="id169">write_resume_data()</a></li>
<li><a class="reference" href="#move-slot" id="id170" name="id170">move_slot()</a></li>
<li><a class="reference" href="#swap-slots" id="id171" name="id171">swap_slots()</a></li>
<li><a class="reference" href="#swap-slots3" id="id172" name="id172">swap_slots3()</a></li>
<li><a class="reference" href="#hash-for-slot" id="id173" name="id173">hash_for_slot()</a></li>
<li><a class="reference" href="#release-files" id="id174" name="id174">release_files()</a></li>
<li><a class="reference" href="#delete-files" id="id175" name="id175">delete_files()</a></li>
</ul>
</li>
<li><a class="reference" href="#queuing" id="id174" name="id174">queuing</a><ul>
<li><a class="reference" href="#downloading" id="id175" name="id175">downloading</a></li>
<li><a class="reference" href="#seeding" id="id176" name="id176">seeding</a></li>
<li><a class="reference" href="#magnet-links" id="id176" name="id176">magnet links</a></li>
<li><a class="reference" href="#queuing" id="id177" name="id177">queuing</a><ul>
<li><a class="reference" href="#downloading" id="id178" name="id178">downloading</a></li>
<li><a class="reference" href="#seeding" id="id179" name="id179">seeding</a></li>
</ul>
</li>
<li><a class="reference" href="#fast-resume" id="id177" name="id177">fast resume</a><ul>
<li><a class="reference" href="#file-format" id="id178" name="id178">file format</a></li>
<li><a class="reference" href="#fast-resume" id="id180" name="id180">fast resume</a><ul>
<li><a class="reference" href="#file-format" id="id181" name="id181">file format</a></li>
</ul>
</li>
<li><a class="reference" href="#threads" id="id179" name="id179">threads</a></li>
<li><a class="reference" href="#storage-allocation" id="id180" name="id180">storage allocation</a><ul>
<li><a class="reference" href="#sparse-allocation" id="id181" name="id181">sparse allocation</a></li>
<li><a class="reference" href="#full-allocation" id="id182" name="id182">full allocation</a></li>
<li><a class="reference" href="#compact-allocation" id="id183" name="id183">compact allocation</a></li>
<li><a class="reference" href="#threads" id="id182" name="id182">threads</a></li>
<li><a class="reference" href="#storage-allocation" id="id183" name="id183">storage allocation</a><ul>
<li><a class="reference" href="#sparse-allocation" id="id184" name="id184">sparse allocation</a></li>
<li><a class="reference" href="#full-allocation" id="id185" name="id185">full allocation</a></li>
<li><a class="reference" href="#compact-allocation" id="id186" name="id186">compact allocation</a></li>
</ul>
</li>
<li><a class="reference" href="#extensions" id="id184" name="id184">extensions</a><ul>
<li><a class="reference" href="#metadata-from-peers" id="id185" name="id185">metadata from peers</a></li>
<li><a class="reference" href="#http-seeding" id="id186" name="id186">HTTP seeding</a></li>
<li><a class="reference" href="#extensions" id="id187" name="id187">extensions</a><ul>
<li><a class="reference" href="#metadata-from-peers" id="id188" name="id188">metadata from peers</a></li>
<li><a class="reference" href="#http-seeding" id="id189" name="id189">HTTP seeding</a></li>
</ul>
</li>
<li><a class="reference" href="#filename-checks" id="id187" name="id187">filename checks</a></li>
<li><a class="reference" href="#acknowledgments" id="id188" name="id188">acknowledgments</a></li>
<li><a class="reference" href="#filename-checks" id="id190" name="id190">filename checks</a></li>
<li><a class="reference" href="#acknowledgments" id="id191" name="id191">acknowledgments</a></li>
</ul>
</div>
<div class="section">
@@ -3633,6 +3636,32 @@ entry e = bdecode(buf, buf + data_size);
<p>If <tt class="docutils literal"><span class="pre">bdecode()</span></tt> encounters invalid encoded data in the range given to it
it will throw <a class="reference" href="#invalid-encoding">invalid_encoding</a>.</p>
</div>
<div class="section">
<h2><a id="add-magnet-uri" name="add-magnet-uri">add_magnet_uri()</a></h2>
<blockquote>
<pre class="literal-block">
torrent_handle add_magnet_uri(session&amp; ses, std::string const&amp; uri
add_torrent_params p);
</pre>
</blockquote>
<p>This function parses the magnet URI (<tt class="docutils literal"><span class="pre">uri</span></tt>) as a bittorrent magnet link,
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" href="#add-torrent">add_torrent()</a>.</p>
<p>For more information about magnet links, see <a class="reference" href="#magnet-links">magnet links</a>.</p>
</div>
<div class="section">
<h2><a id="make-magnet-uri" name="make-magnet-uri">make_magnet_uri()</a></h2>
<blockquote>
<pre class="literal-block">
std::string make_magnet_uri(torrent_handle const&amp; handle);
</pre>
</blockquote>
<p>Generates a magnet URI from the specified torrent. If the torrent
handle is invalid, an empty string is returned.</p>
<p>For more information about magnet links, see <a class="reference" href="#magnet-links">magnet links</a>.</p>
</div>
</div>
<div class="section">
<h1><a id="alerts" name="alerts">alerts</a></h1>
@@ -4406,6 +4435,15 @@ void delete_files() = 0;
</div>
</div>
<div class="section">
<h1><a id="magnet-links" name="magnet-links">magnet links</a></h1>
<p>Magnet links are URIs that includes an info-hash, a display name and optionally
a tracker url. The idea behind magnet links is that an end user can click on a
link in a browser and have it handled by a bittorrent application, to start a
download, without any .torrent file.</p>
<p>The format of the magnet URI is:</p>
<p><strong>magnet:?xt=urn:btih:</strong> <em>Base32 encoded info-hash</em> [ <strong>&amp;dn=</strong> <em>name of download</em> ] [ <strong>&amp;tr=</strong> <em>tracker URL</em> ]*</p>
</div>
<div class="section">
<h1><a id="queuing" name="queuing">queuing</a></h1>
<p>libtorrent supports <em>queuing</em>. Which means it makes sure that a limited number of
torrents are being downloaded at any given time, and once a torrent is completely