Files
rippled/classripple_1_1OpenLedger.html
2025-08-22 17:35:57 -07:00

936 lines
60 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::OpenLedger 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_1OpenLedger.html">OpenLedger</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#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="classripple_1_1OpenLedger-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">ripple::OpenLedger Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Represents the open ledger.
<a href="classripple_1_1OpenLedger.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="OpenLedger_8h_source.html">OpenLedger.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for ripple::OpenLedger:</div>
<div class="dyncontent">
<div class="center"><img src="classripple_1_1OpenLedger__coll__graph.png" border="0" usemap="#aripple_1_1OpenLedger_coll__map" alt="Collaboration graph"/></div>
<map name="aripple_1_1OpenLedger_coll__map" id="aripple_1_1OpenLedger_coll__map">
<area shape="rect" title="Represents the open ledger." alt="" coords="2031,1198,2176,1223"/>
<area shape="rect" href="classbeast_1_1Journal.html" title="A generic endpoint for log messages." alt="" coords="1365,1210,1476,1235"/>
<area shape="poly" title=" " alt="" coords="1490,1219,2030,1209,2030,1215,1490,1224"/>
<area shape="rect" href="classripple_1_1TaggedCache.html" title="Map/cache combination." alt="" coords="1651,1026,1876,1110"/>
<area shape="poly" title=" " alt="" coords="1484,1204,1553,1182,1625,1152,1702,1108,1705,1112,1628,1157,1555,1187,1485,1209"/>
<area shape="rect" href="classbeast_1_1Journal_1_1Sink.html" title="Abstraction for the underlying message destination." alt="" coords="1017,1210,1164,1235"/>
<area shape="poly" title=" " alt="" coords="1178,1220,1365,1220,1365,1225,1178,1225"/>
<area shape="poly" title=" " alt="" coords="1878,1113,2073,1196,2071,1200,1876,1118"/>
<area shape="rect" href="classbeast_1_1abstract__clock.html" title="Abstract interface to a clock." alt="" coords="1341,1133,1501,1173"/>
<area shape="poly" title=" " alt="" coords="1514,1139,1626,1116,1655,1107,1656,1113,1627,1121,1515,1144"/>
<area shape="rect" href="structripple_1_1TaggedCache_1_1Stats.html" title=" " alt="" coords="1308,811,1533,895"/>
<area shape="poly" title=" " alt="" coords="1547,884,1589,901,1628,923,1659,946,1687,972,1733,1024,1729,1028,1683,976,1655,950,1625,928,1587,906,1545,889"/>
<area shape="rect" href="classbeast_1_1insight_1_1Hook.html" title="A reference to a handler for performing polled collection." alt="" coords="1015,777,1167,802"/>
<area shape="poly" title=" " alt="" coords="1180,802,1285,821,1308,826,1307,831,1283,827,1179,807"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html" title=" " alt="" coords="595,715,765,755"/>
<area shape="poly" title=" " alt="" coords="742,757,817,779,920,790,1014,791,1014,796,919,795,815,784,740,762"/>
<area shape="rect" href="classbeast_1_1insight_1_1HookImpl.html" title=" " alt="" coords="243,722,425,747"/>
<area shape="poly" title=" " alt="" coords="439,732,594,732,594,737,439,737"/>
<area shape="rect" href="classbeast_1_1insight_1_1Gauge.html" title="A metric for measuring an integral value." alt="" coords="1011,881,1171,906"/>
<area shape="poly" title=" " alt="" coords="1184,894,1284,888,1307,884,1308,889,1284,893,1184,899"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html" title=" " alt="" coords="595,880,765,920"/>
<area shape="poly" title=" " alt="" coords="779,896,1011,892,1011,897,779,901"/>
<area shape="rect" href="classbeast_1_1insight_1_1GaugeImpl.html" title=" " alt="" coords="239,910,429,935"/>
<area shape="poly" title=" " alt="" coords="443,922,544,919,594,913,595,918,544,924,443,928"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/types/size_t.html" title=" " alt="" coords="290,805,378,830"/>
<area shape="poly" title=" " alt="" coords="392,817,1308,847,1308,852,392,822"/>
<area shape="rect" href="classripple_1_1partitioned__unordered__map.html" title=" " alt="" coords="593,945,767,1029"/>
<area shape="poly" title=" " alt="" coords="378,833,472,874,510,887,546,905,558,917,570,930,594,946,591,950,566,934,554,921,542,909,508,891,470,878,376,838"/>
<area shape="rect" href="classripple_1_1OpenView.html" title="Writable ledger view that accumulates state and tx changes." alt="" coords="1354,437,1487,462"/>
<area shape="poly" title=" " alt="" coords="392,809,800,763,1030,730,1125,713,1197,696,1243,683,1261,675,1282,659,1330,609,1367,552,1395,499,1412,461,1417,463,1400,501,1372,555,1334,612,1286,663,1264,679,1245,688,1198,701,1126,718,1031,736,800,768,392,814"/>
<area shape="rect" href="classripple_1_1base__uint.html" title=" " alt="" coords="609,348,751,388"/>
<area shape="poly" title=" " alt="" coords="390,799,420,782,444,757,454,732,458,698,456,613,454,528,458,493,468,466,485,451,504,445,523,441,542,430,554,414,566,398,608,378,610,383,570,402,558,417,546,434,525,446,505,450,488,455,473,470,463,494,459,529,461,613,463,698,459,733,449,760,423,786,392,803"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/thread/recursive_mutex.html" title=" " alt="" coords="1341,982,1500,1007"/>
<area shape="poly" title=" " alt="" coords="1505,1007,1627,1032,1651,1038,1650,1043,1626,1037,1504,1013"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/string/basic_string.html" title=" " alt="" coords="1377,1031,1464,1057"/>
<area shape="poly" title=" " alt="" coords="1478,1045,1651,1057,1650,1063,1478,1051"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/string/basic_string.html" title=" " alt="" coords="1021,1024,1160,1064"/>
<area shape="poly" title=" " alt="" coords="1174,1041,1377,1041,1377,1047,1174,1047"/>
<area shape="poly" title=" " alt="" coords="781,970,928,955,1116,944,1219,943,1325,946,1431,953,1534,967,1575,976,1616,990,1690,1023,1688,1028,1614,995,1574,981,1533,972,1430,958,1325,951,1219,948,1116,950,928,960,781,975"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/vector.html" title=" " alt="" coords="241,974,427,999"/>
<area shape="poly" title=" " alt="" coords="441,984,592,984,592,989,441,989"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/types/integer.html" title=" " alt="" coords="1369,1083,1472,1109"/>
<area shape="poly" title=" " alt="" coords="1486,1095,1554,1095,1626,1091,1650,1088,1651,1093,1627,1096,1554,1100,1486,1101"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/thread/mutex.html" title=" " alt="" coords="1717,1281,1809,1306"/>
<area shape="poly" title=" " alt="" coords="1823,1297,1911,1296,1959,1290,2006,1277,2030,1266,2053,1251,2088,1222,2091,1226,2056,1256,2033,1271,2008,1283,1960,1295,1911,1301,1823,1302"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html" title=" " alt="" coords="1678,772,1849,812"/>
<area shape="poly" title=" " alt="" coords="1791,821,2094,1196,2090,1199,1787,824"/>
<area shape="poly" title=" " alt="" coords="1446,470,1744,770,1740,774,1443,474"/>
<area shape="rect" href="classripple_1_1ReadView.html" title="A view into a ledger." alt="" coords="1025,149,1157,174"/>
<area shape="poly" title=" " alt="" coords="1171,169,1199,186,1211,204,1213,222,1215,240,1223,258,1238,271,1252,278,1268,284,1286,295,1325,332,1362,371,1412,435,1408,438,1357,375,1322,336,1282,299,1265,289,1250,283,1235,276,1219,262,1210,242,1208,223,1206,206,1195,190,1168,174"/>
<area shape="poly" title=" " alt="" coords="1172,171,1199,186,1209,198,1212,209,1216,220,1223,231,1238,242,1253,247,1268,251,1286,262,1330,307,1368,356,1415,435,1411,438,1363,359,1326,310,1282,266,1266,256,1251,252,1236,247,1219,235,1211,223,1207,211,1204,200,1196,190,1169,176"/>
<area shape="rect" href="classripple_1_1detail_1_1ReadViewFwdRange.html" title=" " alt="" coords="1327,57,1514,97"/>
<area shape="poly" title=" " alt="" coords="1154,143,1340,95,1342,100,1155,148"/>
<area shape="rect" href="classripple_1_1detail_1_1ReadViewFwdRange.html" title=" " alt="" coords="1332,121,1509,161"/>
<area shape="poly" title=" " alt="" coords="1170,154,1332,144,1332,149,1170,159"/>
<area shape="rect" href="structripple_1_1ReadView_1_1sles__type.html" title=" " alt="" coords="1663,22,1864,47"/>
<area shape="poly" title=" " alt="" coords="1649,25,1572,22,1486,23,1396,31,1309,48,1249,69,1193,98,1111,151,1108,146,1190,93,1247,64,1307,43,1395,25,1486,18,1572,17,1649,20"/>
<area shape="poly" title=" " alt="" coords="1527,61,1662,45,1662,50,1528,67"/>
<area shape="rect" href="structripple_1_1ReadView_1_1txs__type.html" title=" " alt="" coords="1666,163,1861,189"/>
<area shape="poly" title=" " alt="" coords="1652,187,1490,194,1308,191,1157,174,1157,169,1308,185,1489,188,1652,182"/>
<area shape="poly" title=" " alt="" coords="1524,149,1666,164,1665,169,1523,154"/>
<area shape="rect" href="classripple_1_1TxsRawView.html" title="Interface for changing ledger entries with transactions." alt="" coords="1015,662,1166,687"/>
<area shape="poly" title=" " alt="" coords="1179,664,1233,651,1283,627,1329,587,1366,540,1394,495,1411,461,1416,463,1399,498,1370,543,1332,591,1285,632,1234,656,1181,669"/>
<area shape="rect" href="classripple_1_1RawView.html" title="Interface for ledger entry changes." alt="" coords="617,665,743,690"/>
<area shape="poly" title=" " alt="" coords="757,674,1015,672,1015,678,758,680"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html" title=" " alt="" coords="579,586,781,641"/>
<area shape="poly" title=" " alt="" coords="795,617,884,617,986,612,1092,599,1197,575,1259,550,1317,518,1402,460,1405,464,1320,522,1261,555,1198,580,1093,604,986,618,884,623,795,623"/>
<area shape="rect" href="classripple_1_1detail_1_1RawStateTable.html" title=" " alt="" coords="1003,511,1178,551"/>
<area shape="poly" title=" " alt="" coords="795,588,1003,546,1004,551,796,593"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/map.html" title=" " alt="" coords="984,388,1197,487"/>
<area shape="poly" title=" " alt="" coords="1211,445,1221,445,1354,447,1354,453,1221,451,1211,450"/>
<area shape="rect" href="structripple_1_1OpenView_1_1txData.html" title=" " alt="" coords="588,413,772,438"/>
<area shape="poly" title=" " alt="" coords="761,439,793,448,817,459,856,465,887,466,960,459,983,456,984,461,960,464,888,471,856,470,815,464,791,453,759,444"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html" title=" " alt="" coords="249,479,419,519"/>
<area shape="poly" title=" " alt="" coords="433,516,490,514,517,507,542,495,551,486,554,474,557,461,566,449,588,436,591,441,570,453,562,463,559,475,556,488,546,499,519,512,491,519,433,521"/>
<area shape="rect" href="classripple_1_1Rules.html" title="Rules controlling protocol behavior." alt="" coords="1039,201,1142,226"/>
<area shape="poly" title=" " alt="" coords="1157,218,1179,227,1199,241,1211,259,1213,276,1214,293,1223,310,1237,322,1251,327,1267,332,1285,340,1355,391,1407,434,1403,438,1352,395,1283,345,1265,337,1250,332,1235,327,1219,314,1209,295,1207,277,1206,260,1195,245,1177,232,1155,223"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html" title=" " alt="" coords="595,39,765,79"/>
<area shape="poly" title=" " alt="" coords="779,44,826,46,874,53,921,69,962,95,971,106,975,118,975,141,975,163,978,173,986,183,1011,200,1040,208,1038,213,1009,204,982,187,974,176,970,164,970,141,970,119,966,109,958,99,918,74,873,58,825,51,779,50"/>
<area shape="rect" href="classripple_1_1Rules_1_1Impl.html" title=" " alt="" coords="264,46,404,71"/>
<area shape="poly" title=" " alt="" coords="418,56,595,56,595,61,418,61"/>
<area shape="rect" href="structripple_1_1LedgerHeader.html" title="Information about the notional ledger backing the view." alt="" coords="1011,319,1170,345"/>
<area shape="poly" title=" " alt="" coords="1148,347,1199,374,1211,388,1223,401,1254,416,1288,428,1354,441,1353,446,1287,433,1252,421,1220,405,1207,392,1196,378,1146,352"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/types/integer.html" title=" " alt="" coords="5,253,108,278"/>
<area shape="poly" title=" " alt="" coords="77,241,137,186,177,159,221,139,272,129,361,120,596,108,720,107,830,111,914,121,943,128,962,138,978,158,983,179,982,200,977,221,970,264,973,285,986,305,998,315,1012,322,1010,327,995,319,982,308,968,287,964,264,972,220,977,199,978,179,973,160,958,142,941,133,913,126,829,117,719,113,597,113,361,125,273,134,222,144,179,164,140,190,80,245"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/array.html" title=" " alt="" coords="250,396,418,436"/>
<area shape="poly" title=" " alt="" coords="84,285,145,333,183,359,222,382,252,393,250,398,220,386,180,364,141,338,81,289"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/chrono/time_point.html" title=" " alt="" coords="594,217,766,257"/>
<area shape="poly" title=" " alt="" coords="780,235,871,247,917,260,962,279,974,292,986,304,1014,317,1012,322,982,309,970,296,958,284,915,265,869,253,779,240"/>
<area shape="poly" title=" " alt="" coords="764,373,859,375,960,368,1010,357,1056,342,1057,347,1012,362,960,373,859,381,764,378"/>
<area shape="poly" title=" " alt="" coords="431,400,609,375,609,380,432,405"/>
<area shape="rect" href="classripple_1_1XRPAmount.html" title=" " alt="" coords="609,282,751,307"/>
<area shape="poly" title=" " alt="" coords="765,295,960,309,1015,317,1015,322,960,315,765,301"/>
<area shape="poly" title=" " alt="" coords="757,310,776,320,794,334,804,351,807,367,809,382,818,397,835,410,853,417,888,421,924,424,943,431,962,445,971,459,975,472,977,485,986,497,1005,509,1002,514,982,501,972,487,969,473,967,461,958,449,940,436,923,429,887,426,851,422,833,415,814,400,804,384,801,368,799,353,790,338,774,325,754,315"/>
<area shape="rect" title=" " alt="" coords="251,217,417,257"/>
<area shape="poly" title=" " alt="" coords="430,251,609,280,608,286,430,256"/>
<area shape="rect" title=" " alt="" coords="221,282,447,307"/>
<area shape="poly" title=" " alt="" coords="461,292,608,292,608,297,461,297"/>
<area shape="rect" title=" " alt="" coords="229,332,439,372"/>
<area shape="poly" title=" " alt="" coords="452,330,608,304,609,309,453,335"/>
<area shape="rect" title=" " alt="" coords="227,153,441,193"/>
<area shape="poly" title=" " alt="" coords="425,195,448,203,498,221,546,246,558,257,569,267,609,282,607,287,567,272,554,261,542,250,496,226,446,208,423,200"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/chrono/duration.html" title=" " alt="" coords="602,153,758,193"/>
<area shape="poly" title=" " alt="" coords="772,157,820,157,870,163,919,179,941,191,962,206,972,218,976,231,975,257,974,282,978,293,986,305,1013,321,1010,326,982,309,973,296,969,282,970,257,971,232,967,221,958,210,938,195,917,184,869,169,819,162,772,163"/>
<area shape="poly" title=" " alt="" coords="1185,505,1368,459,1369,465,1186,510"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/map.html" title=" " alt="" coords="568,463,792,561"/>
<area shape="poly" title=" " alt="" coords="806,515,1003,524,1003,529,806,520"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html" title=" " alt="" coords="1009,255,1172,295"/>
<area shape="poly" title=" " alt="" coords="1186,295,1199,305,1209,318,1212,331,1215,343,1223,355,1392,434,1390,439,1220,359,1210,345,1207,332,1204,320,1195,309,1183,299"/>
</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="pub-types" name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:ad9b51d1693c06f31e919061cc1b5f7ed" id="r_ad9b51d1693c06f31e919061cc1b5f7ed"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1OpenLedger.html#ad9b51d1693c06f31e919061cc1b5f7ed">modify_type</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt; bool(<a class="el" href="classripple_1_1OpenView.html">OpenView</a> &amp;, <a class="el" href="classbeast_1_1Journal.html">beast::Journal</a>)&gt;</td></tr>
<tr class="memdesc:ad9b51d1693c06f31e919061cc1b5f7ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signature for modification functions. <br /></td></tr>
<tr class="separator:ad9b51d1693c06f31e919061cc1b5f7ed"><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:a83bc97098814823939ed94c547a257f4" id="r_a83bc97098814823939ed94c547a257f4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1OpenLedger.html#a83bc97098814823939ed94c547a257f4">OpenLedger</a> ()=delete</td></tr>
<tr class="separator:a83bc97098814823939ed94c547a257f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58d2a88e1e264287d3653c19aa3436d8" id="r_a58d2a88e1e264287d3653c19aa3436d8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1OpenLedger.html#a58d2a88e1e264287d3653c19aa3436d8">OpenLedger</a> (<a class="el" href="classripple_1_1OpenLedger.html">OpenLedger</a> const &amp;)=delete</td></tr>
<tr class="separator:a58d2a88e1e264287d3653c19aa3436d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9784b85b55613a0b5e664808581b386" id="r_aa9784b85b55613a0b5e664808581b386"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1OpenLedger.html">OpenLedger</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1OpenLedger.html#aa9784b85b55613a0b5e664808581b386">operator=</a> (<a class="el" href="classripple_1_1OpenLedger.html">OpenLedger</a> const &amp;)=delete</td></tr>
<tr class="separator:aa9784b85b55613a0b5e664808581b386"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23f5b57edc9247dab2fc26aa47307a1a" id="r_a23f5b57edc9247dab2fc26aa47307a1a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1OpenLedger.html#a23f5b57edc9247dab2fc26aa47307a1a">OpenLedger</a> (<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_1Ledger.html">Ledger</a> const &gt; const &amp;ledger, <a class="el" href="namespaceripple.html#a8e6dfe9770d76106ed8b7db6b398dc4b">CachedSLEs</a> &amp;cache, <a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> journal)</td></tr>
<tr class="memdesc:a23f5b57edc9247dab2fc26aa47307a1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new open ledger object. <br /></td></tr>
<tr class="separator:a23f5b57edc9247dab2fc26aa47307a1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88144aac5696b3f33eccfaaed0aeb8ba" id="r_a88144aac5696b3f33eccfaaed0aeb8ba"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1OpenLedger.html#a88144aac5696b3f33eccfaaed0aeb8ba">empty</a> () const</td></tr>
<tr class="memdesc:a88144aac5696b3f33eccfaaed0aeb8ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns <code>true</code> if there are no transactions. <br /></td></tr>
<tr class="separator:a88144aac5696b3f33eccfaaed0aeb8ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad34da15d3e40a35a73bbabe104478114" id="r_ad34da15d3e40a35a73bbabe104478114"><td class="memItemLeft" align="right" valign="top"><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_1OpenView.html">OpenView</a> const &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1OpenLedger.html#ad34da15d3e40a35a73bbabe104478114">current</a> () const</td></tr>
<tr class="memdesc:ad34da15d3e40a35a73bbabe104478114"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a view to the current open ledger. <br /></td></tr>
<tr class="separator:ad34da15d3e40a35a73bbabe104478114"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05ada40b015a008ffd28668b8daf5808" id="r_a05ada40b015a008ffd28668b8daf5808"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1OpenLedger.html#a05ada40b015a008ffd28668b8daf5808">modify</a> (<a class="el" href="classripple_1_1OpenLedger.html#ad9b51d1693c06f31e919061cc1b5f7ed">modify_type</a> const &amp;f)</td></tr>
<tr class="memdesc:a05ada40b015a008ffd28668b8daf5808"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modify the open ledger. <br /></td></tr>
<tr class="separator:a05ada40b015a008ffd28668b8daf5808"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b20a6007626da5a1d79d1213924cb72" id="r_a3b20a6007626da5a1d79d1213924cb72"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1OpenLedger.html#a3b20a6007626da5a1d79d1213924cb72">accept</a> (<a class="el" href="classripple_1_1Application.html">Application</a> &amp;app, <a class="el" href="classripple_1_1Rules.html">Rules</a> const &amp;rules, <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_1Ledger.html">Ledger</a> const &gt; const &amp;ledger, <a class="el" href="namespaceripple.html#aff5a6e33cede2a8fa7303d84cce996ac">OrderedTxs</a> const &amp;locals, bool retriesFirst, <a class="el" href="namespaceripple.html#aff5a6e33cede2a8fa7303d84cce996ac">OrderedTxs</a> &amp;retries, <a class="el" href="namespaceripple.html#ad2487abbcc1a5d6064b72144b461df6e">ApplyFlags</a> flags, <a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;suffix=&quot;&quot;, <a class="el" href="classripple_1_1OpenLedger.html#ad9b51d1693c06f31e919061cc1b5f7ed">modify_type</a> const &amp;f={})</td></tr>
<tr class="memdesc:a3b20a6007626da5a1d79d1213924cb72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accept a new ledger. <br /></td></tr>
<tr class="separator:a3b20a6007626da5a1d79d1213924cb72"><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:a96bb5c3c9dfae39b054eedc8d6026a97" id="r_a96bb5c3c9dfae39b054eedc8d6026a97"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1OpenLedger.html#a96bb5c3c9dfae39b054eedc8d6026a97">Result</a> { <a class="el" href="classripple_1_1OpenLedger.html#a96bb5c3c9dfae39b054eedc8d6026a97a844e5b8d8fa1068931e454f4b9ef0f30">success</a>
, <a class="el" href="classripple_1_1OpenLedger.html#a96bb5c3c9dfae39b054eedc8d6026a97ab1bdfba01dc2e495ad5658f24d8db566">failure</a>
, <a class="el" href="classripple_1_1OpenLedger.html#a96bb5c3c9dfae39b054eedc8d6026a97abd936aff81db9087051d25a3e30e6e54">retry</a>
}</td></tr>
<tr class="separator:a96bb5c3c9dfae39b054eedc8d6026a97"><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:a778ee55e7d299457863870e12efdd4b6" id="r_a778ee55e7d299457863870e12efdd4b6"><td class="memItemLeft" align="right" valign="top"><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_1OpenView.html">OpenView</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1OpenLedger.html#a778ee55e7d299457863870e12efdd4b6">create</a> (<a class="el" href="classripple_1_1Rules.html">Rules</a> const &amp;rules, <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_1Ledger.html">Ledger</a> const &gt; const &amp;ledger)</td></tr>
<tr class="separator:a778ee55e7d299457863870e12efdd4b6"><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:a90a638edeab8df2795ec705451782975" id="r_a90a638edeab8df2795ec705451782975"><td class="memTemplParams" colspan="2">template&lt;class FwdRange &gt; </td></tr>
<tr class="memitem:a90a638edeab8df2795ec705451782975"><td class="memTemplItemLeft" align="right" valign="top">static void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classripple_1_1OpenLedger.html#a90a638edeab8df2795ec705451782975">apply</a> (<a class="el" href="classripple_1_1Application.html">Application</a> &amp;app, <a class="el" href="classripple_1_1OpenView.html">OpenView</a> &amp;view, <a class="el" href="classripple_1_1ReadView.html">ReadView</a> const &amp;check, FwdRange const &amp;txs, <a class="el" href="namespaceripple.html#aff5a6e33cede2a8fa7303d84cce996ac">OrderedTxs</a> &amp;retries, <a class="el" href="namespaceripple.html#ad2487abbcc1a5d6064b72144b461df6e">ApplyFlags</a> flags, <a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> j)</td></tr>
<tr class="memdesc:a90a638edeab8df2795ec705451782975"><td class="mdescLeft">&#160;</td><td class="mdescRight">Algorithm for applying transactions. <br /></td></tr>
<tr class="separator:a90a638edeab8df2795ec705451782975"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aade3c5c258064798500759fe1696ddd0" id="r_aade3c5c258064798500759fe1696ddd0"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classripple_1_1OpenLedger.html#a96bb5c3c9dfae39b054eedc8d6026a97">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1OpenLedger.html#aade3c5c258064798500759fe1696ddd0">apply_one</a> (<a class="el" href="classripple_1_1Application.html">Application</a> &amp;app, <a class="el" href="classripple_1_1OpenView.html">OpenView</a> &amp;view, <a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1STTx.html">STTx</a> const &gt; const &amp;tx, bool <a class="el" href="classripple_1_1OpenLedger.html#a96bb5c3c9dfae39b054eedc8d6026a97abd936aff81db9087051d25a3e30e6e54">retry</a>, <a class="el" href="namespaceripple.html#ad2487abbcc1a5d6064b72144b461df6e">ApplyFlags</a> flags, <a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> j)</td></tr>
<tr class="separator:aade3c5c258064798500759fe1696ddd0"><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:abfeedbaf43ff4275b7abdef3a9f7f2af" id="r_abfeedbaf43ff4275b7abdef3a9f7f2af"><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_1OpenLedger.html#abfeedbaf43ff4275b7abdef3a9f7f2af">j_</a></td></tr>
<tr class="separator:abfeedbaf43ff4275b7abdef3a9f7f2af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45ea81952cd667f5e109a173db763d3c" id="r_a45ea81952cd667f5e109a173db763d3c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceripple.html#a8e6dfe9770d76106ed8b7db6b398dc4b">CachedSLEs</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1OpenLedger.html#a45ea81952cd667f5e109a173db763d3c">cache_</a></td></tr>
<tr class="separator:a45ea81952cd667f5e109a173db763d3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a918f3adba0e6acb5dd1b32e73061588e" id="r_a918f3adba0e6acb5dd1b32e73061588e"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1OpenLedger.html#a918f3adba0e6acb5dd1b32e73061588e">modify_mutex_</a></td></tr>
<tr class="separator:a918f3adba0e6acb5dd1b32e73061588e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdd6c8e6da089ba764fda1a5ba0a0f9b" id="r_afdd6c8e6da089ba764fda1a5ba0a0f9b"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1OpenLedger.html#afdd6c8e6da089ba764fda1a5ba0a0f9b">current_mutex_</a></td></tr>
<tr class="separator:afdd6c8e6da089ba764fda1a5ba0a0f9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7f4326cb3cb4aa865d2cd9a930a7641" id="r_ab7f4326cb3cb4aa865d2cd9a930a7641"><td class="memItemLeft" align="right" valign="top"><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_1OpenView.html">OpenView</a> const &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1OpenLedger.html#ab7f4326cb3cb4aa865d2cd9a930a7641">current_</a></td></tr>
<tr class="separator:ab7f4326cb3cb4aa865d2cd9a930a7641"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Represents the open ledger. </p>
<p class="definition">Definition at line <a class="el" href="OpenLedger_8h_source.html#l00051">51</a> of file <a class="el" href="OpenLedger_8h_source.html">OpenLedger.h</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="ad9b51d1693c06f31e919061cc1b5f7ed" name="ad9b51d1693c06f31e919061cc1b5f7ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad9b51d1693c06f31e919061cc1b5f7ed">&#9670;&#160;</a></span>modify_type</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classripple_1_1OpenLedger.html#ad9b51d1693c06f31e919061cc1b5f7ed">ripple::OpenLedger::modify_type</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt;bool(<a class="el" href="classripple_1_1OpenView.html">OpenView</a>&amp;, <a class="el" href="classbeast_1_1Journal.html">beast::Journal</a>)&gt;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Signature for modification functions. </p>
<p>The modification function is called during apply and modify with an <a class="el" href="classripple_1_1OpenView.html" title="Writable ledger view that accumulates state and tx changes.">OpenView</a> to accumulate changes and the Journal to use for logging.</p>
<p>A return value of <code>true</code> informs <a class="el" href="classripple_1_1OpenLedger.html" title="Represents the open ledger.">OpenLedger</a> that changes were made. Always returning <code>true</code> won't cause harm, but it may be sub-optimal. </p>
<p class="definition">Definition at line <a class="el" href="OpenLedger_8h_source.html#l00072">72</a> of file <a class="el" href="OpenLedger_8h_source.html">OpenLedger.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a96bb5c3c9dfae39b054eedc8d6026a97" name="a96bb5c3c9dfae39b054eedc8d6026a97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a96bb5c3c9dfae39b054eedc8d6026a97">&#9670;&#160;</a></span>Result</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="classripple_1_1OpenLedger.html#a96bb5c3c9dfae39b054eedc8d6026a97">ripple::OpenLedger::Result</a></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a96bb5c3c9dfae39b054eedc8d6026a97a844e5b8d8fa1068931e454f4b9ef0f30" name="a96bb5c3c9dfae39b054eedc8d6026a97a844e5b8d8fa1068931e454f4b9ef0f30"></a>success&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a96bb5c3c9dfae39b054eedc8d6026a97ab1bdfba01dc2e495ad5658f24d8db566" name="a96bb5c3c9dfae39b054eedc8d6026a97ab1bdfba01dc2e495ad5658f24d8db566"></a>failure&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a96bb5c3c9dfae39b054eedc8d6026a97abd936aff81db9087051d25a3e30e6e54" name="a96bb5c3c9dfae39b054eedc8d6026a97abd936aff81db9087051d25a3e30e6e54"></a>retry&#160;</td><td class="fielddoc"></td></tr>
</table>
<p class="definition">Definition at line <a class="el" href="OpenLedger_8h_source.html#l00192">192</a> of file <a class="el" href="OpenLedger_8h_source.html">OpenLedger.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a83bc97098814823939ed94c547a257f4" name="a83bc97098814823939ed94c547a257f4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83bc97098814823939ed94c547a257f4">&#9670;&#160;</a></span>OpenLedger() <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">ripple::OpenLedger::OpenLedger </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a58d2a88e1e264287d3653c19aa3436d8" name="a58d2a88e1e264287d3653c19aa3436d8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a58d2a88e1e264287d3653c19aa3436d8">&#9670;&#160;</a></span>OpenLedger() <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">ripple::OpenLedger::OpenLedger </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1OpenLedger.html">OpenLedger</a> const &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a23f5b57edc9247dab2fc26aa47307a1a" name="a23f5b57edc9247dab2fc26aa47307a1a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a23f5b57edc9247dab2fc26aa47307a1a">&#9670;&#160;</a></span>OpenLedger() <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">ripple::OpenLedger::OpenLedger </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1Ledger.html">Ledger</a> const &gt; const &amp;&#160;</td>
<td class="paramname"><em>ledger</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a8e6dfe9770d76106ed8b7db6b398dc4b">CachedSLEs</a> &amp;&#160;</td>
<td class="paramname"><em>cache</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>journal</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">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a new open ledger object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ledger</td><td>A closed ledger </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="OpenLedger_8cpp_source.html#l00035">35</a> of file <a class="el" href="OpenLedger_8cpp_source.html">OpenLedger.cpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aa9784b85b55613a0b5e664808581b386" name="aa9784b85b55613a0b5e664808581b386"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa9784b85b55613a0b5e664808581b386">&#9670;&#160;</a></span>operator=()</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_1OpenLedger.html">OpenLedger</a> &amp; ripple::OpenLedger::operator= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1OpenLedger.html">OpenLedger</a> const &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a88144aac5696b3f33eccfaaed0aeb8ba" name="a88144aac5696b3f33eccfaaed0aeb8ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88144aac5696b3f33eccfaaed0aeb8ba">&#9670;&#160;</a></span>empty()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ripple::OpenLedger::empty </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns <code>true</code> if there are no transactions. </p>
<p>The behavior of ledger closing can be different depending on whether or not transactions exist in the open ledger.</p>
<dl class="section note"><dt>Note</dt><dd>The value returned is only meaningful for that specific instant in time. An open, empty ledger can become non empty from subsequent modifications. Caller is responsible for synchronizing the meaning of the return value. </dd></dl>
<p class="definition">Definition at line <a class="el" href="OpenLedger_8cpp_source.html#l00044">44</a> of file <a class="el" href="OpenLedger_8cpp_source.html">OpenLedger.cpp</a>.</p>
</div>
</div>
<a id="ad34da15d3e40a35a73bbabe104478114" name="ad34da15d3e40a35a73bbabe104478114"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad34da15d3e40a35a73bbabe104478114">&#9670;&#160;</a></span>current()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><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_1OpenView.html">OpenView</a> const &gt; ripple::OpenLedger::current </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a view to the current open ledger. </p>
<p>Thread safety: Can be called concurrently from any thread.</p>
<p>Effects: The caller is given ownership of a non-modifiable snapshot of the open ledger at the time of the call. </p>
<p class="definition">Definition at line <a class="el" href="OpenLedger_8cpp_source.html#l00051">51</a> of file <a class="el" href="OpenLedger_8cpp_source.html">OpenLedger.cpp</a>.</p>
</div>
</div>
<a id="a05ada40b015a008ffd28668b8daf5808" name="a05ada40b015a008ffd28668b8daf5808"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a05ada40b015a008ffd28668b8daf5808">&#9670;&#160;</a></span>modify()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ripple::OpenLedger::modify </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1OpenLedger.html#ad9b51d1693c06f31e919061cc1b5f7ed">modify_type</a> const &amp;&#160;</td>
<td class="paramname"><em>f</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Modify the open ledger. </p>
<p>Thread safety: Can be called concurrently from any thread.</p>
<p>If <code>f</code> returns <code>true</code>, the changes made in the <a class="el" href="classripple_1_1OpenView.html" title="Writable ledger view that accumulates state and tx changes.">OpenView</a> will be published to the open ledger.</p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the open view was changed </dd></dl>
<p class="definition">Definition at line <a class="el" href="OpenLedger_8cpp_source.html#l00058">58</a> of file <a class="el" href="OpenLedger_8cpp_source.html">OpenLedger.cpp</a>.</p>
</div>
</div>
<a id="a3b20a6007626da5a1d79d1213924cb72" name="a3b20a6007626da5a1d79d1213924cb72"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3b20a6007626da5a1d79d1213924cb72">&#9670;&#160;</a></span>accept()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ripple::OpenLedger::accept </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Application.html">Application</a> &amp;&#160;</td>
<td class="paramname"><em>app</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1Rules.html">Rules</a> const &amp;&#160;</td>
<td class="paramname"><em>rules</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1Ledger.html">Ledger</a> const &gt; const &amp;&#160;</td>
<td class="paramname"><em>ledger</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple.html#aff5a6e33cede2a8fa7303d84cce996ac">OrderedTxs</a> const &amp;&#160;</td>
<td class="paramname"><em>locals</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>retriesFirst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple.html#aff5a6e33cede2a8fa7303d84cce996ac">OrderedTxs</a> &amp;&#160;</td>
<td class="paramname"><em>retries</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple.html#ad2487abbcc1a5d6064b72144b461df6e">ApplyFlags</a>&#160;</td>
<td class="paramname"><em>flags</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;&#160;</td>
<td class="paramname"><em>suffix</em> = <code>&quot;&quot;</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1OpenLedger.html#ad9b51d1693c06f31e919061cc1b5f7ed">modify_type</a> const &amp;&#160;</td>
<td class="paramname"><em>f</em> = <code>{}</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Accept a new ledger. </p>
<p>Thread safety: Can be called concurrently from any thread.</p>
<p>Effects: </p><pre class="fragment">A new open view based on the accepted ledger
is created, and the list of retriable
transactions is optionally applied first
depending on the value of `retriesFirst`.
The transactions in the current open view
are applied to the new open view.
The list of local transactions are applied
to the new open view.
The optional modify function f is called
to perform further modifications to the
open view, atomically. Changes made in
the modify function are not visible to
callers until accept() returns.
Any failed, retriable transactions are left
in `retries` for the caller.
The current view is atomically set to the
new open view.
</pre> <dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">rules</td><td>The rules for the open ledger </td></tr>
<tr><td class="paramname">ledger</td><td>A new closed ledger </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="OpenLedger_8cpp_source.html#l00072">72</a> of file <a class="el" href="OpenLedger_8cpp_source.html">OpenLedger.cpp</a>.</p>
</div>
</div>
<a id="a90a638edeab8df2795ec705451782975" name="a90a638edeab8df2795ec705451782975"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90a638edeab8df2795ec705451782975">&#9670;&#160;</a></span>apply()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class FwdRange &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::OpenLedger::apply </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Application.html">Application</a> &amp;&#160;</td>
<td class="paramname"><em>app</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1OpenView.html">OpenView</a> &amp;&#160;</td>
<td class="paramname"><em>view</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1ReadView.html">ReadView</a> const &amp;&#160;</td>
<td class="paramname"><em>check</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">FwdRange const &amp;&#160;</td>
<td class="paramname"><em>txs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple.html#aff5a6e33cede2a8fa7303d84cce996ac">OrderedTxs</a> &amp;&#160;</td>
<td class="paramname"><em>retries</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple.html#ad2487abbcc1a5d6064b72144b461df6e">ApplyFlags</a>&#160;</td>
<td class="paramname"><em>flags</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classbeast_1_1Journal.html">beast::Journal</a>&#160;</td>
<td class="paramname"><em>j</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Algorithm for applying transactions. </p>
<p>This has the retry logic and ordering semantics used for consensus and building the open ledger. </p>
<p class="definition">Definition at line <a class="el" href="OpenLedger_8h_source.html#l00211">211</a> of file <a class="el" href="OpenLedger_8h_source.html">OpenLedger.h</a>.</p>
</div>
</div>
<a id="a778ee55e7d299457863870e12efdd4b6" name="a778ee55e7d299457863870e12efdd4b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a778ee55e7d299457863870e12efdd4b6">&#9670;&#160;</a></span>create()</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/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1OpenView.html">OpenView</a> &gt; ripple::OpenLedger::create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Rules.html">Rules</a> const &amp;&#160;</td>
<td class="paramname"><em>rules</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1Ledger.html">Ledger</a> const &gt; const &amp;&#160;</td>
<td class="paramname"><em>ledger</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="OpenLedger_8cpp_source.html#l00160">160</a> of file <a class="el" href="OpenLedger_8cpp_source.html">OpenLedger.cpp</a>.</p>
</div>
</div>
<a id="aade3c5c258064798500759fe1696ddd0" name="aade3c5c258064798500759fe1696ddd0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aade3c5c258064798500759fe1696ddd0">&#9670;&#160;</a></span>apply_one()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">auto ripple::OpenLedger::apply_one </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Application.html">Application</a> &amp;&#160;</td>
<td class="paramname"><em>app</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1OpenView.html">OpenView</a> &amp;&#160;</td>
<td class="paramname"><em>view</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1STTx.html">STTx</a> const &gt; const &amp;&#160;</td>
<td class="paramname"><em>tx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>retry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple.html#ad2487abbcc1a5d6064b72144b461df6e">ApplyFlags</a>&#160;</td>
<td class="paramname"><em>flags</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classbeast_1_1Journal.html">beast::Journal</a>&#160;</td>
<td class="paramname"><em>j</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">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="OpenLedger_8cpp_source.html#l00171">171</a> of file <a class="el" href="OpenLedger_8cpp_source.html">OpenLedger.cpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="abfeedbaf43ff4275b7abdef3a9f7f2af" name="abfeedbaf43ff4275b7abdef3a9f7f2af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abfeedbaf43ff4275b7abdef3a9f7f2af">&#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::OpenLedger::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="OpenLedger_8h_source.html#l00054">54</a> of file <a class="el" href="OpenLedger_8h_source.html">OpenLedger.h</a>.</p>
</div>
</div>
<a id="a45ea81952cd667f5e109a173db763d3c" name="a45ea81952cd667f5e109a173db763d3c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a45ea81952cd667f5e109a173db763d3c">&#9670;&#160;</a></span>cache_</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#a8e6dfe9770d76106ed8b7db6b398dc4b">CachedSLEs</a>&amp; ripple::OpenLedger::cache_</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="OpenLedger_8h_source.html#l00055">55</a> of file <a class="el" href="OpenLedger_8h_source.html">OpenLedger.h</a>.</p>
</div>
</div>
<a id="a918f3adba0e6acb5dd1b32e73061588e" name="a918f3adba0e6acb5dd1b32e73061588e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a918f3adba0e6acb5dd1b32e73061588e">&#9670;&#160;</a></span>modify_mutex_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a> ripple::OpenLedger::modify_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="OpenLedger_8h_source.html#l00056">56</a> of file <a class="el" href="OpenLedger_8h_source.html">OpenLedger.h</a>.</p>
</div>
</div>
<a id="afdd6c8e6da089ba764fda1a5ba0a0f9b" name="afdd6c8e6da089ba764fda1a5ba0a0f9b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afdd6c8e6da089ba764fda1a5ba0a0f9b">&#9670;&#160;</a></span>current_mutex_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a> ripple::OpenLedger::current_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="OpenLedger_8h_source.html#l00057">57</a> of file <a class="el" href="OpenLedger_8h_source.html">OpenLedger.h</a>.</p>
</div>
</div>
<a id="ab7f4326cb3cb4aa865d2cd9a930a7641" name="ab7f4326cb3cb4aa865d2cd9a930a7641"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab7f4326cb3cb4aa865d2cd9a930a7641">&#9670;&#160;</a></span>current_</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/memory/shared_ptr.html">std::shared_ptr</a>&lt;<a class="el" href="classripple_1_1OpenView.html">OpenView</a> const&gt; ripple::OpenLedger::current_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="OpenLedger_8h_source.html#l00058">58</a> of file <a class="el" href="OpenLedger_8h_source.html">OpenLedger.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>