Files
rippled/classripple_1_1TxQ_1_1FeeMetrics.html
2025-09-18 10:58:55 -07:00

587 lines
35 KiB
HTML

<!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" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>rippled: ripple::TxQ::FeeMetrics 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" />
</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 id="projectrow">
<td id="projectalign">
<div id="projectname">rippled
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(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">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceripple.html">ripple</a></li><li class="navelem"><a class="el" href="classripple_1_1TxQ.html">TxQ</a></li><li class="navelem"><a class="el" href="classripple_1_1TxQ_1_1FeeMetrics.html">FeeMetrics</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classripple_1_1TxQ_1_1FeeMetrics-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">ripple::TxQ::FeeMetrics Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Track and use the fee escalation metrics of the current open ledger.
<a href="classripple_1_1TxQ_1_1FeeMetrics.html#details">More...</a></p>
<div class="dynheader">
Collaboration diagram for ripple::TxQ::FeeMetrics:</div>
<div class="dyncontent">
<div class="center"><img src="classripple_1_1TxQ_1_1FeeMetrics__coll__graph.png" border="0" usemap="#aripple_1_1TxQ_1_1FeeMetrics_coll__map" alt="Collaboration graph"/></div>
<map name="aripple_1_1TxQ_1_1FeeMetrics_coll__map" id="aripple_1_1TxQ_1_1FeeMetrics_coll__map">
<area shape="rect" title="Track and use the fee escalation metrics of the current open ledger." alt="" coords="661,195,833,220"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/types/size_t.html" title=" " alt="" coords="347,115,435,140"/>
<area shape="poly" title=" " alt="" coords="449,133,538,148,638,170,711,192,709,197,637,175,537,154,448,138"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/utility/optional.html" title=" " alt="" coords="321,165,460,205"/>
<area shape="poly" title=" " alt="" coords="474,187,661,199,661,205,474,193"/>
<area shape="rect" href="classripple_1_1unit_1_1ValueUnit.html" title=" " alt="" coords="309,229,472,269"/>
<area shape="poly" title=" " alt="" coords="485,236,637,218,661,215,661,220,638,223,486,241"/>
<area shape="rect" title=" " alt="" coords="15,5,199,60"/>
<area shape="poly" title=" " alt="" coords="202,65,211,71,255,108,288,157,295,174,298,188,302,201,311,215,326,226,323,231,307,219,297,204,293,189,290,175,283,159,251,112,208,75,199,69"/>
<area shape="rect" title=" " alt="" coords="9,85,206,125"/>
<area shape="poly" title=" " alt="" coords="196,127,211,134,311,214,334,226,332,231,308,219,208,139,194,132"/>
<area shape="rect" title=" " alt="" coords="6,149,209,204"/>
<area shape="poly" title=" " alt="" coords="223,203,312,226,311,231,221,208"/>
<area shape="rect" title=" " alt="" coords="5,229,209,269"/>
<area shape="poly" title=" " alt="" coords="223,246,309,246,309,251,223,251"/>
<area shape="rect" title=" " alt="" coords="7,293,208,333"/>
<area shape="poly" title=" " alt="" coords="209,287,309,264,310,270,211,292"/>
<area shape="rect" title=" " alt="" coords="15,357,199,412"/>
<area shape="poly" title=" " alt="" coords="192,350,208,342,286,303,353,267,355,271,289,308,210,347,194,354"/>
<area shape="rect" href="classbeast_1_1Journal.html" title="A generic endpoint for log messages." alt="" coords="335,364,446,389"/>
<area shape="poly" title=" " alt="" coords="430,356,718,218,720,223,432,361"/>
<area shape="rect" href="classbeast_1_1Journal_1_1Sink.html" title="Abstraction for the underlying message destination." alt="" coords="34,436,181,461"/>
<area shape="poly" title=" " alt="" coords="193,435,285,415,361,387,363,392,286,421,194,440"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1TxQ_1_1FeeMetrics_1_1Snapshot.html">Snapshot</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="structripple_1_1TxQ_1_1FeeMetrics_1_1Snapshot.html" title="Snapshot of the externally relevant FeeMetrics fields at any given time.">Snapshot</a> of the externally relevant <a class="el" href="classripple_1_1TxQ_1_1FeeMetrics.html" title="Track and use the fee escalation metrics of the current open ledger.">FeeMetrics</a> fields at any given time. <a href="structripple_1_1TxQ_1_1FeeMetrics_1_1Snapshot.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a508eeb090672a165248d6fb13748e4c1" id="r_a508eeb090672a165248d6fb13748e4c1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ_1_1FeeMetrics.html#a508eeb090672a165248d6fb13748e4c1">FeeMetrics</a> (<a class="el" href="structripple_1_1TxQ_1_1Setup.html">Setup</a> const &amp;setup, <a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> j)</td></tr>
<tr class="memdesc:a508eeb090672a165248d6fb13748e4c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br /></td></tr>
<tr class="separator:a508eeb090672a165248d6fb13748e4c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad56d92e762d13754c689e66180f7503a" id="r_ad56d92e762d13754c689e66180f7503a"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ_1_1FeeMetrics.html#ad56d92e762d13754c689e66180f7503a">update</a> (<a class="el" href="classripple_1_1Application.html">Application</a> &amp;app, <a class="el" href="classripple_1_1ReadView.html">ReadView</a> const &amp;view, bool timeLeap, <a class="el" href="structripple_1_1TxQ_1_1Setup.html">TxQ::Setup</a> const &amp;setup)</td></tr>
<tr class="memdesc:ad56d92e762d13754c689e66180f7503a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates fee metrics based on the transactions in the <a class="el" href="classripple_1_1ReadView.html" title="A view into a ledger.">ReadView</a> for use in fee escalation calculations. <br /></td></tr>
<tr class="separator:ad56d92e762d13754c689e66180f7503a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa03e54b0746f29b685222e6c6d0510a9" id="r_aa03e54b0746f29b685222e6c6d0510a9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structripple_1_1TxQ_1_1FeeMetrics_1_1Snapshot.html">Snapshot</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ_1_1FeeMetrics.html#aa03e54b0746f29b685222e6c6d0510a9">getSnapshot</a> () const</td></tr>
<tr class="memdesc:aa03e54b0746f29b685222e6c6d0510a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current <a class="el" href="structripple_1_1TxQ_1_1FeeMetrics_1_1Snapshot.html">Snapshot</a>. <br /></td></tr>
<tr class="separator:aa03e54b0746f29b685222e6c6d0510a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a5b20859e09a2a638b221bc904026ff36" id="r_a5b20859e09a2a638b221bc904026ff36"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceripple.html#aaaf6522d07c2b836c5fd589e9ecf578c">FeeLevel64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ_1_1FeeMetrics.html#a5b20859e09a2a638b221bc904026ff36">scaleFeeLevel</a> (<a class="el" href="structripple_1_1TxQ_1_1FeeMetrics_1_1Snapshot.html">Snapshot</a> const &amp;snapshot, <a class="el" href="classripple_1_1OpenView.html">OpenView</a> const &amp;view)</td></tr>
<tr class="memdesc:a5b20859e09a2a638b221bc904026ff36"><td class="mdescLeft">&#160;</td><td class="mdescRight">Use the number of transactions in the current open ledger to compute the fee level a transaction must pay to bypass the queue. <br /></td></tr>
<tr class="separator:a5b20859e09a2a638b221bc904026ff36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c6fe27399c7bd45a1f418bbb673d175" id="r_a9c6fe27399c7bd45a1f418bbb673d175"><td class="memItemLeft" align="right" valign="top">static <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; bool, <a class="el" href="namespaceripple.html#aaaf6522d07c2b836c5fd589e9ecf578c">FeeLevel64</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ_1_1FeeMetrics.html#a9c6fe27399c7bd45a1f418bbb673d175">escalatedSeriesFeeLevel</a> (<a class="el" href="structripple_1_1TxQ_1_1FeeMetrics_1_1Snapshot.html">Snapshot</a> const &amp;snapshot, <a class="el" href="classripple_1_1OpenView.html">OpenView</a> const &amp;view, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> extraCount, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> seriesSize)</td></tr>
<tr class="memdesc:a9c6fe27399c7bd45a1f418bbb673d175"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the total fee level for all transactions in a series. <br /></td></tr>
<tr class="separator:a9c6fe27399c7bd45a1f418bbb673d175"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a798a10fa00312ec5198ad7499ef621e7" id="r_a798a10fa00312ec5198ad7499ef621e7"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ_1_1FeeMetrics.html#a798a10fa00312ec5198ad7499ef621e7">minimumTxnCount_</a></td></tr>
<tr class="memdesc:a798a10fa00312ec5198ad7499ef621e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum value of txnsExpected. <br /></td></tr>
<tr class="separator:a798a10fa00312ec5198ad7499ef621e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3b01f12711a152827b28f475ab96c50" id="r_ac3b01f12711a152827b28f475ab96c50"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ_1_1FeeMetrics.html#ac3b01f12711a152827b28f475ab96c50">targetTxnCount_</a></td></tr>
<tr class="memdesc:ac3b01f12711a152827b28f475ab96c50"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classripple_1_1Number.html">Number</a> of transactions per ledger that fee escalation "works
towards". <br /></td></tr>
<tr class="separator:ac3b01f12711a152827b28f475ab96c50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac226046570492541f6d82a39bf681b3" id="r_aac226046570492541f6d82a39bf681b3"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> &gt; const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ_1_1FeeMetrics.html#aac226046570492541f6d82a39bf681b3">maximumTxnCount_</a></td></tr>
<tr class="memdesc:aac226046570492541f6d82a39bf681b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum value of txnsExpected. <br /></td></tr>
<tr class="separator:aac226046570492541f6d82a39bf681b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37f68c24e1cd38f10a3cca07fd2c50cc" id="r_a37f68c24e1cd38f10a3cca07fd2c50cc"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ_1_1FeeMetrics.html#a37f68c24e1cd38f10a3cca07fd2c50cc">txnsExpected_</a></td></tr>
<tr class="memdesc:a37f68c24e1cd38f10a3cca07fd2c50cc"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classripple_1_1Number.html">Number</a> of transactions expected per ledger. <br /></td></tr>
<tr class="separator:a37f68c24e1cd38f10a3cca07fd2c50cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace3ced272f60d6a504c2c6531aa32114" id="r_ace3ced272f60d6a504c2c6531aa32114"><td class="memItemLeft" align="right" valign="top">boost::circular_buffer&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ_1_1FeeMetrics.html#ace3ced272f60d6a504c2c6531aa32114">recentTxnCounts_</a></td></tr>
<tr class="memdesc:ace3ced272f60d6a504c2c6531aa32114"><td class="mdescLeft">&#160;</td><td class="mdescRight">Recent history of transaction counts that exceed the targetTxnCount_. <br /></td></tr>
<tr class="separator:ace3ced272f60d6a504c2c6531aa32114"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae35fe3164eba8c280411963df608b39a" id="r_ae35fe3164eba8c280411963df608b39a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceripple.html#aaaf6522d07c2b836c5fd589e9ecf578c">FeeLevel64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ_1_1FeeMetrics.html#ae35fe3164eba8c280411963df608b39a">escalationMultiplier_</a></td></tr>
<tr class="memdesc:ae35fe3164eba8c280411963df608b39a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Based on the median fee of the LCL. <br /></td></tr>
<tr class="separator:ae35fe3164eba8c280411963df608b39a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a390d21225a387987cd18e8942fc15bc5" id="r_a390d21225a387987cd18e8942fc15bc5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ_1_1FeeMetrics.html#a390d21225a387987cd18e8942fc15bc5">j_</a></td></tr>
<tr class="memdesc:a390d21225a387987cd18e8942fc15bc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Journal. <br /></td></tr>
<tr class="separator:a390d21225a387987cd18e8942fc15bc5"><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>Track and use the fee escalation metrics of the current open ledger. </p>
<p>Does the work of scaling fees as the open ledger grows. </p>
<p class="definition">Definition at line <a class="el" href="TxQ_8h_source.html#l00377">377</a> of file <a class="el" href="TxQ_8h_source.html">TxQ.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a508eeb090672a165248d6fb13748e4c1" name="a508eeb090672a165248d6fb13748e4c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a508eeb090672a165248d6fb13748e4c1">&#9670;&#160;</a></span>FeeMetrics()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ripple::TxQ::FeeMetrics::FeeMetrics </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structripple_1_1TxQ_1_1Setup.html">Setup</a> const &amp;&#160;</td>
<td class="paramname"><em>setup</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classbeast_1_1Journal.html">beast::Journal</a>&#160;</td>
<td class="paramname"><em>j</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor. </p>
<p class="definition">Definition at line <a class="el" href="TxQ_8h_source.html#l00402">402</a> of file <a class="el" href="TxQ_8h_source.html">TxQ.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ad56d92e762d13754c689e66180f7503a" name="ad56d92e762d13754c689e66180f7503a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad56d92e762d13754c689e66180f7503a">&#9670;&#160;</a></span>update()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> ripple::TxQ::FeeMetrics::update </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Application.html">Application</a> &amp;&#160;</td>
<td class="paramname"><em>app</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1ReadView.html">ReadView</a> const &amp;&#160;</td>
<td class="paramname"><em>view</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>timeLeap</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structripple_1_1TxQ_1_1Setup.html">TxQ::Setup</a> const &amp;&#160;</td>
<td class="paramname"><em>setup</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Updates fee metrics based on the transactions in the <a class="el" href="classripple_1_1ReadView.html" title="A view into a ledger.">ReadView</a> for use in fee escalation calculations. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">app</td><td>Rippled <a class="el" href="classripple_1_1Application.html">Application</a> object. </td></tr>
<tr><td class="paramname">view</td><td>View of the LCL that was just closed or received. </td></tr>
<tr><td class="paramname">timeLeap</td><td>Indicates that rippled is under load so fees should grow faster. </td></tr>
<tr><td class="paramname">setup</td><td>Customization params. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="TxQ_8cpp_source.html#l00084">84</a> of file <a class="el" href="TxQ_8cpp_source.html">TxQ.cpp</a>.</p>
</div>
</div>
<a id="aa03e54b0746f29b685222e6c6d0510a9" name="aa03e54b0746f29b685222e6c6d0510a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa03e54b0746f29b685222e6c6d0510a9">&#9670;&#160;</a></span>getSnapshot()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structripple_1_1TxQ_1_1FeeMetrics_1_1Snapshot.html">Snapshot</a> ripple::TxQ::FeeMetrics::getSnapshot </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the current <a class="el" href="structripple_1_1TxQ_1_1FeeMetrics_1_1Snapshot.html">Snapshot</a>. </p>
<p class="definition">Definition at line <a class="el" href="TxQ_8h_source.html#l00455">455</a> of file <a class="el" href="TxQ_8h_source.html">TxQ.h</a>.</p>
</div>
</div>
<a id="a5b20859e09a2a638b221bc904026ff36" name="a5b20859e09a2a638b221bc904026ff36"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5b20859e09a2a638b221bc904026ff36">&#9670;&#160;</a></span>scaleFeeLevel()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceripple.html#aaaf6522d07c2b836c5fd589e9ecf578c">FeeLevel64</a> ripple::TxQ::FeeMetrics::scaleFeeLevel </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structripple_1_1TxQ_1_1FeeMetrics_1_1Snapshot.html">Snapshot</a> const &amp;&#160;</td>
<td class="paramname"><em>snapshot</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1OpenView.html">OpenView</a> const &amp;&#160;</td>
<td class="paramname"><em>view</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Use the number of transactions in the current open ledger to compute the fee level a transaction must pay to bypass the queue. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">view</td><td>Current open ledger.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A fee level value. </dd></dl>
<p class="definition">Definition at line <a class="el" href="TxQ_8cpp_source.html#l00173">173</a> of file <a class="el" href="TxQ_8cpp_source.html">TxQ.cpp</a>.</p>
</div>
</div>
<a id="a9c6fe27399c7bd45a1f418bbb673d175" name="a9c6fe27399c7bd45a1f418bbb673d175"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c6fe27399c7bd45a1f418bbb673d175">&#9670;&#160;</a></span>escalatedSeriesFeeLevel()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; bool, <a class="el" href="namespaceripple.html#aaaf6522d07c2b836c5fd589e9ecf578c">FeeLevel64</a> &gt; ripple::TxQ::FeeMetrics::escalatedSeriesFeeLevel </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structripple_1_1TxQ_1_1FeeMetrics_1_1Snapshot.html">Snapshot</a> const &amp;&#160;</td>
<td class="paramname"><em>snapshot</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1OpenView.html">OpenView</a> const &amp;&#160;</td>
<td class="paramname"><em>view</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td>
<td class="paramname"><em>extraCount</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td>
<td class="paramname"><em>seriesSize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the total fee level for all transactions in a series. </p>
<p>Assumes that there are already more than <a class="el" href="classripple_1_1TxQ_1_1FeeMetrics.html#a37f68c24e1cd38f10a3cca07fd2c50cc">txnsExpected_</a> txns between the view and <code>extraCount</code>. If there aren't, the result will be sensible (e.g. there won't be any underflows or overflows), but the level will be higher than actually required.</p>
<dl class="section note"><dt>Note</dt><dd>A "series" is a set of transactions for the same account. In the context of this function, the series is already in the queue, and the series starts with the account's current sequence number. This function is called by <a class="el" href="classripple_1_1TxQ.html#a75d6ebd1766e4a403ea3575b950c6ba8">tryClearAccountQueueUpThruTx</a> to figure out if a newly submitted transaction is paying enough to get all of the queued transactions plus itself out of the queue and into the open ledger while accounting for the escalating fee as each one is processed. The idea is that if a series of transactions are taking too long to get out of the queue, a user can "rescue" them without having to resubmit each one with an individually higher fee.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">view</td><td>Current open / working ledger. (May be a sandbox.) </td></tr>
<tr><td class="paramname">extraCount</td><td><a class="el" href="classripple_1_1Number.html">Number</a> of additional transactions to count as in the ledger. (If <code>view</code> is a sandbox, should be the number of transactions in the parent ledger.) </td></tr>
<tr><td class="paramname">seriesSize</td><td>Total number of transactions in the series to be processed.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A <code><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a></code> indicating whether the calculation result overflows. </dd></dl>
<p class="definition">Definition at line <a class="el" href="TxQ_8cpp_source.html#l00234">234</a> of file <a class="el" href="TxQ_8cpp_source.html">TxQ.cpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a798a10fa00312ec5198ad7499ef621e7" name="a798a10fa00312ec5198ad7499ef621e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a798a10fa00312ec5198ad7499ef621e7">&#9670;&#160;</a></span>minimumTxnCount_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> const ripple::TxQ::FeeMetrics::minimumTxnCount_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Minimum value of txnsExpected. </p>
<p class="definition">Definition at line <a class="el" href="TxQ_8h_source.html#l00381">381</a> of file <a class="el" href="TxQ_8h_source.html">TxQ.h</a>.</p>
</div>
</div>
<a id="ac3b01f12711a152827b28f475ab96c50" name="ac3b01f12711a152827b28f475ab96c50"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac3b01f12711a152827b28f475ab96c50">&#9670;&#160;</a></span>targetTxnCount_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> const ripple::TxQ::FeeMetrics::targetTxnCount_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classripple_1_1Number.html">Number</a> of transactions per ledger that fee escalation "works
towards". </p>
<p class="definition">Definition at line <a class="el" href="TxQ_8h_source.html#l00384">384</a> of file <a class="el" href="TxQ_8h_source.html">TxQ.h</a>.</p>
</div>
</div>
<a id="aac226046570492541f6d82a39bf681b3" name="aac226046570492541f6d82a39bf681b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac226046570492541f6d82a39bf681b3">&#9670;&#160;</a></span>maximumTxnCount_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt;<a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&gt; const ripple::TxQ::FeeMetrics::maximumTxnCount_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Maximum value of txnsExpected. </p>
<p class="definition">Definition at line <a class="el" href="TxQ_8h_source.html#l00386">386</a> of file <a class="el" href="TxQ_8h_source.html">TxQ.h</a>.</p>
</div>
</div>
<a id="a37f68c24e1cd38f10a3cca07fd2c50cc" name="a37f68c24e1cd38f10a3cca07fd2c50cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a37f68c24e1cd38f10a3cca07fd2c50cc">&#9670;&#160;</a></span>txnsExpected_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> ripple::TxQ::FeeMetrics::txnsExpected_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classripple_1_1Number.html">Number</a> of transactions expected per ledger. </p>
<p>One more than this value will be accepted before escalation kicks in. </p>
<p class="definition">Definition at line <a class="el" href="TxQ_8h_source.html#l00390">390</a> of file <a class="el" href="TxQ_8h_source.html">TxQ.h</a>.</p>
</div>
</div>
<a id="ace3ced272f60d6a504c2c6531aa32114" name="ace3ced272f60d6a504c2c6531aa32114"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ace3ced272f60d6a504c2c6531aa32114">&#9670;&#160;</a></span>recentTxnCounts_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">boost::circular_buffer&lt;<a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&gt; ripple::TxQ::FeeMetrics::recentTxnCounts_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Recent history of transaction counts that exceed the targetTxnCount_. </p>
<p class="definition">Definition at line <a class="el" href="TxQ_8h_source.html#l00393">393</a> of file <a class="el" href="TxQ_8h_source.html">TxQ.h</a>.</p>
</div>
</div>
<a id="ae35fe3164eba8c280411963df608b39a" name="ae35fe3164eba8c280411963df608b39a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae35fe3164eba8c280411963df608b39a">&#9670;&#160;</a></span>escalationMultiplier_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceripple.html#aaaf6522d07c2b836c5fd589e9ecf578c">FeeLevel64</a> ripple::TxQ::FeeMetrics::escalationMultiplier_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Based on the median fee of the LCL. </p>
<p>Used when fee escalation kicks in. </p>
<p class="definition">Definition at line <a class="el" href="TxQ_8h_source.html#l00396">396</a> of file <a class="el" href="TxQ_8h_source.html">TxQ.h</a>.</p>
</div>
</div>
<a id="a390d21225a387987cd18e8942fc15bc5" name="a390d21225a387987cd18e8942fc15bc5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a390d21225a387987cd18e8942fc15bc5">&#9670;&#160;</a></span>j_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> const ripple::TxQ::FeeMetrics::j_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Journal. </p>
<p class="definition">Definition at line <a class="el" href="TxQ_8h_source.html#l00398">398</a> of file <a class="el" href="TxQ_8h_source.html">TxQ.h</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>