<!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::BinaryPruneCondition 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_1BinaryPruneCondition.html">BinaryPruneCondition</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classcrashpad_1_1BinaryPruneCondition-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">crashpad::BinaryPruneCondition 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 conjoins two other PruneConditions.  
 <a href="classcrashpad_1_1BinaryPruneCondition.html#details">More...</a></p>

<p><code>#include &quot;client/prune_crash_reports.h&quot;</code></p>
<div class="dynheader">
Inheritance diagram for crashpad::BinaryPruneCondition:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classcrashpad_1_1BinaryPruneCondition.png" usemap="#crashpad::BinaryPruneCondition_map" alt=""/>
  <map id="crashpad::BinaryPruneCondition_map" name="crashpad::BinaryPruneCondition_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,195,24"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a064b78f3c62165fbf737d4ad2df77284"><td class="memItemLeft" align="right" valign="top"><a id="a064b78f3c62165fbf737d4ad2df77284"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>Operator</b> </td></tr>
<tr class="separator:a064b78f3c62165fbf737d4ad2df77284"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><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:a68154b67d29953d93e1dad567b618288"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1BinaryPruneCondition.html#a68154b67d29953d93e1dad567b618288">BinaryPruneCondition</a> (Operator op, <a class="el" href="classcrashpad_1_1PruneCondition.html">PruneCondition</a> *lhs, <a class="el" href="classcrashpad_1_1PruneCondition.html">PruneCondition</a> *rhs)</td></tr>
<tr class="memdesc:a68154b67d29953d93e1dad567b618288"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluates two sub-conditions according to the specified logical operator.  <a href="#a68154b67d29953d93e1dad567b618288">More...</a><br /></td></tr>
<tr class="separator:a68154b67d29953d93e1dad567b618288"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a930564dad40627e55bba286b7372f078"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1BinaryPruneCondition.html#a930564dad40627e55bba286b7372f078">ShouldPruneReport</a> (const <a class="el" href="structcrashpad_1_1CrashReportDatabase_1_1Report.html">CrashReportDatabase::Report</a> &amp;report) override</td></tr>
<tr class="memdesc:a930564dad40627e55bba286b7372f078"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluates a crash report for deletion.  <a href="#a930564dad40627e55bba286b7372f078">More...</a><br /></td></tr>
<tr class="separator:a930564dad40627e55bba286b7372f078"><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 conjoins two other PruneConditions. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a68154b67d29953d93e1dad567b618288"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68154b67d29953d93e1dad567b618288">&#9670;&nbsp;</a></span>BinaryPruneCondition()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BinaryPruneCondition::BinaryPruneCondition </td>
          <td>(</td>
          <td class="paramtype">Operator&#160;</td>
          <td class="paramname"><em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcrashpad_1_1PruneCondition.html">PruneCondition</a> *&#160;</td>
          <td class="paramname"><em>lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcrashpad_1_1PruneCondition.html">PruneCondition</a> *&#160;</td>
          <td class="paramname"><em>rhs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Evaluates two sub-conditions according to the specified logical operator. </p>
<p>This implements left-to-right evaluation. For Operator::AND, this means if the <em>lhs</em> is <code>false</code>, the <em>rhs</em> will not be consulted. Similarly, with Operator::OR, if the <em>lhs</em> is <code>true</code>, the <em>rhs</em> will not be consulted.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">op</td><td>The logical operator to apply on <em>lhs</em> and <em>rhs</em>. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">lhs</td><td>The left-hand side of <em>op</em>. This class takes ownership. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">rhs</td><td>The right-hand side of <em>op</em>. This class takes ownership. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a930564dad40627e55bba286b7372f078"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a930564dad40627e55bba286b7372f078">&#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 BinaryPruneCondition::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>
