This commit is contained in:
bthomee
2026-02-06 06:45:38 -08:00
parent 3e360fd4db
commit d09dbe4d61
1193 changed files with 8565 additions and 9065 deletions

View File

@@ -190,125 +190,116 @@ $(document).ready(function() { init_codefold(0); });
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span>}</div>
</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="keywordtype">void</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;NodeObject&gt;</a></div>
<div class="foldopen" id="foldopen00097" data-start="{" data-end="}">
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"><a class="line" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#aaf35e424e99343b9a55300ba6a9c6554"> 97</a></span><a class="code hl_function" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#aaf35e424e99343b9a55300ba6a9c6554">DatabaseRotatingImp::sweep</a>()</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"><a class="line" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#af63eeb1a17722aac012e4dbf05acb3cf"> 97</a></span><a class="code hl_function" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#af63eeb1a17722aac012e4dbf05acb3cf">DatabaseRotatingImp::fetchNodeObject</a>(<a class="code hl_class" href="classxrpl_1_1base__uint.html">uint256</a> <span class="keyword">const</span>&amp; hash, <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>, <a class="code hl_struct" href="structxrpl_1_1NodeStore_1_1FetchReport.html">FetchReport</a>&amp; fetchReport, <span class="keywordtype">bool</span> duplicate)</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span>{</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="comment">// nothing to do</span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span>}</div>
</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> </div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;NodeObject&gt;</a></div>
<div class="foldopen" id="foldopen00103" data-start="{" data-end="}">
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"><a class="line" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#af63eeb1a17722aac012e4dbf05acb3cf"> 103</a></span><a class="code hl_function" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#af63eeb1a17722aac012e4dbf05acb3cf">DatabaseRotatingImp::fetchNodeObject</a>(<a class="code hl_class" href="classxrpl_1_1base__uint.html">uint256</a> <span class="keyword">const</span>&amp; hash, <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>, <a class="code hl_struct" href="structxrpl_1_1NodeStore_1_1FetchReport.html">FetchReport</a>&amp; fetchReport, <span class="keywordtype">bool</span> duplicate)</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span>{</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">auto</span> fetch = [&amp;](<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;Backend&gt;</a> <span class="keyword">const</span>&amp; backend) {</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <a class="code hl_enumeration" href="namespacexrpl_1_1NodeStore.html#a4883b8bc797bf7591fde489676a6e96b">Status</a> status;</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;NodeObject&gt;</a> nodeObject;</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="keywordflow">try</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> {</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> status = backend-&gt;fetch(hash.<a class="code hl_function" href="classxrpl_1_1base__uint.html#abafa79f01042304ef1af73e625d4f515">data</a>(), &amp;nodeObject);</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> }</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="keywordflow">catch</span> (<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/error/exception.html">std::exception</a> <span class="keyword">const</span>&amp; e)</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keyword">auto</span> fetch = [&amp;](<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;Backend&gt;</a> <span class="keyword">const</span>&amp; backend) {</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <a class="code hl_enumeration" href="namespacexrpl_1_1NodeStore.html#a4883b8bc797bf7591fde489676a6e96b">Status</a> status;</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;NodeObject&gt;</a> nodeObject;</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordflow">try</span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> {</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> status = backend-&gt;fetch(hash.<a class="code hl_function" href="classxrpl_1_1base__uint.html#abafa79f01042304ef1af73e625d4f515">data</a>(), &amp;nodeObject);</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> }</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="keywordflow">catch</span> (<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/error/exception.html">std::exception</a> <span class="keyword">const</span>&amp; e)</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> {</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> JLOG(<a class="code hl_variable" href="classxrpl_1_1NodeStore_1_1Database.html#a51a71f2e714bad4a321a4567cec1c785">j_</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) &lt;&lt; <span class="stringliteral">&quot;Exception, &quot;</span> &lt;&lt; e.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/error/exception/what.html">what</a>();</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <a class="code hl_function" href="namespacexrpl.html#addcb7706101a4cac409ab00b3052e86f">Rethrow</a>();</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> }</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> </div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="keywordflow">switch</span> (status)</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> {</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> JLOG(<a class="code hl_variable" href="classxrpl_1_1NodeStore_1_1Database.html#a51a71f2e714bad4a321a4567cec1c785">j_</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) &lt;&lt; <span class="stringliteral">&quot;Exception, &quot;</span> &lt;&lt; e.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/error/exception/what.html">what</a>();</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <a class="code hl_function" href="namespacexrpl.html#addcb7706101a4cac409ab00b3052e86f">Rethrow</a>();</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> }</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> </div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keywordflow">switch</span> (status)</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> {</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespacexrpl_1_1NodeStore.html#a4883b8bc797bf7591fde489676a6e96ba4dd62c7740eda7a1c3cc0ec8f3c9d84e">ok</a>:</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespacexrpl_1_1NodeStore.html#a4883b8bc797bf7591fde489676a6e96ba42539583967afeb33b55afda69c39b09">notFound</a>:</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespacexrpl_1_1NodeStore.html#a4883b8bc797bf7591fde489676a6e96ba4dd62c7740eda7a1c3cc0ec8f3c9d84e">ok</a>:</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespacexrpl_1_1NodeStore.html#a4883b8bc797bf7591fde489676a6e96ba42539583967afeb33b55afda69c39b09">notFound</a>:</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespacexrpl_1_1NodeStore.html#a4883b8bc797bf7591fde489676a6e96ba878c28247feef60bd282c5632ebba888">dataCorrupt</a>:</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> JLOG(<a class="code hl_variable" href="classxrpl_1_1NodeStore_1_1Database.html#a51a71f2e714bad4a321a4567cec1c785">j_</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) &lt;&lt; <span class="stringliteral">&quot;Corrupt NodeObject #&quot;</span> &lt;&lt; hash;</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> JLOG(<a class="code hl_variable" href="classxrpl_1_1NodeStore_1_1Database.html#a51a71f2e714bad4a321a4567cec1c785">j_</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#ad8fefe3e8ad583e1ed1bf02094ac3d8f">warn</a>()) &lt;&lt; <span class="stringliteral">&quot;Unknown status=&quot;</span> &lt;&lt; status;</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespacexrpl_1_1NodeStore.html#a4883b8bc797bf7591fde489676a6e96ba878c28247feef60bd282c5632ebba888">dataCorrupt</a>:</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> JLOG(<a class="code hl_variable" href="classxrpl_1_1NodeStore_1_1Database.html#a51a71f2e714bad4a321a4567cec1c785">j_</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) &lt;&lt; <span class="stringliteral">&quot;Corrupt NodeObject #&quot;</span> &lt;&lt; hash;</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> JLOG(<a class="code hl_variable" href="classxrpl_1_1NodeStore_1_1Database.html#a51a71f2e714bad4a321a4567cec1c785">j_</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#ad8fefe3e8ad583e1ed1bf02094ac3d8f">warn</a>()) &lt;&lt; <span class="stringliteral">&quot;Unknown status=&quot;</span> &lt;&lt; status;</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> }</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> }</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> </div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">return</span> nodeObject;</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> };</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> </div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="comment">// See if the node object exists in the cache</span></div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;NodeObject&gt;</a> nodeObject;</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> </div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keywordflow">return</span> nodeObject;</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> };</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> </div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="comment">// See if the node object exists in the cache</span></div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;NodeObject&gt;</a> nodeObject;</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> </div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">auto</span> [writable, archive] = [&amp;] {</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(<a class="code hl_variable" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#a4c97e887417f06c97d3f6af8838dcf50">mutex_</a>);</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keywordflow">return</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html">std::make_pair</a>(<a class="code hl_variable" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#abb4b75a5b487d39e3d925c6e6fc8c456">writableBackend_</a>, <a class="code hl_variable" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#a06afbc5ce6a1cab1aece3926b8f36bed">archiveBackend_</a>);</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> }();</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> </div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="comment">// Try to fetch from the writable backend</span></div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> nodeObject = fetch(writable);</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keywordflow">if</span> (!nodeObject)</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> {</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> <span class="comment">// Otherwise try to fetch from the archive backend</span></div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> nodeObject = fetch(archive);</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="keywordflow">if</span> (nodeObject)</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> {</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> {</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="comment">// Refresh the writable backend pointer</span></div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(<a class="code hl_variable" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#a4c97e887417f06c97d3f6af8838dcf50">mutex_</a>);</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> writable = <a class="code hl_variable" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#abb4b75a5b487d39e3d925c6e6fc8c456">writableBackend_</a>;</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> }</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keyword">auto</span> [writable, archive] = [&amp;] {</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(<a class="code hl_variable" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#a4c97e887417f06c97d3f6af8838dcf50">mutex_</a>);</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keywordflow">return</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html">std::make_pair</a>(<a class="code hl_variable" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#abb4b75a5b487d39e3d925c6e6fc8c456">writableBackend_</a>, <a class="code hl_variable" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#a06afbc5ce6a1cab1aece3926b8f36bed">archiveBackend_</a>);</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> }();</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> </div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="comment">// Try to fetch from the writable backend</span></div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> nodeObject = fetch(writable);</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="keywordflow">if</span> (!nodeObject)</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> {</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> <span class="comment">// Otherwise try to fetch from the archive backend</span></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> nodeObject = fetch(archive);</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keywordflow">if</span> (nodeObject)</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> {</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> {</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <span class="comment">// Refresh the writable backend pointer</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(<a class="code hl_variable" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#a4c97e887417f06c97d3f6af8838dcf50">mutex_</a>);</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> writable = <a class="code hl_variable" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#abb4b75a5b487d39e3d925c6e6fc8c456">writableBackend_</a>;</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> }</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> </div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <span class="comment">// Update writable backend with data from the archive backend</span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="keywordflow">if</span> (duplicate)</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> writable-&gt;store(nodeObject);</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> }</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> }</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> </div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="comment">// Update writable backend with data from the archive backend</span></div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <span class="keywordflow">if</span> (duplicate)</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> writable-&gt;store(nodeObject);</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> }</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> }</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keywordflow">if</span> (nodeObject)</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> fetchReport.<a class="code hl_variable" href="structxrpl_1_1NodeStore_1_1FetchReport.html#acbb721c85531628e86f3bd96455f17b3">wasFound</a> = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> </div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <span class="keywordflow">return</span> nodeObject;</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span>}</div>
</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> </div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="keywordflow">if</span> (nodeObject)</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> fetchReport.<a class="code hl_variable" href="structxrpl_1_1NodeStore_1_1FetchReport.html#acbb721c85531628e86f3bd96455f17b3">wasFound</a> = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keywordflow">return</span> nodeObject;</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span>}</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span><span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00163" data-start="{" data-end="}">
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"><a class="line" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#af234a7c7523b52a6e6542d24db968f42"> 163</a></span><a class="code hl_function" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#af234a7c7523b52a6e6542d24db968f42">DatabaseRotatingImp::for_each</a>(<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt;<span class="keywordtype">void</span>(<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;NodeObject&gt;</a>)&gt; f)</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span>{</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keyword">auto</span> [writable, archive] = [&amp;] {</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(<a class="code hl_variable" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#a4c97e887417f06c97d3f6af8838dcf50">mutex_</a>);</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <span class="keywordflow">return</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html">std::make_pair</a>(<a class="code hl_variable" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#abb4b75a5b487d39e3d925c6e6fc8c456">writableBackend_</a>, <a class="code hl_variable" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#a06afbc5ce6a1cab1aece3926b8f36bed">archiveBackend_</a>);</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> }();</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> </div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <span class="comment">// Iterate the writable backend</span></div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> writable-&gt;for_each(f);</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> </div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="comment">// Iterate the archive backend</span></div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> archive-&gt;for_each(f);</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span>}</div>
</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> </div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span><span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00169" data-start="{" data-end="}">
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"><a class="line" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#af234a7c7523b52a6e6542d24db968f42"> 169</a></span><a class="code hl_function" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#af234a7c7523b52a6e6542d24db968f42">DatabaseRotatingImp::for_each</a>(<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt;<span class="keywordtype">void</span>(<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;NodeObject&gt;</a>)&gt; f)</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span>{</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">auto</span> [writable, archive] = [&amp;] {</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(<a class="code hl_variable" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#a4c97e887417f06c97d3f6af8838dcf50">mutex_</a>);</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordflow">return</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html">std::make_pair</a>(<a class="code hl_variable" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#abb4b75a5b487d39e3d925c6e6fc8c456">writableBackend_</a>, <a class="code hl_variable" href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#a06afbc5ce6a1cab1aece3926b8f36bed">archiveBackend_</a>);</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> }();</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> </div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <span class="comment">// Iterate the writable backend</span></div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> writable-&gt;for_each(f);</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> </div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <span class="comment">// Iterate the archive backend</span></div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> archive-&gt;for_each(f);</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span>}</div>
</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> </div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span>} <span class="comment">// namespace NodeStore</span></div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span>} <span class="comment">// namespace xrpl</span></div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span>} <span class="comment">// namespace NodeStore</span></div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span>} <span class="comment">// namespace xrpl</span></div>
<div class="ttc" id="abasic_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</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#l00039">Journal.h:40</a></div></div>
<div class="ttc" id="aclassbeast_1_1Journal_html_a3dfb8e2e3eecccdb5cf78ff21bca069c"><div class="ttname"><a href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">beast::Journal::fatal</a></div><div class="ttdeci">Stream fatal() const</div><div class="ttdef"><b>Definition</b> <a href="Journal_8h_source.html#l00324">Journal.h:324</a></div></div>
<div class="ttc" id="aclassbeast_1_1Journal_html_ad8fefe3e8ad583e1ed1bf02094ac3d8f"><div class="ttname"><a href="classbeast_1_1Journal.html#ad8fefe3e8ad583e1ed1bf02094ac3d8f">beast::Journal::warn</a></div><div class="ttdeci">Stream warn() const</div><div class="ttdef"><b>Definition</b> <a href="Journal_8h_source.html#l00312">Journal.h:312</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeObject_html_a728cb3a174442ab94254cdb5ff1e8fe1"><div class="ttname"><a href="classxrpl_1_1NodeObject.html#a728cb3a174442ab94254cdb5ff1e8fe1">xrpl::NodeObject::createObject</a></div><div class="ttdeci">static std::shared_ptr&lt; NodeObject &gt; createObject(NodeObjectType type, Blob &amp;&amp;data, uint256 const &amp;hash)</div><div class="ttdoc">Create an object from fields.</div><div class="ttdef"><b>Definition</b> <a href="NodeObject_8cpp_source.html#l00015">NodeObject.cpp:15</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1DatabaseRotatingImp_html_a06afbc5ce6a1cab1aece3926b8f36bed"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#a06afbc5ce6a1cab1aece3926b8f36bed">xrpl::NodeStore::DatabaseRotatingImp::archiveBackend_</a></div><div class="ttdeci">std::shared_ptr&lt; Backend &gt; archiveBackend_</div><div class="ttdef"><b>Definition</b> <a href="DatabaseRotatingImp_8h_source.html#l00063">DatabaseRotatingImp.h:63</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1DatabaseRotatingImp_html_a4c97e887417f06c97d3f6af8838dcf50"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#a4c97e887417f06c97d3f6af8838dcf50">xrpl::NodeStore::DatabaseRotatingImp::mutex_</a></div><div class="ttdeci">std::mutex mutex_</div><div class="ttdef"><b>Definition</b> <a href="DatabaseRotatingImp_8h_source.html#l00064">DatabaseRotatingImp.h:64</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1DatabaseRotatingImp_html_a06afbc5ce6a1cab1aece3926b8f36bed"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#a06afbc5ce6a1cab1aece3926b8f36bed">xrpl::NodeStore::DatabaseRotatingImp::archiveBackend_</a></div><div class="ttdeci">std::shared_ptr&lt; Backend &gt; archiveBackend_</div><div class="ttdef"><b>Definition</b> <a href="DatabaseRotatingImp_8h_source.html#l00060">DatabaseRotatingImp.h:60</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1DatabaseRotatingImp_html_a4c97e887417f06c97d3f6af8838dcf50"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#a4c97e887417f06c97d3f6af8838dcf50">xrpl::NodeStore::DatabaseRotatingImp::mutex_</a></div><div class="ttdeci">std::mutex mutex_</div><div class="ttdef"><b>Definition</b> <a href="DatabaseRotatingImp_8h_source.html#l00061">DatabaseRotatingImp.h:61</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1DatabaseRotatingImp_html_a73985038af78c60364eb6d0565260b76"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#a73985038af78c60364eb6d0565260b76">xrpl::NodeStore::DatabaseRotatingImp::getWriteLoad</a></div><div class="ttdeci">std::int32_t getWriteLoad() const override</div><div class="ttdoc">Retrieve the estimated number of pending write operations.</div><div class="ttdef"><b>Definition</b> <a href="DatabaseRotatingImp_8cpp_source.html#l00058">DatabaseRotatingImp.cpp:58</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1DatabaseRotatingImp_html_a9ce90dfb8a4feb6c04328e3e93b33d51"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#a9ce90dfb8a4feb6c04328e3e93b33d51">xrpl::NodeStore::DatabaseRotatingImp::importDatabase</a></div><div class="ttdeci">void importDatabase(Database &amp;source) override</div><div class="ttdoc">Import objects from another database.</div><div class="ttdef"><b>Definition</b> <a href="DatabaseRotatingImp_8cpp_source.html#l00065">DatabaseRotatingImp.cpp:65</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1DatabaseRotatingImp_html_aaf35e424e99343b9a55300ba6a9c6554"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#aaf35e424e99343b9a55300ba6a9c6554">xrpl::NodeStore::DatabaseRotatingImp::sweep</a></div><div class="ttdeci">void sweep() override</div><div class="ttdoc">Remove expired entries from the positive and negative caches.</div><div class="ttdef"><b>Definition</b> <a href="DatabaseRotatingImp_8cpp_source.html#l00097">DatabaseRotatingImp.cpp:97</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1DatabaseRotatingImp_html_abb4b75a5b487d39e3d925c6e6fc8c456"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#abb4b75a5b487d39e3d925c6e6fc8c456">xrpl::NodeStore::DatabaseRotatingImp::writableBackend_</a></div><div class="ttdeci">std::shared_ptr&lt; Backend &gt; writableBackend_</div><div class="ttdef"><b>Definition</b> <a href="DatabaseRotatingImp_8h_source.html#l00062">DatabaseRotatingImp.h:62</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1DatabaseRotatingImp_html_abb4b75a5b487d39e3d925c6e6fc8c456"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#abb4b75a5b487d39e3d925c6e6fc8c456">xrpl::NodeStore::DatabaseRotatingImp::writableBackend_</a></div><div class="ttdeci">std::shared_ptr&lt; Backend &gt; writableBackend_</div><div class="ttdef"><b>Definition</b> <a href="DatabaseRotatingImp_8h_source.html#l00059">DatabaseRotatingImp.h:59</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1DatabaseRotatingImp_html_ad68282e2cc4961c49819afb74118bb2f"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#ad68282e2cc4961c49819afb74118bb2f">xrpl::NodeStore::DatabaseRotatingImp::rotate</a></div><div class="ttdeci">void rotate(std::unique_ptr&lt; NodeStore::Backend &gt; &amp;&amp;newBackend, std::function&lt; void(std::string const &amp;writableName, std::string const &amp;archiveName)&gt; const &amp;f) override</div><div class="ttdoc">Rotates the backends.</div><div class="ttdef"><b>Definition</b> <a href="DatabaseRotatingImp_8cpp_source.html#l00024">DatabaseRotatingImp.cpp:24</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1DatabaseRotatingImp_html_af03705ab69b250696f93358fdd584d36"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#af03705ab69b250696f93358fdd584d36">xrpl::NodeStore::DatabaseRotatingImp::getName</a></div><div class="ttdeci">std::string getName() const override</div><div class="ttdoc">Retrieve the name associated with this backend.</div><div class="ttdef"><b>Definition</b> <a href="DatabaseRotatingImp_8cpp_source.html#l00051">DatabaseRotatingImp.cpp:51</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1DatabaseRotatingImp_html_af234a7c7523b52a6e6542d24db968f42"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#af234a7c7523b52a6e6542d24db968f42">xrpl::NodeStore::DatabaseRotatingImp::for_each</a></div><div class="ttdeci">void for_each(std::function&lt; void(std::shared_ptr&lt; NodeObject &gt;)&gt; f) override</div><div class="ttdoc">Visit every object in the database This is usually called during import.</div><div class="ttdef"><b>Definition</b> <a href="DatabaseRotatingImp_8cpp_source.html#l00169">DatabaseRotatingImp.cpp:169</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1DatabaseRotatingImp_html_af63eeb1a17722aac012e4dbf05acb3cf"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#af63eeb1a17722aac012e4dbf05acb3cf">xrpl::NodeStore::DatabaseRotatingImp::fetchNodeObject</a></div><div class="ttdeci">std::shared_ptr&lt; NodeObject &gt; fetchNodeObject(uint256 const &amp;hash, std::uint32_t, FetchReport &amp;fetchReport, bool duplicate) override</div><div class="ttdef"><b>Definition</b> <a href="DatabaseRotatingImp_8cpp_source.html#l00103">DatabaseRotatingImp.cpp:103</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1DatabaseRotatingImp_html_af234a7c7523b52a6e6542d24db968f42"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#af234a7c7523b52a6e6542d24db968f42">xrpl::NodeStore::DatabaseRotatingImp::for_each</a></div><div class="ttdeci">void for_each(std::function&lt; void(std::shared_ptr&lt; NodeObject &gt;)&gt; f) override</div><div class="ttdoc">Visit every object in the database This is usually called during import.</div><div class="ttdef"><b>Definition</b> <a href="DatabaseRotatingImp_8cpp_source.html#l00163">DatabaseRotatingImp.cpp:163</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1DatabaseRotatingImp_html_af63eeb1a17722aac012e4dbf05acb3cf"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#af63eeb1a17722aac012e4dbf05acb3cf">xrpl::NodeStore::DatabaseRotatingImp::fetchNodeObject</a></div><div class="ttdeci">std::shared_ptr&lt; NodeObject &gt; fetchNodeObject(uint256 const &amp;hash, std::uint32_t, FetchReport &amp;fetchReport, bool duplicate) override</div><div class="ttdef"><b>Definition</b> <a href="DatabaseRotatingImp_8cpp_source.html#l00097">DatabaseRotatingImp.cpp:97</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1DatabaseRotatingImp_html_af7031c48be8165737ce2f4d9fada390e"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#af7031c48be8165737ce2f4d9fada390e">xrpl::NodeStore::DatabaseRotatingImp::store</a></div><div class="ttdeci">void store(NodeObjectType type, Blob &amp;&amp;data, uint256 const &amp;hash, std::uint32_t) override</div><div class="ttdoc">Store the object.</div><div class="ttdef"><b>Definition</b> <a href="DatabaseRotatingImp_8cpp_source.html#l00083">DatabaseRotatingImp.cpp:83</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1DatabaseRotatingImp_html_afc8d15540c1ba64d2bdc1bbddfa2cabe"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#afc8d15540c1ba64d2bdc1bbddfa2cabe">xrpl::NodeStore::DatabaseRotatingImp::sync</a></div><div class="ttdeci">void sync() override</div><div class="ttdef"><b>Definition</b> <a href="DatabaseRotatingImp_8cpp_source.html#l00076">DatabaseRotatingImp.cpp:76</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1DatabaseRotatingImp_html_afd5e9ba33cacfcbff8db3bc944a2fca5"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1DatabaseRotatingImp.html#afd5e9ba33cacfcbff8db3bc944a2fca5">xrpl::NodeStore::DatabaseRotatingImp::DatabaseRotatingImp</a></div><div class="ttdeci">DatabaseRotatingImp()=delete</div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1DatabaseRotating_html"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1DatabaseRotating.html">xrpl::NodeStore::DatabaseRotating</a></div><div class="ttdef"><b>Definition</b> <a href="DatabaseRotating_8h_source.html#l00013">DatabaseRotating.h:14</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1Database_html"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1Database.html">xrpl::NodeStore::Database</a></div><div class="ttdoc">Persistency layer for NodeObject.</div><div class="ttdef"><b>Definition</b> <a href="Database_8h_source.html#l00030">Database.h:31</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1Database_html_a22a4de137cbecd91adac5bc6d98cc084"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1Database.html#a22a4de137cbecd91adac5bc6d98cc084">xrpl::NodeStore::Database::storeStats</a></div><div class="ttdeci">void storeStats(std::uint64_t count, std::uint64_t sz)</div><div class="ttdef"><b>Definition</b> <a href="Database_8h_source.html#l00220">Database.h:220</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1Database_html_a433c172dae4d90c5dd1eb8212f04b406"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1Database.html#a433c172dae4d90c5dd1eb8212f04b406">xrpl::NodeStore::Database::fdRequired</a></div><div class="ttdeci">int fdRequired() const</div><div class="ttdoc">Returns the number of file descriptors the database expects to need.</div><div class="ttdef"><b>Definition</b> <a href="Database_8h_source.html#l00179">Database.h:179</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1Database_html_a51a71f2e714bad4a321a4567cec1c785"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1Database.html#a51a71f2e714bad4a321a4567cec1c785">xrpl::NodeStore::Database::j_</a></div><div class="ttdeci">beast::Journal const j_</div><div class="ttdef"><b>Definition</b> <a href="Database_8h_source.html#l00199">Database.h:199</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1Database_html_a5b08ca82c490f8f45b1a255a94ca247d"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1Database.html#a5b08ca82c490f8f45b1a255a94ca247d">xrpl::NodeStore::Database::fdRequired_</a></div><div class="ttdeci">int fdRequired_</div><div class="ttdef"><b>Definition</b> <a href="Database_8h_source.html#l00201">Database.h:201</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1Database_html_a22a4de137cbecd91adac5bc6d98cc084"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1Database.html#a22a4de137cbecd91adac5bc6d98cc084">xrpl::NodeStore::Database::storeStats</a></div><div class="ttdeci">void storeStats(std::uint64_t count, std::uint64_t sz)</div><div class="ttdef"><b>Definition</b> <a href="Database_8h_source.html#l00216">Database.h:216</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1Database_html_a433c172dae4d90c5dd1eb8212f04b406"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1Database.html#a433c172dae4d90c5dd1eb8212f04b406">xrpl::NodeStore::Database::fdRequired</a></div><div class="ttdeci">int fdRequired() const</div><div class="ttdoc">Returns the number of file descriptors the database expects to need.</div><div class="ttdef"><b>Definition</b> <a href="Database_8h_source.html#l00175">Database.h:175</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1Database_html_a51a71f2e714bad4a321a4567cec1c785"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1Database.html#a51a71f2e714bad4a321a4567cec1c785">xrpl::NodeStore::Database::j_</a></div><div class="ttdeci">beast::Journal const j_</div><div class="ttdef"><b>Definition</b> <a href="Database_8h_source.html#l00195">Database.h:195</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1Database_html_a5b08ca82c490f8f45b1a255a94ca247d"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1Database.html#a5b08ca82c490f8f45b1a255a94ca247d">xrpl::NodeStore::Database::fdRequired_</a></div><div class="ttdeci">int fdRequired_</div><div class="ttdef"><b>Definition</b> <a href="Database_8h_source.html#l00197">Database.h:197</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1Database_html_affdf06b604e9f802daf761c907e3a92a"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1Database.html#affdf06b604e9f802daf761c907e3a92a">xrpl::NodeStore::Database::importInternal</a></div><div class="ttdeci">void importInternal(Backend &amp;dstBackend, Database &amp;srcDB)</div><div class="ttdef"><b>Definition</b> <a href="Database_8cpp_source.html#l00164">Database.cpp:164</a></div></div>
<div class="ttc" id="aclassxrpl_1_1NodeStore_1_1Scheduler_html"><div class="ttname"><a href="classxrpl_1_1NodeStore_1_1Scheduler.html">xrpl::NodeStore::Scheduler</a></div><div class="ttdoc">Scheduling for asynchronous backend activity.</div><div class="ttdef"><b>Definition</b> <a href="include_2xrpl_2nodestore_2Scheduler_8h_source.html#l00041">include/xrpl/nodestore/Scheduler.h:42</a></div></div>
<div class="ttc" id="aclassxrpl_1_1Section_html"><div class="ttname"><a href="classxrpl_1_1Section.html">xrpl::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#l00023">BasicConfig.h:24</a></div></div>