Files
rippled/classripple_1_1NodeStore_1_1DatabaseRotating.html
2021-02-05 19:01:54 +00:00

2516 lines
146 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">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<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 style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">rippled
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</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-types">Private Types</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">
<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="#ripple_1_1NodeStore_1_1DatabaseRotating_inherit__map" alt="Inheritance graph"/></div>
<map name="ripple_1_1NodeStore_1_1DatabaseRotating_inherit__map" id="ripple_1_1NodeStore_1_1DatabaseRotating_inherit__map">
<area shape="rect" title=" " alt="" coords="15,169,158,211"/>
<area shape="rect" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html" title=" " alt="" coords="5,259,168,300"/>
<area shape="rect" href="classripple_1_1NodeStore_1_1Database.html" title="Persistency layer for NodeObject." alt="" coords="15,80,158,121"/>
<area shape="rect" href="classripple_1_1Stoppable.html" title="Provides an interface for starting and stopping." alt="" coords="21,5,153,32"/>
</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="#ripple_1_1NodeStore_1_1DatabaseRotating_coll__map" alt="Collaboration graph"/></div>
<map name="ripple_1_1NodeStore_1_1DatabaseRotating_coll__map" id="ripple_1_1NodeStore_1_1DatabaseRotating_coll__map">
<area shape="rect" title=" " alt="" coords="1725,766,1868,807"/>
<area shape="rect" href="classripple_1_1NodeStore_1_1Database.html" title="Persistency layer for NodeObject." alt="" coords="1524,766,1667,807"/>
<area shape="rect" href="classripple_1_1Stoppable.html" title="Provides an interface for starting and stopping." alt="" coords="1165,423,1297,449"/>
<area shape="rect" href="classripple_1_1RootStoppable.html" title=" " alt="" coords="1515,240,1676,267"/>
<area shape="rect" href="structripple_1_1Stoppable_1_1Child.html" title=" " alt="" coords="1525,485,1665,526"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/atomic/atomic.html" title=" " alt="" coords="751,268,905,295"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/thread/condition_variable.html" title=" " alt="" coords="743,319,913,345"/>
<area shape="rect" href="classripple_1_1ClosureCounter.html" title=" " alt="" coords="1147,111,1314,153"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/thread/mutex.html" title="STL class." alt="" coords="782,107,874,133"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/atomic/atomic.html" title=" " alt="" coords="757,5,899,32"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/string/basic_string.html" title="STL class." alt="" coords="785,419,871,445"/>
<area shape="rect" href="classbeast_1_1LockFreeStack_1_1Node.html" title=" " alt="" coords="5,461,184,502"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/atomic/atomic.html" title=" " alt="" coords="297,470,488,511"/>
<area shape="rect" href="classbeast_1_1LockFreeStack.html" title=" " alt="" coords="749,470,907,511"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/types/integer.html" title=" " alt="" coords="43,825,146,852"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/container/array.html" title=" " alt="" coords="309,1038,477,1079"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/atomic/atomic.html" title=" " alt="" coords="512,748,719,775"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/container/vector.html" title=" " alt="" coords="1135,875,1326,901"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/thread/thread.html" title="STL class." alt="" coords="782,887,874,913"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/atomic/atomic.html" title=" " alt="" coords="1127,925,1334,952"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/types/integer.html" title=" " alt="" coords="777,937,879,964"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/container/map.html" title=" " alt="" coords="1112,977,1349,1077"/>
<area shape="rect" href="classripple_1_1base__uint.html" title="Integers of any length that is a multiple of 32&#45;bits." alt="" coords="757,1006,899,1047"/>
<area shape="rect" href="classripple_1_1base__uint.html" title=" " alt="" coords="757,1083,899,1125"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/types/size_t.html" title=" " alt="" coords="349,963,437,989"/>
<area shape="rect" href="classripple_1_1NodeStore_1_1Scheduler.html" title="Scheduling for asynchronous backend activity." alt="" coords="1159,657,1302,698"/>
<area shape="rect" href="classbeast_1_1Journal.html" title="A generic endpoint for log messages." alt="" coords="1175,773,1286,800"/>
<area shape="rect" href="classbeast_1_1Journal_1_1Sink.html" title="Abstraction for the underlying message destination." alt="" coords="755,773,901,800"/>
</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 name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a25b2d9e325177c994b50a07f30fff85f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotating.html#a25b2d9e325177c994b50a07f30fff85f">DatabaseRotating</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;name, <a class="el" href="classripple_1_1Stoppable.html">Stoppable</a> &amp;parent, <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:a25b2d9e325177c994b50a07f30fff85f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae436a072e5a6068e819776a53fc0ab25"><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#ae436a072e5a6068e819776a53fc0ab25">rotateWithLock</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt; <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;(<a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;writableBackendName)&gt; const &amp;f)=0</td></tr>
<tr class="memdesc:ae436a072e5a6068e819776a53fc0ab25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotates the backends. <a href="classripple_1_1NodeStore_1_1DatabaseRotating.html#ae436a072e5a6068e819776a53fc0ab25">More...</a><br /></td></tr>
<tr class="separator:ae436a072e5a6068e819776a53fc0ab25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem: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. <a href="classripple_1_1NodeStore_1_1Database.html#a24f47bc48e8d040c662611674898fe2e">More...</a><br /></td></tr>
<tr class="separator:a24f47bc48e8d040c662611674898fe2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1946e6706aecab34d6ea2207a33f6bc"><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#ac1946e6706aecab34d6ea2207a33f6bc">import</a> (<a class="el" href="classripple_1_1NodeStore_1_1Database.html">Database</a> &amp;source)=0</td></tr>
<tr class="memdesc:ac1946e6706aecab34d6ea2207a33f6bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Import objects from another database. <a href="classripple_1_1NodeStore_1_1Database.html#ac1946e6706aecab34d6ea2207a33f6bc">More...</a><br /></td></tr>
<tr class="separator:ac1946e6706aecab34d6ea2207a33f6bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem: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. <a href="classripple_1_1NodeStore_1_1Database.html#aada6493667fd17dd426f6545bf4cac93">More...</a><br /></td></tr>
<tr class="separator:aada6493667fd17dd426f6545bf4cac93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem: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. <a href="classripple_1_1NodeStore_1_1Database.html#a7da2336581ee3348aad97c0d885658d0">More...</a><br /></td></tr>
<tr class="separator:a7da2336581ee3348aad97c0d885658d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem: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"><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:a4c2e13367bf02755107ee7ca3ad756be"><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#a4c2e13367bf02755107ee7ca3ad756be">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>)</td></tr>
<tr class="memdesc:a4c2e13367bf02755107ee7ca3ad756be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a node object. <a href="classripple_1_1NodeStore_1_1Database.html#a4c2e13367bf02755107ee7ca3ad756be">More...</a><br /></td></tr>
<tr class="separator:a4c2e13367bf02755107ee7ca3ad756be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d21a918d521d82947868d21e1aafadb"><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#a0d21a918d521d82947868d21e1aafadb">asyncFetch</a> (<a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> const &amp;hash, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> ledgerSeq, <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt; void(<a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1NodeObject.html">NodeObject</a> &gt; const &amp;)&gt; &amp;&amp;callback)</td></tr>
<tr class="memdesc:a0d21a918d521d82947868d21e1aafadb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch an object without waiting. <a href="classripple_1_1NodeStore_1_1Database.html#a0d21a918d521d82947868d21e1aafadb">More...</a><br /></td></tr>
<tr class="separator:a0d21a918d521d82947868d21e1aafadb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad7aa12d0cc01006120761d23312d428"><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#aad7aa12d0cc01006120761d23312d428">storeLedger</a> (<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_1Ledger.html">Ledger</a> const &gt; const &amp;srcLedger)=0</td></tr>
<tr class="memdesc:aad7aa12d0cc01006120761d23312d428"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store a ledger from a different database. <a href="classripple_1_1NodeStore_1_1Database.html#aad7aa12d0cc01006120761d23312d428">More...</a><br /></td></tr>
<tr class="separator:aad7aa12d0cc01006120761d23312d428"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem: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. <a href="classripple_1_1NodeStore_1_1Database.html#a40a0e5a30857e9ba3c7561748af31e29">More...</a><br /></td></tr>
<tr class="separator:a40a0e5a30857e9ba3c7561748af31e29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ccd565f5a4a5296c049a2a0886f363f"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a4ccd565f5a4a5296c049a2a0886f363f">getStoreCount</a> () const</td></tr>
<tr class="memdesc:a4ccd565f5a4a5296c049a2a0886f363f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gather statistics pertaining to read and write activities. <a href="classripple_1_1NodeStore_1_1Database.html#a4ccd565f5a4a5296c049a2a0886f363f">More...</a><br /></td></tr>
<tr class="separator:a4ccd565f5a4a5296c049a2a0886f363f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af32a551caa69e8108bdd9a9d74dd774e"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#af32a551caa69e8108bdd9a9d74dd774e">getFetchTotalCount</a> () const</td></tr>
<tr class="separator:af32a551caa69e8108bdd9a9d74dd774e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad28a451b16bc693364a1074c0f767f1f"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#ad28a451b16bc693364a1074c0f767f1f">getFetchHitCount</a> () const</td></tr>
<tr class="separator:ad28a451b16bc693364a1074c0f767f1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f2ed25135bf1d2aa487a2b2dc5c85cd"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a0f2ed25135bf1d2aa487a2b2dc5c85cd">getStoreSize</a> () const</td></tr>
<tr class="separator:a0f2ed25135bf1d2aa487a2b2dc5c85cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ebb38ac8562f6b1673a9f3b8216efce"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a8ebb38ac8562f6b1673a9f3b8216efce">getFetchSize</a> () const</td></tr>
<tr class="separator:a8ebb38ac8562f6b1673a9f3b8216efce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a023779f42976b9c22da655bf9fd4f4a5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a023779f42976b9c22da655bf9fd4f4a5">getCountsJson</a> (<a class="el" href="classJson_1_1Value.html">Json::Value</a> &amp;obj)</td></tr>
<tr class="separator:a023779f42976b9c22da655bf9fd4f4a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef142866cf7ca2a96d17efc55f8dcc19"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#aef142866cf7ca2a96d17efc55f8dcc19">fdRequired</a> () const</td></tr>
<tr class="memdesc:aef142866cf7ca2a96d17efc55f8dcc19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of file descriptors the database expects to need. <a href="classripple_1_1NodeStore_1_1Database.html#aef142866cf7ca2a96d17efc55f8dcc19">More...</a><br /></td></tr>
<tr class="separator:aef142866cf7ca2a96d17efc55f8dcc19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0923c37ede6c7ffeca02f59f566cf588"><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#a0923c37ede6c7ffeca02f59f566cf588">onStop</a> () override</td></tr>
<tr class="memdesc:a0923c37ede6c7ffeca02f59f566cf588"><td class="mdescLeft">&#160;</td><td class="mdescRight">Override called when the stop notification is issued. <a href="classripple_1_1NodeStore_1_1Database.html#a0923c37ede6c7ffeca02f59f566cf588">More...</a><br /></td></tr>
<tr class="separator:a0923c37ede6c7ffeca02f59f566cf588"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae84b30410af69ec7e7adcdb6265a4af8"><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#ae84b30410af69ec7e7adcdb6265a4af8">onChildrenStopped</a> () override</td></tr>
<tr class="memdesc:ae84b30410af69ec7e7adcdb6265a4af8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Override called when all children have stopped. <a href="classripple_1_1NodeStore_1_1Database.html#ae84b30410af69ec7e7adcdb6265a4af8">More...</a><br /></td></tr>
<tr class="separator:ae84b30410af69ec7e7adcdb6265a4af8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51f2d9197ceae15155509404ce09d9a7"><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#a51f2d9197ceae15155509404ce09d9a7">earliestLedgerSeq</a> () const</td></tr>
<tr class="separator:a51f2d9197ceae15155509404ce09d9a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9b6cb02b4e1128bd2c4e1a81c9d695c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1RootStoppable.html">RootStoppable</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Stoppable.html#ae9b6cb02b4e1128bd2c4e1a81c9d695c">getRoot</a> ()</td></tr>
<tr class="separator:ae9b6cb02b4e1128bd2c4e1a81c9d695c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adea135697761febf430a8628814c7902"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Stoppable.html#adea135697761febf430a8628814c7902">setParent</a> (<a class="el" href="classripple_1_1Stoppable.html">Stoppable</a> &amp;parent)</td></tr>
<tr class="memdesc:adea135697761febf430a8628814c7902"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the parent of this <a class="el" href="classripple_1_1Stoppable.html" title="Provides an interface for starting and stopping.">Stoppable</a>. <a href="classripple_1_1Stoppable.html#adea135697761febf430a8628814c7902">More...</a><br /></td></tr>
<tr class="separator:adea135697761febf430a8628814c7902"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a836b8737444ef1133c3596e61010fa80"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Stoppable.html#a836b8737444ef1133c3596e61010fa80">isStopping</a> () const</td></tr>
<tr class="memdesc:a836b8737444ef1133c3596e61010fa80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns <code>true</code> if the stoppable should stop. <a href="classripple_1_1Stoppable.html#a836b8737444ef1133c3596e61010fa80">More...</a><br /></td></tr>
<tr class="separator:a836b8737444ef1133c3596e61010fa80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1e1447ecb573d2341c8a71afd3e76da"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Stoppable.html#af1e1447ecb573d2341c8a71afd3e76da">isStopped</a> () const</td></tr>
<tr class="memdesc:af1e1447ecb573d2341c8a71afd3e76da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns <code>true</code> if the requested stop has completed. <a href="classripple_1_1Stoppable.html#af1e1447ecb573d2341c8a71afd3e76da">More...</a><br /></td></tr>
<tr class="separator:af1e1447ecb573d2341c8a71afd3e76da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ec6fda89ff8bc63251a9c3682311e5d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Stoppable.html#a9ec6fda89ff8bc63251a9c3682311e5d">areChildrenStopped</a> () const</td></tr>
<tr class="memdesc:a9ec6fda89ff8bc63251a9c3682311e5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns <code>true</code> if all children have stopped. <a href="classripple_1_1Stoppable.html#a9ec6fda89ff8bc63251a9c3682311e5d">More...</a><br /></td></tr>
<tr class="separator:a9ec6fda89ff8bc63251a9c3682311e5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc824cd8bdcffbac3c919c7e6009dea5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceripple.html#adf17c8e58c57ecf0ed6cbc7ee1c2ab22">JobCounter</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Stoppable.html#acc824cd8bdcffbac3c919c7e6009dea5">jobCounter</a> ()</td></tr>
<tr class="separator:acc824cd8bdcffbac3c919c7e6009dea5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca4a925fd0df7e3a3bca51c9593e6a6e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Stoppable.html#aca4a925fd0df7e3a3bca51c9593e6a6e">alertable_sleep_until</a> (std::chrono::system_clock::time_point const &amp;t)</td></tr>
<tr class="memdesc:aca4a925fd0df7e3a3bca51c9593e6a6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sleep or wake up on stop. <a href="classripple_1_1Stoppable.html#aca4a925fd0df7e3a3bca51c9593e6a6e">More...</a><br /></td></tr>
<tr class="separator:aca4a925fd0df7e3a3bca51c9593e6a6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a410587cb70ec38bb10cfab3218f54d16"><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#a410587cb70ec38bb10cfab3218f54d16">storeLedger</a> (<a class="el" href="classripple_1_1Ledger.html">Ledger</a> const &amp;srcLedger, <a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1NodeStore_1_1Backend.html">Backend</a> &gt; dstBackend)</td></tr>
<tr class="separator:a410587cb70ec38bb10cfab3218f54d16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb9c1d15c7638e1448be9f5a98563f6b"><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#adb9c1d15c7638e1448be9f5a98563f6b">stopReadThreads</a> ()</td></tr>
<tr class="separator:adb9c1d15c7638e1448be9f5a98563f6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a090e39b8c6733b0dc4553f9e8e705605"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a090e39b8c6733b0dc4553f9e8e705605">storeStats</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> count, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> sz)</td></tr>
<tr class="separator:a090e39b8c6733b0dc4553f9e8e705605"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af885d9fe877259a258481f0df20697cd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#af885d9fe877259a258481f0df20697cd">importInternal</a> (<a class="el" href="classripple_1_1NodeStore_1_1Backend.html">Backend</a> &amp;dstBackend, <a class="el" href="classripple_1_1NodeStore_1_1Database.html">Database</a> &amp;srcDB)</td></tr>
<tr class="separator:af885d9fe877259a258481f0df20697cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdcb3e7fdaeae1252f850c0e2a4646c2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#abdcb3e7fdaeae1252f850c0e2a4646c2">updateFetchMetrics</a> (uint64_t fetches, uint64_t hits, uint64_t duration)</td></tr>
<tr class="separator:abdcb3e7fdaeae1252f850c0e2a4646c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65a95f9c14637491df60d3a07518fa09"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Stoppable.html#a65a95f9c14637491df60d3a07518fa09">stopped</a> ()</td></tr>
<tr class="memdesc:a65a95f9c14637491df60d3a07518fa09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by derived classes to indicate that the stoppable has stopped. <a href="classripple_1_1Stoppable.html#a65a95f9c14637491df60d3a07518fa09">More...</a><br /></td></tr>
<tr class="separator:a65a95f9c14637491df60d3a07518fa09"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a0d7c3d303adce36199b2c67c4df8a2de"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classbeast_1_1Journal.html">beast::Journal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a0d7c3d303adce36199b2c67c4df8a2de">j_</a></td></tr>
<tr class="separator:a0d7c3d303adce36199b2c67c4df8a2de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e5bc58351ded4683d7207383794a484"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1NodeStore_1_1Scheduler.html">Scheduler</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a0e5bc58351ded4683d7207383794a484">scheduler_</a></td></tr>
<tr class="separator:a0e5bc58351ded4683d7207383794a484"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a730a87cf8b617a8afb30e2531ede0f81"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a730a87cf8b617a8afb30e2531ede0f81">fdRequired_</a> {0}</td></tr>
<tr class="separator:a730a87cf8b617a8afb30e2531ede0f81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89497b9b4c5530b58040931489015d30"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a89497b9b4c5530b58040931489015d30">fetchHitCount_</a> {0}</td></tr>
<tr class="separator:a89497b9b4c5530b58040931489015d30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04150d23aa2acaf016d4ca40bd10804a"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a04150d23aa2acaf016d4ca40bd10804a">fetchSz_</a> {0}</td></tr>
<tr class="separator:a04150d23aa2acaf016d4ca40bd10804a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-types"></a>
Private Types</h2></td></tr>
<tr class="memitem:a43594a8835ccb53d7b80983694d26cad"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Stoppable.html#a43594a8835ccb53d7b80983694d26cad">Children</a> = <a class="el" href="classbeast_1_1LockFreeStack.html">beast::LockFreeStack</a>&lt; <a class="el" href="structripple_1_1Stoppable_1_1Child.html">Child</a> &gt;</td></tr>
<tr class="separator:a43594a8835ccb53d7b80983694d26cad"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:a3f629d9f90e843367887aee6f52f6e1e"><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#a3f629d9f90e843367887aee6f52f6e1e">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)=0</td></tr>
<tr class="separator:a3f629d9f90e843367887aee6f52f6e1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem: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. <a href="classripple_1_1NodeStore_1_1Database.html#a2b5174a0ffb315030b96815d6ac86eaf">More...</a><br /></td></tr>
<tr class="separator:a2b5174a0ffb315030b96815d6ac86eaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba0e02eea82d047dde49d56f362347bf"><td class="memItemLeft" align="right" valign="top">virtual <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; <a class="el" href="structripple_1_1NodeStore_1_1Backend_1_1Counters.html">Backend::Counters</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#aba0e02eea82d047dde49d56f362347bf">getCounters</a> () const</td></tr>
<tr class="memdesc:aba0e02eea82d047dde49d56f362347bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve backend read and write stats. <a href="classripple_1_1NodeStore_1_1Database.html#aba0e02eea82d047dde49d56f362347bf">More...</a><br /></td></tr>
<tr class="separator:aba0e02eea82d047dde49d56f362347bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c4180512ff87a967de8091a019dc9f9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a7c4180512ff87a967de8091a019dc9f9">threadEntry</a> ()</td></tr>
<tr class="separator:a7c4180512ff87a967de8091a019dc9f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2a5544b4bfc0dccdc6a2a46f6ff5d84"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Stoppable.html#ab2a5544b4bfc0dccdc6a2a46f6ff5d84">onPrepare</a> ()</td></tr>
<tr class="memdesc:ab2a5544b4bfc0dccdc6a2a46f6ff5d84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Override called during preparation. <a href="classripple_1_1Stoppable.html#ab2a5544b4bfc0dccdc6a2a46f6ff5d84">More...</a><br /></td></tr>
<tr class="separator:ab2a5544b4bfc0dccdc6a2a46f6ff5d84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f24b7fcb7e8679dfd3783e9ffe3bbde"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Stoppable.html#a0f24b7fcb7e8679dfd3783e9ffe3bbde">onStart</a> ()</td></tr>
<tr class="memdesc:a0f24b7fcb7e8679dfd3783e9ffe3bbde"><td class="mdescLeft">&#160;</td><td class="mdescRight">Override called during start. <a href="classripple_1_1Stoppable.html#a0f24b7fcb7e8679dfd3783e9ffe3bbde">More...</a><br /></td></tr>
<tr class="separator:a0f24b7fcb7e8679dfd3783e9ffe3bbde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a390c62d40a1ca754dfb2de4befa02b0d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Stoppable.html#a390c62d40a1ca754dfb2de4befa02b0d">prepareRecursive</a> ()</td></tr>
<tr class="separator:a390c62d40a1ca754dfb2de4befa02b0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab53b667e9786bed2c10dd3fcd02b517f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Stoppable.html#ab53b667e9786bed2c10dd3fcd02b517f">startRecursive</a> ()</td></tr>
<tr class="separator:ab53b667e9786bed2c10dd3fcd02b517f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34ddbefa8dda0aab52b8ecf493833d62"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Stoppable.html#a34ddbefa8dda0aab52b8ecf493833d62">stopAsyncRecursive</a> (<a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> j)</td></tr>
<tr class="separator:a34ddbefa8dda0aab52b8ecf493833d62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a294e4d3874e76f53a443cb4df306913f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Stoppable.html#a294e4d3874e76f53a443cb4df306913f">stopRecursive</a> (<a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> j)</td></tr>
<tr class="separator:a294e4d3874e76f53a443cb4df306913f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a4dc1dcc2a79b60c2c7de7f1bdf05cecf"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a4dc1dcc2a79b60c2c7de7f1bdf05cecf">storeCount_</a> {0}</td></tr>
<tr class="separator:a4dc1dcc2a79b60c2c7de7f1bdf05cecf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5dbc9808c511caeaaa7ce5c6b27276e6"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a5dbc9808c511caeaaa7ce5c6b27276e6">storeSz_</a> {0}</td></tr>
<tr class="separator:a5dbc9808c511caeaaa7ce5c6b27276e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3332d74cac6eb882c2908e14655d3a0"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#af3332d74cac6eb882c2908e14655d3a0">fetchTotalCount_</a> {0}</td></tr>
<tr class="separator:af3332d74cac6eb882c2908e14655d3a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4ecdf417aaa8e5d4c88601244fe90d7"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#ab4ecdf417aaa8e5d4c88601244fe90d7">fetchDurationUs_</a> {0}</td></tr>
<tr class="separator:ab4ecdf417aaa8e5d4c88601244fe90d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83e7506a1b302966445210ebe56c3905"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a83e7506a1b302966445210ebe56c3905">storeDurationUs_</a> {0}</td></tr>
<tr class="separator:a83e7506a1b302966445210ebe56c3905"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06fbf66d1f34a6162a17daf72e71eba9"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a06fbf66d1f34a6162a17daf72e71eba9">readLock_</a></td></tr>
<tr class="separator:a06fbf66d1f34a6162a17daf72e71eba9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a438af3c0eba7891bb79d5c5dcb902556"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/condition_variable.html">std::condition_variable</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a438af3c0eba7891bb79d5c5dcb902556">readCondVar_</a></td></tr>
<tr class="separator:a438af3c0eba7891bb79d5c5dcb902556"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59cd26efed86926842662b223d20359d"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a>&lt; <a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a>, <a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>, <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt; void(<a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1NodeObject.html">NodeObject</a> &gt; const &amp;)&gt; &gt; &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#a59cd26efed86926842662b223d20359d">read_</a></td></tr>
<tr class="separator:a59cd26efed86926842662b223d20359d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe98ed8463413de1a92d439cc1aebb35"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#afe98ed8463413de1a92d439cc1aebb35">readLastHash_</a></td></tr>
<tr class="separator:afe98ed8463413de1a92d439cc1aebb35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad769f906ab9351dc6c4fa166b3937e1c"><td class="memItemLeft" align="right" valign="top"><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/thread/thread.html">std::thread</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1Database.html#ad769f906ab9351dc6c4fa166b3937e1c">readThreads_</a></td></tr>
<tr class="separator:ad769f906ab9351dc6c4fa166b3937e1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0056efda3dfb01158eece68b05c98c2d"><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#a0056efda3dfb01158eece68b05c98c2d">readShut_</a> {false}</td></tr>
<tr class="separator:a0056efda3dfb01158eece68b05c98c2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa59aca23acd391245f0b403df74ac8be"><td class="memItemLeft" align="right" valign="top">const <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#aa59aca23acd391245f0b403df74ac8be">earliestLedgerSeq_</a></td></tr>
<tr class="separator:aa59aca23acd391245f0b403df74ac8be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3bee0684bbf67bc8c2f974cc30523cea"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Stoppable.html#a3bee0684bbf67bc8c2f974cc30523cea">m_name</a></td></tr>
<tr class="separator:a3bee0684bbf67bc8c2f974cc30523cea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a889a7b2e1b4c0fd463c51abfaa0ee0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1RootStoppable.html">RootStoppable</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Stoppable.html#a3a889a7b2e1b4c0fd463c51abfaa0ee0">m_root</a></td></tr>
<tr class="separator:a3a889a7b2e1b4c0fd463c51abfaa0ee0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9ece0159fb3954819b6b6f1672ac2e4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structripple_1_1Stoppable_1_1Child.html">Child</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Stoppable.html#ab9ece0159fb3954819b6b6f1672ac2e4">m_child</a></td></tr>
<tr class="separator:ab9ece0159fb3954819b6b6f1672ac2e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d39131e97d8faa6beb1d36eab19dc2f"><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_1Stoppable.html#a9d39131e97d8faa6beb1d36eab19dc2f">m_stopped</a> {false}</td></tr>
<tr class="separator:a9d39131e97d8faa6beb1d36eab19dc2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c1e09326ea6d61009b6630c9e297c89"><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_1Stoppable.html#a8c1e09326ea6d61009b6630c9e297c89">m_childrenStopped</a> {false}</td></tr>
<tr class="separator:a8c1e09326ea6d61009b6630c9e297c89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc549cdc2b0ebef1878e6d79c496be4d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1Stoppable.html#a43594a8835ccb53d7b80983694d26cad">Children</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Stoppable.html#adc549cdc2b0ebef1878e6d79c496be4d">m_children</a></td></tr>
<tr class="separator:adc549cdc2b0ebef1878e6d79c496be4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c9a256ee2a1f891a042dda5c89360c0"><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_1Stoppable.html#a3c9a256ee2a1f891a042dda5c89360c0">m_cv</a></td></tr>
<tr class="separator:a3c9a256ee2a1f891a042dda5c89360c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb1038efa534f43ebbd76db775592aaf"><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_1Stoppable.html#afb1038efa534f43ebbd76db775592aaf">m_mut</a></td></tr>
<tr class="separator:afb1038efa534f43ebbd76db775592aaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12f304b9baab521c4f5f8291485f1391"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Stoppable.html#a12f304b9baab521c4f5f8291485f1391">m_is_stopping</a> = false</td></tr>
<tr class="separator:a12f304b9baab521c4f5f8291485f1391"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1538bf3e4636b78efa3d30a5596eddf7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1Stoppable.html#a1538bf3e4636b78efa3d30a5596eddf7">hasParent_</a> {false}</td></tr>
<tr class="separator:a1538bf3e4636b78efa3d30a5596eddf7"><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">Member Typedef Documentation</h2>
<a id="a43594a8835ccb53d7b80983694d26cad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a43594a8835ccb53d7b80983694d26cad">&#9670;&nbsp;</a></span>Children</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classripple_1_1Stoppable.html#a43594a8835ccb53d7b80983694d26cad">ripple::Stoppable::Children</a> = <a class="el" href="classbeast_1_1LockFreeStack.html">beast::LockFreeStack</a>&lt;<a class="el" href="structripple_1_1Stoppable_1_1Child.html">Child</a>&gt;</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="Stoppable_8h_source.html#l00319">319</a> of file <a class="el" href="Stoppable_8h_source.html">Stoppable.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a25b2d9e325177c994b50a07f30fff85f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a25b2d9e325177c994b50a07f30fff85f">&#9670;&nbsp;</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="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1Stoppable.html">Stoppable</a> &amp;&#160;</td>
<td class="paramname"><em>parent</em>, </td>
</tr>
<tr>
<td class="paramkey"></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="ae436a072e5a6068e819776a53fc0ab25"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae436a072e5a6068e819776a53fc0ab25">&#9670;&nbsp;</a></span>rotateWithLock()</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::rotateWithLock </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt; <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;(<a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;writableBackendName)&gt; const &amp;&#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">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">f</td><td>A function executed before the rotation and under the same lock </td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#a76f256f68048bc81a0d034f7226387b8">ripple::NodeStore::DatabaseRotatingImp</a>.</p>
</div>
</div>
<a id="a24f47bc48e8d040c662611674898fe2e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a24f47bc48e8d040c662611674898fe2e">&#9670;&nbsp;</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_1DatabaseShardImp.html#a8d51265eb7fb99f0b830b81d4d3fc214">ripple::NodeStore::DatabaseShardImp</a>, <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="ac1946e6706aecab34d6ea2207a33f6bc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac1946e6706aecab34d6ea2207a33f6bc">&#9670;&nbsp;</a></span>import()</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::import </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_1DatabaseShardImp.html#a373209a587ff5d3bb6aab0bae760149c">ripple::NodeStore::DatabaseShardImp</a>, <a class="el" href="classripple_1_1NodeStore_1_1DatabaseNodeImp.html#a2917747708b498ce8b0a24e074aa5b1f">ripple::NodeStore::DatabaseNodeImp</a>, and <a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#ae018381e1b62ed9c61ef8a82d1b3db47">ripple::NodeStore::DatabaseRotatingImp</a>.</p>
</div>
</div>
<a id="aada6493667fd17dd426f6545bf4cac93"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aada6493667fd17dd426f6545bf4cac93">&#9670;&nbsp;</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_1DatabaseShardImp.html#a494d3b67a11fccc7f21c0a5e58b1e26b">ripple::NodeStore::DatabaseShardImp</a>, <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"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7da2336581ee3348aad97c0d885658d0">&#9670;&nbsp;</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_1DatabaseRotatingImp.html#a7992d0dd009c5b855c331c73872c946d">ripple::NodeStore::DatabaseRotatingImp</a>, and <a class="el" href="classripple_1_1NodeStore_1_1DatabaseShardImp.html#aa2a32f28cb0b4e0a5097205410c346eb">ripple::NodeStore::DatabaseShardImp</a>.</p>
</div>
</div>
<a id="ae3e615caca1a493f80515d137b315fa8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae3e615caca1a493f80515d137b315fa8">&#9670;&nbsp;</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>, <a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#ac8dfef2dee29968270119971f4d60f94">ripple::NodeStore::DatabaseRotatingImp</a>, and <a class="el" href="classripple_1_1NodeStore_1_1DatabaseShardImp.html#aaddcb6c59d1dd649f91167ca5da6d44d">ripple::NodeStore::DatabaseShardImp</a>.</p>
</div>
</div>
<a id="a57b89b559c083fde74a115a3df8f8046"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a57b89b559c083fde74a115a3df8f8046">&#9670;&nbsp;</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_1DatabaseShardImp.html#ab6f90045736770399877335307f7aca1">ripple::NodeStore::DatabaseShardImp</a>, <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="a4c2e13367bf02755107ee7ca3ad756be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4c2e13367bf02755107ee7ca3ad756be">&#9670;&nbsp;</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>&#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#l00145">145</a> of file <a class="el" href="Database_8cpp_source.html">Database.cpp</a>.</p>
</div>
</div>
<a id="a3f629d9f90e843367887aee6f52f6e1e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3f629d9f90e843367887aee6f52f6e1e">&#9670;&nbsp;</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>&#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_1DatabaseRotatingImp.html#ac8979815c7dbf46de5ca0dd7b293d5bb">ripple::NodeStore::DatabaseRotatingImp</a>, and <a class="el" href="classripple_1_1NodeStore_1_1DatabaseShardImp.html#a0c873130f5ec07fee5d648a17bf42012">ripple::NodeStore::DatabaseShardImp</a>.</p>
</div>
</div>
<a id="a0d21a918d521d82947868d21e1aafadb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d21a918d521d82947868d21e1aafadb">&#9670;&nbsp;</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">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, used by the shard store. </td></tr>
<tr><td class="paramname">callback</td><td>Callback function when read completes </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="Database_8cpp_source.html#l00094">94</a> of file <a class="el" href="Database_8cpp_source.html">Database.cpp</a>.</p>
</div>
</div>
<a id="aad7aa12d0cc01006120761d23312d428"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aad7aa12d0cc01006120761d23312d428">&#9670;&nbsp;</a></span>storeLedger() <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">virtual bool ripple::NodeStore::Database::storeLedger </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1Ledger.html">Ledger</a> const &gt; const &amp;&#160;</td>
<td class="paramname"><em>srcLedger</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>Store a ledger from a different database. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">srcLedger</td><td>The ledger to store. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the operation was successful </dd></dl>
<p>Implemented in <a class="el" href="classripple_1_1NodeStore_1_1DatabaseShardImp.html#a2f242c02ca2541308788a558e747e21b">ripple::NodeStore::DatabaseShardImp</a>, <a class="el" href="classripple_1_1NodeStore_1_1DatabaseNodeImp.html#a727c96f7f30d04345184be123dfe1137">ripple::NodeStore::DatabaseNodeImp</a>, and <a class="el" href="classripple_1_1NodeStore_1_1DatabaseRotatingImp.html#a55502de7f83a364526263b38bc1fe709">ripple::NodeStore::DatabaseRotatingImp</a>.</p>
</div>
</div>
<a id="a410587cb70ec38bb10cfab3218f54d16"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a410587cb70ec38bb10cfab3218f54d16">&#9670;&nbsp;</a></span>storeLedger() <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">bool ripple::NodeStore::Database::storeLedger </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Ledger.html">Ledger</a> const &amp;&#160;</td>
<td class="paramname"><em>srcLedger</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1NodeStore_1_1Backend.html">Backend</a> &gt;&#160;</td>
<td class="paramname"><em>dstBackend</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#l00170">170</a> of file <a class="el" href="Database_8cpp_source.html">Database.cpp</a>.</p>
</div>
</div>
<a id="a40a0e5a30857e9ba3c7561748af31e29"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a40a0e5a30857e9ba3c7561748af31e29">&#9670;&nbsp;</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_1DatabaseShardImp.html#a09183bd09b93a64f42d6ffb57a0e5647">ripple::NodeStore::DatabaseShardImp</a>, <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"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ccd565f5a4a5296c049a2a0886f363f">&#9670;&nbsp;</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#l00184">184</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="af32a551caa69e8108bdd9a9d74dd774e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af32a551caa69e8108bdd9a9d74dd774e">&#9670;&nbsp;</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#l00190">190</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="ad28a451b16bc693364a1074c0f767f1f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad28a451b16bc693364a1074c0f767f1f">&#9670;&nbsp;</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#l00196">196</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a0f2ed25135bf1d2aa487a2b2dc5c85cd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0f2ed25135bf1d2aa487a2b2dc5c85cd">&#9670;&nbsp;</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#l00202">202</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a8ebb38ac8562f6b1673a9f3b8216efce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8ebb38ac8562f6b1673a9f3b8216efce">&#9670;&nbsp;</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#l00208">208</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a023779f42976b9c22da655bf9fd4f4a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a023779f42976b9c22da655bf9fd4f4a5">&#9670;&nbsp;</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#l00319">319</a> of file <a class="el" href="Database_8cpp_source.html">Database.cpp</a>.</p>
</div>
</div>
<a id="aef142866cf7ca2a96d17efc55f8dcc19"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef142866cf7ca2a96d17efc55f8dcc19">&#9670;&nbsp;</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#l00218">218</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a0923c37ede6c7ffeca02f59f566cf588"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0923c37ede6c7ffeca02f59f566cf588">&#9670;&nbsp;</a></span>onStop()</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::onStop </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Override called when the stop notification is issued. </p>
<p>The call is made on an unspecified, implementation-specific thread. onStop and onChildrenStopped will never be called concurrently, across all <a class="el" href="classripple_1_1Stoppable.html" title="Provides an interface for starting and stopping.">Stoppable</a> objects descended from the same root, inclusive of the root.</p>
<p>It is safe to call isStopping, isStopped, and areChildrenStopped from within this function; The values returned will always be valid and never change during the callback.</p>
<p>The default implementation simply calls <a class="el" href="classripple_1_1Stoppable.html#a65a95f9c14637491df60d3a07518fa09" title="Called by derived classes to indicate that the stoppable has stopped.">stopped()</a>. This is applicable when the <a class="el" href="classripple_1_1Stoppable.html" title="Provides an interface for starting and stopping.">Stoppable</a> has a trivial stop operation (or no stop operation), and we are merely using the <a class="el" href="classripple_1_1Stoppable.html" title="Provides an interface for starting and stopping.">Stoppable</a> API to position it as a dependency of some parent service.</p>
<p>Thread safety: May not block for long periods. Guaranteed only to be called once. Must be safe to call from any thread at any time. </p>
<p>Reimplemented from <a class="el" href="classripple_1_1Stoppable.html#a4278b4c199fbe20a75d69610a8970c03">ripple::Stoppable</a>.</p>
<p>Reimplemented in <a class="el" href="classripple_1_1NodeStore_1_1DatabaseShardImp.html#a9f17f5785642cce8324c56de29a14770">ripple::NodeStore::DatabaseShardImp</a>.</p>
<p class="definition">Definition at line <a class="el" href="Database_8cpp_source.html#l00064">64</a> of file <a class="el" href="Database_8cpp_source.html">Database.cpp</a>.</p>
</div>
</div>
<a id="ae84b30410af69ec7e7adcdb6265a4af8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae84b30410af69ec7e7adcdb6265a4af8">&#9670;&nbsp;</a></span>onChildrenStopped()</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::onChildrenStopped </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Override called when all children have stopped. </p>
<p>The call is made on an unspecified, implementation-specific thread. onStop and onChildrenStopped will never be called concurrently, across all <a class="el" href="classripple_1_1Stoppable.html" title="Provides an interface for starting and stopping.">Stoppable</a> objects descended from the same root, inclusive of the root.</p>
<p>It is safe to call isStopping, isStopped, and areChildrenStopped from within this function; The values returned will always be valid and never change during the callback.</p>
<p>The default implementation does nothing.</p>
<p>Thread safety: May not block for long periods. Guaranteed only to be called once. Must be safe to call from any thread at any time. </p>
<p>Reimplemented from <a class="el" href="classripple_1_1Stoppable.html#a944a3ffe59dc8f41185fe7b740aa3e8f">ripple::Stoppable</a>.</p>
<p>Reimplemented in <a class="el" href="classripple_1_1NodeStore_1_1DatabaseShardImp.html#a54438fef32a52fb3c2109a0b01d14d34">ripple::NodeStore::DatabaseShardImp</a>.</p>
<p class="definition">Definition at line <a class="el" href="Database_8cpp_source.html#l00072">72</a> of file <a class="el" href="Database_8cpp_source.html">Database.cpp</a>.</p>
</div>
</div>
<a id="a51f2d9197ceae15155509404ce09d9a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a51f2d9197ceae15155509404ce09d9a7">&#9670;&nbsp;</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">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#l00232">232</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="adb9c1d15c7638e1448be9f5a98563f6b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb9c1d15c7638e1448be9f5a98563f6b">&#9670;&nbsp;</a></span>stopReadThreads()</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::stopReadThreads </td>
<td>(</td>
<td class="paramname"></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#l00078">78</a> of file <a class="el" href="Database_8cpp_source.html">Database.cpp</a>.</p>
</div>
</div>
<a id="a090e39b8c6733b0dc4553f9e8e705605"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a090e39b8c6733b0dc4553f9e8e705605">&#9670;&nbsp;</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"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af885d9fe877259a258481f0df20697cd">&#9670;&nbsp;</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#l00106">106</a> of file <a class="el" href="Database_8cpp_source.html">Database.cpp</a>.</p>
</div>
</div>
<a id="abdcb3e7fdaeae1252f850c0e2a4646c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abdcb3e7fdaeae1252f850c0e2a4646c2">&#9670;&nbsp;</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#l00265">265</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a2b5174a0ffb315030b96815d6ac86eaf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b5174a0ffb315030b96815d6ac86eaf">&#9670;&nbsp;</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><a class="el" href="classripple_1_1NodeStore_1_1Database.html#ac1946e6706aecab34d6ea2207a33f6bc" title="Import objects from another database.">import</a> </dd></dl>
<p>Implemented in <a class="el" href="classripple_1_1NodeStore_1_1DatabaseShardImp.html#a5b2de32b1cd5b588d023af75caf670e5">ripple::NodeStore::DatabaseShardImp</a>, <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="aba0e02eea82d047dde49d56f362347bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aba0e02eea82d047dde49d56f362347bf">&#9670;&nbsp;</a></span>getCounters()</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/utility/optional.html">std::optional</a>&lt;<a class="el" href="structripple_1_1NodeStore_1_1Backend_1_1Counters.html">Backend::Counters</a>&lt;<a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a>&gt; &gt; ripple::NodeStore::Database::getCounters </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">private</span><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieve backend read and write stats. </p>
<dl class="section note"><dt>Note</dt><dd>The Counters struct is specific to and only used by CassandraBackend. </dd></dl>
<p>Reimplemented in <a class="el" href="classripple_1_1NodeStore_1_1DatabaseNodeImp.html#a9c7d1bd4925bf9b0a4501dd9872fdaf8">ripple::NodeStore::DatabaseNodeImp</a>.</p>
<p class="definition">Definition at line <a class="el" href="Database_8h_source.html#l00322">322</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a7c4180512ff87a967de8091a019dc9f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7c4180512ff87a967de8091a019dc9f9">&#9670;&nbsp;</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">
<p class="definition">Definition at line <a class="el" href="Database_8cpp_source.html#l00270">270</a> of file <a class="el" href="Database_8cpp_source.html">Database.cpp</a>.</p>
</div>
</div>
<a id="ae9b6cb02b4e1128bd2c4e1a81c9d695c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae9b6cb02b4e1128bd2c4e1a81c9d695c">&#9670;&nbsp;</a></span>getRoot()</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_1RootStoppable.html">RootStoppable</a>&amp; ripple::Stoppable::getRoot </td>
<td>(</td>
<td class="paramname"></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="Stoppable_8h_source.html#l00214">214</a> of file <a class="el" href="Stoppable_8h_source.html">Stoppable.h</a>.</p>
</div>
</div>
<a id="adea135697761febf430a8628814c7902"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adea135697761febf430a8628814c7902">&#9670;&nbsp;</a></span>setParent()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::Stoppable::setParent </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Stoppable.html">Stoppable</a> &amp;&#160;</td>
<td class="paramname"><em>parent</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>Set the parent of this <a class="el" href="classripple_1_1Stoppable.html" title="Provides an interface for starting and stopping.">Stoppable</a>. </p>
<dl class="section note"><dt>Note</dt><dd>The <a class="el" href="classripple_1_1Stoppable.html" title="Provides an interface for starting and stopping.">Stoppable</a> must not already have a parent. The parent to be set cannot not be stopping. Both roots must match. </dd></dl>
<p class="definition">Definition at line <a class="el" href="Stoppable_8cpp_source.html#l00043">43</a> of file <a class="el" href="Stoppable_8cpp_source.html">Stoppable.cpp</a>.</p>
</div>
</div>
<a id="a836b8737444ef1133c3596e61010fa80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a836b8737444ef1133c3596e61010fa80">&#9670;&nbsp;</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::Stoppable::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>Returns <code>true</code> if the stoppable should stop. </p>
<p class="definition">Definition at line <a class="el" href="Stoppable_8cpp_source.html#l00054">54</a> of file <a class="el" href="Stoppable_8cpp_source.html">Stoppable.cpp</a>.</p>
</div>
</div>
<a id="af1e1447ecb573d2341c8a71afd3e76da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1e1447ecb573d2341c8a71afd3e76da">&#9670;&nbsp;</a></span>isStopped()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ripple::Stoppable::isStopped </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 <code>true</code> if the requested stop has completed. </p>
<p class="definition">Definition at line <a class="el" href="Stoppable_8cpp_source.html#l00060">60</a> of file <a class="el" href="Stoppable_8cpp_source.html">Stoppable.cpp</a>.</p>
</div>
</div>
<a id="a9ec6fda89ff8bc63251a9c3682311e5d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9ec6fda89ff8bc63251a9c3682311e5d">&#9670;&nbsp;</a></span>areChildrenStopped()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ripple::Stoppable::areChildrenStopped </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 <code>true</code> if all children have stopped. </p>
<p class="definition">Definition at line <a class="el" href="Stoppable_8cpp_source.html#l00066">66</a> of file <a class="el" href="Stoppable_8cpp_source.html">Stoppable.cpp</a>.</p>
</div>
</div>
<a id="acc824cd8bdcffbac3c919c7e6009dea5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc824cd8bdcffbac3c919c7e6009dea5">&#9670;&nbsp;</a></span>jobCounter()</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="namespaceripple.html#adf17c8e58c57ecf0ed6cbc7ee1c2ab22">JobCounter</a> &amp; ripple::Stoppable::jobCounter </td>
<td>(</td>
<td class="paramname"></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="Stoppable_8h_source.html#l00420">420</a> of file <a class="el" href="Stoppable_8h_source.html">Stoppable.h</a>.</p>
</div>
</div>
<a id="aca4a925fd0df7e3a3bca51c9593e6a6e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aca4a925fd0df7e3a3bca51c9593e6a6e">&#9670;&nbsp;</a></span>alertable_sleep_until()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ripple::Stoppable::alertable_sleep_until </td>
<td>(</td>
<td class="paramtype">std::chrono::system_clock::time_point const &amp;&#160;</td>
<td class="paramname"><em>t</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>Sleep or wake up on stop. </p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if we are stopping </dd></dl>
<p class="definition">Definition at line <a class="el" href="Stoppable_8h_source.html#l00440">440</a> of file <a class="el" href="Stoppable_8h_source.html">Stoppable.h</a>.</p>
</div>
</div>
<a id="a65a95f9c14637491df60d3a07518fa09"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a65a95f9c14637491df60d3a07518fa09">&#9670;&nbsp;</a></span>stopped()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::Stoppable::stopped </td>
<td>(</td>
<td class="paramname"></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>Called by derived classes to indicate that the stoppable has stopped. </p>
<p class="definition">Definition at line <a class="el" href="Stoppable_8cpp_source.html#l00072">72</a> of file <a class="el" href="Stoppable_8cpp_source.html">Stoppable.cpp</a>.</p>
</div>
</div>
<a id="ab2a5544b4bfc0dccdc6a2a46f6ff5d84"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab2a5544b4bfc0dccdc6a2a46f6ff5d84">&#9670;&nbsp;</a></span>onPrepare()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::Stoppable::onPrepare </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">virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Override called during preparation. </p>
<p>Since all other <a class="el" href="classripple_1_1Stoppable.html" title="Provides an interface for starting and stopping.">Stoppable</a> objects in the tree have already been constructed, this provides an opportunity to perform initialization which depends on calling into other <a class="el" href="classripple_1_1Stoppable.html" title="Provides an interface for starting and stopping.">Stoppable</a> objects. This call is made on the same thread that called prepare(). The default implementation does nothing. Guaranteed to only be called once. </p>
<p>Reimplemented in <a class="el" href="classripple_1_1OverlayImpl.html#addad297874d76d9df9fc2d7c903d7782">ripple::OverlayImpl</a>, <a class="el" href="classripple_1_1test_1_1Stoppable__test_1_1Root.html#a0419ed3fe1cbaff9a0e7b218ea8c7383">ripple::test::Stoppable_test::Root</a>, <a class="el" href="classripple_1_1test_1_1Stoppable__test_1_1C.html#a27bf534a255be28d9db438c2e650febe">ripple::test::Stoppable_test::C</a>, <a class="el" href="classripple_1_1test_1_1Stoppable__test_1_1I.html#a1f3cfa0cbcefd9779a0d6bbb33e929ad">ripple::test::Stoppable_test::I</a>, <a class="el" href="classripple_1_1test_1_1Stoppable__test_1_1B.html#a3802f8ec07a49c257e7af4d6425c66d3">ripple::test::Stoppable_test::B</a>, <a class="el" href="classripple_1_1test_1_1Stoppable__test_1_1H.html#aca211ad8479955c5c3a8ff56c8b80f23">ripple::test::Stoppable_test::H</a>, <a class="el" href="classripple_1_1test_1_1Stoppable__test_1_1G.html#acb490a17968f0429b5e98fdab6165de0">ripple::test::Stoppable_test::G</a>, <a class="el" href="classripple_1_1test_1_1Stoppable__test_1_1A.html#a9c4f120d3d1257cb1922e6dedc6ebb7c">ripple::test::Stoppable_test::A</a>, <a class="el" href="classripple_1_1PeerFinder_1_1ManagerImp.html#a20612412402a342e2acc42a3f19936e7">ripple::PeerFinder::ManagerImp</a>, <a class="el" href="classripple_1_1test_1_1Stoppable__test_1_1F.html#a65baffca9446b7f05a5c4c561743698f">ripple::test::Stoppable_test::F</a>, <a class="el" href="classripple_1_1test_1_1Stoppable__test_1_1E.html#ab0d1bcc2b5c8349c9fedb83c880a0bcb">ripple::test::Stoppable_test::E</a>, <a class="el" href="classripple_1_1test_1_1Stoppable__test_1_1J.html#aeae3d11b4b4965ad1e41229b51eb3d10">ripple::test::Stoppable_test::J</a>, <a class="el" href="structripple_1_1PerfLog__test_1_1PerfLogParent.html#a46116902aa4f8b6f1a5c91a49854e8f0">ripple::PerfLog_test::PerfLogParent</a>, and <a class="el" href="classripple_1_1test_1_1Stoppable__test_1_1D.html#a247b2d122fe5ebeda596a7f0bff9d79a">ripple::test::Stoppable_test::D</a>.</p>
<p class="definition">Definition at line <a class="el" href="Stoppable_8cpp_source.html#l00080">80</a> of file <a class="el" href="Stoppable_8cpp_source.html">Stoppable.cpp</a>.</p>
</div>
</div>
<a id="a0f24b7fcb7e8679dfd3783e9ffe3bbde"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0f24b7fcb7e8679dfd3783e9ffe3bbde">&#9670;&nbsp;</a></span>onStart()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::Stoppable::onStart </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">virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Override called during start. </p>
<p>Reimplemented in <a class="el" href="classripple_1_1ApplicationImp.html#a21dd55310b1f0a99297b384518d6df25">ripple::ApplicationImp</a>, <a class="el" href="classripple_1_1OverlayImpl.html#a3918e80c1267d4f907730999a4f26008">ripple::OverlayImpl</a>, <a class="el" href="classripple_1_1test_1_1Stoppable__test_1_1Root.html#aa42c557911d8e76788e87c2d877750ed">ripple::test::Stoppable_test::Root</a>, <a class="el" href="classripple_1_1test_1_1Stoppable__test_1_1C.html#a5be3e389258ba50a85c06a5af860927e">ripple::test::Stoppable_test::C</a>, <a class="el" href="classripple_1_1test_1_1Stoppable__test_1_1I.html#ae470d42add62e9c7f0a80d3ef8cceaf7">ripple::test::Stoppable_test::I</a>, <a class="el" href="classripple_1_1test_1_1Stoppable__test_1_1B.html#af411953a02cb2ba6b5694ffd519aed7e">ripple::test::Stoppable_test::B</a>, <a class="el" href="classripple_1_1test_1_1Stoppable__test_1_1H.html#ae196a19d259fd57700c35f233c11c026">ripple::test::Stoppable_test::H</a>, <a class="el" href="classripple_1_1GRPCServer.html#acf26b69bea55fa6a49fb7528cb5e00c6">ripple::GRPCServer</a>, <a class="el" href="classripple_1_1test_1_1Stoppable__test_1_1G.html#ad54103c4f31d04a7f5d6593583028049">ripple::test::Stoppable_test::G</a>, <a class="el" href="classripple_1_1SHAMapStoreImp.html#a06851331bd59c5b55221845549708a34">ripple::SHAMapStoreImp</a>, <a class="el" href="classripple_1_1test_1_1Stoppable__test_1_1A.html#a7683aa7a642d9f45973df12e2d50faf4">ripple::test::Stoppable_test::A</a>, <a class="el" href="classripple_1_1perf_1_1PerfLogImp.html#a81a7c17c2d7403d410f40266c8dc8a85">ripple::perf::PerfLogImp</a>, <a class="el" href="classripple_1_1test_1_1Stoppable__test_1_1F.html#aae263a3c2bc022bc75b2506345cbebcd">ripple::test::Stoppable_test::F</a>, <a class="el" href="classripple_1_1test_1_1Stoppable__test_1_1E.html#a3a98555a979eb1a3249205d75919f8ad">ripple::test::Stoppable_test::E</a>, <a class="el" href="classripple_1_1test_1_1Stoppable__test_1_1J.html#ae2d5a662e72976386d89b013572172d1">ripple::test::Stoppable_test::J</a>, <a class="el" href="classripple_1_1detail_1_1LedgerCleanerImp.html#a363652c7715c7176bff335387f97991f">ripple::detail::LedgerCleanerImp</a>, <a class="el" href="classripple_1_1LoadManager.html#a347fd7fdf32d02e17c676fdd92990cd4">ripple::LoadManager</a>, <a class="el" href="structripple_1_1PerfLog__test_1_1PerfLogParent.html#a29639c6dcd73b345d6592f25c0138f8e">ripple::PerfLog_test::PerfLogParent</a>, and <a class="el" href="classripple_1_1test_1_1Stoppable__test_1_1D.html#a279e901b5c96dfffe93a24af57c6dc3c">ripple::test::Stoppable_test::D</a>.</p>
<p class="definition">Definition at line <a class="el" href="Stoppable_8cpp_source.html#l00085">85</a> of file <a class="el" href="Stoppable_8cpp_source.html">Stoppable.cpp</a>.</p>
</div>
</div>
<a id="a390c62d40a1ca754dfb2de4befa02b0d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a390c62d40a1ca754dfb2de4befa02b0d">&#9670;&nbsp;</a></span>prepareRecursive()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::Stoppable::prepareRecursive </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">
<p class="definition">Definition at line <a class="el" href="Stoppable_8cpp_source.html#l00103">103</a> of file <a class="el" href="Stoppable_8cpp_source.html">Stoppable.cpp</a>.</p>
</div>
</div>
<a id="ab53b667e9786bed2c10dd3fcd02b517f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab53b667e9786bed2c10dd3fcd02b517f">&#9670;&nbsp;</a></span>startRecursive()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::Stoppable::startRecursive </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">
<p class="definition">Definition at line <a class="el" href="Stoppable_8cpp_source.html#l00113">113</a> of file <a class="el" href="Stoppable_8cpp_source.html">Stoppable.cpp</a>.</p>
</div>
</div>
<a id="a34ddbefa8dda0aab52b8ecf493833d62"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34ddbefa8dda0aab52b8ecf493833d62">&#9670;&nbsp;</a></span>stopAsyncRecursive()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::Stoppable::stopAsyncRecursive </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classbeast_1_1Journal.html">beast::Journal</a>&#160;</td>
<td class="paramname"><em>j</em></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">
<p class="definition">Definition at line <a class="el" href="Stoppable_8cpp_source.html#l00123">123</a> of file <a class="el" href="Stoppable_8cpp_source.html">Stoppable.cpp</a>.</p>
</div>
</div>
<a id="a294e4d3874e76f53a443cb4df306913f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a294e4d3874e76f53a443cb4df306913f">&#9670;&nbsp;</a></span>stopRecursive()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::Stoppable::stopRecursive </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classbeast_1_1Journal.html">beast::Journal</a>&#160;</td>
<td class="paramname"><em>j</em></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">
<p class="definition">Definition at line <a class="el" href="Stoppable_8cpp_source.html#l00134">134</a> of file <a class="el" href="Stoppable_8cpp_source.html">Stoppable.cpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a0d7c3d303adce36199b2c67c4df8a2de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d7c3d303adce36199b2c67c4df8a2de">&#9670;&nbsp;</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">const <a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> 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#l00238">238</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a0e5bc58351ded4683d7207383794a484"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e5bc58351ded4683d7207383794a484">&#9670;&nbsp;</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#l00239">239</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a730a87cf8b617a8afb30e2531ede0f81"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a730a87cf8b617a8afb30e2531ede0f81">&#9670;&nbsp;</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#l00240">240</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a89497b9b4c5530b58040931489015d30"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a89497b9b4c5530b58040931489015d30">&#9670;&nbsp;</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#l00242">242</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a04150d23aa2acaf016d4ca40bd10804a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a04150d23aa2acaf016d4ca40bd10804a">&#9670;&nbsp;</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#l00243">243</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a4dc1dcc2a79b60c2c7de7f1bdf05cecf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4dc1dcc2a79b60c2c7de7f1bdf05cecf">&#9670;&nbsp;</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#l00273">273</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a5dbc9808c511caeaaa7ce5c6b27276e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5dbc9808c511caeaaa7ce5c6b27276e6">&#9670;&nbsp;</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#l00274">274</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="af3332d74cac6eb882c2908e14655d3a0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af3332d74cac6eb882c2908e14655d3a0">&#9670;&nbsp;</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#l00275">275</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="ab4ecdf417aaa8e5d4c88601244fe90d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab4ecdf417aaa8e5d4c88601244fe90d7">&#9670;&nbsp;</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#l00276">276</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a83e7506a1b302966445210ebe56c3905"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83e7506a1b302966445210ebe56c3905">&#9670;&nbsp;</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#l00277">277</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a06fbf66d1f34a6162a17daf72e71eba9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a06fbf66d1f34a6162a17daf72e71eba9">&#9670;&nbsp;</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">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#l00279">279</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a438af3c0eba7891bb79d5c5dcb902556"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a438af3c0eba7891bb79d5c5dcb902556">&#9670;&nbsp;</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#l00280">280</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a59cd26efed86926842662b223d20359d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a59cd26efed86926842662b223d20359d">&#9670;&nbsp;</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#l00288">288</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="afe98ed8463413de1a92d439cc1aebb35"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afe98ed8463413de1a92d439cc1aebb35">&#9670;&nbsp;</a></span>readLastHash_</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="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> ripple::NodeStore::Database::readLastHash_</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#l00291">291</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="ad769f906ab9351dc6c4fa166b3937e1c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad769f906ab9351dc6c4fa166b3937e1c">&#9670;&nbsp;</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/container/vector.html">std::vector</a>&lt;<a class="elRef" href="http://en.cppreference.com/w/cpp/thread/thread.html">std::thread</a>&gt; ripple::NodeStore::Database::readThreads_</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#l00293">293</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a0056efda3dfb01158eece68b05c98c2d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0056efda3dfb01158eece68b05c98c2d">&#9670;&nbsp;</a></span>readShut_</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::readShut_ {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#l00294">294</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="aa59aca23acd391245f0b403df74ac8be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa59aca23acd391245f0b403df74ac8be">&#9670;&nbsp;</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">const <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> ripple::NodeStore::Database::earliestLedgerSeq_</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#l00298">298</a> of file <a class="el" href="Database_8h_source.html">Database.h</a>.</p>
</div>
</div>
<a id="a3bee0684bbf67bc8c2f974cc30523cea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3bee0684bbf67bc8c2f974cc30523cea">&#9670;&nbsp;</a></span>m_name</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> ripple::Stoppable::m_name</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="Stoppable_8h_source.html#l00339">339</a> of file <a class="el" href="Stoppable_8h_source.html">Stoppable.h</a>.</p>
</div>
</div>
<a id="a3a889a7b2e1b4c0fd463c51abfaa0ee0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3a889a7b2e1b4c0fd463c51abfaa0ee0">&#9670;&nbsp;</a></span>m_root</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_1RootStoppable.html">RootStoppable</a>&amp; ripple::Stoppable::m_root</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="Stoppable_8h_source.html#l00340">340</a> of file <a class="el" href="Stoppable_8h_source.html">Stoppable.h</a>.</p>
</div>
</div>
<a id="ab9ece0159fb3954819b6b6f1672ac2e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab9ece0159fb3954819b6b6f1672ac2e4">&#9670;&nbsp;</a></span>m_child</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="structripple_1_1Stoppable_1_1Child.html">Child</a> ripple::Stoppable::m_child</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="Stoppable_8h_source.html#l00341">341</a> of file <a class="el" href="Stoppable_8h_source.html">Stoppable.h</a>.</p>
</div>
</div>
<a id="a9d39131e97d8faa6beb1d36eab19dc2f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9d39131e97d8faa6beb1d36eab19dc2f">&#9670;&nbsp;</a></span>m_stopped</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::Stoppable::m_stopped {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="Stoppable_8h_source.html#l00343">343</a> of file <a class="el" href="Stoppable_8h_source.html">Stoppable.h</a>.</p>
</div>
</div>
<a id="a8c1e09326ea6d61009b6630c9e297c89"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8c1e09326ea6d61009b6630c9e297c89">&#9670;&nbsp;</a></span>m_childrenStopped</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::Stoppable::m_childrenStopped {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="Stoppable_8h_source.html#l00344">344</a> of file <a class="el" href="Stoppable_8h_source.html">Stoppable.h</a>.</p>
</div>
</div>
<a id="adc549cdc2b0ebef1878e6d79c496be4d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adc549cdc2b0ebef1878e6d79c496be4d">&#9670;&nbsp;</a></span>m_children</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_1Stoppable.html#a43594a8835ccb53d7b80983694d26cad">Children</a> ripple::Stoppable::m_children</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="Stoppable_8h_source.html#l00345">345</a> of file <a class="el" href="Stoppable_8h_source.html">Stoppable.h</a>.</p>
</div>
</div>
<a id="a3c9a256ee2a1f891a042dda5c89360c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c9a256ee2a1f891a042dda5c89360c0">&#9670;&nbsp;</a></span>m_cv</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::Stoppable::m_cv</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="Stoppable_8h_source.html#l00346">346</a> of file <a class="el" href="Stoppable_8h_source.html">Stoppable.h</a>.</p>
</div>
</div>
<a id="afb1038efa534f43ebbd76db775592aaf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb1038efa534f43ebbd76db775592aaf">&#9670;&nbsp;</a></span>m_mut</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::Stoppable::m_mut</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="Stoppable_8h_source.html#l00347">347</a> of file <a class="el" href="Stoppable_8h_source.html">Stoppable.h</a>.</p>
</div>
</div>
<a id="a12f304b9baab521c4f5f8291485f1391"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a12f304b9baab521c4f5f8291485f1391">&#9670;&nbsp;</a></span>m_is_stopping</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ripple::Stoppable::m_is_stopping = 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="Stoppable_8h_source.html#l00348">348</a> of file <a class="el" href="Stoppable_8h_source.html">Stoppable.h</a>.</p>
</div>
</div>
<a id="a1538bf3e4636b78efa3d30a5596eddf7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1538bf3e4636b78efa3d30a5596eddf7">&#9670;&nbsp;</a></span>hasParent_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ripple::Stoppable::hasParent_ {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="Stoppable_8h_source.html#l00349">349</a> of file <a class="el" href="Stoppable_8h_source.html">Stoppable.h</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>