Files
rippled/classripple_1_1ValidatorList.html
2025-09-11 08:45:24 -07:00

3005 lines
203 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::ValidatorList Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">rippled
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceripple.html">ripple</a></li><li class="navelem"><a class="el" href="classripple_1_1ValidatorList.html">ValidatorList</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pri-types">Private Types</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-static-methods">Static Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="#pri-static-attribs">Static Private Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classripple_1_1ValidatorList-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">ripple::ValidatorList Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for ripple::ValidatorList:</div>
<div class="dyncontent">
<div class="center"><img src="classripple_1_1ValidatorList__coll__graph.png" border="0" usemap="#aripple_1_1ValidatorList_coll__map" alt="Collaboration graph"/></div>
<map name="aripple_1_1ValidatorList_coll__map" id="aripple_1_1ValidatorList_coll__map">
<area shape="rect" title=" " alt="" coords="2481,545,2629,570"/>
<area shape="rect" href="classripple_1_1ManifestCache.html" title="Remembers manifests with the highest sequence number." alt="" coords="1467,238,1631,263"/>
<area shape="poly" title=" " alt="" coords="1645,249,2124,260,2349,271,2423,278,2459,287,2488,315,2511,348,2528,385,2540,423,2553,494,2557,544,2551,545,2548,495,2535,425,2523,387,2506,351,2484,318,2456,292,2422,284,2348,277,2124,266,1645,255"/>
<area shape="rect" href="classbeast_1_1Journal.html" title="A generic endpoint for log messages." alt="" coords="1126,202,1237,227"/>
<area shape="poly" title=" " alt="" coords="1250,206,1388,196,1548,191,2237,191,2305,192,2359,199,2384,207,2408,220,2459,262,2487,296,2509,335,2526,376,2538,417,2552,492,2556,544,2551,544,2547,493,2533,418,2521,377,2504,337,2483,299,2455,266,2405,225,2381,212,2358,204,2304,197,2237,196,1548,196,1388,201,1251,211"/>
<area shape="poly" title=" " alt="" coords="1251,221,1282,224,1467,241,1467,247,1281,229,1250,226"/>
<area shape="rect" href="classbeast_1_1Journal_1_1Sink.html" title="Abstraction for the underlying message destination." alt="" coords="700,197,847,222"/>
<area shape="poly" title=" " alt="" coords="861,208,1126,211,1126,217,861,213"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/thread/shared_mutex.html" title=" " alt="" coords="1110,153,1253,178"/>
<area shape="poly" title=" " alt="" coords="1227,145,1290,125,1369,103,1458,86,1548,79,2237,79,2277,81,2310,87,2340,97,2365,112,2389,130,2412,154,2459,213,2487,256,2509,304,2526,353,2538,401,2552,487,2556,544,2551,545,2547,488,2533,402,2521,354,2504,306,2483,259,2455,216,2408,157,2385,134,2362,116,2337,102,2309,92,2276,86,2237,84,1548,84,1458,91,1370,108,1291,130,1229,150"/>
<area shape="poly" title=" " alt="" coords="1267,171,1352,184,1442,204,1485,219,1523,235,1521,240,1483,224,1441,209,1351,189,1266,176"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/unordered_map.html" title=" " alt="" coords="1105,251,1257,306"/>
<area shape="poly" title=" " alt="" coords="1271,277,1354,276,1441,269,1493,261,1494,266,1442,275,1354,281,1271,283"/>
<area shape="rect" href="classripple_1_1PublicKey.html" title="A public key." alt="" coords="276,557,407,582"/>
<area shape="poly" title=" " alt="" coords="346,542,358,503,379,456,408,409,426,389,448,371,477,362,537,352,719,328,1105,284,1105,289,720,333,538,357,478,368,451,376,430,393,412,413,383,459,363,505,351,544"/>
<area shape="rect" href="structripple_1_1Manifest.html" title=" " alt="" coords="711,246,835,271"/>
<area shape="poly" title=" " alt="" coords="344,543,355,497,374,441,405,383,424,357,448,334,467,322,495,311,564,291,711,264,712,269,565,296,496,316,470,327,451,338,428,360,409,386,379,443,360,499,350,544"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/unordered_map.html" title=" " alt="" coords="910,401,1062,455"/>
<area shape="poly" title=" " alt="" coords="364,545,402,516,449,491,909,434,910,440,450,496,405,521,368,550"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/unordered_map.html" title=" " alt="" coords="2139,620,2332,689"/>
<area shape="poly" title=" " alt="" coords="421,569,930,584,1633,613,2139,645,2138,650,1633,619,930,590,421,574"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/vector.html" title=" " alt="" coords="702,607,845,647"/>
<area shape="poly" title=" " alt="" coords="390,584,450,600,583,617,702,623,701,629,583,623,449,605,388,589"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/unordered_map.html" title=" " alt="" coords="697,1207,849,1262"/>
<area shape="poly" title=" " alt="" coords="364,591,398,639,428,699,436,730,438,758,433,806,432,852,438,877,452,904,474,932,499,950,524,961,551,969,579,978,606,989,633,1007,658,1035,671,1061,673,1085,673,1109,682,1136,709,1174,740,1205,737,1209,705,1177,678,1139,668,1110,667,1086,665,1063,654,1037,630,1011,604,994,577,983,550,975,523,966,496,954,470,936,447,907,433,879,427,853,428,806,432,758,431,731,423,701,393,642,360,594"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/unordered_set.html" title=" " alt="" coords="1281,503,1441,543"/>
<area shape="poly" title=" " alt="" coords="420,552,449,548,686,530,921,521,1128,518,1281,519,1281,524,1128,523,921,526,687,535,450,553,420,557"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/types/size_t.html" title=" " alt="" coords="31,1095,119,1121"/>
<area shape="poly" title=" " alt="" coords="90,1132,124,1195,148,1232,178,1270,212,1304,251,1332,294,1352,340,1359,2237,1359,2305,1360,2360,1358,2384,1352,2408,1342,2431,1325,2455,1301,2473,1275,2488,1241,2512,1152,2530,1044,2541,927,2551,706,2552,570,2557,570,2556,707,2547,927,2535,1045,2518,1153,2493,1243,2477,1278,2459,1304,2435,1329,2410,1346,2386,1357,2360,1363,2305,1366,2237,1364,340,1364,292,1357,248,1337,209,1308,174,1273,144,1235,119,1197,85,1135"/>
<area shape="poly" title=" " alt="" coords="90,1083,117,1036,141,979,147,954,149,932,147,892,147,853,154,831,166,808,182,792,199,785,215,779,231,766,241,750,245,735,248,719,255,699,294,631,328,581,333,584,298,634,260,701,253,720,250,736,246,752,235,770,218,784,201,790,185,797,170,811,158,833,153,853,152,891,155,932,153,955,147,981,122,1038,94,1085"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/atomic/atomic.html" title=" " alt="" coords="891,1283,1081,1309"/>
<area shape="poly" title=" " alt="" coords="108,1126,176,1164,258,1200,342,1225,429,1245,603,1273,763,1287,890,1293,890,1298,762,1293,602,1278,428,1250,341,1230,256,1205,173,1169,106,1130"/>
<area shape="rect" href="structripple_1_1ValidatorList_1_1PublisherList.html" title=" " alt="" coords="1107,869,1255,909"/>
<area shape="poly" title=" " alt="" coords="132,1093,168,1087,305,1070,412,1063,519,1055,656,1036,871,996,964,971,1080,932,1140,907,1142,912,1082,937,965,976,872,1001,656,1041,520,1060,412,1068,305,1075,168,1092,133,1098"/>
<area shape="rect" href="classripple_1_1base__uint.html" title=" " alt="" coords="703,721,844,761"/>
<area shape="poly" title=" " alt="" coords="92,1083,159,1006,205,961,256,922,312,888,371,857,493,809,608,774,702,752,703,757,610,779,495,814,373,862,314,892,259,926,209,966,163,1009,96,1086"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/map.html" title=" " alt="" coords="1465,862,1633,917"/>
<area shape="poly" title=" " alt="" coords="133,1105,340,1105,1183,1105,1237,1100,1289,1084,1340,1061,1386,1032,1466,970,1522,915,1525,919,1470,974,1389,1037,1342,1065,1291,1089,1238,1105,1183,1111,340,1111,133,1111"/>
<area shape="poly" title=" " alt="" coords="133,1119,276,1151,450,1185,697,1223,696,1228,449,1191,275,1156,132,1124"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/types/integer.html" title=" " alt="" coords="27,722,122,747"/>
<area shape="poly" title=" " alt="" coords="136,744,185,745,209,740,232,731,330,581,334,583,235,735,211,745,185,750,136,750"/>
<area shape="poly" title=" " alt="" coords="849,260,1105,272,1105,278,849,265"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/string/basic_string.html" title=" " alt="" coords="298,935,385,961"/>
<area shape="poly" title=" " alt="" coords="360,970,398,1019,423,1044,451,1066,533,1116,602,1147,676,1162,772,1167,2237,1167,2286,1161,2329,1145,2368,1119,2402,1086,2431,1047,2457,1002,2478,953,2496,902,2523,798,2539,700,2551,570,2556,570,2545,701,2528,799,2501,903,2483,955,2461,1004,2436,1050,2406,1090,2371,1124,2332,1150,2287,1166,2237,1172,772,1172,676,1168,601,1152,531,1121,448,1070,419,1048,394,1022,356,974"/>
<area shape="poly" title=" " alt="" coords="367,924,398,893,423,852,428,824,430,775,430,641,433,508,438,460,447,432,470,409,495,397,519,392,545,391,598,390,626,383,654,369,667,355,678,340,755,269,758,273,682,343,671,359,658,373,628,388,599,395,545,396,520,397,496,402,474,413,452,435,443,461,439,509,436,641,435,775,433,825,428,854,402,896,371,928"/>
<area shape="rect" href="structripple_1_1ValidatorList_1_1PublisherListCollection.html" title=" " alt="" coords="1781,741,1959,781"/>
<area shape="poly" title=" " alt="" coords="399,958,566,986,668,998,772,1003,1363,1003,1480,998,1527,990,1570,979,1611,962,1654,941,1753,878,1783,854,1810,828,1852,780,1856,783,1814,832,1786,858,1756,882,1657,945,1613,967,1571,984,1528,995,1480,1003,1363,1008,772,1008,668,1003,565,992,398,963"/>
<area shape="poly" title=" " alt="" coords="398,945,604,942,866,929,974,917,1081,901,1107,898,1108,903,1082,907,975,923,867,935,605,948,398,951"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/vector.html" title=" " alt="" coords="680,850,867,875"/>
<area shape="poly" title=" " alt="" coords="369,925,406,904,448,885,507,871,568,863,680,857,680,862,569,868,508,877,450,891,408,908,372,930"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/string/basic_string.html" title=" " alt="" coords="5,928,144,968"/>
<area shape="poly" title=" " alt="" coords="158,945,298,945,298,951,158,951"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/utility/optional.html" title=" " alt="" coords="264,24,419,64"/>
<area shape="poly" title=" " alt="" coords="432,33,591,23,772,17,2237,17,2310,24,2340,32,2366,45,2390,62,2413,84,2460,142,2491,196,2515,255,2532,315,2544,374,2555,478,2557,544,2552,545,2550,478,2539,375,2527,316,2510,256,2486,199,2455,146,2409,88,2387,66,2364,50,2338,37,2309,29,2237,23,772,23,591,28,433,39"/>
<area shape="poly" title=" " alt="" coords="362,74,398,126,423,152,451,172,479,186,504,192,551,193,600,193,627,198,657,210,670,220,681,231,712,244,710,249,679,236,666,224,655,214,626,203,599,198,551,198,503,197,477,191,448,177,419,156,394,130,358,77"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/types/integer.html" title=" " alt="" coords="23,297,126,322"/>
<area shape="poly" title=" " alt="" coords="140,307,1135,316,1683,323,1961,331,2108,342,2224,352,2278,364,2333,383,2393,412,2459,452,2487,475,2511,499,2547,543,2543,546,2508,503,2483,479,2456,457,2390,416,2331,388,2277,369,2223,358,2107,347,1961,336,1682,329,1135,322,140,312"/>
<area shape="poly" title=" " alt="" coords="140,293,168,288,308,267,449,255,553,252,656,255,711,255,711,261,656,260,553,258,449,260,308,272,168,293,140,298"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/atomic/atomic.html" title=" " alt="" coords="449,123,656,149"/>
<area shape="poly" title=" " alt="" coords="90,284,122,245,143,226,167,210,236,179,310,157,383,144,449,137,449,142,384,149,311,163,238,184,169,214,147,230,126,249,94,287"/>
<area shape="poly" title=" " alt="" coords="87,334,108,389,144,460,167,497,194,533,225,565,259,592,295,608,352,623,519,649,737,672,981,691,1455,721,1755,741,1781,745,1780,750,1754,747,1455,726,980,697,736,677,519,655,351,628,293,613,256,597,221,569,190,536,163,500,139,463,103,391,82,336"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/array.html" title=" " alt="" coords="257,712,425,752"/>
<area shape="poly" title=" " alt="" coords="82,335,92,416,111,521,137,622,152,660,170,686,183,695,204,703,258,716,256,722,203,708,181,700,166,690,148,663,132,623,105,522,87,417,76,336"/>
<area shape="poly" title=" " alt="" coords="1074,398,1281,333,1441,284,1510,261,1512,266,1442,289,1282,339,1076,403"/>
<area shape="poly" title=" " alt="" coords="624,118,777,94,876,84,985,79,1100,81,1217,92,1332,116,1388,133,1442,154,1474,171,1501,194,1540,236,1536,240,1498,198,1471,176,1440,158,1387,138,1331,121,1216,98,1099,86,985,84,876,89,778,99,624,123"/>
<area shape="rect" href="classripple_1_1TimeKeeper.html" title="Manages various times used by the server." alt="" coords="2163,417,2308,442"/>
<area shape="poly" title=" " alt="" coords="2286,444,2458,511,2528,542,2526,547,2456,516,2284,449"/>
<area shape="rect" href="classbeast_1_1abstract__clock.html" title=" " alt="" coords="1790,409,1950,449"/>
<area shape="poly" title=" " alt="" coords="1964,427,2162,427,2162,432,1964,432"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/atomic/atomic.html" title=" " alt="" coords="1779,345,1961,385"/>
<area shape="poly" title=" " alt="" coords="1975,381,2163,414,2162,419,1974,386"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/chrono/duration.html" title=" " alt="" coords="1472,353,1627,378"/>
<area shape="poly" title=" " alt="" coords="1641,363,1778,363,1778,368,1641,368"/>
<area shape="poly" title=" " alt="" coords="1095,1290,1360,1287,2237,1287,2304,1291,2358,1295,2383,1293,2407,1285,2430,1272,2455,1250,2472,1227,2487,1196,2512,1114,2529,1014,2541,905,2551,699,2552,570,2557,570,2556,699,2546,905,2534,1014,2517,1115,2492,1198,2477,1230,2459,1254,2434,1276,2409,1290,2384,1298,2358,1300,2303,1296,2237,1292,1360,1292,1095,1296"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/utility/optional.html" title=" " alt="" coords="1480,628,1619,668"/>
<area shape="poly" title=" " alt="" coords="1632,638,2481,561,2481,567,1633,643"/>
<area shape="poly" title=" " alt="" coords="1633,668,1756,706,1831,739,1829,744,1754,710,1631,673"/>
<area shape="poly" title=" " alt="" coords="2345,641,2401,630,2456,614,2500,592,2536,568,2539,572,2503,596,2458,618,2402,635,2346,646"/>
<area shape="poly" title=" " alt="" coords="1952,735,2138,680,2139,685,1953,740"/>
<area shape="poly" title=" " alt="" coords="1266,910,1398,938,1473,948,1548,952,2237,952,2273,948,2306,938,2338,923,2367,902,2393,877,2418,849,2460,787,2494,721,2520,658,2548,569,2553,571,2525,660,2499,723,2465,789,2422,853,2397,881,2370,906,2340,927,2308,943,2274,954,2237,957,1548,957,1473,953,1397,943,1265,915"/>
<area shape="poly" title=" " alt="" coords="1268,869,1281,867,1780,774,1781,780,1282,872,1269,874"/>
<area shape="poly" title=" " alt="" coords="1269,887,1465,887,1465,892,1269,892"/>
<area shape="poly" title=" " alt="" coords="806,655,845,690,892,722,919,734,943,742,988,749,1032,757,1056,766,1083,780,1109,800,1133,824,1168,867,1164,871,1129,827,1106,804,1080,785,1054,771,1030,762,987,754,942,747,917,739,889,726,842,694,802,659"/>
<area shape="poly" title=" " alt="" coords="827,877,891,891,947,896,1004,897,1107,893,1107,899,1004,902,947,901,890,896,826,882"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/utility/optional.html" title=" " alt="" coords="704,785,843,825"/>
<area shape="poly" title=" " alt="" coords="845,828,868,836,891,845,987,862,1107,878,1107,883,986,868,890,851,866,841,843,833"/>
<area shape="poly" title=" " alt="" coords="858,746,891,748,1144,756,1394,760,1780,760,1780,765,1394,765,1144,762,891,753,858,751"/>
<area shape="poly" title=" " alt="" coords="858,764,868,771,881,787,885,794,892,800,918,813,941,819,984,821,1028,820,1053,823,1082,831,1120,848,1152,867,1150,872,1117,852,1080,836,1052,828,1028,825,983,826,940,824,916,818,889,805,881,798,876,790,865,775,855,769"/>
<area shape="poly" title=" " alt="" coords="439,731,703,737,703,742,439,737"/>
<area shape="poly" title=" " alt="" coords="1646,875,1701,863,1754,844,1805,813,1846,779,1849,784,1808,818,1756,849,1702,868,1647,881"/>
<area shape="poly" title=" " alt="" coords="863,1232,1180,1231,2237,1231,2304,1234,2359,1235,2383,1232,2407,1223,2431,1209,2455,1186,2471,1165,2484,1137,2507,1063,2524,973,2536,875,2548,688,2551,570,2557,571,2554,689,2541,875,2529,974,2512,1064,2489,1139,2475,1168,2459,1190,2434,1213,2409,1228,2384,1237,2359,1241,2304,1239,2237,1236,1180,1236,863,1237"/>
<area shape="poly" title=" " alt="" coords="1455,524,1705,529,2237,529,2366,535,2481,546,2481,551,2366,540,2237,535,1705,535,1455,529"/>
</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_1ValidatorList_1_1MessageWithHash.html">MessageWithHash</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1ValidatorList_1_1PublisherList.html">PublisherList</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1ValidatorList_1_1PublisherListCollection.html">PublisherListCollection</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structripple_1_1ValidatorList_1_1PublisherListStats.html">PublisherListStats</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Describes the result of processing a Validator List (UNL), including some of the information from the list which can be used by the caller to know which list publisher is involved. <a href="structripple_1_1ValidatorList_1_1PublisherListStats.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a0e64fc4e7cd29077bc19fd59f64d9b7d" id="r_a0e64fc4e7cd29077bc19fd59f64d9b7d"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a0e64fc4e7cd29077bc19fd59f64d9b7d">QuorumKeys</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> const, <a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt; <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> &gt; &gt;</td></tr>
<tr class="separator:a0e64fc4e7cd29077bc19fd59f64d9b7d"><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:aa4effc5014393e8a6eae30d95053df28" id="r_aa4effc5014393e8a6eae30d95053df28"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#aa4effc5014393e8a6eae30d95053df28">ValidatorList</a> (<a class="el" href="classripple_1_1ManifestCache.html">ManifestCache</a> &amp;validatorManifests, <a class="el" href="classripple_1_1ManifestCache.html">ManifestCache</a> &amp;publisherManifests, <a class="el" href="classripple_1_1TimeKeeper.html">TimeKeeper</a> &amp;timeKeeper, <a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;databasePath, <a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> j, <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> &gt; minimumQuorum=<a class="elRef" href="http://en.cppreference.com/w/cpp/types/is_same.html">std::nullopt</a>)</td></tr>
<tr class="separator:aa4effc5014393e8a6eae30d95053df28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26cee3bdbc976cca27172ec18c67006c" id="r_a26cee3bdbc976cca27172ec18c67006c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a26cee3bdbc976cca27172ec18c67006c">~ValidatorList</a> ()=default</td></tr>
<tr class="separator:a26cee3bdbc976cca27172ec18c67006c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0fc258a8801e974c5d94cde492b00d3" id="r_ac0fc258a8801e974c5d94cde492b00d3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#ac0fc258a8801e974c5d94cde492b00d3">load</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> &gt; const &amp;localSigningKey, <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/string/basic_string.html">std::string</a> &gt; const &amp;configKeys, <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/string/basic_string.html">std::string</a> &gt; const &amp;publisherKeys, <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> &gt; listThreshold={})</td></tr>
<tr class="memdesc:ac0fc258a8801e974c5d94cde492b00d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load configured trusted keys. <br /></td></tr>
<tr class="separator:ac0fc258a8801e974c5d94cde492b00d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7bdc06d223ec320799b7b09fe38fb16a" id="r_a7bdc06d223ec320799b7b09fe38fb16a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structripple_1_1ValidatorList_1_1PublisherListStats.html">PublisherListStats</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a7bdc06d223ec320799b7b09fe38fb16a">applyListsAndBroadcast</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;<a class="el" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45">manifest</a>, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> version, <a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="structripple_1_1ValidatorBlobInfo.html">ValidatorBlobInfo</a> &gt; const &amp;blobs, <a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> siteUri, <a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> const &amp;hash, <a class="el" href="classripple_1_1Overlay.html">Overlay</a> &amp;overlay, <a class="el" href="classripple_1_1HashRouter.html">HashRouter</a> &amp;hashRouter, <a class="el" href="classripple_1_1NetworkOPs.html">NetworkOPs</a> &amp;networkOPs)</td></tr>
<tr class="memdesc:a7bdc06d223ec320799b7b09fe38fb16a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply multiple published lists of public keys, then broadcast it to all peers that have not seen it or sent it. <br /></td></tr>
<tr class="separator:a7bdc06d223ec320799b7b09fe38fb16a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed9fb899a5dbc48018f3bdeedb55a110" id="r_aed9fb899a5dbc48018f3bdeedb55a110"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structripple_1_1ValidatorList_1_1PublisherListStats.html">PublisherListStats</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#aed9fb899a5dbc48018f3bdeedb55a110">applyLists</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;<a class="el" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45">manifest</a>, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> version, <a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="structripple_1_1ValidatorBlobInfo.html">ValidatorBlobInfo</a> &gt; const &amp;blobs, <a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> siteUri, <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; <a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> &gt; const &amp;hash={})</td></tr>
<tr class="memdesc:aed9fb899a5dbc48018f3bdeedb55a110"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply multiple published lists of public keys. <br /></td></tr>
<tr class="separator:aed9fb899a5dbc48018f3bdeedb55a110"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12f49b76ef58d9c64310aa4a7ce0115a" id="r_a12f49b76ef58d9c64310aa4a7ce0115a"><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/string/basic_string.html">std::string</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a12f49b76ef58d9c64310aa4a7ce0115a">loadLists</a> ()</td></tr>
<tr class="separator:a12f49b76ef58d9c64310aa4a7ce0115a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4813b41483e2df542ce2731fb7b5f5d" id="r_aa4813b41483e2df542ce2731fb7b5f5d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structripple_1_1TrustChanges.html">TrustChanges</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#aa4813b41483e2df542ce2731fb7b5f5d">updateTrusted</a> (<a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt; <a class="el" href="namespaceripple.html#a4e412a5834900d9affa8db3ac1a27209">NodeID</a> &gt; const &amp;seenValidators, <a class="el" href="classripple_1_1NetClock.html#a4c2428e178dca6689fa3fb4be0657107">NetClock::time_point</a> closeTime, <a class="el" href="classripple_1_1NetworkOPs.html">NetworkOPs</a> &amp;ops, <a class="el" href="classripple_1_1Overlay.html">Overlay</a> &amp;overlay, <a class="el" href="classripple_1_1HashRouter.html">HashRouter</a> &amp;hashRouter)</td></tr>
<tr class="memdesc:aa4813b41483e2df542ce2731fb7b5f5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update trusted nodes. <br /></td></tr>
<tr class="separator:aa4813b41483e2df542ce2731fb7b5f5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad28f57783826e0b090713c89265c81e4" id="r_ad28f57783826e0b090713c89265c81e4"><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_1ValidatorList.html#ad28f57783826e0b090713c89265c81e4">quorum</a> () const</td></tr>
<tr class="memdesc:ad28f57783826e0b090713c89265c81e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get quorum value for current trusted key set. <br /></td></tr>
<tr class="separator:ad28f57783826e0b090713c89265c81e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9de7a870beb3104dc8320d6367b7f7e8" id="r_a9de7a870beb3104dc8320d6367b7f7e8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a9de7a870beb3104dc8320d6367b7f7e8">trusted</a> (<a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;identity) const</td></tr>
<tr class="memdesc:a9de7a870beb3104dc8320d6367b7f7e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns <code>true</code> if public key is trusted. <br /></td></tr>
<tr class="separator:a9de7a870beb3104dc8320d6367b7f7e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b0d33cb960903cc89ba236178e0247b" id="r_a5b0d33cb960903cc89ba236178e0247b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a5b0d33cb960903cc89ba236178e0247b">listed</a> (<a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;identity) const</td></tr>
<tr class="memdesc:a5b0d33cb960903cc89ba236178e0247b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns <code>true</code> if public key is included on any lists. <br /></td></tr>
<tr class="separator:a5b0d33cb960903cc89ba236178e0247b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0056ded6793baf9fda1c2f1fcffc535b" id="r_a0056ded6793baf9fda1c2f1fcffc535b"><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="classripple_1_1PublicKey.html">PublicKey</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a0056ded6793baf9fda1c2f1fcffc535b">getTrustedKey</a> (<a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;identity) const</td></tr>
<tr class="memdesc:a0056ded6793baf9fda1c2f1fcffc535b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns master public key if public key is trusted. <br /></td></tr>
<tr class="separator:a0056ded6793baf9fda1c2f1fcffc535b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a923f3aa3898a824b4b6947abd88502c5" id="r_a923f3aa3898a824b4b6947abd88502c5"><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="classripple_1_1PublicKey.html">PublicKey</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a923f3aa3898a824b4b6947abd88502c5">getListedKey</a> (<a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;identity) const</td></tr>
<tr class="memdesc:a923f3aa3898a824b4b6947abd88502c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns listed master public if public key is included on any lists. <br /></td></tr>
<tr class="separator:a923f3aa3898a824b4b6947abd88502c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90d8cf623e6011f148956964d0e09b9c" id="r_a90d8cf623e6011f148956964d0e09b9c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a90d8cf623e6011f148956964d0e09b9c">trustedPublisher</a> (<a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;identity) const</td></tr>
<tr class="memdesc:a90d8cf623e6011f148956964d0e09b9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns <code>true</code> if public key is a trusted publisher. <br /></td></tr>
<tr class="separator:a90d8cf623e6011f148956964d0e09b9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a150b6f26a82b2d4a30d9558719cc8fd5" id="r_a150b6f26a82b2d4a30d9558719cc8fd5"><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="classripple_1_1PublicKey.html">PublicKey</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a150b6f26a82b2d4a30d9558719cc8fd5">localPublicKey</a> () const</td></tr>
<tr class="memdesc:a150b6f26a82b2d4a30d9558719cc8fd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function returns the local validator public key or a <a class="elRef" href="http://en.cppreference.com/w/cpp/types/is_same.html">std::nullopt</a>. <br /></td></tr>
<tr class="separator:a150b6f26a82b2d4a30d9558719cc8fd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc82f50ad5da8d3d12240e8025369789" id="r_abc82f50ad5da8d3d12240e8025369789"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#abc82f50ad5da8d3d12240e8025369789">for_each_listed</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt; void(<a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;, bool)&gt; func) const</td></tr>
<tr class="memdesc:abc82f50ad5da8d3d12240e8025369789"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invokes the callback once for every listed validation public key. <br /></td></tr>
<tr class="separator:abc82f50ad5da8d3d12240e8025369789"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a727b089f03d260cebfaca07ee4c83059" id="r_a727b089f03d260cebfaca07ee4c83059"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a727b089f03d260cebfaca07ee4c83059">for_each_available</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt; void(<a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;<a class="el" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45">manifest</a>, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> version, <a class="elRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>, <a class="el" href="structripple_1_1ValidatorBlobInfo.html">ValidatorBlobInfo</a> &gt; const &amp;blobInfos, <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;pubKey, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> maxSequence, <a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> const &amp;hash)&gt; func) const</td></tr>
<tr class="memdesc:a727b089f03d260cebfaca07ee4c83059"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invokes the callback once for every available publisher list's raw data members. <br /></td></tr>
<tr class="separator:a727b089f03d260cebfaca07ee4c83059"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62f2c33d93c3985c6c486a9bfc6499fe" id="r_a62f2c33d93c3985c6c486a9bfc6499fe"><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="classJson_1_1Value.html">Json::Value</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a62f2c33d93c3985c6c486a9bfc6499fe">getAvailable</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string_view.html">std::string_view</a> pubKey, <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> &gt; forceVersion={})</td></tr>
<tr class="memdesc:a62f2c33d93c3985c6c486a9bfc6499fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current valid list for the given publisher key, if available, as a <a class="el" href="namespaceJson.html" title="JSON (JavaScript Object Notation).">Json</a> object. <br /></td></tr>
<tr class="separator:a62f2c33d93c3985c6c486a9bfc6499fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a002fda13878b813249f3fd49e64577fd" id="r_a002fda13878b813249f3fd49e64577fd"><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_1ValidatorList.html#a002fda13878b813249f3fd49e64577fd">count</a> () const</td></tr>
<tr class="memdesc:a002fda13878b813249f3fd49e64577fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of configured validator list sites. <br /></td></tr>
<tr class="separator:a002fda13878b813249f3fd49e64577fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74578a60966c12996799fd9784d66741" id="r_a74578a60966c12996799fd9784d66741"><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="classbeast_1_1abstract__clock.html#a4e16832b0bdf9392c5138bbbde024d8e">TimeKeeper::time_point</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a74578a60966c12996799fd9784d66741">expires</a> () const</td></tr>
<tr class="memdesc:a74578a60966c12996799fd9784d66741"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the time when the validator list will expire. <br /></td></tr>
<tr class="separator:a74578a60966c12996799fd9784d66741"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f943a4488f3b50dcbb5177007d43271" id="r_a6f943a4488f3b50dcbb5177007d43271"><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_1ValidatorList.html#a6f943a4488f3b50dcbb5177007d43271">getJson</a> () const</td></tr>
<tr class="memdesc:a6f943a4488f3b50dcbb5177007d43271"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a JSON representation of the state of the validator list. <br /></td></tr>
<tr class="separator:a6f943a4488f3b50dcbb5177007d43271"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af37bfdb23c49649cfa40a40ac5d182fd" id="r_af37bfdb23c49649cfa40a40ac5d182fd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1ValidatorList.html#a0e64fc4e7cd29077bc19fd59f64d9b7d">QuorumKeys</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#af37bfdb23c49649cfa40a40ac5d182fd">getQuorumKeys</a> () const</td></tr>
<tr class="memdesc:af37bfdb23c49649cfa40a40ac5d182fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the quorum and all of the trusted keys. <br /></td></tr>
<tr class="separator:af37bfdb23c49649cfa40a40ac5d182fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22bb356f3dff23879344acd8121abbe3" id="r_a22bb356f3dff23879344acd8121abbe3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt; <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a22bb356f3dff23879344acd8121abbe3">getTrustedMasterKeys</a> () const</td></tr>
<tr class="memdesc:a22bb356f3dff23879344acd8121abbe3"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the trusted master public keys <br /></td></tr>
<tr class="separator:a22bb356f3dff23879344acd8121abbe3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa7f964baccfa4bcb35b7b4ab5d4cc63" id="r_aaa7f964baccfa4bcb35b7b4ab5d4cc63"><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_1ValidatorList.html#aaa7f964baccfa4bcb35b7b4ab5d4cc63">getListThreshold</a> () const</td></tr>
<tr class="memdesc:aaa7f964baccfa4bcb35b7b4ab5d4cc63"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the validator list threshold <br /></td></tr>
<tr class="separator:aaa7f964baccfa4bcb35b7b4ab5d4cc63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afef3dd7af8c40b51da43a945f632b4c5" id="r_afef3dd7af8c40b51da43a945f632b4c5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt; <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#afef3dd7af8c40b51da43a945f632b4c5">getNegativeUNL</a> () const</td></tr>
<tr class="memdesc:afef3dd7af8c40b51da43a945f632b4c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the master public keys of Negative UNL validators <br /></td></tr>
<tr class="separator:afef3dd7af8c40b51da43a945f632b4c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3749eaabef35e6178bc74fc8dfe6f4a2" id="r_a3749eaabef35e6178bc74fc8dfe6f4a2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a3749eaabef35e6178bc74fc8dfe6f4a2">setNegativeUNL</a> (<a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt; <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> &gt; const &amp;negUnl)</td></tr>
<tr class="memdesc:a3749eaabef35e6178bc74fc8dfe6f4a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the Negative UNL with validators' master public keys <br /></td></tr>
<tr class="separator:a3749eaabef35e6178bc74fc8dfe6f4a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd6d3f90be1eff9c1216f37f379ca67f" id="r_abd6d3f90be1eff9c1216f37f379ca67f"><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/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1STValidation.html">STValidation</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#abd6d3f90be1eff9c1216f37f379ca67f">negativeUNLFilter</a> (<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/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1STValidation.html">STValidation</a> &gt; &gt; &amp;&amp;validations) const</td></tr>
<tr class="memdesc:abd6d3f90be1eff9c1216f37f379ca67f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove validations that are from validators on the negative UNL. <br /></td></tr>
<tr class="separator:abd6d3f90be1eff9c1216f37f379ca67f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:acf339d3f8e4939b5cd5075374ecc9691" id="r_acf339d3f8e4939b5cd5075374ecc9691"><td class="memItemLeft" align="right" valign="top">static <a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="structripple_1_1ValidatorBlobInfo.html">ValidatorBlobInfo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#acf339d3f8e4939b5cd5075374ecc9691">parseBlobs</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> version, <a class="el" href="classJson_1_1Value.html">Json::Value</a> const &amp;body)</td></tr>
<tr class="memdesc:acf339d3f8e4939b5cd5075374ecc9691"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pull the blob/signature/manifest information out of the appropriate <a class="el" href="namespaceJson.html" title="JSON (JavaScript Object Notation).">Json</a> body fields depending on the version. <br /></td></tr>
<tr class="separator:acf339d3f8e4939b5cd5075374ecc9691"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00f7133196028a7df7331c972abf9169" id="r_a00f7133196028a7df7331c972abf9169"><td class="memItemLeft" align="right" valign="top">static <a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="structripple_1_1ValidatorBlobInfo.html">ValidatorBlobInfo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a00f7133196028a7df7331c972abf9169">parseBlobs</a> (protocol::TMValidatorList const &amp;body)</td></tr>
<tr class="separator:a00f7133196028a7df7331c972abf9169"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4abcd1b16fada4897130485669234083" id="r_a4abcd1b16fada4897130485669234083"><td class="memItemLeft" align="right" valign="top">static <a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="structripple_1_1ValidatorBlobInfo.html">ValidatorBlobInfo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a4abcd1b16fada4897130485669234083">parseBlobs</a> (protocol::TMValidatorListCollection const &amp;body)</td></tr>
<tr class="separator:a4abcd1b16fada4897130485669234083"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a023f425a3145224e0101f0ef9db7c917" id="r_a023f425a3145224e0101f0ef9db7c917"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a023f425a3145224e0101f0ef9db7c917">sendValidatorList</a> (<a class="el" href="classripple_1_1Peer.html">Peer</a> &amp;peer, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> peerSequence, <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;publisherKey, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> maxSequence, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> rawVersion, <a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;rawManifest, <a class="elRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>, <a class="el" href="structripple_1_1ValidatorBlobInfo.html">ValidatorBlobInfo</a> &gt; const &amp;blobInfos, <a class="el" href="classripple_1_1HashRouter.html">HashRouter</a> &amp;hashRouter, <a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> j)</td></tr>
<tr class="separator:a023f425a3145224e0101f0ef9db7c917"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2dde165e04bd3a99a397fe3541f341e" id="r_af2dde165e04bd3a99a397fe3541f341e"><td class="memItemLeft" align="right" valign="top">static <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#af2dde165e04bd3a99a397fe3541f341e">buildValidatorListMessages</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> messageVersion, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> peerSequence, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> maxSequence, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> rawVersion, <a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;rawManifest, <a class="elRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>, <a class="el" href="structripple_1_1ValidatorBlobInfo.html">ValidatorBlobInfo</a> &gt; const &amp;blobInfos, <a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="structripple_1_1ValidatorList_1_1MessageWithHash.html">MessageWithHash</a> &gt; &amp;messages, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> maxSize=<a class="el" href="namespaceripple.html#ac6313681c41516db0a8f8829e1d7b753">maximiumMessageSize</a>)</td></tr>
<tr class="separator:af2dde165e04bd3a99a397fe3541f341e"><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:a7d01331569744f1a083c544a31eec542" id="r_a7d01331569744f1a083c544a31eec542"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a7d01331569744f1a083c544a31eec542">lock_guard</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a>&lt; decltype(<a class="el" href="classripple_1_1ValidatorList.html#a796cfdb52b275852b6aa548bcf42a002">mutex_</a>)&gt;</td></tr>
<tr class="separator:a7d01331569744f1a083c544a31eec542"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3ef45920a9f32e107842a863fb65220" id="r_af3ef45920a9f32e107842a863fb65220"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#af3ef45920a9f32e107842a863fb65220">shared_lock</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/thread/shared_lock.html">std::shared_lock</a>&lt; decltype(<a class="el" href="classripple_1_1ValidatorList.html#a796cfdb52b275852b6aa548bcf42a002">mutex_</a>)&gt;</td></tr>
<tr class="separator:af3ef45920a9f32e107842a863fb65220"><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:a42f61dfc9c05a17b695f6630452ca7f7" id="r_a42f61dfc9c05a17b695f6630452ca7f7"><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_1ValidatorList.html#a42f61dfc9c05a17b695f6630452ca7f7">count</a> (<a class="el" href="classripple_1_1ValidatorList.html#af3ef45920a9f32e107842a863fb65220">shared_lock</a> const &amp;) const</td></tr>
<tr class="memdesc:a42f61dfc9c05a17b695f6630452ca7f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of configured validator list sites. <br /></td></tr>
<tr class="separator:a42f61dfc9c05a17b695f6630452ca7f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15193c461b148a76cf11872f6641b26b" id="r_a15193c461b148a76cf11872f6641b26b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a15193c461b148a76cf11872f6641b26b">trusted</a> (<a class="el" href="classripple_1_1ValidatorList.html#af3ef45920a9f32e107842a863fb65220">shared_lock</a> const &amp;, <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;identity) const</td></tr>
<tr class="memdesc:a15193c461b148a76cf11872f6641b26b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns <code>true</code> if public key is trusted. <br /></td></tr>
<tr class="separator:a15193c461b148a76cf11872f6641b26b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15ca6b033b973fb438ca5d1b6a66b5b9" id="r_a15ca6b033b973fb438ca5d1b6a66b5b9"><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="classripple_1_1PublicKey.html">PublicKey</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a15ca6b033b973fb438ca5d1b6a66b5b9">getTrustedKey</a> (<a class="el" href="classripple_1_1ValidatorList.html#af3ef45920a9f32e107842a863fb65220">shared_lock</a> const &amp;, <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;identity) const</td></tr>
<tr class="memdesc:a15ca6b033b973fb438ca5d1b6a66b5b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns master public key if public key is trusted. <br /></td></tr>
<tr class="separator:a15ca6b033b973fb438ca5d1b6a66b5b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8b5192dbbf82c4a0150538f50d49184" id="r_ae8b5192dbbf82c4a0150538f50d49184"><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="classbeast_1_1abstract__clock.html#a4e16832b0bdf9392c5138bbbde024d8e">TimeKeeper::time_point</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#ae8b5192dbbf82c4a0150538f50d49184">expires</a> (<a class="el" href="classripple_1_1ValidatorList.html#af3ef45920a9f32e107842a863fb65220">shared_lock</a> const &amp;) const</td></tr>
<tr class="memdesc:ae8b5192dbbf82c4a0150538f50d49184"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the time when the validator list will expire. <br /></td></tr>
<tr class="separator:ae8b5192dbbf82c4a0150538f50d49184"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a647d2962692b44371893c84549fe918c" id="r_a647d2962692b44371893c84549fe918c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structripple_1_1ValidatorList_1_1PublisherListStats.html">PublisherListStats</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a647d2962692b44371893c84549fe918c">applyList</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;globalManifest, <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/string/basic_string.html">std::string</a> &gt; const &amp;localManifest, <a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;blob, <a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;signature, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> version, <a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> siteUri, <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; <a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> &gt; const &amp;hash, <a class="el" href="classripple_1_1ValidatorList.html#a7d01331569744f1a083c544a31eec542">lock_guard</a> const &amp;)</td></tr>
<tr class="memdesc:a647d2962692b44371893c84549fe918c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply published list of public keys. <br /></td></tr>
<tr class="separator:a647d2962692b44371893c84549fe918c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3728d8811726a5ffb23bcd5c21d235a3" id="r_a3728d8811726a5ffb23bcd5c21d235a3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a3728d8811726a5ffb23bcd5c21d235a3">updatePublisherList</a> (<a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;pubKey, <a class="el" href="structripple_1_1ValidatorList_1_1PublisherList.html">PublisherList</a> const &amp;<a class="el" href="namespaceripple.html#a6434c1a0fd22b77e2e4a228c0eca79eba43b5c9175984c071f30b873fdce0a000">current</a>, <a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> &gt; const &amp;oldList, <a class="el" href="classripple_1_1ValidatorList.html#a7d01331569744f1a083c544a31eec542">lock_guard</a> const &amp;)</td></tr>
<tr class="separator:a3728d8811726a5ffb23bcd5c21d235a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11929bd666b5a688054d623832118033" id="r_a11929bd666b5a688054d623832118033"><td class="memItemLeft" align="right" valign="top">boost::filesystem::path&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a11929bd666b5a688054d623832118033">getCacheFileName</a> (<a class="el" href="classripple_1_1ValidatorList.html#a7d01331569744f1a083c544a31eec542">lock_guard</a> const &amp;, <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;pubKey) const</td></tr>
<tr class="memdesc:a11929bd666b5a688054d623832118033"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the filename used for caching UNLs. <br /></td></tr>
<tr class="separator:a11929bd666b5a688054d623832118033"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61c0b817fc56c96d5a6c40a0e7dadbeb" id="r_a61c0b817fc56c96d5a6c40a0e7dadbeb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a61c0b817fc56c96d5a6c40a0e7dadbeb">cacheValidatorFile</a> (<a class="el" href="classripple_1_1ValidatorList.html#a7d01331569744f1a083c544a31eec542">lock_guard</a> const &amp;lock, <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;pubKey) const</td></tr>
<tr class="memdesc:a61c0b817fc56c96d5a6c40a0e7dadbeb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a JSON UNL to a cache file. <br /></td></tr>
<tr class="separator:a61c0b817fc56c96d5a6c40a0e7dadbeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa82ddd30208190e80a0cbb25eb0f8bfa" id="r_aa82ddd30208190e80a0cbb25eb0f8bfa"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; <a class="el" href="namespaceripple.html#a6eaff79c38106bc3b27326d878c902d3">ListDisposition</a>, <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#aa82ddd30208190e80a0cbb25eb0f8bfa">verify</a> (<a class="el" href="classripple_1_1ValidatorList.html#a7d01331569744f1a083c544a31eec542">lock_guard</a> const &amp;, <a class="el" href="classJson_1_1Value.html">Json::Value</a> &amp;list, <a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;<a class="el" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45">manifest</a>, <a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;blob, <a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;signature)</td></tr>
<tr class="memdesc:aa82ddd30208190e80a0cbb25eb0f8bfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check response for trusted valid published list. <br /></td></tr>
<tr class="separator:aa82ddd30208190e80a0cbb25eb0f8bfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d3a6dfa4f7ffe2717513369298e7268" id="r_a9d3a6dfa4f7ffe2717513369298e7268"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a9d3a6dfa4f7ffe2717513369298e7268">removePublisherList</a> (<a class="el" href="classripple_1_1ValidatorList.html#a7d01331569744f1a083c544a31eec542">lock_guard</a> const &amp;, <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;publisherKey, <a class="el" href="namespaceripple.html#aaf9d6587e02c610e84a029ad5b5e17b4">PublisherStatus</a> reason)</td></tr>
<tr class="memdesc:a9d3a6dfa4f7ffe2717513369298e7268"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop trusting publisher's list of keys. <br /></td></tr>
<tr class="separator:a9d3a6dfa4f7ffe2717513369298e7268"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79545d89d7c7c5bfef7f15ce0510577b" id="r_a79545d89d7c7c5bfef7f15ce0510577b"><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_1ValidatorList.html#a79545d89d7c7c5bfef7f15ce0510577b">calculateQuorum</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> unlSize, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> effectiveUnlSize, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> seenSize)</td></tr>
<tr class="memdesc:a79545d89d7c7c5bfef7f15ce0510577b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return quorum for trusted validator set. <br /></td></tr>
<tr class="separator:a79545d89d7c7c5bfef7f15ce0510577b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-static-methods" name="pri-static-methods"></a>
Static Private Member Functions</h2></td></tr>
<tr class="memitem:a437c1823bf6bb8498cc153896b3abfa5" id="r_a437c1823bf6bb8498cc153896b3abfa5"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a437c1823bf6bb8498cc153896b3abfa5">buildBlobInfos</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>, <a class="el" href="structripple_1_1ValidatorBlobInfo.html">ValidatorBlobInfo</a> &gt; &amp;blobInfos, <a class="el" href="structripple_1_1ValidatorList_1_1PublisherListCollection.html">PublisherListCollection</a> const &amp;lists)</td></tr>
<tr class="separator:a437c1823bf6bb8498cc153896b3abfa5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17b4fae898c2fe1c40471536133753d3" id="r_a17b4fae898c2fe1c40471536133753d3"><td class="memItemLeft" align="right" valign="top">static <a class="elRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>, <a class="el" href="structripple_1_1ValidatorBlobInfo.html">ValidatorBlobInfo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a17b4fae898c2fe1c40471536133753d3">buildBlobInfos</a> (<a class="el" href="structripple_1_1ValidatorList_1_1PublisherListCollection.html">PublisherListCollection</a> const &amp;lists)</td></tr>
<tr class="separator:a17b4fae898c2fe1c40471536133753d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0db3ac667949c8002894beb011f7f139" id="r_a0db3ac667949c8002894beb011f7f139"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a0db3ac667949c8002894beb011f7f139">broadcastBlobs</a> (<a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;publisherKey, <a class="el" href="structripple_1_1ValidatorList_1_1PublisherListCollection.html">PublisherListCollection</a> const &amp;lists, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> maxSequence, <a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> const &amp;hash, <a class="el" href="classripple_1_1Overlay.html">Overlay</a> &amp;overlay, <a class="el" href="classripple_1_1HashRouter.html">HashRouter</a> &amp;hashRouter, <a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> j)</td></tr>
<tr class="separator:a0db3ac667949c8002894beb011f7f139"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19844edbd01319f6f0ddca1c94def75f" id="r_a19844edbd01319f6f0ddca1c94def75f"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a19844edbd01319f6f0ddca1c94def75f">sendValidatorList</a> (<a class="el" href="classripple_1_1Peer.html">Peer</a> &amp;peer, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> peerSequence, <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;publisherKey, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> maxSequence, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> rawVersion, <a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;rawManifest, <a class="elRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>, <a class="el" href="structripple_1_1ValidatorBlobInfo.html">ValidatorBlobInfo</a> &gt; const &amp;blobInfos, <a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="structripple_1_1ValidatorList_1_1MessageWithHash.html">MessageWithHash</a> &gt; &amp;messages, <a class="el" href="classripple_1_1HashRouter.html">HashRouter</a> &amp;hashRouter, <a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> j)</td></tr>
<tr class="separator:a19844edbd01319f6f0ddca1c94def75f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cb3357e6108a7e96d03e4da7feb7d5a" id="r_a3cb3357e6108a7e96d03e4da7feb7d5a"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classJson_1_1Value.html">Json::Value</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a3cb3357e6108a7e96d03e4da7feb7d5a">buildFileData</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;pubKey, <a class="el" href="structripple_1_1ValidatorList_1_1PublisherListCollection.html">PublisherListCollection</a> const &amp;pubCollection, <a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> j)</td></tr>
<tr class="memdesc:a3cb3357e6108a7e96d03e4da7feb7d5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a <a class="el" href="namespaceJson.html" title="JSON (JavaScript Object Notation).">Json</a> representation of the collection, suitable for writing to a cache file, or serving to a /vl/ query. <br /></td></tr>
<tr class="separator:a3cb3357e6108a7e96d03e4da7feb7d5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a789233c78ed4fddac45196e4efe9f0dd" id="r_a789233c78ed4fddac45196e4efe9f0dd"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classJson_1_1Value.html">Json::Value</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a789233c78ed4fddac45196e4efe9f0dd">buildFileData</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;pubKey, <a class="el" href="structripple_1_1ValidatorList_1_1PublisherListCollection.html">PublisherListCollection</a> const &amp;pubCollection, <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> &gt; forceVersion, <a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> j)</td></tr>
<tr class="memdesc:a789233c78ed4fddac45196e4efe9f0dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a <a class="el" href="namespaceJson.html" title="JSON (JavaScript Object Notation).">Json</a> representation of the collection, suitable for writing to a cache file, or serving to a /vl/ query. <br /></td></tr>
<tr class="separator:a789233c78ed4fddac45196e4efe9f0dd"><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:a19f4cc404400551b2a39c7c5a137e01f" id="r_a19f4cc404400551b2a39c7c5a137e01f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1ManifestCache.html">ManifestCache</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a19f4cc404400551b2a39c7c5a137e01f">validatorManifests_</a></td></tr>
<tr class="separator:a19f4cc404400551b2a39c7c5a137e01f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8fe24acb044cf9b928d14a1e84b63ac" id="r_af8fe24acb044cf9b928d14a1e84b63ac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1ManifestCache.html">ManifestCache</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#af8fe24acb044cf9b928d14a1e84b63ac">publisherManifests_</a></td></tr>
<tr class="separator:af8fe24acb044cf9b928d14a1e84b63ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a390041ee5976df2e6b170a3c6eed5de5" id="r_a390041ee5976df2e6b170a3c6eed5de5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1TimeKeeper.html">TimeKeeper</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a390041ee5976df2e6b170a3c6eed5de5">timeKeeper_</a></td></tr>
<tr class="separator:a390041ee5976df2e6b170a3c6eed5de5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9475570d68abff79cc3392bd658bccb4" id="r_a9475570d68abff79cc3392bd658bccb4"><td class="memItemLeft" align="right" valign="top">boost::filesystem::path const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a9475570d68abff79cc3392bd658bccb4">dataPath_</a></td></tr>
<tr class="separator:a9475570d68abff79cc3392bd658bccb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82ca85cd7be327072ee4ecc3bcb8fb27" id="r_a82ca85cd7be327072ee4ecc3bcb8fb27"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a82ca85cd7be327072ee4ecc3bcb8fb27">j_</a></td></tr>
<tr class="separator:a82ca85cd7be327072ee4ecc3bcb8fb27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a796cfdb52b275852b6aa548bcf42a002" id="r_a796cfdb52b275852b6aa548bcf42a002"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/shared_mutex.html">std::shared_mutex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a796cfdb52b275852b6aa548bcf42a002">mutex_</a></td></tr>
<tr class="separator:a796cfdb52b275852b6aa548bcf42a002"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c598bf8d6f6358e1f08eb47df0b49d2" id="r_a2c598bf8d6f6358e1f08eb47df0b49d2"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a2c598bf8d6f6358e1f08eb47df0b49d2">quorum_</a></td></tr>
<tr class="separator:a2c598bf8d6f6358e1f08eb47df0b49d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3b9186600dcd1c5326c80af17165741" id="r_ac3b9186600dcd1c5326c80af17165741"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#ac3b9186600dcd1c5326c80af17165741">minimumQuorum_</a></td></tr>
<tr class="separator:ac3b9186600dcd1c5326c80af17165741"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebd0354cf915b7c82161dca56c5c378b" id="r_aebd0354cf915b7c82161dca56c5c378b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceripple.html#a46c521271235f4e2715d7fa8b68940ca">hash_map</a>&lt; <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a>, <a class="el" href="structripple_1_1ValidatorList_1_1PublisherListCollection.html">PublisherListCollection</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#aebd0354cf915b7c82161dca56c5c378b">publisherLists_</a></td></tr>
<tr class="separator:aebd0354cf915b7c82161dca56c5c378b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4489b055e951d0923286cffecd9dee46" id="r_a4489b055e951d0923286cffecd9dee46"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceripple.html#a46c521271235f4e2715d7fa8b68940ca">hash_map</a>&lt; <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a>, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a4489b055e951d0923286cffecd9dee46">keyListings_</a></td></tr>
<tr class="separator:a4489b055e951d0923286cffecd9dee46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a623a1124f621b9ee5745bd22094b4acb" id="r_a623a1124f621b9ee5745bd22094b4acb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt; <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a623a1124f621b9ee5745bd22094b4acb">trustedMasterKeys_</a></td></tr>
<tr class="separator:a623a1124f621b9ee5745bd22094b4acb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cbb13f05befbcb3ad0be0501b85d610" id="r_a5cbb13f05befbcb3ad0be0501b85d610"><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_1ValidatorList.html#a5cbb13f05befbcb3ad0be0501b85d610">listThreshold_</a></td></tr>
<tr class="separator:a5cbb13f05befbcb3ad0be0501b85d610"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae06a469121f9f99ed9f3049e46d0206c" id="r_ae06a469121f9f99ed9f3049e46d0206c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt; <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#ae06a469121f9f99ed9f3049e46d0206c">trustedSigningKeys_</a></td></tr>
<tr class="separator:ae06a469121f9f99ed9f3049e46d0206c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd28e45a701578558624ec9592f69bdf" id="r_abd28e45a701578558624ec9592f69bdf"><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="classripple_1_1PublicKey.html">PublicKey</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#abd28e45a701578558624ec9592f69bdf">localPubKey_</a></td></tr>
<tr class="separator:abd28e45a701578558624ec9592f69bdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a147f9d3a3afb1cdd7714d68202bd26ba" id="r_a147f9d3a3afb1cdd7714d68202bd26ba"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structripple_1_1ValidatorList_1_1PublisherList.html">PublisherList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a147f9d3a3afb1cdd7714d68202bd26ba">localPublisherList</a></td></tr>
<tr class="separator:a147f9d3a3afb1cdd7714d68202bd26ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6aed606d8af8e7d638308232efd15f11" id="r_a6aed606d8af8e7d638308232efd15f11"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt; <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#a6aed606d8af8e7d638308232efd15f11">negativeUNL_</a></td></tr>
<tr class="separator:a6aed606d8af8e7d638308232efd15f11"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-static-attribs" name="pri-static-attribs"></a>
Static Private Attributes</h2></td></tr>
<tr class="memitem:afb78f6ff830cea855542f3ad78a587b1" id="r_afb78f6ff830cea855542f3ad78a587b1"><td class="memItemLeft" align="right" valign="top">static constexpr <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#afb78f6ff830cea855542f3ad78a587b1">supportedListVersions</a> [] {1, 2}</td></tr>
<tr class="separator:afb78f6ff830cea855542f3ad78a587b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0c6d081fe5e626dc63a9cd949de2d85" id="r_aa0c6d081fe5e626dc63a9cd949de2d85"><td class="memItemLeft" align="right" valign="top">static constexpr <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_1ValidatorList.html#aa0c6d081fe5e626dc63a9cd949de2d85">maxSupportedBlobs</a> = 5</td></tr>
<tr class="separator:aa0c6d081fe5e626dc63a9cd949de2d85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfef0eec37f112fc8a5429764f6f9080" id="r_adfef0eec37f112fc8a5429764f6f9080"><td class="memItemLeft" align="right" valign="top">static <a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#adfef0eec37f112fc8a5429764f6f9080">filePrefix_</a> = &quot;cache.&quot;</td></tr>
<tr class="separator:adfef0eec37f112fc8a5429764f6f9080"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="friends" name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:aff78bcfb98b735a41d082871e735ccc7" id="r_aff78bcfb98b735a41d082871e735ccc7"><td class="memTemplParams" colspan="2">template&lt;class Hasher &gt; </td></tr>
<tr class="memitem:aff78bcfb98b735a41d082871e735ccc7"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classripple_1_1ValidatorList.html#aff78bcfb98b735a41d082871e735ccc7">hash_append</a> (Hasher &amp;h, <a class="el" href="structripple_1_1ValidatorList_1_1PublisherListCollection.html">PublisherListCollection</a> pl)</td></tr>
<tr class="separator:aff78bcfb98b735a41d082871e735ccc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h2><a class="anchor" id="autotoc_md279"></a>
Trusted Validators List</h2>
<p>Rippled accepts ledger proposals and validations from trusted validator nodes. A ledger is considered fully-validated once the number of received trusted validations for a ledger meets or exceeds a quorum value.</p>
<p>This class manages the set of validation public keys the local rippled node trusts. The list of trusted keys is populated using the keys listed in the configuration file as well as lists signed by trusted publishers. The trusted publisher public keys are specified in the config.</p>
<p>New lists are expected to include the following data:</p>
<ul>
<li><code>"blob"</code>: Base64-encoded JSON string containing a <code>"sequence"</code>, <code>"validFrom"</code>, <code>"validUntil"</code>, and <code>"validators"</code> field. <code>"validFrom"</code> contains the Ripple timestamp (seconds since January 1st, 2000 (00:00 UTC)) for when the list becomes valid. <code>"validUntil"</code> contains the Ripple timestamp for when the list expires. <code>"validators"</code> contains an array of objects with a <code>"validation_public_key"</code> and optional <code>"manifest"</code> field. <code>"validation_public_key"</code> should be the hex-encoded master public key. <code>"manifest"</code> should be the base64-encoded validator manifest.</li>
</ul>
<ul>
<li><code>"manifest"</code>: Base64-encoded serialization of a manifest containing the publisher's master and signing public keys.</li>
</ul>
<ul>
<li><code>"signature"</code>: Hex-encoded signature of the blob using the publisher's signing key.</li>
</ul>
<ul>
<li><code>"version"</code>: 1</li>
</ul>
<p>Individual validator lists are stored separately by publisher. The number of lists on which a validator's public key appears is also tracked.</p>
<p>The list of trusted validation public keys is reset at the start of each consensus round to take into account the latest known lists as well as the set of validators from whom validations are being received. Listed validation public keys are shuffled and then sorted by the number of lists they appear on. (The shuffling makes the order/rank of validators with the same number of listings non-deterministic.) A quorum value is calculated for the new trusted validator list. If there is only one list, all listed keys are trusted. Otherwise, the trusted list size is set to 125% of the quorum. </p>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8h_source.html#l00172">172</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="a7d01331569744f1a083c544a31eec542" name="a7d01331569744f1a083c544a31eec542"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7d01331569744f1a083c544a31eec542">&#9670;&#160;</a></span>lock_guard</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classripple_1_1ValidatorList.html#a7d01331569744f1a083c544a31eec542">ripple::ValidatorList::lock_guard</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a>&lt;decltype(<a class="el" href="classripple_1_1ValidatorList.html#a796cfdb52b275852b6aa548bcf42a002">mutex_</a>)&gt;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ValidatorList_8h_source.html#l00230">230</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div>
</div>
<a id="af3ef45920a9f32e107842a863fb65220" name="af3ef45920a9f32e107842a863fb65220"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af3ef45920a9f32e107842a863fb65220">&#9670;&#160;</a></span>shared_lock</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classripple_1_1ValidatorList.html#af3ef45920a9f32e107842a863fb65220">ripple::ValidatorList::shared_lock</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/thread/shared_lock.html">std::shared_lock</a>&lt;decltype(<a class="el" href="classripple_1_1ValidatorList.html#a796cfdb52b275852b6aa548bcf42a002">mutex_</a>)&gt;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ValidatorList_8h_source.html#l00231">231</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div>
</div>
<a id="a0e64fc4e7cd29077bc19fd59f64d9b7d" name="a0e64fc4e7cd29077bc19fd59f64d9b7d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e64fc4e7cd29077bc19fd59f64d9b7d">&#9670;&#160;</a></span>QuorumKeys</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classripple_1_1ValidatorList.html#a0e64fc4e7cd29077bc19fd59f64d9b7d">ripple::ValidatorList::QuorumKeys</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt;<a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> const, <a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt;<a class="el" href="classripple_1_1PublicKey.html">PublicKey</a>&gt; &gt;</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ValidatorList_8h_source.html#l00667">667</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aa4effc5014393e8a6eae30d95053df28" name="aa4effc5014393e8a6eae30d95053df28"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa4effc5014393e8a6eae30d95053df28">&#9670;&#160;</a></span>ValidatorList()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ripple::ValidatorList::ValidatorList </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1ManifestCache.html">ManifestCache</a> &amp;&#160;</td>
<td class="paramname"><em>validatorManifests</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1ManifestCache.html">ManifestCache</a> &amp;&#160;</td>
<td class="paramname"><em>publisherManifests</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1TimeKeeper.html">TimeKeeper</a> &amp;&#160;</td>
<td class="paramname"><em>timeKeeper</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;&#160;</td>
<td class="paramname"><em>databasePath</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classbeast_1_1Journal.html">beast::Journal</a>&#160;</td>
<td class="paramname"><em>j</em>, </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/types/size_t.html">std::size_t</a> &gt;&#160;</td>
<td class="paramname"><em>minimumQuorum</em> = <code><a class="elRef" href="http://en.cppreference.com/w/cpp/types/is_same.html">std::nullopt</a></code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l00120">120</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a26cee3bdbc976cca27172ec18c67006c" name="a26cee3bdbc976cca27172ec18c67006c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26cee3bdbc976cca27172ec18c67006c">&#9670;&#160;</a></span>~ValidatorList()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ripple::ValidatorList::~ValidatorList </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ac0fc258a8801e974c5d94cde492b00d3" name="ac0fc258a8801e974c5d94cde492b00d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac0fc258a8801e974c5d94cde492b00d3">&#9670;&#160;</a></span>load()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ripple::ValidatorList::load </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="el" href="classripple_1_1PublicKey.html">PublicKey</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>localSigningKey</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><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/string/basic_string.html">std::string</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>configKeys</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><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/string/basic_string.html">std::string</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>publisherKeys</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/types/size_t.html">std::size_t</a> &gt;&#160;</td>
<td class="paramname"><em>listThreshold</em> = <code>{}</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Load configured trusted keys. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">localSigningKey</td><td>This node's validation public key</td></tr>
<tr><td class="paramname">configKeys</td><td>List of trusted keys from config. Each entry consists of a base58 encoded validation public key, optionally followed by a comment.</td></tr>
<tr><td class="paramname">publisherKeys</td><td>List of trusted publisher public keys. Each entry contains a base58 encoded account public key.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Thread Safety</dt><dd></dd></dl>
<p>May be called concurrently</p>
<dl class="section return"><dt>Returns</dt><dd><code>false</code> if an entry is invalid or unparsable </dd></dl>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l00139">139</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="acf339d3f8e4939b5cd5075374ecc9691" name="acf339d3f8e4939b5cd5075374ecc9691"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acf339d3f8e4939b5cd5075374ecc9691">&#9670;&#160;</a></span>parseBlobs() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="structripple_1_1ValidatorBlobInfo.html">ValidatorBlobInfo</a> &gt; ripple::ValidatorList::parseBlobs </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>version</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classJson_1_1Value.html">Json::Value</a> const &amp;&#160;</td>
<td class="paramname"><em>body</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Pull the blob/signature/manifest information out of the appropriate <a class="el" href="namespaceJson.html" title="JSON (JavaScript Object Notation).">Json</a> body fields depending on the version. </p>
<dl class="section return"><dt>Returns</dt><dd>An empty vector indicates malformed <a class="el" href="namespaceJson.html" title="JSON (JavaScript Object Notation).">Json</a>. </dd></dl>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l00400">400</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a00f7133196028a7df7331c972abf9169" name="a00f7133196028a7df7331c972abf9169"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00f7133196028a7df7331c972abf9169">&#9670;&#160;</a></span>parseBlobs() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="structripple_1_1ValidatorBlobInfo.html">ValidatorBlobInfo</a> &gt; ripple::ValidatorList::parseBlobs </td>
<td>(</td>
<td class="paramtype">protocol::TMValidatorList const &amp;&#160;</td>
<td class="paramname"><em>body</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l00463">463</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a4abcd1b16fada4897130485669234083" name="a4abcd1b16fada4897130485669234083"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4abcd1b16fada4897130485669234083">&#9670;&#160;</a></span>parseBlobs() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="structripple_1_1ValidatorBlobInfo.html">ValidatorBlobInfo</a> &gt; ripple::ValidatorList::parseBlobs </td>
<td>(</td>
<td class="paramtype">protocol::TMValidatorListCollection const &amp;&#160;</td>
<td class="paramname"><em>body</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l00470">470</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a023f425a3145224e0101f0ef9db7c917" name="a023f425a3145224e0101f0ef9db7c917"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a023f425a3145224e0101f0ef9db7c917">&#9670;&#160;</a></span>sendValidatorList() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::ValidatorList::sendValidatorList </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Peer.html">Peer</a> &amp;&#160;</td>
<td class="paramname"><em>peer</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::uint64_t</a>&#160;</td>
<td class="paramname"><em>peerSequence</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;&#160;</td>
<td class="paramname"><em>publisherKey</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td>
<td class="paramname"><em>maxSequence</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>rawVersion</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;&#160;</td>
<td class="paramname"><em>rawManifest</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>, <a class="el" href="structripple_1_1ValidatorBlobInfo.html">ValidatorBlobInfo</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>blobInfos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1HashRouter.html">HashRouter</a> &amp;&#160;</td>
<td class="paramname"><em>hashRouter</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classbeast_1_1Journal.html">beast::Journal</a>&#160;</td>
<td class="paramname"><em>j</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l00819">819</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="af2dde165e04bd3a99a397fe3541f341e" name="af2dde165e04bd3a99a397fe3541f341e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af2dde165e04bd3a99a397fe3541f341e">&#9670;&#160;</a></span>buildValidatorListMessages()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> &gt; ripple::ValidatorList::buildValidatorListMessages </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td>
<td class="paramname"><em>messageVersion</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::uint64_t</a>&#160;</td>
<td class="paramname"><em>peerSequence</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td>
<td class="paramname"><em>maxSequence</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>rawVersion</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;&#160;</td>
<td class="paramname"><em>rawManifest</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>, <a class="el" href="structripple_1_1ValidatorBlobInfo.html">ValidatorBlobInfo</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>blobInfos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="structripple_1_1ValidatorList_1_1MessageWithHash.html">MessageWithHash</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>messages</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td>
<td class="paramname"><em>maxSize</em> = <code><a class="el" href="namespaceripple.html#ac6313681c41516db0a8f8829e1d7b753">maximiumMessageSize</a></code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l00672">672</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a7bdc06d223ec320799b7b09fe38fb16a" name="a7bdc06d223ec320799b7b09fe38fb16a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7bdc06d223ec320799b7b09fe38fb16a">&#9670;&#160;</a></span>applyListsAndBroadcast()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structripple_1_1ValidatorList_1_1PublisherListStats.html">ValidatorList::PublisherListStats</a> ripple::ValidatorList::applyListsAndBroadcast </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;&#160;</td>
<td class="paramname"><em>manifest</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>version</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="structripple_1_1ValidatorBlobInfo.html">ValidatorBlobInfo</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>blobs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td>
<td class="paramname"><em>siteUri</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> const &amp;&#160;</td>
<td class="paramname"><em>hash</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1Overlay.html">Overlay</a> &amp;&#160;</td>
<td class="paramname"><em>overlay</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1HashRouter.html">HashRouter</a> &amp;&#160;</td>
<td class="paramname"><em>hashRouter</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1NetworkOPs.html">NetworkOPs</a> &amp;&#160;</td>
<td class="paramname"><em>networkOPs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Apply multiple published lists of public keys, then broadcast it to all peers that have not seen it or sent it. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">manifest</td><td>base64-encoded publisher key manifest</td></tr>
<tr><td class="paramname">version</td><td>Version of published list format</td></tr>
<tr><td class="paramname">blobs</td><td>Vector of BlobInfos representing one or more encoded validator lists and signatures (and optional manifests)</td></tr>
<tr><td class="paramname">siteUri</td><td>Uri of the site from which the list was validated</td></tr>
<tr><td class="paramname">hash</td><td>Hash of the data parameters</td></tr>
<tr><td class="paramname">overlay</td><td><a class="el" href="classripple_1_1Overlay.html" title="Manages the set of connected peers.">Overlay</a> object which will handle sending the message</td></tr>
<tr><td class="paramname">hashRouter</td><td><a class="el" href="classripple_1_1HashRouter.html" title="Routing table for objects identified by hash.">HashRouter</a> object which will determine which peers not to send to</td></tr>
<tr><td class="paramname">networkOPs</td><td><a class="el" href="classripple_1_1NetworkOPs.html" title="Provides server functionality for clients.">NetworkOPs</a> object which will be informed if there is a valid VL</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code><a class="el" href="namespaceripple.html#a6eaff79c38106bc3b27326d878c902d3a3e4d891a5df3d6d0d7dd9432a1bc6470" title="List is valid.">ListDisposition::accepted</a></code>, plus some of the publisher information, if list was successfully applied</dd></dl>
<dl class="section user"><dt>Thread Safety</dt><dd></dd></dl>
<p>May be called concurrently </p>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l00940">940</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="aed9fb899a5dbc48018f3bdeedb55a110" name="aed9fb899a5dbc48018f3bdeedb55a110"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aed9fb899a5dbc48018f3bdeedb55a110">&#9670;&#160;</a></span>applyLists()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structripple_1_1ValidatorList_1_1PublisherListStats.html">ValidatorList::PublisherListStats</a> ripple::ValidatorList::applyLists </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;&#160;</td>
<td class="paramname"><em>manifest</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>version</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="structripple_1_1ValidatorBlobInfo.html">ValidatorBlobInfo</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>blobs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td>
<td class="paramname"><em>siteUri</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="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>hash</em> = <code>{}</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Apply multiple published lists of public keys. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">manifest</td><td>base64-encoded publisher key manifest</td></tr>
<tr><td class="paramname">version</td><td>Version of published list format</td></tr>
<tr><td class="paramname">blobs</td><td>Vector of BlobInfos representing one or more encoded validator lists and signatures (and optional manifests)</td></tr>
<tr><td class="paramname">siteUri</td><td>Uri of the site from which the list was validated</td></tr>
<tr><td class="paramname">hash</td><td>Optional hash of the data parameters</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code><a class="el" href="namespaceripple.html#a6eaff79c38106bc3b27326d878c902d3a3e4d891a5df3d6d0d7dd9432a1bc6470" title="List is valid.">ListDisposition::accepted</a></code>, plus some of the publisher information, if list was successfully applied</dd></dl>
<dl class="section user"><dt>Thread Safety</dt><dd></dd></dl>
<p>May be called concurrently </p>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l00998">998</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a12f49b76ef58d9c64310aa4a7ce0115a" name="a12f49b76ef58d9c64310aa4a7ce0115a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a12f49b76ef58d9c64310aa4a7ce0115a">&#9670;&#160;</a></span>loadLists()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &gt; ripple::ValidatorList::loadLists </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01301">1301</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="aa4813b41483e2df542ce2731fb7b5f5d" name="aa4813b41483e2df542ce2731fb7b5f5d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa4813b41483e2df542ce2731fb7b5f5d">&#9670;&#160;</a></span>updateTrusted()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structripple_1_1TrustChanges.html">TrustChanges</a> ripple::ValidatorList::updateTrusted </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt; <a class="el" href="namespaceripple.html#a4e412a5834900d9affa8db3ac1a27209">NodeID</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>seenValidators</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1NetClock.html#a4c2428e178dca6689fa3fb4be0657107">NetClock::time_point</a>&#160;</td>
<td class="paramname"><em>closeTime</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1NetworkOPs.html">NetworkOPs</a> &amp;&#160;</td>
<td class="paramname"><em>ops</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1Overlay.html">Overlay</a> &amp;&#160;</td>
<td class="paramname"><em>overlay</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1HashRouter.html">HashRouter</a> &amp;&#160;</td>
<td class="paramname"><em>hashRouter</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Update trusted nodes. </p>
<p>Reset the trusted nodes based on latest manifests, received validations, and lists.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">seenValidators</td><td>Set of NodeIDs of validators that have signed recently received validations</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TrustedKeyChanges instance with newly trusted or untrusted node identities.</dd></dl>
<dl class="section user"><dt>Thread Safety</dt><dd></dd></dl>
<p>May be called concurrently </p>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01911">1911</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="ad28f57783826e0b090713c89265c81e4" name="ad28f57783826e0b090713c89265c81e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad28f57783826e0b090713c89265c81e4">&#9670;&#160;</a></span>quorum()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> ripple::ValidatorList::quorum </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Get quorum value for current trusted key set. </p>
<p>The quorum is the minimum number of validations needed for a ledger to be fully validated. It can change when the set of trusted validation keys is updated (at the start of each consensus round) and primarily depends on the number of trusted keys.</p>
<dl class="section user"><dt>Thread Safety</dt><dd></dd></dl>
<p>May be called concurrently</p>
<dl class="section return"><dt>Returns</dt><dd>quorum value </dd></dl>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8h_source.html#l00506">506</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div>
</div>
<a id="a9de7a870beb3104dc8320d6367b7f7e8" name="a9de7a870beb3104dc8320d6367b7f7e8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9de7a870beb3104dc8320d6367b7f7e8">&#9670;&#160;</a></span>trusted() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ripple::ValidatorList::trusted </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;&#160;</td>
<td class="paramname"><em>identity</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns <code>true</code> if public key is trusted. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">identity</td><td>Validation public key</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Thread Safety</dt><dd></dd></dl>
<p>May be called concurrently </p>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01461">1461</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a5b0d33cb960903cc89ba236178e0247b" name="a5b0d33cb960903cc89ba236178e0247b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5b0d33cb960903cc89ba236178e0247b">&#9670;&#160;</a></span>listed()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ripple::ValidatorList::listed </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;&#160;</td>
<td class="paramname"><em>identity</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns <code>true</code> if public key is included on any lists. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">identity</td><td>Validation public key</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Thread Safety</dt><dd></dd></dl>
<p>May be called concurrently </p>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01443">1443</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a0056ded6793baf9fda1c2f1fcffc535b" name="a0056ded6793baf9fda1c2f1fcffc535b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0056ded6793baf9fda1c2f1fcffc535b">&#9670;&#160;</a></span>getTrustedKey() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<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="classripple_1_1PublicKey.html">PublicKey</a> &gt; ripple::ValidatorList::getTrustedKey </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;&#160;</td>
<td class="paramname"><em>identity</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns master public key if public key is trusted. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">identity</td><td>Validation public key</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code><a class="elRef" href="http://en.cppreference.com/w/cpp/types/is_same.html">std::nullopt</a></code> if key is not trusted</dd></dl>
<dl class="section user"><dt>Thread Safety</dt><dd></dd></dl>
<p>May be called concurrently </p>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01490">1490</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a923f3aa3898a824b4b6947abd88502c5" name="a923f3aa3898a824b4b6947abd88502c5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a923f3aa3898a824b4b6947abd88502c5">&#9670;&#160;</a></span>getListedKey()</h2>
<div class="memitem">
<div class="memproto">
<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="classripple_1_1PublicKey.html">PublicKey</a> &gt; ripple::ValidatorList::getListedKey </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;&#160;</td>
<td class="paramname"><em>identity</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns listed master public if public key is included on any lists. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">identity</td><td>Validation public key</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code><a class="elRef" href="http://en.cppreference.com/w/cpp/types/is_same.html">std::nullopt</a></code> if key is not listed</dd></dl>
<dl class="section user"><dt>Thread Safety</dt><dd></dd></dl>
<p>May be called concurrently </p>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01468">1468</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a90d8cf623e6011f148956964d0e09b9c" name="a90d8cf623e6011f148956964d0e09b9c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90d8cf623e6011f148956964d0e09b9c">&#9670;&#160;</a></span>trustedPublisher()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ripple::ValidatorList::trustedPublisher </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;&#160;</td>
<td class="paramname"><em>identity</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns <code>true</code> if public key is a trusted publisher. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">identity</td><td>Publisher public key</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Thread Safety</dt><dd></dd></dl>
<p>May be called concurrently </p>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01498">1498</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a150b6f26a82b2d4a30d9558719cc8fd5" name="a150b6f26a82b2d4a30d9558719cc8fd5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a150b6f26a82b2d4a30d9558719cc8fd5">&#9670;&#160;</a></span>localPublicKey()</h2>
<div class="memitem">
<div class="memproto">
<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="classripple_1_1PublicKey.html">PublicKey</a> &gt; ripple::ValidatorList::localPublicKey </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the local validator public key or a <a class="elRef" href="http://en.cppreference.com/w/cpp/types/is_same.html">std::nullopt</a>. </p>
<dl class="section user"><dt>Thread Safety</dt><dd></dd></dl>
<p>May be called concurrently </p>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01506">1506</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="abc82f50ad5da8d3d12240e8025369789" name="abc82f50ad5da8d3d12240e8025369789"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abc82f50ad5da8d3d12240e8025369789">&#9670;&#160;</a></span>for_each_listed()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ripple::ValidatorList::for_each_listed </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt; void(<a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;, bool)&gt;&#160;</td>
<td class="paramname"><em>func</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Invokes the callback once for every listed validation public key. </p>
<dl class="section note"><dt>Note</dt><dd>Undefined behavior results when calling <a class="el" href="classripple_1_1ValidatorList.html">ValidatorList</a> members from within the callback</dd></dl>
<p>The arguments passed into the lambda are:</p>
<ul>
<li>The validation public key</li>
</ul>
<ul>
<li>A boolean indicating whether this is a trusted key</li>
</ul>
<dl class="section user"><dt>Thread Safety</dt><dd></dd></dl>
<p>May be called concurrently </p>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01750">1750</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a727b089f03d260cebfaca07ee4c83059" name="a727b089f03d260cebfaca07ee4c83059"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a727b089f03d260cebfaca07ee4c83059">&#9670;&#160;</a></span>for_each_available()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ripple::ValidatorList::for_each_available </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt; void(<a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;<a class="el" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45">manifest</a>, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> version, <a class="elRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>, <a class="el" href="structripple_1_1ValidatorBlobInfo.html">ValidatorBlobInfo</a> &gt; const &amp;blobInfos, <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;pubKey, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> maxSequence, <a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> const &amp;hash)&gt;&#160;</td>
<td class="paramname"><em>func</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Invokes the callback once for every available publisher list's raw data members. </p>
<dl class="section note"><dt>Note</dt><dd>Undefined behavior results when calling <a class="el" href="classripple_1_1ValidatorList.html">ValidatorList</a> members from within the callback</dd></dl>
<p>The arguments passed into the lambda are:</p>
<ul>
<li>The raw manifest string</li>
</ul>
<ul>
<li>The raw "blob" string containing the values for the validator list</li>
</ul>
<ul>
<li>The signature string used to sign the blob</li>
</ul>
<ul>
<li>The version number</li>
</ul>
<ul>
<li>The <code><a class="el" href="classripple_1_1PublicKey.html" title="A public key.">PublicKey</a></code> of the blob signer (matches the value from [validator_list_keys])</li>
</ul>
<ul>
<li>The sequence number of the "blob"</li>
</ul>
<ul>
<li>The precomputed hash of the original / raw elements</li>
</ul>
<dl class="section user"><dt>Thread Safety</dt><dd></dd></dl>
<p>May be called concurrently </p>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01760">1760</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a62f2c33d93c3985c6c486a9bfc6499fe" name="a62f2c33d93c3985c6c486a9bfc6499fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62f2c33d93c3985c6c486a9bfc6499fe">&#9670;&#160;</a></span>getAvailable()</h2>
<div class="memitem">
<div class="memproto">
<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="classJson_1_1Value.html">Json::Value</a> &gt; ripple::ValidatorList::getAvailable </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string_view.html">std::string_view</a>&#160;</td>
<td class="paramname"><em>pubKey</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/types/integer.html">std::uint32_t</a> &gt;&#160;</td>
<td class="paramname"><em>forceVersion</em> = <code>{}</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the current valid list for the given publisher key, if available, as a <a class="el" href="namespaceJson.html" title="JSON (JavaScript Object Notation).">Json</a> object. </p>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01789">1789</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a002fda13878b813249f3fd49e64577fd" name="a002fda13878b813249f3fd49e64577fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a002fda13878b813249f3fd49e64577fd">&#9670;&#160;</a></span>count() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> ripple::ValidatorList::count </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the number of configured validator list sites. </p>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01554">1554</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a74578a60966c12996799fd9784d66741" name="a74578a60966c12996799fd9784d66741"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74578a60966c12996799fd9784d66741">&#9670;&#160;</a></span>expires() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<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="classbeast_1_1abstract__clock.html#a4e16832b0bdf9392c5138bbbde024d8e">TimeKeeper::time_point</a> &gt; ripple::ValidatorList::expires </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the time when the validator list will expire. </p>
<dl class="section note"><dt>Note</dt><dd>This may be a time in the past if a published list has not been updated since its validUntil. It will be <a class="elRef" href="http://en.cppreference.com/w/cpp/types/is_same.html">std::nullopt</a> if any configured published list has not been fetched.</dd></dl>
<dl class="section user"><dt>Thread Safety</dt><dd>May be called concurrently </dd></dl>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01610">1610</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a6f943a4488f3b50dcbb5177007d43271" name="a6f943a4488f3b50dcbb5177007d43271"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6f943a4488f3b50dcbb5177007d43271">&#9670;&#160;</a></span>getJson()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classJson_1_1Value.html">Json::Value</a> ripple::ValidatorList::getJson </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Return a JSON representation of the state of the validator list. </p>
<dl class="section user"><dt>Thread Safety</dt><dd>May be called concurrently </dd></dl>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01617">1617</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="af37bfdb23c49649cfa40a40ac5d182fd" name="af37bfdb23c49649cfa40a40ac5d182fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af37bfdb23c49649cfa40a40ac5d182fd">&#9670;&#160;</a></span>getQuorumKeys()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classripple_1_1ValidatorList.html#a0e64fc4e7cd29077bc19fd59f64d9b7d">QuorumKeys</a> ripple::ValidatorList::getQuorumKeys </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the quorum and all of the trusted keys. </p>
<dl class="section return"><dt>Returns</dt><dd>quorum and keys. </dd></dl>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8h_source.html#l00673">673</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div>
</div>
<a id="a22bb356f3dff23879344acd8121abbe3" name="a22bb356f3dff23879344acd8121abbe3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a22bb356f3dff23879344acd8121abbe3">&#9670;&#160;</a></span>getTrustedMasterKeys()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt; <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> &gt; ripple::ValidatorList::getTrustedMasterKeys </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>get the trusted master public keys </p>
<dl class="section return"><dt>Returns</dt><dd>the public keys </dd></dl>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l02107">2107</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="aaa7f964baccfa4bcb35b7b4ab5d4cc63" name="aaa7f964baccfa4bcb35b7b4ab5d4cc63"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa7f964baccfa4bcb35b7b4ab5d4cc63">&#9670;&#160;</a></span>getListThreshold()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> ripple::ValidatorList::getListThreshold </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>get the validator list threshold </p>
<dl class="section return"><dt>Returns</dt><dd>the threshold </dd></dl>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l02114">2114</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="afef3dd7af8c40b51da43a945f632b4c5" name="afef3dd7af8c40b51da43a945f632b4c5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afef3dd7af8c40b51da43a945f632b4c5">&#9670;&#160;</a></span>getNegativeUNL()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt; <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> &gt; ripple::ValidatorList::getNegativeUNL </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>get the master public keys of Negative UNL validators </p>
<dl class="section return"><dt>Returns</dt><dd>the master public keys </dd></dl>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l02121">2121</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a3749eaabef35e6178bc74fc8dfe6f4a2" name="a3749eaabef35e6178bc74fc8dfe6f4a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3749eaabef35e6178bc74fc8dfe6f4a2">&#9670;&#160;</a></span>setNegativeUNL()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ripple::ValidatorList::setNegativeUNL </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt; <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>negUnl</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>set the Negative UNL with validators' master public keys </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">negUnl</td><td>the public keys </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l02128">2128</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="abd6d3f90be1eff9c1216f37f379ca67f" name="abd6d3f90be1eff9c1216f37f379ca67f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abd6d3f90be1eff9c1216f37f379ca67f">&#9670;&#160;</a></span>negativeUNLFilter()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1STValidation.html">STValidation</a> &gt; &gt; ripple::ValidatorList::negativeUNLFilter </td>
<td>(</td>
<td class="paramtype"><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/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1STValidation.html">STValidation</a> &gt; &gt; &amp;&amp;&#160;</td>
<td class="paramname"><em>validations</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Remove validations that are from validators on the negative UNL. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">validations</td><td>the validations to filter </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a filtered copy of the validations </dd></dl>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l02135">2135</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a42f61dfc9c05a17b695f6630452ca7f7" name="a42f61dfc9c05a17b695f6630452ca7f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a42f61dfc9c05a17b695f6630452ca7f7">&#9670;&#160;</a></span>count() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> ripple::ValidatorList::count </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1ValidatorList.html#af3ef45920a9f32e107842a863fb65220">ValidatorList::shared_lock</a> const &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the number of configured validator list sites. </p>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01548">1548</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a15193c461b148a76cf11872f6641b26b" name="a15193c461b148a76cf11872f6641b26b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15193c461b148a76cf11872f6641b26b">&#9670;&#160;</a></span>trusted() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ripple::ValidatorList::trusted </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1ValidatorList.html#af3ef45920a9f32e107842a863fb65220">ValidatorList::shared_lock</a> 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_1PublicKey.html">PublicKey</a> const &amp;&#160;</td>
<td class="paramname"><em>identity</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns <code>true</code> if public key is trusted. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">identity</td><td>Validation public key</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Thread Safety</dt><dd></dd></dl>
<p>May be called concurrently </p>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01452">1452</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a15ca6b033b973fb438ca5d1b6a66b5b9" name="a15ca6b033b973fb438ca5d1b6a66b5b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15ca6b033b973fb438ca5d1b6a66b5b9">&#9670;&#160;</a></span>getTrustedKey() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> &gt; ripple::ValidatorList::getTrustedKey </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1ValidatorList.html#af3ef45920a9f32e107842a863fb65220">ValidatorList::shared_lock</a> 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_1PublicKey.html">PublicKey</a> const &amp;&#160;</td>
<td class="paramname"><em>identity</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns master public key if public key is trusted. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">identity</td><td>Validation public key</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code><a class="elRef" href="http://en.cppreference.com/w/cpp/types/is_same.html">std::nullopt</a></code> if key is not trusted</dd></dl>
<dl class="section user"><dt>Thread Safety</dt><dd></dd></dl>
<p>May be called concurrently </p>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01479">1479</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="ae8b5192dbbf82c4a0150538f50d49184" name="ae8b5192dbbf82c4a0150538f50d49184"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae8b5192dbbf82c4a0150538f50d49184">&#9670;&#160;</a></span>expires() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; <a class="el" href="classbeast_1_1abstract__clock.html#a4e16832b0bdf9392c5138bbbde024d8e">TimeKeeper::time_point</a> &gt; ripple::ValidatorList::expires </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1ValidatorList.html#af3ef45920a9f32e107842a863fb65220">ValidatorList::shared_lock</a> const &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the time when the validator list will expire. </p>
<dl class="section note"><dt>Note</dt><dd>This may be a time in the past if a published list has not been updated since its expiration. It will be <a class="elRef" href="http://en.cppreference.com/w/cpp/types/is_same.html">std::nullopt</a> if any configured published list has not been fetched.</dd></dl>
<dl class="section user"><dt>Thread Safety</dt><dd>May be called concurrently </dd></dl>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01561">1561</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a647d2962692b44371893c84549fe918c" name="a647d2962692b44371893c84549fe918c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a647d2962692b44371893c84549fe918c">&#9670;&#160;</a></span>applyList()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structripple_1_1ValidatorList_1_1PublisherListStats.html">ValidatorList::PublisherListStats</a> ripple::ValidatorList::applyList </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;&#160;</td>
<td class="paramname"><em>globalManifest</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/string/basic_string.html">std::string</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>localManifest</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;&#160;</td>
<td class="paramname"><em>blob</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;&#160;</td>
<td class="paramname"><em>signature</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>version</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td>
<td class="paramname"><em>siteUri</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="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>hash</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1ValidatorList.html#a7d01331569744f1a083c544a31eec542">ValidatorList::lock_guard</a> const &amp;&#160;</td>
<td class="paramname"><em>lock</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Apply published list of public keys. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">manifest</td><td>base64-encoded publisher key manifest</td></tr>
<tr><td class="paramname">blob</td><td>base64-encoded json containing published validator list</td></tr>
<tr><td class="paramname">signature</td><td>Signature of the decoded blob</td></tr>
<tr><td class="paramname">version</td><td>Version of published list format</td></tr>
<tr><td class="paramname">siteUri</td><td>Uri of the site from which the list was validated</td></tr>
<tr><td class="paramname">hash</td><td>Optional hash of the data parameters. Defaults to uninitialized</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code><a class="el" href="namespaceripple.html#a6eaff79c38106bc3b27326d878c902d3a3e4d891a5df3d6d0d7dd9432a1bc6470" title="List is valid.">ListDisposition::accepted</a></code>, plus some of the publisher information, if list was successfully applied</dd></dl>
<dl class="section user"><dt>Thread Safety</dt><dd></dd></dl>
<p>May be called concurrently </p>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01138">1138</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a3728d8811726a5ffb23bcd5c21d235a3" name="a3728d8811726a5ffb23bcd5c21d235a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3728d8811726a5ffb23bcd5c21d235a3">&#9670;&#160;</a></span>updatePublisherList()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::ValidatorList::updatePublisherList </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;&#160;</td>
<td class="paramname"><em>pubKey</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structripple_1_1ValidatorList_1_1PublisherList.html">PublisherList</a> const &amp;&#160;</td>
<td class="paramname"><em>current</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>oldList</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1ValidatorList.html#a7d01331569744f1a083c544a31eec542">ValidatorList::lock_guard</a> const &amp;&#160;</td>
<td class="paramname">&#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="ValidatorList_8cpp_source.html#l01074">1074</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a437c1823bf6bb8498cc153896b3abfa5" name="a437c1823bf6bb8498cc153896b3abfa5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a437c1823bf6bb8498cc153896b3abfa5">&#9670;&#160;</a></span>buildBlobInfos() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::ValidatorList::buildBlobInfos </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>, <a class="el" href="structripple_1_1ValidatorBlobInfo.html">ValidatorBlobInfo</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>blobInfos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structripple_1_1ValidatorList_1_1PublisherListCollection.html">ValidatorList::PublisherListCollection</a> const &amp;&#160;</td>
<td class="paramname"><em>lists</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l00846">846</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a17b4fae898c2fe1c40471536133753d3" name="a17b4fae898c2fe1c40471536133753d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a17b4fae898c2fe1c40471536133753d3">&#9670;&#160;</a></span>buildBlobInfos() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>, <a class="el" href="structripple_1_1ValidatorBlobInfo.html">ValidatorBlobInfo</a> &gt; ripple::ValidatorList::buildBlobInfos </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structripple_1_1ValidatorList_1_1PublisherListCollection.html">ValidatorList::PublisherListCollection</a> const &amp;&#160;</td>
<td class="paramname"><em>lists</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l00862">862</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a0db3ac667949c8002894beb011f7f139" name="a0db3ac667949c8002894beb011f7f139"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0db3ac667949c8002894beb011f7f139">&#9670;&#160;</a></span>broadcastBlobs()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::ValidatorList::broadcastBlobs </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;&#160;</td>
<td class="paramname"><em>publisherKey</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structripple_1_1ValidatorList_1_1PublisherListCollection.html">ValidatorList::PublisherListCollection</a> const &amp;&#160;</td>
<td class="paramname"><em>lists</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td>
<td class="paramname"><em>maxSequence</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> const &amp;&#160;</td>
<td class="paramname"><em>hash</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1Overlay.html">Overlay</a> &amp;&#160;</td>
<td class="paramname"><em>overlay</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1HashRouter.html">HashRouter</a> &amp;&#160;</td>
<td class="paramname"><em>hashRouter</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classbeast_1_1Journal.html">beast::Journal</a>&#160;</td>
<td class="paramname"><em>j</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l00872">872</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a19844edbd01319f6f0ddca1c94def75f" name="a19844edbd01319f6f0ddca1c94def75f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a19844edbd01319f6f0ddca1c94def75f">&#9670;&#160;</a></span>sendValidatorList() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::ValidatorList::sendValidatorList </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Peer.html">Peer</a> &amp;&#160;</td>
<td class="paramname"><em>peer</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::uint64_t</a>&#160;</td>
<td class="paramname"><em>peerSequence</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> const &amp;&#160;</td>
<td class="paramname"><em>publisherKey</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td>
<td class="paramname"><em>maxSequence</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>rawVersion</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;&#160;</td>
<td class="paramname"><em>rawManifest</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>, <a class="el" href="structripple_1_1ValidatorBlobInfo.html">ValidatorBlobInfo</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>blobInfos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="structripple_1_1ValidatorList_1_1MessageWithHash.html">MessageWithHash</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>messages</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1HashRouter.html">HashRouter</a> &amp;&#160;</td>
<td class="paramname"><em>hashRouter</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classbeast_1_1Journal.html">beast::Journal</a>&#160;</td>
<td class="paramname"><em>j</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l00740">740</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a11929bd666b5a688054d623832118033" name="a11929bd666b5a688054d623832118033"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a11929bd666b5a688054d623832118033">&#9670;&#160;</a></span>getCacheFileName()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">boost::filesystem::path ripple::ValidatorList::getCacheFileName </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1ValidatorList.html#a7d01331569744f1a083c544a31eec542">ValidatorList::lock_guard</a> 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_1PublicKey.html">PublicKey</a> const &amp;&#160;</td>
<td class="paramname"><em>pubKey</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the filename used for caching UNLs. </p>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l00286">286</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a3cb3357e6108a7e96d03e4da7feb7d5a" name="a3cb3357e6108a7e96d03e4da7feb7d5a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3cb3357e6108a7e96d03e4da7feb7d5a">&#9670;&#160;</a></span>buildFileData() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classJson_1_1Value.html">Json::Value</a> ripple::ValidatorList::buildFileData </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;&#160;</td>
<td class="paramname"><em>pubKey</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structripple_1_1ValidatorList_1_1PublisherListCollection.html">ValidatorList::PublisherListCollection</a> const &amp;&#160;</td>
<td class="paramname"><em>pubCollection</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classbeast_1_1Journal.html">beast::Journal</a>&#160;</td>
<td class="paramname"><em>j</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Build a <a class="el" href="namespaceJson.html" title="JSON (JavaScript Object Notation).">Json</a> representation of the collection, suitable for writing to a cache file, or serving to a /vl/ query. </p>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l00295">295</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a789233c78ed4fddac45196e4efe9f0dd" name="a789233c78ed4fddac45196e4efe9f0dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a789233c78ed4fddac45196e4efe9f0dd">&#9670;&#160;</a></span>buildFileData() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classJson_1_1Value.html">Json::Value</a> ripple::ValidatorList::buildFileData </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;&#160;</td>
<td class="paramname"><em>pubKey</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structripple_1_1ValidatorList_1_1PublisherListCollection.html">ValidatorList::PublisherListCollection</a> const &amp;&#160;</td>
<td class="paramname"><em>pubCollection</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/types/integer.html">std::uint32_t</a> &gt;&#160;</td>
<td class="paramname"><em>forceVersion</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classbeast_1_1Journal.html">beast::Journal</a>&#160;</td>
<td class="paramname"><em>j</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Build a <a class="el" href="namespaceJson.html" title="JSON (JavaScript Object Notation).">Json</a> representation of the collection, suitable for writing to a cache file, or serving to a /vl/ query. </p>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l00305">305</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a61c0b817fc56c96d5a6c40a0e7dadbeb" name="a61c0b817fc56c96d5a6c40a0e7dadbeb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a61c0b817fc56c96d5a6c40a0e7dadbeb">&#9670;&#160;</a></span>cacheValidatorFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::ValidatorList::cacheValidatorFile </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1ValidatorList.html#a7d01331569744f1a083c544a31eec542">ValidatorList::lock_guard</a> 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_1PublicKey.html">PublicKey</a> const &amp;&#160;</td>
<td class="paramname"><em>pubKey</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Write a JSON UNL to a cache file. </p>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l00369">369</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="aa82ddd30208190e80a0cbb25eb0f8bfa" name="aa82ddd30208190e80a0cbb25eb0f8bfa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa82ddd30208190e80a0cbb25eb0f8bfa">&#9670;&#160;</a></span>verify()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; <a class="el" href="namespaceripple.html#a6eaff79c38106bc3b27326d878c902d3">ListDisposition</a>, <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; <a class="el" href="classripple_1_1PublicKey.html">PublicKey</a> &gt; &gt; ripple::ValidatorList::verify </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1ValidatorList.html#a7d01331569744f1a083c544a31eec542">ValidatorList::lock_guard</a> 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="classJson_1_1Value.html">Json::Value</a> &amp;&#160;</td>
<td class="paramname"><em>list</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;&#160;</td>
<td class="paramname"><em>manifest</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;&#160;</td>
<td class="paramname"><em>blob</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;&#160;</td>
<td class="paramname"><em>signature</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>Check response for trusted valid published list. </p>
<dl class="section return"><dt>Returns</dt><dd><code><a class="el" href="namespaceripple.html#a6eaff79c38106bc3b27326d878c902d3a3e4d891a5df3d6d0d7dd9432a1bc6470" title="List is valid.">ListDisposition::accepted</a></code> if list can be applied</dd></dl>
<dl class="section user"><dt>Thread Safety</dt><dd></dd></dl>
<p>Calling public member function is expected to lock mutex </p>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01356">1356</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a9d3a6dfa4f7ffe2717513369298e7268" name="a9d3a6dfa4f7ffe2717513369298e7268"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9d3a6dfa4f7ffe2717513369298e7268">&#9670;&#160;</a></span>removePublisherList()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ripple::ValidatorList::removePublisherList </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1ValidatorList.html#a7d01331569744f1a083c544a31eec542">ValidatorList::lock_guard</a> 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_1PublicKey.html">PublicKey</a> const &amp;&#160;</td>
<td class="paramname"><em>publisherKey</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple.html#aaf9d6587e02c610e84a029ad5b5e17b4">PublisherStatus</a>&#160;</td>
<td class="paramname"><em>reason</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>Stop trusting publisher's list of keys. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">publisherKey</td><td>Publisher public key</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>false</code> if key was not trusted</dd></dl>
<dl class="section user"><dt>Thread Safety</dt><dd></dd></dl>
<p>Calling public member function is expected to lock mutex </p>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01513">1513</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<a id="a79545d89d7c7c5bfef7f15ce0510577b" name="a79545d89d7c7c5bfef7f15ce0510577b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79545d89d7c7c5bfef7f15ce0510577b">&#9670;&#160;</a></span>calculateQuorum()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> ripple::ValidatorList::calculateQuorum </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td>
<td class="paramname"><em>unlSize</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td>
<td class="paramname"><em>effectiveUnlSize</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td>
<td class="paramname"><em>seenSize</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>Return quorum for trusted validator set. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">unlSize</td><td><a class="el" href="classripple_1_1Number.html">Number</a> of trusted validator keys</td></tr>
<tr><td class="paramname">effectiveUnlSize</td><td><a class="el" href="classripple_1_1Number.html">Number</a> of trusted validator keys that are not in the NegativeUNL</td></tr>
<tr><td class="paramname">seenSize</td><td><a class="el" href="classripple_1_1Number.html">Number</a> of trusted validators that have signed recently received validations </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="ValidatorList_8cpp_source.html#l01819">1819</a> of file <a class="el" href="ValidatorList_8cpp_source.html">ValidatorList.cpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Friends And Related Symbol Documentation</h2>
<a id="aff78bcfb98b735a41d082871e735ccc7" name="aff78bcfb98b735a41d082871e735ccc7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aff78bcfb98b735a41d082871e735ccc7">&#9670;&#160;</a></span>hash_append</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Hasher &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void hash_append </td>
<td>(</td>
<td class="paramtype">Hasher &amp;&#160;</td>
<td class="paramname"><em>h</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structripple_1_1ValidatorList_1_1PublisherListCollection.html">PublisherListCollection</a>&#160;</td>
<td class="paramname"><em>pl</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">friend</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ValidatorList_8h_source.html#l00857">857</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a19f4cc404400551b2a39c7c5a137e01f" name="a19f4cc404400551b2a39c7c5a137e01f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a19f4cc404400551b2a39c7c5a137e01f">&#9670;&#160;</a></span>validatorManifests_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classripple_1_1ManifestCache.html">ManifestCache</a>&amp; ripple::ValidatorList::validatorManifests_</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="ValidatorList_8h_source.html#l00224">224</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div>
</div>
<a id="af8fe24acb044cf9b928d14a1e84b63ac" name="af8fe24acb044cf9b928d14a1e84b63ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af8fe24acb044cf9b928d14a1e84b63ac">&#9670;&#160;</a></span>publisherManifests_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classripple_1_1ManifestCache.html">ManifestCache</a>&amp; ripple::ValidatorList::publisherManifests_</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="ValidatorList_8h_source.html#l00225">225</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div>
</div>
<a id="a390041ee5976df2e6b170a3c6eed5de5" name="a390041ee5976df2e6b170a3c6eed5de5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a390041ee5976df2e6b170a3c6eed5de5">&#9670;&#160;</a></span>timeKeeper_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classripple_1_1TimeKeeper.html">TimeKeeper</a>&amp; ripple::ValidatorList::timeKeeper_</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="ValidatorList_8h_source.html#l00226">226</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div>
</div>
<a id="a9475570d68abff79cc3392bd658bccb4" name="a9475570d68abff79cc3392bd658bccb4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9475570d68abff79cc3392bd658bccb4">&#9670;&#160;</a></span>dataPath_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">boost::filesystem::path const ripple::ValidatorList::dataPath_</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="ValidatorList_8h_source.html#l00227">227</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div>
</div>
<a id="a82ca85cd7be327072ee4ecc3bcb8fb27" name="a82ca85cd7be327072ee4ecc3bcb8fb27"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82ca85cd7be327072ee4ecc3bcb8fb27">&#9670;&#160;</a></span>j_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> const ripple::ValidatorList::j_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ValidatorList_8h_source.html#l00228">228</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div>
</div>
<a id="a796cfdb52b275852b6aa548bcf42a002" name="a796cfdb52b275852b6aa548bcf42a002"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a796cfdb52b275852b6aa548bcf42a002">&#9670;&#160;</a></span>mutex_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/shared_mutex.html">std::shared_mutex</a> ripple::ValidatorList::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="ValidatorList_8h_source.html#l00229">229</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div>
</div>
<a id="a2c598bf8d6f6358e1f08eb47df0b49d2" name="a2c598bf8d6f6358e1f08eb47df0b49d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c598bf8d6f6358e1f08eb47df0b49d2">&#9670;&#160;</a></span>quorum_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt;<a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&gt; ripple::ValidatorList::quorum_</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="ValidatorList_8h_source.html#l00233">233</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div>
</div>
<a id="ac3b9186600dcd1c5326c80af17165741" name="ac3b9186600dcd1c5326c80af17165741"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac3b9186600dcd1c5326c80af17165741">&#9670;&#160;</a></span>minimumQuorum_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt;<a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&gt; ripple::ValidatorList::minimumQuorum_</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="ValidatorList_8h_source.html#l00234">234</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div>
</div>
<a id="aebd0354cf915b7c82161dca56c5c378b" name="aebd0354cf915b7c82161dca56c5c378b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aebd0354cf915b7c82161dca56c5c378b">&#9670;&#160;</a></span>publisherLists_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceripple.html#a46c521271235f4e2715d7fa8b68940ca">hash_map</a>&lt;<a class="el" href="classripple_1_1PublicKey.html">PublicKey</a>, <a class="el" href="structripple_1_1ValidatorList_1_1PublisherListCollection.html">PublisherListCollection</a>&gt; ripple::ValidatorList::publisherLists_</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="ValidatorList_8h_source.html#l00237">237</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div>
</div>
<a id="a4489b055e951d0923286cffecd9dee46" name="a4489b055e951d0923286cffecd9dee46"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4489b055e951d0923286cffecd9dee46">&#9670;&#160;</a></span>keyListings_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceripple.html#a46c521271235f4e2715d7fa8b68940ca">hash_map</a>&lt;<a class="el" href="classripple_1_1PublicKey.html">PublicKey</a>, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&gt; ripple::ValidatorList::keyListings_</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="ValidatorList_8h_source.html#l00240">240</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div>
</div>
<a id="a623a1124f621b9ee5745bd22094b4acb" name="a623a1124f621b9ee5745bd22094b4acb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a623a1124f621b9ee5745bd22094b4acb">&#9670;&#160;</a></span>trustedMasterKeys_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt;<a class="el" href="classripple_1_1PublicKey.html">PublicKey</a>&gt; ripple::ValidatorList::trustedMasterKeys_</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="ValidatorList_8h_source.html#l00243">243</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div>
</div>
<a id="a5cbb13f05befbcb3ad0be0501b85d610" name="a5cbb13f05befbcb3ad0be0501b85d610"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5cbb13f05befbcb3ad0be0501b85d610">&#9670;&#160;</a></span>listThreshold_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> ripple::ValidatorList::listThreshold_</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="ValidatorList_8h_source.html#l00246">246</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div>
</div>
<a id="ae06a469121f9f99ed9f3049e46d0206c" name="ae06a469121f9f99ed9f3049e46d0206c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae06a469121f9f99ed9f3049e46d0206c">&#9670;&#160;</a></span>trustedSigningKeys_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt;<a class="el" href="classripple_1_1PublicKey.html">PublicKey</a>&gt; ripple::ValidatorList::trustedSigningKeys_</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="ValidatorList_8h_source.html#l00251">251</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div>
</div>
<a id="abd28e45a701578558624ec9592f69bdf" name="abd28e45a701578558624ec9592f69bdf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abd28e45a701578558624ec9592f69bdf">&#9670;&#160;</a></span>localPubKey_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt;<a class="el" href="classripple_1_1PublicKey.html">PublicKey</a>&gt; ripple::ValidatorList::localPubKey_</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="ValidatorList_8h_source.html#l00253">253</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div>
</div>
<a id="a147f9d3a3afb1cdd7714d68202bd26ba" name="a147f9d3a3afb1cdd7714d68202bd26ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a147f9d3a3afb1cdd7714d68202bd26ba">&#9670;&#160;</a></span>localPublisherList</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structripple_1_1ValidatorList_1_1PublisherList.html">PublisherList</a> ripple::ValidatorList::localPublisherList</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="ValidatorList_8h_source.html#l00263">263</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div>
</div>
<a id="a6aed606d8af8e7d638308232efd15f11" name="a6aed606d8af8e7d638308232efd15f11"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6aed606d8af8e7d638308232efd15f11">&#9670;&#160;</a></span>negativeUNL_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceripple.html#a7750eec5e079354285f1d60cfd0247ca">hash_set</a>&lt;<a class="el" href="classripple_1_1PublicKey.html">PublicKey</a>&gt; ripple::ValidatorList::negativeUNL_</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="ValidatorList_8h_source.html#l00266">266</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div>
</div>
<a id="afb78f6ff830cea855542f3ad78a587b1" name="afb78f6ff830cea855542f3ad78a587b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb78f6ff830cea855542f3ad78a587b1">&#9670;&#160;</a></span>supportedListVersions</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> ripple::ValidatorList::supportedListVersions[] {1, 2}</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ValidatorList_8h_source.html#l00269">269</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div>
</div>
<a id="aa0c6d081fe5e626dc63a9cd949de2d85" name="aa0c6d081fe5e626dc63a9cd949de2d85"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0c6d081fe5e626dc63a9cd949de2d85">&#9670;&#160;</a></span>maxSupportedBlobs</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> ripple::ValidatorList::maxSupportedBlobs = 5</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ValidatorList_8h_source.html#l00272">272</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.h</a>.</p>
</div>
</div>
<a id="adfef0eec37f112fc8a5429764f6f9080" name="adfef0eec37f112fc8a5429764f6f9080"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adfef0eec37f112fc8a5429764f6f9080">&#9670;&#160;</a></span>filePrefix_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const ripple::ValidatorList::filePrefix_ = &quot;cache.&quot;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ValidatorList_8h_source.html#l00274">274</a> of file <a class="el" href="ValidatorList_8h_source.html">ValidatorList.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>