<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Crashpad: crashpad::DatabaseSizePruneCondition 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.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</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_1DatabaseSizePruneCondition.html">DatabaseSizePruneCondition</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_1DatabaseSizePruneCondition-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">crashpad::DatabaseSizePruneCondition Class Reference<span class="mlabels"><span class="mlabel">final</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>A <a class="el" href="classcrashpad_1_1PruneCondition.html" title="An abstract base class for evaluating crash reports for deletion.">PruneCondition</a> that deletes older reports to keep the total Crashpad database size under the specified limit.  
 <a href="classcrashpad_1_1DatabaseSizePruneCondition.html#details">More...</a></p>

<p><code>#include &quot;client/prune_crash_reports.h&quot;</code></p>
<div class="dynheader">
Inheritance diagram for crashpad::DatabaseSizePruneCondition:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classcrashpad_1_1DatabaseSizePruneCondition.png" usemap="#crashpad::DatabaseSizePruneCondition_map" alt=""/>
  <map id="crashpad::DatabaseSizePruneCondition_map" name="crashpad::DatabaseSizePruneCondition_map">
<area href="classcrashpad_1_1PruneCondition.html" title="An abstract base class for evaluating crash reports for deletion." alt="crashpad::PruneCondition" shape="rect" coords="0,0,235,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:aafe25019360a9622e1c60baf8a79de25"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1DatabaseSizePruneCondition.html#aafe25019360a9622e1c60baf8a79de25">DatabaseSizePruneCondition</a> (size_t max_size_in_kb)</td></tr>
<tr class="memdesc:aafe25019360a9622e1c60baf8a79de25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a <a class="el" href="classcrashpad_1_1PruneCondition.html" title="An abstract base class for evaluating crash reports for deletion.">PruneCondition</a> that will keep newer reports, until the sum of the size of all reports is not smaller than <em>max_size_in_kb</em>. After the limit is reached, older reports will be pruned.  <a href="classcrashpad_1_1DatabaseSizePruneCondition.html#aafe25019360a9622e1c60baf8a79de25">More...</a><br /></td></tr>
<tr class="separator:aafe25019360a9622e1c60baf8a79de25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acca4ba964727b7767431b81792f01fd6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1DatabaseSizePruneCondition.html#acca4ba964727b7767431b81792f01fd6">ShouldPruneReport</a> (const <a class="el" href="structcrashpad_1_1CrashReportDatabase_1_1Report.html">CrashReportDatabase::Report</a> &amp;report) override</td></tr>
<tr class="memdesc:acca4ba964727b7767431b81792f01fd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluates a crash report for deletion.  <a href="classcrashpad_1_1DatabaseSizePruneCondition.html#acca4ba964727b7767431b81792f01fd6">More...</a><br /></td></tr>
<tr class="separator:acca4ba964727b7767431b81792f01fd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_static_methods_classcrashpad_1_1PruneCondition"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classcrashpad_1_1PruneCondition')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classcrashpad_1_1PruneCondition.html">crashpad::PruneCondition</a></td></tr>
<tr class="memitem:a71bc322a91e221bfd06c616d7ceafd99 inherit pub_static_methods_classcrashpad_1_1PruneCondition"><td class="memItemLeft" align="right" valign="top">static std::unique_ptr&lt; <a class="el" href="classcrashpad_1_1PruneCondition.html">PruneCondition</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1PruneCondition.html#a71bc322a91e221bfd06c616d7ceafd99">GetDefault</a> ()</td></tr>
<tr class="memdesc:a71bc322a91e221bfd06c616d7ceafd99 inherit pub_static_methods_classcrashpad_1_1PruneCondition"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a sensible default condition for removing obsolete crash reports.  <a href="classcrashpad_1_1PruneCondition.html#a71bc322a91e221bfd06c616d7ceafd99">More...</a><br /></td></tr>
<tr class="separator:a71bc322a91e221bfd06c616d7ceafd99 inherit pub_static_methods_classcrashpad_1_1PruneCondition"><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 <a class="el" href="classcrashpad_1_1PruneCondition.html" title="An abstract base class for evaluating crash reports for deletion.">PruneCondition</a> that deletes older reports to keep the total Crashpad database size under the specified limit. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aafe25019360a9622e1c60baf8a79de25"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aafe25019360a9622e1c60baf8a79de25">&#9670;&nbsp;</a></span>DatabaseSizePruneCondition()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">crashpad::DatabaseSizePruneCondition::DatabaseSizePruneCondition </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>max_size_in_kb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Creates a <a class="el" href="classcrashpad_1_1PruneCondition.html" title="An abstract base class for evaluating crash reports for deletion.">PruneCondition</a> that will keep newer reports, until the sum of the size of all reports is not smaller than <em>max_size_in_kb</em>. After the limit is reached, older reports will be pruned. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">max_size_in_kb</td><td>The maximum number of kilobytes that all crash reports should consume. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="acca4ba964727b7767431b81792f01fd6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acca4ba964727b7767431b81792f01fd6">&#9670;&nbsp;</a></span>ShouldPruneReport()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool crashpad::DatabaseSizePruneCondition::ShouldPruneReport </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structcrashpad_1_1CrashReportDatabase_1_1Report.html">CrashReportDatabase::Report</a> &amp;&#160;</td>
          <td class="paramname"><em>report</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Evaluates a crash report for deletion. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">report</td><td>The crash report to evaluate.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the crash report should be deleted, <code>false</code> if it should be kept. </dd></dl>

<p>Implements <a class="el" href="classcrashpad_1_1PruneCondition.html#af6ca6223cf5972be17a01bdc869d311b">crashpad::PruneCondition</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>client/prune_crash_reports.h</li>
<li>client/prune_crash_reports.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.18
</small></address>
</body>
</html>
