Files
rippled/classripple_1_1NodeStore_1_1DatabaseRotating.html
2025-08-19 09:49:50 -07:00

1670 lines
98 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>rippled: ripple::NodeStore::DatabaseRotating Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">rippled
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceripple.html">ripple</a></li><li class="navelem"><a class="el" href="namespaceripple_1_1NodeStore.html">NodeStore</a></li><li class="navelem"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotating.html">DatabaseRotating</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_1DatabaseRotating-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">ripple::NodeStore::DatabaseRotating Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div></div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="DatabaseRotating_8h_source.html">DatabaseRotating.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ripple::NodeStore::DatabaseRotating:</div>
<div class="dyncontent">
<div class="center"><img src="classripple_1_1NodeStore_1_1DatabaseRotating__inherit__graph.png" border="0" usemap="#aripple_1_1NodeStore_1_1DatabaseRotating_inherit__map" alt="Inheritance graph"/></div>
<map name="aripple_1_1NodeStore_1_1DatabaseRotating_inherit__map" id="aripple_1_1NodeStore_1_1DatabaseRotating_inherit__map">
<area shape="rect" title=" " alt="" coords="16,93,159,133"/>
<area shape="rect" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html" title=" " alt="" coords="5,181,169,221"/>
<area shape="poly" title=" " alt="" coords="90,147,90,181,85,181,85,147"/>
<area shape="rect" href="classripple_1_1NodeStore_1_1Database.html" title="Persistency layer for NodeObject." alt="" coords="16,5,159,45"/>
<area shape="poly" title=" " alt="" coords="90,59,90,93,85,93,85,59"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for ripple::NodeStore::DatabaseRotating:</div>
<div class="dyncontent">
<div class="center"><img src="classripple_1_1NodeStore_1_1DatabaseRotating__coll__graph.png" border="0" usemap="#aripple_1_1NodeStore_1_1DatabaseRotating_coll__map" alt="Collaboration graph"/></div>
<map name="aripple_1_1NodeStore_1_1DatabaseRotating_coll__map" id="aripple_1_1NodeStore_1_1DatabaseRotating_coll__map">
<area shape="rect" title=" " alt="" coords="1535,307,1677,347"/>
<area shape="rect" href="classripple_1_1NodeStore_1_1Database.html" title="Persistency layer for NodeObject." alt="" coords="1343,307,1485,347"/>
<area shape="poly" title=" " alt="" coords="1499,324,1534,324,1534,329,1499,329"/>
<area shape="rect" href="classbeast_1_1Journal.html" title="A generic endpoint for log messages." alt="" coords="1003,14,1114,39"/>
<area shape="poly" title=" " alt="" coords="1128,15,1175,15,1225,20,1275,34,1299,46,1320,61,1347,87,1368,119,1384,153,1396,189,1410,256,1415,306,1409,307,1405,257,1391,190,1379,155,1363,122,1343,91,1317,65,1296,50,1274,39,1224,25,1174,20,1128,21"/>
<area shape="rect" href="classbeast_1_1Journal_1_1Sink.html" title="Abstraction for the underlying message destination." alt="" coords="644,14,791,39"/>
<area shape="poly" title=" " alt="" coords="804,24,1003,24,1003,29,804,29"/>
<area shape="rect" href="classripple_1_1NodeStore_1_1Scheduler.html" title="Scheduling for asynchronous backend activity." alt="" coords="987,64,1130,104"/>
<area shape="poly" title=" " alt="" coords="1144,74,1188,76,1234,83,1279,97,1320,121,1342,140,1360,164,1387,215,1404,266,1412,306,1407,307,1399,267,1382,217,1356,166,1338,144,1317,125,1277,102,1233,88,1187,82,1144,80"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/atomic/atomic.html" title=" " alt="" coords="413,187,620,213"/>
<area shape="poly" title=" " alt="" coords="634,193,748,192,885,195,1032,206,1178,225,1251,243,1320,271,1382,304,1380,309,1318,276,1249,248,1177,231,1031,211,885,201,748,197,634,198"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/types/integer.html" title=" " alt="" coords="5,182,108,207"/>
<area shape="poly" title=" " alt="" coords="106,175,197,151,250,142,304,139,1060,139,1138,144,1197,161,1253,190,1320,232,1365,268,1399,305,1395,308,1361,272,1317,237,1250,195,1195,166,1137,149,1060,144,304,144,251,147,198,156,107,180"/>
<area shape="poly" title=" " alt="" coords="122,193,413,196,413,201,122,198"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/array.html" title=" " alt="" coords="221,232,389,272"/>
<area shape="poly" title=" " alt="" coords="87,213,109,226,133,236,177,246,221,251,221,256,176,251,131,241,107,231,84,218"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/atomic/atomic.html" title=" " alt="" coords="955,363,1162,389"/>
<area shape="poly" title=" " alt="" coords="1144,388,1229,392,1274,389,1318,380,1355,365,1386,344,1389,349,1357,369,1319,385,1275,394,1229,397,1144,393"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/types/integer.html" title=" " alt="" coords="666,363,769,389"/>
<area shape="poly" title=" " alt="" coords="783,373,955,373,955,379,783,379"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/thread/mutex.html" title=" " alt="" coords="1013,413,1105,438"/>
<area shape="poly" title=" " alt="" coords="1119,432,1164,435,1215,435,1267,429,1318,414,1342,400,1363,382,1396,345,1400,349,1367,386,1345,404,1320,418,1268,434,1215,440,1164,441,1118,437"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/thread/condition_variable.html" title=" " alt="" coords="973,462,1144,487"/>
<area shape="poly" title=" " alt="" coords="1158,485,1197,485,1239,482,1279,472,1317,456,1347,433,1372,403,1390,373,1402,346,1407,348,1395,375,1376,407,1351,437,1320,461,1281,477,1240,487,1198,491,1158,491"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/map.html" title=" " alt="" coords="940,240,1177,339"/>
<area shape="poly" title=" " alt="" coords="1192,290,1319,301,1343,306,1342,311,1318,307,1191,295"/>
<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,269,788,309"/>
<area shape="poly" title=" " alt="" coords="802,287,940,287,940,292,802,292"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/types/size_t.html" title=" " alt="" coords="261,299,349,325"/>
<area shape="poly" title=" " alt="" coords="363,313,481,315,551,313,620,308,646,304,647,309,620,313,551,319,482,321,363,318"/>
<area shape="poly" title=" " alt="" coords="403,258,646,280,646,286,403,263"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/atomic/atomic.html" title=" " alt="" coords="982,511,1135,537"/>
<area shape="poly" title=" " alt="" coords="1139,536,1182,538,1229,536,1275,526,1317,506,1337,490,1354,471,1380,427,1397,382,1406,346,1412,347,1402,384,1385,429,1358,474,1341,494,1320,510,1277,531,1230,541,1182,543,1138,541"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/atomic/atomic.html" title=" " alt="" coords="987,569,1130,594"/>
<area shape="poly" title=" " alt="" coords="1119,594,1166,602,1218,603,1270,595,1295,586,1317,573,1343,550,1363,522,1379,491,1390,458,1404,395,1409,347,1415,347,1410,396,1396,459,1384,493,1367,524,1346,553,1320,577,1297,590,1271,600,1218,608,1165,607,1118,600"/>
</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:a9575132eef9af0001fec07684a2434cd" id="r_a9575132eef9af0001fec07684a2434cd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotating.html#a9575132eef9af0001fec07684a2434cd">DatabaseRotating</a> (<a class="el" href="classripple_1_1NodeStore_1_1Scheduler.html">Scheduler</a> &amp;scheduler, int readThreads, <a class="el" href="classripple_1_1Section.html">Section</a> const &amp;config, <a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> journal)</td></tr>
<tr class="separator:a9575132eef9af0001fec07684a2434cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f01b2e1b8281065d791c149c912bb38" id="r_a6f01b2e1b8281065d791c149c912bb38"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotating.html#a6f01b2e1b8281065d791c149c912bb38">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)=0</td></tr>
<tr class="memdesc:a6f01b2e1b8281065d791c149c912bb38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotates the backends. <br /></td></tr>
<tr class="separator:a6f01b2e1b8281065d791c149c912bb38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24f47bc48e8d040c662611674898fe2e" id="r_a24f47bc48e8d040c662611674898fe2e"><td class="memItemLeft" align="right" valign="top">virtual <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_1Database.html#a24f47bc48e8d040c662611674898fe2e">getName</a> () const =0</td></tr>
<tr class="memdesc:a24f47bc48e8d040c662611674898fe2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the name associated with this backend. <br /></td></tr>
<tr class="separator:a24f47bc48e8d040c662611674898fe2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6fd8c555e59355e643a40aaad4d83be6" id="r_a6fd8c555e59355e643a40aaad4d83be6"><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#a6fd8c555e59355e643a40aaad4d83be6">importDatabase</a> (<a class="el" href="classripple_1_1NodeStore_1_1Database.html">Database</a> &amp;source)=0</td></tr>
<tr class="memdesc:a6fd8c555e59355e643a40aaad4d83be6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Import objects from another database. <br /></td></tr>
<tr class="separator:a6fd8c555e59355e643a40aaad4d83be6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aada6493667fd17dd426f6545bf4cac93" id="r_aada6493667fd17dd426f6545bf4cac93"><td class="memItemLeft" align="right" valign="top">virtual <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_1Database.html#aada6493667fd17dd426f6545bf4cac93">getWriteLoad</a> () const =0</td></tr>
<tr class="memdesc:aada6493667fd17dd426f6545bf4cac93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the estimated number of pending write operations. <br /></td></tr>
<tr class="separator:aada6493667fd17dd426f6545bf4cac93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7da2336581ee3348aad97c0d885658d0" id="r_a7da2336581ee3348aad97c0d885658d0"><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#a7da2336581ee3348aad97c0d885658d0">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> ledgerSeq)=0</td></tr>
<tr class="memdesc:a7da2336581ee3348aad97c0d885658d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store the object. <br /></td></tr>
<tr class="separator:a7da2336581ee3348aad97c0d885658d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3e615caca1a493f80515d137b315fa8" id="r_ae3e615caca1a493f80515d137b315fa8"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#ae3e615caca1a493f80515d137b315fa8">isSameDB</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> s1, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> s2)=0</td></tr>
<tr class="separator:ae3e615caca1a493f80515d137b315fa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57b89b559c083fde74a115a3df8f8046" id="r_a57b89b559c083fde74a115a3df8f8046"><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#a57b89b559c083fde74a115a3df8f8046">sync</a> ()=0</td></tr>
<tr class="separator:a57b89b559c083fde74a115a3df8f8046"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a780601a4dce8d688490a24a61f8cea9e" id="r_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. <br /></td></tr>
<tr class="separator:a780601a4dce8d688490a24a61f8cea9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d21a918d521d82947868d21e1aafadb" id="r_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. <br /></td></tr>
<tr class="separator:a0d21a918d521d82947868d21e1aafadb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40a0e5a30857e9ba3c7561748af31e29" id="r_a40a0e5a30857e9ba3c7561748af31e29"><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#a40a0e5a30857e9ba3c7561748af31e29">sweep</a> ()=0</td></tr>
<tr class="memdesc:a40a0e5a30857e9ba3c7561748af31e29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove expired entries from the positive and negative caches. <br /></td></tr>
<tr class="separator:a40a0e5a30857e9ba3c7561748af31e29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ccd565f5a4a5296c049a2a0886f363f" id="r_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. <br /></td></tr>
<tr class="separator:a4ccd565f5a4a5296c049a2a0886f363f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af32a551caa69e8108bdd9a9d74dd774e" id="r_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" id="r_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" id="r_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" id="r_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" id="r_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" id="r_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. <br /></td></tr>
<tr class="separator:aef142866cf7ca2a96d17efc55f8dcc19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affd86ea8d57875e1c9722fdf6a8f6326" id="r_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" id="r_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" id="r_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" id="r_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" id="r_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" id="r_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" id="r_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" id="r_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" id="r_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" id="r_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" id="r_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" id="r_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" id="r_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:af209b5e9d88436caaeb8c24a437a7adb" id="r_af209b5e9d88436caaeb8c24a437a7adb"><td class="memItemLeft" align="right" valign="top">virtual <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#af209b5e9d88436caaeb8c24a437a7adb">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, <a class="el" href="structripple_1_1NodeStore_1_1FetchReport.html">FetchReport</a> &amp;fetchReport, bool duplicate)=0</td></tr>
<tr class="separator:af209b5e9d88436caaeb8c24a437a7adb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b5174a0ffb315030b96815d6ac86eaf" id="r_a2b5174a0ffb315030b96815d6ac86eaf"><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#a2b5174a0ffb315030b96815d6ac86eaf">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)=0</td></tr>
<tr class="memdesc:a2b5174a0ffb315030b96815d6ac86eaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Visit every object in the database This is usually called during import. <br /></td></tr>
<tr class="separator:a2b5174a0ffb315030b96815d6ac86eaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c4180512ff87a967de8091a019dc9f9" id="r_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:a4dc1dcc2a79b60c2c7de7f1bdf05cecf" id="r_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" id="r_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" id="r_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" id="r_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" id="r_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" id="r_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" id="r_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" id="r_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" id="r_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" id="r_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" id="r_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="DatabaseRotating_8h_source.html#l00033">33</a> of file <a class="el" href="DatabaseRotating_8h_source.html">DatabaseRotating.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a9575132eef9af0001fec07684a2434cd" name="a9575132eef9af0001fec07684a2434cd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9575132eef9af0001fec07684a2434cd">&#9670;&#160;</a></span>DatabaseRotating()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ripple::NodeStore::DatabaseRotating::DatabaseRotating </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="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>journal</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="DatabaseRotating_8h_source.html#l00036">36</a> of file <a class="el" href="DatabaseRotating_8h_source.html">DatabaseRotating.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a6f01b2e1b8281065d791c149c912bb38" name="a6f01b2e1b8281065d791c149c912bb38"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6f01b2e1b8281065d791c149c912bb38">&#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">virtual void ripple::NodeStore::DatabaseRotating::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">pure 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>Implemented in <a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#acf7791e3f58c2ae49fec9bc76f42b12c">ripple::NodeStore::DatabaseRotatingImp</a>.</p>
</div>
</div>
<a id="a24f47bc48e8d040c662611674898fe2e" name="a24f47bc48e8d040c662611674898fe2e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a24f47bc48e8d040c662611674898fe2e">&#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">virtual <a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> ripple::NodeStore::Database::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">pure virtual</span><span class="mlabel">inherited</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>Implemented in <a class="el" href="classripple_1_1NodeStore_1_1DatabaseNodeImp.html#a2fb3e575c65dfb865877a15b7a365763">ripple::NodeStore::DatabaseNodeImp</a>, and <a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#a9c3f2d7e8b7e4cca14afe2177c1466b3">ripple::NodeStore::DatabaseRotatingImp</a>.</p>
</div>
</div>
<a id="a6fd8c555e59355e643a40aaad4d83be6" name="a6fd8c555e59355e643a40aaad4d83be6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6fd8c555e59355e643a40aaad4d83be6">&#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">virtual void ripple::NodeStore::Database::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">pure virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Import objects from another database. </p>
<p>Implemented in <a class="el" href="classripple_1_1NodeStore_1_1DatabaseNodeImp.html#a380e2a69a0b7bb021e99f36b753c9b24">ripple::NodeStore::DatabaseNodeImp</a>, and <a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#a8210f362baae4b4b3f6f1bff9b808317">ripple::NodeStore::DatabaseRotatingImp</a>.</p>
</div>
</div>
<a id="aada6493667fd17dd426f6545bf4cac93" name="aada6493667fd17dd426f6545bf4cac93"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aada6493667fd17dd426f6545bf4cac93">&#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">virtual <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::int32_t</a> ripple::NodeStore::Database::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">pure virtual</span><span class="mlabel">inherited</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>Implemented in <a class="el" href="classripple_1_1NodeStore_1_1DatabaseNodeImp.html#aa8d9a1100a8db28cf142e8fe32aee440">ripple::NodeStore::DatabaseNodeImp</a>, and <a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#a3b006f7535475fd276bc30b77a1b4673">ripple::NodeStore::DatabaseRotatingImp</a>.</p>
</div>
</div>
<a id="a7da2336581ee3348aad97c0d885658d0" name="a7da2336581ee3348aad97c0d885658d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7da2336581ee3348aad97c0d885658d0">&#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">virtual void ripple::NodeStore::Database::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">pure virtual</span><span class="mlabel">inherited</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>Implemented in <a class="el" href="classripple_1_1NodeStore_1_1DatabaseNodeImp.html#a5f23a54188aa2329d979c937d932dbaf">ripple::NodeStore::DatabaseNodeImp</a>, and <a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#a7992d0dd009c5b855c331c73872c946d">ripple::NodeStore::DatabaseRotatingImp</a>.</p>
</div>
</div>
<a id="ae3e615caca1a493f80515d137b315fa8" name="ae3e615caca1a493f80515d137b315fa8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae3e615caca1a493f80515d137b315fa8">&#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">virtual bool ripple::NodeStore::Database::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"><em>s1</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>s2</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">pure virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implemented in <a class="el" href="classripple_1_1NodeStore_1_1DatabaseNodeImp.html#a257548afff5a0e3c3f8c2817f71b96f3">ripple::NodeStore::DatabaseNodeImp</a>, and <a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#ac8dfef2dee29968270119971f4d60f94">ripple::NodeStore::DatabaseRotatingImp</a>.</p>
</div>
</div>
<a id="a57b89b559c083fde74a115a3df8f8046" name="a57b89b559c083fde74a115a3df8f8046"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a57b89b559c083fde74a115a3df8f8046">&#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">virtual void ripple::NodeStore::Database::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">pure virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implemented in <a class="el" href="classripple_1_1NodeStore_1_1DatabaseNodeImp.html#a9d7f2670a02c7f6670966aedb2fa353b">ripple::NodeStore::DatabaseNodeImp</a>, and <a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#a61a400a9f8a8403d64c70b8d089c5be0">ripple::NodeStore::DatabaseRotatingImp</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">[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::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="af209b5e9d88436caaeb8c24a437a7adb" name="af209b5e9d88436caaeb8c24a437a7adb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af209b5e9d88436caaeb8c24a437a7adb">&#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">virtual <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>, </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">private</span><span class="mlabel">pure virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implemented in <a class="el" href="classripple_1_1NodeStore_1_1DatabaseNodeImp.html#adbf6df05e8f7c4a2e51028ef7cfc03b5">ripple::NodeStore::DatabaseNodeImp</a>, and <a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#a7415a182938d791526ebda24e72c17f1">ripple::NodeStore::DatabaseRotatingImp</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="a40a0e5a30857e9ba3c7561748af31e29" name="a40a0e5a30857e9ba3c7561748af31e29"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a40a0e5a30857e9ba3c7561748af31e29">&#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">virtual void ripple::NodeStore::Database::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">pure virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Remove expired entries from the positive and negative caches. </p>
<p>Implemented in <a class="el" href="classripple_1_1NodeStore_1_1DatabaseNodeImp.html#af83b106a8e0f80ef92cc3140e1112ec0">ripple::NodeStore::DatabaseNodeImp</a>, and <a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#aa67b13515a70659f536b6d1cfeb1c2a2">ripple::NodeStore::DatabaseRotatingImp</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="a2b5174a0ffb315030b96815d6ac86eaf" name="a2b5174a0ffb315030b96815d6ac86eaf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b5174a0ffb315030b96815d6ac86eaf">&#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">virtual void ripple::NodeStore::Database::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">private</span><span class="mlabel">pure virtual</span><span class="mlabel">inherited</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>Implemented in <a class="el" href="classripple_1_1NodeStore_1_1DatabaseNodeImp.html#a6692b0758fc43e2d78520ff5e699e8b1">ripple::NodeStore::DatabaseNodeImp</a>, and <a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#aee99c67c55042890a37368f5d17620d4">ripple::NodeStore::DatabaseRotatingImp</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="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.8
</small></address>
</body>
</html>