crashpad/doc/generated/doxygen/classcrashpad_1_1CrashReportUploadThread.html
2017-02-22 23:37:31 -05:00

235 lines
14 KiB
HTML

<!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">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Crashpad: crashpad::CrashReportUploadThread Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="crashpad_doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Crashpad
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacecrashpad.html">crashpad</a></li><li class="navelem"><a class="el" href="classcrashpad_1_1CrashReportUploadThread.html">CrashReportUploadThread</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classcrashpad_1_1CrashReportUploadThread-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">crashpad::CrashReportUploadThread Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>A thread that processes pending crash reports in a <a class="el" href="classcrashpad_1_1CrashReportDatabase.html" title="An interface for managing a collection of crash report files and metadata associated with the crash r...">CrashReportDatabase</a> by uploading them or marking them as completed without upload, as desired.
<a href="classcrashpad_1_1CrashReportUploadThread.html#details">More...</a></p>
<p><code>#include &quot;handler/crash_report_upload_thread.h&quot;</code></p>
<div class="dynheader">
Inheritance diagram for crashpad::CrashReportUploadThread:</div>
<div class="dyncontent">
<div class="center">
<img src="classcrashpad_1_1CrashReportUploadThread.png" usemap="#crashpad::CrashReportUploadThread_map" alt=""/>
<map id="crashpad::CrashReportUploadThread_map" name="crashpad::CrashReportUploadThread_map">
<area href="classcrashpad_1_1WorkerThread_1_1Delegate.html" title="An interface for doing work on a WorkerThread. " alt="crashpad::WorkerThread::Delegate" shape="rect" coords="0,0,221,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:acab00e743e74ee5403a86cf3f3280591"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1CrashReportUploadThread.html#acab00e743e74ee5403a86cf3f3280591">CrashReportUploadThread</a> (<a class="el" href="classcrashpad_1_1CrashReportDatabase.html">CrashReportDatabase</a> *database, const std::string &amp;url, bool rate_limit, bool upload_gzip)</td></tr>
<tr class="memdesc:acab00e743e74ee5403a86cf3f3280591"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a new object. <a href="#acab00e743e74ee5403a86cf3f3280591">More...</a><br /></td></tr>
<tr class="separator:acab00e743e74ee5403a86cf3f3280591"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad59667e3d1c518734c9cbb1741a19c0e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1CrashReportUploadThread.html#ad59667e3d1c518734c9cbb1741a19c0e">Start</a> ()</td></tr>
<tr class="memdesc:ad59667e3d1c518734c9cbb1741a19c0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Starts a dedicated upload thread, which executes ThreadMain(). <a href="#ad59667e3d1c518734c9cbb1741a19c0e">More...</a><br /></td></tr>
<tr class="separator:ad59667e3d1c518734c9cbb1741a19c0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3189181e4bb60a98e736edff644708d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1CrashReportUploadThread.html#af3189181e4bb60a98e736edff644708d">Stop</a> ()</td></tr>
<tr class="memdesc:af3189181e4bb60a98e736edff644708d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stops the upload thread. <a href="#af3189181e4bb60a98e736edff644708d">More...</a><br /></td></tr>
<tr class="separator:af3189181e4bb60a98e736edff644708d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affea498106bb97435e17d109dfdbfded"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1CrashReportUploadThread.html#affea498106bb97435e17d109dfdbfded">ReportPending</a> ()</td></tr>
<tr class="memdesc:affea498106bb97435e17d109dfdbfded"><td class="mdescLeft">&#160;</td><td class="mdescRight">Informs the upload thread that a new pending report has been added to the database. <a href="#affea498106bb97435e17d109dfdbfded">More...</a><br /></td></tr>
<tr class="separator:affea498106bb97435e17d109dfdbfded"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A thread that processes pending crash reports in a <a class="el" href="classcrashpad_1_1CrashReportDatabase.html" title="An interface for managing a collection of crash report files and metadata associated with the crash r...">CrashReportDatabase</a> by uploading them or marking them as completed without upload, as desired. </p>
<p>A producer of crash reports should notify an object of this class that a new report has been added to the database by calling <a class="el" href="classcrashpad_1_1CrashReportUploadThread.html#affea498106bb97435e17d109dfdbfded" title="Informs the upload thread that a new pending report has been added to the database. ">ReportPending()</a>.</p>
<p>Independently of being triggered by <a class="el" href="classcrashpad_1_1CrashReportUploadThread.html#affea498106bb97435e17d109dfdbfded" title="Informs the upload thread that a new pending report has been added to the database. ">ReportPending()</a>, objects of this class periodically examine the database for pending reports. This allows failed upload attempts for reports left in the pending state to be retried. It also catches reports that are added without a <a class="el" href="classcrashpad_1_1CrashReportUploadThread.html#affea498106bb97435e17d109dfdbfded" title="Informs the upload thread that a new pending report has been added to the database. ">ReportPending()</a> signal being caught. This may happen if crash reports are added to the database by other processes. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="acab00e743e74ee5403a86cf3f3280591"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acab00e743e74ee5403a86cf3f3280591">&#9670;&nbsp;</a></span>CrashReportUploadThread()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">crashpad::CrashReportUploadThread::CrashReportUploadThread </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcrashpad_1_1CrashReportDatabase.html">CrashReportDatabase</a> *&#160;</td>
<td class="paramname"><em>database</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>url</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>rate_limit</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>upload_gzip</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a new object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">database</td><td>The database to upload crash reports from. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">url</td><td>The URL of the server to upload crash reports to. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">rate_limit</td><td>Whether uploads should be throttled to a (currently hardcoded) rate. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">upload_gzip</td><td>Whether uploads should use <code>gzip</code> compression. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="affea498106bb97435e17d109dfdbfded"></a>
<h2 class="memtitle"><span class="permalink"><a href="#affea498106bb97435e17d109dfdbfded">&#9670;&nbsp;</a></span>ReportPending()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::CrashReportUploadThread::ReportPending </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Informs the upload thread that a new pending report has been added to the database. </p>
<p>This method may be called from any thread. </p>
</div>
</div>
<a id="ad59667e3d1c518734c9cbb1741a19c0e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad59667e3d1c518734c9cbb1741a19c0e">&#9670;&nbsp;</a></span>Start()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::CrashReportUploadThread::Start </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Starts a dedicated upload thread, which executes ThreadMain(). </p>
<p>This method may only be be called on a newly-constructed object or after a call to <a class="el" href="classcrashpad_1_1CrashReportUploadThread.html#af3189181e4bb60a98e736edff644708d" title="Stops the upload thread. ">Stop()</a>. </p>
</div>
</div>
<a id="af3189181e4bb60a98e736edff644708d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af3189181e4bb60a98e736edff644708d">&#9670;&nbsp;</a></span>Stop()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void crashpad::CrashReportUploadThread::Stop </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Stops the upload thread. </p>
<p>The upload thread will terminate after completing whatever task it is performing. If it is not performing any task, it will terminate immediately. This method blocks while waiting for the upload thread to terminate.</p>
<p>This method must only be called after <a class="el" href="classcrashpad_1_1CrashReportUploadThread.html#ad59667e3d1c518734c9cbb1741a19c0e" title="Starts a dedicated upload thread, which executes ThreadMain(). ">Start()</a>. If <a class="el" href="classcrashpad_1_1CrashReportUploadThread.html#ad59667e3d1c518734c9cbb1741a19c0e" title="Starts a dedicated upload thread, which executes ThreadMain(). ">Start()</a> has been called, this method must be called before destroying an object of this class.</p>
<p>This method may be called from any thread other than the upload thread. It is expected to only be called from the same thread that called <a class="el" href="classcrashpad_1_1CrashReportUploadThread.html#ad59667e3d1c518734c9cbb1741a19c0e" title="Starts a dedicated upload thread, which executes ThreadMain(). ">Start()</a>. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>handler/crash_report_upload_thread.h</li>
<li>handler/crash_report_upload_thread.cc</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>