Files
rippled/classripple_1_1Validations.html
2025-11-04 00:36:48 -08:00

2124 lines
147 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::Validations&lt; Adaptor &gt; Class Template 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_1Validations.html">Validations</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="#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_1Validations-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">ripple::Validations&lt; Adaptor &gt; Class Template Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Maintains current and recent ledger validations.
<a href="classripple_1_1Validations.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="Validations_8h_source.html">Validations.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for ripple::Validations&lt; Adaptor &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classripple_1_1Validations__coll__graph.png" border="0" usemap="#aripple_1_1Validations_3_01Adaptor_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="aripple_1_1Validations_3_01Adaptor_01_4_coll__map" id="aripple_1_1Validations_3_01Adaptor_01_4_coll__map">
<area shape="rect" title="Maintains current and recent ledger validations." alt="" coords="2235,448,2373,488"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/unordered_map.html" title=" " alt="" coords="1679,49,1852,89"/>
<area shape="poly" title=" " alt="" coords="1866,62,1952,68,1999,75,2047,87,2093,103,2138,124,2178,152,2213,186,2236,219,2254,255,2281,329,2297,397,2304,447,2298,448,2291,398,2276,330,2249,257,2231,222,2209,190,2175,156,2135,129,2091,107,2045,92,1998,81,1951,73,1865,68"/>
<area shape="rect" href="classripple_1_1base__uint.html" title="Integers of any length that is a multiple of 32&#45;bits." alt="" coords="985,135,1127,175"/>
<area shape="poly" title=" " alt="" coords="1120,127,1199,102,1286,81,1391,68,1497,62,1678,62,1678,68,1497,68,1392,74,1287,87,1200,107,1122,132"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/unordered_map.html" title=" " alt="" coords="1657,201,1873,255"/>
<area shape="poly" title=" " alt="" coords="1140,170,1287,195,1483,213,1657,222,1657,227,1483,218,1286,200,1139,175"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/unordered_map.html" title=" " alt="" coords="1921,416,2073,456"/>
<area shape="poly" title=" " alt="" coords="1118,177,1288,241,1464,296,1641,345,1921,416,1920,421,1640,350,1463,301,1286,247,1116,182"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/unordered_set.html" title=" " alt="" coords="1389,96,1531,136"/>
<area shape="poly" title=" " alt="" coords="1140,144,1388,120,1389,125,1140,149"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/types/size_t.html" title=" " alt="" coords="278,114,366,139"/>
<area shape="poly" title=" " alt="" coords="380,126,923,147,985,149,985,154,923,152,380,131"/>
<area shape="rect" href="classripple_1_1base__uint.html" title=" " alt="" coords="580,544,721,584"/>
<area shape="poly" title=" " alt="" coords="373,142,411,161,452,186,491,218,522,257,531,283,534,316,532,397,531,475,536,507,546,529,562,543,581,552,579,557,559,547,542,532,531,508,526,476,527,396,529,317,526,284,518,260,487,222,449,190,408,165,370,147"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/array.html" title=" " alt="" coords="238,348,406,388"/>
<area shape="poly" title=" " alt="" coords="373,339,398,321,421,301,428,290,432,280,436,269,445,257,468,235,489,221,543,201,630,184,749,171,985,155,985,160,750,176,630,190,545,207,492,226,472,239,449,260,441,271,437,281,433,292,425,304,402,325,376,343"/>
<area shape="poly" title=" " alt="" coords="420,380,474,400,500,416,522,436,531,448,534,460,534,484,535,507,538,518,546,529,562,541,581,550,578,555,559,546,542,533,533,520,529,508,529,484,529,461,526,450,518,439,497,420,472,405,418,385"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/types/integer.html" title=" " alt="" coords="5,355,108,381"/>
<area shape="poly" title=" " alt="" coords="121,365,238,365,238,371,121,371"/>
<area shape="rect" href="classripple_1_1SHAMap.html" title="A SHAMap is both a radix tree with a fan&#45;out of 16 and a Merkle tree." alt="" coords="995,245,1117,270"/>
<area shape="poly" title=" " alt="" coords="62,341,80,287,111,219,132,185,157,152,186,123,220,99,294,63,360,42,421,32,481,34,541,43,606,58,758,99,818,123,897,163,1035,242,1032,247,895,168,816,127,757,104,605,64,540,48,480,39,421,38,361,47,296,68,223,104,190,127,161,155,137,188,116,222,85,289,67,343"/>
<area shape="rect" href="structripple_1_1LedgerHeader.html" title="Information about the notional ledger backing the view." alt="" coords="977,619,1135,645"/>
<area shape="poly" title=" " alt="" coords="86,387,146,432,223,479,371,551,433,577,492,597,552,612,618,625,782,647,832,650,883,649,976,642,976,647,883,655,832,655,781,652,617,630,551,617,490,602,431,582,369,556,220,484,143,437,82,392"/>
<area shape="poly" title=" " alt="" coords="1875,258,1993,308,2104,361,2267,446,2265,450,2102,366,1991,313,1873,263"/>
<area shape="rect" href="classbeast_1_1detail_1_1aged__unordered__container.html" title=" " alt="" coords="1899,872,2094,971"/>
<area shape="poly" title=" " alt="" coords="2037,859,2287,487,2291,490,2041,862"/>
<area shape="rect" href="classbeast_1_1detail_1_1aged__unordered__container_1_1chronological__t.html" title=" " alt="" coords="1357,1302,1563,1386"/>
<area shape="poly" title=" " alt="" coords="1575,1324,1606,1309,1631,1288,1642,1271,1645,1254,1641,1220,1638,1185,1643,1167,1656,1150,1683,1132,1711,1126,1738,1129,1766,1135,1793,1142,1820,1145,1846,1139,1872,1122,1884,1106,1889,1090,1887,1057,1882,1021,1885,1001,1895,981,1905,969,1909,973,1900,984,1891,1003,1888,1021,1892,1056,1894,1091,1888,1109,1875,1126,1848,1144,1820,1150,1792,1147,1765,1141,1738,1134,1711,1131,1685,1137,1659,1154,1648,1169,1643,1185,1646,1219,1651,1254,1647,1273,1635,1291,1609,1314,1577,1329"/>
<area shape="rect" href="classbeast_1_1detail_1_1aged__unordered__container.html" title=" " alt="" coords="1899,995,2094,1093"/>
<area shape="poly" title=" " alt="" coords="1576,1311,1757,1259,1832,1235,1872,1218,1903,1190,1930,1158,1970,1092,1975,1095,1934,1161,1907,1194,1875,1222,1833,1240,1759,1265,1577,1316"/>
<area shape="rect" href="classbeast_1_1detail_1_1aged__unordered__container_1_1config__t.html" title=" " alt="" coords="1365,845,1555,929"/>
<area shape="poly" title=" " alt="" coords="1569,891,1899,912,1899,918,1569,896"/>
<area shape="poly" title=" " alt="" coords="1570,904,1604,918,1635,938,1644,950,1647,962,1651,973,1659,982,1677,990,1702,996,1763,1002,1825,1005,1874,1009,1900,1015,1898,1020,1873,1015,1825,1010,1762,1007,1701,1001,1675,995,1656,986,1646,975,1642,963,1639,952,1632,942,1601,923,1567,908"/>
<area shape="rect" href="classbeast_1_1detail_1_1aged__unordered__container_1_1ValueHash.html" title=" " alt="" coords="961,970,1151,1054"/>
<area shape="poly" title=" " alt="" coords="1164,976,1286,937,1364,913,1365,918,1287,943,1165,981"/>
<area shape="rect" title=" " alt="" coords="623,999,678,1025"/>
<area shape="poly" title=" " alt="" coords="692,1009,961,1009,961,1015,692,1015"/>
<area shape="rect" href="classbeast_1_1detail_1_1aged__unordered__container_1_1KeyValueEqual.html" title=" " alt="" coords="955,783,1157,867"/>
<area shape="poly" title=" " alt="" coords="1171,840,1365,870,1364,875,1170,845"/>
<area shape="rect" title=" " alt="" coords="609,883,692,909"/>
<area shape="poly" title=" " alt="" coords="706,890,807,881,922,863,954,855,955,860,923,868,807,886,706,895"/>
<area shape="rect" href="classbeast_1_1detail_1_1empty__base__optimization.html" title=" " alt="" coords="947,891,1165,946"/>
<area shape="poly" title=" " alt="" coords="1179,906,1364,892,1365,897,1179,912"/>
<area shape="rect" title=" " alt="" coords="583,933,718,958"/>
<area shape="poly" title=" " alt="" coords="731,937,946,923,947,928,732,943"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/utility/functional/reference_wrapper.html" title=" " alt="" coords="961,1079,1151,1119"/>
<area shape="poly" title=" " alt="" coords="1146,1071,1164,1063,1218,1032,1238,1015,1260,989,1268,976,1271,963,1275,951,1285,938,1322,914,1364,898,1365,903,1325,919,1288,942,1280,953,1276,965,1273,978,1265,992,1242,1019,1221,1037,1167,1068,1148,1076"/>
<area shape="rect" href="classbeast_1_1detail_1_1aged__unordered__container_1_1Buckets.html" title=" " alt="" coords="1365,953,1555,1037"/>
<area shape="poly" title=" " alt="" coords="1569,976,1657,964,1899,931,1900,937,1658,969,1569,982"/>
<area shape="poly" title=" " alt="" coords="1570,1012,1658,1024,1784,1034,1899,1039,1899,1045,1783,1039,1657,1029,1569,1017"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/vector.html" title=" " alt="" coords="955,1143,1157,1227"/>
<area shape="poly" title=" " alt="" coords="1169,1182,1219,1168,1241,1156,1261,1141,1269,1130,1273,1120,1273,1097,1272,1073,1276,1060,1285,1047,1321,1021,1363,1004,1365,1009,1324,1025,1289,1051,1281,1062,1278,1073,1278,1097,1278,1120,1274,1133,1265,1145,1244,1161,1221,1173,1171,1187"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/types/conditional.html" title=" " alt="" coords="1287,1061,1633,1277"/>
<area shape="poly" title=" " alt="" coords="1646,1104,1657,1101,1690,1095,1721,1093,1774,1095,1798,1094,1821,1090,1846,1079,1871,1060,1883,1042,1885,1024,1885,1003,1895,981,1906,969,1910,973,1900,984,1891,1004,1890,1024,1888,1044,1875,1063,1848,1083,1823,1095,1798,1100,1774,1101,1721,1099,1691,1100,1658,1107,1647,1109"/>
<area shape="poly" title=" " alt="" coords="1647,1195,1703,1196,1761,1192,1818,1182,1872,1164,1898,1150,1921,1133,1959,1092,1963,1095,1924,1137,1901,1155,1874,1169,1819,1187,1762,1197,1703,1201,1647,1201"/>
<area shape="poly" title=" " alt="" coords="2092,984,2094,981,2143,918,2184,849,2217,777,2244,705,2280,575,2297,488,2302,489,2285,576,2249,706,2222,779,2188,852,2147,922,2098,984,2095,987"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/utility/optional.html" title=" " alt="" coords="1897,480,2096,520"/>
<area shape="poly" title=" " alt="" coords="2110,495,2210,487,2234,483,2235,488,2211,492,2110,501"/>
<area shape="poly" title=" " alt="" coords="2087,443,2235,458,2234,463,2086,448"/>
<area shape="rect" href="classripple_1_1Ledger.html" title="Holds a ledger." alt="" coords="1405,471,1515,497"/>
<area shape="poly" title=" " alt="" coords="1529,475,1920,440,1921,445,1529,481"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/memory/enable_shared_from_this.html" title=" " alt="" coords="973,669,1139,709"/>
<area shape="poly" title=" " alt="" coords="1141,662,1164,654,1248,614,1327,569,1440,495,1443,499,1330,573,1250,619,1166,658,1143,667"/>
<area shape="rect" href="classripple_1_1DigestAwareReadView.html" title="ReadView that associates keys with digests." alt="" coords="949,521,1163,546"/>
<area shape="poly" title=" " alt="" coords="1174,516,1404,488,1405,493,1174,522"/>
<area shape="rect" href="classripple_1_1ReadView.html" title="A view into a ledger." alt="" coords="585,445,717,470"/>
<area shape="poly" title=" " alt="" coords="730,444,841,436,890,439,924,450,935,463,938,479,940,493,949,506,968,518,965,523,945,510,935,495,933,479,931,466,921,454,889,444,841,441,730,449"/>
<area shape="rect" href="structripple_1_1ReadView_1_1sles__type.html" title=" " alt="" coords="221,445,423,470"/>
<area shape="poly" title=" " alt="" coords="437,455,584,455,584,460,437,460"/>
<area shape="rect" href="classripple_1_1TxsRawView.html" title="Interface for changing ledger entries with transactions." alt="" coords="981,734,1131,759"/>
<area shape="poly" title=" " alt="" coords="1142,728,1164,719,1211,694,1256,665,1339,601,1404,539,1445,495,1449,499,1408,543,1342,605,1259,670,1214,699,1166,724,1144,733"/>
<area shape="rect" href="classripple_1_1RawView.html" title="Interface for ledger entry changes." alt="" coords="587,834,714,859"/>
<area shape="poly" title=" " alt="" coords="728,855,775,856,825,852,876,839,921,817,930,806,932,794,935,781,945,769,979,752,982,756,948,773,940,784,938,796,934,809,924,821,877,844,826,857,775,861,728,860"/>
<area shape="rect" href="classripple_1_1CountedObject.html" title=" " alt="" coords="975,357,1137,397"/>
<area shape="poly" title=" " alt="" coords="1147,398,1411,469,1410,474,1145,403"/>
<area shape="poly" title=" " alt="" coords="1132,271,1167,287,1179,301,1191,314,1210,325,1226,330,1264,344,1318,377,1369,412,1444,469,1441,473,1366,416,1315,381,1262,349,1224,335,1208,329,1188,318,1176,304,1164,291,1130,275"/>
<area shape="rect" href="classripple_1_1Family.html" title=" " alt="" coords="595,217,706,242"/>
<area shape="poly" title=" " alt="" coords="720,231,995,250,994,256,719,237"/>
<area shape="rect" href="classbeast_1_1Journal.html" title="A generic endpoint for log messages." alt="" coords="595,266,706,291"/>
<area shape="poly" title=" " alt="" coords="720,278,810,284,922,295,1045,314,1166,343,1248,372,1325,407,1439,469,1436,473,1323,412,1246,377,1165,348,1044,319,921,300,809,289,720,283"/>
<area shape="poly" title=" " alt="" coords="720,272,994,258,994,263,720,278"/>
<area shape="rect" href="classbeast_1_1Journal_1_1Sink.html" title="Abstraction for the underlying message destination." alt="" coords="249,266,395,291"/>
<area shape="poly" title=" " alt="" coords="409,276,595,276,595,281,409,281"/>
<area shape="rect" href="classripple_1_1SharedIntrusive.html" title=" " alt="" coords="544,316,757,356"/>
<area shape="poly" title=" " alt="" coords="771,316,922,289,1010,268,1011,273,923,295,772,322"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/thread/mutex.html" title=" " alt="" coords="1010,422,1102,447"/>
<area shape="poly" title=" " alt="" coords="1116,439,1405,475,1404,480,1115,444"/>
<area shape="rect" href="structripple_1_1Fees.html" title="Reflects the fee settings for a particular ledger." alt="" coords="1007,570,1105,595"/>
<area shape="poly" title=" " alt="" coords="1117,567,1262,533,1412,494,1413,499,1263,539,1119,572"/>
<area shape="rect" href="classripple_1_1XRPAmount.html" title=" " alt="" coords="579,494,722,519"/>
<area shape="poly" title=" " alt="" coords="736,503,843,507,890,514,924,524,933,532,937,540,941,548,948,555,977,568,1008,576,1007,581,975,573,945,560,937,551,933,543,929,535,921,529,889,519,843,513,736,508"/>
<area shape="poly" title=" " alt="" coords="729,520,758,530,782,541,822,550,855,550,887,553,924,570,933,579,937,588,941,597,948,605,977,618,975,623,945,609,936,600,932,590,929,582,921,574,886,558,854,555,821,555,780,547,756,534,727,525"/>
<area shape="rect" href="classripple_1_1Rules.html" title="Rules controlling protocol behavior." alt="" coords="1005,471,1107,497"/>
<area shape="poly" title=" " alt="" coords="1121,481,1404,481,1404,487,1121,487"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html" title=" " alt="" coords="565,380,736,420"/>
<area shape="poly" title=" " alt="" coords="750,388,793,390,838,395,882,406,924,424,933,432,937,441,941,449,948,456,976,470,1005,477,1004,482,974,475,945,461,937,452,932,443,929,436,921,429,881,411,837,400,792,395,750,394"/>
<area shape="poly" title=" " alt="" coords="1128,614,1165,604,1262,572,1357,531,1433,494,1435,499,1359,536,1264,577,1166,609,1130,619"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/chrono/time_point.html" title=" " alt="" coords="565,705,737,745"/>
<area shape="poly" title=" " alt="" coords="735,745,781,752,830,752,878,743,900,734,921,722,931,708,933,692,934,673,945,655,975,638,978,643,949,659,939,675,938,692,936,710,924,726,903,739,879,748,830,757,781,757,734,751"/>
<area shape="poly" title=" " alt="" coords="694,589,735,611,782,628,831,637,882,641,976,639,976,644,882,646,831,642,781,633,733,616,691,594"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/chrono/duration.html" title=" " alt="" coords="573,769,729,809"/>
<area shape="poly" title=" " alt="" coords="742,808,788,812,836,809,881,798,902,788,921,774,932,761,936,748,933,718,930,687,934,671,945,656,959,644,975,637,978,641,962,649,949,659,939,673,936,687,939,718,941,748,936,764,924,778,905,792,883,803,836,815,788,817,742,813"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/unordered_map.html" title=" " alt="" coords="1913,135,2080,204"/>
<area shape="poly" title=" " alt="" coords="2094,193,2156,222,2186,241,2213,263,2248,309,2273,360,2291,409,2301,447,2296,448,2286,410,2269,362,2243,312,2209,267,2183,245,2154,226,2092,198"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/utility/pair.html" title=" " alt="" coords="1385,161,1535,186"/>
<area shape="poly" title=" " alt="" coords="1549,170,1913,167,1913,173,1549,175"/>
<area shape="poly" title=" " alt="" coords="1545,119,1698,130,1874,148,1913,153,1912,159,1873,153,1698,136,1545,124"/>
<area shape="rect" href="structripple_1_1ValidationParms.html" title="Timing parameters to control validation staleness and expiration." alt="" coords="1911,1274,2083,1299"/>
<area shape="poly" title=" " alt="" coords="2017,1262,2058,1212,2110,1141,2164,1058,2208,968,2233,900,2252,829,2279,688,2294,568,2299,488,2305,489,2299,568,2285,689,2257,830,2238,902,2213,970,2168,1061,2115,1145,2062,1215,2021,1265"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/chrono/duration.html" title=" " alt="" coords="1383,1410,1537,1435"/>
<area shape="poly" title=" " alt="" coords="1551,1420,1623,1416,1704,1408,1790,1392,1872,1367,1904,1352,1934,1333,1980,1297,1983,1302,1937,1338,1907,1356,1874,1372,1791,1397,1705,1413,1623,1422,1552,1426"/>
</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_1Validations_1_1KeepRange.html">KeepRange</a></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:a37586cfd59e9e0ce5f4aad6029e1a077" id="r_a37586cfd59e9e0ce5f4aad6029e1a077"><td class="memTemplParams" colspan="2">template&lt;class... Ts&gt; </td></tr>
<tr class="memitem:a37586cfd59e9e0ce5f4aad6029e1a077"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a37586cfd59e9e0ce5f4aad6029e1a077">Validations</a> (<a class="el" href="structripple_1_1ValidationParms.html">ValidationParms</a> const &amp;p, <a class="el" href="classbeast_1_1abstract__clock.html">beast::abstract_clock</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/steady_clock.html">std::chrono::steady_clock</a> &gt; &amp;c, Ts &amp;&amp;... ts)</td></tr>
<tr class="memdesc:a37586cfd59e9e0ce5f4aad6029e1a077"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br /></td></tr>
<tr class="separator:a37586cfd59e9e0ce5f4aad6029e1a077"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a352f2360563fa873e0500f81b633a776" id="r_a352f2360563fa873e0500f81b633a776"><td class="memItemLeft" align="right" valign="top">Adaptor const &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a352f2360563fa873e0500f81b633a776">adaptor</a> () const</td></tr>
<tr class="memdesc:a352f2360563fa873e0500f81b633a776"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the adaptor instance. <br /></td></tr>
<tr class="separator:a352f2360563fa873e0500f81b633a776"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90a3a612fdeeeece6714725e4826a5f3" id="r_a90a3a612fdeeeece6714725e4826a5f3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structripple_1_1ValidationParms.html">ValidationParms</a> const &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a90a3a612fdeeeece6714725e4826a5f3">parms</a> () const</td></tr>
<tr class="memdesc:a90a3a612fdeeeece6714725e4826a5f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the validation timing parameters. <br /></td></tr>
<tr class="separator:a90a3a612fdeeeece6714725e4826a5f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0fc73211431010b6343e0e2bc095cde" id="r_ae0fc73211431010b6343e0e2bc095cde"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#ae0fc73211431010b6343e0e2bc095cde">canValidateSeq</a> (<a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a> const s)</td></tr>
<tr class="memdesc:ae0fc73211431010b6343e0e2bc095cde"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether the local node can issue a validation for the given sequence number. <br /></td></tr>
<tr class="separator:ae0fc73211431010b6343e0e2bc095cde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4f22dbf9bd39859dc6c43e4d6713888" id="r_ae4f22dbf9bd39859dc6c43e4d6713888"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceripple.html#a6434c1a0fd22b77e2e4a228c0eca79eb">ValStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#ae4f22dbf9bd39859dc6c43e4d6713888">add</a> (<a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a> const &amp;nodeID, <a class="el" href="classripple_1_1Validations.html#a347521e28c20acb8fe6582fc5b917888">Validation</a> const &amp;val)</td></tr>
<tr class="memdesc:ae4f22dbf9bd39859dc6c43e4d6713888"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a new validation. <br /></td></tr>
<tr class="separator:ae4f22dbf9bd39859dc6c43e4d6713888"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adcb502704e0d786d3a27d8be38a87916" id="r_adcb502704e0d786d3a27d8be38a87916"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#adcb502704e0d786d3a27d8be38a87916">setSeqToKeep</a> (<a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a> const &amp;low, <a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a> const &amp;high)</td></tr>
<tr class="memdesc:adcb502704e0d786d3a27d8be38a87916"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the range [low, high) of validations to keep from expire. <br /></td></tr>
<tr class="separator:adcb502704e0d786d3a27d8be38a87916"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af38e15b27f5b40adc89539807a692872" id="r_af38e15b27f5b40adc89539807a692872"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#af38e15b27f5b40adc89539807a692872">expire</a> (<a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> &amp;j)</td></tr>
<tr class="memdesc:af38e15b27f5b40adc89539807a692872"><td class="mdescLeft">&#160;</td><td class="mdescRight">Expire old validation sets. <br /></td></tr>
<tr class="separator:af38e15b27f5b40adc89539807a692872"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac764335dc3c5d9625cc74fd757331722" id="r_ac764335dc3c5d9625cc74fd757331722"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#ac764335dc3c5d9625cc74fd757331722">trustChanged</a> (<a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt; <a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a> &gt; const &amp;added, <a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt; <a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a> &gt; const &amp;removed)</td></tr>
<tr class="memdesc:ac764335dc3c5d9625cc74fd757331722"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update trust status of validations. <br /></td></tr>
<tr class="separator:ac764335dc3c5d9625cc74fd757331722"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4436616304f6309389ddd6d11f5560d2" id="r_a4436616304f6309389ddd6d11f5560d2"><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_1Validations.html#a4436616304f6309389ddd6d11f5560d2">getJsonTrie</a> () const</td></tr>
<tr class="separator:a4436616304f6309389ddd6d11f5560d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18c755bfd41cfc3a7f68d3eebfae8b0f" id="r_a18c755bfd41cfc3a7f68d3eebfae8b0f"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; <a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a>, <a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a18c755bfd41cfc3a7f68d3eebfae8b0f">getPreferred</a> (<a class="el" href="classripple_1_1Validations.html#ab12762703bf6418522381ff513a33856">Ledger</a> const &amp;curr)</td></tr>
<tr class="memdesc:a18c755bfd41cfc3a7f68d3eebfae8b0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the sequence number and ID of the preferred working ledger. <br /></td></tr>
<tr class="separator:a18c755bfd41cfc3a7f68d3eebfae8b0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8cbed0563344b297789575879aae482" id="r_ad8cbed0563344b297789575879aae482"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#ad8cbed0563344b297789575879aae482">getPreferred</a> (<a class="el" href="classripple_1_1Validations.html#ab12762703bf6418522381ff513a33856">Ledger</a> const &amp;curr, <a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a> minValidSeq)</td></tr>
<tr class="memdesc:ad8cbed0563344b297789575879aae482"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the ID of the preferred working ledger that exceeds a minimum valid ledger sequence number. <br /></td></tr>
<tr class="separator:ad8cbed0563344b297789575879aae482"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe6526fada634c34ab78897b910840de" id="r_abe6526fada634c34ab78897b910840de"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#abe6526fada634c34ab78897b910840de">getPreferredLCL</a> (<a class="el" href="classripple_1_1Validations.html#ab12762703bf6418522381ff513a33856">Ledger</a> const &amp;lcl, <a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a> minSeq, <a class="el" href="namespaceripple.html#a46c521271235f4e2715d7fa8b68940ca">hash_map</a>&lt; <a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a>, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> &gt; const &amp;peerCounts)</td></tr>
<tr class="memdesc:abe6526fada634c34ab78897b910840de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine the preferred last closed ledger for the next consensus round. <br /></td></tr>
<tr class="separator:abe6526fada634c34ab78897b910840de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa76949d45eaed5ed65e14e6da039afbe" id="r_aa76949d45eaed5ed65e14e6da039afbe"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#aa76949d45eaed5ed65e14e6da039afbe">getNodesAfter</a> (<a class="el" href="classripple_1_1Validations.html#ab12762703bf6418522381ff513a33856">Ledger</a> const &amp;ledger, <a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a> const &amp;ledgerID)</td></tr>
<tr class="memdesc:aa76949d45eaed5ed65e14e6da039afbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Count the number of current trusted validators working on a ledger after the specified one. <br /></td></tr>
<tr class="separator:aa76949d45eaed5ed65e14e6da039afbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca110441b3ed136fe13f60417ae2756c" id="r_aca110441b3ed136fe13f60417ae2756c"><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="classripple_1_1Validations.html#aed95c3c0f3992ca0755fe6a07e39e268">WrappedValidationType</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#aca110441b3ed136fe13f60417ae2756c">currentTrusted</a> ()</td></tr>
<tr class="memdesc:aca110441b3ed136fe13f60417ae2756c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the currently trusted full validations. <br /></td></tr>
<tr class="separator:aca110441b3ed136fe13f60417ae2756c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99e0278c402a718194a95830c4fe112d" id="r_a99e0278c402a718194a95830c4fe112d"><td class="memItemLeft" align="right" valign="top">auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a99e0278c402a718194a95830c4fe112d">getCurrentNodeIDs</a> () -&gt; <a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt; <a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a> &gt;</td></tr>
<tr class="memdesc:a99e0278c402a718194a95830c4fe112d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the set of node ids associated with current validations. <br /></td></tr>
<tr class="separator:a99e0278c402a718194a95830c4fe112d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49f71ec8e41262f46c851cfb741d3299" id="r_a49f71ec8e41262f46c851cfb741d3299"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a49f71ec8e41262f46c851cfb741d3299">numTrustedForLedger</a> (<a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a> const &amp;ledgerID)</td></tr>
<tr class="memdesc:a49f71ec8e41262f46c851cfb741d3299"><td class="mdescLeft">&#160;</td><td class="mdescRight">Count the number of trusted full validations for the given ledger. <br /></td></tr>
<tr class="separator:a49f71ec8e41262f46c851cfb741d3299"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac16b1f1c7a92b8979af800ace0effd6" id="r_aac16b1f1c7a92b8979af800ace0effd6"><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="classripple_1_1Validations.html#aed95c3c0f3992ca0755fe6a07e39e268">WrappedValidationType</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#aac16b1f1c7a92b8979af800ace0effd6">getTrustedForLedger</a> (<a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a> const &amp;ledgerID, <a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a> const &amp;seq)</td></tr>
<tr class="memdesc:aac16b1f1c7a92b8979af800ace0effd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get trusted full validations for a specific ledger. <br /></td></tr>
<tr class="separator:aac16b1f1c7a92b8979af800ace0effd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7232b4c074831793ba25e32b95be103" id="r_af7232b4c074831793ba25e32b95be103"><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="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#af7232b4c074831793ba25e32b95be103">fees</a> (<a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a> const &amp;ledgerID, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> baseFee)</td></tr>
<tr class="memdesc:af7232b4c074831793ba25e32b95be103"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns fees reported by trusted full validators in the given ledger. <br /></td></tr>
<tr class="separator:af7232b4c074831793ba25e32b95be103"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a3e6aea72a984baf7419ede37649d16" id="r_a8a3e6aea72a984baf7419ede37649d16"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a8a3e6aea72a984baf7419ede37649d16">flush</a> ()</td></tr>
<tr class="memdesc:a8a3e6aea72a984baf7419ede37649d16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flush all current validations. <br /></td></tr>
<tr class="separator:a8a3e6aea72a984baf7419ede37649d16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67e7951c10601258af0fd960ca6f1b3a" id="r_a67e7951c10601258af0fd960ca6f1b3a"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a67e7951c10601258af0fd960ca6f1b3a">laggards</a> (<a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a> const seq, <a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt; <a class="el" href="classripple_1_1Validations.html#a478fe0e878e729d04eaad7b4c6897e26">NodeKey</a> &gt; &amp;trustedKeys)</td></tr>
<tr class="memdesc:a67e7951c10601258af0fd960ca6f1b3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return quantity of lagging proposers, and remove online proposers for purposes of evaluating whether to pause. <br /></td></tr>
<tr class="separator:a67e7951c10601258af0fd960ca6f1b3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4175ef5da47e84d4b81425f792d4093c" id="r_a4175ef5da47e84d4b81425f792d4093c"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a4175ef5da47e84d4b81425f792d4093c">sizeOfCurrentCache</a> () const</td></tr>
<tr class="separator:a4175ef5da47e84d4b81425f792d4093c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf30fbb02212128d406e04f75043fbae" id="r_abf30fbb02212128d406e04f75043fbae"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#abf30fbb02212128d406e04f75043fbae">sizeOfSeqEnforcersCache</a> () const</td></tr>
<tr class="separator:abf30fbb02212128d406e04f75043fbae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a104cdf558a8bbf13f9d02279ca8206a1" id="r_a104cdf558a8bbf13f9d02279ca8206a1"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a104cdf558a8bbf13f9d02279ca8206a1">sizeOfByLedgerCache</a> () const</td></tr>
<tr class="separator:a104cdf558a8bbf13f9d02279ca8206a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb11cc41b8cf2734541e9abf41fbe23f" id="r_adb11cc41b8cf2734541e9abf41fbe23f"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#adb11cc41b8cf2734541e9abf41fbe23f">sizeOfBySequenceCache</a> () const</td></tr>
<tr class="separator:adb11cc41b8cf2734541e9abf41fbe23f"><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:a29cc46e5ba5073e181331bb824dfa4f5" id="r_a29cc46e5ba5073e181331bb824dfa4f5"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a29cc46e5ba5073e181331bb824dfa4f5">Mutex</a> = typename Adaptor::Mutex</td></tr>
<tr class="separator:a29cc46e5ba5073e181331bb824dfa4f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a347521e28c20acb8fe6582fc5b917888" id="r_a347521e28c20acb8fe6582fc5b917888"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a347521e28c20acb8fe6582fc5b917888">Validation</a> = typename Adaptor::Validation</td></tr>
<tr class="separator:a347521e28c20acb8fe6582fc5b917888"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab12762703bf6418522381ff513a33856" id="r_ab12762703bf6418522381ff513a33856"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#ab12762703bf6418522381ff513a33856">Ledger</a> = typename Adaptor::Ledger</td></tr>
<tr class="separator:ab12762703bf6418522381ff513a33856"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acddbd8581fe7d4466e20da9143364915" id="r_acddbd8581fe7d4466e20da9143364915"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a> = typename Ledger::ID</td></tr>
<tr class="separator:acddbd8581fe7d4466e20da9143364915"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bb85550f592de56d2b1ae0c15938162" id="r_a1bb85550f592de56d2b1ae0c15938162"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a> = typename Ledger::Seq</td></tr>
<tr class="separator:a1bb85550f592de56d2b1ae0c15938162"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a678c0348bd68f913d6f53f53e40c3f50" id="r_a678c0348bd68f913d6f53f53e40c3f50"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a> = typename Validation::NodeID</td></tr>
<tr class="separator:a678c0348bd68f913d6f53f53e40c3f50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a478fe0e878e729d04eaad7b4c6897e26" id="r_a478fe0e878e729d04eaad7b4c6897e26"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a478fe0e878e729d04eaad7b4c6897e26">NodeKey</a> = typename Validation::NodeKey</td></tr>
<tr class="separator:a478fe0e878e729d04eaad7b4c6897e26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed95c3c0f3992ca0755fe6a07e39e268" id="r_aed95c3c0f3992ca0755fe6a07e39e268"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#aed95c3c0f3992ca0755fe6a07e39e268">WrappedValidationType</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/types/decay.html">std::decay_t</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/result_of.html">std::invoke_result_t</a>&lt; decltype(&amp;Validation::unwrap), <a class="el" href="classripple_1_1Validations.html#a347521e28c20acb8fe6582fc5b917888">Validation</a> &gt; &gt;</td></tr>
<tr class="separator:aed95c3c0f3992ca0755fe6a07e39e268"><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:a3901209fd17b557baaae809af3efdbc2" id="r_a3901209fd17b557baaae809af3efdbc2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a3901209fd17b557baaae809af3efdbc2">removeTrie</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a>&lt; <a class="el" href="classripple_1_1Validations.html#a29cc46e5ba5073e181331bb824dfa4f5">Mutex</a> &gt; const &amp;, <a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a> const &amp;nodeID, <a class="el" href="classripple_1_1Validations.html#a347521e28c20acb8fe6582fc5b917888">Validation</a> const &amp;val)</td></tr>
<tr class="separator:a3901209fd17b557baaae809af3efdbc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbb465aa9320edb48f75f409180b66ae" id="r_adbb465aa9320edb48f75f409180b66ae"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#adbb465aa9320edb48f75f409180b66ae">checkAcquired</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a>&lt; <a class="el" href="classripple_1_1Validations.html#a29cc46e5ba5073e181331bb824dfa4f5">Mutex</a> &gt; const &amp;lock)</td></tr>
<tr class="separator:adbb465aa9320edb48f75f409180b66ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84d89d10b9ee57fcdb8fccd003a8125a" id="r_a84d89d10b9ee57fcdb8fccd003a8125a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a84d89d10b9ee57fcdb8fccd003a8125a">updateTrie</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a>&lt; <a class="el" href="classripple_1_1Validations.html#a29cc46e5ba5073e181331bb824dfa4f5">Mutex</a> &gt; const &amp;, <a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a> const &amp;nodeID, <a class="el" href="classripple_1_1Validations.html#ab12762703bf6418522381ff513a33856">Ledger</a> ledger)</td></tr>
<tr class="separator:a84d89d10b9ee57fcdb8fccd003a8125a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd481762c222f965eb5db1c6a9439962" id="r_abd481762c222f965eb5db1c6a9439962"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#abd481762c222f965eb5db1c6a9439962">updateTrie</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a>&lt; <a class="el" href="classripple_1_1Validations.html#a29cc46e5ba5073e181331bb824dfa4f5">Mutex</a> &gt; const &amp;lock, <a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a> const &amp;nodeID, <a class="el" href="classripple_1_1Validations.html#a347521e28c20acb8fe6582fc5b917888">Validation</a> const &amp;val, <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; <a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a>, <a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a> &gt; &gt; prior)</td></tr>
<tr class="memdesc:abd481762c222f965eb5db1c6a9439962"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process a new validation. <br /></td></tr>
<tr class="separator:abd481762c222f965eb5db1c6a9439962"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15378109defef58e85955ce6de26f465" id="r_a15378109defef58e85955ce6de26f465"><td class="memTemplParams" colspan="2">template&lt;class F &gt; </td></tr>
<tr class="memitem:a15378109defef58e85955ce6de26f465"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a15378109defef58e85955ce6de26f465">withTrie</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a>&lt; <a class="el" href="classripple_1_1Validations.html#a29cc46e5ba5073e181331bb824dfa4f5">Mutex</a> &gt; const &amp;lock, F &amp;&amp;f)</td></tr>
<tr class="memdesc:a15378109defef58e85955ce6de26f465"><td class="mdescLeft">&#160;</td><td class="mdescRight">Use the trie for a calculation. <br /></td></tr>
<tr class="separator:a15378109defef58e85955ce6de26f465"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00f50d5dbf7ebcee31a5ec7fc448e512" id="r_a00f50d5dbf7ebcee31a5ec7fc448e512"><td class="memTemplParams" colspan="2">template&lt;class Pre , class F &gt; </td></tr>
<tr class="memitem:a00f50d5dbf7ebcee31a5ec7fc448e512"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a00f50d5dbf7ebcee31a5ec7fc448e512">current</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a>&lt; <a class="el" href="classripple_1_1Validations.html#a29cc46e5ba5073e181331bb824dfa4f5">Mutex</a> &gt; const &amp;lock, Pre &amp;&amp;pre, F &amp;&amp;f)</td></tr>
<tr class="memdesc:a00f50d5dbf7ebcee31a5ec7fc448e512"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterate current validations. <br /></td></tr>
<tr class="separator:a00f50d5dbf7ebcee31a5ec7fc448e512"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae785690992471565a55935ed04428a7d" id="r_ae785690992471565a55935ed04428a7d"><td class="memTemplParams" colspan="2">template&lt;class Pre , class F &gt; </td></tr>
<tr class="memitem:ae785690992471565a55935ed04428a7d"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#ae785690992471565a55935ed04428a7d">byLedger</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a>&lt; <a class="el" href="classripple_1_1Validations.html#a29cc46e5ba5073e181331bb824dfa4f5">Mutex</a> &gt; const &amp;, <a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a> const &amp;ledgerID, Pre &amp;&amp;pre, F &amp;&amp;f)</td></tr>
<tr class="memdesc:ae785690992471565a55935ed04428a7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterate the set of validations associated with a given ledger id. <br /></td></tr>
<tr class="separator:ae785690992471565a55935ed04428a7d"><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:a3ed6c001b0138dd244ed95088416bbaf" id="r_a3ed6c001b0138dd244ed95088416bbaf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1Validations.html#a29cc46e5ba5073e181331bb824dfa4f5">Mutex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a3ed6c001b0138dd244ed95088416bbaf">mutex_</a></td></tr>
<tr class="separator:a3ed6c001b0138dd244ed95088416bbaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82ea344b0091ad9b5e61f747e1fc79e0" id="r_a82ea344b0091ad9b5e61f747e1fc79e0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceripple.html#a46c521271235f4e2715d7fa8b68940ca">hash_map</a>&lt; <a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a>, <a class="el" href="classripple_1_1Validations.html#a347521e28c20acb8fe6582fc5b917888">Validation</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a82ea344b0091ad9b5e61f747e1fc79e0">current_</a></td></tr>
<tr class="separator:a82ea344b0091ad9b5e61f747e1fc79e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a480b98408f223d9557946cd11006928f" id="r_a480b98408f223d9557946cd11006928f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1SeqEnforcer.html">SeqEnforcer</a>&lt; <a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a480b98408f223d9557946cd11006928f">localSeqEnforcer_</a></td></tr>
<tr class="separator:a480b98408f223d9557946cd11006928f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42f7dc3b74293f1773620e6c6fc2e196" id="r_a42f7dc3b74293f1773620e6c6fc2e196"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceripple.html#a46c521271235f4e2715d7fa8b68940ca">hash_map</a>&lt; <a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a>, <a class="el" href="classripple_1_1SeqEnforcer.html">SeqEnforcer</a>&lt; <a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a42f7dc3b74293f1773620e6c6fc2e196">seqEnforcers_</a></td></tr>
<tr class="separator:a42f7dc3b74293f1773620e6c6fc2e196"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6bebdea6f71ad168e8521ddc5ae01a15" id="r_a6bebdea6f71ad168e8521ddc5ae01a15"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacebeast.html#af6181fa93ab6095c2364cc166ad6eca3">beast::aged_unordered_map</a>&lt; <a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a>, <a class="el" href="namespaceripple.html#a46c521271235f4e2715d7fa8b68940ca">hash_map</a>&lt; <a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a>, <a class="el" href="classripple_1_1Validations.html#a347521e28c20acb8fe6582fc5b917888">Validation</a> &gt;, <a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/steady_clock.html">std::chrono::steady_clock</a>, <a class="el" href="structbeast_1_1uhash.html">beast::uhash</a>&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a6bebdea6f71ad168e8521ddc5ae01a15">byLedger_</a></td></tr>
<tr class="memdesc:a6bebdea6f71ad168e8521ddc5ae01a15"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classripple_1_1Validations.html" title="Maintains current and recent ledger validations.">Validations</a> from listed nodes, indexed by ledger id (partial and full) <br /></td></tr>
<tr class="separator:a6bebdea6f71ad168e8521ddc5ae01a15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac130cfc0517fa32929f05f5489883e5a" id="r_ac130cfc0517fa32929f05f5489883e5a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacebeast.html#af6181fa93ab6095c2364cc166ad6eca3">beast::aged_unordered_map</a>&lt; <a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a>, <a class="el" href="namespaceripple.html#a46c521271235f4e2715d7fa8b68940ca">hash_map</a>&lt; <a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a>, <a class="el" href="classripple_1_1Validations.html#a347521e28c20acb8fe6582fc5b917888">Validation</a> &gt;, <a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/steady_clock.html">std::chrono::steady_clock</a>, <a class="el" href="structbeast_1_1uhash.html">beast::uhash</a>&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#ac130cfc0517fa32929f05f5489883e5a">bySequence_</a></td></tr>
<tr class="separator:ac130cfc0517fa32929f05f5489883e5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a9b192892f110b2cf71468e85edec80" id="r_a9a9b192892f110b2cf71468e85edec80"><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_1Validations_1_1KeepRange.html">KeepRange</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a9a9b192892f110b2cf71468e85edec80">toKeep_</a></td></tr>
<tr class="separator:a9a9b192892f110b2cf71468e85edec80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8aab0cbcea7bfc39e53aaaf4a19b841d" id="r_a8aab0cbcea7bfc39e53aaaf4a19b841d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1LedgerTrie.html">LedgerTrie</a>&lt; <a class="el" href="classripple_1_1Validations.html#ab12762703bf6418522381ff513a33856">Ledger</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a8aab0cbcea7bfc39e53aaaf4a19b841d">trie_</a></td></tr>
<tr class="separator:a8aab0cbcea7bfc39e53aaaf4a19b841d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a182a987f9c2f6cf9b67fe3cb0d12b247" id="r_a182a987f9c2f6cf9b67fe3cb0d12b247"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceripple.html#a46c521271235f4e2715d7fa8b68940ca">hash_map</a>&lt; <a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a>, <a class="el" href="classripple_1_1Validations.html#ab12762703bf6418522381ff513a33856">Ledger</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a182a987f9c2f6cf9b67fe3cb0d12b247">lastLedger_</a></td></tr>
<tr class="separator:a182a987f9c2f6cf9b67fe3cb0d12b247"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53ae01ff5cb67d1848e5f2827e19d85d" id="r_a53ae01ff5cb67d1848e5f2827e19d85d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceripple.html#a46c521271235f4e2715d7fa8b68940ca">hash_map</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; <a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a>, <a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a> &gt;, <a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt; <a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#a53ae01ff5cb67d1848e5f2827e19d85d">acquiring_</a></td></tr>
<tr class="separator:a53ae01ff5cb67d1848e5f2827e19d85d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa69eb06a7563c955e1eec92f9e5d1b06" id="r_aa69eb06a7563c955e1eec92f9e5d1b06"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structripple_1_1ValidationParms.html">ValidationParms</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#aa69eb06a7563c955e1eec92f9e5d1b06">parms_</a></td></tr>
<tr class="separator:aa69eb06a7563c955e1eec92f9e5d1b06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6b585e0ae2a0cc88fdd3bdaa1c92378" id="r_ae6b585e0ae2a0cc88fdd3bdaa1c92378"><td class="memItemLeft" align="right" valign="top">Adaptor&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Validations.html#ae6b585e0ae2a0cc88fdd3bdaa1c92378">adaptor_</a></td></tr>
<tr class="separator:ae6b585e0ae2a0cc88fdd3bdaa1c92378"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><div class="compoundTemplParams">template&lt;class Adaptor&gt;<br />
class ripple::Validations&lt; Adaptor &gt;</div><p>Maintains current and recent ledger validations. </p>
<p>Manages storage and queries related to validations received on the network. Stores the most current validation from nodes and sets of recent validations grouped by ledger identifier.</p>
<p>Stored validations are not necessarily from trusted nodes, so clients and implementations should take care to use <code>trusted</code> member functions or check the validation's trusted status.</p>
<p>This class uses a generic interface to allow adapting <a class="el" href="classripple_1_1Validations.html" title="Maintains current and recent ledger validations.">Validations</a> for specific applications. The Adaptor template implements a set of helper functions and type definitions. The code stubs below outline the interface and type requirements.</p>
<dl class="section warning"><dt>Warning</dt><dd>The Adaptor::MutexType is used to manage concurrent access to private members of <a class="el" href="classripple_1_1Validations.html" title="Maintains current and recent ledger validations.">Validations</a> but does not manage any data in the Adaptor instance itself.</dd></dl>
<div class="fragment"><div class="line"><span class="comment">// Conforms to the Ledger type requirements of LedgerTrie</span></div>
<div class="line"><span class="keyword">struct </span><a class="code hl_typedef" href="classripple_1_1Validations.html#ab12762703bf6418522381ff513a33856">Ledger</a>;</div>
<div class="line"> </div>
<div class="line"><span class="keyword">struct </span><a class="code hl_typedef" href="classripple_1_1Validations.html#a347521e28c20acb8fe6582fc5b917888">Validation</a></div>
<div class="line">{</div>
<div class="line"> <span class="keyword">using </span><a class="code hl_typedef" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a> = ...;</div>
<div class="line"> <span class="keyword">using </span><a class="code hl_typedef" href="classripple_1_1Validations.html#a478fe0e878e729d04eaad7b4c6897e26">NodeKey</a> = ...;</div>
<div class="line"> </div>
<div class="line"> <span class="comment">// Ledger ID associated with this validation</span></div>
<div class="line"> Ledger::ID ledgerID() <span class="keyword">const</span>;</div>
<div class="line"> </div>
<div class="line"> <span class="comment">// Sequence number of validation&#39;s ledger (0 means no sequence number)</span></div>
<div class="line"> Ledger::Seq seq() const</div>
<div class="line"> </div>
<div class="line"> <span class="comment">// When the validation was signed</span></div>
<div class="line"> <a class="code hl_class" href="classripple_1_1NetClock.html">NetClock</a>::time_point signTime() const;</div>
<div class="line"> </div>
<div class="line"> <span class="comment">// When the validation was first observed by this node</span></div>
<div class="line"> <a class="code hl_class" href="classripple_1_1NetClock.html">NetClock</a>::time_point seenTime() const;</div>
<div class="line"> </div>
<div class="line"> <span class="comment">// Signing key of node that published the validation</span></div>
<div class="line"> <a class="code hl_typedef" href="classripple_1_1Validations.html#a478fe0e878e729d04eaad7b4c6897e26">NodeKey</a> key() const;</div>
<div class="line"> </div>
<div class="line"> <span class="comment">// Whether the publishing node was trusted at the time the validation</span></div>
<div class="line"> <span class="comment">// arrived</span></div>
<div class="line"> <span class="keywordtype">bool</span> trusted() const;</div>
<div class="line"> </div>
<div class="line"> <span class="comment">// Set the validation as trusted</span></div>
<div class="line"> <span class="keywordtype">void</span> setTrusted();</div>
<div class="line"> </div>
<div class="line"> <span class="comment">// Set the validation as untrusted</span></div>
<div class="line"> <span class="keywordtype">void</span> setUntrusted();</div>
<div class="line"> </div>
<div class="line"> <span class="comment">// Whether this is a full or partial validation</span></div>
<div class="line"> <span class="keywordtype">bool</span> full() const;</div>
<div class="line"> </div>
<div class="line"> <span class="comment">// Identifier for this node that remains fixed even when rotating</span></div>
<div class="line"> <span class="comment">// signing keys</span></div>
<div class="line"> <a class="code hl_typedef" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a> nodeID() const;</div>
<div class="line"> </div>
<div class="line"> implementation_specific_t</div>
<div class="line"> unwrap() -&gt; return the implementation-specific type being wrapped</div>
<div class="line"> </div>
<div class="line"> <span class="comment">// ... implementation specific</span></div>
<div class="line">};</div>
<div class="line"> </div>
<div class="line">class Adaptor</div>
<div class="line">{</div>
<div class="line"> <span class="keyword">using </span><a class="code hl_typedef" href="classripple_1_1Validations.html#a29cc46e5ba5073e181331bb824dfa4f5">Mutex</a> = <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a>;</div>
<div class="line"> <span class="keyword">using </span><a class="code hl_typedef" href="classripple_1_1Validations.html#a347521e28c20acb8fe6582fc5b917888">Validation</a> = <a class="code hl_typedef" href="classripple_1_1Validations.html#a347521e28c20acb8fe6582fc5b917888">Validation</a>;</div>
<div class="line"> <span class="keyword">using </span><a class="code hl_typedef" href="classripple_1_1Validations.html#ab12762703bf6418522381ff513a33856">Ledger</a> = <a class="code hl_typedef" href="classripple_1_1Validations.html#ab12762703bf6418522381ff513a33856">Ledger</a>;</div>
<div class="line"> </div>
<div class="line"> <span class="comment">// Return the current network time (used to determine staleness)</span></div>
<div class="line"> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a> now() <span class="keyword">const</span>;</div>
<div class="line"> </div>
<div class="line"> <span class="comment">// Attempt to acquire a specific ledger.</span></div>
<div class="line"> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;Ledger&gt;</a> acquire(Ledger::ID <span class="keyword">const</span> &amp; ledgerID);</div>
<div class="line"> </div>
<div class="line"> <span class="comment">// ... implementation specific</span></div>
<div class="line">};</div>
<div class="ttc" id="aclassripple_1_1NetClock_html"><div class="ttname"><a href="classripple_1_1NetClock.html">ripple::NetClock</a></div><div class="ttdef"><b>Definition</b> <a href="chrono_8h_source.html#l00042">chrono.h:43</a></div></div>
<div class="ttc" id="aclassripple_1_1Validations_html_a29cc46e5ba5073e181331bb824dfa4f5"><div class="ttname"><a href="classripple_1_1Validations.html#a29cc46e5ba5073e181331bb824dfa4f5">ripple::Validations::Mutex</a></div><div class="ttdeci">typename Adaptor::Mutex Mutex</div><div class="ttdef"><b>Definition</b> <a href="Validations_8h_source.html#l00272">Validations.h:272</a></div></div>
<div class="ttc" id="aclassripple_1_1Validations_html_a347521e28c20acb8fe6582fc5b917888"><div class="ttname"><a href="classripple_1_1Validations.html#a347521e28c20acb8fe6582fc5b917888">ripple::Validations::Validation</a></div><div class="ttdeci">typename Adaptor::Validation Validation</div><div class="ttdef"><b>Definition</b> <a href="Validations_8h_source.html#l00273">Validations.h:273</a></div></div>
<div class="ttc" id="aclassripple_1_1Validations_html_a478fe0e878e729d04eaad7b4c6897e26"><div class="ttname"><a href="classripple_1_1Validations.html#a478fe0e878e729d04eaad7b4c6897e26">ripple::Validations::NodeKey</a></div><div class="ttdeci">typename Validation::NodeKey NodeKey</div><div class="ttdef"><b>Definition</b> <a href="Validations_8h_source.html#l00278">Validations.h:278</a></div></div>
<div class="ttc" id="aclassripple_1_1Validations_html_a678c0348bd68f913d6f53f53e40c3f50"><div class="ttname"><a href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">ripple::Validations::NodeID</a></div><div class="ttdeci">typename Validation::NodeID NodeID</div><div class="ttdef"><b>Definition</b> <a href="Validations_8h_source.html#l00277">Validations.h:277</a></div></div>
<div class="ttc" id="aclassripple_1_1Validations_html_ab12762703bf6418522381ff513a33856"><div class="ttname"><a href="classripple_1_1Validations.html#ab12762703bf6418522381ff513a33856">ripple::Validations::Ledger</a></div><div class="ttdeci">typename Adaptor::Ledger Ledger</div><div class="ttdef"><b>Definition</b> <a href="Validations_8h_source.html#l00274">Validations.h:274</a></div></div>
<div class="ttc" id="amutex_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a></div></div>
<div class="ttc" id="aoptional_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a></div></div>
<div class="ttc" id="atime_point_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/time_point.html">std::chrono::time_point</a></div></div>
</div><!-- fragment --><dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Adaptor</td><td>Provides type definitions and callbacks </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l00270">270</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="a29cc46e5ba5073e181331bb824dfa4f5" name="a29cc46e5ba5073e181331bb824dfa4f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a29cc46e5ba5073e181331bb824dfa4f5">&#9670;&#160;</a></span>Mutex</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::Mutex = typename Adaptor::Mutex</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="Validations_8h_source.html#l00272">272</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a347521e28c20acb8fe6582fc5b917888" name="a347521e28c20acb8fe6582fc5b917888"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a347521e28c20acb8fe6582fc5b917888">&#9670;&#160;</a></span>Validation</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::Validation = typename Adaptor::Validation</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="Validations_8h_source.html#l00273">273</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="ab12762703bf6418522381ff513a33856" name="ab12762703bf6418522381ff513a33856"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab12762703bf6418522381ff513a33856">&#9670;&#160;</a></span>Ledger</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::Ledger = typename Adaptor::Ledger</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="Validations_8h_source.html#l00274">274</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="acddbd8581fe7d4466e20da9143364915" name="acddbd8581fe7d4466e20da9143364915"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acddbd8581fe7d4466e20da9143364915">&#9670;&#160;</a></span>ID</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::ID = typename Ledger::ID</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="Validations_8h_source.html#l00275">275</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a1bb85550f592de56d2b1ae0c15938162" name="a1bb85550f592de56d2b1ae0c15938162"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1bb85550f592de56d2b1ae0c15938162">&#9670;&#160;</a></span>Seq</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::Seq = typename Ledger::Seq</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="Validations_8h_source.html#l00276">276</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a678c0348bd68f913d6f53f53e40c3f50" name="a678c0348bd68f913d6f53f53e40c3f50"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a678c0348bd68f913d6f53f53e40c3f50">&#9670;&#160;</a></span>NodeID</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::NodeID = typename Validation::NodeID</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="Validations_8h_source.html#l00277">277</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a478fe0e878e729d04eaad7b4c6897e26" name="a478fe0e878e729d04eaad7b4c6897e26"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a478fe0e878e729d04eaad7b4c6897e26">&#9670;&#160;</a></span>NodeKey</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::NodeKey = typename Validation::NodeKey</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="Validations_8h_source.html#l00278">278</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="aed95c3c0f3992ca0755fe6a07e39e268" name="aed95c3c0f3992ca0755fe6a07e39e268"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aed95c3c0f3992ca0755fe6a07e39e268">&#9670;&#160;</a></span>WrappedValidationType</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::WrappedValidationType = <a class="elRef" href="http://en.cppreference.com/w/cpp/types/decay.html">std::decay_t</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/result_of.html">std::invoke_result_t</a>&lt;decltype(&amp;Validation::unwrap), <a class="el" href="classripple_1_1Validations.html#a347521e28c20acb8fe6582fc5b917888">Validation</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="Validations_8h_source.html#l00280">280</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a37586cfd59e9e0ce5f4aad6029e1a077" name="a37586cfd59e9e0ce5f4aad6029e1a077"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a37586cfd59e9e0ce5f4aad6029e1a077">&#9670;&#160;</a></span>Validations()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<div class="memtemplate">
template&lt;class... Ts&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::Validations </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structripple_1_1ValidationParms.html">ValidationParms</a> const &amp;&#160;</td>
<td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classbeast_1_1abstract__clock.html">beast::abstract_clock</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/steady_clock.html">std::chrono::steady_clock</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Ts &amp;&amp;...&#160;</td>
<td class="paramname"><em>ts</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">p</td><td><a class="el" href="structripple_1_1ValidationParms.html" title="Timing parameters to control validation staleness and expiration.">ValidationParms</a> to control staleness/expiration of validations </td></tr>
<tr><td class="paramname">c</td><td>Clock to use for expiring validations stored by ledger </td></tr>
<tr><td class="paramname">ts</td><td>Parameters for constructing Adaptor instance </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l00555">555</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a3901209fd17b557baaae809af3efdbc2" name="a3901209fd17b557baaae809af3efdbc2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3901209fd17b557baaae809af3efdbc2">&#9670;&#160;</a></span>removeTrie()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::removeTrie </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="el" href="classripple_1_1Validations.html#a29cc46e5ba5073e181331bb824dfa4f5">Mutex</a> &gt; const &amp;&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a> const &amp;&#160;</td>
<td class="paramname"><em>nodeID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1Validations.html#a347521e28c20acb8fe6582fc5b917888">Validation</a> const &amp;&#160;</td>
<td class="paramname"><em>val</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="Validations_8h_source.html#l00339">339</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="adbb465aa9320edb48f75f409180b66ae" name="adbb465aa9320edb48f75f409180b66ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adbb465aa9320edb48f75f409180b66ae">&#9670;&#160;</a></span>checkAcquired()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::checkAcquired </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="el" href="classripple_1_1Validations.html#a29cc46e5ba5073e181331bb824dfa4f5">Mutex</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>lock</em></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="Validations_8h_source.html#l00366">366</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a84d89d10b9ee57fcdb8fccd003a8125a" name="a84d89d10b9ee57fcdb8fccd003a8125a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a84d89d10b9ee57fcdb8fccd003a8125a">&#9670;&#160;</a></span>updateTrie() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::updateTrie </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="el" href="classripple_1_1Validations.html#a29cc46e5ba5073e181331bb824dfa4f5">Mutex</a> &gt; const &amp;&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a> const &amp;&#160;</td>
<td class="paramname"><em>nodeID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1Validations.html#ab12762703bf6418522381ff513a33856">Ledger</a>&#160;</td>
<td class="paramname"><em>ledger</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="Validations_8h_source.html#l00385">385</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="abd481762c222f965eb5db1c6a9439962" name="abd481762c222f965eb5db1c6a9439962"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abd481762c222f965eb5db1c6a9439962">&#9670;&#160;</a></span>updateTrie() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::updateTrie </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="el" href="classripple_1_1Validations.html#a29cc46e5ba5073e181331bb824dfa4f5">Mutex</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>lock</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a> const &amp;&#160;</td>
<td class="paramname"><em>nodeID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1Validations.html#a347521e28c20acb8fe6582fc5b917888">Validation</a> const &amp;&#160;</td>
<td class="paramname"><em>val</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; <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; <a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a>, <a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a> &gt; &gt;&#160;</td>
<td class="paramname"><em>prior</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>Process a new validation. </p>
<p>Process a new trusted validation from a validator. This will be reflected only after the validated ledger is successfully acquired by the local node. In the interim, the prior validated ledger from this node remains.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">lock</td><td>Existing lock of mutex_ </td></tr>
<tr><td class="paramname">nodeID</td><td>The node identifier of the validating node </td></tr>
<tr><td class="paramname">val</td><td>The trusted validation issued by the node </td></tr>
<tr><td class="paramname">prior</td><td>If not none, the last current validated ledger Seq,ID of key </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l00413">413</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a15378109defef58e85955ce6de26f465" name="a15378109defef58e85955ce6de26f465"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15378109defef58e85955ce6de26f465">&#9670;&#160;</a></span>withTrie()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<div class="memtemplate">
template&lt;class F &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">auto <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::withTrie </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="el" href="classripple_1_1Validations.html#a29cc46e5ba5073e181331bb824dfa4f5">Mutex</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>lock</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">F &amp;&amp;&#160;</td>
<td class="paramname"><em>f</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>Use the trie for a calculation. </p>
<p>Accessing the trie through this helper ensures acquiring validations are checked and any stale validations are flushed from the trie.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">lock</td><td>Existing lock of mutex_ </td></tr>
<tr><td class="paramname">f</td><td>Invokable with signature (LedgerTrie&lt;Ledger&gt; &amp;)</td></tr>
</table>
</dd>
</dl>
<dl class="section warning"><dt>Warning</dt><dd>The invokable <code>f</code> is expected to be a simple transformation of its arguments and will be called with mutex_ under lock. </dd></dl>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l00466">466</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a00f50d5dbf7ebcee31a5ec7fc448e512" name="a00f50d5dbf7ebcee31a5ec7fc448e512"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00f50d5dbf7ebcee31a5ec7fc448e512">&#9670;&#160;</a></span>current()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<div class="memtemplate">
template&lt;class Pre , class F &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::current </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="el" href="classripple_1_1Validations.html#a29cc46e5ba5073e181331bb824dfa4f5">Mutex</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>lock</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Pre &amp;&amp;&#160;</td>
<td class="paramname"><em>pre</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">F &amp;&amp;&#160;</td>
<td class="paramname"><em>f</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>Iterate current validations. </p>
<p>Iterate current validations, flushing any which are stale.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">lock</td><td>Existing lock of mutex_ </td></tr>
<tr><td class="paramname">pre</td><td>Invokable with signature (<a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>) called prior to looping. </td></tr>
<tr><td class="paramname">f</td><td>Invokable with signature (NodeID const &amp;, <a class="el" href="classripple_1_1Validations.html" title="Maintains current and recent ledger validations.">Validations</a> const &amp;) for each current validation.</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The invokable <code>pre</code> is called <em>prior</em> to checking for staleness and reflects an upper-bound on the number of calls to <code>f. @warning The invokable</code>f` is expected to be a simple transformation of its arguments and will be called with mutex_ under lock. </dd></dl>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l00492">492</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="ae785690992471565a55935ed04428a7d" name="ae785690992471565a55935ed04428a7d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae785690992471565a55935ed04428a7d">&#9670;&#160;</a></span>byLedger()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<div class="memtemplate">
template&lt;class Pre , class F &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::byLedger </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="el" href="classripple_1_1Validations.html#a29cc46e5ba5073e181331bb824dfa4f5">Mutex</a> &gt; const &amp;&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a> const &amp;&#160;</td>
<td class="paramname"><em>ledgerID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Pre &amp;&amp;&#160;</td>
<td class="paramname"><em>pre</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">F &amp;&amp;&#160;</td>
<td class="paramname"><em>f</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>Iterate the set of validations associated with a given ledger id. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">lock</td><td>Existing lock on mutex_ </td></tr>
<tr><td class="paramname">ledgerID</td><td>The identifier of the ledger </td></tr>
<tr><td class="paramname">pre</td><td>Invokable with signature(std::size_t) </td></tr>
<tr><td class="paramname">f</td><td>Invokable with signature (NodeID const &amp;, Validation const &amp;)</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The invokable <code>pre</code> is called prior to iterating validations. The argument is the number of times <code>f</code> will be called. </dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>The invokable f is expected to be a simple transformation of its arguments and will be called with mutex_ under lock. </dd></dl>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l00530">530</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a352f2360563fa873e0500f81b633a776" name="a352f2360563fa873e0500f81b633a776"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a352f2360563fa873e0500f81b633a776">&#9670;&#160;</a></span>adaptor()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="memname">
<tr>
<td class="memname">Adaptor const &amp; <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::adaptor </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the adaptor instance. </p>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l00569">569</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a90a3a612fdeeeece6714725e4826a5f3" name="a90a3a612fdeeeece6714725e4826a5f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90a3a612fdeeeece6714725e4826a5f3">&#9670;&#160;</a></span>parms()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structripple_1_1ValidationParms.html">ValidationParms</a> const &amp; <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::parms </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the validation timing parameters. </p>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l00577">577</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="ae0fc73211431010b6343e0e2bc095cde" name="ae0fc73211431010b6343e0e2bc095cde"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae0fc73211431010b6343e0e2bc095cde">&#9670;&#160;</a></span>canValidateSeq()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::canValidateSeq </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a> const&#160;</td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return whether the local node can issue a validation for the given sequence number. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">s</td><td>The sequence number of the ledger the node wants to validate </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Whether the validation satisfies the invariant, updating the largest sequence number seen accordingly </dd></dl>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l00590">590</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="ae4f22dbf9bd39859dc6c43e4d6713888" name="ae4f22dbf9bd39859dc6c43e4d6713888"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae4f22dbf9bd39859dc6c43e4d6713888">&#9670;&#160;</a></span>add()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceripple.html#a6434c1a0fd22b77e2e4a228c0eca79eb">ValStatus</a> <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::add </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a> const &amp;&#160;</td>
<td class="paramname"><em>nodeID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1Validations.html#a347521e28c20acb8fe6582fc5b917888">Validation</a> const &amp;&#160;</td>
<td class="paramname"><em>val</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Add a new validation. </p>
<p>Attempt to add a new validation.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">nodeID</td><td>The identity of the node issuing this validation </td></tr>
<tr><td class="paramname">val</td><td>The validation to store </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The outcome </dd></dl>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l00605">605</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="adcb502704e0d786d3a27d8be38a87916" name="adcb502704e0d786d3a27d8be38a87916"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adcb502704e0d786d3a27d8be38a87916">&#9670;&#160;</a></span>setSeqToKeep()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::setSeqToKeep </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a> const &amp;&#160;</td>
<td class="paramname"><em>low</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a> const &amp;&#160;</td>
<td class="paramname"><em>high</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the range [low, high) of validations to keep from expire. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">low</td><td>the lower sequence number </td></tr>
<tr><td class="paramname">high</td><td>the higher sequence number </td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>high must be greater than low </dd></dl>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l00697">697</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="af38e15b27f5b40adc89539807a692872" name="af38e15b27f5b40adc89539807a692872"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af38e15b27f5b40adc89539807a692872">&#9670;&#160;</a></span>expire()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::expire </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> &amp;&#160;</td>
<td class="paramname"><em>j</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Expire old validation sets. </p>
<p>Remove validation sets that were accessed more than validationSET_EXPIRES ago and were not asked to keep. </p>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l00711">711</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="ac764335dc3c5d9625cc74fd757331722" name="ac764335dc3c5d9625cc74fd757331722"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac764335dc3c5d9625cc74fd757331722">&#9670;&#160;</a></span>trustChanged()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::trustChanged </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt; <a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>added</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt; <a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>removed</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Update trust status of validations. </p>
<p>Updates the trusted status of known validations to account for nodes that have been added or removed from the UNL. This also updates the trie to ensure only currently trusted nodes' validations are used.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">added</td><td>Identifiers of nodes that are now trusted </td></tr>
<tr><td class="paramname">removed</td><td>Identifiers of nodes that are no longer trusted </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l00776">776</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a4436616304f6309389ddd6d11f5560d2" name="a4436616304f6309389ddd6d11f5560d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4436616304f6309389ddd6d11f5560d2">&#9670;&#160;</a></span>getJsonTrie()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classJson_1_1Value.html">Json::Value</a> <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::getJsonTrie </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l00812">812</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a18c755bfd41cfc3a7f68d3eebfae8b0f" name="a18c755bfd41cfc3a7f68d3eebfae8b0f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a18c755bfd41cfc3a7f68d3eebfae8b0f">&#9670;&#160;</a></span>getPreferred() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; <a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a>, <a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a> &gt; &gt; <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::getPreferred </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Validations.html#ab12762703bf6418522381ff513a33856">Ledger</a> const &amp;&#160;</td>
<td class="paramname"><em>curr</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the sequence number and ID of the preferred working ledger. </p>
<p>A ledger is preferred if it has more support amongst trusted validators and is <em>not</em> an ancestor of the current working ledger; otherwise it remains the current working ledger.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">curr</td><td>The local node's current working ledger</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The sequence and id of the preferred working ledger, or <a class="elRef" href="http://en.cppreference.com/w/cpp/types/is_same.html">std::nullopt</a> if no trusted validations are available to determine the preferred ledger. </dd></dl>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l00831">831</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="ad8cbed0563344b297789575879aae482" name="ad8cbed0563344b297789575879aae482"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad8cbed0563344b297789575879aae482">&#9670;&#160;</a></span>getPreferred() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a> <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::getPreferred </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Validations.html#ab12762703bf6418522381ff513a33856">Ledger</a> const &amp;&#160;</td>
<td class="paramname"><em>curr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a>&#160;</td>
<td class="paramname"><em>minValidSeq</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the ID of the preferred working ledger that exceeds a minimum valid ledger sequence number. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">curr</td><td>Current working ledger </td></tr>
<tr><td class="paramname">minValidSeq</td><td>Minimum allowed sequence number</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ID Of the preferred ledger, or curr if the preferred ledger is not valid </dd></dl>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l00892">892</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="abe6526fada634c34ab78897b910840de" name="abe6526fada634c34ab78897b910840de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe6526fada634c34ab78897b910840de">&#9670;&#160;</a></span>getPreferredLCL()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a> <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::getPreferredLCL </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Validations.html#ab12762703bf6418522381ff513a33856">Ledger</a> const &amp;&#160;</td>
<td class="paramname"><em>lcl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a>&#160;</td>
<td class="paramname"><em>minSeq</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a46c521271235f4e2715d7fa8b68940ca">hash_map</a>&lt; <a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a>, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>peerCounts</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Determine the preferred last closed ledger for the next consensus round. </p>
<p>Called before starting the next round of ledger consensus to determine the preferred working ledger. Uses the dominant peerCount ledger if no trusted validations are available.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">lcl</td><td>Last closed ledger by this node </td></tr>
<tr><td class="paramname">minSeq</td><td>Minimum allowed sequence number of the trusted preferred ledger </td></tr>
<tr><td class="paramname">peerCounts</td><td>Map from ledger ids to count of peers with that as the last closed ledger </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The preferred last closed ledger ID</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The minSeq does not apply to the peerCounts, since this function does not know their sequence number </dd></dl>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l00917">917</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="aa76949d45eaed5ed65e14e6da039afbe" name="aa76949d45eaed5ed65e14e6da039afbe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa76949d45eaed5ed65e14e6da039afbe">&#9670;&#160;</a></span>getNodesAfter()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::getNodesAfter </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Validations.html#ab12762703bf6418522381ff513a33856">Ledger</a> const &amp;&#160;</td>
<td class="paramname"><em>ledger</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a> const &amp;&#160;</td>
<td class="paramname"><em>ledgerID</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Count the number of current trusted validators working on a ledger after the specified one. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ledger</td><td>The working ledger </td></tr>
<tr><td class="paramname">ledgerID</td><td>The preferred ledger </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The number of current trusted validators working on a descendant of the preferred ledger</dd></dl>
<dl class="section note"><dt>Note</dt><dd>If ledger.id() != ledgerID, only counts immediate child ledgers of ledgerID </dd></dl>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l00955">955</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="aca110441b3ed136fe13f60417ae2756c" name="aca110441b3ed136fe13f60417ae2756c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aca110441b3ed136fe13f60417ae2756c">&#9670;&#160;</a></span>currentTrusted()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<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="classripple_1_1Validations.html#aed95c3c0f3992ca0755fe6a07e39e268">WrappedValidationType</a> &gt; <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::currentTrusted </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the currently trusted full validations. </p>
<dl class="section return"><dt>Returns</dt><dd>Vector of validations from currently trusted validators </dd></dl>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l00981">981</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a99e0278c402a718194a95830c4fe112d" name="a99e0278c402a718194a95830c4fe112d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a99e0278c402a718194a95830c4fe112d">&#9670;&#160;</a></span>getCurrentNodeIDs()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="memname">
<tr>
<td class="memname">auto <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::getCurrentNodeIDs </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> -&gt; <a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt;<a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a>&gt;
</td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the set of node ids associated with current validations. </p>
<dl class="section return"><dt>Returns</dt><dd>The set of node ids for active, listed validators </dd></dl>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l01000">1000</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a49f71ec8e41262f46c851cfb741d3299" name="a49f71ec8e41262f46c851cfb741d3299"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a49f71ec8e41262f46c851cfb741d3299">&#9670;&#160;</a></span>numTrustedForLedger()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::numTrustedForLedger </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a> const &amp;&#160;</td>
<td class="paramname"><em>ledgerID</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Count the number of trusted full validations for the given ledger. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ledgerID</td><td>The identifier of ledger of interest </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The number of trusted validations </dd></dl>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l01018">1018</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="aac16b1f1c7a92b8979af800ace0effd6" name="aac16b1f1c7a92b8979af800ace0effd6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac16b1f1c7a92b8979af800ace0effd6">&#9670;&#160;</a></span>getTrustedForLedger()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<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="classripple_1_1Validations.html#aed95c3c0f3992ca0755fe6a07e39e268">WrappedValidationType</a> &gt; <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::getTrustedForLedger </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a> const &amp;&#160;</td>
<td class="paramname"><em>ledgerID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a> const &amp;&#160;</td>
<td class="paramname"><em>seq</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get trusted full validations for a specific ledger. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ledgerID</td><td>The identifier of ledger of interest </td></tr>
<tr><td class="paramname">seq</td><td>The sequence number of ledger of interest </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Trusted validations associated with ledger </dd></dl>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l01040">1040</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="af7232b4c074831793ba25e32b95be103" name="af7232b4c074831793ba25e32b95be103"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af7232b4c074831793ba25e32b95be103">&#9670;&#160;</a></span>fees()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<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="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> &gt; <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::fees </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a> const &amp;&#160;</td>
<td class="paramname"><em>ledgerID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>&#160;</td>
<td class="paramname"><em>baseFee</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns fees reported by trusted full validators in the given ledger. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ledgerID</td><td>The identifier of ledger of interest </td></tr>
<tr><td class="paramname">baseFee</td><td>The fee to report if not present in the validation </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Vector of fees </dd></dl>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l01063">1063</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a8a3e6aea72a984baf7419ede37649d16" name="a8a3e6aea72a984baf7419ede37649d16"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8a3e6aea72a984baf7419ede37649d16">&#9670;&#160;</a></span>flush()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::flush </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Flush all current validations. </p>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l01087">1087</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a67e7951c10601258af0fd960ca6f1b3a" name="a67e7951c10601258af0fd960ca6f1b3a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a67e7951c10601258af0fd960ca6f1b3a">&#9670;&#160;</a></span>laggards()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::laggards </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a> const&#160;</td>
<td class="paramname"><em>seq</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt; <a class="el" href="classripple_1_1Validations.html#a478fe0e878e729d04eaad7b4c6897e26">NodeKey</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>trustedKeys</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return quantity of lagging proposers, and remove online proposers for purposes of evaluating whether to pause. </p>
<p>Laggards are the trusted proposers whose sequence number is lower than the sequence number from which our current pending proposal is based. Proposers from whom we have not received a validation for awhile are considered offline.</p>
<p>Note: the trusted flag is not used in this evaluation because it's made redundant by checking the list of proposers.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">seq</td><td>Our current sequence number. </td></tr>
<tr><td class="paramname">trustedKeys</td><td>Public keys of trusted proposers. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Quantity of laggards. </dd></dl>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l01109">1109</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a4175ef5da47e84d4b81425f792d4093c" name="a4175ef5da47e84d4b81425f792d4093c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4175ef5da47e84d4b81425f792d4093c">&#9670;&#160;</a></span>sizeOfCurrentCache()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::sizeOfCurrentCache </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l01131">1131</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="abf30fbb02212128d406e04f75043fbae" name="abf30fbb02212128d406e04f75043fbae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abf30fbb02212128d406e04f75043fbae">&#9670;&#160;</a></span>sizeOfSeqEnforcersCache()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::sizeOfSeqEnforcersCache </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l01138">1138</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a104cdf558a8bbf13f9d02279ca8206a1" name="a104cdf558a8bbf13f9d02279ca8206a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a104cdf558a8bbf13f9d02279ca8206a1">&#9670;&#160;</a></span>sizeOfByLedgerCache()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::sizeOfByLedgerCache </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l01145">1145</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="adb11cc41b8cf2734541e9abf41fbe23f" name="adb11cc41b8cf2734541e9abf41fbe23f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb11cc41b8cf2734541e9abf41fbe23f">&#9670;&#160;</a></span>sizeOfBySequenceCache()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::sizeOfBySequenceCache </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l01152">1152</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a3ed6c001b0138dd244ed95088416bbaf" name="a3ed6c001b0138dd244ed95088416bbaf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ed6c001b0138dd244ed95088416bbaf">&#9670;&#160;</a></span>mutex_</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classripple_1_1Validations.html#a29cc46e5ba5073e181331bb824dfa4f5">Mutex</a> <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::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 class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l00284">284</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a82ea344b0091ad9b5e61f747e1fc79e0" name="a82ea344b0091ad9b5e61f747e1fc79e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82ea344b0091ad9b5e61f747e1fc79e0">&#9670;&#160;</a></span>current_</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceripple.html#a46c521271235f4e2715d7fa8b68940ca">hash_map</a>&lt;<a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a>, <a class="el" href="classripple_1_1Validations.html#a347521e28c20acb8fe6582fc5b917888">Validation</a>&gt; <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::current_</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="Validations_8h_source.html#l00287">287</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a480b98408f223d9557946cd11006928f" name="a480b98408f223d9557946cd11006928f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a480b98408f223d9557946cd11006928f">&#9670;&#160;</a></span>localSeqEnforcer_</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classripple_1_1SeqEnforcer.html">SeqEnforcer</a>&lt;<a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a>&gt; <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::localSeqEnforcer_</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="Validations_8h_source.html#l00290">290</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a42f7dc3b74293f1773620e6c6fc2e196" name="a42f7dc3b74293f1773620e6c6fc2e196"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a42f7dc3b74293f1773620e6c6fc2e196">&#9670;&#160;</a></span>seqEnforcers_</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceripple.html#a46c521271235f4e2715d7fa8b68940ca">hash_map</a>&lt;<a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a>, <a class="el" href="classripple_1_1SeqEnforcer.html">SeqEnforcer</a>&lt;<a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a>&gt; &gt; <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::seqEnforcers_</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="Validations_8h_source.html#l00293">293</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a6bebdea6f71ad168e8521ddc5ae01a15" name="a6bebdea6f71ad168e8521ddc5ae01a15"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6bebdea6f71ad168e8521ddc5ae01a15">&#9670;&#160;</a></span>byLedger_</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacebeast.html#af6181fa93ab6095c2364cc166ad6eca3">beast::aged_unordered_map</a>&lt; <a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a>, <a class="el" href="namespaceripple.html#a46c521271235f4e2715d7fa8b68940ca">hash_map</a>&lt;<a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a>, <a class="el" href="classripple_1_1Validations.html#a347521e28c20acb8fe6582fc5b917888">Validation</a>&gt;, <a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/steady_clock.html">std::chrono::steady_clock</a>, <a class="el" href="structbeast_1_1uhash.html">beast::uhash</a>&lt;&gt; &gt; <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::byLedger_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classripple_1_1Validations.html" title="Maintains current and recent ledger validations.">Validations</a> from listed nodes, indexed by ledger id (partial and full) </p>
<p class="definition">Definition at line <a class="el" href="Validations_8h_source.html#l00301">301</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="ac130cfc0517fa32929f05f5489883e5a" name="ac130cfc0517fa32929f05f5489883e5a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac130cfc0517fa32929f05f5489883e5a">&#9670;&#160;</a></span>bySequence_</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacebeast.html#af6181fa93ab6095c2364cc166ad6eca3">beast::aged_unordered_map</a>&lt; <a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a>, <a class="el" href="namespaceripple.html#a46c521271235f4e2715d7fa8b68940ca">hash_map</a>&lt;<a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a>, <a class="el" href="classripple_1_1Validations.html#a347521e28c20acb8fe6582fc5b917888">Validation</a>&gt;, <a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/steady_clock.html">std::chrono::steady_clock</a>, <a class="el" href="structbeast_1_1uhash.html">beast::uhash</a>&lt;&gt; &gt; <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::bySequence_</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="Validations_8h_source.html#l00309">309</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a9a9b192892f110b2cf71468e85edec80" name="a9a9b192892f110b2cf71468e85edec80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9a9b192892f110b2cf71468e85edec80">&#9670;&#160;</a></span>toKeep_</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<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_1Validations_1_1KeepRange.html">KeepRange</a>&gt; <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::toKeep_</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="Validations_8h_source.html#l00317">317</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a8aab0cbcea7bfc39e53aaaf4a19b841d" name="a8aab0cbcea7bfc39e53aaaf4a19b841d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8aab0cbcea7bfc39e53aaaf4a19b841d">&#9670;&#160;</a></span>trie_</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classripple_1_1LedgerTrie.html">LedgerTrie</a>&lt;<a class="el" href="classripple_1_1Validations.html#ab12762703bf6418522381ff513a33856">Ledger</a>&gt; <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::trie_</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="Validations_8h_source.html#l00320">320</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a182a987f9c2f6cf9b67fe3cb0d12b247" name="a182a987f9c2f6cf9b67fe3cb0d12b247"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a182a987f9c2f6cf9b67fe3cb0d12b247">&#9670;&#160;</a></span>lastLedger_</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceripple.html#a46c521271235f4e2715d7fa8b68940ca">hash_map</a>&lt;<a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a>, <a class="el" href="classripple_1_1Validations.html#ab12762703bf6418522381ff513a33856">Ledger</a>&gt; <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::lastLedger_</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="Validations_8h_source.html#l00324">324</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="a53ae01ff5cb67d1848e5f2827e19d85d" name="a53ae01ff5cb67d1848e5f2827e19d85d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a53ae01ff5cb67d1848e5f2827e19d85d">&#9670;&#160;</a></span>acquiring_</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceripple.html#a46c521271235f4e2715d7fa8b68940ca">hash_map</a>&lt;<a class="elRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt;<a class="el" href="classripple_1_1Validations.html#a1bb85550f592de56d2b1ae0c15938162">Seq</a>, <a class="el" href="classripple_1_1Validations.html#acddbd8581fe7d4466e20da9143364915">ID</a>&gt;, <a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt;<a class="el" href="classripple_1_1Validations.html#a678c0348bd68f913d6f53f53e40c3f50">NodeID</a>&gt; &gt; <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::acquiring_</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="Validations_8h_source.html#l00327">327</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="aa69eb06a7563c955e1eec92f9e5d1b06" name="aa69eb06a7563c955e1eec92f9e5d1b06"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa69eb06a7563c955e1eec92f9e5d1b06">&#9670;&#160;</a></span>parms_</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structripple_1_1ValidationParms.html">ValidationParms</a> const <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::parms_</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="Validations_8h_source.html#l00330">330</a> of file <a class="el" href="Validations_8h_source.html">Validations.h</a>.</p>
</div>
</div>
<a id="ae6b585e0ae2a0cc88fdd3bdaa1c92378" name="ae6b585e0ae2a0cc88fdd3bdaa1c92378"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae6b585e0ae2a0cc88fdd3bdaa1c92378">&#9670;&#160;</a></span>adaptor_</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Adaptor &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Adaptor <a class="el" href="classripple_1_1Validations.html">ripple::Validations</a>&lt; Adaptor &gt;::adaptor_</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="Validations_8h_source.html#l00334">334</a> of file <a class="el" href="Validations_8h_source.html">Validations.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>