<!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.14"/>
<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.14 -->
<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="#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="#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.14
</small></address>
</body>
</html>
