Files
rippled/classripple_1_1NodeStore_1_1DatabaseRotatingImp.html
2025-03-25 18:44:58 +00:00

1867 lines
106 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.5"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>rippled: ripple::NodeStore::DatabaseRotatingImp Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">rippled
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.5 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceripple.html">ripple</a></li><li class="navelem"><a class="el" href="namespaceripple_1_1NodeStore.html">NodeStore</a></li><li class="navelem"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html">DatabaseRotatingImp</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classripple_1_1NodeStore_1_1DatabaseRotatingImp-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">ripple::NodeStore::DatabaseRotatingImp Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="DatabaseRotatingImp_8h_source.html">DatabaseRotatingImp.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ripple::NodeStore::DatabaseRotatingImp:</div>
<div class="dyncontent">
<div class="center"><img src="classripple_1_1NodeStore_1_1DatabaseRotatingImp__inherit__graph.png" border="0" usemap="#aripple_1_1NodeStore_1_1DatabaseRotatingImp_inherit__map" alt="Inheritance graph"/></div>
<map name="aripple_1_1NodeStore_1_1DatabaseRotatingImp_inherit__map" id="aripple_1_1NodeStore_1_1DatabaseRotatingImp_inherit__map">
<area shape="rect" title=" " alt="" coords="5,181,169,221"/>
<area shape="rect" href="classripple_1_1NodeStore_1_1DatabaseRotating.html" title=" " alt="" coords="16,93,159,133"/>
<area shape="rect" href="classripple_1_1NodeStore_1_1Database.html" title="Persistency layer for NodeObject." alt="" coords="16,5,159,45"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for ripple::NodeStore::DatabaseRotatingImp:</div>
<div class="dyncontent">
<div class="center"><img src="classripple_1_1NodeStore_1_1DatabaseRotatingImp__coll__graph.png" border="0" usemap="#aripple_1_1NodeStore_1_1DatabaseRotatingImp_coll__map" alt="Collaboration graph"/></div>
<map name="aripple_1_1NodeStore_1_1DatabaseRotatingImp_coll__map" id="aripple_1_1NodeStore_1_1DatabaseRotatingImp_coll__map">
<area shape="rect" title=" " alt="" coords="1927,600,2091,640"/>
<area shape="rect" href="classripple_1_1NodeStore_1_1DatabaseRotating.html" title=" " alt="" coords="1603,429,1746,469"/>
<area shape="rect" href="classripple_1_1NodeStore_1_1Database.html" title="Persistency layer for NodeObject." alt="" coords="1343,315,1485,355"/>
<area shape="rect" href="classbeast_1_1Journal.html" title="A generic endpoint for log messages." alt="" coords="1003,82,1114,107"/>
<area shape="rect" href="classbeast_1_1Journal_1_1Sink.html" title="Abstraction for the underlying message destination." alt="" coords="644,82,791,107"/>
<area shape="rect" href="classripple_1_1NodeStore_1_1Scheduler.html" title="Scheduling for asynchronous backend activity." alt="" coords="987,132,1130,172"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/atomic/atomic.html" title=" " alt="" coords="413,254,620,279"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/types/integer.html" title=" " alt="" coords="5,249,108,274"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/array.html" title=" " alt="" coords="221,299,389,339"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/atomic/atomic.html" title=" " alt="" coords="955,426,1162,451"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/types/integer.html" title=" " alt="" coords="666,426,769,451"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/thread/mutex.html" title=" " alt="" coords="1013,590,1105,615"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/thread/condition_variable.html" title=" " alt="" coords="973,475,1144,501"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/map.html" title=" " alt="" coords="940,303,1177,401"/>
<area shape="rect" href="classripple_1_1base__uint.html" title="Integers of any length that is a multiple of 32&#45;bits." alt="" coords="647,332,788,372"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/types/size_t.html" title=" " alt="" coords="261,366,349,391"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/atomic/atomic.html" title=" " alt="" coords="982,525,1135,550"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/atomic/atomic.html" title=" " alt="" coords="987,33,1130,58"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html" title=" " alt="" coords="1587,657,1763,697"/>
<area shape="rect" href="classripple_1_1NodeStore_1_1Backend.html" title="A backend used for the NodeStore." alt="" coords="1343,657,1485,697"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ac82d8cd599ee29280d5cf6796ff01332"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#ac82d8cd599ee29280d5cf6796ff01332">DatabaseRotatingImp</a> ()=delete</td></tr>
<tr class="separator:ac82d8cd599ee29280d5cf6796ff01332"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3dafec245a95213c84d92fe81505c1c3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#a3dafec245a95213c84d92fe81505c1c3">DatabaseRotatingImp</a> (<a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html">DatabaseRotatingImp</a> const &amp;)=delete</td></tr>
<tr class="separator:a3dafec245a95213c84d92fe81505c1c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3200f5fa0b358ebf202bbe2573032ea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html">DatabaseRotatingImp</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#ad3200f5fa0b358ebf202bbe2573032ea">operator=</a> (<a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html">DatabaseRotatingImp</a> const &amp;)=delete</td></tr>
<tr class="separator:ad3200f5fa0b358ebf202bbe2573032ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17970302957e7fb4316da06d6058c5c4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#a17970302957e7fb4316da06d6058c5c4">DatabaseRotatingImp</a> (<a class="el" href="classripple_1_1NodeStore_1_1Scheduler.html">Scheduler</a> &amp;scheduler, int readThreads, <a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1NodeStore_1_1Backend.html">Backend</a> &gt; writableBackend, <a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1NodeStore_1_1Backend.html">Backend</a> &gt; archiveBackend, <a class="el" href="classripple_1_1Section.html">Section</a> const &amp;config, <a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> j)</td></tr>
<tr class="separator:a17970302957e7fb4316da06d6058c5c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a918c33e966477d04dbf3d901d8508c4f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#a918c33e966477d04dbf3d901d8508c4f">~DatabaseRotatingImp</a> ()</td></tr>
<tr class="separator:a918c33e966477d04dbf3d901d8508c4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf7791e3f58c2ae49fec9bc76f42b12c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#acf7791e3f58c2ae49fec9bc76f42b12c">rotate</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr</a>&lt; <a class="el" href="classripple_1_1NodeStore_1_1Backend.html">NodeStore::Backend</a> &gt; &amp;&amp;newBackend, <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt; void(<a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;writableName, <a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;archiveName)&gt; const &amp;f) override</td></tr>
<tr class="memdesc:acf7791e3f58c2ae49fec9bc76f42b12c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotates the backends. <a href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#acf7791e3f58c2ae49fec9bc76f42b12c">More...</a><br /></td></tr>
<tr class="separator:acf7791e3f58c2ae49fec9bc76f42b12c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c3f2d7e8b7e4cca14afe2177c1466b3"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#a9c3f2d7e8b7e4cca14afe2177c1466b3">getName</a> () const override</td></tr>
<tr class="memdesc:a9c3f2d7e8b7e4cca14afe2177c1466b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the name associated with this backend. <a href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#a9c3f2d7e8b7e4cca14afe2177c1466b3">More...</a><br /></td></tr>
<tr class="separator:a9c3f2d7e8b7e4cca14afe2177c1466b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b006f7535475fd276bc30b77a1b4673"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::int32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#a3b006f7535475fd276bc30b77a1b4673">getWriteLoad</a> () const override</td></tr>
<tr class="memdesc:a3b006f7535475fd276bc30b77a1b4673"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the estimated number of pending write operations. <a href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#a3b006f7535475fd276bc30b77a1b4673">More...</a><br /></td></tr>
<tr class="separator:a3b006f7535475fd276bc30b77a1b4673"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8210f362baae4b4b3f6f1bff9b808317"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#a8210f362baae4b4b3f6f1bff9b808317">importDatabase</a> (<a class="el" href="classripple_1_1NodeStore_1_1Database.html">Database</a> &amp;source) override</td></tr>
<tr class="memdesc:a8210f362baae4b4b3f6f1bff9b808317"><td class="mdescLeft">&#160;</td><td class="mdescRight">Import objects from another database. <a href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#a8210f362baae4b4b3f6f1bff9b808317">More...</a><br /></td></tr>
<tr class="separator:a8210f362baae4b4b3f6f1bff9b808317"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8dfef2dee29968270119971f4d60f94"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#ac8dfef2dee29968270119971f4d60f94">isSameDB</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>) override</td></tr>
<tr class="separator:ac8dfef2dee29968270119971f4d60f94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7992d0dd009c5b855c331c73872c946d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#a7992d0dd009c5b855c331c73872c946d">store</a> (<a class="el" href="namespaceripple.html#a57d7e7b27df7e719fdf5569f96be60a3">NodeObjectType</a> type, <a class="el" href="namespaceripple.html#ab1f2184bb5938b5508798cd47a561a21">Blob</a> &amp;&amp;data, <a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> const &amp;hash, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>) override</td></tr>
<tr class="memdesc:a7992d0dd009c5b855c331c73872c946d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store the object. <a href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#a7992d0dd009c5b855c331c73872c946d">More...</a><br /></td></tr>
<tr class="separator:a7992d0dd009c5b855c331c73872c946d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61a400a9f8a8403d64c70b8d089c5be0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#a61a400a9f8a8403d64c70b8d089c5be0">sync</a> () override</td></tr>
<tr class="separator:a61a400a9f8a8403d64c70b8d089c5be0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa67b13515a70659f536b6d1cfeb1c2a2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#aa67b13515a70659f536b6d1cfeb1c2a2">sweep</a> () override</td></tr>
<tr class="memdesc:aa67b13515a70659f536b6d1cfeb1c2a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove expired entries from the positive and negative caches. <a href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#aa67b13515a70659f536b6d1cfeb1c2a2">More...</a><br /></td></tr>
<tr class="separator:aa67b13515a70659f536b6d1cfeb1c2a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a780601a4dce8d688490a24a61f8cea9e"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1NodeObject.html">NodeObject</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a780601a4dce8d688490a24a61f8cea9e">fetchNodeObject</a> (<a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> const &amp;hash, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> ledgerSeq=0, <a class="el" href="namespaceripple_1_1NodeStore.html#a6334ed426a8dbe335761b9d81ab6f19f">FetchType</a> fetchType=<a class="el" href="namespaceripple_1_1NodeStore.html#a6334ed426a8dbe335761b9d81ab6f19fa1303c4f41a88e739bc859612321b189f">FetchType::synchronous</a>, bool duplicate=false)</td></tr>
<tr class="memdesc:a780601a4dce8d688490a24a61f8cea9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a node object. <a href="classripple_1_1NodeStore_1_1Database.html#a780601a4dce8d688490a24a61f8cea9e">More...</a><br /></td></tr>
<tr class="separator:a780601a4dce8d688490a24a61f8cea9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d21a918d521d82947868d21e1aafadb"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a0d21a918d521d82947868d21e1aafadb">asyncFetch</a> (<a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> const &amp;hash, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> ledgerSeq, <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt; void(<a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1NodeObject.html">NodeObject</a> &gt; const &amp;)&gt; &amp;&amp;callback)</td></tr>
<tr class="memdesc:a0d21a918d521d82947868d21e1aafadb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch an object without waiting. <a href="classripple_1_1NodeStore_1_1Database.html#a0d21a918d521d82947868d21e1aafadb">More...</a><br /></td></tr>
<tr class="separator:a0d21a918d521d82947868d21e1aafadb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ccd565f5a4a5296c049a2a0886f363f"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a4ccd565f5a4a5296c049a2a0886f363f">getStoreCount</a> () const</td></tr>
<tr class="memdesc:a4ccd565f5a4a5296c049a2a0886f363f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gather statistics pertaining to read and write activities. <a href="classripple_1_1NodeStore_1_1Database.html#a4ccd565f5a4a5296c049a2a0886f363f">More...</a><br /></td></tr>
<tr class="separator:a4ccd565f5a4a5296c049a2a0886f363f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af32a551caa69e8108bdd9a9d74dd774e"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#af32a551caa69e8108bdd9a9d74dd774e">getFetchTotalCount</a> () const</td></tr>
<tr class="separator:af32a551caa69e8108bdd9a9d74dd774e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad28a451b16bc693364a1074c0f767f1f"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#ad28a451b16bc693364a1074c0f767f1f">getFetchHitCount</a> () const</td></tr>
<tr class="separator:ad28a451b16bc693364a1074c0f767f1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f2ed25135bf1d2aa487a2b2dc5c85cd"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a0f2ed25135bf1d2aa487a2b2dc5c85cd">getStoreSize</a> () const</td></tr>
<tr class="separator:a0f2ed25135bf1d2aa487a2b2dc5c85cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ebb38ac8562f6b1673a9f3b8216efce"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a8ebb38ac8562f6b1673a9f3b8216efce">getFetchSize</a> () const</td></tr>
<tr class="separator:a8ebb38ac8562f6b1673a9f3b8216efce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a023779f42976b9c22da655bf9fd4f4a5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a023779f42976b9c22da655bf9fd4f4a5">getCountsJson</a> (<a class="el" href="classJson_1_1Value.html">Json::Value</a> &amp;obj)</td></tr>
<tr class="separator:a023779f42976b9c22da655bf9fd4f4a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef142866cf7ca2a96d17efc55f8dcc19"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#aef142866cf7ca2a96d17efc55f8dcc19">fdRequired</a> () const</td></tr>
<tr class="memdesc:aef142866cf7ca2a96d17efc55f8dcc19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of file descriptors the database expects to need. <a href="classripple_1_1NodeStore_1_1Database.html#aef142866cf7ca2a96d17efc55f8dcc19">More...</a><br /></td></tr>
<tr class="separator:aef142866cf7ca2a96d17efc55f8dcc19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affd86ea8d57875e1c9722fdf6a8f6326"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#affd86ea8d57875e1c9722fdf6a8f6326">stop</a> ()</td></tr>
<tr class="separator:affd86ea8d57875e1c9722fdf6a8f6326"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6bb055f14d1d28163e931ed73d94a1e1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a6bb055f14d1d28163e931ed73d94a1e1">isStopping</a> () const</td></tr>
<tr class="separator:a6bb055f14d1d28163e931ed73d94a1e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae10c8f2c5e0676a704bd28486b7640af"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#ae10c8f2c5e0676a704bd28486b7640af">earliestLedgerSeq</a> () const noexcept</td></tr>
<tr class="separator:ae10c8f2c5e0676a704bd28486b7640af"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a090e39b8c6733b0dc4553f9e8e705605"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a090e39b8c6733b0dc4553f9e8e705605">storeStats</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> count, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> sz)</td></tr>
<tr class="separator:a090e39b8c6733b0dc4553f9e8e705605"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af885d9fe877259a258481f0df20697cd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#af885d9fe877259a258481f0df20697cd">importInternal</a> (<a class="el" href="classripple_1_1NodeStore_1_1Backend.html">Backend</a> &amp;dstBackend, <a class="el" href="classripple_1_1NodeStore_1_1Database.html">Database</a> &amp;srcDB)</td></tr>
<tr class="separator:af885d9fe877259a258481f0df20697cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdcb3e7fdaeae1252f850c0e2a4646c2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#abdcb3e7fdaeae1252f850c0e2a4646c2">updateFetchMetrics</a> (uint64_t fetches, uint64_t hits, uint64_t duration)</td></tr>
<tr class="separator:abdcb3e7fdaeae1252f850c0e2a4646c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a91e5dd4e1a48a23cb5f698c0794a044e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a91e5dd4e1a48a23cb5f698c0794a044e">j_</a></td></tr>
<tr class="separator:a91e5dd4e1a48a23cb5f698c0794a044e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e5bc58351ded4683d7207383794a484"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1NodeStore_1_1Scheduler.html">Scheduler</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a0e5bc58351ded4683d7207383794a484">scheduler_</a></td></tr>
<tr class="separator:a0e5bc58351ded4683d7207383794a484"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a730a87cf8b617a8afb30e2531ede0f81"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a730a87cf8b617a8afb30e2531ede0f81">fdRequired_</a> {0}</td></tr>
<tr class="separator:a730a87cf8b617a8afb30e2531ede0f81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89497b9b4c5530b58040931489015d30"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a89497b9b4c5530b58040931489015d30">fetchHitCount_</a> {0}</td></tr>
<tr class="separator:a89497b9b4c5530b58040931489015d30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04150d23aa2acaf016d4ca40bd10804a"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a04150d23aa2acaf016d4ca40bd10804a">fetchSz_</a> {0}</td></tr>
<tr class="separator:a04150d23aa2acaf016d4ca40bd10804a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e3a4884a1b719e96e282c6c3b601fdc"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a4e3a4884a1b719e96e282c6c3b601fdc">earliestLedgerSeq_</a></td></tr>
<tr class="separator:a4e3a4884a1b719e96e282c6c3b601fdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb01b75cff1136cfe603223a69236254"><td class="memItemLeft" align="right" valign="top">int const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#afb01b75cff1136cfe603223a69236254">requestBundle_</a></td></tr>
<tr class="separator:afb01b75cff1136cfe603223a69236254"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-methods" name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:a7415a182938d791526ebda24e72c17f1"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1NodeObject.html">NodeObject</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#a7415a182938d791526ebda24e72c17f1">fetchNodeObject</a> (<a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> const &amp;hash, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>, <a class="el" href="structripple_1_1NodeStore_1_1FetchReport.html">FetchReport</a> &amp;fetchReport, bool duplicate) override</td></tr>
<tr class="separator:a7415a182938d791526ebda24e72c17f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee99c67c55042890a37368f5d17620d4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#aee99c67c55042890a37368f5d17620d4">for_each</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt; void(<a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1NodeObject.html">NodeObject</a> &gt;)&gt; f) override</td></tr>
<tr class="memdesc:aee99c67c55042890a37368f5d17620d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Visit every object in the database This is usually called during import. <a href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#aee99c67c55042890a37368f5d17620d4">More...</a><br /></td></tr>
<tr class="separator:aee99c67c55042890a37368f5d17620d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c4180512ff87a967de8091a019dc9f9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a7c4180512ff87a967de8091a019dc9f9">threadEntry</a> ()</td></tr>
<tr class="separator:a7c4180512ff87a967de8091a019dc9f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:acaa8e51a8678905a0b2d831154cc91b5"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1NodeStore_1_1Backend.html">Backend</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#acaa8e51a8678905a0b2d831154cc91b5">writableBackend_</a></td></tr>
<tr class="separator:acaa8e51a8678905a0b2d831154cc91b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44b1eace70e02649d16668ca920531cb"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1NodeStore_1_1Backend.html">Backend</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#a44b1eace70e02649d16668ca920531cb">archiveBackend_</a></td></tr>
<tr class="separator:a44b1eace70e02649d16668ca920531cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d803c36c8aea67c83f735814de25717"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#a4d803c36c8aea67c83f735814de25717">mutex_</a></td></tr>
<tr class="separator:a4d803c36c8aea67c83f735814de25717"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4dc1dcc2a79b60c2c7de7f1bdf05cecf"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a4dc1dcc2a79b60c2c7de7f1bdf05cecf">storeCount_</a> {0}</td></tr>
<tr class="separator:a4dc1dcc2a79b60c2c7de7f1bdf05cecf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5dbc9808c511caeaaa7ce5c6b27276e6"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a5dbc9808c511caeaaa7ce5c6b27276e6">storeSz_</a> {0}</td></tr>
<tr class="separator:a5dbc9808c511caeaaa7ce5c6b27276e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3332d74cac6eb882c2908e14655d3a0"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#af3332d74cac6eb882c2908e14655d3a0">fetchTotalCount_</a> {0}</td></tr>
<tr class="separator:af3332d74cac6eb882c2908e14655d3a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4ecdf417aaa8e5d4c88601244fe90d7"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#ab4ecdf417aaa8e5d4c88601244fe90d7">fetchDurationUs_</a> {0}</td></tr>
<tr class="separator:ab4ecdf417aaa8e5d4c88601244fe90d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83e7506a1b302966445210ebe56c3905"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a83e7506a1b302966445210ebe56c3905">storeDurationUs_</a> {0}</td></tr>
<tr class="separator:a83e7506a1b302966445210ebe56c3905"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06fbf66d1f34a6162a17daf72e71eba9"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a06fbf66d1f34a6162a17daf72e71eba9">readLock_</a></td></tr>
<tr class="separator:a06fbf66d1f34a6162a17daf72e71eba9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a438af3c0eba7891bb79d5c5dcb902556"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/condition_variable.html">std::condition_variable</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a438af3c0eba7891bb79d5c5dcb902556">readCondVar_</a></td></tr>
<tr class="separator:a438af3c0eba7891bb79d5c5dcb902556"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59cd26efed86926842662b223d20359d"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a>&lt; <a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a>, <a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>, <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt; void(<a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1NodeObject.html">NodeObject</a> &gt; const &amp;)&gt; &gt; &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a59cd26efed86926842662b223d20359d">read_</a></td></tr>
<tr class="separator:a59cd26efed86926842662b223d20359d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7cb4eee79861b6a496fe6ddcd024a5f8"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a7cb4eee79861b6a496fe6ddcd024a5f8">readStopping_</a> = false</td></tr>
<tr class="separator:a7cb4eee79861b6a496fe6ddcd024a5f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5fd85ba304bf9fd6e5afd7f06025180"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#af5fd85ba304bf9fd6e5afd7f06025180">readThreads_</a> = 0</td></tr>
<tr class="separator:af5fd85ba304bf9fd6e5afd7f06025180"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9f741a64dae54f4b30f31fb68565283"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#ad9f741a64dae54f4b30f31fb68565283">runningThreads_</a> = 0</td></tr>
<tr class="separator:ad9f741a64dae54f4b30f31fb68565283"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
<p class="definition">Definition at line <a class="el" href="DatabaseRotatingImp_8h_source.html#l00030">30</a> of file <a class="el" href="DatabaseRotatingImp_8h_source.html">DatabaseRotatingImp.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ac82d8cd599ee29280d5cf6796ff01332" name="ac82d8cd599ee29280d5cf6796ff01332"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac82d8cd599ee29280d5cf6796ff01332">&#9670;&#160;</a></span>DatabaseRotatingImp() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ripple::NodeStore::DatabaseRotatingImp::DatabaseRotatingImp </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a3dafec245a95213c84d92fe81505c1c3" name="a3dafec245a95213c84d92fe81505c1c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3dafec245a95213c84d92fe81505c1c3">&#9670;&#160;</a></span>DatabaseRotatingImp() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ripple::NodeStore::DatabaseRotatingImp::DatabaseRotatingImp </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html">DatabaseRotatingImp</a> const &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a17970302957e7fb4316da06d6058c5c4" name="a17970302957e7fb4316da06d6058c5c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a17970302957e7fb4316da06d6058c5c4">&#9670;&#160;</a></span>DatabaseRotatingImp() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ripple::NodeStore::DatabaseRotatingImp::DatabaseRotatingImp </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1NodeStore_1_1Scheduler.html">Scheduler</a> &amp;&#160;</td>
<td class="paramname"><em>scheduler</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>readThreads</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1NodeStore_1_1Backend.html">Backend</a> &gt;&#160;</td>
<td class="paramname"><em>writableBackend</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1NodeStore_1_1Backend.html">Backend</a> &gt;&#160;</td>
<td class="paramname"><em>archiveBackend</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1Section.html">Section</a> const &amp;&#160;</td>
<td class="paramname"><em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classbeast_1_1Journal.html">beast::Journal</a>&#160;</td>
<td class="paramname"><em>j</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="DatabaseRotatingImp_8cpp_source.html#l00025">25</a> of file <a class="el" href="DatabaseRotatingImp_8cpp_source.html">DatabaseRotatingImp.cpp</a>.</p>
</div>
</div>
<a id="a918c33e966477d04dbf3d901d8508c4f" name="a918c33e966477d04dbf3d901d8508c4f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a918c33e966477d04dbf3d901d8508c4f">&#9670;&#160;</a></span>~DatabaseRotatingImp()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ripple::NodeStore::DatabaseRotatingImp::~DatabaseRotatingImp </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="DatabaseRotatingImp_8h_source.html#l00046">46</a> of file <a class="el" href="DatabaseRotatingImp_8h_source.html">DatabaseRotatingImp.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ad3200f5fa0b358ebf202bbe2573032ea" name="ad3200f5fa0b358ebf202bbe2573032ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad3200f5fa0b358ebf202bbe2573032ea">&#9670;&#160;</a></span>operator=()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html">DatabaseRotatingImp</a> &amp; ripple::NodeStore::DatabaseRotatingImp::operator= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html">DatabaseRotatingImp</a> const &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="acf7791e3f58c2ae49fec9bc76f42b12c" name="acf7791e3f58c2ae49fec9bc76f42b12c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acf7791e3f58c2ae49fec9bc76f42b12c">&#9670;&#160;</a></span>rotate()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::NodeStore::DatabaseRotatingImp::rotate </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr</a>&lt; <a class="el" href="classripple_1_1NodeStore_1_1Backend.html">NodeStore::Backend</a> &gt; &amp;&amp;&#160;</td>
<td class="paramname"><em>newBackend</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt; void(<a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;writableName, <a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;archiveName)&gt; const &amp;&#160;</td>
<td class="paramname"><em>f</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Rotates the backends. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">newBackend</td><td>New writable backend </td></tr>
<tr><td class="paramname">f</td><td>A function executed after the rotation outside of lock. The values passed to f will be the new backend database names <em>after</em> rotation. </td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotating.html#a6f01b2e1b8281065d791c149c912bb38">ripple::NodeStore::DatabaseRotating</a>.</p>
<p class="definition">Definition at line <a class="el" href="DatabaseRotatingImp_8cpp_source.html#l00043">43</a> of file <a class="el" href="DatabaseRotatingImp_8cpp_source.html">DatabaseRotatingImp.cpp</a>.</p>
</div>
</div>
<a id="a9c3f2d7e8b7e4cca14afe2177c1466b3" name="a9c3f2d7e8b7e4cca14afe2177c1466b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c3f2d7e8b7e4cca14afe2177c1466b3">&#9670;&#160;</a></span>getName()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> ripple::NodeStore::DatabaseRotatingImp::getName </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieve the name associated with this backend. </p>
<p >This is used for diagnostics and may not reflect the actual path or paths used by the underlying backend. </p>
<p>Implements <a class="el" href="classripple_1_1NodeStore_1_1Database.html#a24f47bc48e8d040c662611674898fe2e">ripple::NodeStore::Database</a>.</p>
<p class="definition">Definition at line <a class="el" href="DatabaseRotatingImp_8cpp_source.html#l00072">72</a> of file <a class="el" href="DatabaseRotatingImp_8cpp_source.html">DatabaseRotatingImp.cpp</a>.</p>
</div>
</div>
<a id="a3b006f7535475fd276bc30b77a1b4673" name="a3b006f7535475fd276bc30b77a1b4673"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3b006f7535475fd276bc30b77a1b4673">&#9670;&#160;</a></span>getWriteLoad()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::int32_t</a> ripple::NodeStore::DatabaseRotatingImp::getWriteLoad </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieve the estimated number of pending write operations. </p>
<p >This is used for diagnostics. </p>
<p>Implements <a class="el" href="classripple_1_1NodeStore_1_1Database.html#aada6493667fd17dd426f6545bf4cac93">ripple::NodeStore::Database</a>.</p>
<p class="definition">Definition at line <a class="el" href="DatabaseRotatingImp_8cpp_source.html#l00079">79</a> of file <a class="el" href="DatabaseRotatingImp_8cpp_source.html">DatabaseRotatingImp.cpp</a>.</p>
</div>
</div>
<a id="a8210f362baae4b4b3f6f1bff9b808317" name="a8210f362baae4b4b3f6f1bff9b808317"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8210f362baae4b4b3f6f1bff9b808317">&#9670;&#160;</a></span>importDatabase()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::NodeStore::DatabaseRotatingImp::importDatabase </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1NodeStore_1_1Database.html">Database</a> &amp;&#160;</td>
<td class="paramname"><em>source</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Import objects from another database. </p>
<p>Implements <a class="el" href="classripple_1_1NodeStore_1_1Database.html#a6fd8c555e59355e643a40aaad4d83be6">ripple::NodeStore::Database</a>.</p>
<p class="definition">Definition at line <a class="el" href="DatabaseRotatingImp_8cpp_source.html#l00086">86</a> of file <a class="el" href="DatabaseRotatingImp_8cpp_source.html">DatabaseRotatingImp.cpp</a>.</p>
</div>
</div>
<a id="ac8dfef2dee29968270119971f4d60f94" name="ac8dfef2dee29968270119971f4d60f94"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac8dfef2dee29968270119971f4d60f94">&#9670;&#160;</a></span>isSameDB()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ripple::NodeStore::DatabaseRotatingImp::isSameDB </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implements <a class="el" href="classripple_1_1NodeStore_1_1Database.html#ae3e615caca1a493f80515d137b315fa8">ripple::NodeStore::Database</a>.</p>
<p class="definition">Definition at line <a class="el" href="DatabaseRotatingImp_8h_source.html#l00068">68</a> of file <a class="el" href="DatabaseRotatingImp_8h_source.html">DatabaseRotatingImp.h</a>.</p>
</div>
</div>
<a id="a7992d0dd009c5b855c331c73872c946d" name="a7992d0dd009c5b855c331c73872c946d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7992d0dd009c5b855c331c73872c946d">&#9670;&#160;</a></span>store()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::NodeStore::DatabaseRotatingImp::store </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a57d7e7b27df7e719fdf5569f96be60a3">NodeObjectType</a>&#160;</td>
<td class="paramname"><em>type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple.html#ab1f2184bb5938b5508798cd47a561a21">Blob</a> &amp;&amp;&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> const &amp;&#160;</td>
<td class="paramname"><em>hash</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>&#160;</td>
<td class="paramname"><em>ledgerSeq</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Store the object. </p>
<p >The caller's Blob parameter is overwritten.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">type</td><td>The type of object. </td></tr>
<tr><td class="paramname">data</td><td>The payload of the object. The caller's variable is overwritten. </td></tr>
<tr><td class="paramname">hash</td><td>The 256-bit hash of the payload data. </td></tr>
<tr><td class="paramname">ledgerSeq</td><td>The sequence of the ledger the object belongs to.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the object was stored? </dd></dl>
<p>Implements <a class="el" href="classripple_1_1NodeStore_1_1Database.html#a7da2336581ee3348aad97c0d885658d0">ripple::NodeStore::Database</a>.</p>
<p class="definition">Definition at line <a class="el" href="DatabaseRotatingImp_8cpp_source.html#l00104">104</a> of file <a class="el" href="DatabaseRotatingImp_8cpp_source.html">DatabaseRotatingImp.cpp</a>.</p>
</div>
</div>
<a id="a61a400a9f8a8403d64c70b8d089c5be0" name="a61a400a9f8a8403d64c70b8d089c5be0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a61a400a9f8a8403d64c70b8d089c5be0">&#9670;&#160;</a></span>sync()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::NodeStore::DatabaseRotatingImp::sync </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implements <a class="el" href="classripple_1_1NodeStore_1_1Database.html#a57b89b559c083fde74a115a3df8f8046">ripple::NodeStore::Database</a>.</p>
<p class="definition">Definition at line <a class="el" href="DatabaseRotatingImp_8cpp_source.html#l00097">97</a> of file <a class="el" href="DatabaseRotatingImp_8cpp_source.html">DatabaseRotatingImp.cpp</a>.</p>
</div>
</div>
<a id="aa67b13515a70659f536b6d1cfeb1c2a2" name="aa67b13515a70659f536b6d1cfeb1c2a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa67b13515a70659f536b6d1cfeb1c2a2">&#9670;&#160;</a></span>sweep()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::NodeStore::DatabaseRotatingImp::sweep </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Remove expired entries from the positive and negative caches. </p>
<p>Implements <a class="el" href="classripple_1_1NodeStore_1_1Database.html#a40a0e5a30857e9ba3c7561748af31e29">ripple::NodeStore::Database</a>.</p>
<p class="definition">Definition at line <a class="el" href="DatabaseRotatingImp_8cpp_source.html#l00122">122</a> of file <a class="el" href="DatabaseRotatingImp_8cpp_source.html">DatabaseRotatingImp.cpp</a>.</p>
</div>
</div>
<a id="a7415a182938d791526ebda24e72c17f1" name="a7415a182938d791526ebda24e72c17f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7415a182938d791526ebda24e72c17f1">&#9670;&#160;</a></span>fetchNodeObject() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1NodeObject.html">NodeObject</a> &gt; ripple::NodeStore::DatabaseRotatingImp::fetchNodeObject </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> const &amp;&#160;</td>
<td class="paramname"><em>hash</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structripple_1_1NodeStore_1_1FetchReport.html">FetchReport</a> &amp;&#160;</td>
<td class="paramname"><em>fetchReport</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>duplicate</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">private</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implements <a class="el" href="classripple_1_1NodeStore_1_1Database.html#af209b5e9d88436caaeb8c24a437a7adb">ripple::NodeStore::Database</a>.</p>
<p class="definition">Definition at line <a class="el" href="DatabaseRotatingImp_8cpp_source.html#l00128">128</a> of file <a class="el" href="DatabaseRotatingImp_8cpp_source.html">DatabaseRotatingImp.cpp</a>.</p>
</div>
</div>
<a id="aee99c67c55042890a37368f5d17620d4" name="aee99c67c55042890a37368f5d17620d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee99c67c55042890a37368f5d17620d4">&#9670;&#160;</a></span>for_each()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::NodeStore::DatabaseRotatingImp::for_each </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt; void(<a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1NodeObject.html">NodeObject</a> &gt;)&gt;&#160;</td>
<td class="paramname"><em>f</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">private</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Visit every object in the database This is usually called during import. </p>
<dl class="section note"><dt>Note</dt><dd>This routine will not be called concurrently with itself or other methods. </dd></dl>
<dl class="section see"><dt>See also</dt><dd>import </dd></dl>
<p>Implements <a class="el" href="classripple_1_1NodeStore_1_1Database.html#a2b5174a0ffb315030b96815d6ac86eaf">ripple::NodeStore::Database</a>.</p>
<p class="definition">Definition at line <a class="el" href="DatabaseRotatingImp_8cpp_source.html#l00198">198</a> of file <a class="el" href="DatabaseRotatingImp_8cpp_source.html">DatabaseRotatingImp.cpp</a>.</p>
</div>
</div>
<a id="a780601a4dce8d688490a24a61f8cea9e" name="a780601a4dce8d688490a24a61f8cea9e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a780601a4dce8d688490a24a61f8cea9e">&#9670;&#160;</a></span>fetchNodeObject() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1NodeObject.html">NodeObject</a> &gt; ripple::NodeStore::Database::fetchNodeObject </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> const &amp;&#160;</td>
<td class="paramname"><em>hash</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>&#160;</td>
<td class="paramname"><em>ledgerSeq</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple_1_1NodeStore.html#a6334ed426a8dbe335761b9d81ab6f19f">FetchType</a>&#160;</td>
<td class="paramname"><em>fetchType</em> = <code><a class="el" href="namespaceripple_1_1NodeStore.html#a6334ed426a8dbe335761b9d81ab6f19fa1303c4f41a88e739bc859612321b189f">FetchType::synchronous</a></code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>duplicate</em> = <code>false</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Fetch a node object. </p>
<p >If the object is known to be not in the database, isn't found in the database during the fetch, or failed to load correctly during the fetch, <code>nullptr</code> is returned.</p>
<dl class="section note"><dt>Note</dt><dd>This can be called concurrently. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">hash</td><td>The key of the object to retrieve. </td></tr>
<tr><td class="paramname">ledgerSeq</td><td>The sequence of the ledger where the object is stored. </td></tr>
<tr><td class="paramname">fetchType</td><td>the type of fetch, synchronous or asynchronous. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The object, or nullptr if it couldn't be retrieved. </dd></dl>
<p class="definition">Definition at line <a class="el" href="Database_8cpp_source.html#l00241">241</a> of file <a class="el" href="Database_8cpp_source.html">Database.cpp</a>.</p>
</div>
</div>
<a id="a0d21a918d521d82947868d21e1aafadb" name="a0d21a918d521d82947868d21e1aafadb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d21a918d521d82947868d21e1aafadb">&#9670;&#160;</a></span>asyncFetch()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::NodeStore::Database::asyncFetch </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> const &amp;&#160;</td>
<td class="paramname"><em>hash</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>&#160;</td>
<td class="paramname"><em>ledgerSeq</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt; void(<a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1NodeObject.html">NodeObject</a> &gt; const &amp;)&gt; &amp;&amp;&#160;</td>
<td class="paramname"><em>callback</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Fetch an object without waiting. </p>
<p >If I/O is required to determine whether or not the object is present, <code>false</code> is returned. Otherwise, <code>true</code> is returned and <code>object</code> is set to refer to the object, or <code>nullptr</code> if the object is not present. If I/O is required, the I/O is scheduled and <code>true</code> is returned</p>
<dl class="section note"><dt>Note</dt><dd>This can be called concurrently. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">hash</td><td>The key of the object to retrieve </td></tr>
<tr><td class="paramname">ledgerSeq</td><td>The sequence of the ledger where the object is stored. </td></tr>
<tr><td class="paramname">callback</td><td>Callback function when read completes </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented in <a class="el" href="classripple_1_1NodeStore_1_1DatabaseNodeImp.html#aa7218a9ee7e8b99949ef33f0bf3fb84f">ripple::NodeStore::DatabaseNodeImp</a>.</p>
<p class="definition">Definition at line <a class="el" href="Database_8cpp_source.html#l00185">185</a> of file <a class="el" href="Database_8cpp_source.html">Database.cpp</a>.</p>
</div>
</div>
<a id="a4ccd565f5a4a5296c049a2a0886f363f" name="a4ccd565f5a4a5296c049a2a0886f363f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ccd565f5a4a5296c049a2a0886f363f">&#9670;&#160;</a></span>getStoreCount()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> ripple::NodeStore::Database::getStoreCount </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gather statistics pertaining to read and write activities. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">obj</td><td><a class="el" href="namespaceJson.html" title="JSON (JavaScript Object Notation).">Json</a> object reference into which to place counters. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00174">174</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="af32a551caa69e8108bdd9a9d74dd774e" name="af32a551caa69e8108bdd9a9d74dd774e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af32a551caa69e8108bdd9a9d74dd774e">&#9670;&#160;</a></span>getFetchTotalCount()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> ripple::NodeStore::Database::getFetchTotalCount </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00180">180</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="ad28a451b16bc693364a1074c0f767f1f" name="ad28a451b16bc693364a1074c0f767f1f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad28a451b16bc693364a1074c0f767f1f">&#9670;&#160;</a></span>getFetchHitCount()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> ripple::NodeStore::Database::getFetchHitCount </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00186">186</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a0f2ed25135bf1d2aa487a2b2dc5c85cd" name="a0f2ed25135bf1d2aa487a2b2dc5c85cd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0f2ed25135bf1d2aa487a2b2dc5c85cd">&#9670;&#160;</a></span>getStoreSize()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> ripple::NodeStore::Database::getStoreSize </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00192">192</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a8ebb38ac8562f6b1673a9f3b8216efce" name="a8ebb38ac8562f6b1673a9f3b8216efce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8ebb38ac8562f6b1673a9f3b8216efce">&#9670;&#160;</a></span>getFetchSize()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> ripple::NodeStore::Database::getFetchSize </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00198">198</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a023779f42976b9c22da655bf9fd4f4a5" name="a023779f42976b9c22da655bf9fd4f4a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a023779f42976b9c22da655bf9fd4f4a5">&#9670;&#160;</a></span>getCountsJson()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::NodeStore::Database::getCountsJson </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classJson_1_1Value.html">Json::Value</a> &amp;&#160;</td>
<td class="paramname"><em>obj</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8cpp_source.html#l00268">268</a> of file <a class="el" href="Database_8cpp_source.html">Database.cpp</a>.</p>
</div>
</div>
<a id="aef142866cf7ca2a96d17efc55f8dcc19" name="aef142866cf7ca2a96d17efc55f8dcc19"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef142866cf7ca2a96d17efc55f8dcc19">&#9670;&#160;</a></span>fdRequired()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int ripple::NodeStore::Database::fdRequired </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the number of file descriptors the database expects to need. </p>
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00208">208</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="affd86ea8d57875e1c9722fdf6a8f6326" name="affd86ea8d57875e1c9722fdf6a8f6326"></a>
<h2 class="memtitle"><span class="permalink"><a href="#affd86ea8d57875e1c9722fdf6a8f6326">&#9670;&#160;</a></span>stop()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::NodeStore::Database::stop </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8cpp_source.html#l00150">150</a> of file <a class="el" href="Database_8cpp_source.html">Database.cpp</a>.</p>
</div>
</div>
<a id="a6bb055f14d1d28163e931ed73d94a1e1" name="a6bb055f14d1d28163e931ed73d94a1e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6bb055f14d1d28163e931ed73d94a1e1">&#9670;&#160;</a></span>isStopping()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ripple::NodeStore::Database::isStopping </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8cpp_source.html#l00144">144</a> of file <a class="el" href="Database_8cpp_source.html">Database.cpp</a>.</p>
</div>
</div>
<a id="ae10c8f2c5e0676a704bd28486b7640af" name="ae10c8f2c5e0676a704bd28486b7640af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae10c8f2c5e0676a704bd28486b7640af">&#9670;&#160;</a></span>earliestLedgerSeq()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> ripple::NodeStore::Database::earliestLedgerSeq </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The earliest ledger sequence allowed </dd></dl>
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00222">222</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a090e39b8c6733b0dc4553f9e8e705605" name="a090e39b8c6733b0dc4553f9e8e705605"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a090e39b8c6733b0dc4553f9e8e705605">&#9670;&#160;</a></span>storeStats()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::NodeStore::Database::storeStats </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a>&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a>&#160;</td>
<td class="paramname"><em>sz</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00249">249</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="af885d9fe877259a258481f0df20697cd" name="af885d9fe877259a258481f0df20697cd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af885d9fe877259a258481f0df20697cd">&#9670;&#160;</a></span>importInternal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::NodeStore::Database::importInternal </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1NodeStore_1_1Backend.html">Backend</a> &amp;&#160;</td>
<td class="paramname"><em>dstBackend</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1NodeStore_1_1Database.html">Database</a> &amp;&#160;</td>
<td class="paramname"><em>srcDB</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8cpp_source.html#l00200">200</a> of file <a class="el" href="Database_8cpp_source.html">Database.cpp</a>.</p>
</div>
</div>
<a id="abdcb3e7fdaeae1252f850c0e2a4646c2" name="abdcb3e7fdaeae1252f850c0e2a4646c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abdcb3e7fdaeae1252f850c0e2a4646c2">&#9670;&#160;</a></span>updateFetchMetrics()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::NodeStore::Database::updateFetchMetrics </td>
<td>(</td>
<td class="paramtype">uint64_t&#160;</td>
<td class="paramname"><em>fetches</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint64_t&#160;</td>
<td class="paramname"><em>hits</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint64_t&#160;</td>
<td class="paramname"><em>duration</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00263">263</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a7c4180512ff87a967de8091a019dc9f9" name="a7c4180512ff87a967de8091a019dc9f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7c4180512ff87a967de8091a019dc9f9">&#9670;&#160;</a></span>threadEntry()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::NodeStore::Database::threadEntry </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="acaa8e51a8678905a0b2d831154cc91b5" name="acaa8e51a8678905a0b2d831154cc91b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acaa8e51a8678905a0b2d831154cc91b5">&#9670;&#160;</a></span>writableBackend_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt;<a class="el" href="classripple_1_1NodeStore_1_1Backend.html">Backend</a>&gt; ripple::NodeStore::DatabaseRotatingImp::writableBackend_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="DatabaseRotatingImp_8h_source.html#l00085">85</a> of file <a class="el" href="DatabaseRotatingImp_8h_source.html">DatabaseRotatingImp.h</a>.</p>
</div>
</div>
<a id="a44b1eace70e02649d16668ca920531cb" name="a44b1eace70e02649d16668ca920531cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a44b1eace70e02649d16668ca920531cb">&#9670;&#160;</a></span>archiveBackend_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt;<a class="el" href="classripple_1_1NodeStore_1_1Backend.html">Backend</a>&gt; ripple::NodeStore::DatabaseRotatingImp::archiveBackend_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="DatabaseRotatingImp_8h_source.html#l00086">86</a> of file <a class="el" href="DatabaseRotatingImp_8h_source.html">DatabaseRotatingImp.h</a>.</p>
</div>
</div>
<a id="a4d803c36c8aea67c83f735814de25717" name="a4d803c36c8aea67c83f735814de25717"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4d803c36c8aea67c83f735814de25717">&#9670;&#160;</a></span>mutex_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a> ripple::NodeStore::DatabaseRotatingImp::mutex_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">mutable</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="DatabaseRotatingImp_8h_source.html#l00087">87</a> of file <a class="el" href="DatabaseRotatingImp_8h_source.html">DatabaseRotatingImp.h</a>.</p>
</div>
</div>
<a id="a91e5dd4e1a48a23cb5f698c0794a044e" name="a91e5dd4e1a48a23cb5f698c0794a044e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a91e5dd4e1a48a23cb5f698c0794a044e">&#9670;&#160;</a></span>j_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> const ripple::NodeStore::Database::j_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00228">228</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a0e5bc58351ded4683d7207383794a484" name="a0e5bc58351ded4683d7207383794a484"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e5bc58351ded4683d7207383794a484">&#9670;&#160;</a></span>scheduler_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classripple_1_1NodeStore_1_1Scheduler.html">Scheduler</a>&amp; ripple::NodeStore::Database::scheduler_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00229">229</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a730a87cf8b617a8afb30e2531ede0f81" name="a730a87cf8b617a8afb30e2531ede0f81"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a730a87cf8b617a8afb30e2531ede0f81">&#9670;&#160;</a></span>fdRequired_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int ripple::NodeStore::Database::fdRequired_ {0}</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00230">230</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a89497b9b4c5530b58040931489015d30" name="a89497b9b4c5530b58040931489015d30"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a89497b9b4c5530b58040931489015d30">&#9670;&#160;</a></span>fetchHitCount_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt;<a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>&gt; ripple::NodeStore::Database::fetchHitCount_ {0}</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00232">232</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a04150d23aa2acaf016d4ca40bd10804a" name="a04150d23aa2acaf016d4ca40bd10804a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a04150d23aa2acaf016d4ca40bd10804a">&#9670;&#160;</a></span>fetchSz_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt;<a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>&gt; ripple::NodeStore::Database::fetchSz_ {0}</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00233">233</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a4e3a4884a1b719e96e282c6c3b601fdc" name="a4e3a4884a1b719e96e282c6c3b601fdc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e3a4884a1b719e96e282c6c3b601fdc">&#9670;&#160;</a></span>earliestLedgerSeq_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> const ripple::NodeStore::Database::earliestLedgerSeq_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00241">241</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="afb01b75cff1136cfe603223a69236254" name="afb01b75cff1136cfe603223a69236254"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb01b75cff1136cfe603223a69236254">&#9670;&#160;</a></span>requestBundle_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int const ripple::NodeStore::Database::requestBundle_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00246">246</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a4dc1dcc2a79b60c2c7de7f1bdf05cecf" name="a4dc1dcc2a79b60c2c7de7f1bdf05cecf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4dc1dcc2a79b60c2c7de7f1bdf05cecf">&#9670;&#160;</a></span>storeCount_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt;<a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a>&gt; ripple::NodeStore::Database::storeCount_ {0}</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00271">271</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a5dbc9808c511caeaaa7ce5c6b27276e6" name="a5dbc9808c511caeaaa7ce5c6b27276e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5dbc9808c511caeaaa7ce5c6b27276e6">&#9670;&#160;</a></span>storeSz_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt;<a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a>&gt; ripple::NodeStore::Database::storeSz_ {0}</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00272">272</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="af3332d74cac6eb882c2908e14655d3a0" name="af3332d74cac6eb882c2908e14655d3a0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af3332d74cac6eb882c2908e14655d3a0">&#9670;&#160;</a></span>fetchTotalCount_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt;<a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a>&gt; ripple::NodeStore::Database::fetchTotalCount_ {0}</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00273">273</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="ab4ecdf417aaa8e5d4c88601244fe90d7" name="ab4ecdf417aaa8e5d4c88601244fe90d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab4ecdf417aaa8e5d4c88601244fe90d7">&#9670;&#160;</a></span>fetchDurationUs_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt;<a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a>&gt; ripple::NodeStore::Database::fetchDurationUs_ {0}</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00274">274</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a83e7506a1b302966445210ebe56c3905" name="a83e7506a1b302966445210ebe56c3905"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83e7506a1b302966445210ebe56c3905">&#9670;&#160;</a></span>storeDurationUs_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt;<a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a>&gt; ripple::NodeStore::Database::storeDurationUs_ {0}</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00275">275</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a06fbf66d1f34a6162a17daf72e71eba9" name="a06fbf66d1f34a6162a17daf72e71eba9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a06fbf66d1f34a6162a17daf72e71eba9">&#9670;&#160;</a></span>readLock_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a> ripple::NodeStore::Database::readLock_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">mutable</span><span class="mlabel">private</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00277">277</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a438af3c0eba7891bb79d5c5dcb902556" name="a438af3c0eba7891bb79d5c5dcb902556"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a438af3c0eba7891bb79d5c5dcb902556">&#9670;&#160;</a></span>readCondVar_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/condition_variable.html">std::condition_variable</a> ripple::NodeStore::Database::readCondVar_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00278">278</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a59cd26efed86926842662b223d20359d" name="a59cd26efed86926842662b223d20359d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a59cd26efed86926842662b223d20359d">&#9670;&#160;</a></span>read_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a>&lt; <a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a>, <a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;<a class="elRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>, <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt;void(<a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt;<a class="el" href="classripple_1_1NodeObject.html">NodeObject</a>&gt; const&amp;)&gt; &gt; &gt; &gt; ripple::NodeStore::Database::read_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00286">286</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a7cb4eee79861b6a496fe6ddcd024a5f8" name="a7cb4eee79861b6a496fe6ddcd024a5f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7cb4eee79861b6a496fe6ddcd024a5f8">&#9670;&#160;</a></span>readStopping_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt;bool&gt; ripple::NodeStore::Database::readStopping_ = false</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00288">288</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="af5fd85ba304bf9fd6e5afd7f06025180" name="af5fd85ba304bf9fd6e5afd7f06025180"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af5fd85ba304bf9fd6e5afd7f06025180">&#9670;&#160;</a></span>readThreads_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt;int&gt; ripple::NodeStore::Database::readThreads_ = 0</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00289">289</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="ad9f741a64dae54f4b30f31fb68565283" name="ad9f741a64dae54f4b30f31fb68565283"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad9f741a64dae54f4b30f31fb68565283">&#9670;&#160;</a></span>runningThreads_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt;int&gt; ripple::NodeStore::Database::runningThreads_ = 0</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00290">290</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.5
</small></address>
</body>
</html>