added test to measure peak download rate and introduced performance warning alert when disk buffer limit and request limit are reached

This commit is contained in:
Arvid Norberg
2008-08-19 15:04:14 +00:00
parent a134908bac
commit 37389e4fe4
8 changed files with 219 additions and 56 deletions

View File

@@ -167,65 +167,66 @@
<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>
<li><a class="reference" href="#performance-alert" id="id147" name="id147">performance_alert</a></li>
<li><a class="reference" href="#metadata-failed-alert" id="id148" name="id148">metadata_failed_alert</a></li>
<li><a class="reference" href="#metadata-received-alert" id="id149" name="id149">metadata_received_alert</a></li>
<li><a class="reference" href="#fastresume-rejected-alert" id="id150" name="id150">fastresume_rejected_alert</a></li>
<li><a class="reference" href="#peer-blocked-alert" id="id151" name="id151">peer_blocked_alert</a></li>
<li><a class="reference" href="#storage-moved-alert" id="id152" name="id152">storage_moved_alert</a></li>
<li><a class="reference" href="#torrent-paused-alert" id="id153" name="id153">torrent_paused_alert</a></li>
<li><a class="reference" href="#torrent-resumed-alert" id="id154" name="id154">torrent_resumed_alert</a></li>
<li><a class="reference" href="#save-resume-data-alert" id="id155" name="id155">save_resume_data_alert</a></li>
<li><a class="reference" href="#save-resume-data-failed-alert" id="id156" name="id156">save_resume_data_failed_alert</a></li>
<li><a class="reference" href="#dispatcher" id="id157" name="id157">dispatcher</a></li>
</ul>
</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>
<li><a class="reference" href="#exceptions" id="id158" name="id158">exceptions</a><ul>
<li><a class="reference" href="#invalid-handle" id="id159" name="id159">invalid_handle</a></li>
<li><a class="reference" href="#duplicate-torrent" id="id160" name="id160">duplicate_torrent</a></li>
<li><a class="reference" href="#invalid-encoding" id="id161" name="id161">invalid_encoding</a></li>
<li><a class="reference" href="#type-error" id="id162" name="id162">type_error</a></li>
<li><a class="reference" href="#invalid-torrent-file" id="id163" name="id163">invalid_torrent_file</a></li>
</ul>
</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>
<li><a class="reference" href="#storage-interface" id="id164" name="id164">storage_interface</a><ul>
<li><a class="reference" href="#initialize" id="id165" name="id165">initialize()</a></li>
<li><a class="reference" href="#read" id="id166" name="id166">read()</a></li>
<li><a class="reference" href="#write" id="id167" name="id167">write()</a></li>
<li><a class="reference" href="#id12" id="id168" name="id168">move_storage()</a></li>
<li><a class="reference" href="#verify-resume-data" id="id169" name="id169">verify_resume_data()</a></li>
<li><a class="reference" href="#write-resume-data" id="id170" name="id170">write_resume_data()</a></li>
<li><a class="reference" href="#move-slot" id="id171" name="id171">move_slot()</a></li>
<li><a class="reference" href="#swap-slots" id="id172" name="id172">swap_slots()</a></li>
<li><a class="reference" href="#swap-slots3" id="id173" name="id173">swap_slots3()</a></li>
<li><a class="reference" href="#hash-for-slot" id="id174" name="id174">hash_for_slot()</a></li>
<li><a class="reference" href="#release-files" id="id175" name="id175">release_files()</a></li>
<li><a class="reference" href="#delete-files" id="id176" name="id176">delete_files()</a></li>
</ul>
</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>
<li><a class="reference" href="#magnet-links" id="id177" name="id177">magnet links</a></li>
<li><a class="reference" href="#queuing" id="id178" name="id178">queuing</a><ul>
<li><a class="reference" href="#downloading" id="id179" name="id179">downloading</a></li>
<li><a class="reference" href="#seeding" id="id180" name="id180">seeding</a></li>
</ul>
</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>
<li><a class="reference" href="#fast-resume" id="id181" name="id181">fast resume</a><ul>
<li><a class="reference" href="#file-format" id="id182" name="id182">file format</a></li>
</ul>
</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>
<li><a class="reference" href="#threads" id="id183" name="id183">threads</a></li>
<li><a class="reference" href="#storage-allocation" id="id184" name="id184">storage allocation</a><ul>
<li><a class="reference" href="#sparse-allocation" id="id185" name="id185">sparse allocation</a></li>
<li><a class="reference" href="#full-allocation" id="id186" name="id186">full allocation</a></li>
<li><a class="reference" href="#compact-allocation" id="id187" name="id187">compact allocation</a></li>
</ul>
</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>
<li><a class="reference" href="#extensions" id="id188" name="id188">extensions</a><ul>
<li><a class="reference" href="#metadata-from-peers" id="id189" name="id189">metadata from peers</a></li>
<li><a class="reference" href="#http-seeding" id="id190" name="id190">HTTP seeding</a></li>
</ul>
</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>
<li><a class="reference" href="#filename-checks" id="id191" name="id191">filename checks</a></li>
<li><a class="reference" href="#acknowledgments" id="id192" name="id192">acknowledgments</a></li>
</ul>
</div>
<div class="section">
@@ -3717,6 +3718,10 @@ pieces are completed.</td>
<tr><td><tt class="docutils literal"><span class="pre">ip_block_notification</span></tt></td>
<td>Alerts when a peer is blocked by the ip blocker or port blocker.</td>
</tr>
<tr><td><tt class="docutils literal"><span class="pre">performance_warning</span></tt></td>
<td>Alerts when some limit is reached that might limit the download
or upload rate.</td>
</tr>
<tr><td><tt class="docutils literal"><span class="pre">all_categories</span></tt></td>
<td>The full bitmask, representing all available categories.</td>
</tr>
@@ -3747,6 +3752,7 @@ public:
status_notification = <em>implementation defined</em>,
progress_notification = <em>implementation defined</em>,
ip_block_notification = <em>implementation defined</em>,
performance_warning = <em>implementation defined</em>,
all_categories = <em>implementation defined</em>
};
@@ -4063,6 +4069,25 @@ torrent in question.</p>
<p>There are no additional data members in this alert.</p>
</div>
<div class="section">
<h2><a id="performance-alert" name="performance-alert">performance_alert</a></h2>
<p>This alert is generated when a limit is reached that might have a negative impact on
upload or download rate performance.</p>
<pre class="literal-block">
struct performance_alert: torrent_alert
{
// ...
enum performance_warning_t
{
outstanding_disk_buffer_limit_reached,
outstanding_request_limit_reached,
};
performance_warning_t warning_code;
};
</pre>
</div>
<div class="section">
<h2><a id="metadata-failed-alert" name="metadata-failed-alert">metadata_failed_alert</a></h2>
<p>This alert is generated when the metadata has been completely received and the info-hash
failed to match it. i.e. the metadata that was received was corrupt. libtorrent will