This commit is contained in:
nbougalis
2020-12-05 06:17:37 +00:00
parent 27ba201b4c
commit ee2b4c457d
4211 changed files with 96026 additions and 94287 deletions

View File

@@ -1949,7 +1949,7 @@ $(function() {
<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160; </div>
<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160; <a class="code" href="classripple_1_1base__uint.html">uint256</a> uIndex;</div>
<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160; </div>
<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160; <span class="keywordflow">if</span> (!uIndex.<a class="code" href="classripple_1_1base__uint.html#aa4e88c771af37069b5cd6490ae010d52">SetHex</a>(entry[jss::index].<a class="code" href="classJson_1_1Value.html#ab0d86bf425efefd03513e8dbfaca317b">asString</a>()))</div>
<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160; <span class="keywordflow">if</span> (!uIndex.<a class="code" href="classripple_1_1base__uint.html#a88941f6d88609ddcd997293791772aed">parseHex</a>(entry[jss::index].<a class="code" href="classJson_1_1Value.html#ab0d86bf425efefd03513e8dbfaca317b">asString</a>()))</div>
<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160; {</div>
<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) &lt;&lt; <span class="stringliteral">&quot;Invalid entry in ledger&quot;</span>;</div>
<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
@@ -1977,305 +1977,304 @@ $(function() {
<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160; }</div>
<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160; }</div>
<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160; </div>
<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160; loadLedger-&gt;stateMap().flushDirty(</div>
<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160; <a class="code" href="namespaceripple.html#a57d7e7b27df7e719fdf5569f96be60a3a65cfe147458030070724c8b3795e508f">hotACCOUNT_NODE</a>, loadLedger-&gt;info().seq);</div>
<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160; </div>
<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160; loadLedger-&gt;setAccepted(</div>
<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160; closeTime, closeTimeResolution, !closeTimeEstimated, *<a class="code" href="classripple_1_1ApplicationImp.html#a1d9e03d4db028fb8d35e97c49a01f9d8">config_</a>);</div>
<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160; </div>
<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160; <span class="keywordflow">return</span> loadLedger;</div>
<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160; }</div>
<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160; <span class="keywordflow">catch</span> (<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception.html">std::exception</a> <span class="keyword">const</span>&amp; x)</div>
<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160; {</div>
<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) &lt;&lt; <span class="stringliteral">&quot;Ledger contains invalid data: &quot;</span> &lt;&lt; x.<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception/what.html">what</a>();</div>
<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160; }</div>
<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160;}</div>
<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160; </div>
<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l01925"></a><span class="lineno"><a class="line" href="classripple_1_1ApplicationImp.html#a92b2db846b4071ffc3f63baa299de7be"> 1925</a></span>&#160;<a class="code" href="classripple_1_1ApplicationImp.html#a92b2db846b4071ffc3f63baa299de7be">ApplicationImp::loadOldLedger</a>(</div>
<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>&amp; ledgerID,</div>
<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160; <span class="keywordtype">bool</span> replay,</div>
<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160; <span class="keywordtype">bool</span> isFileName)</div>
<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160;{</div>
<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160; {</div>
<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;Ledger const&gt;</a> loadLedger, replayLedger;</div>
<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160; </div>
<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160; <span class="keywordflow">if</span> (isFileName)</div>
<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160; {</div>
<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160; <span class="keywordflow">if</span> (!ledgerID.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>())</div>
<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160; loadLedger = <a class="code" href="classripple_1_1ApplicationImp.html#a92cbe78002001fb6211e97947d5df91d">loadLedgerFromFile</a>(ledgerID);</div>
<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160; }</div>
<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ledgerID.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>() == 64)</div>
<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160; {</div>
<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160; <a class="code" href="classripple_1_1base__uint.html">uint256</a> hash;</div>
<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160; </div>
<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160; <span class="keywordflow">if</span> (hash.<a class="code" href="classripple_1_1base__uint.html#aa4e88c771af37069b5cd6490ae010d52">SetHex</a>(ledgerID))</div>
<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160; {</div>
<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160; loadLedger = <a class="code" href="namespaceripple.html#a729619e7a3a0d92226e7d52347ff2a5e">loadByHash</a>(hash, *<span class="keyword">this</span>);</div>
<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160; </div>
<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160; <span class="keywordflow">if</span> (!loadLedger)</div>
<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160; {</div>
<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160; <span class="comment">// Try to build the ledger from the back end</span></div>
<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160; <span class="keyword">auto</span> il = std::make_shared&lt;InboundLedger&gt;(</div>
<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160; *<span class="keyword">this</span>,</div>
<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160; hash,</div>
<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160; 0,</div>
<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160; <a class="code" href="classripple_1_1InboundLedger.html#a3e8d7f8b5fa089a184dcc9b00b6e0da7ac942dc2a9f958acddc67e11472d3ca0b">InboundLedger::Reason::GENERIC</a>,</div>
<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160; <a class="code" href="namespaceripple.html#ac70521ab6e1277870a9e400e7a08e937">stopwatch</a>());</div>
<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160; <span class="keywordflow">if</span> (il-&gt;checkLocal())</div>
<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160; loadLedger = il-&gt;getLedger();</div>
<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160; }</div>
<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160; }</div>
<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160; }</div>
<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ledgerID.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>() || boost::iequals(ledgerID, <span class="stringliteral">&quot;latest&quot;</span>))</div>
<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160; {</div>
<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160; loadLedger = <a class="code" href="classripple_1_1ApplicationImp.html#a2a1919f5396ea66098a6c326c15e9ed5">getLastFullLedger</a>();</div>
<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160; }</div>
<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160; {</div>
<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160; <span class="comment">// assume by sequence</span></div>
<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> index;</div>
<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160; </div>
<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespacebeast.html#aeb241ed2f4422ea57283956ca58c5d42">beast::lexicalCastChecked</a>(index, ledgerID))</div>
<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160; loadLedger = <a class="code" href="namespaceripple.html#a22adb38923282bf7dbb38655afdb381d">loadByIndex</a>(index, *<span class="keyword">this</span>);</div>
<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160; }</div>
<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160; </div>
<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160; <span class="keywordflow">if</span> (!loadLedger)</div>
<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160; </div>
<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160; <span class="keywordflow">if</span> (replay)</div>
<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160; {</div>
<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160; <span class="comment">// Replay a ledger close with same prior ledger and transactions</span></div>
<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160; </div>
<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160; <span class="comment">// this ledger holds the transactions we want to replay</span></div>
<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160; replayLedger = loadLedger;</div>
<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160; </div>
<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a87d6bd59020d94110027dcab3d9e3357">info</a>()) &lt;&lt; <span class="stringliteral">&quot;Loading parent ledger&quot;</span>;</div>
<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160; </div>
<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160; loadLedger = <a class="code" href="namespaceripple.html#a729619e7a3a0d92226e7d52347ff2a5e">loadByHash</a>(replayLedger-&gt;info().parentHash, *<span class="keyword">this</span>);</div>
<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160; <span class="keywordflow">if</span> (!loadLedger)</div>
<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160; {</div>
<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a87d6bd59020d94110027dcab3d9e3357">info</a>())</div>
<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160; &lt;&lt; <span class="stringliteral">&quot;Loading parent ledger from node store&quot;</span>;</div>
<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160; </div>
<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160; <span class="comment">// Try to build the ledger from the back end</span></div>
<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160; <span class="keyword">auto</span> il = std::make_shared&lt;InboundLedger&gt;(</div>
<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160; *<span class="keyword">this</span>,</div>
<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160; replayLedger-&gt;info().parentHash,</div>
<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160; 0,</div>
<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160; <a class="code" href="classripple_1_1InboundLedger.html#a3e8d7f8b5fa089a184dcc9b00b6e0da7ac942dc2a9f958acddc67e11472d3ca0b">InboundLedger::Reason::GENERIC</a>,</div>
<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160; <a class="code" href="namespaceripple.html#ac70521ab6e1277870a9e400e7a08e937">stopwatch</a>());</div>
<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160; </div>
<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160; <span class="keywordflow">if</span> (il-&gt;checkLocal())</div>
<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160; loadLedger = il-&gt;getLedger();</div>
<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160; </div>
<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160; <span class="keywordflow">if</span> (!loadLedger)</div>
<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160; {</div>
<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) &lt;&lt; <span class="stringliteral">&quot;Replay ledger missing/damaged&quot;</span>;</div>
<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160; assert(<span class="keyword">false</span>);</div>
<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160; }</div>
<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160; }</div>
<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160; }</div>
<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160; <span class="keyword">using namespace </span>std::chrono_literals;</div>
<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160; <span class="keyword">using namespace </span>date;</div>
<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160; <span class="keyword">static</span> constexpr <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a> ledgerWarnTimePoint{</div>
<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160; sys_days{January / 1 / 2018} - sys_days{January / 1 / 2000}};</div>
<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160; <span class="keywordflow">if</span> (loadLedger-&gt;info().closeTime &lt; ledgerWarnTimePoint)</div>
<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160; {</div>
<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>())</div>
<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160; &lt;&lt; <span class="stringliteral">&quot;\n\n*** WARNING ***\n&quot;</span></div>
<div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160; <span class="stringliteral">&quot;You are replaying a ledger from before &quot;</span></div>
<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160; &lt;&lt; <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(ledgerWarnTimePoint)</div>
<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160; &lt;&lt; <span class="stringliteral">&quot; UTC.\n&quot;</span></div>
<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160; <span class="stringliteral">&quot;This replay will not handle your ledger as it was &quot;</span></div>
<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160; <span class="stringliteral">&quot;originally &quot;</span></div>
<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160; <span class="stringliteral">&quot;handled.\nConsider running an earlier version of rippled &quot;</span></div>
<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160; <span class="stringliteral">&quot;to &quot;</span></div>
<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160; <span class="stringliteral">&quot;get the older rules.\n*** CONTINUING ***\n&quot;</span>;</div>
<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160; }</div>
<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160; </div>
<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a87d6bd59020d94110027dcab3d9e3357">info</a>()) &lt;&lt; <span class="stringliteral">&quot;Loading ledger &quot;</span> &lt;&lt; loadLedger-&gt;info().hash</div>
<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160; &lt;&lt; <span class="stringliteral">&quot; seq:&quot;</span> &lt;&lt; loadLedger-&gt;info().seq;</div>
<div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160; </div>
<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160; <span class="keywordflow">if</span> (loadLedger-&gt;info().accountHash.isZero())</div>
<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160; {</div>
<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) &lt;&lt; <span class="stringliteral">&quot;Ledger is empty.&quot;</span>;</div>
<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160; assert(<span class="keyword">false</span>);</div>
<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160; }</div>
<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160; </div>
<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160; <span class="keywordflow">if</span> (!loadLedger-&gt;walkLedger(<a class="code" href="classripple_1_1ApplicationImp.html#ac38f5fa6d22f82dc0aa017605f6ae0ad">journal</a>(<span class="stringliteral">&quot;Ledger&quot;</span>)))</div>
<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160; {</div>
<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) &lt;&lt; <span class="stringliteral">&quot;Ledger is missing nodes.&quot;</span>;</div>
<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160; assert(<span class="keyword">false</span>);</div>
<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160; }</div>
<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160; </div>
<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160; <span class="keywordflow">if</span> (!loadLedger-&gt;assertSane(<a class="code" href="classripple_1_1ApplicationImp.html#ac38f5fa6d22f82dc0aa017605f6ae0ad">journal</a>(<span class="stringliteral">&quot;Ledger&quot;</span>)))</div>
<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160; {</div>
<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) &lt;&lt; <span class="stringliteral">&quot;Ledger is not sane.&quot;</span>;</div>
<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160; assert(<span class="keyword">false</span>);</div>
<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160; }</div>
<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160; </div>
<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160; <a class="code" href="classripple_1_1ApplicationImp.html#a5cd9494694ab957b0b348678d7b7080f">m_ledgerMaster</a>-&gt;setLedgerRangePresent(</div>
<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160; loadLedger-&gt;info().seq, loadLedger-&gt;info().seq);</div>
<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160; </div>
<div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160; <a class="code" href="classripple_1_1ApplicationImp.html#a5cd9494694ab957b0b348678d7b7080f">m_ledgerMaster</a>-&gt;switchLCL(loadLedger);</div>
<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160; loadLedger-&gt;setValidated();</div>
<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160; <a class="code" href="classripple_1_1ApplicationImp.html#a5cd9494694ab957b0b348678d7b7080f">m_ledgerMaster</a>-&gt;setFullLedger(loadLedger, <span class="keyword">true</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160; <a class="code" href="classripple_1_1ApplicationImp.html#a16f1db3fd36ca74e20ba24af5135908f">openLedger_</a>.emplace(</div>
<div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160; loadLedger, <a class="code" href="classripple_1_1ApplicationImp.html#aec3844d1b16bf5d4ee07bf707ae62d23">cachedSLEs_</a>, <a class="code" href="classripple_1_1ApplicationImp.html#aeb56f5eec262129621b143c65f353744">logs_</a>-&gt;journal(<span class="stringliteral">&quot;OpenLedger&quot;</span>));</div>
<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160; </div>
<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160; <span class="keywordflow">if</span> (replay)</div>
<div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160; {</div>
<div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160; <span class="comment">// inject transaction(s) from the replayLedger into our open ledger</span></div>
<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160; <span class="comment">// and build replay structure</span></div>
<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160; <span class="keyword">auto</span> replayData =</div>
<div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160; std::make_unique&lt;LedgerReplay&gt;(loadLedger, replayLedger);</div>
<div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160; </div>
<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>&amp; [_, tx] : replayData-&gt;orderedTxns())</div>
<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160; {</div>
<div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160; (void)_;</div>
<div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160; <span class="keyword">auto</span> txID = tx-&gt;getTransactionID();</div>
<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160; </div>
<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160; <span class="keyword">auto</span> s = std::make_shared&lt;Serializer&gt;();</div>
<div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160; tx-&gt;add(*s);</div>
<div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160; </div>
<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160; <a class="code" href="namespaceripple.html#ab5fadc2b2814a10d35c00c0a8241fbe7">forceValidity</a>(<a class="code" href="classripple_1_1ApplicationImp.html#a7004f42edf42bc9920bc10227dc7e05b">getHashRouter</a>(), txID, <a class="code" href="namespaceripple.html#abcad59b0151763334cc398263373bcdda5ef9dd0687717427ebe8c5e3bcfb7ec1">Validity::SigGoodOnly</a>);</div>
<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160; </div>
<div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160; <a class="code" href="classripple_1_1ApplicationImp.html#a16f1db3fd36ca74e20ba24af5135908f">openLedger_</a>-&gt;modify(</div>
<div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160; [&amp;txID, &amp;s](<a class="code" href="classripple_1_1OpenView.html">OpenView</a>&amp; view, <a class="code" href="classbeast_1_1Journal.html">beast::Journal</a> j) {</div>
<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160; view.<a class="code" href="classripple_1_1OpenView.html#ab230a32cbeedf37d8b30bbec8a91961d">rawTxInsert</a>(txID, std::move(s), <span class="keyword">nullptr</span>);</div>
<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160; });</div>
<div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160; }</div>
<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160; </div>
<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160; <a class="code" href="classripple_1_1ApplicationImp.html#a5cd9494694ab957b0b348678d7b7080f">m_ledgerMaster</a>-&gt;takeReplay(std::move(replayData));</div>
<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160; }</div>
<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160; }</div>
<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160; <span class="keywordflow">catch</span> (<a class="code" href="classripple_1_1SHAMapMissingNode.html">SHAMapMissingNode</a> <span class="keyword">const</span>&amp; mn)</div>
<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160; {</div>
<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>())</div>
<div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160; &lt;&lt; <span class="stringliteral">&quot;While loading specified ledger: &quot;</span> &lt;&lt; mn.<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception/what.html">what</a>();</div>
<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160; }</div>
<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160; <span class="keywordflow">catch</span> (boost::bad_lexical_cast&amp;)</div>
<div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160; {</div>
<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>())</div>
<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160; &lt;&lt; <span class="stringliteral">&quot;Ledger specified &#39;&quot;</span> &lt;&lt; ledgerID &lt;&lt; <span class="stringliteral">&quot;&#39; is not valid&quot;</span>;</div>
<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160; }</div>
<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160; </div>
<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160;}</div>
<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160; </div>
<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l02106"></a><span class="lineno"><a class="line" href="classripple_1_1ApplicationImp.html#a695ccd48be7dda56348612a8b2695c54"> 2106</a></span>&#160;<a class="code" href="classripple_1_1ApplicationImp.html#a695ccd48be7dda56348612a8b2695c54">ApplicationImp::serverOkay</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&amp; reason)</div>
<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160;{</div>
<div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classripple_1_1ApplicationImp.html#aef5f58570dfdbe20b30287568f00a9f7">config</a>().ELB_SUPPORT)</div>
<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160; </div>
<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1ApplicationImp.html#a44f718f967d39d838b675242096d6642">isShutdown</a>())</div>
<div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160; {</div>
<div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160; reason = <span class="stringliteral">&quot;Server is shutting down&quot;</span>;</div>
<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160; }</div>
<div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160; </div>
<div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1ApplicationImp.html#ac0353574d72fb16f6abf651c48b7c48e">getOPs</a>().isNeedNetworkLedger())</div>
<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160; {</div>
<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160; reason = <span class="stringliteral">&quot;Not synchronized with network yet&quot;</span>;</div>
<div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160; }</div>
<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160; </div>
<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1ApplicationImp.html#ac0353574d72fb16f6abf651c48b7c48e">getOPs</a>().getOperatingMode() &lt; <a class="code" href="namespaceripple.html#a597325d7385ff9c19686e14e5bead510af0be1f77b2d12fe3d6424fbf9eecc109">OperatingMode::SYNCING</a>)</div>
<div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160; {</div>
<div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160; reason = <span class="stringliteral">&quot;Not synchronized with network&quot;</span>;</div>
<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160; }</div>
<div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160; </div>
<div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classripple_1_1ApplicationImp.html#a0c54a2fd4cfd80f52bf3b31ee780a294">getLedgerMaster</a>().isCaughtUp(reason))</div>
<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160; </div>
<div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1ApplicationImp.html#afb0ca6238ab470a76a4cb27b5a16b8cd">getFeeTrack</a>().isLoadedLocal())</div>
<div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160; {</div>
<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160; reason = <span class="stringliteral">&quot;Too much load&quot;</span>;</div>
<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160; }</div>
<div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160; </div>
<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1ApplicationImp.html#ac0353574d72fb16f6abf651c48b7c48e">getOPs</a>().isAmendmentBlocked())</div>
<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160; {</div>
<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160; reason = <span class="stringliteral">&quot;Server version too old&quot;</span>;</div>
<div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160; }</div>
<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160; </div>
<div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160;}</div>
<div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160; </div>
<div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160;<a class="code" href="classbeast_1_1Journal.html">beast::Journal</a></div>
<div class="line"><a name="l02148"></a><span class="lineno"><a class="line" href="classripple_1_1ApplicationImp.html#ac38f5fa6d22f82dc0aa017605f6ae0ad"> 2148</a></span>&#160;<a class="code" href="classripple_1_1ApplicationImp.html#ac38f5fa6d22f82dc0aa017605f6ae0ad">ApplicationImp::journal</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>&amp; <a class="code" href="classbeast_1_1PropertyStream_1_1Source.html#a5672372869d3a59c7cd2f7ce3056ae33">name</a>)</div>
<div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160;{</div>
<div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classripple_1_1ApplicationImp.html#aeb56f5eec262129621b143c65f353744">logs_</a>-&gt;journal(<a class="code" href="classbeast_1_1PropertyStream_1_1Source.html#a5672372869d3a59c7cd2f7ce3056ae33">name</a>);</div>
<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160;}</div>
<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160; </div>
<div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l02154"></a><span class="lineno"><a class="line" href="classripple_1_1ApplicationImp.html#a4c949b429439968e259e51d9dbec2d53"> 2154</a></span>&#160;<a class="code" href="classripple_1_1ApplicationImp.html#a4c949b429439968e259e51d9dbec2d53">ApplicationImp::nodeToShards</a>()</div>
<div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160;{</div>
<div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160; assert(<a class="code" href="classripple_1_1ApplicationImp.html#a64565a8558f0fdd1bb2f164ca2b77142">overlay_</a>);</div>
<div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>&#160; assert(!<a class="code" href="classripple_1_1ApplicationImp.html#a1d9e03d4db028fb8d35e97c49a01f9d8">config_</a>-&gt;standalone());</div>
<div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160; </div>
<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1ApplicationImp.html#a1d9e03d4db028fb8d35e97c49a01f9d8">config_</a>-&gt;section(<a class="code" href="structripple_1_1ConfigSection.html#abab87cd32670610e64b43124c381775c">ConfigSection::shardDatabase</a>()).empty())</div>
<div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160; {</div>
<div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>())</div>
<div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160; &lt;&lt; <span class="stringliteral">&quot;The [shard_db] configuration setting must be set&quot;</span>;</div>
<div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160; }</div>
<div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classripple_1_1ApplicationImp.html#ab34b75fdd879f1fef726db73b1d5e436">shardStore_</a>)</div>
<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160; {</div>
<div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) &lt;&lt; <span class="stringliteral">&quot;Invalid [shard_db] configuration&quot;</span>;</div>
<div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160; }</div>
<div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160; <a class="code" href="classripple_1_1ApplicationImp.html#ab34b75fdd879f1fef726db73b1d5e436">shardStore_</a>-&gt;import(<a class="code" href="classripple_1_1ApplicationImp.html#a73bcfdb2fa60c019b3d97a440e8155b6">getNodeStore</a>());</div>
<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160;}</div>
<div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160; </div>
<div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02175"></a><span class="lineno"><a class="line" href="classripple_1_1ApplicationImp.html#aab0c06671c109dc2b487a1aab6dcb168"> 2175</a></span>&#160;<a class="code" href="classripple_1_1ApplicationImp.html#aab0c06671c109dc2b487a1aab6dcb168">ApplicationImp::setMaxDisallowedLedger</a>()</div>
<div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>&#160;{</div>
<div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>&#160; boost::optional&lt;LedgerIndex&gt; seq;</div>
<div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160; {</div>
<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160; <span class="keyword">auto</span> db = <a class="code" href="classripple_1_1ApplicationImp.html#a6faf96850e1e168ded33643a7740de80">getLedgerDB</a>().<a class="code" href="classripple_1_1DatabaseCon.html#a16c6f729c6462f6200b724543f5c67bc">checkoutDb</a>();</div>
<div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160; *db &lt;&lt; <span class="stringliteral">&quot;SELECT MAX(LedgerSeq) FROM Ledgers;&quot;</span>, soci::into(seq);</div>
<div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160; }</div>
<div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160; <span class="keywordflow">if</span> (seq)</div>
<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160; <a class="code" href="classripple_1_1ApplicationImp.html#a99e558bb1e921cc7770ea335724acdb9">maxDisallowedLedger_</a> = *seq;</div>
<div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160; </div>
<div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">trace</a>())</div>
<div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160; &lt;&lt; <span class="stringliteral">&quot;Max persisted ledger is &quot;</span> &lt;&lt; <a class="code" href="classripple_1_1ApplicationImp.html#a99e558bb1e921cc7770ea335724acdb9">maxDisallowedLedger_</a>;</div>
<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160;}</div>
<div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160; </div>
<div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160;<span class="comment">//------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160; </div>
<div class="line"><a name="l02191"></a><span class="lineno"><a class="line" href="classripple_1_1Application.html#a8f3b40098b20712612de1b46a65b5156"> 2191</a></span>&#160;<a class="code" href="classripple_1_1Application.html#a8f3b40098b20712612de1b46a65b5156">Application::Application</a>() : <a class="code" href="namespacebeast.html">beast</a>::PropertyStream::<a class="code" href="classbeast_1_1PropertyStream_1_1Source.html#a1dd058a9799aec943c4f52aa263f6242">Source</a>(<span class="stringliteral">&quot;app&quot;</span>)</div>
<div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160;{</div>
<div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160;}</div>
<div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160; </div>
<div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160;<span class="comment">//------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160; </div>
<div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>&#160;<a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr&lt;Application&gt;</a></div>
<div class="line"><a name="l02198"></a><span class="lineno"><a class="line" href="namespaceripple.html#a37eda33d77f068d8788e5a5a81a7cc77"> 2198</a></span>&#160;<a class="code" href="namespaceripple.html#a37eda33d77f068d8788e5a5a81a7cc77">make_Application</a>(</div>
<div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr&lt;Config&gt;</a> config,</div>
<div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr&lt;Logs&gt;</a> logs,</div>
<div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr&lt;TimeKeeper&gt;</a> timeKeeper)</div>
<div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>&#160;{</div>
<div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160; <span class="keywordflow">return</span> std::make_unique&lt;ApplicationImp&gt;(</div>
<div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160; std::move(config), std::move(logs), std::move(timeKeeper));</div>
<div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160;}</div>
<div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160; </div>
<div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160;} <span class="comment">// namespace ripple</span></div>
<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160; loadLedger-&gt;stateMap().flushDirty(<a class="code" href="namespaceripple.html#a57d7e7b27df7e719fdf5569f96be60a3a65cfe147458030070724c8b3795e508f">hotACCOUNT_NODE</a>);</div>
<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160; </div>
<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160; loadLedger-&gt;setAccepted(</div>
<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160; closeTime, closeTimeResolution, !closeTimeEstimated, *<a class="code" href="classripple_1_1ApplicationImp.html#a1d9e03d4db028fb8d35e97c49a01f9d8">config_</a>);</div>
<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160; </div>
<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160; <span class="keywordflow">return</span> loadLedger;</div>
<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160; }</div>
<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160; <span class="keywordflow">catch</span> (<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception.html">std::exception</a> <span class="keyword">const</span>&amp; x)</div>
<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160; {</div>
<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) &lt;&lt; <span class="stringliteral">&quot;Ledger contains invalid data: &quot;</span> &lt;&lt; x.<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception/what.html">what</a>();</div>
<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160; }</div>
<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160;}</div>
<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160; </div>
<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l01924"></a><span class="lineno"><a class="line" href="classripple_1_1ApplicationImp.html#a92b2db846b4071ffc3f63baa299de7be"> 1924</a></span>&#160;<a class="code" href="classripple_1_1ApplicationImp.html#a92b2db846b4071ffc3f63baa299de7be">ApplicationImp::loadOldLedger</a>(</div>
<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>&amp; ledgerID,</div>
<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160; <span class="keywordtype">bool</span> replay,</div>
<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160; <span class="keywordtype">bool</span> isFileName)</div>
<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160;{</div>
<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160; {</div>
<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;Ledger const&gt;</a> loadLedger, replayLedger;</div>
<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160; </div>
<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160; <span class="keywordflow">if</span> (isFileName)</div>
<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160; {</div>
<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160; <span class="keywordflow">if</span> (!ledgerID.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>())</div>
<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160; loadLedger = <a class="code" href="classripple_1_1ApplicationImp.html#a92cbe78002001fb6211e97947d5df91d">loadLedgerFromFile</a>(ledgerID);</div>
<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160; }</div>
<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ledgerID.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">length</a>() == 64)</div>
<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160; {</div>
<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160; <a class="code" href="classripple_1_1base__uint.html">uint256</a> hash;</div>
<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160; </div>
<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160; <span class="keywordflow">if</span> (hash.<a class="code" href="classripple_1_1base__uint.html#a88941f6d88609ddcd997293791772aed">parseHex</a>(ledgerID))</div>
<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160; {</div>
<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160; loadLedger = <a class="code" href="namespaceripple.html#a729619e7a3a0d92226e7d52347ff2a5e">loadByHash</a>(hash, *<span class="keyword">this</span>);</div>
<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160; </div>
<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160; <span class="keywordflow">if</span> (!loadLedger)</div>
<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160; {</div>
<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160; <span class="comment">// Try to build the ledger from the back end</span></div>
<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160; <span class="keyword">auto</span> il = std::make_shared&lt;InboundLedger&gt;(</div>
<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160; *<span class="keyword">this</span>,</div>
<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160; hash,</div>
<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160; 0,</div>
<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160; <a class="code" href="classripple_1_1InboundLedger.html#a3e8d7f8b5fa089a184dcc9b00b6e0da7ac942dc2a9f958acddc67e11472d3ca0b">InboundLedger::Reason::GENERIC</a>,</div>
<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160; <a class="code" href="namespaceripple.html#ac70521ab6e1277870a9e400e7a08e937">stopwatch</a>());</div>
<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160; <span class="keywordflow">if</span> (il-&gt;checkLocal())</div>
<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160; loadLedger = il-&gt;getLedger();</div>
<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160; }</div>
<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160; }</div>
<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160; }</div>
<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ledgerID.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>() || boost::iequals(ledgerID, <span class="stringliteral">&quot;latest&quot;</span>))</div>
<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160; {</div>
<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160; loadLedger = <a class="code" href="classripple_1_1ApplicationImp.html#a2a1919f5396ea66098a6c326c15e9ed5">getLastFullLedger</a>();</div>
<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160; }</div>
<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160; {</div>
<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160; <span class="comment">// assume by sequence</span></div>
<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> index;</div>
<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160; </div>
<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespacebeast.html#aeb241ed2f4422ea57283956ca58c5d42">beast::lexicalCastChecked</a>(index, ledgerID))</div>
<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160; loadLedger = <a class="code" href="namespaceripple.html#a22adb38923282bf7dbb38655afdb381d">loadByIndex</a>(index, *<span class="keyword">this</span>);</div>
<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160; }</div>
<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160; </div>
<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160; <span class="keywordflow">if</span> (!loadLedger)</div>
<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160; </div>
<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160; <span class="keywordflow">if</span> (replay)</div>
<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160; {</div>
<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160; <span class="comment">// Replay a ledger close with same prior ledger and transactions</span></div>
<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160; </div>
<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160; <span class="comment">// this ledger holds the transactions we want to replay</span></div>
<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160; replayLedger = loadLedger;</div>
<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160; </div>
<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a87d6bd59020d94110027dcab3d9e3357">info</a>()) &lt;&lt; <span class="stringliteral">&quot;Loading parent ledger&quot;</span>;</div>
<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160; </div>
<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160; loadLedger = <a class="code" href="namespaceripple.html#a729619e7a3a0d92226e7d52347ff2a5e">loadByHash</a>(replayLedger-&gt;info().parentHash, *<span class="keyword">this</span>);</div>
<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160; <span class="keywordflow">if</span> (!loadLedger)</div>
<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160; {</div>
<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a87d6bd59020d94110027dcab3d9e3357">info</a>())</div>
<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160; &lt;&lt; <span class="stringliteral">&quot;Loading parent ledger from node store&quot;</span>;</div>
<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160; </div>
<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160; <span class="comment">// Try to build the ledger from the back end</span></div>
<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160; <span class="keyword">auto</span> il = std::make_shared&lt;InboundLedger&gt;(</div>
<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160; *<span class="keyword">this</span>,</div>
<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160; replayLedger-&gt;info().parentHash,</div>
<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160; 0,</div>
<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160; <a class="code" href="classripple_1_1InboundLedger.html#a3e8d7f8b5fa089a184dcc9b00b6e0da7ac942dc2a9f958acddc67e11472d3ca0b">InboundLedger::Reason::GENERIC</a>,</div>
<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160; <a class="code" href="namespaceripple.html#ac70521ab6e1277870a9e400e7a08e937">stopwatch</a>());</div>
<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160; </div>
<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160; <span class="keywordflow">if</span> (il-&gt;checkLocal())</div>
<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160; loadLedger = il-&gt;getLedger();</div>
<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160; </div>
<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160; <span class="keywordflow">if</span> (!loadLedger)</div>
<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160; {</div>
<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) &lt;&lt; <span class="stringliteral">&quot;Replay ledger missing/damaged&quot;</span>;</div>
<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160; assert(<span class="keyword">false</span>);</div>
<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160; }</div>
<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160; }</div>
<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160; }</div>
<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160; <span class="keyword">using namespace </span>std::chrono_literals;</div>
<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160; <span class="keyword">using namespace </span>date;</div>
<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160; <span class="keyword">static</span> constexpr <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a> ledgerWarnTimePoint{</div>
<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160; sys_days{January / 1 / 2018} - sys_days{January / 1 / 2000}};</div>
<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160; <span class="keywordflow">if</span> (loadLedger-&gt;info().closeTime &lt; ledgerWarnTimePoint)</div>
<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160; {</div>
<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>())</div>
<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160; &lt;&lt; <span class="stringliteral">&quot;\n\n*** WARNING ***\n&quot;</span></div>
<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160; <span class="stringliteral">&quot;You are replaying a ledger from before &quot;</span></div>
<div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160; &lt;&lt; <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(ledgerWarnTimePoint)</div>
<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160; &lt;&lt; <span class="stringliteral">&quot; UTC.\n&quot;</span></div>
<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160; <span class="stringliteral">&quot;This replay will not handle your ledger as it was &quot;</span></div>
<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160; <span class="stringliteral">&quot;originally &quot;</span></div>
<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160; <span class="stringliteral">&quot;handled.\nConsider running an earlier version of rippled &quot;</span></div>
<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160; <span class="stringliteral">&quot;to &quot;</span></div>
<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160; <span class="stringliteral">&quot;get the older rules.\n*** CONTINUING ***\n&quot;</span>;</div>
<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160; }</div>
<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160; </div>
<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a87d6bd59020d94110027dcab3d9e3357">info</a>()) &lt;&lt; <span class="stringliteral">&quot;Loading ledger &quot;</span> &lt;&lt; loadLedger-&gt;info().hash</div>
<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160; &lt;&lt; <span class="stringliteral">&quot; seq:&quot;</span> &lt;&lt; loadLedger-&gt;info().seq;</div>
<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160; </div>
<div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160; <span class="keywordflow">if</span> (loadLedger-&gt;info().accountHash.isZero())</div>
<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160; {</div>
<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) &lt;&lt; <span class="stringliteral">&quot;Ledger is empty.&quot;</span>;</div>
<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160; assert(<span class="keyword">false</span>);</div>
<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160; }</div>
<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160; </div>
<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160; <span class="keywordflow">if</span> (!loadLedger-&gt;walkLedger(<a class="code" href="classripple_1_1ApplicationImp.html#ac38f5fa6d22f82dc0aa017605f6ae0ad">journal</a>(<span class="stringliteral">&quot;Ledger&quot;</span>)))</div>
<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160; {</div>
<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) &lt;&lt; <span class="stringliteral">&quot;Ledger is missing nodes.&quot;</span>;</div>
<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160; assert(<span class="keyword">false</span>);</div>
<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160; }</div>
<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160; </div>
<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160; <span class="keywordflow">if</span> (!loadLedger-&gt;assertSensible(<a class="code" href="classripple_1_1ApplicationImp.html#ac38f5fa6d22f82dc0aa017605f6ae0ad">journal</a>(<span class="stringliteral">&quot;Ledger&quot;</span>)))</div>
<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160; {</div>
<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) &lt;&lt; <span class="stringliteral">&quot;Ledger is not sensible.&quot;</span>;</div>
<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160; assert(<span class="keyword">false</span>);</div>
<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160; }</div>
<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160; </div>
<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160; <a class="code" href="classripple_1_1ApplicationImp.html#a5cd9494694ab957b0b348678d7b7080f">m_ledgerMaster</a>-&gt;setLedgerRangePresent(</div>
<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160; loadLedger-&gt;info().seq, loadLedger-&gt;info().seq);</div>
<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160; </div>
<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160; <a class="code" href="classripple_1_1ApplicationImp.html#a5cd9494694ab957b0b348678d7b7080f">m_ledgerMaster</a>-&gt;switchLCL(loadLedger);</div>
<div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160; loadLedger-&gt;setValidated();</div>
<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160; <a class="code" href="classripple_1_1ApplicationImp.html#a5cd9494694ab957b0b348678d7b7080f">m_ledgerMaster</a>-&gt;setFullLedger(loadLedger, <span class="keyword">true</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160; <a class="code" href="classripple_1_1ApplicationImp.html#a16f1db3fd36ca74e20ba24af5135908f">openLedger_</a>.emplace(</div>
<div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160; loadLedger, <a class="code" href="classripple_1_1ApplicationImp.html#aec3844d1b16bf5d4ee07bf707ae62d23">cachedSLEs_</a>, <a class="code" href="classripple_1_1ApplicationImp.html#aeb56f5eec262129621b143c65f353744">logs_</a>-&gt;journal(<span class="stringliteral">&quot;OpenLedger&quot;</span>));</div>
<div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160; </div>
<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160; <span class="keywordflow">if</span> (replay)</div>
<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160; {</div>
<div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160; <span class="comment">// inject transaction(s) from the replayLedger into our open ledger</span></div>
<div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160; <span class="comment">// and build replay structure</span></div>
<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160; <span class="keyword">auto</span> replayData =</div>
<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160; std::make_unique&lt;LedgerReplay&gt;(loadLedger, replayLedger);</div>
<div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160; </div>
<div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>&amp; [_, tx] : replayData-&gt;orderedTxns())</div>
<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160; {</div>
<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160; (void)_;</div>
<div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160; <span class="keyword">auto</span> txID = tx-&gt;getTransactionID();</div>
<div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160; </div>
<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160; <span class="keyword">auto</span> s = std::make_shared&lt;Serializer&gt;();</div>
<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160; tx-&gt;add(*s);</div>
<div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160; </div>
<div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160; <a class="code" href="namespaceripple.html#ab5fadc2b2814a10d35c00c0a8241fbe7">forceValidity</a>(<a class="code" href="classripple_1_1ApplicationImp.html#a7004f42edf42bc9920bc10227dc7e05b">getHashRouter</a>(), txID, <a class="code" href="namespaceripple.html#abcad59b0151763334cc398263373bcdda5ef9dd0687717427ebe8c5e3bcfb7ec1">Validity::SigGoodOnly</a>);</div>
<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160; </div>
<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160; <a class="code" href="classripple_1_1ApplicationImp.html#a16f1db3fd36ca74e20ba24af5135908f">openLedger_</a>-&gt;modify(</div>
<div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160; [&amp;txID, &amp;s](<a class="code" href="classripple_1_1OpenView.html">OpenView</a>&amp; view, <a class="code" href="classbeast_1_1Journal.html">beast::Journal</a> j) {</div>
<div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160; view.<a class="code" href="classripple_1_1OpenView.html#ab230a32cbeedf37d8b30bbec8a91961d">rawTxInsert</a>(txID, std::move(s), <span class="keyword">nullptr</span>);</div>
<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160; });</div>
<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160; }</div>
<div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160; </div>
<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160; <a class="code" href="classripple_1_1ApplicationImp.html#a5cd9494694ab957b0b348678d7b7080f">m_ledgerMaster</a>-&gt;takeReplay(std::move(replayData));</div>
<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160; }</div>
<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160; }</div>
<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160; <span class="keywordflow">catch</span> (<a class="code" href="classripple_1_1SHAMapMissingNode.html">SHAMapMissingNode</a> <span class="keyword">const</span>&amp; mn)</div>
<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160; {</div>
<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>())</div>
<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160; &lt;&lt; <span class="stringliteral">&quot;While loading specified ledger: &quot;</span> &lt;&lt; mn.<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception/what.html">what</a>();</div>
<div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160; }</div>
<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160; <span class="keywordflow">catch</span> (boost::bad_lexical_cast&amp;)</div>
<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160; {</div>
<div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>())</div>
<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160; &lt;&lt; <span class="stringliteral">&quot;Ledger specified &#39;&quot;</span> &lt;&lt; ledgerID &lt;&lt; <span class="stringliteral">&quot;&#39; is not valid&quot;</span>;</div>
<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160; }</div>
<div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160; </div>
<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160;}</div>
<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160; </div>
<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l02105"></a><span class="lineno"><a class="line" href="classripple_1_1ApplicationImp.html#a695ccd48be7dda56348612a8b2695c54"> 2105</a></span>&#160;<a class="code" href="classripple_1_1ApplicationImp.html#a695ccd48be7dda56348612a8b2695c54">ApplicationImp::serverOkay</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&amp; reason)</div>
<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160;{</div>
<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classripple_1_1ApplicationImp.html#aef5f58570dfdbe20b30287568f00a9f7">config</a>().ELB_SUPPORT)</div>
<div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160; </div>
<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1ApplicationImp.html#a44f718f967d39d838b675242096d6642">isShutdown</a>())</div>
<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160; {</div>
<div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160; reason = <span class="stringliteral">&quot;Server is shutting down&quot;</span>;</div>
<div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160; }</div>
<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160; </div>
<div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1ApplicationImp.html#ac0353574d72fb16f6abf651c48b7c48e">getOPs</a>().isNeedNetworkLedger())</div>
<div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160; {</div>
<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160; reason = <span class="stringliteral">&quot;Not synchronized with network yet&quot;</span>;</div>
<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160; }</div>
<div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160; </div>
<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1ApplicationImp.html#ac0353574d72fb16f6abf651c48b7c48e">getOPs</a>().getOperatingMode() &lt; <a class="code" href="namespaceripple.html#a597325d7385ff9c19686e14e5bead510af0be1f77b2d12fe3d6424fbf9eecc109">OperatingMode::SYNCING</a>)</div>
<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160; {</div>
<div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160; reason = <span class="stringliteral">&quot;Not synchronized with network&quot;</span>;</div>
<div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160; }</div>
<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160; </div>
<div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classripple_1_1ApplicationImp.html#a0c54a2fd4cfd80f52bf3b31ee780a294">getLedgerMaster</a>().isCaughtUp(reason))</div>
<div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160; </div>
<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1ApplicationImp.html#afb0ca6238ab470a76a4cb27b5a16b8cd">getFeeTrack</a>().isLoadedLocal())</div>
<div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160; {</div>
<div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160; reason = <span class="stringliteral">&quot;Too much load&quot;</span>;</div>
<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160; }</div>
<div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160; </div>
<div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1ApplicationImp.html#ac0353574d72fb16f6abf651c48b7c48e">getOPs</a>().isAmendmentBlocked())</div>
<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160; {</div>
<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160; reason = <span class="stringliteral">&quot;Server version too old&quot;</span>;</div>
<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160; }</div>
<div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160; </div>
<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160;}</div>
<div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160; </div>
<div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160;<a class="code" href="classbeast_1_1Journal.html">beast::Journal</a></div>
<div class="line"><a name="l02147"></a><span class="lineno"><a class="line" href="classripple_1_1ApplicationImp.html#ac38f5fa6d22f82dc0aa017605f6ae0ad"> 2147</a></span>&#160;<a class="code" href="classripple_1_1ApplicationImp.html#ac38f5fa6d22f82dc0aa017605f6ae0ad">ApplicationImp::journal</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>&amp; <a class="code" href="classbeast_1_1PropertyStream_1_1Source.html#a5672372869d3a59c7cd2f7ce3056ae33">name</a>)</div>
<div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;{</div>
<div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classripple_1_1ApplicationImp.html#aeb56f5eec262129621b143c65f353744">logs_</a>-&gt;journal(<a class="code" href="classbeast_1_1PropertyStream_1_1Source.html#a5672372869d3a59c7cd2f7ce3056ae33">name</a>);</div>
<div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160;}</div>
<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160; </div>
<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l02153"></a><span class="lineno"><a class="line" href="classripple_1_1ApplicationImp.html#a4c949b429439968e259e51d9dbec2d53"> 2153</a></span>&#160;<a class="code" href="classripple_1_1ApplicationImp.html#a4c949b429439968e259e51d9dbec2d53">ApplicationImp::nodeToShards</a>()</div>
<div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160;{</div>
<div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160; assert(<a class="code" href="classripple_1_1ApplicationImp.html#a64565a8558f0fdd1bb2f164ca2b77142">overlay_</a>);</div>
<div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160; assert(!<a class="code" href="classripple_1_1ApplicationImp.html#a1d9e03d4db028fb8d35e97c49a01f9d8">config_</a>-&gt;standalone());</div>
<div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>&#160; </div>
<div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1ApplicationImp.html#a1d9e03d4db028fb8d35e97c49a01f9d8">config_</a>-&gt;section(<a class="code" href="structripple_1_1ConfigSection.html#abab87cd32670610e64b43124c381775c">ConfigSection::shardDatabase</a>()).empty())</div>
<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160; {</div>
<div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>())</div>
<div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160; &lt;&lt; <span class="stringliteral">&quot;The [shard_db] configuration setting must be set&quot;</span>;</div>
<div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160; }</div>
<div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classripple_1_1ApplicationImp.html#ab34b75fdd879f1fef726db73b1d5e436">shardStore_</a>)</div>
<div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160; {</div>
<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) &lt;&lt; <span class="stringliteral">&quot;Invalid [shard_db] configuration&quot;</span>;</div>
<div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160; }</div>
<div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160; <a class="code" href="classripple_1_1ApplicationImp.html#ab34b75fdd879f1fef726db73b1d5e436">shardStore_</a>-&gt;import(<a class="code" href="classripple_1_1ApplicationImp.html#a73bcfdb2fa60c019b3d97a440e8155b6">getNodeStore</a>());</div>
<div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160;}</div>
<div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160; </div>
<div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02174"></a><span class="lineno"><a class="line" href="classripple_1_1ApplicationImp.html#aab0c06671c109dc2b487a1aab6dcb168"> 2174</a></span>&#160;<a class="code" href="classripple_1_1ApplicationImp.html#aab0c06671c109dc2b487a1aab6dcb168">ApplicationImp::setMaxDisallowedLedger</a>()</div>
<div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160;{</div>
<div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>&#160; boost::optional&lt;LedgerIndex&gt; seq;</div>
<div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>&#160; {</div>
<div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160; <span class="keyword">auto</span> db = <a class="code" href="classripple_1_1ApplicationImp.html#a6faf96850e1e168ded33643a7740de80">getLedgerDB</a>().<a class="code" href="classripple_1_1DatabaseCon.html#a16c6f729c6462f6200b724543f5c67bc">checkoutDb</a>();</div>
<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160; *db &lt;&lt; <span class="stringliteral">&quot;SELECT MAX(LedgerSeq) FROM Ledgers;&quot;</span>, soci::into(seq);</div>
<div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160; }</div>
<div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160; <span class="keywordflow">if</span> (seq)</div>
<div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160; <a class="code" href="classripple_1_1ApplicationImp.html#a99e558bb1e921cc7770ea335724acdb9">maxDisallowedLedger_</a> = *seq;</div>
<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160; </div>
<div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160; JLOG(<a class="code" href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a2d8f2f3f5a89118960029a55644ec41d">m_journal</a>.<a class="code" href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">trace</a>())</div>
<div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160; &lt;&lt; <span class="stringliteral">&quot;Max persisted ledger is &quot;</span> &lt;&lt; <a class="code" href="classripple_1_1ApplicationImp.html#a99e558bb1e921cc7770ea335724acdb9">maxDisallowedLedger_</a>;</div>
<div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160;}</div>
<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160; </div>
<div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160;<span class="comment">//------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160; </div>
<div class="line"><a name="l02190"></a><span class="lineno"><a class="line" href="classripple_1_1Application.html#a8f3b40098b20712612de1b46a65b5156"> 2190</a></span>&#160;<a class="code" href="classripple_1_1Application.html#a8f3b40098b20712612de1b46a65b5156">Application::Application</a>() : <a class="code" href="namespacebeast.html">beast</a>::PropertyStream::<a class="code" href="classbeast_1_1PropertyStream_1_1Source.html#a1dd058a9799aec943c4f52aa263f6242">Source</a>(<span class="stringliteral">&quot;app&quot;</span>)</div>
<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160;{</div>
<div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160;}</div>
<div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160; </div>
<div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160;<span class="comment">//------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160; </div>
<div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160;<a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr&lt;Application&gt;</a></div>
<div class="line"><a name="l02197"></a><span class="lineno"><a class="line" href="namespaceripple.html#a37eda33d77f068d8788e5a5a81a7cc77"> 2197</a></span>&#160;<a class="code" href="namespaceripple.html#a37eda33d77f068d8788e5a5a81a7cc77">make_Application</a>(</div>
<div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr&lt;Config&gt;</a> config,</div>
<div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr&lt;Logs&gt;</a> logs,</div>
<div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr&lt;TimeKeeper&gt;</a> timeKeeper)</div>
<div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>&#160;{</div>
<div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>&#160; <span class="keywordflow">return</span> std::make_unique&lt;ApplicationImp&gt;(</div>
<div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160; std::move(config), std::move(logs), std::move(timeKeeper));</div>
<div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160;}</div>
<div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160; </div>
<div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160;} <span class="comment">// namespace ripple</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassripple_1_1NodeStoreScheduler_html"><div class="ttname"><a href="classripple_1_1NodeStoreScheduler.html">ripple::NodeStoreScheduler</a></div><div class="ttdoc">A NodeStore::Scheduler which uses the JobQueue and implements the Stoppable API.</div><div class="ttdef"><b>Definition:</b> <a href="NodeStoreScheduler_8h_source.html#l00032">NodeStoreScheduler.h:32</a></div></div>
<div class="ttc" id="aclassripple_1_1Validations_html_a883367ea7d5cfc5007db68024faa9efa"><div class="ttname"><a href="classripple_1_1Validations.html#a883367ea7d5cfc5007db68024faa9efa">ripple::Validations::expire</a></div><div class="ttdeci">void expire()</div><div class="ttdoc">Expire old validation sets.</div><div class="ttdef"><b>Definition:</b> <a href="Validations_8h_source.html#l00709">Validations.h:709</a></div></div>
@@ -2292,7 +2291,7 @@ $(function() {
<div class="ttc" id="aclassripple_1_1Section_html"><div class="ttname"><a href="classripple_1_1Section.html">ripple::Section</a></div><div class="ttdoc">Holds a collection of configuration values.</div><div class="ttdef"><b>Definition:</b> <a href="BasicConfig_8h_source.html#l00043">BasicConfig.h:43</a></div></div>
<div class="ttc" id="aclassripple_1_1NetworkOPs_html"><div class="ttname"><a href="classripple_1_1NetworkOPs.html">ripple::NetworkOPs</a></div><div class="ttdoc">Provides server functionality for clients.</div><div class="ttdef"><b>Definition:</b> <a href="NetworkOPs_8h_source.html#l00088">NetworkOPs.h:88</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_ab34b75fdd879f1fef726db73b1d5e436"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#ab34b75fdd879f1fef726db73b1d5e436">ripple::ApplicationImp::shardStore_</a></div><div class="ttdeci">std::unique_ptr&lt; NodeStore::DatabaseShard &gt; shardStore_</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00180">Application.cpp:180</a></div></div>
<div class="ttc" id="anamespaceripple_html_ae8a44b9a51d06375b20015555a82bf6f"><div class="ttname"><a href="namespaceripple.html#ae8a44b9a51d06375b20015555a82bf6f">ripple::loadLedgerHelper</a></div><div class="ttdeci">std::tuple&lt; std::shared_ptr&lt; Ledger &gt;, std::uint32_t, uint256 &gt; loadLedgerHelper(std::string const &amp;sqlSuffix, Application &amp;app, bool acquire)</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l01133">Ledger.cpp:1133</a></div></div>
<div class="ttc" id="anamespaceripple_html_ae8a44b9a51d06375b20015555a82bf6f"><div class="ttname"><a href="namespaceripple.html#ae8a44b9a51d06375b20015555a82bf6f">ripple::loadLedgerHelper</a></div><div class="ttdeci">std::tuple&lt; std::shared_ptr&lt; Ledger &gt;, std::uint32_t, uint256 &gt; loadLedgerHelper(std::string const &amp;sqlSuffix, Application &amp;app, bool acquire)</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l01135">Ledger.cpp:1135</a></div></div>
<div class="ttc" id="aclassripple_1_1Application_html"><div class="ttname"><a href="classripple_1_1Application.html">ripple::Application</a></div><div class="ttdef"><b>Definition:</b> <a href="Application_8h_source.html#l00097">Application.h:97</a></div></div>
<div class="ttc" id="anamespaceripple_html_af68738fadb1f5ce44fb53c4b06436ac1"><div class="ttname"><a href="namespaceripple.html#af68738fadb1f5ce44fb53c4b06436ac1">ripple::WalletDBName</a></div><div class="ttdeci">constexpr auto WalletDBName</div><div class="ttdef"><b>Definition:</b> <a href="DBInit_8h_source.html#l00139">DBInit.h:139</a></div></div>
<div class="ttc" id="astructripple_1_1RPC_1_1JsonContext_html"><div class="ttname"><a href="structripple_1_1RPC_1_1JsonContext.html">ripple::RPC::JsonContext</a></div><div class="ttdef"><b>Definition:</b> <a href="Context_8h_source.html#l00053">Context.h:53</a></div></div>
@@ -2313,8 +2312,8 @@ $(function() {
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a73bcfdb2fa60c019b3d97a440e8155b6"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a73bcfdb2fa60c019b3d97a440e8155b6">ripple::ApplicationImp::getNodeStore</a></div><div class="ttdeci">NodeStore::Database &amp; getNodeStore() override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00612">Application.cpp:612</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa63b459355503ca0fbf20ef1013ad036"><div class="ttname"><a href="namespaceripple.html#aa63b459355503ca0fbf20ef1013ad036">ripple::loadNodeIdentity</a></div><div class="ttdeci">std::pair&lt; PublicKey, SecretKey &gt; loadNodeIdentity(Application &amp;app)</div><div class="ttdoc">The cryptographic credentials identifying this server instance.</div><div class="ttdef"><b>Definition:</b> <a href="NodeIdentity_8cpp_source.html#l00032">NodeIdentity.cpp:32</a></div></div>
<div class="ttc" id="aclassripple_1_1TaggedCache_html"><div class="ttname"><a href="classripple_1_1TaggedCache.html">ripple::TaggedCache&lt; SHAMapHash, Blob &gt;</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a695ccd48be7dda56348612a8b2695c54"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a695ccd48be7dda56348612a8b2695c54">ripple::ApplicationImp::serverOkay</a></div><div class="ttdeci">bool serverOkay(std::string &amp;reason) override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l02106">Application.cpp:2106</a></div></div>
<div class="ttc" id="anamespaceripple_html_a22adb38923282bf7dbb38655afdb381d"><div class="ttname"><a href="namespaceripple.html#a22adb38923282bf7dbb38655afdb381d">ripple::loadByIndex</a></div><div class="ttdeci">std::shared_ptr&lt; Ledger &gt; loadByIndex(std::uint32_t ledgerIndex, Application &amp;app, bool acquire)</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l01225">Ledger.cpp:1225</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a695ccd48be7dda56348612a8b2695c54"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a695ccd48be7dda56348612a8b2695c54">ripple::ApplicationImp::serverOkay</a></div><div class="ttdeci">bool serverOkay(std::string &amp;reason) override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l02105">Application.cpp:2105</a></div></div>
<div class="ttc" id="anamespaceripple_html_a22adb38923282bf7dbb38655afdb381d"><div class="ttname"><a href="namespaceripple.html#a22adb38923282bf7dbb38655afdb381d">ripple::loadByIndex</a></div><div class="ttdeci">std::shared_ptr&lt; Ledger &gt; loadByIndex(std::uint32_t ledgerIndex, Application &amp;app, bool acquire)</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l01227">Ledger.cpp:1227</a></div></div>
<div class="ttc" id="aclassripple_1_1LedgerMaster_html_a536e3bab957c1e220d1de0bf2885ffc3"><div class="ttname"><a href="classripple_1_1LedgerMaster.html#a536e3bab957c1e220d1de0bf2885ffc3">ripple::LedgerMaster::sweep</a></div><div class="ttdeci">void sweep()</div><div class="ttdef"><b>Definition:</b> <a href="LedgerMaster_8cpp_source.html#l01736">LedgerMaster.cpp:1736</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a2523f22c44ed9ed72799f0ec56647270"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a2523f22c44ed9ed72799f0ec56647270">ripple::ApplicationImp::mValidations</a></div><div class="ttdeci">RCLValidations mValidations</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00201">Application.cpp:201</a></div></div>
<div class="ttc" id="aclassripple_1_1NodeStore_1_1Manager_html_ad77af517bcd993cf292d64db64102979"><div class="ttname"><a href="classripple_1_1NodeStore_1_1Manager.html#ad77af517bcd993cf292d64db64102979">ripple::NodeStore::Manager::make_Database</a></div><div class="ttdeci">virtual std::unique_ptr&lt; Database &gt; make_Database(std::string const &amp;name, std::size_t burstSize, Scheduler &amp;scheduler, int readThreads, Stoppable &amp;parent, Section const &amp;backendParameters, beast::Journal journal)=0</div><div class="ttdoc">Construct a NodeStore database.</div></div>
@@ -2354,11 +2353,11 @@ $(function() {
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a8774137bcc44a4370ff1296ce5b0da4c"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a8774137bcc44a4370ff1296ce5b0da4c">ripple::ApplicationImp::waitHandlerCounter_</a></div><div class="ttdeci">ClosureCounter&lt; void, boost::system::error_code const &amp; &gt; waitHandlerCounter_</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00204">Application.cpp:204</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_ac0353574d72fb16f6abf651c48b7c48e"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#ac0353574d72fb16f6abf651c48b7c48e">ripple::ApplicationImp::getOPs</a></div><div class="ttdeci">NetworkOPs &amp; getOPs() override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00545">Application.cpp:545</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_ab8841ad7ab85b7c0a2e91b3626556223"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#ab8841ad7ab85b7c0a2e91b3626556223">ripple::ApplicationImp::run</a></div><div class="ttdeci">void run() override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l01644">Application.cpp:1644</a></div></div>
<div class="ttc" id="anamespaceripple_html_ab5e987b5730034cb11208862e7685f8b"><div class="ttname"><a href="namespaceripple.html#ab5e987b5730034cb11208862e7685f8b">ripple::make_Overlay</a></div><div class="ttdeci">std::unique_ptr&lt; Overlay &gt; make_Overlay(Application &amp;app, Overlay::Setup const &amp;setup, Stoppable &amp;parent, ServerHandler &amp;serverHandler, Resource::Manager &amp;resourceManager, Resolver &amp;resolver, boost::asio::io_service &amp;io_service, BasicConfig const &amp;config, beast::insight::Collector::ptr const &amp;collector)</div><div class="ttdoc">Creates the implementation of Overlay.</div><div class="ttdef"><b>Definition:</b> <a href="OverlayImpl_8cpp_source.html#l01570">OverlayImpl.cpp:1570</a></div></div>
<div class="ttc" id="anamespaceripple_html_ab5e987b5730034cb11208862e7685f8b"><div class="ttname"><a href="namespaceripple.html#ab5e987b5730034cb11208862e7685f8b">ripple::make_Overlay</a></div><div class="ttdeci">std::unique_ptr&lt; Overlay &gt; make_Overlay(Application &amp;app, Overlay::Setup const &amp;setup, Stoppable &amp;parent, ServerHandler &amp;serverHandler, Resource::Manager &amp;resourceManager, Resolver &amp;resolver, boost::asio::io_service &amp;io_service, BasicConfig const &amp;config, beast::insight::Collector::ptr const &amp;collector)</div><div class="ttdoc">Creates the implementation of Overlay.</div><div class="ttdef"><b>Definition:</b> <a href="OverlayImpl_8cpp_source.html#l01565">OverlayImpl.cpp:1565</a></div></div>
<div class="ttc" id="aclassripple_1_1CollectorManager_html"><div class="ttname"><a href="classripple_1_1CollectorManager.html">ripple::CollectorManager</a></div><div class="ttdoc">Provides the beast::insight::Collector service.</div><div class="ttdef"><b>Definition:</b> <a href="CollectorManager_8h_source.html#l00029">CollectorManager.h:29</a></div></div>
<div class="ttc" id="astructripple_1_1ConfigSection_html_a683114c5bbff808d0b15bd6a4283dff4"><div class="ttname"><a href="structripple_1_1ConfigSection.html#a683114c5bbff808d0b15bd6a4283dff4">ripple::ConfigSection::importNodeDatabase</a></div><div class="ttdeci">static std::string importNodeDatabase()</div><div class="ttdef"><b>Definition:</b> <a href="ConfigSections_8h_source.html#l00043">ConfigSections.h:43</a></div></div>
<div class="ttc" id="aduration_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a></div></div>
<div class="ttc" id="aclassripple_1_1Config_html_aaae716bbe446917d6991aca218368f9d"><div class="ttname"><a href="classripple_1_1Config.html#aaae716bbe446917d6991aca218368f9d">ripple::Config::NODE_SIZE</a></div><div class="ttdeci">std::size_t NODE_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="Config_8h_source.html#l00168">Config.h:168</a></div></div>
<div class="ttc" id="aclassripple_1_1Config_html_aaae716bbe446917d6991aca218368f9d"><div class="ttname"><a href="classripple_1_1Config.html#aaae716bbe446917d6991aca218368f9d">ripple::Config::NODE_SIZE</a></div><div class="ttdeci">std::size_t NODE_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="Config_8h_source.html#l00175">Config.h:175</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_affe5d55613c056ab4cb37cf983ddcce5"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#affe5d55613c056ab4cb37cf983ddcce5">ripple::ApplicationImp::m_acceptedLedgerCache</a></div><div class="ttdeci">TaggedCache&lt; uint256, AcceptedLedger &gt; m_acceptedLedgerCache</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00189">Application.cpp:189</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a66757a2f9a3ef2eaf7b4f157e40b4896"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a66757a2f9a3ef2eaf7b4f157e40b4896">ripple::ApplicationImp::setup</a></div><div class="ttdeci">bool setup() override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l01267">Application.cpp:1267</a></div></div>
<div class="ttc" id="aclassripple_1_1SHAMapStore_html"><div class="ttname"><a href="classripple_1_1SHAMapStore.html">ripple::SHAMapStore</a></div><div class="ttdoc">class to create database, launch online delete thread, and related SQLite database</div><div class="ttdef"><b>Definition:</b> <a href="SHAMapStore_8h_source.html#l00037">SHAMapStore.h:37</a></div></div>
@@ -2404,12 +2403,12 @@ $(function() {
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a34a117e0319dca33826c9d2fe9147ff3"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a34a117e0319dca33826c9d2fe9147ff3">ripple::ApplicationImp::m_nodeStore</a></div><div class="ttdeci">std::unique_ptr&lt; NodeStore::Database &gt; m_nodeStore</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00178">Application.cpp:178</a></div></div>
<div class="ttc" id="anamespaceripple_html_a64fa9e3b8efc330083f5073754cb0c4c"><div class="ttname"><a href="namespaceripple.html#a64fa9e3b8efc330083f5073754cb0c4c">ripple::LgrDBInit</a></div><div class="ttdeci">constexpr std::array&lt; char const *, 5 &gt; LgrDBInit</div><div class="ttdef"><b>Definition:</b> <a href="DBInit_8h_source.html#l00048">DBInit.h:48</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_ab0768fe99ee16746f232f906513240e3"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#ab0768fe99ee16746f232f906513240e3">ripple::ApplicationImp::perfLog_</a></div><div class="ttdeci">std::unique_ptr&lt; perf::PerfLog &gt; perfLog_</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00155">Application.cpp:155</a></div></div>
<div class="ttc" id="aclassripple_1_1AccountIDCache_html"><div class="ttname"><a href="classripple_1_1AccountIDCache.html">ripple::AccountIDCache</a></div><div class="ttdoc">Caches the base58 representations of AccountIDs.</div><div class="ttdef"><b>Definition:</b> <a href="AccountID_8h_source.html#l00141">AccountID.h:141</a></div></div>
<div class="ttc" id="aclassripple_1_1AccountIDCache_html"><div class="ttname"><a href="classripple_1_1AccountIDCache.html">ripple::AccountIDCache</a></div><div class="ttdoc">Caches the base58 representations of AccountIDs.</div><div class="ttdef"><b>Definition:</b> <a href="AccountID_8h_source.html#l00118">AccountID.h:118</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a9f631883b39de192bab6ed9b01802a50"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a9f631883b39de192bab6ed9b01802a50">ripple::ApplicationImp::nodeIdentity_</a></div><div class="ttdeci">std::pair&lt; PublicKey, SecretKey &gt; nodeIdentity_</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00171">Application.cpp:171</a></div></div>
<div class="ttc" id="aclassripple_1_1InboundLedgers_html_a2bb3b2c716ef8839a360493277a0c53d"><div class="ttname"><a href="classripple_1_1InboundLedgers.html#a2bb3b2c716ef8839a360493277a0c53d">ripple::InboundLedgers::sweep</a></div><div class="ttdeci">virtual void sweep()=0</div></div>
<div class="ttc" id="aclassripple_1_1ValidatorKeys_html"><div class="ttname"><a href="classripple_1_1ValidatorKeys.html">ripple::ValidatorKeys</a></div><div class="ttdoc">Validator keys and manifest as set in configuration file.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorKeys_8h_source.html#l00036">ValidatorKeys.h:36</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a11984e8384cf53009b243167b7e5f3f8"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a11984e8384cf53009b243167b7e5f3f8">ripple::ApplicationImp::mLedgerDB</a></div><div class="ttdeci">std::unique_ptr&lt; DatabaseCon &gt; mLedgerDB</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00210">Application.cpp:210</a></div></div>
<div class="ttc" id="anamespaceripple_html_af6550c765f1787e0c238e1c34e5d3836"><div class="ttname"><a href="namespaceripple.html#af6550c765f1787e0c238e1c34e5d3836">ripple::make_InboundLedgers</a></div><div class="ttdeci">std::unique_ptr&lt; InboundLedgers &gt; make_InboundLedgers(Application &amp;app, InboundLedgers::clock_type &amp;clock, Stoppable &amp;parent, beast::insight::Collector::ptr const &amp;collector)</div><div class="ttdef"><b>Definition:</b> <a href="InboundLedgers_8cpp_source.html#l00429">InboundLedgers.cpp:429</a></div></div>
<div class="ttc" id="anamespaceripple_html_af6550c765f1787e0c238e1c34e5d3836"><div class="ttname"><a href="namespaceripple.html#af6550c765f1787e0c238e1c34e5d3836">ripple::make_InboundLedgers</a></div><div class="ttdeci">std::unique_ptr&lt; InboundLedgers &gt; make_InboundLedgers(Application &amp;app, InboundLedgers::clock_type &amp;clock, Stoppable &amp;parent, beast::insight::Collector::ptr const &amp;collector)</div><div class="ttdef"><b>Definition:</b> <a href="InboundLedgers_8cpp_source.html#l00412">InboundLedgers.cpp:412</a></div></div>
<div class="ttc" id="aclassripple_1_1HashRouter_html"><div class="ttname"><a href="classripple_1_1HashRouter.html">ripple::HashRouter</a></div><div class="ttdoc">Routing table for objects identified by hash.</div><div class="ttdef"><b>Definition:</b> <a href="HashRouter_8h_source.html#l00052">HashRouter.h:52</a></div></div>
<div class="ttc" id="anamespaceripple_html_ab5fadc2b2814a10d35c00c0a8241fbe7"><div class="ttname"><a href="namespaceripple.html#ab5fadc2b2814a10d35c00c0a8241fbe7">ripple::forceValidity</a></div><div class="ttdeci">void forceValidity(HashRouter &amp;router, uint256 const &amp;txid, Validity validity)</div><div class="ttdoc">Sets the validity of a given transaction in the cache.</div><div class="ttdef"><b>Definition:</b> <a href="apply_8cpp_source.html#l00089">apply.cpp:89</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a21dd55310b1f0a99297b384518d6df25"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a21dd55310b1f0a99297b384518d6df25">ripple::ApplicationImp::onStart</a></div><div class="ttdeci">void onStart() override</div><div class="ttdoc">Override called during start.</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00989">Application.cpp:989</a></div></div>
@@ -2427,39 +2426,39 @@ $(function() {
<div class="ttc" id="anamespaceripple_html_a9717a8236d67d262b4e5273712ac545c"><div class="ttname"><a href="namespaceripple.html#a9717a8236d67d262b4e5273712ac545c">ripple::setup_ServerHandler</a></div><div class="ttdeci">ServerHandler::Setup setup_ServerHandler(Config const &amp;config, std::ostream &amp;&amp;log)</div><div class="ttdef"><b>Definition:</b> <a href="ServerHandlerImp_8cpp_source.html#l01143">ServerHandlerImp.cpp:1143</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a92cbe78002001fb6211e97947d5df91d"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a92cbe78002001fb6211e97947d5df91d">ripple::ApplicationImp::loadLedgerFromFile</a></div><div class="ttdeci">std::shared_ptr&lt; Ledger &gt; loadLedgerFromFile(std::string const &amp;ledgerID)</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l01789">Application.cpp:1789</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_ab81dc930fc621743cbdbffb39e1a1e8c"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#ab81dc930fc621743cbdbffb39e1a1e8c">ripple::ApplicationImp::checkSigs</a></div><div class="ttdeci">bool checkSigs() const override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l01689">Application.cpp:1689</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_ac38f5fa6d22f82dc0aa017605f6ae0ad"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#ac38f5fa6d22f82dc0aa017605f6ae0ad">ripple::ApplicationImp::journal</a></div><div class="ttdeci">beast::Journal journal(std::string const &amp;name) override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l02148">Application.cpp:2148</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_ac38f5fa6d22f82dc0aa017605f6ae0ad"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#ac38f5fa6d22f82dc0aa017605f6ae0ad">ripple::ApplicationImp::journal</a></div><div class="ttdeci">beast::Journal journal(std::string const &amp;name) override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l02147">Application.cpp:2147</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a1465c12d8850060b5bcda20dc3f09c0f"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a1465c12d8850060b5bcda20dc3f09c0f">ripple::ApplicationImp::startTimers_</a></div><div class="ttdeci">bool startTimers_</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00207">Application.cpp:207</a></div></div>
<div class="ttc" id="anamespaceripple_html_aaeddb4a3396c616a7ef7350e4cc327f0"><div class="ttname"><a href="namespaceripple.html#aaeddb4a3396c616a7ef7350e4cc327f0">ripple::TxDBName</a></div><div class="ttdeci">constexpr auto TxDBName</div><div class="ttdef"><b>Definition:</b> <a href="DBInit_8h_source.html#l00073">DBInit.h:73</a></div></div>
<div class="ttc" id="aclassripple_1_1base__uint_html"><div class="ttname"><a href="classripple_1_1base__uint.html">ripple::base_uint&lt; 256 &gt;</a></div></div>
<div class="ttc" id="anamespaceripple_html_afc0ceee72c1a3f208ff9c0bf24caef2e"><div class="ttname"><a href="namespaceripple.html#afc0ceee72c1a3f208ff9c0bf24caef2e">ripple::make_NetworkOPs</a></div><div class="ttdeci">std::unique_ptr&lt; NetworkOPs &gt; make_NetworkOPs(Application &amp;app, NetworkOPs::clock_type &amp;clock, bool standalone, std::size_t minPeerCount, bool startvalid, JobQueue &amp;job_queue, LedgerMaster &amp;ledgerMaster, Stoppable &amp;parent, ValidatorKeys const &amp;validatorKeys, boost::asio::io_service &amp;io_svc, beast::Journal journal, beast::insight::Collector::ptr const &amp;collector)</div><div class="ttdef"><b>Definition:</b> <a href="NetworkOPs_8cpp_source.html#l03909">NetworkOPs.cpp:3909</a></div></div>
<div class="ttc" id="anamespaceripple_html_afc0ceee72c1a3f208ff9c0bf24caef2e"><div class="ttname"><a href="namespaceripple.html#afc0ceee72c1a3f208ff9c0bf24caef2e">ripple::make_NetworkOPs</a></div><div class="ttdeci">std::unique_ptr&lt; NetworkOPs &gt; make_NetworkOPs(Application &amp;app, NetworkOPs::clock_type &amp;clock, bool standalone, std::size_t minPeerCount, bool startvalid, JobQueue &amp;job_queue, LedgerMaster &amp;ledgerMaster, Stoppable &amp;parent, ValidatorKeys const &amp;validatorKeys, boost::asio::io_service &amp;io_svc, beast::Journal journal, beast::insight::Collector::ptr const &amp;collector)</div><div class="ttdef"><b>Definition:</b> <a href="NetworkOPs_8cpp_source.html#l03907">NetworkOPs.cpp:3907</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a2fa5adbc79752bbf81d83917beae916f"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a2fa5adbc79752bbf81d83917beae916f">ripple::ApplicationImp::entropyTimer_</a></div><div class="ttdeci">boost::asio::steady_timer entropyTimer_</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00206">Application.cpp:206</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a3b65a8d56c16411d8b53c25511270564"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a3b65a8d56c16411d8b53c25511270564">ripple::ApplicationImp::getMaxDisallowedLedger</a></div><div class="ttdeci">LedgerIndex getMaxDisallowedLedger() override</div><div class="ttdoc">Ensure that a newly-started validator does not sign proposals older than the last ledger it persisted...</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l01234">Application.cpp:1234</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a4c949b429439968e259e51d9dbec2d53"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a4c949b429439968e259e51d9dbec2d53">ripple::ApplicationImp::nodeToShards</a></div><div class="ttdeci">bool nodeToShards()</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l02154">Application.cpp:2154</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a4c949b429439968e259e51d9dbec2d53"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a4c949b429439968e259e51d9dbec2d53">ripple::ApplicationImp::nodeToShards</a></div><div class="ttdeci">bool nodeToShards()</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l02153">Application.cpp:2153</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a6772048a5a095373990d83fe9905c123"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a6772048a5a095373990d83fe9905c123">ripple::ApplicationImp::hashRouter_</a></div><div class="ttdeci">std::unique_ptr&lt; HashRouter &gt; hashRouter_</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00200">Application.cpp:200</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_ac0f05583dc56efc1b99ba22654a0ff3b"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#ac0f05583dc56efc1b99ba22654a0ff3b">ripple::ApplicationImp::getMasterMutex</a></div><div class="ttdeci">Application::MutexType &amp; getMasterMutex() override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00684">Application.cpp:684</a></div></div>
<div class="ttc" id="aclassripple_1_1RootStoppable_html_a48d6a1df60b9dff8d360916227e90174"><div class="ttname"><a href="classripple_1_1RootStoppable.html#a48d6a1df60b9dff8d360916227e90174">ripple::RootStoppable::stop</a></div><div class="ttdeci">void stop(beast::Journal j)</div><div class="ttdoc">Notify a root stoppable and children to stop, and block until stopped.</div><div class="ttdef"><b>Definition:</b> <a href="Stoppable_8cpp_source.html#l00199">Stoppable.cpp:199</a></div></div>
<div class="ttc" id="aclassripple_1_1HashRouter_html_ae260edec8d594097363ca6b34e2f218a"><div class="ttname"><a href="classripple_1_1HashRouter.html#ae260edec8d594097363ca6b34e2f218a">ripple::HashRouter::getDefaultRecoverLimit</a></div><div class="ttdeci">static std::uint32_t getDefaultRecoverLimit()</div><div class="ttdef"><b>Definition:</b> <a href="HashRouter_8h_source.html#l00167">HashRouter.h:167</a></div></div>
<div class="ttc" id="aclassripple_1_1HashRouter_html_ae260edec8d594097363ca6b34e2f218a"><div class="ttname"><a href="classripple_1_1HashRouter.html#ae260edec8d594097363ca6b34e2f218a">ripple::HashRouter::getDefaultRecoverLimit</a></div><div class="ttdeci">static std::uint32_t getDefaultRecoverLimit()</div><div class="ttdef"><b>Definition:</b> <a href="HashRouter_8h_source.html#l00161">HashRouter.h:161</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a5cd9494694ab957b0b348678d7b7080f"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a5cd9494694ab957b0b348678d7b7080f">ripple::ApplicationImp::m_ledgerMaster</a></div><div class="ttdeci">std::unique_ptr&lt; LedgerMaster &gt; m_ledgerMaster</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00186">Application.cpp:186</a></div></div>
<div class="ttc" id="aclassripple_1_1Stoppable_html_af1e1447ecb573d2341c8a71afd3e76da"><div class="ttname"><a href="classripple_1_1Stoppable.html#af1e1447ecb573d2341c8a71afd3e76da">ripple::Stoppable::isStopped</a></div><div class="ttdeci">bool isStopped() const</div><div class="ttdoc">Returns true if the requested stop has completed.</div><div class="ttdef"><b>Definition:</b> <a href="Stoppable_8cpp_source.html#l00060">Stoppable.cpp:60</a></div></div>
<div class="ttc" id="anamespaceripple_1_1RPC_html_a84827a1d9b56ad8201671ff77c2ddf2e"><div class="ttname"><a href="namespaceripple_1_1RPC.html#a84827a1d9b56ad8201671ff77c2ddf2e">ripple::RPC::doCommand</a></div><div class="ttdeci">Status doCommand(RPC::JsonContext &amp;context, Json::Value &amp;result)</div><div class="ttdoc">Execute an RPC command and store the results in a Json::Value.</div><div class="ttdef"><b>Definition:</b> <a href="RPCHandler_8cpp_source.html#l00213">RPCHandler.cpp:213</a></div></div>
<div class="ttc" id="anamespaceripple_html_adc117aa1e40c420ae8c34dea1f2f1bf1"><div class="ttname"><a href="namespaceripple.html#adc117aa1e40c420ae8c34dea1f2f1bf1">ripple::setup_Overlay</a></div><div class="ttdeci">Overlay::Setup setup_Overlay(BasicConfig const &amp;config)</div><div class="ttdef"><b>Definition:</b> <a href="OverlayImpl_8cpp_source.html#l01465">OverlayImpl.cpp:1465</a></div></div>
<div class="ttc" id="anamespaceripple_html_adc117aa1e40c420ae8c34dea1f2f1bf1"><div class="ttname"><a href="namespaceripple.html#adc117aa1e40c420ae8c34dea1f2f1bf1">ripple::setup_Overlay</a></div><div class="ttdeci">Overlay::Setup setup_Overlay(BasicConfig const &amp;config)</div><div class="ttdef"><b>Definition:</b> <a href="OverlayImpl_8cpp_source.html#l01460">OverlayImpl.cpp:1460</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a481f47813b09af10be4e59140a062bce"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a481f47813b09af10be4e59140a062bce">ripple::ApplicationImp::logs</a></div><div class="ttdeci">Logs &amp; logs() override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00489">Application.cpp:489</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a16c55093c7863fc7db422cc3497e584a"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a16c55093c7863fc7db422cc3497e584a">ripple::ApplicationImp::getPerfLog</a></div><div class="ttdeci">perf::PerfLog &amp; getPerfLog() override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00600">Application.cpp:600</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_af115fbb0437c87cfa005d451cdd542da"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#af115fbb0437c87cfa005d451cdd542da">ripple::ApplicationImp::m_jobQueue</a></div><div class="ttdeci">std::unique_ptr&lt; JobQueue &gt; m_jobQueue</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00177">Application.cpp:177</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_af1ffdb3525a023afff41a7efa62808f7"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#af1ffdb3525a023afff41a7efa62808f7">ripple::ApplicationImp::checkSigs_</a></div><div class="ttdeci">std::atomic&lt; bool &gt; checkSigs_</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00221">Application.cpp:221</a></div></div>
<div class="ttc" id="areference_wrapper_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/functional/reference_wrapper.html">std::reference_wrapper</a></div></div>
<div class="ttc" id="anamespaceripple_html_a729619e7a3a0d92226e7d52347ff2a5e"><div class="ttname"><a href="namespaceripple.html#a729619e7a3a0d92226e7d52347ff2a5e">ripple::loadByHash</a></div><div class="ttdeci">std::shared_ptr&lt; Ledger &gt; loadByHash(uint256 const &amp;ledgerHash, Application &amp;app, bool acquire)</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l01240">Ledger.cpp:1240</a></div></div>
<div class="ttc" id="anamespaceripple_html_a729619e7a3a0d92226e7d52347ff2a5e"><div class="ttname"><a href="namespaceripple.html#a729619e7a3a0d92226e7d52347ff2a5e">ripple::loadByHash</a></div><div class="ttdeci">std::shared_ptr&lt; Ledger &gt; loadByHash(uint256 const &amp;ledgerHash, Application &amp;app, bool acquire)</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l01242">Ledger.cpp:1242</a></div></div>
<div class="ttc" id="aclassripple_1_1TxQ_html"><div class="ttname"><a href="classripple_1_1TxQ.html">ripple::TxQ</a></div><div class="ttdoc">Transaction Queue.</div><div class="ttdef"><b>Definition:</b> <a href="TxQ_8h_source.html#l00055">TxQ.h:55</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a2b955de6d8b0eaa6e23be4b9475caef3"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a2b955de6d8b0eaa6e23be4b9475caef3">ripple::ApplicationImp::numberOfThreads</a></div><div class="ttdeci">static std::size_t numberOfThreads(Config const &amp;config)</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00232">Application.cpp:232</a></div></div>
<div class="ttc" id="aclassripple_1_1DatabaseCon_html_a16c6f729c6462f6200b724543f5c67bc"><div class="ttname"><a href="classripple_1_1DatabaseCon.html#a16c6f729c6462f6200b724543f5c67bc">ripple::DatabaseCon::checkoutDb</a></div><div class="ttdeci">LockedSociSession checkoutDb()</div><div class="ttdef"><b>Definition:</b> <a href="DatabaseCon_8h_source.html#l00176">DatabaseCon.h:176</a></div></div>
<div class="ttc" id="aclassripple_1_1base__uint_html_a6fd7dba1ad932f4c1246c9a090c145e5"><div class="ttname"><a href="classripple_1_1base__uint.html#a6fd7dba1ad932f4c1246c9a090c145e5">ripple::base_uint::isZero</a></div><div class="ttdeci">bool isZero() const</div><div class="ttdef"><b>Definition:</b> <a href="base__uint_8h_source.html#l00475">base_uint.h:475</a></div></div>
<div class="ttc" id="aclassripple_1_1base__uint_html_a6fd7dba1ad932f4c1246c9a090c145e5"><div class="ttname"><a href="classripple_1_1base__uint.html#a6fd7dba1ad932f4c1246c9a090c145e5">ripple::base_uint::isZero</a></div><div class="ttdeci">bool isZero() const</div><div class="ttdef"><b>Definition:</b> <a href="base__uint_8h_source.html#l00439">base_uint.h:439</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_ad599a7d8681a845d8fc0a0bcdbb5ef80"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#ad599a7d8681a845d8fc0a0bcdbb5ef80">ripple::ApplicationImp::getSHAMapStore</a></div><div class="ttdeci">SHAMapStore &amp; getSHAMapStore() override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00780">Application.cpp:780</a></div></div>
<div class="ttc" id="aclassripple_1_1RootStoppable_html"><div class="ttname"><a href="classripple_1_1RootStoppable.html">ripple::RootStoppable</a></div><div class="ttdef"><b>Definition:</b> <a href="Stoppable_8h_source.html#l00353">Stoppable.h:353</a></div></div>
<div class="ttc" id="anamespaceripple_html_a7cb82a436e3400fa3a0d4f7a5c453425"><div class="ttname"><a href="namespaceripple.html#a7cb82a436e3400fa3a0d4f7a5c453425">ripple::LgrDBPragma</a></div><div class="ttdeci">constexpr std::array&lt; char const *, 1 &gt; LgrDBPragma</div><div class="ttdef"><b>Definition:</b> <a href="DBInit_8h_source.html#l00045">DBInit.h:45</a></div></div>
<div class="ttc" id="anamespaceripple_html_ae08fe18f17b24699ce41d3898fbb8c2ca73acd9a5972130b75066c82595a1fae3"><div class="ttname"><a href="namespaceripple.html#ae08fe18f17b24699ce41d3898fbb8c2ca73acd9a5972130b75066c82595a1fae3">ripple::Role::ADMIN</a></div><div class="ttdeci">@ ADMIN</div></div>
<div class="ttc" id="aclassbeast_1_1PropertyStream_1_1Source_html_a6b74ac4b0ae83b71d8605412b2fe5c8b"><div class="ttname"><a href="classbeast_1_1PropertyStream_1_1Source.html#a6b74ac4b0ae83b71d8605412b2fe5c8b">beast::PropertyStream::Source::add</a></div><div class="ttdeci">void add(Source &amp;source)</div><div class="ttdoc">Add a child source.</div><div class="ttdef"><b>Definition:</b> <a href="beast__PropertyStream_8cpp_source.html#l00196">beast_PropertyStream.cpp:196</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a1c57e666c25bf08036419be9dec6e308"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a1c57e666c25bf08036419be9dec6e308">ripple::ApplicationImp::getAmendmentTable</a></div><div class="ttdeci">AmendmentTable &amp; getAmendmentTable() override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00720">Application.cpp:720</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a92b2db846b4071ffc3f63baa299de7be"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a92b2db846b4071ffc3f63baa299de7be">ripple::ApplicationImp::loadOldLedger</a></div><div class="ttdeci">bool loadOldLedger(std::string const &amp;ledgerID, bool replay, bool isFilename)</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l01925">Application.cpp:1925</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a92b2db846b4071ffc3f63baa299de7be"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a92b2db846b4071ffc3f63baa299de7be">ripple::ApplicationImp::loadOldLedger</a></div><div class="ttdeci">bool loadOldLedger(std::string const &amp;ledgerID, bool replay, bool isFilename)</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l01924">Application.cpp:1924</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a6a903cdc8ced62bd817736028022bc14"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a6a903cdc8ced62bd817736028022bc14">ripple::ApplicationImp::initSQLiteDBs</a></div><div class="ttdeci">bool initSQLiteDBs()</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00851">Application.cpp:851</a></div></div>
<div class="ttc" id="aclassripple_1_1PublicKey_html"><div class="ttname"><a href="classripple_1_1PublicKey.html">ripple::PublicKey</a></div><div class="ttdoc">A public key.</div><div class="ttdef"><b>Definition:</b> <a href="PublicKey_8h_source.html#l00059">PublicKey.h:59</a></div></div>
<div class="ttc" id="aload_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/atomic/atomic/load.html">std::atomic::load</a></div><div class="ttdeci">T load(T... args)</div></div>
@@ -2469,7 +2468,7 @@ $(function() {
<div class="ttc" id="aclassripple_1_1Cluster_html"><div class="ttname"><a href="classripple_1_1Cluster.html">ripple::Cluster</a></div><div class="ttdef"><b>Definition:</b> <a href="Cluster_8h_source.html#l00038">Cluster.h:38</a></div></div>
<div class="ttc" id="ahardware_concurrency_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/thread/thread/hardware_concurrency.html">std::thread::hardware_concurrency</a></div><div class="ttdeci">T hardware_concurrency(T... args)</div></div>
<div class="ttc" id="aclassripple_1_1CachedSLEs_html"><div class="ttname"><a href="classripple_1_1CachedSLEs.html">ripple::CachedSLEs</a></div><div class="ttdoc">Caches SLEs by their digest.</div><div class="ttdef"><b>Definition:</b> <a href="CachedSLEs_8h_source.html#l00032">CachedSLEs.h:32</a></div></div>
<div class="ttc" id="aclassripple_1_1ValidatorList_html"><div class="ttname"><a href="classripple_1_1ValidatorList.html">ripple::ValidatorList</a></div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00119">ValidatorList.h:119</a></div></div>
<div class="ttc" id="aclassripple_1_1ValidatorList_html"><div class="ttname"><a href="classripple_1_1ValidatorList.html">ripple::ValidatorList</a></div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00120">ValidatorList.h:120</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_afa84264da31e317f389f9a017b0e7718"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#afa84264da31e317f389f9a017b0e7718">ripple::ApplicationImp::getResourceManager</a></div><div class="ttdeci">Resource::Manager &amp; getResourceManager() override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00696">Application.cpp:696</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a15c93a909f6eea0d14afb3ae9b090d79"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a15c93a909f6eea0d14afb3ae9b090d79">ripple::ApplicationImp::peerReservations</a></div><div class="ttdeci">PeerReservationTable &amp; peerReservations() override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00774">Application.cpp:774</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_ac4e2f03173d4045253fd264f405c06da"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#ac4e2f03173d4045253fd264f405c06da">ripple::ApplicationImp::publisherManifests</a></div><div class="ttdeci">ManifestCache &amp; publisherManifests() override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00762">Application.cpp:762</a></div></div>
@@ -2481,10 +2480,10 @@ $(function() {
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a88060e98ef874a658c4237a03d0f86f9"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a88060e98ef874a658c4237a03d0f86f9">ripple::ApplicationImp::pendingSaves</a></div><div class="ttdeci">PendingSaves &amp; pendingSaves() override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00786">Application.cpp:786</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a825c3261ea26c25a29293145045bd6ee"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a825c3261ea26c25a29293145045bd6ee">ripple::ApplicationImp::m_collectorManager</a></div><div class="ttdeci">std::unique_ptr&lt; CollectorManager &gt; m_collectorManager</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00169">Application.cpp:169</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_aaeb9f395cf0315b24513ee4674a0bade"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#aaeb9f395cf0315b24513ee4674a0bade">ripple::ApplicationImp::nodeFamily_</a></div><div class="ttdeci">NodeFamily nodeFamily_</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00179">Application.cpp:179</a></div></div>
<div class="ttc" id="aclassripple_1_1HashRouter_html_a275f700dbd7057c55c7a6818cfe0fa6a"><div class="ttname"><a href="classripple_1_1HashRouter.html#a275f700dbd7057c55c7a6818cfe0fa6a">ripple::HashRouter::getDefaultHoldTime</a></div><div class="ttdeci">static std::chrono::seconds getDefaultHoldTime()</div><div class="ttdef"><b>Definition:</b> <a href="HashRouter_8h_source.html#l00159">HashRouter.h:159</a></div></div>
<div class="ttc" id="aclassripple_1_1HashRouter_html_a275f700dbd7057c55c7a6818cfe0fa6a"><div class="ttname"><a href="classripple_1_1HashRouter.html#a275f700dbd7057c55c7a6818cfe0fa6a">ripple::HashRouter::getDefaultHoldTime</a></div><div class="ttdeci">static std::chrono::seconds getDefaultHoldTime()</div><div class="ttdef"><b>Definition:</b> <a href="HashRouter_8h_source.html#l00153">HashRouter.h:153</a></div></div>
<div class="ttc" id="astructripple_1_1LedgerFill_html_acb9af41b82a8550a08d2288b6f9fc826a0fafa7070f778f38820f61903e1a5fc5"><div class="ttname"><a href="structripple_1_1LedgerFill.html#acb9af41b82a8550a08d2288b6f9fc826a0fafa7070f778f38820f61903e1a5fc5">ripple::LedgerFill::full</a></div><div class="ttdeci">@ full</div><div class="ttdef"><b>Definition:</b> <a href="LedgerToJson_8h_source.html#l00047">LedgerToJson.h:47</a></div></div>
<div class="ttc" id="aunique_lock_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/thread/unique_lock.html">std::unique_lock</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="aclassbeast_1_1io__latency__probe_html_a0d31e25fc6af4e3ed0ff85c82e0a5599"><div class="ttname"><a href="classbeast_1_1io__latency__probe.html#a0d31e25fc6af4e3ed0ff85c82e0a5599">beast::io_latency_probe::sample</a></div><div class="ttdeci">void sample(Handler &amp;&amp;handler)</div><div class="ttdoc">Initiate continuous i/o latency sampling.</div><div class="ttdef"><b>Definition:</b> <a href="io__latency__probe_8h_source.html#l00120">io_latency_probe.h:120</a></div></div>
<div class="ttc" id="aclassbeast_1_1io__latency__probe_html_a0d31e25fc6af4e3ed0ff85c82e0a5599"><div class="ttname"><a href="classbeast_1_1io__latency__probe.html#a0d31e25fc6af4e3ed0ff85c82e0a5599">beast::io_latency_probe::sample</a></div><div class="ttdeci">void sample(Handler &amp;&amp;handler)</div><div class="ttdoc">Initiate continuous i/o latency sampling.</div><div class="ttdef"><b>Definition:</b> <a href="io__latency__probe_8h_source.html#l00119">io_latency_probe.h:119</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a61c15286da3d9c6174a20365a304a13c"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a61c15286da3d9c6174a20365a304a13c">ripple::ApplicationImp::m_txMaster</a></div><div class="ttdeci">TransactionMaster m_txMaster</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00159">Application.cpp:159</a></div></div>
<div class="ttc" id="aclassripple_1_1NodeStore_1_1DatabaseShard_html"><div class="ttname"><a href="classripple_1_1NodeStore_1_1DatabaseShard.html">ripple::NodeStore::DatabaseShard</a></div><div class="ttdoc">A collection of historical shards.</div><div class="ttdef"><b>Definition:</b> <a href="DatabaseShard_8h_source.html#l00037">DatabaseShard.h:37</a></div></div>
<div class="ttc" id="aclassripple_1_1LoadFeeTrack_html"><div class="ttname"><a href="classripple_1_1LoadFeeTrack.html">ripple::LoadFeeTrack</a></div><div class="ttdoc">Manages the current fee schedule.</div><div class="ttdef"><b>Definition:</b> <a href="LoadFeeTrack_8h_source.html#l00043">LoadFeeTrack.h:43</a></div></div>
@@ -2495,7 +2494,6 @@ $(function() {
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a5b0d33cb960903cc89ba236178e0247b"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a5b0d33cb960903cc89ba236178e0247b">ripple::ValidatorList::listed</a></div><div class="ttdeci">bool listed(PublicKey const &amp;identity) const</div><div class="ttdoc">Returns true if public key is included on any lists.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00552">ValidatorList.cpp:552</a></div></div>
<div class="ttc" id="anamespaceripple_1_1RPC_html_affbc9e6f947124dd7e2f7fec4bd95d80"><div class="ttname"><a href="namespaceripple_1_1RPC.html#affbc9e6f947124dd7e2f7fec4bd95d80">ripple::RPC::ApiMaximumSupportedVersion</a></div><div class="ttdeci">constexpr unsigned int ApiMaximumSupportedVersion</div><div class="ttdef"><b>Definition:</b> <a href="RPCHelpers_8h_source.html#l00214">RPCHelpers.h:214</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a748c8369adb9cc4d9864778c316492bf"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a748c8369adb9cc4d9864778c316492bf">ripple::ApplicationImp::validatorSites</a></div><div class="ttdeci">ValidatorSite &amp; validatorSites() override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00750">Application.cpp:750</a></div></div>
<div class="ttc" id="aclassripple_1_1base__uint_html_aa4e88c771af37069b5cd6490ae010d52"><div class="ttname"><a href="classripple_1_1base__uint.html#aa4e88c771af37069b5cd6490ae010d52">ripple::base_uint::SetHex</a></div><div class="ttdeci">bool SetHex(const char *psz, bool bStrict=false)</div><div class="ttdoc">Parse a hex string into a base_uint The input can be:</div><div class="ttdef"><b>Definition:</b> <a href="base__uint_8h_source.html#l00406">base_uint.h:406</a></div></div>
<div class="ttc" id="anamespaceripple_html_a35ced120460d637fbdbaae9a894feba8"><div class="ttname"><a href="namespaceripple.html#a35ced120460d637fbdbaae9a894feba8">ripple::make_AmendmentTable</a></div><div class="ttdeci">std::unique_ptr&lt; AmendmentTable &gt; make_AmendmentTable(std::chrono::seconds majorityTime, Section const &amp;supported, Section const &amp;enabled, Section const &amp;vetoed, beast::Journal journal)</div><div class="ttdef"><b>Definition:</b> <a href="AmendmentTable_8cpp_source.html#l00695">AmendmentTable.cpp:695</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a350d5617417777671c6d85af0726666f"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a350d5617417777671c6d85af0726666f">ripple::ApplicationImp::nodeIdentity</a></div><div class="ttdeci">std::pair&lt; PublicKey, SecretKey &gt; const &amp; nodeIdentity() override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00533">Application.cpp:533</a></div></div>
<div class="ttc" id="aclassbeast_1_1Journal_html_a49b0713e65bb8e2c51b76fbf16252afe"><div class="ttname"><a href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">beast::Journal::error</a></div><div class="ttdeci">Stream error() const</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00333">Journal.h:333</a></div></div>
@@ -2538,8 +2536,8 @@ $(function() {
<div class="ttc" id="aclassripple_1_1OpenLedger_html"><div class="ttname"><a href="classripple_1_1OpenLedger.html">ripple::OpenLedger</a></div><div class="ttdoc">Represents the open ledger.</div><div class="ttdef"><b>Definition:</b> <a href="OpenLedger_8h_source.html#l00049">OpenLedger.h:49</a></div></div>
<div class="ttc" id="aclassripple_1_1Validations_html_a8a3e6aea72a984baf7419ede37649d16"><div class="ttname"><a href="classripple_1_1Validations.html#a8a3e6aea72a984baf7419ede37649d16">ripple::Validations::flush</a></div><div class="ttdeci">void flush()</div><div class="ttdoc">Flush all current validations.</div><div class="ttdef"><b>Definition:</b> <a href="Validations_8h_source.html#l01057">Validations.h:1057</a></div></div>
<div class="ttc" id="aclassripple_1_1JobQueue_html"><div class="ttname"><a href="classripple_1_1JobQueue.html">ripple::JobQueue</a></div><div class="ttdoc">A pool of threads to perform work.</div><div class="ttdef"><b>Definition:</b> <a href="JobQueue_8h_source.html#l00055">JobQueue.h:55</a></div></div>
<div class="ttc" id="aclassripple_1_1Application_html_a8f3b40098b20712612de1b46a65b5156"><div class="ttname"><a href="classripple_1_1Application.html#a8f3b40098b20712612de1b46a65b5156">ripple::Application::Application</a></div><div class="ttdeci">Application()</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l02191">Application.cpp:2191</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_aab0c06671c109dc2b487a1aab6dcb168"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#aab0c06671c109dc2b487a1aab6dcb168">ripple::ApplicationImp::setMaxDisallowedLedger</a></div><div class="ttdeci">void setMaxDisallowedLedger()</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l02175">Application.cpp:2175</a></div></div>
<div class="ttc" id="aclassripple_1_1Application_html_a8f3b40098b20712612de1b46a65b5156"><div class="ttname"><a href="classripple_1_1Application.html#a8f3b40098b20712612de1b46a65b5156">ripple::Application::Application</a></div><div class="ttdeci">Application()</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l02190">Application.cpp:2190</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_aab0c06671c109dc2b487a1aab6dcb168"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#aab0c06671c109dc2b487a1aab6dcb168">ripple::ApplicationImp::setMaxDisallowedLedger</a></div><div class="ttdeci">void setMaxDisallowedLedger()</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l02174">Application.cpp:2174</a></div></div>
<div class="ttc" id="aclassripple_1_1RPC_1_1ShardArchiveHandler_html_a68d9d711f9d71d55365349651bd60d3c"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a68d9d711f9d71d55365349651bd60d3c">ripple::RPC::ShardArchiveHandler::tryMakeRecoveryHandler</a></div><div class="ttdeci">static std::unique_ptr&lt; ShardArchiveHandler &gt; tryMakeRecoveryHandler(Application &amp;app, Stoppable &amp;parent)</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8cpp_source.html#l00056">ShardArchiveHandler.cpp:56</a></div></div>
<div class="ttc" id="aclassripple_1_1Resource_1_1Manager_html"><div class="ttname"><a href="classripple_1_1Resource_1_1Manager.html">ripple::Resource::Manager</a></div><div class="ttdoc">Tracks load and resource consumption.</div><div class="ttdef"><b>Definition:</b> <a href="ResourceManager_8h_source.html#l00036">ResourceManager.h:36</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a3a3899b006e7ef2ad80980b899eade64"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a3a3899b006e7ef2ad80980b899eade64">ripple::ApplicationImp::shardFamily_</a></div><div class="ttdeci">std::unique_ptr&lt; ShardFamily &gt; shardFamily_</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00181">Application.cpp:181</a></div></div>
@@ -2561,15 +2559,16 @@ $(function() {
<div class="ttc" id="anamespaceripple_1_1Resource_html_a0995bd4a406952709a273d6625f62b9e"><div class="ttname"><a href="namespaceripple_1_1Resource.html#a0995bd4a406952709a273d6625f62b9e">ripple::Resource::make_Manager</a></div><div class="ttdeci">std::unique_ptr&lt; Manager &gt; make_Manager(beast::insight::Collector::ptr const &amp;collector, beast::Journal journal)</div><div class="ttdef"><b>Definition:</b> <a href="ResourceManager_8cpp_source.html#l00175">ResourceManager.cpp:175</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a66f856c301a1e77b5a461c1d6bf115a0"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a66f856c301a1e77b5a461c1d6bf115a0">ripple::ApplicationImp::getTempNodeCache</a></div><div class="ttdeci">NodeCache &amp; getTempNodeCache() override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00606">Application.cpp:606</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_1_1io__latency__sampler_html_acb94c7f08a9f69b7857c043b96c8496e"><div class="ttname"><a href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#acb94c7f08a9f69b7857c043b96c8496e">ripple::ApplicationImp::io_latency_sampler::get</a></div><div class="ttdeci">std::chrono::milliseconds get() const</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00131">Application.cpp:131</a></div></div>
<div class="ttc" id="aclassbeast_1_1io__latency__probe_html_a3aacab2155a327714b711dc3dbc8c69c"><div class="ttname"><a href="classbeast_1_1io__latency__probe.html#a3aacab2155a327714b711dc3dbc8c69c">beast::io_latency_probe::cancel</a></div><div class="ttdeci">void cancel()</div><div class="ttdoc">Cancel all pending i/o.</div><div class="ttdef"><b>Definition:</b> <a href="io__latency__probe_8h_source.html#l00085">io_latency_probe.h:85</a></div></div>
<div class="ttc" id="aclassbeast_1_1io__latency__probe_html_a3aacab2155a327714b711dc3dbc8c69c"><div class="ttname"><a href="classbeast_1_1io__latency__probe.html#a3aacab2155a327714b711dc3dbc8c69c">beast::io_latency_probe::cancel</a></div><div class="ttdeci">void cancel()</div><div class="ttdoc">Cancel all pending i/o.</div><div class="ttdef"><b>Definition:</b> <a href="io__latency__probe_8h_source.html#l00084">io_latency_probe.h:84</a></div></div>
<div class="ttc" id="aclassJson_1_1Value_html_aa52f7873b95d29627d6e83ba96f69aaa"><div class="ttname"><a href="classJson_1_1Value.html#aa52f7873b95d29627d6e83ba96f69aaa">Json::Value::removeMember</a></div><div class="ttdeci">Value removeMember(const char *key)</div><div class="ttdoc">Remove and return the named member.</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00907">json_value.cpp:907</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_aaa5a296639a06900edc4fef16665a77d"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#aaa5a296639a06900edc4fef16665a77d">ripple::ApplicationImp::grpcServer_</a></div><div class="ttdeci">std::unique_ptr&lt; GRPCServer &gt; grpcServer_</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00227">Application.cpp:227</a></div></div>
<div class="ttc" id="aendl_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a></div><div class="ttdeci">T endl(T... args)</div></div>
<div class="ttc" id="aclassripple_1_1OpenView_html_ab230a32cbeedf37d8b30bbec8a91961d"><div class="ttname"><a href="classripple_1_1OpenView.html#ab230a32cbeedf37d8b30bbec8a91961d">ripple::OpenView::rawTxInsert</a></div><div class="ttdeci">void rawTxInsert(key_type const &amp;key, std::shared_ptr&lt; Serializer const &gt; const &amp;txn, std::shared_ptr&lt; Serializer const &gt; const &amp;metaData) override</div><div class="ttdoc">Add a transaction to the tx map.</div><div class="ttdef"><b>Definition:</b> <a href="OpenView_8cpp_source.html#l00260">OpenView.cpp:260</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a6ecbcdd0995324175e0791b1a1bafabe"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a6ecbcdd0995324175e0791b1a1bafabe">ripple::ApplicationImp::getJobQueue</a></div><div class="ttdeci">JobQueue &amp; getJobQueue() override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00527">Application.cpp:527</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a5767b684ce07a588ab6e70ae175b4a0e"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a5767b684ce07a588ab6e70ae175b4a0e">ripple::ApplicationImp::fdRequired</a></div><div class="ttdeci">int fdRequired() const override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l01701">Application.cpp:1701</a></div></div>
<div class="ttc" id="aclassripple_1_1base__uint_html_a88941f6d88609ddcd997293791772aed"><div class="ttname"><a href="classripple_1_1base__uint.html#a88941f6d88609ddcd997293791772aed">ripple::base_uint::parseHex</a></div><div class="ttdeci">bool parseHex(std::string_view sv)</div><div class="ttdoc">Parse a hex string into a base_uint.</div><div class="ttdef"><b>Definition:</b> <a href="base__uint_8h_source.html#l00384">base_uint.h:384</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_af5dcacfeb60e485cfc1e26e79ef07800"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#af5dcacfeb60e485cfc1e26e79ef07800">ripple::ApplicationImp::doSweep</a></div><div class="ttdeci">void doSweep()</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l01147">Application.cpp:1147</a></div></div>
<div class="ttc" id="anamespaceripple_html_acde3d7e2f059202351f714545da5b233"><div class="ttname"><a href="namespaceripple.html#acde3d7e2f059202351f714545da5b233">ripple::make_SHAMapStore</a></div><div class="ttdeci">std::unique_ptr&lt; SHAMapStore &gt; make_SHAMapStore(Application &amp;app, Stoppable &amp;parent, NodeStore::Scheduler &amp;scheduler, beast::Journal journal)</div><div class="ttdef"><b>Definition:</b> <a href="SHAMapStoreImp_8cpp_source.html#l00782">SHAMapStoreImp.cpp:782</a></div></div>
<div class="ttc" id="anamespaceripple_html_acde3d7e2f059202351f714545da5b233"><div class="ttname"><a href="namespaceripple.html#acde3d7e2f059202351f714545da5b233">ripple::make_SHAMapStore</a></div><div class="ttdeci">std::unique_ptr&lt; SHAMapStore &gt; make_SHAMapStore(Application &amp;app, Stoppable &amp;parent, NodeStore::Scheduler &amp;scheduler, beast::Journal journal)</div><div class="ttdef"><b>Definition:</b> <a href="SHAMapStoreImp_8cpp_source.html#l00780">SHAMapStoreImp.cpp:780</a></div></div>
<div class="ttc" id="aclassbeast_1_1PropertyStream_1_1Source_html_a1dd058a9799aec943c4f52aa263f6242"><div class="ttname"><a href="classbeast_1_1PropertyStream_1_1Source.html#a1dd058a9799aec943c4f52aa263f6242">beast::PropertyStream::Source::Source</a></div><div class="ttdeci">Source(std::string const &amp;name)</div><div class="ttdef"><b>Definition:</b> <a href="beast__PropertyStream_8cpp_source.html#l00176">beast_PropertyStream.cpp:176</a></div></div>
<div class="ttc" id="aclassripple_1_1Overlay_html"><div class="ttname"><a href="classripple_1_1Overlay.html">ripple::Overlay</a></div><div class="ttdoc">Manages the set of connected peers.</div><div class="ttdef"><b>Definition:</b> <a href="Overlay_8h_source.html#l00052">Overlay.h:52</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_1_1io__latency__sampler_html"><div class="ttname"><a href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html">ripple::ApplicationImp::io_latency_sampler</a></div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00085">Application.cpp:85</a></div></div>
@@ -2605,7 +2604,7 @@ $(function() {
<div class="ttc" id="anamespaceripple_html_a1b38e742ac7fe4c3a80a397e06b83dcbacdae4987d98b9ac3e09734d700c51514"><div class="ttname"><a href="namespaceripple.html#a1b38e742ac7fe4c3a80a397e06b83dcbacdae4987d98b9ac3e09734d700c51514">ripple::SizedItem::ledgerSize</a></div><div class="ttdeci">@ ledgerSize</div></div>
<div class="ttc" id="aclassripple_1_1Validations_html"><div class="ttname"><a href="classripple_1_1Validations.html">ripple::Validations&lt; RCLValidationsAdaptor &gt;</a></div></div>
<div class="ttc" id="aclassripple_1_1ClosureCounter_html_af0786d10092850fd4a1f10d0bec927a7"><div class="ttname"><a href="classripple_1_1ClosureCounter.html#af0786d10092850fd4a1f10d0bec927a7">ripple::ClosureCounter::join</a></div><div class="ttdeci">void join(char const *name, std::chrono::milliseconds wait, beast::Journal j)</div><div class="ttdoc">Returns once all counted in-flight closures are destroyed.</div><div class="ttdef"><b>Definition:</b> <a href="ClosureCounter_8h_source.html#l00152">ClosureCounter.h:152</a></div></div>
<div class="ttc" id="aclassbeast_1_1io__latency__probe_html_adaee7525295db67f85573a6b73eff113"><div class="ttname"><a href="classbeast_1_1io__latency__probe.html#adaee7525295db67f85573a6b73eff113">beast::io_latency_probe::cancel_async</a></div><div class="ttdeci">void cancel_async()</div><div class="ttdef"><b>Definition:</b> <a href="io__latency__probe_8h_source.html#l00092">io_latency_probe.h:92</a></div></div>
<div class="ttc" id="aclassbeast_1_1io__latency__probe_html_adaee7525295db67f85573a6b73eff113"><div class="ttname"><a href="classbeast_1_1io__latency__probe.html#adaee7525295db67f85573a6b73eff113">beast::io_latency_probe::cancel_async</a></div><div class="ttdeci">void cancel_async()</div><div class="ttdef"><b>Definition:</b> <a href="io__latency__probe_8h_source.html#l00091">io_latency_probe.h:91</a></div></div>
<div class="ttc" id="amutex_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/mutex.html">mutex</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_1_1io__latency__sampler_html_a8e4a9bbcb22078b63c512c1c7f6742e8"><div class="ttname"><a href="classripple_1_1ApplicationImp_1_1io__latency__sampler.html#a8e4a9bbcb22078b63c512c1c7f6742e8">ripple::ApplicationImp::io_latency_sampler::io_latency_sampler</a></div><div class="ttdeci">io_latency_sampler(beast::insight::Event ev, beast::Journal journal, std::chrono::milliseconds interval, boost::asio::io_service &amp;ios)</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00094">Application.cpp:94</a></div></div>
<div class="ttc" id="aclassbeast_1_1Journal_html_a556228cb60bcf405c225d3f64b7b01ae"><div class="ttname"><a href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">beast::Journal::debug</a></div><div class="ttdeci">Stream debug() const</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00315">Journal.h:315</a></div></div>
@@ -2630,7 +2629,7 @@ $(function() {
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_aa1ec2444a0bfa29b54f22ccd6d341e67"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#aa1ec2444a0bfa29b54f22ccd6d341e67">ripple::ApplicationImp::publisherManifests_</a></div><div class="ttdeci">std::unique_ptr&lt; ManifestCache &gt; publisherManifests_</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00194">Application.cpp:194</a></div></div>
<div class="ttc" id="aclassripple_1_1AmendmentTable_html"><div class="ttname"><a href="classripple_1_1AmendmentTable.html">ripple::AmendmentTable</a></div><div class="ttdoc">The amendment table stores the list of enabled and potential amendments.</div><div class="ttdef"><b>Definition:</b> <a href="AmendmentTable_8h_source.html#l00034">AmendmentTable.h:34</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_ab70191a0c4bd62e8a6975f8d618cd3d6"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#ab70191a0c4bd62e8a6975f8d618cd3d6">ripple::ApplicationImp::getMasterTransaction</a></div><div class="ttdeci">TransactionMaster &amp; getMasterTransaction() override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00594">Application.cpp:594</a></div></div>
<div class="ttc" id="anamespaceripple_html_a290d712d85ae7ad9fe05a68c81faaf9a"><div class="ttname"><a href="namespaceripple.html#a290d712d85ae7ad9fe05a68c81faaf9a">ripple::make_InboundTransactions</a></div><div class="ttdeci">std::unique_ptr&lt; InboundTransactions &gt; make_InboundTransactions(Application &amp;app, Stoppable &amp;parent, beast::insight::Collector::ptr const &amp;collector, std::function&lt; void(std::shared_ptr&lt; SHAMap &gt; const &amp;, bool)&gt; gotSet)</div><div class="ttdef"><b>Definition:</b> <a href="InboundTransactions_8cpp_source.html#l00264">InboundTransactions.cpp:264</a></div></div>
<div class="ttc" id="anamespaceripple_html_a290d712d85ae7ad9fe05a68c81faaf9a"><div class="ttname"><a href="namespaceripple.html#a290d712d85ae7ad9fe05a68c81faaf9a">ripple::make_InboundTransactions</a></div><div class="ttdeci">std::unique_ptr&lt; InboundTransactions &gt; make_InboundTransactions(Application &amp;app, Stoppable &amp;parent, beast::insight::Collector::ptr const &amp;collector, std::function&lt; void(std::shared_ptr&lt; SHAMap &gt; const &amp;, bool)&gt; gotSet)</div><div class="ttdef"><b>Definition:</b> <a href="InboundTransactions_8cpp_source.html#l00270">InboundTransactions.cpp:270</a></div></div>
<div class="ttc" id="aunique_ptr_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="aclassripple_1_1NetClock_html_a4c2428e178dca6689fa3fb4be0657107"><div class="ttname"><a href="classripple_1_1NetClock.html#a4c2428e178dca6689fa3fb4be0657107">ripple::NetClock::time_point</a></div><div class="ttdeci">std::chrono::time_point&lt; NetClock &gt; time_point</div><div class="ttdef"><b>Definition:</b> <a href="chrono_8h_source.html#l00054">chrono.h:54</a></div></div>
<div class="ttc" id="aclassripple_1_1Config_html_a6d275f46c1bb19d9a85917de5ca1b99ea99e70e98c78e9c336dbf5fa9e54405b1"><div class="ttname"><a href="classripple_1_1Config.html#a6d275f46c1bb19d9a85917de5ca1b99ea99e70e98c78e9c336dbf5fa9e54405b1">ripple::Config::LOAD_FILE</a></div><div class="ttdeci">@ LOAD_FILE</div><div class="ttdef"><b>Definition:</b> <a href="Config_8h_source.html#l00124">Config.h:124</a></div></div>
@@ -2639,7 +2638,7 @@ $(function() {
<div class="ttc" id="aclassJson_1_1Value_html_a478d6ca4b353199e3b9f91b9cfebc7ba"><div class="ttname"><a href="classJson_1_1Value.html#a478d6ca4b353199e3b9f91b9cfebc7ba">Json::Value::isObjectOrNull</a></div><div class="ttdeci">bool isObjectOrNull() const</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01033">json_value.cpp:1033</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a43721b94a94e90ed129060dfcfab2869"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a43721b94a94e90ed129060dfcfab2869">ripple::ApplicationImp::getValidations</a></div><div class="ttdeci">RCLValidations &amp; getValidations() override</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l00738">Application.cpp:738</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplicationImp_html_a35adb8e590a254d96dedff53e7280e59"><div class="ttname"><a href="classripple_1_1ApplicationImp.html#a35adb8e590a254d96dedff53e7280e59">ripple::ApplicationImp::setEntropyTimer</a></div><div class="ttdeci">void setEntropyTimer()</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l01118">Application.cpp:1118</a></div></div>
<div class="ttc" id="anamespaceripple_html_a37eda33d77f068d8788e5a5a81a7cc77"><div class="ttname"><a href="namespaceripple.html#a37eda33d77f068d8788e5a5a81a7cc77">ripple::make_Application</a></div><div class="ttdeci">std::unique_ptr&lt; Application &gt; make_Application(std::unique_ptr&lt; Config &gt; config, std::unique_ptr&lt; Logs &gt; logs, std::unique_ptr&lt; TimeKeeper &gt; timeKeeper)</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l02198">Application.cpp:2198</a></div></div>
<div class="ttc" id="anamespaceripple_html_a37eda33d77f068d8788e5a5a81a7cc77"><div class="ttname"><a href="namespaceripple.html#a37eda33d77f068d8788e5a5a81a7cc77">ripple::make_Application</a></div><div class="ttdeci">std::unique_ptr&lt; Application &gt; make_Application(std::unique_ptr&lt; Config &gt; config, std::unique_ptr&lt; Logs &gt; logs, std::unique_ptr&lt; TimeKeeper &gt; timeKeeper)</div><div class="ttdef"><b>Definition:</b> <a href="Application_8cpp_source.html#l02197">Application.cpp:2197</a></div></div>
<div class="ttc" id="aclassripple_1_1ValidatorKeys_html_a183b4ce6c755f2788f75bfabd9a8dcb7"><div class="ttname"><a href="classripple_1_1ValidatorKeys.html#a183b4ce6c755f2788f75bfabd9a8dcb7">ripple::ValidatorKeys::manifest</a></div><div class="ttdeci">std::string manifest</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorKeys_8h_source.html#l00042">ValidatorKeys.h:42</a></div></div>
<div class="ttc" id="aref_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/functional/ref.html">std::ref</a></div><div class="ttdeci">T ref(T... args)</div></div>
<div class="ttc" id="anamespaceripple_html_a19b3e12164eaf5f57ffd7dc2316f0f96"><div class="ttname"><a href="namespaceripple.html#a19b3e12164eaf5f57ffd7dc2316f0f96">ripple::make_ServerHandler</a></div><div class="ttdeci">std::unique_ptr&lt; ServerHandler &gt; make_ServerHandler(Application &amp;app, Stoppable &amp;parent, boost::asio::io_service &amp;io_service, JobQueue &amp;jobQueue, NetworkOPs &amp;networkOPs, Resource::Manager &amp;resourceManager, CollectorManager &amp;cm)</div><div class="ttdef"><b>Definition:</b> <a href="ServerHandlerImp_8cpp_source.html#l01155">ServerHandlerImp.cpp:1155</a></div></div>
@@ -2653,7 +2652,7 @@ $(function() {
<div class="ttc" id="abasic_ifstream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ifstream.html">std::ifstream</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="anamespaceripple_html_a6110f68be52a49bc60252e46fa79f4b4"><div class="ttname"><a href="namespaceripple.html#a6110f68be52a49bc60252e46fa79f4b4">ripple::LgrDBName</a></div><div class="ttdeci">constexpr auto LgrDBName</div><div class="ttdef"><b>Definition:</b> <a href="DBInit_8h_source.html#l00043">DBInit.h:43</a></div></div>
<div class="ttc" id="anamespaceripple_html_a861d92d077665813aa32ad566b4b21fa"><div class="ttname"><a href="namespaceripple.html#a861d92d077665813aa32ad566b4b21fa">ripple::getRegisteredFeature</a></div><div class="ttdeci">boost::optional&lt; uint256 &gt; getRegisteredFeature(std::string const &amp;name)</div><div class="ttdef"><b>Definition:</b> <a href="Feature_8cpp_source.html#l00143">Feature.cpp:143</a></div></div>
<div class="ttc" id="anamespacebeast_html"><div class="ttname"><a href="namespacebeast.html">beast</a></div><div class="ttdef"><b>Definition:</b> <a href="base__uint_8h_source.html#l00646">base_uint.h:646</a></div></div>
<div class="ttc" id="anamespacebeast_html"><div class="ttname"><a href="namespacebeast.html">beast</a></div><div class="ttdef"><b>Definition:</b> <a href="base__uint_8h_source.html#l00585">base_uint.h:585</a></div></div>
<div class="ttc" id="anamespacestd_1_1chrono_html"><div class="ttname"><a href="http://en.cppreference.com/w/namespacestd_1_1chrono.html">std::chrono</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>