Files
rippled/classripple_1_1TxQ.html
2025-11-13 03:45:48 -08:00

1498 lines
102 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 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> </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-attribs">Static Public Attributes</a> &#124;
<a href="#pri-types">Private Types</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classripple_1_1TxQ-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">ripple::TxQ Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="classripple_1_1Transaction.html">Transaction</a> Queue.
<a href="classripple_1_1TxQ.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="TxQ_8h_source.html">TxQ.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for ripple::TxQ:</div>
<div class="dyncontent">
<div class="center"><img src="classripple_1_1TxQ__coll__graph.png" border="0" usemap="#aripple_1_1TxQ_coll__map" alt="Collaboration graph"/></div>
<map name="aripple_1_1TxQ_coll__map" id="aripple_1_1TxQ_coll__map">
<area shape="rect" title="Transaction Queue." alt="" coords="3489,741,3583,766"/>
<area shape="rect" href="classripple_1_1unit_1_1ValueUnit.html" title=" " alt="" coords="1905,939,2068,979"/>
<area shape="poly" title=" " alt="" coords="2024,929,2092,885,2185,837,2237,815,2292,797,2349,786,2406,781,3277,781,3392,774,3489,759,3490,765,3392,779,3277,787,2406,787,2350,791,2294,803,2239,820,2187,841,2095,889,2027,933"/>
<area shape="rect" href="classripple_1_1TxQ_1_1MaybeTx.html" title="Represents a transaction in the queue which may be applied later to the open ledger." alt="" coords="2327,1297,2488,1322"/>
<area shape="poly" title=" " alt="" coords="2043,983,2166,1053,2235,1101,2299,1155,2333,1192,2362,1231,2401,1295,2397,1298,2358,1234,2329,1195,2295,1159,2232,1106,2163,1058,2040,987"/>
<area shape="rect" title=" " alt="" coords="1579,811,1789,851"/>
<area shape="poly" title=" " alt="" coords="1777,852,1798,860,1882,899,1952,936,1950,941,1880,903,1796,865,1775,857"/>
<area shape="rect" title=" " alt="" coords="1585,875,1783,915"/>
<area shape="poly" title=" " alt="" coords="1793,915,1906,939,1905,944,1792,920"/>
<area shape="rect" title=" " alt="" coords="1571,939,1797,979"/>
<area shape="poly" title=" " alt="" coords="1811,956,1905,956,1905,961,1811,961"/>
<area shape="rect" title=" " alt="" coords="1582,1003,1786,1043"/>
<area shape="poly" title=" " alt="" coords="1792,997,1905,973,1906,978,1793,1002"/>
<area shape="rect" title=" " alt="" coords="1583,1067,1785,1107"/>
<area shape="poly" title=" " alt="" coords="1775,1060,1796,1052,1880,1014,1950,976,1952,981,1882,1019,1798,1057,1777,1065"/>
<area shape="rect" title=" " alt="" coords="1600,1131,1768,1186"/>
<area shape="poly" title=" " alt="" coords="1780,1125,1796,1116,1847,1083,1894,1044,1964,977,1968,981,1897,1048,1850,1087,1799,1121,1782,1130"/>
<area shape="rect" title=" " alt="" coords="1665,761,1703,786"/>
<area shape="poly" title=" " alt="" coords="1718,774,1757,781,1798,796,1852,829,1900,867,1970,937,1966,940,1896,871,1849,833,1796,801,1756,787,1717,779"/>
<area shape="rect" href="structripple_1_1TxQ_1_1Setup.html" title="Structure used to customize TxQ behavior." alt="" coords="2338,649,2477,674"/>
<area shape="poly" title=" " alt="" coords="2490,659,2685,659,3277,659,3332,660,3375,667,3416,680,3467,702,3497,719,3522,738,3519,743,3494,724,3464,706,3414,685,3374,672,3332,666,3277,664,2685,664,2490,664"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/types/size_t.html" title=" " alt="" coords="429,955,517,981"/>
<area shape="poly" title=" " alt="" coords="478,941,502,857,523,804,549,750,583,700,623,658,646,642,672,629,699,621,728,619,1988,619,2083,622,2179,629,2338,648,2337,653,2178,634,2083,627,1988,624,728,624,700,627,673,634,649,646,627,662,587,703,554,753,527,806,507,859,483,943"/>
<area shape="rect" href="classripple_1_1TxQ_1_1FeeMetrics.html" title="Track and use the fee escalation metrics of the current open ledger." alt="" coords="2321,358,2493,383"/>
<area shape="poly" title=" " alt="" coords="474,941,492,746,510,607,535,460,569,320,589,257,611,201,636,154,663,118,694,95,711,89,728,87,1988,87,2025,89,2061,96,2129,121,2194,158,2252,201,2303,247,2345,291,2399,356,2395,360,2341,294,2299,251,2248,205,2191,162,2127,126,2059,101,2024,94,1988,92,728,92,712,94,697,100,667,122,640,157,616,203,594,258,574,321,540,461,515,608,497,747,479,942"/>
<area shape="rect" href="classripple_1_1base__uint.html" title="Integers of any length that is a multiple of 32&#45;bits." alt="" coords="945,1177,1087,1217"/>
<area shape="poly" title=" " alt="" coords="508,986,570,1020,646,1052,685,1062,720,1067,781,1067,840,1071,874,1079,912,1095,940,1112,965,1134,1002,1175,998,1179,961,1137,936,1117,909,1100,872,1084,840,1076,780,1073,719,1072,684,1068,644,1057,568,1025,505,990"/>
<area shape="rect" href="classripple_1_1STTx.html" title=" " alt="" coords="1635,1262,1733,1287"/>
<area shape="poly" title=" " alt="" coords="531,962,645,957,873,953,965,955,1051,963,1136,978,1224,1002,1322,1038,1433,1087,1476,1112,1506,1137,1534,1165,1572,1197,1664,1260,1661,1264,1569,1201,1530,1169,1502,1141,1473,1116,1431,1092,1320,1043,1223,1007,1135,983,1051,968,965,960,873,958,645,963,531,967"/>
<area shape="rect" href="classripple_1_1detail_1_1STVar.html" title=" " alt="" coords="655,1373,804,1398"/>
<area shape="poly" title=" " alt="" coords="483,993,510,1093,532,1155,557,1216,592,1294,613,1324,647,1355,675,1370,672,1375,644,1360,609,1327,588,1297,552,1218,527,1157,505,1095,478,995"/>
<area shape="rect" href="classripple_1_1base__uint.html" title=" " alt="" coords="945,1033,1087,1073"/>
<area shape="poly" title=" " alt="" coords="531,974,946,1040,945,1045,530,980"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/types/integer.html" title=" " alt="" coords="422,1185,525,1210"/>
<area shape="poly" title=" " alt="" coords="525,1178,656,1131,812,1072,873,1045,934,1019,980,1006,1017,1001,1053,993,1096,975,1130,951,1153,927,1176,901,1209,874,1570,701,1638,689,1727,679,1943,667,2165,661,2338,659,2338,664,2165,666,1944,672,1727,685,1638,694,1571,707,1212,878,1179,905,1157,930,1134,955,1099,980,1055,998,1018,1006,981,1012,936,1024,875,1050,814,1077,657,1136,526,1183"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/array.html" title=" " alt="" coords="645,1177,813,1217"/>
<area shape="poly" title=" " alt="" coords="538,1195,645,1195,645,1200,538,1200"/>
<area shape="rect" href="classripple_1_1SeqProxy.html" title="A type that represents either a sequence value or a ticket value." alt="" coords="1923,1467,2051,1493"/>
<area shape="poly" title=" " alt="" coords="478,1224,482,1271,494,1329,517,1388,535,1414,556,1437,603,1466,664,1490,738,1509,822,1522,915,1532,1014,1537,1224,1538,1436,1529,1633,1515,1922,1485,1923,1491,1634,1520,1436,1535,1224,1543,1014,1542,915,1537,822,1528,737,1514,663,1495,601,1471,553,1441,531,1417,513,1390,489,1330,476,1272,472,1224"/>
<area shape="rect" href="classripple_1_1unit_1_1ValueUnit.html" title=" " alt="" coords="1905,351,2068,391"/>
<area shape="poly" title=" " alt="" coords="2082,385,2135,399,2192,419,2248,446,2299,481,2338,522,2369,570,2391,614,2404,648,2399,649,2386,617,2364,572,2334,526,2296,485,2245,451,2190,424,2133,404,2081,390"/>
<area shape="poly" title=" " alt="" coords="2082,368,2321,368,2321,373,2082,373"/>
<area shape="rect" title=" " alt="" coords="1592,127,1776,182"/>
<area shape="poly" title=" " alt="" coords="1787,186,1799,192,1852,231,1901,274,1971,349,1967,352,1897,278,1849,235,1796,197,1784,190"/>
<area shape="rect" title=" " alt="" coords="1585,207,1783,247"/>
<area shape="poly" title=" " alt="" coords="1779,249,1798,256,1887,303,1958,348,1955,353,1885,307,1796,261,1777,254"/>
<area shape="rect" title=" " alt="" coords="1583,271,1785,326"/>
<area shape="poly" title=" " alt="" coords="1800,323,1906,349,1904,354,1798,329"/>
<area shape="rect" title=" " alt="" coords="1582,351,1786,391"/>
<area shape="poly" title=" " alt="" coords="1799,368,1905,368,1905,373,1799,373"/>
<area shape="rect" title=" " alt="" coords="1583,415,1785,455"/>
<area shape="poly" title=" " alt="" coords="1792,409,1905,385,1906,390,1793,414"/>
<area shape="rect" title=" " alt="" coords="1592,479,1776,534"/>
<area shape="poly" title=" " alt="" coords="1777,472,1796,464,1878,425,1948,388,1951,393,1881,430,1798,469,1779,477"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/utility/optional.html" title=" " alt="" coords="1917,1151,2056,1191"/>
<area shape="poly" title=" " alt="" coords="2070,1181,2135,1189,2202,1192,2259,1188,2281,1182,2295,1173,2301,1163,2305,1145,2310,1092,2310,942,2308,790,2311,734,2319,701,2336,684,2357,672,2360,676,2340,688,2324,704,2316,734,2313,790,2315,942,2316,1092,2311,1146,2306,1165,2299,1177,2283,1187,2260,1193,2202,1197,2135,1194,2070,1187"/>
<area shape="poly" title=" " alt="" coords="2062,1194,2077,1200,2101,1215,2155,1228,2199,1231,2243,1233,2298,1245,2349,1269,2390,1294,2387,1299,2346,1274,2296,1251,2242,1238,2198,1236,2154,1234,2099,1220,2075,1205,2060,1198"/>
<area shape="rect" href="classbeast_1_1Journal.html" title="A generic endpoint for log messages." alt="" coords="1931,558,2042,583"/>
<area shape="poly" title=" " alt="" coords="2056,570,2406,577,3277,577,3336,584,3380,602,3420,630,3467,669,3503,705,3528,738,3524,742,3499,708,3464,673,3416,635,3377,606,3335,589,3277,583,2406,583,2056,576"/>
<area shape="poly" title=" " alt="" coords="2055,564,2110,557,2172,544,2236,524,2296,495,2330,469,2359,437,2397,382,2401,385,2363,441,2333,473,2299,500,2238,529,2174,549,2111,562,2056,569"/>
<area shape="rect" href="classbeast_1_1Journal_1_1Sink.html" title="Abstraction for the underlying message destination." alt="" coords="1611,558,1757,583"/>
<area shape="poly" title=" " alt="" coords="1771,568,1931,568,1931,573,1771,573"/>
<area shape="poly" title=" " alt="" coords="2452,386,2499,403,2557,420,2620,433,2685,439,3277,439,3312,441,3341,447,3365,457,3387,470,3426,508,3468,560,3497,607,3517,659,3529,706,3536,740,3530,741,3524,707,3512,660,3492,610,3463,563,3422,512,3384,474,3363,461,3339,452,3311,446,3277,444,2685,444,2619,439,2555,425,2497,408,2450,391"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/utility/optional.html" title=" " alt="" coords="1917,12,2056,52"/>
<area shape="poly" title=" " alt="" coords="2070,18,2125,16,2186,22,2245,38,2273,51,2299,69,2331,101,2356,139,2375,181,2389,224,2404,303,2408,358,2403,358,2399,304,2384,225,2370,183,2352,142,2327,104,2296,73,2271,56,2244,43,2185,27,2125,22,2070,23"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/map.html" title=" " alt="" coords="3194,821,3358,861"/>
<area shape="poly" title=" " alt="" coords="3371,838,3419,830,3464,815,3498,791,3523,764,3527,768,3502,795,3467,820,3420,835,3372,843"/>
<area shape="poly" title=" " alt="" coords="1055,1167,1220,1042,1430,874,1497,806,1536,769,1569,746,1609,730,1643,720,1704,714,1846,720,3277,720,3392,728,3490,742,3489,747,3392,733,3277,725,1846,725,1704,719,1644,726,1611,735,1572,750,1539,773,1501,810,1434,878,1223,1047,1058,1171"/>
<area shape="poly" title=" " alt="" coords="1045,1226,1075,1259,1115,1295,1161,1330,1212,1358,1271,1378,1320,1387,1370,1393,1433,1407,1496,1427,1549,1449,1638,1492,1680,1510,1727,1525,1781,1535,1846,1539,2988,1539,3188,872,3204,859,3207,864,3193,875,2991,1543,1846,1544,1780,1540,1725,1530,1678,1515,1635,1497,1547,1454,1494,1432,1431,1412,1369,1399,1319,1392,1270,1383,1210,1362,1158,1335,1111,1299,1071,1262,1041,1230"/>
<area shape="rect" href="classripple_1_1TxQ_1_1TxQAccount.html" title="Used to represent an account to the queue, and stores the transactions queued for that account by Seq..." alt="" coords="2899,1081,3077,1106"/>
<area shape="poly" title=" " alt="" coords="1100,1185,1211,1176,1321,1172,1432,1176,1536,1190,1617,1207,1656,1212,1697,1213,1743,1208,1797,1196,1826,1184,1846,1168,1867,1151,1896,1136,1952,1120,1997,1114,2100,1109,2325,1097,2549,1090,2898,1089,2898,1095,2549,1096,2325,1102,2100,1115,1997,1119,1953,1125,1898,1141,1870,1156,1849,1172,1829,1188,1798,1201,1744,1213,1697,1218,1655,1217,1616,1212,1535,1195,1432,1181,1321,1177,1211,1181,1100,1190"/>
<area shape="poly" title=" " alt="" coords="1057,1223,1127,1267,1169,1287,1212,1304,1290,1326,1371,1344,1454,1358,1537,1367,1704,1376,1865,1374,2015,1364,2148,1350,2343,1319,2344,1325,2149,1355,2015,1370,1865,1380,1704,1381,1537,1372,1453,1363,1370,1349,1289,1332,1210,1309,1166,1292,1124,1271,1054,1228"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/vector.html" title=" " alt="" coords="1250,1255,1393,1295"/>
<area shape="poly" title=" " alt="" coords="1100,1216,1250,1254,1249,1259,1099,1221"/>
<area shape="poly" title=" " alt="" coords="827,1195,945,1195,945,1200,827,1200"/>
<area shape="poly" title=" " alt="" coords="786,1169,812,1156,976,1071,979,1076,815,1161,788,1174"/>
<area shape="poly" title=" " alt="" coords="3003,1068,3034,1026,3077,974,3130,919,3189,871,3211,859,3213,864,3192,876,3133,923,3081,977,3038,1030,3008,1071"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/map.html" title=" " alt="" coords="2607,1289,2765,1329"/>
<area shape="poly" title=" " alt="" coords="2725,1279,2968,1104,2971,1108,2728,1283"/>
<area shape="poly" title=" " alt="" coords="2064,1479,2175,1475,2237,1469,2297,1459,2397,1431,2495,1395,2580,1358,2645,1327,2647,1332,2582,1363,2497,1400,2399,1436,2298,1464,2237,1474,2175,1481,2065,1485"/>
<area shape="poly" title=" " alt="" coords="2064,1467,2296,1435,2331,1409,2360,1378,2397,1321,2402,1324,2364,1381,2334,1413,2298,1440,2065,1472"/>
<area shape="poly" title=" " alt="" coords="2502,1307,2606,1307,2606,1312,2502,1312"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html" title=" " alt="" coords="1901,1215,2072,1255"/>
<area shape="poly" title=" " alt="" coords="2078,1255,2100,1260,2327,1295,2326,1300,2100,1265,2077,1261"/>
<area shape="poly" title=" " alt="" coords="1746,1264,1901,1243,1901,1249,1747,1269"/>
<area shape="rect" href="classripple_1_1STObject.html" title=" " alt="" coords="1259,1421,1384,1446"/>
<area shape="poly" title=" " alt="" coords="1355,1411,1450,1359,1570,1304,1634,1284,1635,1289,1572,1309,1453,1364,1358,1416"/>
<area shape="rect" href="classripple_1_1STBase.html" title="A type which can be exported to a well known binary format." alt="" coords="416,1445,531,1470"/>
<area shape="poly" title=" " alt="" coords="545,1464,652,1475,789,1484,943,1487,1097,1479,1192,1463,1274,1443,1275,1449,1193,1468,1098,1484,943,1493,789,1490,651,1480,544,1469"/>
<area shape="poly" title=" " alt="" coords="532,1438,683,1395,684,1401,533,1443"/>
<area shape="rect" href="classripple_1_1SField.html" title="Identifies fields." alt="" coords="212,1445,319,1470"/>
<area shape="poly" title=" " alt="" coords="333,1455,416,1455,416,1460,333,1460"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/string/basic_string.html" title=" " alt="" coords="5,1445,92,1470"/>
<area shape="poly" title=" " alt="" coords="106,1455,212,1455,212,1460,106,1460"/>
<area shape="rect" href="classripple_1_1CountedObject.html" title=" " alt="" coords="935,1429,1097,1469"/>
<area shape="poly" title=" " alt="" coords="1111,1452,1121,1452,1186,1452,1258,1443,1259,1448,1187,1457,1121,1457,1111,1457"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/vector.html" title=" " alt="" coords="945,1365,1087,1405"/>
<area shape="poly" title=" " alt="" coords="1082,1408,1098,1415,1122,1425,1192,1435,1258,1435,1258,1440,1192,1440,1121,1431,1096,1420,1080,1413"/>
<area shape="poly" title=" " alt="" coords="818,1383,944,1383,944,1388,818,1388"/>
<area shape="rect" href="classripple_1_1SOTemplate.html" title="Defines the fields and their attributes within a STObject." alt="" coords="943,1315,1089,1341"/>
<area shape="poly" title=" " alt="" coords="1086,1344,1099,1351,1111,1366,1123,1381,1155,1398,1190,1410,1259,1425,1258,1430,1189,1415,1153,1402,1120,1385,1107,1370,1096,1355,1084,1348"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/vector.html" title=" " alt="" coords="658,1255,801,1295"/>
<area shape="poly" title=" " alt="" coords="815,1288,947,1313,946,1318,814,1293"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/vector.html" title=" " alt="" coords="660,1319,799,1345"/>
<area shape="poly" title=" " alt="" coords="812,1328,943,1326,943,1332,812,1334"/>
<area shape="rect" href="classripple_1_1CountedObject.html" title=" " alt="" coords="1240,1191,1403,1231"/>
<area shape="poly" title=" " alt="" coords="1417,1225,1635,1263,1634,1269,1416,1230"/>
<area shape="poly" title=" " alt="" coords="1101,1074,1255,1119,1433,1176,1555,1221,1653,1259,1651,1264,1553,1226,1431,1181,1254,1124,1099,1079"/>
<area shape="poly" title=" " alt="" coords="1407,1272,1634,1272,1634,1277,1407,1277"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/utility/optional.html" title=" " alt="" coords="1909,1279,2064,1319"/>
<area shape="poly" title=" " alt="" coords="2078,1304,2100,1305,2326,1308,2326,1313,2100,1311,2078,1309"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/utility/optional.html" title=" " alt="" coords="1897,1393,2076,1433"/>
<area shape="poly" title=" " alt="" coords="2090,1417,2192,1411,2245,1402,2296,1387,2325,1373,2351,1355,2392,1320,2395,1324,2355,1359,2328,1378,2298,1392,2246,1407,2192,1416,2090,1422"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/utility/optional.html" title=" " alt="" coords="3191,886,3361,911"/>
<area shape="poly" title=" " alt="" coords="3374,891,3421,879,3464,858,3487,837,3505,811,3528,765,3533,767,3510,814,3491,840,3467,862,3423,884,3376,896"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/thread/mutex.html" title=" " alt="" coords="3230,935,3322,961"/>
<area shape="poly" title=" " alt="" coords="3336,948,3368,945,3401,939,3434,928,3464,910,3480,894,3493,876,3513,835,3525,796,3530,766,3536,767,3530,797,3518,837,3498,879,3484,898,3467,914,3437,932,3403,944,3368,951,3336,953"/>
</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_1FeeAndSeq.html">FeeAndSeq</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ_1_1FeeMetrics.html">FeeMetrics</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Track and use the fee escalation metrics of the current open ledger. <a href="classripple_1_1TxQ_1_1FeeMetrics.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ_1_1MaybeTx.html">MaybeTx</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents a transaction in the queue which may be applied later to the open ledger. <a href="classripple_1_1TxQ_1_1MaybeTx.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</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_1Metrics.html">Metrics</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure returned by <a class="el" href="classripple_1_1TxQ.html#a2a08d6cdb1e6700a24dc0f71eb3ef7ed">TxQ::getMetrics</a>, expressed in reference fee level units. <a href="structripple_1_1TxQ_1_1Metrics.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ_1_1OrderCandidates.html">OrderCandidates</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used for sorting <a class="el" href="classripple_1_1TxQ_1_1MaybeTx.html">MaybeTx</a>. <a href="classripple_1_1TxQ_1_1OrderCandidates.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</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_1Setup.html">Setup</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure used to customize <a class="el" href="classripple_1_1TxQ.html">TxQ</a> behavior. <a href="structripple_1_1TxQ_1_1Setup.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</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_1TxDetails.html">TxDetails</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure that describes a transaction in the queue waiting to be applied to the current open ledger. <a href="structripple_1_1TxQ_1_1TxDetails.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ_1_1TxQAccount.html">TxQAccount</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to represent an account to the queue, and stores the transactions queued for that account by <a class="el" href="classripple_1_1SeqProxy.html" title="A type that represents either a sequence value or a ticket value.">SeqProxy</a>. <a href="classripple_1_1TxQ_1_1TxQAccount.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:aac2f17011c010d71a7ad4596f2b9ead9" id="r_aac2f17011c010d71a7ad4596f2b9ead9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#aac2f17011c010d71a7ad4596f2b9ead9">TxQ</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:aac2f17011c010d71a7ad4596f2b9ead9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br /></td></tr>
<tr class="separator:aac2f17011c010d71a7ad4596f2b9ead9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a958da208f16e7851992bdb05d3573314" id="r_a958da208f16e7851992bdb05d3573314"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#a958da208f16e7851992bdb05d3573314">~TxQ</a> ()</td></tr>
<tr class="memdesc:a958da208f16e7851992bdb05d3573314"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:a958da208f16e7851992bdb05d3573314"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbf88039641b9d66b38141407118f79e" id="r_afbf88039641b9d66b38141407118f79e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structripple_1_1ApplyResult.html">ApplyResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#afbf88039641b9d66b38141407118f79e">apply</a> (<a class="el" href="classripple_1_1Application.html">Application</a> &amp;app, <a class="el" href="classripple_1_1OpenView.html">OpenView</a> &amp;view, <a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1STTx.html">STTx</a> const &gt; const &amp;tx, <a class="el" href="namespaceripple.html#ad2487abbcc1a5d6064b72144b461df6e">ApplyFlags</a> flags, <a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> j)</td></tr>
<tr class="memdesc:afbf88039641b9d66b38141407118f79e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a new transaction to the open ledger, hold it in the queue, or reject it. <br /></td></tr>
<tr class="separator:afbf88039641b9d66b38141407118f79e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac83649e59014572a908ab144bef86bb2" id="r_ac83649e59014572a908ab144bef86bb2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#ac83649e59014572a908ab144bef86bb2">accept</a> (<a class="el" href="classripple_1_1Application.html">Application</a> &amp;app, <a class="el" href="classripple_1_1OpenView.html">OpenView</a> &amp;view)</td></tr>
<tr class="memdesc:ac83649e59014572a908ab144bef86bb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fill the new open ledger with transactions from the queue. <br /></td></tr>
<tr class="separator:ac83649e59014572a908ab144bef86bb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae051f3309f81253bb7a50db48060cc18" id="r_ae051f3309f81253bb7a50db48060cc18"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#ae051f3309f81253bb7a50db48060cc18">processClosedLedger</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)</td></tr>
<tr class="memdesc:ae051f3309f81253bb7a50db48060cc18"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update fee metrics and clean up the queue in preparation for the next ledger. <br /></td></tr>
<tr class="separator:ae051f3309f81253bb7a50db48060cc18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bffe9eec3a97e1b5bc209e0edf17fda" id="r_a5bffe9eec3a97e1b5bc209e0edf17fda"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1SeqProxy.html">SeqProxy</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#a5bffe9eec3a97e1b5bc209e0edf17fda">nextQueuableSeq</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="namespaceripple.html#abbba3966df1925ac76f6d04c0aa1abe3">SLE</a> const &gt; const &amp;sleAccount) const</td></tr>
<tr class="memdesc:a5bffe9eec3a97e1b5bc209e0edf17fda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the next sequence that would go in the <a class="el" href="classripple_1_1TxQ.html" title="Transaction Queue.">TxQ</a> for an account. <br /></td></tr>
<tr class="separator:a5bffe9eec3a97e1b5bc209e0edf17fda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a08d6cdb1e6700a24dc0f71eb3ef7ed" id="r_a2a08d6cdb1e6700a24dc0f71eb3ef7ed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structripple_1_1TxQ_1_1Metrics.html">Metrics</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#a2a08d6cdb1e6700a24dc0f71eb3ef7ed">getMetrics</a> (<a class="el" href="classripple_1_1OpenView.html">OpenView</a> const &amp;view) const</td></tr>
<tr class="memdesc:a2a08d6cdb1e6700a24dc0f71eb3ef7ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns fee metrics in reference fee level units. <br /></td></tr>
<tr class="separator:a2a08d6cdb1e6700a24dc0f71eb3ef7ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e92bb1200c6c66313cfc9fc3ac2955d" id="r_a8e92bb1200c6c66313cfc9fc3ac2955d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structripple_1_1TxQ_1_1FeeAndSeq.html">FeeAndSeq</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#a8e92bb1200c6c66313cfc9fc3ac2955d">getTxRequiredFeeAndSeq</a> (<a class="el" href="classripple_1_1OpenView.html">OpenView</a> const &amp;view, <a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1STTx.html">STTx</a> const &gt; const &amp;tx) const</td></tr>
<tr class="memdesc:a8e92bb1200c6c66313cfc9fc3ac2955d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns minimum required fee for tx and two sequences: first valid sequence for this account in current ledger and first available sequence for transaction. <br /></td></tr>
<tr class="separator:a8e92bb1200c6c66313cfc9fc3ac2955d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a459d2ac82dc4e7e5672db06df4618a96" id="r_a459d2ac82dc4e7e5672db06df4618a96"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="structripple_1_1TxQ_1_1TxDetails.html">TxDetails</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#a459d2ac82dc4e7e5672db06df4618a96">getAccountTxs</a> (<a class="el" href="namespaceripple.html#a00ae0d729cb3e35b6bcac9a27ebb5284">AccountID</a> const &amp;account) const</td></tr>
<tr class="memdesc:a459d2ac82dc4e7e5672db06df4618a96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns information about the transactions currently in the queue for the account. <br /></td></tr>
<tr class="separator:a459d2ac82dc4e7e5672db06df4618a96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d767ce3cbba060040b2d3179db347c6" id="r_a0d767ce3cbba060040b2d3179db347c6"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="structripple_1_1TxQ_1_1TxDetails.html">TxDetails</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#a0d767ce3cbba060040b2d3179db347c6">getTxs</a> () const</td></tr>
<tr class="memdesc:a0d767ce3cbba060040b2d3179db347c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns information about all transactions currently in the queue. <br /></td></tr>
<tr class="separator:a0d767ce3cbba060040b2d3179db347c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b317467ac5be2a28c278cc60190261b" id="r_a2b317467ac5be2a28c278cc60190261b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classJson_1_1Value.html">Json::Value</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#a2b317467ac5be2a28c278cc60190261b">doRPC</a> (<a class="el" href="classripple_1_1Application.html">Application</a> &amp;app) const</td></tr>
<tr class="memdesc:a2b317467ac5be2a28c278cc60190261b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Summarize current fee metrics for the <code>fee</code> <a class="el" href="namespaceripple_1_1RPC.html" title="API version numbers used in later API versions.">RPC</a> command. <br /></td></tr>
<tr class="separator:a2b317467ac5be2a28c278cc60190261b"><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-attribs" name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:acfc1afed59fb7f9d2404f479d7cbeef6" id="r_acfc1afed59fb7f9d2404f479d7cbeef6"><td class="memItemLeft" align="right" valign="top">static constexpr <a class="el" href="namespaceripple.html#aaaf6522d07c2b836c5fd589e9ecf578c">FeeLevel64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#acfc1afed59fb7f9d2404f479d7cbeef6">baseLevel</a> {256}</td></tr>
<tr class="memdesc:acfc1afed59fb7f9d2404f479d7cbeef6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fee level for single-signed reference transaction. <br /></td></tr>
<tr class="separator:acfc1afed59fb7f9d2404f479d7cbeef6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-types" name="pri-types"></a>
Private Types</h2></td></tr>
<tr class="memitem:a6bb6f93b4d95b63dfc55fae4246b38b8" id="r_a6bb6f93b4d95b63dfc55fae4246b38b8"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#a6bb6f93b4d95b63dfc55fae4246b38b8">FeeHook</a> = boost::intrusive::member_hook&lt; <a class="el" href="classripple_1_1TxQ_1_1MaybeTx.html">MaybeTx</a>, boost::intrusive::set_member_hook&lt;&gt;, &amp;<a class="el" href="classripple_1_1TxQ_1_1MaybeTx.html#a4bf9e0ab6525122a6cd2d16270ada692">MaybeTx::byFeeListHook</a> &gt;</td></tr>
<tr class="separator:a6bb6f93b4d95b63dfc55fae4246b38b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ce340269d77d8ef2d85513d9545c815" id="r_a0ce340269d77d8ef2d85513d9545c815"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#a0ce340269d77d8ef2d85513d9545c815">FeeMultiSet</a> = boost::intrusive::multiset&lt; <a class="el" href="classripple_1_1TxQ_1_1MaybeTx.html">MaybeTx</a>, <a class="el" href="classripple_1_1TxQ.html#a6bb6f93b4d95b63dfc55fae4246b38b8">FeeHook</a>, boost::intrusive::compare&lt; <a class="el" href="classripple_1_1TxQ_1_1OrderCandidates.html">OrderCandidates</a> &gt; &gt;</td></tr>
<tr class="separator:a0ce340269d77d8ef2d85513d9545c815"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ccee3a88bdb094c8eb33a9fbe436c8d" id="r_a5ccee3a88bdb094c8eb33a9fbe436c8d"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#a5ccee3a88bdb094c8eb33a9fbe436c8d">AccountMap</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a>&lt; <a class="el" href="namespaceripple.html#a00ae0d729cb3e35b6bcac9a27ebb5284">AccountID</a>, <a class="el" href="classripple_1_1TxQ_1_1TxQAccount.html">TxQAccount</a> &gt;</td></tr>
<tr class="separator:a5ccee3a88bdb094c8eb33a9fbe436c8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-methods" name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:a7301e8d3c70f9fcf3b2361b6a07479f9" id="r_a7301e8d3c70f9fcf3b2361b6a07479f9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1SeqProxy.html">SeqProxy</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#a7301e8d3c70f9fcf3b2361b6a07479f9">nextQueuableSeqImpl</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="namespaceripple.html#abbba3966df1925ac76f6d04c0aa1abe3">SLE</a> const &gt; const &amp;sleAccount, <a class="elRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a> &gt; const &amp;) const</td></tr>
<tr class="separator:a7301e8d3c70f9fcf3b2361b6a07479f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a959646175ed7eb636de9a994566322e1" id="r_a959646175ed7eb636de9a994566322e1"><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.html#a959646175ed7eb636de9a994566322e1">getRequiredFeeLevel</a> (<a class="el" href="classripple_1_1OpenView.html">OpenView</a> &amp;view, <a class="el" href="namespaceripple.html#ad2487abbcc1a5d6064b72144b461df6e">ApplyFlags</a> flags, <a class="el" href="structripple_1_1TxQ_1_1FeeMetrics_1_1Snapshot.html">FeeMetrics::Snapshot</a> const &amp;metricsSnapshot, <a class="elRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a> &gt; const &amp;lock) const</td></tr>
<tr class="separator:a959646175ed7eb636de9a994566322e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af556f186cef2a05acf55b3f33ed968c3" id="r_af556f186cef2a05acf55b3f33ed968c3"><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="el" href="structripple_1_1ApplyResult.html">ApplyResult</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#af556f186cef2a05acf55b3f33ed968c3">tryDirectApply</a> (<a class="el" href="classripple_1_1Application.html">Application</a> &amp;app, <a class="el" href="classripple_1_1OpenView.html">OpenView</a> &amp;view, <a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1STTx.html">STTx</a> const &gt; const &amp;tx, <a class="el" href="namespaceripple.html#ad2487abbcc1a5d6064b72144b461df6e">ApplyFlags</a> flags, <a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> j)</td></tr>
<tr class="separator:af556f186cef2a05acf55b3f33ed968c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f41196cdd90099a9fcc8852d1bdaff4" id="r_a0f41196cdd90099a9fcc8852d1bdaff4"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; TxQAccount::TxMap::iterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#a0f41196cdd90099a9fcc8852d1bdaff4">removeFromByFee</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; TxQAccount::TxMap::iterator &gt; const &amp;replacedTxIter, <a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1STTx.html">STTx</a> const &gt; const &amp;tx)</td></tr>
<tr class="separator:a0f41196cdd90099a9fcc8852d1bdaff4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89e49f3807e98e4e98b2b1a4e2d08a63" id="r_a89e49f3807e98e4e98b2b1a4e2d08a63"><td class="memTemplParams" colspan="2">template&lt;size_t fillPercentage = 100&gt; </td></tr>
<tr class="memitem:a89e49f3807e98e4e98b2b1a4e2d08a63"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#a89e49f3807e98e4e98b2b1a4e2d08a63">isFull</a> () const</td></tr>
<tr class="memdesc:a89e49f3807e98e4e98b2b1a4e2d08a63"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the queue at least <code>fillPercentage</code> full? <br /></td></tr>
<tr class="separator:a89e49f3807e98e4e98b2b1a4e2d08a63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5809a0ba90f44da94b1b9f73f5247434" id="r_a5809a0ba90f44da94b1b9f73f5247434"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceripple.html#adfb760bc3e4ccb79d5d4f6ecff2f1817">TER</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#a5809a0ba90f44da94b1b9f73f5247434">canBeHeld</a> (<a class="el" href="classripple_1_1STTx.html">STTx</a> const &amp;, <a class="el" href="namespaceripple.html#ad2487abbcc1a5d6064b72144b461df6e">ApplyFlags</a> const, <a class="el" href="classripple_1_1OpenView.html">OpenView</a> const &amp;, <a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="namespaceripple.html#abbba3966df1925ac76f6d04c0aa1abe3">SLE</a> const &gt; const &amp;sleAccount, AccountMap::iterator const &amp;, <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; TxQAccount::TxMap::iterator &gt; const &amp;, <a class="elRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a> &gt; const &amp;lock)</td></tr>
<tr class="memdesc:a5809a0ba90f44da94b1b9f73f5247434"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the indicated transaction fits the conditions for being stored in the queue. <br /></td></tr>
<tr class="separator:a5809a0ba90f44da94b1b9f73f5247434"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26b6671b2ff3fc348a8d5736e9b4e9a0" id="r_a26b6671b2ff3fc348a8d5736e9b4e9a0"><td class="memItemLeft" align="right" valign="top">FeeMultiSet::iterator_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#a26b6671b2ff3fc348a8d5736e9b4e9a0">erase</a> (FeeMultiSet::const_iterator_type)</td></tr>
<tr class="memdesc:a26b6671b2ff3fc348a8d5736e9b4e9a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erase and return the next entry in byFee_ (lower fee level) <br /></td></tr>
<tr class="separator:a26b6671b2ff3fc348a8d5736e9b4e9a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ea9199acfabad1943a622e02a76646a" id="r_a8ea9199acfabad1943a622e02a76646a"><td class="memItemLeft" align="right" valign="top">FeeMultiSet::iterator_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#a8ea9199acfabad1943a622e02a76646a">eraseAndAdvance</a> (FeeMultiSet::const_iterator_type)</td></tr>
<tr class="memdesc:a8ea9199acfabad1943a622e02a76646a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erase and return the next entry for the account (if fee level is higher), or next entry in byFee_ (lower fee level). <br /></td></tr>
<tr class="separator:a8ea9199acfabad1943a622e02a76646a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab26994acdf0d62fc2bd0a40cb2ba08ac" id="r_ab26994acdf0d62fc2bd0a40cb2ba08ac"><td class="memItemLeft" align="right" valign="top">TxQAccount::TxMap::iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#ab26994acdf0d62fc2bd0a40cb2ba08ac">erase</a> (<a class="el" href="classripple_1_1TxQ_1_1TxQAccount.html">TxQAccount</a> &amp;txQAccount, TxQAccount::TxMap::const_iterator begin, TxQAccount::TxMap::const_iterator end)</td></tr>
<tr class="memdesc:ab26994acdf0d62fc2bd0a40cb2ba08ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erase a range of items, based on <a class="el" href="classripple_1_1TxQ_1_1TxQAccount.html#ae79c60b82b9d9984281eaf667a8b3ce5">TxQAccount::TxMap</a> iterators. <br /></td></tr>
<tr class="separator:ab26994acdf0d62fc2bd0a40cb2ba08ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75d6ebd1766e4a403ea3575b950c6ba8" id="r_a75d6ebd1766e4a403ea3575b950c6ba8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structripple_1_1ApplyResult.html">ApplyResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#a75d6ebd1766e4a403ea3575b950c6ba8">tryClearAccountQueueUpThruTx</a> (<a class="el" href="classripple_1_1Application.html">Application</a> &amp;app, <a class="el" href="classripple_1_1OpenView.html">OpenView</a> &amp;view, <a class="el" href="classripple_1_1STTx.html">STTx</a> const &amp;tx, AccountMap::iterator const &amp;accountIter, TxQAccount::TxMap::iterator, <a class="el" href="namespaceripple.html#aaaf6522d07c2b836c5fd589e9ecf578c">FeeLevel64</a> feeLevelPaid, <a class="el" href="structripple_1_1PreflightResult.html">PreflightResult</a> const &amp;pfresult, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> const txExtraCount, <a class="el" href="namespaceripple.html#ad2487abbcc1a5d6064b72144b461df6e">ApplyFlags</a> flags, <a class="el" href="structripple_1_1TxQ_1_1FeeMetrics_1_1Snapshot.html">FeeMetrics::Snapshot</a> const &amp;metricsSnapshot, <a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> j)</td></tr>
<tr class="memdesc:a75d6ebd1766e4a403ea3575b950c6ba8"><td class="mdescLeft">&#160;</td><td class="mdescRight">All-or-nothing attempt to try to apply the queued txs for <code>accountIter</code> up to and including <code>tx</code>. <br /></td></tr>
<tr class="separator:a75d6ebd1766e4a403ea3575b950c6ba8"><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:ad474e51bf3d5f570f630eaafb87814f4" id="r_ad474e51bf3d5f570f630eaafb87814f4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structripple_1_1TxQ_1_1Setup.html">Setup</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#ad474e51bf3d5f570f630eaafb87814f4">setup_</a></td></tr>
<tr class="memdesc:ad474e51bf3d5f570f630eaafb87814f4"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="structripple_1_1TxQ_1_1Setup.html" title="Structure used to customize TxQ behavior.">Setup</a> parameters used to control the behavior of the queue. <br /></td></tr>
<tr class="separator:ad474e51bf3d5f570f630eaafb87814f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a558ec7e0156901c0af925b5acb026b3b" id="r_a558ec7e0156901c0af925b5acb026b3b"><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.html#a558ec7e0156901c0af925b5acb026b3b">j_</a></td></tr>
<tr class="memdesc:a558ec7e0156901c0af925b5acb026b3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Journal. <br /></td></tr>
<tr class="separator:a558ec7e0156901c0af925b5acb026b3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a937b5c79cd012b25e31442e7390e5df5" id="r_a937b5c79cd012b25e31442e7390e5df5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1TxQ_1_1FeeMetrics.html">FeeMetrics</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#a937b5c79cd012b25e31442e7390e5df5">feeMetrics_</a></td></tr>
<tr class="memdesc:a937b5c79cd012b25e31442e7390e5df5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tracks the current state of the queue. <br /></td></tr>
<tr class="separator:a937b5c79cd012b25e31442e7390e5df5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a26f78ddb330368dea5c95a9bf8d218" id="r_a3a26f78ddb330368dea5c95a9bf8d218"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1TxQ.html#a0ce340269d77d8ef2d85513d9545c815">FeeMultiSet</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#a3a26f78ddb330368dea5c95a9bf8d218">byFee_</a></td></tr>
<tr class="memdesc:a3a26f78ddb330368dea5c95a9bf8d218"><td class="mdescLeft">&#160;</td><td class="mdescRight">The queue itself: the collection of transactions ordered by fee level. <br /></td></tr>
<tr class="separator:a3a26f78ddb330368dea5c95a9bf8d218"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ab1707fecc84164c74360094d1bc03d" id="r_a6ab1707fecc84164c74360094d1bc03d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1TxQ.html#a5ccee3a88bdb094c8eb33a9fbe436c8d">AccountMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#a6ab1707fecc84164c74360094d1bc03d">byAccount_</a></td></tr>
<tr class="memdesc:a6ab1707fecc84164c74360094d1bc03d"><td class="mdescLeft">&#160;</td><td class="mdescRight">All of the accounts which currently have any transactions in the queue. <br /></td></tr>
<tr class="separator:a6ab1707fecc84164c74360094d1bc03d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21c99b49f8d49b48488d8388ad53f747" id="r_a21c99b49f8d49b48488d8388ad53f747"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; size_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#a21c99b49f8d49b48488d8388ad53f747">maxSize_</a></td></tr>
<tr class="memdesc:a21c99b49f8d49b48488d8388ad53f747"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of transactions allowed in the queue based on the current metrics. <br /></td></tr>
<tr class="separator:a21c99b49f8d49b48488d8388ad53f747"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71a301b0a48137d7121dda3b66db2fb5" id="r_a71a301b0a48137d7121dda3b66db2fb5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceripple.html#af5a72d3e0d9b6913c13f688390b90796">LedgerHash</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#a71a301b0a48137d7121dda3b66db2fb5">parentHash_</a> {beast::zero}</td></tr>
<tr class="memdesc:a71a301b0a48137d7121dda3b66db2fb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">parentHash_ used for logging only <br /></td></tr>
<tr class="separator:a71a301b0a48137d7121dda3b66db2fb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63a8817d4a8b421e026e1454c4ba4646" id="r_a63a8817d4a8b421e026e1454c4ba4646"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1TxQ.html#a63a8817d4a8b421e026e1454c4ba4646">mutex_</a></td></tr>
<tr class="memdesc:a63a8817d4a8b421e026e1454c4ba4646"><td class="mdescLeft">&#160;</td><td class="mdescRight">Most queue operations are done under the master lock, but use this mutex for the <a class="el" href="namespaceripple_1_1RPC.html" title="API version numbers used in later API versions.">RPC</a> "fee" command, which isn't. <br /></td></tr>
<tr class="separator:a63a8817d4a8b421e026e1454c4ba4646"><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 class="el" href="classripple_1_1Transaction.html">Transaction</a> Queue. </p>
<p>Used to manage transactions in conjunction with fee escalation.</p>
<p>Once enough transactions are added to the open ledger, the required fee will jump dramatically. If additional transactions are added, the fee will grow exponentially from there.</p>
<p>Transactions that don't have a high enough fee to be applied to the ledger are added to the queue in order from highest fee level to lowest. Whenever a new ledger is accepted as validated, transactions are first applied from the queue to the open ledger in fee level order until either all transactions are applied or the fee again jumps too high for the remaining transactions.</p>
<p>For further information and a high-level overview of how transactions are processed with the <code><a class="el" href="classripple_1_1TxQ.html" title="Transaction Queue.">TxQ</a></code>, see FeeEscalation.md </p>
<p class="definition">Definition at line <a class="el" href="TxQ_8h_source.html#l00041">41</a> of file <a class="el" href="TxQ_8h_source.html">TxQ.h</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="a6bb6f93b4d95b63dfc55fae4246b38b8" name="a6bb6f93b4d95b63dfc55fae4246b38b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6bb6f93b4d95b63dfc55fae4246b38b8">&#9670;&#160;</a></span>FeeHook</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classripple_1_1TxQ.html#a6bb6f93b4d95b63dfc55fae4246b38b8">ripple::TxQ::FeeHook</a> = boost::intrusive::member_hook&lt; <a class="el" href="classripple_1_1TxQ_1_1MaybeTx.html">MaybeTx</a>, boost::intrusive::set_member_hook&lt;&gt;, &amp;<a class="el" href="classripple_1_1TxQ_1_1MaybeTx.html#a4bf9e0ab6525122a6cd2d16270ada692">MaybeTx::byFeeListHook</a>&gt;</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 class="definition">Definition at line <a class="el" href="TxQ_8h_source.html#l00731">731</a> of file <a class="el" href="TxQ_8h_source.html">TxQ.h</a>.</p>
</div>
</div>
<a id="a0ce340269d77d8ef2d85513d9545c815" name="a0ce340269d77d8ef2d85513d9545c815"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ce340269d77d8ef2d85513d9545c815">&#9670;&#160;</a></span>FeeMultiSet</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classripple_1_1TxQ.html#a0ce340269d77d8ef2d85513d9545c815">ripple::TxQ::FeeMultiSet</a> = boost::intrusive:: multiset&lt;<a class="el" href="classripple_1_1TxQ_1_1MaybeTx.html">MaybeTx</a>, <a class="el" href="classripple_1_1TxQ.html#a6bb6f93b4d95b63dfc55fae4246b38b8">FeeHook</a>, boost::intrusive::compare&lt;<a class="el" href="classripple_1_1TxQ_1_1OrderCandidates.html">OrderCandidates</a>&gt; &gt;</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 class="definition">Definition at line <a class="el" href="TxQ_8h_source.html#l00736">736</a> of file <a class="el" href="TxQ_8h_source.html">TxQ.h</a>.</p>
</div>
</div>
<a id="a5ccee3a88bdb094c8eb33a9fbe436c8d" name="a5ccee3a88bdb094c8eb33a9fbe436c8d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ccee3a88bdb094c8eb33a9fbe436c8d">&#9670;&#160;</a></span>AccountMap</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classripple_1_1TxQ.html#a5ccee3a88bdb094c8eb33a9fbe436c8d">ripple::TxQ::AccountMap</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a>&lt;<a class="el" href="namespaceripple.html#a00ae0d729cb3e35b6bcac9a27ebb5284">AccountID</a>, <a class="el" href="classripple_1_1TxQ_1_1TxQAccount.html">TxQAccount</a>&gt;</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 class="definition">Definition at line <a class="el" href="TxQ_8h_source.html#l00739">739</a> of file <a class="el" href="TxQ_8h_source.html">TxQ.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aac2f17011c010d71a7ad4596f2b9ead9" name="aac2f17011c010d71a7ad4596f2b9ead9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac2f17011c010d71a7ad4596f2b9ead9">&#9670;&#160;</a></span>TxQ()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ripple::TxQ::TxQ </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_8cpp_source.html#l00344">344</a> of file <a class="el" href="TxQ_8cpp_source.html">TxQ.cpp</a>.</p>
</div>
</div>
<a id="a958da208f16e7851992bdb05d3573314" name="a958da208f16e7851992bdb05d3573314"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a958da208f16e7851992bdb05d3573314">&#9670;&#160;</a></span>~TxQ()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ripple::TxQ::~TxQ </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Destructor. </p>
<p class="definition">Definition at line <a class="el" href="TxQ_8cpp_source.html#l00349">349</a> of file <a class="el" href="TxQ_8cpp_source.html">TxQ.cpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="afbf88039641b9d66b38141407118f79e" name="afbf88039641b9d66b38141407118f79e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afbf88039641b9d66b38141407118f79e">&#9670;&#160;</a></span>apply()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structripple_1_1ApplyResult.html">ApplyResult</a> ripple::TxQ::apply </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_1OpenView.html">OpenView</a> &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/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1STTx.html">STTx</a> const &gt; const &amp;&#160;</td>
<td class="paramname"><em>tx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple.html#ad2487abbcc1a5d6064b72144b461df6e">ApplyFlags</a>&#160;</td>
<td class="paramname"><em>flags</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>Add a new transaction to the open ledger, hold it in the queue, or reject it. </p>
<dl class="section return"><dt>Returns</dt><dd>A pair with the <code>TER</code> and a <code>bool</code> indicating whether or not the transaction was applied to the open ledger. If the transaction is queued, will return <code>{ terQUEUED, false }</code>. </dd></dl>
<p class="definition">Definition at line <a class="el" href="TxQ_8cpp_source.html#l00710">710</a> of file <a class="el" href="TxQ_8cpp_source.html">TxQ.cpp</a>.</p>
</div>
</div>
<a id="ac83649e59014572a908ab144bef86bb2" name="ac83649e59014572a908ab144bef86bb2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac83649e59014572a908ab144bef86bb2">&#9670;&#160;</a></span>accept()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ripple::TxQ::accept </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_1OpenView.html">OpenView</a> &amp;&#160;</td>
<td class="paramname"><em>view</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Fill the new open ledger with transactions from the queue. </p>
<dl class="section note"><dt>Note</dt><dd>As more transactions are applied to the ledger, the required fee may increase. The required fee may rise above the fee level of the queued items before the queue is emptied, which will end the process, leaving those in the queue for the next open ledger.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>Whether any transactions were added to the <code>view</code>. </dd></dl>
<p class="definition">Definition at line <a class="el" href="TxQ_8cpp_source.html#l01414">1414</a> of file <a class="el" href="TxQ_8cpp_source.html">TxQ.cpp</a>.</p>
</div>
</div>
<a id="ae051f3309f81253bb7a50db48060cc18" name="ae051f3309f81253bb7a50db48060cc18"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae051f3309f81253bb7a50db48060cc18">&#9670;&#160;</a></span>processClosedLedger()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ripple::TxQ::processClosedLedger </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>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Update fee metrics and clean up the queue in preparation for the next ledger. </p>
<dl class="section note"><dt>Note</dt><dd>Fee metrics are updated based on the fee levels of the txs in the validated ledger and whether consensus is slow. Maximum queue size is adjusted to be enough to hold <code>ledgersInQueue</code> ledgers or <code>queueSizeMin</code> transactions. Any transactions for which the <code>LastLedgerSequence</code> has passed are removed from the queue, and any account objects that have no candidates under them are removed. </dd></dl>
<p class="definition">Definition at line <a class="el" href="TxQ_8cpp_source.html#l01345">1345</a> of file <a class="el" href="TxQ_8cpp_source.html">TxQ.cpp</a>.</p>
</div>
</div>
<a id="a5bffe9eec3a97e1b5bc209e0edf17fda" name="a5bffe9eec3a97e1b5bc209e0edf17fda"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5bffe9eec3a97e1b5bc209e0edf17fda">&#9670;&#160;</a></span>nextQueuableSeq()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classripple_1_1SeqProxy.html">SeqProxy</a> ripple::TxQ::nextQueuableSeq </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="namespaceripple.html#abbba3966df1925ac76f6d04c0aa1abe3">SLE</a> const &gt; const &amp;&#160;</td>
<td class="paramname"><em>sleAccount</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the next sequence that would go in the <a class="el" href="classripple_1_1TxQ.html" title="Transaction Queue.">TxQ</a> for an account. </p>
<p class="definition">Definition at line <a class="el" href="TxQ_8cpp_source.html#l01588">1588</a> of file <a class="el" href="TxQ_8cpp_source.html">TxQ.cpp</a>.</p>
</div>
</div>
<a id="a2a08d6cdb1e6700a24dc0f71eb3ef7ed" name="a2a08d6cdb1e6700a24dc0f71eb3ef7ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2a08d6cdb1e6700a24dc0f71eb3ef7ed">&#9670;&#160;</a></span>getMetrics()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structripple_1_1TxQ_1_1Metrics.html">TxQ::Metrics</a> ripple::TxQ::getMetrics </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><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns fee metrics in reference fee level units. </p>
<p class="definition">Definition at line <a class="el" href="TxQ_8cpp_source.html#l01757">1757</a> of file <a class="el" href="TxQ_8cpp_source.html">TxQ.cpp</a>.</p>
</div>
</div>
<a id="a8e92bb1200c6c66313cfc9fc3ac2955d" name="a8e92bb1200c6c66313cfc9fc3ac2955d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e92bb1200c6c66313cfc9fc3ac2955d">&#9670;&#160;</a></span>getTxRequiredFeeAndSeq()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structripple_1_1TxQ_1_1FeeAndSeq.html">TxQ::FeeAndSeq</a> ripple::TxQ::getTxRequiredFeeAndSeq </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/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1STTx.html">STTx</a> const &gt; const &amp;&#160;</td>
<td class="paramname"><em>tx</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns minimum required fee for tx and two sequences: first valid sequence for this account in current ledger and first available sequence for transaction. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">view</td><td>current open ledger </td></tr>
<tr><td class="paramname">tx</td><td>the transaction </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>minimum required fee, first sequence in the ledger and first available sequence </dd></dl>
<p class="definition">Definition at line <a class="el" href="TxQ_8cpp_source.html#l01779">1779</a> of file <a class="el" href="TxQ_8cpp_source.html">TxQ.cpp</a>.</p>
</div>
</div>
<a id="a459d2ac82dc4e7e5672db06df4618a96" name="a459d2ac82dc4e7e5672db06df4618a96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a459d2ac82dc4e7e5672db06df4618a96">&#9670;&#160;</a></span>getAccountTxs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="structripple_1_1TxQ_1_1TxDetails.html">TxQ::TxDetails</a> &gt; ripple::TxQ::getAccountTxs </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a00ae0d729cb3e35b6bcac9a27ebb5284">AccountID</a> const &amp;&#160;</td>
<td class="paramname"><em>account</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns information about the transactions currently in the queue for the account. </p>
<dl class="section return"><dt>Returns</dt><dd>Empty <code>vector</code> if the account has no transactions in the queue. </dd></dl>
<p class="definition">Definition at line <a class="el" href="TxQ_8cpp_source.html#l01803">1803</a> of file <a class="el" href="TxQ_8cpp_source.html">TxQ.cpp</a>.</p>
</div>
</div>
<a id="a0d767ce3cbba060040b2d3179db347c6" name="a0d767ce3cbba060040b2d3179db347c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d767ce3cbba060040b2d3179db347c6">&#9670;&#160;</a></span>getTxs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="structripple_1_1TxQ_1_1TxDetails.html">TxQ::TxDetails</a> &gt; ripple::TxQ::getTxs </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns information about all transactions currently in the queue. </p>
<dl class="section return"><dt>Returns</dt><dd>Empty <code>vector</code> if there are no transactions in the queue. </dd></dl>
<p class="definition">Definition at line <a class="el" href="TxQ_8cpp_source.html#l01824">1824</a> of file <a class="el" href="TxQ_8cpp_source.html">TxQ.cpp</a>.</p>
</div>
</div>
<a id="a2b317467ac5be2a28c278cc60190261b" name="a2b317467ac5be2a28c278cc60190261b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b317467ac5be2a28c278cc60190261b">&#9670;&#160;</a></span>doRPC()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classJson_1_1Value.html">Json::Value</a> ripple::TxQ::doRPC </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><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Summarize current fee metrics for the <code>fee</code> <a class="el" href="namespaceripple_1_1RPC.html" title="API version numbers used in later API versions.">RPC</a> command. </p>
<dl class="section return"><dt>Returns</dt><dd>a <code><a class="el" href="namespaceJson.html" title="JSON (JavaScript Object Notation).">Json</a> objectvalue</code> </dd></dl>
<p class="definition">Definition at line <a class="el" href="TxQ_8cpp_source.html#l01839">1839</a> of file <a class="el" href="TxQ_8cpp_source.html">TxQ.cpp</a>.</p>
</div>
</div>
<a id="a7301e8d3c70f9fcf3b2361b6a07479f9" name="a7301e8d3c70f9fcf3b2361b6a07479f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7301e8d3c70f9fcf3b2361b6a07479f9">&#9670;&#160;</a></span>nextQueuableSeqImpl()</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="classripple_1_1SeqProxy.html">SeqProxy</a> ripple::TxQ::nextQueuableSeqImpl </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="namespaceripple.html#abbba3966df1925ac76f6d04c0aa1abe3">SLE</a> const &gt; const &amp;&#160;</td>
<td class="paramname"><em>sleAccount</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a> &gt; const &amp;&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</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 class="definition">Definition at line <a class="el" href="TxQ_8cpp_source.html#l01601">1601</a> of file <a class="el" href="TxQ_8cpp_source.html">TxQ.cpp</a>.</p>
</div>
</div>
<a id="a959646175ed7eb636de9a994566322e1" name="a959646175ed7eb636de9a994566322e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a959646175ed7eb636de9a994566322e1">&#9670;&#160;</a></span>getRequiredFeeLevel()</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::getRequiredFeeLevel </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1OpenView.html">OpenView</a> &amp;&#160;</td>
<td class="paramname"><em>view</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple.html#ad2487abbcc1a5d6064b72144b461df6e">ApplyFlags</a>&#160;</td>
<td class="paramname"><em>flags</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structripple_1_1TxQ_1_1FeeMetrics_1_1Snapshot.html">FeeMetrics::Snapshot</a> const &amp;&#160;</td>
<td class="paramname"><em>metricsSnapshot</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>lock</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</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 class="definition">Definition at line <a class="el" href="TxQ_8cpp_source.html#l01648">1648</a> of file <a class="el" href="TxQ_8cpp_source.html">TxQ.cpp</a>.</p>
</div>
</div>
<a id="af556f186cef2a05acf55b3f33ed968c3" name="af556f186cef2a05acf55b3f33ed968c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af556f186cef2a05acf55b3f33ed968c3">&#9670;&#160;</a></span>tryDirectApply()</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="el" href="structripple_1_1ApplyResult.html">ApplyResult</a> &gt; ripple::TxQ::tryDirectApply </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_1OpenView.html">OpenView</a> &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/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1STTx.html">STTx</a> const &gt; const &amp;&#160;</td>
<td class="paramname"><em>tx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple.html#ad2487abbcc1a5d6064b72144b461df6e">ApplyFlags</a>&#160;</td>
<td class="paramname"><em>flags</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>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="TxQ_8cpp_source.html#l01658">1658</a> of file <a class="el" href="TxQ_8cpp_source.html">TxQ.cpp</a>.</p>
</div>
</div>
<a id="a0f41196cdd90099a9fcc8852d1bdaff4" name="a0f41196cdd90099a9fcc8852d1bdaff4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0f41196cdd90099a9fcc8852d1bdaff4">&#9670;&#160;</a></span>removeFromByFee()</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; TxQ::TxQAccount::TxMap::iterator &gt; ripple::TxQ::removeFromByFee </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; TxQAccount::TxMap::iterator &gt; const &amp;&#160;</td>
<td class="paramname"><em>replacedTxIter</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1STTx.html">STTx</a> const &gt; const &amp;&#160;</td>
<td class="paramname"><em>tx</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">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="TxQ_8cpp_source.html#l01729">1729</a> of file <a class="el" href="TxQ_8cpp_source.html">TxQ.cpp</a>.</p>
</div>
</div>
<a id="a89e49f3807e98e4e98b2b1a4e2d08a63" name="a89e49f3807e98e4e98b2b1a4e2d08a63"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a89e49f3807e98e4e98b2b1a4e2d08a63">&#9670;&#160;</a></span>isFull()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;size_t fillPercentage&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ripple::TxQ::isFull </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</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>Is the queue at least <code>fillPercentage</code> full? </p>
<p class="definition">Definition at line <a class="el" href="TxQ_8cpp_source.html#l00356">356</a> of file <a class="el" href="TxQ_8cpp_source.html">TxQ.cpp</a>.</p>
</div>
</div>
<a id="a5809a0ba90f44da94b1b9f73f5247434" name="a5809a0ba90f44da94b1b9f73f5247434"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5809a0ba90f44da94b1b9f73f5247434">&#9670;&#160;</a></span>canBeHeld()</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#adfb760bc3e4ccb79d5d4f6ecff2f1817">TER</a> ripple::TxQ::canBeHeld </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1STTx.html">STTx</a> const &amp;&#160;</td>
<td class="paramname"><em>tx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple.html#ad2487abbcc1a5d6064b72144b461df6e">ApplyFlags</a> const&#160;</td>
<td class="paramname"><em>flags</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/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="namespaceripple.html#abbba3966df1925ac76f6d04c0aa1abe3">SLE</a> const &gt; const &amp;&#160;</td>
<td class="paramname"><em>sleAccount</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">AccountMap::iterator const &amp;&#160;</td>
<td class="paramname"><em>accountIter</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; TxQAccount::TxMap::iterator &gt; const &amp;&#160;</td>
<td class="paramname"><em>replacementIter</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>lock</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">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks if the indicated transaction fits the conditions for being stored in the queue. </p>
<p class="definition">Definition at line <a class="el" href="TxQ_8cpp_source.html#l00364">364</a> of file <a class="el" href="TxQ_8cpp_source.html">TxQ.cpp</a>.</p>
</div>
</div>
<a id="a26b6671b2ff3fc348a8d5736e9b4e9a0" name="a26b6671b2ff3fc348a8d5736e9b4e9a0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26b6671b2ff3fc348a8d5736e9b4e9a0">&#9670;&#160;</a></span>erase() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">FeeMultiSet::iterator_type ripple::TxQ::erase </td>
<td>(</td>
<td class="paramtype">FeeMultiSet::const_iterator_type&#160;</td>
<td class="paramname"></td><td>)</td>
<td></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>Erase and return the next entry in byFee_ (lower fee level) </p>
</div>
</div>
<a id="a8ea9199acfabad1943a622e02a76646a" name="a8ea9199acfabad1943a622e02a76646a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8ea9199acfabad1943a622e02a76646a">&#9670;&#160;</a></span>eraseAndAdvance()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">auto ripple::TxQ::eraseAndAdvance </td>
<td>(</td>
<td class="paramtype">FeeMultiSet::const_iterator_type&#160;</td>
<td class="paramname"></td><td>)</td>
<td></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>Erase and return the next entry for the account (if fee level is higher), or next entry in byFee_ (lower fee level). </p>
<p>Used to get the next "applyable" <a class="el" href="classripple_1_1TxQ_1_1MaybeTx.html" title="Represents a transaction in the queue which may be applied later to the open ledger.">MaybeTx</a> for <a class="el" href="classripple_1_1TxQ.html#ac83649e59014572a908ab144bef86bb2" title="Fill the new open ledger with transactions from the queue.">accept()</a>. </p>
<p class="definition">Definition at line <a class="el" href="TxQ_8cpp_source.html#l00446">446</a> of file <a class="el" href="TxQ_8cpp_source.html">TxQ.cpp</a>.</p>
</div>
</div>
<a id="ab26994acdf0d62fc2bd0a40cb2ba08ac" name="ab26994acdf0d62fc2bd0a40cb2ba08ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab26994acdf0d62fc2bd0a40cb2ba08ac">&#9670;&#160;</a></span>erase() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">TxQAccount::TxMap::iterator ripple::TxQ::erase </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1TxQ_1_1TxQAccount.html">TxQAccount</a> &amp;&#160;</td>
<td class="paramname"><em>txQAccount</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">TxQAccount::TxMap::const_iterator&#160;</td>
<td class="paramname"><em>begin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">TxQAccount::TxMap::const_iterator&#160;</td>
<td class="paramname"><em>end</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">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Erase a range of items, based on <a class="el" href="classripple_1_1TxQ_1_1TxQAccount.html#ae79c60b82b9d9984281eaf667a8b3ce5">TxQAccount::TxMap</a> iterators. </p>
</div>
</div>
<a id="a75d6ebd1766e4a403ea3575b950c6ba8" name="a75d6ebd1766e4a403ea3575b950c6ba8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a75d6ebd1766e4a403ea3575b950c6ba8">&#9670;&#160;</a></span>tryClearAccountQueueUpThruTx()</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="structripple_1_1ApplyResult.html">ApplyResult</a> ripple::TxQ::tryClearAccountQueueUpThruTx </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_1OpenView.html">OpenView</a> &amp;&#160;</td>
<td class="paramname"><em>view</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1STTx.html">STTx</a> const &amp;&#160;</td>
<td class="paramname"><em>tx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">AccountMap::iterator const &amp;&#160;</td>
<td class="paramname"><em>accountIter</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">TxQAccount::TxMap::iterator&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple.html#aaaf6522d07c2b836c5fd589e9ecf578c">FeeLevel64</a>&#160;</td>
<td class="paramname"><em>feeLevelPaid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structripple_1_1PreflightResult.html">PreflightResult</a> const &amp;&#160;</td>
<td class="paramname"><em>pfresult</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> const&#160;</td>
<td class="paramname"><em>txExtraCount</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple.html#ad2487abbcc1a5d6064b72144b461df6e">ApplyFlags</a>&#160;</td>
<td class="paramname"><em>flags</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structripple_1_1TxQ_1_1FeeMetrics_1_1Snapshot.html">FeeMetrics::Snapshot</a> const &amp;&#160;</td>
<td class="paramname"><em>metricsSnapshot</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>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>All-or-nothing attempt to try to apply the queued txs for <code>accountIter</code> up to and including <code>tx</code>. </p>
<p>Transactions following <code>tx</code> are not cleared. </p>
<p class="definition">Definition at line <a class="el" href="TxQ_8cpp_source.html#l00498">498</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="acfc1afed59fb7f9d2404f479d7cbeef6" name="acfc1afed59fb7f9d2404f479d7cbeef6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acfc1afed59fb7f9d2404f479d7cbeef6">&#9670;&#160;</a></span>baseLevel</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr <a class="el" href="namespaceripple.html#aaaf6522d07c2b836c5fd589e9ecf578c">FeeLevel64</a> ripple::TxQ::baseLevel {256}</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Fee level for single-signed reference transaction. </p>
<p class="definition">Definition at line <a class="el" href="TxQ_8h_source.html#l00045">45</a> of file <a class="el" href="TxQ_8h_source.html">TxQ.h</a>.</p>
</div>
</div>
<a id="ad474e51bf3d5f570f630eaafb87814f4" name="ad474e51bf3d5f570f630eaafb87814f4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad474e51bf3d5f570f630eaafb87814f4">&#9670;&#160;</a></span>setup_</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="structripple_1_1TxQ_1_1Setup.html">Setup</a> const ripple::TxQ::setup_</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="structripple_1_1TxQ_1_1Setup.html" title="Structure used to customize TxQ behavior.">Setup</a> parameters used to control the behavior of the queue. </p>
<p class="definition">Definition at line <a class="el" href="TxQ_8h_source.html#l00742">742</a> of file <a class="el" href="TxQ_8h_source.html">TxQ.h</a>.</p>
</div>
</div>
<a id="a558ec7e0156901c0af925b5acb026b3b" name="a558ec7e0156901c0af925b5acb026b3b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a558ec7e0156901c0af925b5acb026b3b">&#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::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#l00744">744</a> of file <a class="el" href="TxQ_8h_source.html">TxQ.h</a>.</p>
</div>
</div>
<a id="a937b5c79cd012b25e31442e7390e5df5" name="a937b5c79cd012b25e31442e7390e5df5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a937b5c79cd012b25e31442e7390e5df5">&#9670;&#160;</a></span>feeMetrics_</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="classripple_1_1TxQ_1_1FeeMetrics.html">FeeMetrics</a> ripple::TxQ::feeMetrics_</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>Tracks the current state of the queue. </p>
<dl class="section note"><dt>Note</dt><dd>This member must always and only be accessed under locked mutex_ </dd></dl>
<p class="definition">Definition at line <a class="el" href="TxQ_8h_source.html#l00750">750</a> of file <a class="el" href="TxQ_8h_source.html">TxQ.h</a>.</p>
</div>
</div>
<a id="a3a26f78ddb330368dea5c95a9bf8d218" name="a3a26f78ddb330368dea5c95a9bf8d218"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3a26f78ddb330368dea5c95a9bf8d218">&#9670;&#160;</a></span>byFee_</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="classripple_1_1TxQ.html#a0ce340269d77d8ef2d85513d9545c815">FeeMultiSet</a> ripple::TxQ::byFee_</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>The queue itself: the collection of transactions ordered by fee level. </p>
<dl class="section note"><dt>Note</dt><dd>This member must always and only be accessed under locked mutex_ </dd></dl>
<p class="definition">Definition at line <a class="el" href="TxQ_8h_source.html#l00756">756</a> of file <a class="el" href="TxQ_8h_source.html">TxQ.h</a>.</p>
</div>
</div>
<a id="a6ab1707fecc84164c74360094d1bc03d" name="a6ab1707fecc84164c74360094d1bc03d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ab1707fecc84164c74360094d1bc03d">&#9670;&#160;</a></span>byAccount_</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="classripple_1_1TxQ.html#a5ccee3a88bdb094c8eb33a9fbe436c8d">AccountMap</a> ripple::TxQ::byAccount_</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>All of the accounts which currently have any transactions in the queue. </p>
<p>Entries are created and destroyed dynamically as transactions are added and removed. </p><dl class="section note"><dt>Note</dt><dd>This member must always and only be accessed under locked mutex_ </dd></dl>
<p class="definition">Definition at line <a class="el" href="TxQ_8h_source.html#l00763">763</a> of file <a class="el" href="TxQ_8h_source.html">TxQ.h</a>.</p>
</div>
</div>
<a id="a21c99b49f8d49b48488d8388ad53f747" name="a21c99b49f8d49b48488d8388ad53f747"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a21c99b49f8d49b48488d8388ad53f747">&#9670;&#160;</a></span>maxSize_</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;size_t&gt; ripple::TxQ::maxSize_</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 number of transactions allowed in the queue based on the current metrics. </p>
<p>If uninitialized, there is no limit, but that condition cannot last for long in practice. </p><dl class="section note"><dt>Note</dt><dd>This member must always and only be accessed under locked mutex_ </dd></dl>
<p class="definition">Definition at line <a class="el" href="TxQ_8h_source.html#l00770">770</a> of file <a class="el" href="TxQ_8h_source.html">TxQ.h</a>.</p>
</div>
</div>
<a id="a71a301b0a48137d7121dda3b66db2fb5" name="a71a301b0a48137d7121dda3b66db2fb5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a71a301b0a48137d7121dda3b66db2fb5">&#9670;&#160;</a></span>parentHash_</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#af5a72d3e0d9b6913c13f688390b90796">LedgerHash</a> ripple::TxQ::parentHash_ {beast::zero}</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>parentHash_ used for logging only </p>
<p class="definition">Definition at line <a class="el" href="TxQ_8h_source.html#l00775">775</a> of file <a class="el" href="TxQ_8h_source.html">TxQ.h</a>.</p>
</div>
</div>
<a id="a63a8817d4a8b421e026e1454c4ba4646" name="a63a8817d4a8b421e026e1454c4ba4646"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a63a8817d4a8b421e026e1454c4ba4646">&#9670;&#160;</a></span>mutex_</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/thread/mutex.html">std::mutex</a> ripple::TxQ::mutex_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">mutable</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Most queue operations are done under the master lock, but use this mutex for the <a class="el" href="namespaceripple_1_1RPC.html" title="API version numbers used in later API versions.">RPC</a> "fee" command, which isn't. </p>
<p class="definition">Definition at line <a class="el" href="TxQ_8h_source.html#l00780">780</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>