mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-27 06:25:51 +00:00
deploy: c233df720a
This commit is contained in:
@@ -1071,149 +1071,150 @@ $(function() {
|
||||
<div class="line"><a id="l00996" name="l00996"></a><span class="lineno"> 996</span> <span class="keywordtype">bool</span> isSynchronous,</div>
|
||||
<div class="line"><a id="l00997" name="l00997"></a><span class="lineno"> 997</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceripple.html#a38d1749cd010f88da471b4183b2dfe52">isCurrent</a>)</div>
|
||||
<div class="line"><a id="l00998" name="l00998"></a><span class="lineno"> 998</span>{</div>
|
||||
<div class="line"><a id="l00999" name="l00999"></a><span class="lineno"> 999</span> <span class="keywordflow">if</span> (!app.<a class="code hl_function" href="classripple_1_1Application.html#ad60542d0ed6bf805110c4c85ddf63c3c">getHashRouter</a>().<a class="code hl_function" href="classripple_1_1HashRouter.html#ac43309b8c10713823bdc233f39931472">setFlags</a>(ledger->info().hash, SF_SAVED))</div>
|
||||
<div class="line"><a id="l01000" name="l01000"></a><span class="lineno"> 1000</span> {</div>
|
||||
<div class="line"><a id="l01001" name="l01001"></a><span class="lineno"> 1001</span> <span class="comment">// We have tried to save this ledger recently</span></div>
|
||||
<div class="line"><a id="l01002" name="l01002"></a><span class="lineno"> 1002</span> <span class="keyword">auto</span> stream = app.<a class="code hl_function" href="classripple_1_1Application.html#a2897c28a5b5040e80e66f676d201d03f">journal</a>(<span class="stringliteral">"Ledger"</span>).<a class="code hl_function" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>();</div>
|
||||
<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"> 1003</span> JLOG(stream) << <span class="stringliteral">"Double pend save for "</span> << ledger->info().seq;</div>
|
||||
<div class="line"><a id="l01004" name="l01004"></a><span class="lineno"> 1004</span> </div>
|
||||
<div class="line"><a id="l01005" name="l01005"></a><span class="lineno"> 1005</span> <span class="keywordflow">if</span> (!isSynchronous || !app.<a class="code hl_function" href="classripple_1_1Application.html#af759427312a7c4a0f704f275a9c87318">pendingSaves</a>().<a class="code hl_function" href="classripple_1_1PendingSaves.html#aeb28ec1977b7ac30071426b9170c7345">pending</a>(ledger->info().seq))</div>
|
||||
<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"> 1006</span> {</div>
|
||||
<div class="line"><a id="l01007" name="l01007"></a><span class="lineno"> 1007</span> <span class="comment">// Either we don't need it to be finished</span></div>
|
||||
<div class="line"><a id="l01008" name="l01008"></a><span class="lineno"> 1008</span> <span class="comment">// or it is finished</span></div>
|
||||
<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"> 1009</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a id="l01010" name="l01010"></a><span class="lineno"> 1010</span> }</div>
|
||||
<div class="line"><a id="l01011" name="l01011"></a><span class="lineno"> 1011</span> }</div>
|
||||
<div class="line"><a id="l01012" name="l01012"></a><span class="lineno"> 1012</span> </div>
|
||||
<div class="line"><a id="l01013" name="l01013"></a><span class="lineno"> 1013</span> XRPL_ASSERT(</div>
|
||||
<div class="line"><a id="l01014" name="l01014"></a><span class="lineno"> 1014</span> ledger->isImmutable(), <span class="stringliteral">"ripple::pendSaveValidated : immutable ledger"</span>);</div>
|
||||
<div class="line"><a id="l01015" name="l01015"></a><span class="lineno"> 1015</span> </div>
|
||||
<div class="line"><a id="l01016" name="l01016"></a><span class="lineno"> 1016</span> <span class="keywordflow">if</span> (!app.<a class="code hl_function" href="classripple_1_1Application.html#af759427312a7c4a0f704f275a9c87318">pendingSaves</a>().<a class="code hl_function" href="classripple_1_1PendingSaves.html#ab5e9e105f7d12575bc2025468b4cc1f8">shouldWork</a>(ledger->info().seq, isSynchronous))</div>
|
||||
<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"> 1017</span> {</div>
|
||||
<div class="line"><a id="l01018" name="l01018"></a><span class="lineno"> 1018</span> <span class="keyword">auto</span> stream = app.<a class="code hl_function" href="classripple_1_1Application.html#a2897c28a5b5040e80e66f676d201d03f">journal</a>(<span class="stringliteral">"Ledger"</span>).<a class="code hl_function" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>();</div>
|
||||
<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span> JLOG(stream) << <span class="stringliteral">"Pend save with seq in pending saves "</span></div>
|
||||
<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span> << ledger->info().seq;</div>
|
||||
<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span> </div>
|
||||
<div class="line"><a id="l01022" name="l01022"></a><span class="lineno"> 1022</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a id="l01023" name="l01023"></a><span class="lineno"> 1023</span> }</div>
|
||||
<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span> </div>
|
||||
<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span> <span class="comment">// See if we can use the JobQueue.</span></div>
|
||||
<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span> <span class="keywordflow">if</span> (!isSynchronous &&</div>
|
||||
<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"> 1027</span> app.<a class="code hl_function" href="classripple_1_1Application.html#a79e319577676b37dbff4ce5fc86aa23f">getJobQueue</a>().<a class="code hl_function" href="classripple_1_1JobQueue.html#af5e34187d55aa58e551dc196aaf1ec25">addJob</a>(</div>
|
||||
<div class="line"><a id="l01028" name="l01028"></a><span class="lineno"> 1028</span> <a class="code hl_function" href="namespaceripple.html#a38d1749cd010f88da471b4183b2dfe52">isCurrent</a> ? <a class="code hl_enumvalue" href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17aa75c73aafec01f5472607a930d5d1f3b9">jtPUBLEDGER</a> : <a class="code hl_enumvalue" href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17aaa4e32e16425bc63db04ed98f3b3f4259">jtPUBOLDLEDGER</a>,</div>
|
||||
<div class="line"><a id="l01029" name="l01029"></a><span class="lineno"> 1029</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/string/basic_string/to_string.html">std::to_string</a>(ledger->seq()),</div>
|
||||
<div class="line"><a id="l01030" name="l01030"></a><span class="lineno"> 1030</span> [&app, ledger, <a class="code hl_function" href="namespaceripple.html#a38d1749cd010f88da471b4183b2dfe52">isCurrent</a>]() {</div>
|
||||
<div class="line"><a id="l01031" name="l01031"></a><span class="lineno"> 1031</span> saveValidatedLedger(app, ledger, isCurrent);</div>
|
||||
<div class="line"><a id="l01032" name="l01032"></a><span class="lineno"> 1032</span> }))</div>
|
||||
<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"> 1033</span> {</div>
|
||||
<div class="line"><a id="l01034" name="l01034"></a><span class="lineno"> 1034</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"> 1035</span> }</div>
|
||||
<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</span> </div>
|
||||
<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"> 1037</span> <span class="comment">// The JobQueue won't do the Job. Do the save synchronously.</span></div>
|
||||
<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceripple.html#a4574aa8b71b4bb8afc56cf6daff9ca86">saveValidatedLedger</a>(app, ledger, <a class="code hl_function" href="namespaceripple.html#a38d1749cd010f88da471b4183b2dfe52">isCurrent</a>);</div>
|
||||
<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</span>}</div>
|
||||
<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span> </div>
|
||||
<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span><span class="keywordtype">void</span></div>
|
||||
<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"><a class="line" href="classripple_1_1Ledger.html#a0e6f8ad49de88ce1eb3ffa77ca346c21"> 1042</a></span><a class="code hl_function" href="classripple_1_1Ledger.html#a0e6f8ad49de88ce1eb3ffa77ca346c21">Ledger::unshare</a>()<span class="keyword"> const</span></div>
|
||||
<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"> 1043</span><span class="keyword"></span>{</div>
|
||||
<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"> 1044</span> <a class="code hl_variable" href="classripple_1_1Ledger.html#a337876ecd2705cbc29ec377b5700db22">stateMap_</a>.<a class="code hl_function" href="classripple_1_1SHAMap.html#aee5ccc6cf9fa63aa25765227007893fb">unshare</a>();</div>
|
||||
<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"> 1045</span> <a class="code hl_variable" href="classripple_1_1Ledger.html#a905a838063e85e74f0ab7ecda3114bc4">txMap_</a>.<a class="code hl_function" href="classripple_1_1SHAMap.html#aee5ccc6cf9fa63aa25765227007893fb">unshare</a>();</div>
|
||||
<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"> 1046</span>}</div>
|
||||
<div class="line"><a id="l01047" name="l01047"></a><span class="lineno"> 1047</span> </div>
|
||||
<div class="line"><a id="l01048" name="l01048"></a><span class="lineno"> 1048</span><span class="keywordtype">void</span></div>
|
||||
<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"><a class="line" href="classripple_1_1Ledger.html#a156082bb161144196934ce455ee404b2"> 1049</a></span><a class="code hl_function" href="classripple_1_1Ledger.html#a156082bb161144196934ce455ee404b2">Ledger::invariants</a>()<span class="keyword"> const</span></div>
|
||||
<div class="line"><a id="l01050" name="l01050"></a><span class="lineno"> 1050</span><span class="keyword"></span>{</div>
|
||||
<div class="line"><a id="l01051" name="l01051"></a><span class="lineno"> 1051</span> <a class="code hl_variable" href="classripple_1_1Ledger.html#a337876ecd2705cbc29ec377b5700db22">stateMap_</a>.<a class="code hl_function" href="classripple_1_1SHAMap.html#a721b11739ad539851737443deeccf96b">invariants</a>();</div>
|
||||
<div class="line"><a id="l01052" name="l01052"></a><span class="lineno"> 1052</span> <a class="code hl_variable" href="classripple_1_1Ledger.html#a905a838063e85e74f0ab7ecda3114bc4">txMap_</a>.<a class="code hl_function" href="classripple_1_1SHAMap.html#a721b11739ad539851737443deeccf96b">invariants</a>();</div>
|
||||
<div class="line"><a id="l01053" name="l01053"></a><span class="lineno"> 1053</span>}</div>
|
||||
<div class="line"><a id="l01054" name="l01054"></a><span class="lineno"> 1054</span><span class="comment">//------------------------------------------------------------------------------</span></div>
|
||||
<div class="line"><a id="l01055" name="l01055"></a><span class="lineno"> 1055</span> </div>
|
||||
<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"> 1056</span><span class="comment">/*</span></div>
|
||||
<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"> 1057</span><span class="comment"> * Make ledger using info loaded from database.</span></div>
|
||||
<div class="line"><a id="l01058" name="l01058"></a><span class="lineno"> 1058</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l01059" name="l01059"></a><span class="lineno"> 1059</span><span class="comment"> * @param LedgerInfo: Ledger information.</span></div>
|
||||
<div class="line"><a id="l01060" name="l01060"></a><span class="lineno"> 1060</span><span class="comment"> * @param app: Link to the Application.</span></div>
|
||||
<div class="line"><a id="l01061" name="l01061"></a><span class="lineno"> 1061</span><span class="comment"> * @param acquire: Acquire the ledger if not found locally.</span></div>
|
||||
<div class="line"><a id="l01062" name="l01062"></a><span class="lineno"> 1062</span><span class="comment"> * @return Shared pointer to the ledger.</span></div>
|
||||
<div class="line"><a id="l01063" name="l01063"></a><span class="lineno"> 1063</span><span class="comment"> */</span></div>
|
||||
<div class="line"><a id="l01064" name="l01064"></a><span class="lineno"> 1064</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr<Ledger></a></div>
|
||||
<div class="line"><a id="l01065" name="l01065"></a><span class="lineno"><a class="line" href="namespaceripple.html#a56e0cc999ed456f36e9662a4fcae5061"> 1065</a></span><a class="code hl_function" href="namespaceripple.html#a56e0cc999ed456f36e9662a4fcae5061">loadLedgerHelper</a>(<a class="code hl_struct" href="structripple_1_1LedgerHeader.html">LedgerInfo</a> <span class="keyword">const</span>& info, <a class="code hl_class" href="classripple_1_1Application.html">Application</a>& app, <span class="keywordtype">bool</span> acquire)</div>
|
||||
<div class="line"><a id="l01066" name="l01066"></a><span class="lineno"> 1066</span>{</div>
|
||||
<div class="line"><a id="l01067" name="l01067"></a><span class="lineno"> 1067</span> <span class="keywordtype">bool</span> loaded;</div>
|
||||
<div class="line"><a id="l01068" name="l01068"></a><span class="lineno"> 1068</span> <span class="keyword">auto</span> ledger = std::make_shared<Ledger>(</div>
|
||||
<div class="line"><a id="l01069" name="l01069"></a><span class="lineno"> 1069</span> info,</div>
|
||||
<div class="line"><a id="l01070" name="l01070"></a><span class="lineno"> 1070</span> loaded,</div>
|
||||
<div class="line"><a id="l01071" name="l01071"></a><span class="lineno"> 1071</span> acquire,</div>
|
||||
<div class="line"><a id="l01072" name="l01072"></a><span class="lineno"> 1072</span> app.<a class="code hl_function" href="classripple_1_1Application.html#a0c48dd5bcaef14e30e9ef5b96b0daa39">config</a>(),</div>
|
||||
<div class="line"><a id="l01073" name="l01073"></a><span class="lineno"> 1073</span> app.<a class="code hl_function" href="classripple_1_1Application.html#a9e3f03e303b8524cdac477e7f6f4288f">getNodeFamily</a>(),</div>
|
||||
<div class="line"><a id="l01074" name="l01074"></a><span class="lineno"> 1074</span> app.<a class="code hl_function" href="classripple_1_1Application.html#a2897c28a5b5040e80e66f676d201d03f">journal</a>(<span class="stringliteral">"Ledger"</span>));</div>
|
||||
<div class="line"><a id="l01075" name="l01075"></a><span class="lineno"> 1075</span> </div>
|
||||
<div class="line"><a id="l01076" name="l01076"></a><span class="lineno"> 1076</span> <span class="keywordflow">if</span> (!loaded)</div>
|
||||
<div class="line"><a id="l01077" name="l01077"></a><span class="lineno"> 1077</span> ledger.reset();</div>
|
||||
<div class="line"><a id="l01078" name="l01078"></a><span class="lineno"> 1078</span> </div>
|
||||
<div class="line"><a id="l01079" name="l01079"></a><span class="lineno"> 1079</span> <span class="keywordflow">return</span> ledger;</div>
|
||||
<div class="line"><a id="l01080" name="l01080"></a><span class="lineno"> 1080</span>}</div>
|
||||
<div class="line"><a id="l01081" name="l01081"></a><span class="lineno"> 1081</span> </div>
|
||||
<div class="line"><a id="l01082" name="l01082"></a><span class="lineno"> 1082</span><span class="keyword">static</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a id="l01083" name="l01083"></a><span class="lineno"><a class="line" href="namespaceripple.html#a16f9dbea9c8dfaaaca124cf61c6b6e6d"> 1083</a></span><a class="code hl_function" href="namespaceripple.html#a16f9dbea9c8dfaaaca124cf61c6b6e6d">finishLoadByIndexOrHash</a>(</div>
|
||||
<div class="line"><a id="l01084" name="l01084"></a><span class="lineno"> 1084</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr<Ledger></a> <span class="keyword">const</span>& ledger,</div>
|
||||
<div class="line"><a id="l01085" name="l01085"></a><span class="lineno"> 1085</span> <a class="code hl_class" href="classripple_1_1Config.html">Config</a> <span class="keyword">const</span>& config,</div>
|
||||
<div class="line"><a id="l01086" name="l01086"></a><span class="lineno"> 1086</span> <a class="code hl_class" href="classbeast_1_1Journal.html">beast::Journal</a> j)</div>
|
||||
<div class="line"><a id="l01087" name="l01087"></a><span class="lineno"> 1087</span>{</div>
|
||||
<div class="line"><a id="l01088" name="l01088"></a><span class="lineno"> 1088</span> <span class="keywordflow">if</span> (!ledger)</div>
|
||||
<div class="line"><a id="l01089" name="l01089"></a><span class="lineno"> 1089</span> <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a id="l01090" name="l01090"></a><span class="lineno"> 1090</span> </div>
|
||||
<div class="line"><a id="l01091" name="l01091"></a><span class="lineno"> 1091</span> XRPL_ASSERT(</div>
|
||||
<div class="line"><a id="l01092" name="l01092"></a><span class="lineno"> 1092</span> ledger->info().seq < <a class="code hl_variable" href="namespaceripple.html#a6fc7a232cc9b90d4b5846057977fcf63">XRP_LEDGER_EARLIEST_FEES</a> ||</div>
|
||||
<div class="line"><a id="l01093" name="l01093"></a><span class="lineno"> 1093</span> ledger->read(<a class="code hl_function" href="namespaceripple_1_1keylet.html#ac58ecac7b057504ea6c1706c0ee04623">keylet::fees</a>()),</div>
|
||||
<div class="line"><a id="l01094" name="l01094"></a><span class="lineno"> 1094</span> <span class="stringliteral">"ripple::finishLoadByIndexOrHash : valid ledger fees"</span>);</div>
|
||||
<div class="line"><a id="l01095" name="l01095"></a><span class="lineno"> 1095</span> ledger->setImmutable();</div>
|
||||
<div class="line"><a id="l01096" name="l01096"></a><span class="lineno"> 1096</span> </div>
|
||||
<div class="line"><a id="l01097" name="l01097"></a><span class="lineno"> 1097</span> JLOG(j.<a class="code hl_function" href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">trace</a>()) << <span class="stringliteral">"Loaded ledger: "</span> << <a class="code hl_function" href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">to_string</a>(ledger->info().hash);</div>
|
||||
<div class="line"><a id="l01098" name="l01098"></a><span class="lineno"> 1098</span> </div>
|
||||
<div class="line"><a id="l01099" name="l01099"></a><span class="lineno"> 1099</span> ledger->setFull();</div>
|
||||
<div class="line"><a id="l01100" name="l01100"></a><span class="lineno"> 1100</span>}</div>
|
||||
<div class="line"><a id="l01101" name="l01101"></a><span class="lineno"> 1101</span> </div>
|
||||
<div class="line"><a id="l01102" name="l01102"></a><span class="lineno"> 1102</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/tuple.html">std::tuple<std::shared_ptr<Ledger></a>, <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>, <a class="code hl_typedef" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a>></div>
|
||||
<div class="line"><a id="l01103" name="l01103"></a><span class="lineno"><a class="line" href="namespaceripple.html#a04cf5c0dd5329bc0e0203fb86cf91ed3"> 1103</a></span><a class="code hl_function" href="namespaceripple.html#a04cf5c0dd5329bc0e0203fb86cf91ed3">getLatestLedger</a>(<a class="code hl_class" href="classripple_1_1Application.html">Application</a>& app)</div>
|
||||
<div class="line"><a id="l01104" name="l01104"></a><span class="lineno"> 1104</span>{</div>
|
||||
<div class="line"><a id="l01105" name="l01105"></a><span class="lineno"> 1105</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional<LedgerInfo></a> <span class="keyword">const</span> info =</div>
|
||||
<div class="line"><a id="l01106" name="l01106"></a><span class="lineno"> 1106</span> app.<a class="code hl_function" href="classripple_1_1Application.html#ab0e839b597cf03221a393cb754ec4e25">getRelationalDatabase</a>().<a class="code hl_function" href="classripple_1_1RelationalDatabase.html#a21b8bd40f0332c84bf71ef73d32bd91c">getNewestLedgerInfo</a>();</div>
|
||||
<div class="line"><a id="l01107" name="l01107"></a><span class="lineno"> 1107</span> <span class="keywordflow">if</span> (!info)</div>
|
||||
<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span> <span class="keywordflow">return</span> {<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr<Ledger></a>(), {}, {}};</div>
|
||||
<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"> 1109</span> <span class="keywordflow">return</span> {<a class="code hl_function" href="namespaceripple.html#a56e0cc999ed456f36e9662a4fcae5061">loadLedgerHelper</a>(*info, app, <span class="keyword">true</span>), info->seq, info->hash};</div>
|
||||
<div class="line"><a id="l01110" name="l01110"></a><span class="lineno"> 1110</span>}</div>
|
||||
<div class="line"><a id="l01111" name="l01111"></a><span class="lineno"> 1111</span> </div>
|
||||
<div class="line"><a id="l01112" name="l01112"></a><span class="lineno"> 1112</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr<Ledger></a></div>
|
||||
<div class="line"><a id="l01113" name="l01113"></a><span class="lineno"><a class="line" href="namespaceripple.html#a22adb38923282bf7dbb38655afdb381d"> 1113</a></span><a class="code hl_function" href="namespaceripple.html#a22adb38923282bf7dbb38655afdb381d">loadByIndex</a>(<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> ledgerIndex, <a class="code hl_class" href="classripple_1_1Application.html">Application</a>& app, <span class="keywordtype">bool</span> acquire)</div>
|
||||
<div class="line"><a id="l01114" name="l01114"></a><span class="lineno"> 1114</span>{</div>
|
||||
<div class="line"><a id="l01115" name="l01115"></a><span class="lineno"> 1115</span> <span class="keywordflow">if</span> (<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional<LedgerInfo></a> info =</div>
|
||||
<div class="line"><a id="l01116" name="l01116"></a><span class="lineno"> 1116</span> app.<a class="code hl_function" href="classripple_1_1Application.html#ab0e839b597cf03221a393cb754ec4e25">getRelationalDatabase</a>().<a class="code hl_function" href="classripple_1_1RelationalDatabase.html#a388e80415da1da75b45ecf011a64f5dd">getLedgerInfoByIndex</a>(ledgerIndex))</div>
|
||||
<div class="line"><a id="l01117" name="l01117"></a><span class="lineno"> 1117</span> {</div>
|
||||
<div class="line"><a id="l01118" name="l01118"></a><span class="lineno"> 1118</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr<Ledger></a> ledger = <a class="code hl_function" href="namespaceripple.html#a56e0cc999ed456f36e9662a4fcae5061">loadLedgerHelper</a>(*info, app, acquire);</div>
|
||||
<div class="line"><a id="l01119" name="l01119"></a><span class="lineno"> 1119</span> <a class="code hl_function" href="namespaceripple.html#a16f9dbea9c8dfaaaca124cf61c6b6e6d">finishLoadByIndexOrHash</a>(ledger, app.<a class="code hl_function" href="classripple_1_1Application.html#a0c48dd5bcaef14e30e9ef5b96b0daa39">config</a>(), app.<a class="code hl_function" href="classripple_1_1Application.html#a2897c28a5b5040e80e66f676d201d03f">journal</a>(<span class="stringliteral">"Ledger"</span>));</div>
|
||||
<div class="line"><a id="l01120" name="l01120"></a><span class="lineno"> 1120</span> <span class="keywordflow">return</span> ledger;</div>
|
||||
<div class="line"><a id="l01121" name="l01121"></a><span class="lineno"> 1121</span> }</div>
|
||||
<div class="line"><a id="l01122" name="l01122"></a><span class="lineno"> 1122</span> <span class="keywordflow">return</span> {};</div>
|
||||
<div class="line"><a id="l01123" name="l01123"></a><span class="lineno"> 1123</span>}</div>
|
||||
<div class="line"><a id="l01124" name="l01124"></a><span class="lineno"> 1124</span> </div>
|
||||
<div class="line"><a id="l01125" name="l01125"></a><span class="lineno"> 1125</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr<Ledger></a></div>
|
||||
<div class="line"><a id="l01126" name="l01126"></a><span class="lineno"><a class="line" href="namespaceripple.html#a729619e7a3a0d92226e7d52347ff2a5e"> 1126</a></span><a class="code hl_function" href="namespaceripple.html#a729619e7a3a0d92226e7d52347ff2a5e">loadByHash</a>(<a class="code hl_class" href="classripple_1_1base__uint.html">uint256</a> <span class="keyword">const</span>& ledgerHash, <a class="code hl_class" href="classripple_1_1Application.html">Application</a>& app, <span class="keywordtype">bool</span> acquire)</div>
|
||||
<div class="line"><a id="l01127" name="l01127"></a><span class="lineno"> 1127</span>{</div>
|
||||
<div class="line"><a id="l01128" name="l01128"></a><span class="lineno"> 1128</span> <span class="keywordflow">if</span> (<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional<LedgerInfo></a> info =</div>
|
||||
<div class="line"><a id="l01129" name="l01129"></a><span class="lineno"> 1129</span> app.<a class="code hl_function" href="classripple_1_1Application.html#ab0e839b597cf03221a393cb754ec4e25">getRelationalDatabase</a>().<a class="code hl_function" href="classripple_1_1RelationalDatabase.html#ae42b5ec856d806da94e9ebf4560e3ee4">getLedgerInfoByHash</a>(ledgerHash))</div>
|
||||
<div class="line"><a id="l01130" name="l01130"></a><span class="lineno"> 1130</span> {</div>
|
||||
<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"> 1131</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr<Ledger></a> ledger = <a class="code hl_function" href="namespaceripple.html#a56e0cc999ed456f36e9662a4fcae5061">loadLedgerHelper</a>(*info, app, acquire);</div>
|
||||
<div class="line"><a id="l01132" name="l01132"></a><span class="lineno"> 1132</span> <a class="code hl_function" href="namespaceripple.html#a16f9dbea9c8dfaaaca124cf61c6b6e6d">finishLoadByIndexOrHash</a>(ledger, app.<a class="code hl_function" href="classripple_1_1Application.html#a0c48dd5bcaef14e30e9ef5b96b0daa39">config</a>(), app.<a class="code hl_function" href="classripple_1_1Application.html#a2897c28a5b5040e80e66f676d201d03f">journal</a>(<span class="stringliteral">"Ledger"</span>));</div>
|
||||
<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"> 1133</span> XRPL_ASSERT(</div>
|
||||
<div class="line"><a id="l01134" name="l01134"></a><span class="lineno"> 1134</span> !ledger || ledger->info().hash == ledgerHash,</div>
|
||||
<div class="line"><a id="l01135" name="l01135"></a><span class="lineno"> 1135</span> <span class="stringliteral">"ripple::loadByHash : ledger hash match if loaded"</span>);</div>
|
||||
<div class="line"><a id="l01136" name="l01136"></a><span class="lineno"> 1136</span> <span class="keywordflow">return</span> ledger;</div>
|
||||
<div class="line"><a id="l01137" name="l01137"></a><span class="lineno"> 1137</span> }</div>
|
||||
<div class="line"><a id="l01138" name="l01138"></a><span class="lineno"> 1138</span> <span class="keywordflow">return</span> {};</div>
|
||||
<div class="line"><a id="l01139" name="l01139"></a><span class="lineno"> 1139</span>}</div>
|
||||
<div class="line"><a id="l01140" name="l01140"></a><span class="lineno"> 1140</span> </div>
|
||||
<div class="line"><a id="l01141" name="l01141"></a><span class="lineno"> 1141</span>} <span class="comment">// namespace ripple</span></div>
|
||||
<div class="line"><a id="l00999" name="l00999"></a><span class="lineno"> 999</span> <span class="keywordflow">if</span> (!app.<a class="code hl_function" href="classripple_1_1Application.html#ad60542d0ed6bf805110c4c85ddf63c3c">getHashRouter</a>().<a class="code hl_function" href="classripple_1_1HashRouter.html#a8ee73756ff7f46f1616a2996740abfda">setFlags</a>(</div>
|
||||
<div class="line"><a id="l01000" name="l01000"></a><span class="lineno"> 1000</span> ledger->info().hash, <a class="code hl_enumvalue" href="namespaceripple.html#a79683ec651b1658886d9c9ce8434f972aec09e9e688c30b57cd64c0180da5c34a">HashRouterFlags::SAVED</a>))</div>
|
||||
<div class="line"><a id="l01001" name="l01001"></a><span class="lineno"> 1001</span> {</div>
|
||||
<div class="line"><a id="l01002" name="l01002"></a><span class="lineno"> 1002</span> <span class="comment">// We have tried to save this ledger recently</span></div>
|
||||
<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"> 1003</span> <span class="keyword">auto</span> stream = app.<a class="code hl_function" href="classripple_1_1Application.html#a2897c28a5b5040e80e66f676d201d03f">journal</a>(<span class="stringliteral">"Ledger"</span>).<a class="code hl_function" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>();</div>
|
||||
<div class="line"><a id="l01004" name="l01004"></a><span class="lineno"> 1004</span> JLOG(stream) << <span class="stringliteral">"Double pend save for "</span> << ledger->info().seq;</div>
|
||||
<div class="line"><a id="l01005" name="l01005"></a><span class="lineno"> 1005</span> </div>
|
||||
<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"> 1006</span> <span class="keywordflow">if</span> (!isSynchronous || !app.<a class="code hl_function" href="classripple_1_1Application.html#af759427312a7c4a0f704f275a9c87318">pendingSaves</a>().<a class="code hl_function" href="classripple_1_1PendingSaves.html#aeb28ec1977b7ac30071426b9170c7345">pending</a>(ledger->info().seq))</div>
|
||||
<div class="line"><a id="l01007" name="l01007"></a><span class="lineno"> 1007</span> {</div>
|
||||
<div class="line"><a id="l01008" name="l01008"></a><span class="lineno"> 1008</span> <span class="comment">// Either we don't need it to be finished</span></div>
|
||||
<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"> 1009</span> <span class="comment">// or it is finished</span></div>
|
||||
<div class="line"><a id="l01010" name="l01010"></a><span class="lineno"> 1010</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a id="l01011" name="l01011"></a><span class="lineno"> 1011</span> }</div>
|
||||
<div class="line"><a id="l01012" name="l01012"></a><span class="lineno"> 1012</span> }</div>
|
||||
<div class="line"><a id="l01013" name="l01013"></a><span class="lineno"> 1013</span> </div>
|
||||
<div class="line"><a id="l01014" name="l01014"></a><span class="lineno"> 1014</span> XRPL_ASSERT(</div>
|
||||
<div class="line"><a id="l01015" name="l01015"></a><span class="lineno"> 1015</span> ledger->isImmutable(), <span class="stringliteral">"ripple::pendSaveValidated : immutable ledger"</span>);</div>
|
||||
<div class="line"><a id="l01016" name="l01016"></a><span class="lineno"> 1016</span> </div>
|
||||
<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"> 1017</span> <span class="keywordflow">if</span> (!app.<a class="code hl_function" href="classripple_1_1Application.html#af759427312a7c4a0f704f275a9c87318">pendingSaves</a>().<a class="code hl_function" href="classripple_1_1PendingSaves.html#ab5e9e105f7d12575bc2025468b4cc1f8">shouldWork</a>(ledger->info().seq, isSynchronous))</div>
|
||||
<div class="line"><a id="l01018" name="l01018"></a><span class="lineno"> 1018</span> {</div>
|
||||
<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span> <span class="keyword">auto</span> stream = app.<a class="code hl_function" href="classripple_1_1Application.html#a2897c28a5b5040e80e66f676d201d03f">journal</a>(<span class="stringliteral">"Ledger"</span>).<a class="code hl_function" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>();</div>
|
||||
<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span> JLOG(stream) << <span class="stringliteral">"Pend save with seq in pending saves "</span></div>
|
||||
<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span> << ledger->info().seq;</div>
|
||||
<div class="line"><a id="l01022" name="l01022"></a><span class="lineno"> 1022</span> </div>
|
||||
<div class="line"><a id="l01023" name="l01023"></a><span class="lineno"> 1023</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span> }</div>
|
||||
<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span> </div>
|
||||
<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span> <span class="comment">// See if we can use the JobQueue.</span></div>
|
||||
<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"> 1027</span> <span class="keywordflow">if</span> (!isSynchronous &&</div>
|
||||
<div class="line"><a id="l01028" name="l01028"></a><span class="lineno"> 1028</span> app.<a class="code hl_function" href="classripple_1_1Application.html#a79e319577676b37dbff4ce5fc86aa23f">getJobQueue</a>().<a class="code hl_function" href="classripple_1_1JobQueue.html#af5e34187d55aa58e551dc196aaf1ec25">addJob</a>(</div>
|
||||
<div class="line"><a id="l01029" name="l01029"></a><span class="lineno"> 1029</span> <a class="code hl_function" href="namespaceripple.html#a38d1749cd010f88da471b4183b2dfe52">isCurrent</a> ? <a class="code hl_enumvalue" href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17aa75c73aafec01f5472607a930d5d1f3b9">jtPUBLEDGER</a> : <a class="code hl_enumvalue" href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17aaa4e32e16425bc63db04ed98f3b3f4259">jtPUBOLDLEDGER</a>,</div>
|
||||
<div class="line"><a id="l01030" name="l01030"></a><span class="lineno"> 1030</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/string/basic_string/to_string.html">std::to_string</a>(ledger->seq()),</div>
|
||||
<div class="line"><a id="l01031" name="l01031"></a><span class="lineno"> 1031</span> [&app, ledger, <a class="code hl_function" href="namespaceripple.html#a38d1749cd010f88da471b4183b2dfe52">isCurrent</a>]() {</div>
|
||||
<div class="line"><a id="l01032" name="l01032"></a><span class="lineno"> 1032</span> saveValidatedLedger(app, ledger, isCurrent);</div>
|
||||
<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"> 1033</span> }))</div>
|
||||
<div class="line"><a id="l01034" name="l01034"></a><span class="lineno"> 1034</span> {</div>
|
||||
<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"> 1035</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</span> }</div>
|
||||
<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"> 1037</span> </div>
|
||||
<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</span> <span class="comment">// The JobQueue won't do the Job. Do the save synchronously.</span></div>
|
||||
<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceripple.html#a4574aa8b71b4bb8afc56cf6daff9ca86">saveValidatedLedger</a>(app, ledger, <a class="code hl_function" href="namespaceripple.html#a38d1749cd010f88da471b4183b2dfe52">isCurrent</a>);</div>
|
||||
<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span>}</div>
|
||||
<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span> </div>
|
||||
<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"> 1042</span><span class="keywordtype">void</span></div>
|
||||
<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"><a class="line" href="classripple_1_1Ledger.html#a0e6f8ad49de88ce1eb3ffa77ca346c21"> 1043</a></span><a class="code hl_function" href="classripple_1_1Ledger.html#a0e6f8ad49de88ce1eb3ffa77ca346c21">Ledger::unshare</a>()<span class="keyword"> const</span></div>
|
||||
<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"> 1044</span><span class="keyword"></span>{</div>
|
||||
<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"> 1045</span> <a class="code hl_variable" href="classripple_1_1Ledger.html#a337876ecd2705cbc29ec377b5700db22">stateMap_</a>.<a class="code hl_function" href="classripple_1_1SHAMap.html#aee5ccc6cf9fa63aa25765227007893fb">unshare</a>();</div>
|
||||
<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"> 1046</span> <a class="code hl_variable" href="classripple_1_1Ledger.html#a905a838063e85e74f0ab7ecda3114bc4">txMap_</a>.<a class="code hl_function" href="classripple_1_1SHAMap.html#aee5ccc6cf9fa63aa25765227007893fb">unshare</a>();</div>
|
||||
<div class="line"><a id="l01047" name="l01047"></a><span class="lineno"> 1047</span>}</div>
|
||||
<div class="line"><a id="l01048" name="l01048"></a><span class="lineno"> 1048</span> </div>
|
||||
<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"> 1049</span><span class="keywordtype">void</span></div>
|
||||
<div class="line"><a id="l01050" name="l01050"></a><span class="lineno"><a class="line" href="classripple_1_1Ledger.html#a156082bb161144196934ce455ee404b2"> 1050</a></span><a class="code hl_function" href="classripple_1_1Ledger.html#a156082bb161144196934ce455ee404b2">Ledger::invariants</a>()<span class="keyword"> const</span></div>
|
||||
<div class="line"><a id="l01051" name="l01051"></a><span class="lineno"> 1051</span><span class="keyword"></span>{</div>
|
||||
<div class="line"><a id="l01052" name="l01052"></a><span class="lineno"> 1052</span> <a class="code hl_variable" href="classripple_1_1Ledger.html#a337876ecd2705cbc29ec377b5700db22">stateMap_</a>.<a class="code hl_function" href="classripple_1_1SHAMap.html#a721b11739ad539851737443deeccf96b">invariants</a>();</div>
|
||||
<div class="line"><a id="l01053" name="l01053"></a><span class="lineno"> 1053</span> <a class="code hl_variable" href="classripple_1_1Ledger.html#a905a838063e85e74f0ab7ecda3114bc4">txMap_</a>.<a class="code hl_function" href="classripple_1_1SHAMap.html#a721b11739ad539851737443deeccf96b">invariants</a>();</div>
|
||||
<div class="line"><a id="l01054" name="l01054"></a><span class="lineno"> 1054</span>}</div>
|
||||
<div class="line"><a id="l01055" name="l01055"></a><span class="lineno"> 1055</span><span class="comment">//------------------------------------------------------------------------------</span></div>
|
||||
<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"> 1056</span> </div>
|
||||
<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"> 1057</span><span class="comment">/*</span></div>
|
||||
<div class="line"><a id="l01058" name="l01058"></a><span class="lineno"> 1058</span><span class="comment"> * Make ledger using info loaded from database.</span></div>
|
||||
<div class="line"><a id="l01059" name="l01059"></a><span class="lineno"> 1059</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l01060" name="l01060"></a><span class="lineno"> 1060</span><span class="comment"> * @param LedgerInfo: Ledger information.</span></div>
|
||||
<div class="line"><a id="l01061" name="l01061"></a><span class="lineno"> 1061</span><span class="comment"> * @param app: Link to the Application.</span></div>
|
||||
<div class="line"><a id="l01062" name="l01062"></a><span class="lineno"> 1062</span><span class="comment"> * @param acquire: Acquire the ledger if not found locally.</span></div>
|
||||
<div class="line"><a id="l01063" name="l01063"></a><span class="lineno"> 1063</span><span class="comment"> * @return Shared pointer to the ledger.</span></div>
|
||||
<div class="line"><a id="l01064" name="l01064"></a><span class="lineno"> 1064</span><span class="comment"> */</span></div>
|
||||
<div class="line"><a id="l01065" name="l01065"></a><span class="lineno"> 1065</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr<Ledger></a></div>
|
||||
<div class="line"><a id="l01066" name="l01066"></a><span class="lineno"><a class="line" href="namespaceripple.html#a56e0cc999ed456f36e9662a4fcae5061"> 1066</a></span><a class="code hl_function" href="namespaceripple.html#a56e0cc999ed456f36e9662a4fcae5061">loadLedgerHelper</a>(<a class="code hl_struct" href="structripple_1_1LedgerHeader.html">LedgerInfo</a> <span class="keyword">const</span>& info, <a class="code hl_class" href="classripple_1_1Application.html">Application</a>& app, <span class="keywordtype">bool</span> acquire)</div>
|
||||
<div class="line"><a id="l01067" name="l01067"></a><span class="lineno"> 1067</span>{</div>
|
||||
<div class="line"><a id="l01068" name="l01068"></a><span class="lineno"> 1068</span> <span class="keywordtype">bool</span> loaded;</div>
|
||||
<div class="line"><a id="l01069" name="l01069"></a><span class="lineno"> 1069</span> <span class="keyword">auto</span> ledger = std::make_shared<Ledger>(</div>
|
||||
<div class="line"><a id="l01070" name="l01070"></a><span class="lineno"> 1070</span> info,</div>
|
||||
<div class="line"><a id="l01071" name="l01071"></a><span class="lineno"> 1071</span> loaded,</div>
|
||||
<div class="line"><a id="l01072" name="l01072"></a><span class="lineno"> 1072</span> acquire,</div>
|
||||
<div class="line"><a id="l01073" name="l01073"></a><span class="lineno"> 1073</span> app.<a class="code hl_function" href="classripple_1_1Application.html#a0c48dd5bcaef14e30e9ef5b96b0daa39">config</a>(),</div>
|
||||
<div class="line"><a id="l01074" name="l01074"></a><span class="lineno"> 1074</span> app.<a class="code hl_function" href="classripple_1_1Application.html#a9e3f03e303b8524cdac477e7f6f4288f">getNodeFamily</a>(),</div>
|
||||
<div class="line"><a id="l01075" name="l01075"></a><span class="lineno"> 1075</span> app.<a class="code hl_function" href="classripple_1_1Application.html#a2897c28a5b5040e80e66f676d201d03f">journal</a>(<span class="stringliteral">"Ledger"</span>));</div>
|
||||
<div class="line"><a id="l01076" name="l01076"></a><span class="lineno"> 1076</span> </div>
|
||||
<div class="line"><a id="l01077" name="l01077"></a><span class="lineno"> 1077</span> <span class="keywordflow">if</span> (!loaded)</div>
|
||||
<div class="line"><a id="l01078" name="l01078"></a><span class="lineno"> 1078</span> ledger.reset();</div>
|
||||
<div class="line"><a id="l01079" name="l01079"></a><span class="lineno"> 1079</span> </div>
|
||||
<div class="line"><a id="l01080" name="l01080"></a><span class="lineno"> 1080</span> <span class="keywordflow">return</span> ledger;</div>
|
||||
<div class="line"><a id="l01081" name="l01081"></a><span class="lineno"> 1081</span>}</div>
|
||||
<div class="line"><a id="l01082" name="l01082"></a><span class="lineno"> 1082</span> </div>
|
||||
<div class="line"><a id="l01083" name="l01083"></a><span class="lineno"> 1083</span><span class="keyword">static</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a id="l01084" name="l01084"></a><span class="lineno"><a class="line" href="namespaceripple.html#a16f9dbea9c8dfaaaca124cf61c6b6e6d"> 1084</a></span><a class="code hl_function" href="namespaceripple.html#a16f9dbea9c8dfaaaca124cf61c6b6e6d">finishLoadByIndexOrHash</a>(</div>
|
||||
<div class="line"><a id="l01085" name="l01085"></a><span class="lineno"> 1085</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr<Ledger></a> <span class="keyword">const</span>& ledger,</div>
|
||||
<div class="line"><a id="l01086" name="l01086"></a><span class="lineno"> 1086</span> <a class="code hl_class" href="classripple_1_1Config.html">Config</a> <span class="keyword">const</span>& config,</div>
|
||||
<div class="line"><a id="l01087" name="l01087"></a><span class="lineno"> 1087</span> <a class="code hl_class" href="classbeast_1_1Journal.html">beast::Journal</a> j)</div>
|
||||
<div class="line"><a id="l01088" name="l01088"></a><span class="lineno"> 1088</span>{</div>
|
||||
<div class="line"><a id="l01089" name="l01089"></a><span class="lineno"> 1089</span> <span class="keywordflow">if</span> (!ledger)</div>
|
||||
<div class="line"><a id="l01090" name="l01090"></a><span class="lineno"> 1090</span> <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a id="l01091" name="l01091"></a><span class="lineno"> 1091</span> </div>
|
||||
<div class="line"><a id="l01092" name="l01092"></a><span class="lineno"> 1092</span> XRPL_ASSERT(</div>
|
||||
<div class="line"><a id="l01093" name="l01093"></a><span class="lineno"> 1093</span> ledger->info().seq < <a class="code hl_variable" href="namespaceripple.html#a6fc7a232cc9b90d4b5846057977fcf63">XRP_LEDGER_EARLIEST_FEES</a> ||</div>
|
||||
<div class="line"><a id="l01094" name="l01094"></a><span class="lineno"> 1094</span> ledger->read(<a class="code hl_function" href="namespaceripple_1_1keylet.html#ac58ecac7b057504ea6c1706c0ee04623">keylet::fees</a>()),</div>
|
||||
<div class="line"><a id="l01095" name="l01095"></a><span class="lineno"> 1095</span> <span class="stringliteral">"ripple::finishLoadByIndexOrHash : valid ledger fees"</span>);</div>
|
||||
<div class="line"><a id="l01096" name="l01096"></a><span class="lineno"> 1096</span> ledger->setImmutable();</div>
|
||||
<div class="line"><a id="l01097" name="l01097"></a><span class="lineno"> 1097</span> </div>
|
||||
<div class="line"><a id="l01098" name="l01098"></a><span class="lineno"> 1098</span> JLOG(j.<a class="code hl_function" href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">trace</a>()) << <span class="stringliteral">"Loaded ledger: "</span> << <a class="code hl_function" href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">to_string</a>(ledger->info().hash);</div>
|
||||
<div class="line"><a id="l01099" name="l01099"></a><span class="lineno"> 1099</span> </div>
|
||||
<div class="line"><a id="l01100" name="l01100"></a><span class="lineno"> 1100</span> ledger->setFull();</div>
|
||||
<div class="line"><a id="l01101" name="l01101"></a><span class="lineno"> 1101</span>}</div>
|
||||
<div class="line"><a id="l01102" name="l01102"></a><span class="lineno"> 1102</span> </div>
|
||||
<div class="line"><a id="l01103" name="l01103"></a><span class="lineno"> 1103</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/tuple.html">std::tuple<std::shared_ptr<Ledger></a>, <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>, <a class="code hl_typedef" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a>></div>
|
||||
<div class="line"><a id="l01104" name="l01104"></a><span class="lineno"><a class="line" href="namespaceripple.html#a04cf5c0dd5329bc0e0203fb86cf91ed3"> 1104</a></span><a class="code hl_function" href="namespaceripple.html#a04cf5c0dd5329bc0e0203fb86cf91ed3">getLatestLedger</a>(<a class="code hl_class" href="classripple_1_1Application.html">Application</a>& app)</div>
|
||||
<div class="line"><a id="l01105" name="l01105"></a><span class="lineno"> 1105</span>{</div>
|
||||
<div class="line"><a id="l01106" name="l01106"></a><span class="lineno"> 1106</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional<LedgerInfo></a> <span class="keyword">const</span> info =</div>
|
||||
<div class="line"><a id="l01107" name="l01107"></a><span class="lineno"> 1107</span> app.<a class="code hl_function" href="classripple_1_1Application.html#ab0e839b597cf03221a393cb754ec4e25">getRelationalDatabase</a>().<a class="code hl_function" href="classripple_1_1RelationalDatabase.html#a21b8bd40f0332c84bf71ef73d32bd91c">getNewestLedgerInfo</a>();</div>
|
||||
<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span> <span class="keywordflow">if</span> (!info)</div>
|
||||
<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"> 1109</span> <span class="keywordflow">return</span> {<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr<Ledger></a>(), {}, {}};</div>
|
||||
<div class="line"><a id="l01110" name="l01110"></a><span class="lineno"> 1110</span> <span class="keywordflow">return</span> {<a class="code hl_function" href="namespaceripple.html#a56e0cc999ed456f36e9662a4fcae5061">loadLedgerHelper</a>(*info, app, <span class="keyword">true</span>), info->seq, info->hash};</div>
|
||||
<div class="line"><a id="l01111" name="l01111"></a><span class="lineno"> 1111</span>}</div>
|
||||
<div class="line"><a id="l01112" name="l01112"></a><span class="lineno"> 1112</span> </div>
|
||||
<div class="line"><a id="l01113" name="l01113"></a><span class="lineno"> 1113</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr<Ledger></a></div>
|
||||
<div class="line"><a id="l01114" name="l01114"></a><span class="lineno"><a class="line" href="namespaceripple.html#a22adb38923282bf7dbb38655afdb381d"> 1114</a></span><a class="code hl_function" href="namespaceripple.html#a22adb38923282bf7dbb38655afdb381d">loadByIndex</a>(<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> ledgerIndex, <a class="code hl_class" href="classripple_1_1Application.html">Application</a>& app, <span class="keywordtype">bool</span> acquire)</div>
|
||||
<div class="line"><a id="l01115" name="l01115"></a><span class="lineno"> 1115</span>{</div>
|
||||
<div class="line"><a id="l01116" name="l01116"></a><span class="lineno"> 1116</span> <span class="keywordflow">if</span> (<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional<LedgerInfo></a> info =</div>
|
||||
<div class="line"><a id="l01117" name="l01117"></a><span class="lineno"> 1117</span> app.<a class="code hl_function" href="classripple_1_1Application.html#ab0e839b597cf03221a393cb754ec4e25">getRelationalDatabase</a>().<a class="code hl_function" href="classripple_1_1RelationalDatabase.html#a388e80415da1da75b45ecf011a64f5dd">getLedgerInfoByIndex</a>(ledgerIndex))</div>
|
||||
<div class="line"><a id="l01118" name="l01118"></a><span class="lineno"> 1118</span> {</div>
|
||||
<div class="line"><a id="l01119" name="l01119"></a><span class="lineno"> 1119</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr<Ledger></a> ledger = <a class="code hl_function" href="namespaceripple.html#a56e0cc999ed456f36e9662a4fcae5061">loadLedgerHelper</a>(*info, app, acquire);</div>
|
||||
<div class="line"><a id="l01120" name="l01120"></a><span class="lineno"> 1120</span> <a class="code hl_function" href="namespaceripple.html#a16f9dbea9c8dfaaaca124cf61c6b6e6d">finishLoadByIndexOrHash</a>(ledger, app.<a class="code hl_function" href="classripple_1_1Application.html#a0c48dd5bcaef14e30e9ef5b96b0daa39">config</a>(), app.<a class="code hl_function" href="classripple_1_1Application.html#a2897c28a5b5040e80e66f676d201d03f">journal</a>(<span class="stringliteral">"Ledger"</span>));</div>
|
||||
<div class="line"><a id="l01121" name="l01121"></a><span class="lineno"> 1121</span> <span class="keywordflow">return</span> ledger;</div>
|
||||
<div class="line"><a id="l01122" name="l01122"></a><span class="lineno"> 1122</span> }</div>
|
||||
<div class="line"><a id="l01123" name="l01123"></a><span class="lineno"> 1123</span> <span class="keywordflow">return</span> {};</div>
|
||||
<div class="line"><a id="l01124" name="l01124"></a><span class="lineno"> 1124</span>}</div>
|
||||
<div class="line"><a id="l01125" name="l01125"></a><span class="lineno"> 1125</span> </div>
|
||||
<div class="line"><a id="l01126" name="l01126"></a><span class="lineno"> 1126</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr<Ledger></a></div>
|
||||
<div class="line"><a id="l01127" name="l01127"></a><span class="lineno"><a class="line" href="namespaceripple.html#a729619e7a3a0d92226e7d52347ff2a5e"> 1127</a></span><a class="code hl_function" href="namespaceripple.html#a729619e7a3a0d92226e7d52347ff2a5e">loadByHash</a>(<a class="code hl_class" href="classripple_1_1base__uint.html">uint256</a> <span class="keyword">const</span>& ledgerHash, <a class="code hl_class" href="classripple_1_1Application.html">Application</a>& app, <span class="keywordtype">bool</span> acquire)</div>
|
||||
<div class="line"><a id="l01128" name="l01128"></a><span class="lineno"> 1128</span>{</div>
|
||||
<div class="line"><a id="l01129" name="l01129"></a><span class="lineno"> 1129</span> <span class="keywordflow">if</span> (<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional<LedgerInfo></a> info =</div>
|
||||
<div class="line"><a id="l01130" name="l01130"></a><span class="lineno"> 1130</span> app.<a class="code hl_function" href="classripple_1_1Application.html#ab0e839b597cf03221a393cb754ec4e25">getRelationalDatabase</a>().<a class="code hl_function" href="classripple_1_1RelationalDatabase.html#ae42b5ec856d806da94e9ebf4560e3ee4">getLedgerInfoByHash</a>(ledgerHash))</div>
|
||||
<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"> 1131</span> {</div>
|
||||
<div class="line"><a id="l01132" name="l01132"></a><span class="lineno"> 1132</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr<Ledger></a> ledger = <a class="code hl_function" href="namespaceripple.html#a56e0cc999ed456f36e9662a4fcae5061">loadLedgerHelper</a>(*info, app, acquire);</div>
|
||||
<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"> 1133</span> <a class="code hl_function" href="namespaceripple.html#a16f9dbea9c8dfaaaca124cf61c6b6e6d">finishLoadByIndexOrHash</a>(ledger, app.<a class="code hl_function" href="classripple_1_1Application.html#a0c48dd5bcaef14e30e9ef5b96b0daa39">config</a>(), app.<a class="code hl_function" href="classripple_1_1Application.html#a2897c28a5b5040e80e66f676d201d03f">journal</a>(<span class="stringliteral">"Ledger"</span>));</div>
|
||||
<div class="line"><a id="l01134" name="l01134"></a><span class="lineno"> 1134</span> XRPL_ASSERT(</div>
|
||||
<div class="line"><a id="l01135" name="l01135"></a><span class="lineno"> 1135</span> !ledger || ledger->info().hash == ledgerHash,</div>
|
||||
<div class="line"><a id="l01136" name="l01136"></a><span class="lineno"> 1136</span> <span class="stringliteral">"ripple::loadByHash : ledger hash match if loaded"</span>);</div>
|
||||
<div class="line"><a id="l01137" name="l01137"></a><span class="lineno"> 1137</span> <span class="keywordflow">return</span> ledger;</div>
|
||||
<div class="line"><a id="l01138" name="l01138"></a><span class="lineno"> 1138</span> }</div>
|
||||
<div class="line"><a id="l01139" name="l01139"></a><span class="lineno"> 1139</span> <span class="keywordflow">return</span> {};</div>
|
||||
<div class="line"><a id="l01140" name="l01140"></a><span class="lineno"> 1140</span>}</div>
|
||||
<div class="line"><a id="l01141" name="l01141"></a><span class="lineno"> 1141</span> </div>
|
||||
<div class="line"><a id="l01142" name="l01142"></a><span class="lineno"> 1142</span>} <span class="comment">// namespace ripple</span></div>
|
||||
<div class="ttc" id="abegin_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/begin.html">std::vector::begin</a></div><div class="ttdeci">T begin(T... args)</div></div>
|
||||
<div class="ttc" id="aclassJson_1_1Value_html"><div class="ttname"><a href="classJson_1_1Value.html">Json::Value</a></div><div class="ttdoc">Represents a JSON value.</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8h_source.html#l00148">json_value.h:149</a></div></div>
|
||||
<div class="ttc" id="aclassbeast_1_1Journal_html"><div class="ttname"><a href="classbeast_1_1Journal.html">beast::Journal</a></div><div class="ttdoc">A generic endpoint for log messages.</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00059">Journal.h:60</a></div></div>
|
||||
@@ -1236,7 +1237,7 @@ $(function() {
|
||||
<div class="ttc" id="aclassripple_1_1Config_html_ae9332e6cb92d29234e11e31e6211af2b"><div class="ttname"><a href="classripple_1_1Config.html#ae9332e6cb92d29234e11e31e6211af2b">ripple::Config::FEE_UNITS_DEPRECATED</a></div><div class="ttdeci">static constexpr std::uint32_t FEE_UNITS_DEPRECATED</div><div class="ttdef"><b>Definition:</b> <a href="Config_8h_source.html#l00160">Config.h:160</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Family_html"><div class="ttname"><a href="classripple_1_1Family.html">ripple::Family</a></div><div class="ttdef"><b>Definition:</b> <a href="Family_8h_source.html#l00033">Family.h:34</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Family_html_ac23fa3820800431370db9197986d70f5"><div class="ttname"><a href="classripple_1_1Family.html#ac23fa3820800431370db9197986d70f5">ripple::Family::missingNodeAcquireByHash</a></div><div class="ttdeci">virtual void missingNodeAcquireByHash(uint256 const &refHash, std::uint32_t refNum)=0</div><div class="ttdoc">Acquire ledger that has a missing node by ledger hash.</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1HashRouter_html_ac43309b8c10713823bdc233f39931472"><div class="ttname"><a href="classripple_1_1HashRouter.html#ac43309b8c10713823bdc233f39931472">ripple::HashRouter::setFlags</a></div><div class="ttdeci">bool setFlags(uint256 const &key, int flags)</div><div class="ttdoc">Set the flags on a hash.</div><div class="ttdef"><b>Definition:</b> <a href="HashRouter_8cpp_source.html#l00103">HashRouter.cpp:103</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1HashRouter_html_a8ee73756ff7f46f1616a2996740abfda"><div class="ttname"><a href="classripple_1_1HashRouter.html#a8ee73756ff7f46f1616a2996740abfda">ripple::HashRouter::setFlags</a></div><div class="ttdeci">bool setFlags(uint256 const &key, HashRouterFlags flags)</div><div class="ttdoc">Set the flags on a hash.</div><div class="ttdef"><b>Definition:</b> <a href="HashRouter_8cpp_source.html#l00106">HashRouter.cpp:106</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1JobQueue_html_af5e34187d55aa58e551dc196aaf1ec25"><div class="ttname"><a href="classripple_1_1JobQueue.html#af5e34187d55aa58e551dc196aaf1ec25">ripple::JobQueue::addJob</a></div><div class="ttdeci">bool addJob(JobType type, std::string const &name, JobHandler &&jobHandler)</div><div class="ttdoc">Adds a job to the JobQueue.</div><div class="ttdef"><b>Definition:</b> <a href="JobQueue_8h_source.html#l00168">JobQueue.h:168</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Ledger_1_1sles__iter__impl_html"><div class="ttname"><a href="classripple_1_1Ledger_1_1sles__iter__impl.html">ripple::Ledger::sles_iter_impl</a></div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l00072">Ledger.cpp:73</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Ledger_1_1sles__iter__impl_html_a3bad353f6791c3b25b28dcdd330360d5"><div class="ttname"><a href="classripple_1_1Ledger_1_1sles__iter__impl.html#a3bad353f6791c3b25b28dcdd330360d5">ripple::Ledger::sles_iter_impl::sles_iter_impl</a></div><div class="ttdeci">sles_iter_impl(sles_iter_impl const &)=default</div></div>
|
||||
@@ -1265,10 +1266,10 @@ $(function() {
|
||||
<div class="ttc" id="aclassripple_1_1Ledger_html_a01fab1196e490d0133b5a4920b271712"><div class="ttname"><a href="classripple_1_1Ledger.html#a01fab1196e490d0133b5a4920b271712">ripple::Ledger::defaultFees</a></div><div class="ttdeci">void defaultFees(Config const &config)</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l00670">Ledger.cpp:670</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Ledger_html_a0432690b8a2af03cd14cf6c07561ea53"><div class="ttname"><a href="classripple_1_1Ledger.html#a0432690b8a2af03cd14cf6c07561ea53">ripple::Ledger::rawTxInsert</a></div><div class="ttdeci">void rawTxInsert(uint256 const &key, std::shared_ptr< Serializer const > const &txn, std::shared_ptr< Serializer const > const &metaData) override</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l00551">Ledger.cpp:551</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Ledger_html_a0b300e04e1cd2c608710d02467f4e7be"><div class="ttname"><a href="classripple_1_1Ledger.html#a0b300e04e1cd2c608710d02467f4e7be">ripple::Ledger::slesUpperBound</a></div><div class="ttdeci">std::unique_ptr< sles_type::iter_base > slesUpperBound(uint256 const &key) const override</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l00463">Ledger.cpp:463</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Ledger_html_a0e6f8ad49de88ce1eb3ffa77ca346c21"><div class="ttname"><a href="classripple_1_1Ledger.html#a0e6f8ad49de88ce1eb3ffa77ca346c21">ripple::Ledger::unshare</a></div><div class="ttdeci">void unshare() const</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l01042">Ledger.cpp:1042</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Ledger_html_a0e6f8ad49de88ce1eb3ffa77ca346c21"><div class="ttname"><a href="classripple_1_1Ledger.html#a0e6f8ad49de88ce1eb3ffa77ca346c21">ripple::Ledger::unshare</a></div><div class="ttdeci">void unshare() const</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l01043">Ledger.cpp:1043</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Ledger_html_a131fb72a0a470e6b493865f9a06762c4"><div class="ttname"><a href="classripple_1_1Ledger.html#a131fb72a0a470e6b493865f9a06762c4">ripple::Ledger::open</a></div><div class="ttdeci">bool open() const override</div><div class="ttdoc">Returns true if this reflects an open ledger.</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8h_source.html#l00146">Ledger.h:146</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Ledger_html_a136b67ea0189f69434c67ebbbffd8e49"><div class="ttname"><a href="classripple_1_1Ledger.html#a136b67ea0189f69434c67ebbbffd8e49">ripple::Ledger::assertSensible</a></div><div class="ttdeci">bool assertSensible(beast::Journal ledgerJ) const</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l00854">Ledger.cpp:854</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Ledger_html_a156082bb161144196934ce455ee404b2"><div class="ttname"><a href="classripple_1_1Ledger.html#a156082bb161144196934ce455ee404b2">ripple::Ledger::invariants</a></div><div class="ttdeci">void invariants() const</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l01049">Ledger.cpp:1049</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Ledger_html_a156082bb161144196934ce455ee404b2"><div class="ttname"><a href="classripple_1_1Ledger.html#a156082bb161144196934ce455ee404b2">ripple::Ledger::invariants</a></div><div class="ttdeci">void invariants() const</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l01050">Ledger.cpp:1050</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Ledger_html_a196e844a1c5a015af934bd864690a1e2"><div class="ttname"><a href="classripple_1_1Ledger.html#a196e844a1c5a015af934bd864690a1e2">ripple::Ledger::exists</a></div><div class="ttdeci">bool exists(Keylet const &k) const override</div><div class="ttdoc">Determine if a state item exists.</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l00408">Ledger.cpp:408</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Ledger_html_a210375076ddca23b7374efea0b34de4a"><div class="ttname"><a href="classripple_1_1Ledger.html#a210375076ddca23b7374efea0b34de4a">ripple::Ledger::rawReplace</a></div><div class="ttdeci">void rawReplace(std::shared_ptr< SLE > const &sle) override</div><div class="ttdoc">Unconditionally replace a state item.</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l00540">Ledger.cpp:540</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Ledger_html_a220660a0e999b374e502b117ae93833f"><div class="ttname"><a href="classripple_1_1Ledger.html#a220660a0e999b374e502b117ae93833f">ripple::Ledger::slesEnd</a></div><div class="ttdeci">std::unique_ptr< sles_type::iter_base > slesEnd() const override</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l00457">Ledger.cpp:457</a></div></div>
|
||||
@@ -1378,10 +1379,10 @@ $(function() {
|
||||
<div class="ttc" id="anamespaceripple_1_1keylet_html_acda2d89a44551845c5be38291e5c9e8b"><div class="ttname"><a href="namespaceripple_1_1keylet.html#acda2d89a44551845c5be38291e5c9e8b">ripple::keylet::skip</a></div><div class="ttdeci">Keylet const & skip() noexcept</div><div class="ttdoc">The index of the "short" skip list.</div><div class="ttdef"><b>Definition:</b> <a href="Indexes_8cpp_source.html#l00196">Indexes.cpp:196</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html"><div class="ttname"><a href="namespaceripple.html">ripple</a></div><div class="ttdoc">Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="algorithm_8h_source.html#l00025">algorithm.h:25</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a02bb3582ce5e2941c4b4dcea4586db72"><div class="ttname"><a href="namespaceripple.html#a02bb3582ce5e2941c4b4dcea4586db72">ripple::getCloseAgree</a></div><div class="ttdeci">bool getCloseAgree(LedgerHeader const &info)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerHeader_8h_source.html#l00085">LedgerHeader.h:85</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a04cf5c0dd5329bc0e0203fb86cf91ed3"><div class="ttname"><a href="namespaceripple.html#a04cf5c0dd5329bc0e0203fb86cf91ed3">ripple::getLatestLedger</a></div><div class="ttdeci">std::tuple< std::shared_ptr< Ledger >, std::uint32_t, uint256 > getLatestLedger(Application &app)</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l01103">Ledger.cpp:1103</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a04cf5c0dd5329bc0e0203fb86cf91ed3"><div class="ttname"><a href="namespaceripple.html#a04cf5c0dd5329bc0e0203fb86cf91ed3">ripple::getLatestLedger</a></div><div class="ttdeci">std::tuple< std::shared_ptr< Ledger >, std::uint32_t, uint256 > getLatestLedger(Application &app)</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l01104">Ledger.cpp:1104</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a14e7e734c717f4c4459e0e0da6a4ad87"><div class="ttname"><a href="namespaceripple.html#a14e7e734c717f4c4459e0e0da6a4ad87">ripple::deserializeTxPlusMeta</a></div><div class="ttdeci">std::pair< std::shared_ptr< STTx const >, std::shared_ptr< STObject const > > deserializeTxPlusMeta(SHAMapItem const &item)</div><div class="ttdoc">Deserialize a SHAMapItem containing STTx + STObject metadata.</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l00389">Ledger.cpp:389</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a16f9dbea9c8dfaaaca124cf61c6b6e6d"><div class="ttname"><a href="namespaceripple.html#a16f9dbea9c8dfaaaca124cf61c6b6e6d">ripple::finishLoadByIndexOrHash</a></div><div class="ttdeci">static void finishLoadByIndexOrHash(std::shared_ptr< Ledger > const &ledger, Config const &config, beast::Journal j)</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l01083">Ledger.cpp:1083</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< Ledger > loadByIndex(std::uint32_t ledgerIndex, Application &app, bool acquire)</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l01113">Ledger.cpp:1113</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a16f9dbea9c8dfaaaca124cf61c6b6e6d"><div class="ttname"><a href="namespaceripple.html#a16f9dbea9c8dfaaaca124cf61c6b6e6d">ripple::finishLoadByIndexOrHash</a></div><div class="ttdeci">static void finishLoadByIndexOrHash(std::shared_ptr< Ledger > const &ledger, Config const &config, beast::Journal j)</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l01084">Ledger.cpp:1084</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< Ledger > loadByIndex(std::uint32_t ledgerIndex, Application &app, bool acquire)</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l01114">Ledger.cpp:1114</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a32e911b97d6debe8943c81e6fdf59573"><div class="ttname"><a href="namespaceripple.html#a32e911b97d6debe8943c81e6fdf59573">ripple::generateKeyPair</a></div><div class="ttdeci">std::pair< PublicKey, SecretKey > generateKeyPair(KeyType type, Seed const &seed)</div><div class="ttdoc">Generate a key pair deterministically.</div><div class="ttdef"><b>Definition:</b> <a href="SecretKey_8cpp_source.html#l00369">SecretKey.cpp:369</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a33d37a32d6220d610aa99faea1048627"><div class="ttname"><a href="namespaceripple.html#a33d37a32d6220d610aa99faea1048627">ripple::deserializeTx</a></div><div class="ttdeci">std::shared_ptr< STTx const > deserializeTx(SHAMapItem const &item)</div><div class="ttdoc">Deserialize a SHAMapItem containing a single STTx.</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l00382">Ledger.cpp:382</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a356c68147333a9a48a344718038576d9"><div class="ttname"><a href="namespaceripple.html#a356c68147333a9a48a344718038576d9">ripple::uint256</a></div><div class="ttdeci">base_uint< 256 > uint256</div><div class="ttdef"><b>Definition:</b> <a href="base__uint_8h_source.html#l00558">base_uint.h:558</a></div></div>
|
||||
@@ -1389,7 +1390,7 @@ $(function() {
|
||||
<div class="ttc" id="anamespaceripple_html_a45507a299fab4f0506b9fcf559fddae3"><div class="ttname"><a href="namespaceripple.html#a45507a299fab4f0506b9fcf559fddae3">ripple::roundCloseTime</a></div><div class="ttdeci">std::chrono::time_point< Clock, Duration > roundCloseTime(std::chrono::time_point< Clock, Duration > closeTime, std::chrono::duration< Rep, Period > closeResolution)</div><div class="ttdoc">Calculates the close time for a ledger, given a close time resolution.</div><div class="ttdef"><b>Definition:</b> <a href="LedgerTiming_8h_source.html#l00133">LedgerTiming.h:133</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a4574aa8b71b4bb8afc56cf6daff9ca86"><div class="ttname"><a href="namespaceripple.html#a4574aa8b71b4bb8afc56cf6daff9ca86">ripple::saveValidatedLedger</a></div><div class="ttdeci">static bool saveValidatedLedger(Application &app, std::shared_ptr< Ledger const > const &ledger, bool current)</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l00963">Ledger.cpp:963</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a55a2a537e79363b71783d5f6eaca5abf"><div class="ttname"><a href="namespaceripple.html#a55a2a537e79363b71783d5f6eaca5abf">ripple::INITIAL_XRP</a></div><div class="ttdeci">constexpr XRPAmount INITIAL_XRP</div><div class="ttdoc">Configure the native currency.</div><div class="ttdef"><b>Definition:</b> <a href="SystemParameters_8h_source.html#l00044">SystemParameters.h:44</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a56e0cc999ed456f36e9662a4fcae5061"><div class="ttname"><a href="namespaceripple.html#a56e0cc999ed456f36e9662a4fcae5061">ripple::loadLedgerHelper</a></div><div class="ttdeci">std::shared_ptr< Ledger > loadLedgerHelper(LedgerInfo const &info, Application &app, bool acquire)</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l01065">Ledger.cpp:1065</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a56e0cc999ed456f36e9662a4fcae5061"><div class="ttname"><a href="namespaceripple.html#a56e0cc999ed456f36e9662a4fcae5061">ripple::loadLedgerHelper</a></div><div class="ttdeci">std::shared_ptr< Ledger > loadLedgerHelper(LedgerInfo const &info, Application &app, bool acquire)</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l01066">Ledger.cpp:1066</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a57d7e7b27df7e719fdf5569f96be60a3a65cfe147458030070724c8b3795e508f"><div class="ttname"><a href="namespaceripple.html#a57d7e7b27df7e719fdf5569f96be60a3a65cfe147458030070724c8b3795e508f">ripple::hotACCOUNT_NODE</a></div><div class="ttdeci">@ hotACCOUNT_NODE</div><div class="ttdef"><b>Definition:</b> <a href="NodeObject_8h_source.html#l00035">NodeObject.h:35</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a5d9fe757c37a7602a883d30b14e1bf3c"><div class="ttname"><a href="namespaceripple.html#a5d9fe757c37a7602a883d30b14e1bf3c">ripple::SHAMapType</a></div><div class="ttdeci">SHAMapType</div><div class="ttdef"><b>Definition:</b> <a href="SHAMapMissingNode_8h_source.html#l00034">SHAMapMissingNode.h:34</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a5d9fe757c37a7602a883d30b14e1bf3ca2b848a8cc886d253d21a77c43cd50aae"><div class="ttname"><a href="namespaceripple.html#a5d9fe757c37a7602a883d30b14e1bf3ca2b848a8cc886d253d21a77c43cd50aae">ripple::SHAMapType::STATE</a></div><div class="ttdeci">@ STATE</div></div>
|
||||
@@ -1399,8 +1400,9 @@ $(function() {
|
||||
<div class="ttc" id="anamespaceripple_html_a6fc7a232cc9b90d4b5846057977fcf63"><div class="ttname"><a href="namespaceripple.html#a6fc7a232cc9b90d4b5846057977fcf63">ripple::XRP_LEDGER_EARLIEST_FEES</a></div><div class="ttdeci">static constexpr std::uint32_t XRP_LEDGER_EARLIEST_FEES</div><div class="ttdoc">The XRP Ledger mainnet's earliest ledger with a FeeSettings object.</div><div class="ttdef"><b>Definition:</b> <a href="SystemParameters_8h_source.html#l00074">SystemParameters.h:74</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a70a22962c62019bd1d5728e3ba21d032"><div class="ttname"><a href="namespaceripple.html#a70a22962c62019bd1d5728e3ba21d032">ripple::ledgerDefaultTimeResolution</a></div><div class="ttdeci">auto constexpr ledgerDefaultTimeResolution</div><div class="ttdoc">Initial resolution of ledger close time.</div><div class="ttdef"><b>Definition:</b> <a href="LedgerTiming_8h_source.html#l00044">LedgerTiming.h:44</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a71f5c3f4baec0e09c5eab4d6f5b5efcb"><div class="ttname"><a href="namespaceripple.html#a71f5c3f4baec0e09c5eab4d6f5b5efcb">ripple::calculateLedgerHash</a></div><div class="ttdeci">uint256 calculateLedgerHash(LedgerInfo const &info)</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l00054">Ledger.cpp:54</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< Ledger > loadByHash(uint256 const &ledgerHash, Application &app, bool acquire)</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l01126">Ledger.cpp:1126</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< Ledger > loadByHash(uint256 const &ledgerHash, Application &app, bool acquire)</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l01127">Ledger.cpp:1127</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a77adb10ef53a2e25195ccd38b46bfe9ba7cef8a734855777c2a9d0caf42666e69"><div class="ttname"><a href="namespaceripple.html#a77adb10ef53a2e25195ccd38b46bfe9ba7cef8a734855777c2a9d0caf42666e69">ripple::ConsensusPhase::open</a></div><div class="ttdeci">@ open</div><div class="ttdoc">We haven't closed our ledger yet, but others might have.</div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a79683ec651b1658886d9c9ce8434f972aec09e9e688c30b57cd64c0180da5c34a"><div class="ttname"><a href="namespaceripple.html#a79683ec651b1658886d9c9ce8434f972aec09e9e688c30b57cd64c0180da5c34a">ripple::HashRouterFlags::SAVED</a></div><div class="ttdeci">@ SAVED</div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a798e187ba7443d8f951b810a12d50976"><div class="ttname"><a href="namespaceripple.html#a798e187ba7443d8f951b810a12d50976">ripple::publicKeyType</a></div><div class="ttdeci">std::optional< KeyType > publicKeyType(Slice const &slice)</div><div class="ttdoc">Returns the type of public key.</div><div class="ttdef"><b>Definition:</b> <a href="PublicKey_8cpp_source.html#l00223">PublicKey.cpp:223</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a81aef0121745f69cf76b866c91c2639c"><div class="ttname"><a href="namespaceripple.html#a81aef0121745f69cf76b866c91c2639c">ripple::isFlagLedger</a></div><div class="ttdeci">bool isFlagLedger(LedgerIndex seq)</div><div class="ttdoc">Returns true if the given ledgerIndex is a flag ledgerIndex.</div><div class="ttdef"><b>Definition:</b> <a href="Ledger_8cpp_source.html#l00957">Ledger.cpp:957</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a82e58c7a4ba5450436885574fb2fd4f5"><div class="ttname"><a href="namespaceripple.html#a82e58c7a4ba5450436885574fb2fd4f5">ripple::ledgerGenesisTimeResolution</a></div><div class="ttdeci">auto constexpr ledgerGenesisTimeResolution</div><div class="ttdoc">Close time resolution in genesis ledger.</div><div class="ttdef"><b>Definition:</b> <a href="LedgerTiming_8h_source.html#l00047">LedgerTiming.h:47</a></div></div>
|
||||
|
||||
Reference in New Issue
Block a user