Files
rippled/classripple_1_1NodeStore_1_1NuDBBackend.html
2021-12-17 19:04:33 +00:00

1111 lines
63 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::NuDBBackend 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_1NuDBBackend.html">NuDBBackend</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="classripple_1_1NodeStore_1_1NuDBBackend-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">ripple::NodeStore::NuDBBackend Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for ripple::NodeStore::NuDBBackend:</div>
<div class="dyncontent">
<div class="center"><img src="classripple_1_1NodeStore_1_1NuDBBackend__inherit__graph.png" border="0" usemap="#ripple_1_1NodeStore_1_1NuDBBackend_inherit__map" alt="Inheritance graph"/></div>
<map name="ripple_1_1NodeStore_1_1NuDBBackend_inherit__map" id="ripple_1_1NodeStore_1_1NuDBBackend_inherit__map">
<area shape="rect" title=" " alt="" coords="5,95,148,136"/>
<area shape="rect" href="classripple_1_1NodeStore_1_1Backend.html" title="A backend used for the NodeStore." alt="" coords="5,5,148,47"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for ripple::NodeStore::NuDBBackend:</div>
<div class="dyncontent">
<div class="center"><img src="classripple_1_1NodeStore_1_1NuDBBackend__coll__graph.png" border="0" usemap="#ripple_1_1NodeStore_1_1NuDBBackend_coll__map" alt="Collaboration graph"/></div>
<map name="ripple_1_1NodeStore_1_1NuDBBackend_coll__map" id="ripple_1_1NodeStore_1_1NuDBBackend_coll__map">
<area shape="rect" title=" " alt="" coords="579,184,721,225"/>
<area shape="rect" href="classripple_1_1NodeStore_1_1Backend.html" title="A backend used for the NodeStore." alt="" coords="257,5,400,47"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/atomic/atomic.html" title=" " alt="" coords="252,71,405,98"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/types/integer.html" title=" " alt="" coords="277,133,380,159"/>
<area shape="rect" href="classripple_1_1NodeStore_1_1Scheduler.html" title="Scheduling for asynchronous backend activity." alt="" coords="257,184,400,225"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/string/basic_string.html" title="STL class." alt="" coords="285,250,372,277"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/types/size_t.html" title=" " alt="" coords="285,301,373,327"/>
<area shape="rect" href="classbeast_1_1Journal.html" title="A generic endpoint for log messages." alt="" coords="273,351,384,378"/>
<area shape="rect" href="classbeast_1_1Journal_1_1Sink.html" title="Abstraction for the underlying message destination." alt="" coords="5,351,152,378"/>
</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:a0c087b7017042ac7691c40c15ba868e6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html#a0c087b7017042ac7691c40c15ba868e6">NuDBBackend</a> (size_t keyBytes, <a class="el" href="classripple_1_1Section.html">Section</a> const &amp;keyValues, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> burstSize, <a class="el" href="classripple_1_1NodeStore_1_1Scheduler.html">Scheduler</a> &amp;scheduler, <a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> journal)</td></tr>
<tr class="separator:a0c087b7017042ac7691c40c15ba868e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39dce6db7becaff9d5819d81cc8ed8b6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html#a39dce6db7becaff9d5819d81cc8ed8b6">NuDBBackend</a> (size_t keyBytes, <a class="el" href="classripple_1_1Section.html">Section</a> const &amp;keyValues, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> burstSize, <a class="el" href="classripple_1_1NodeStore_1_1Scheduler.html">Scheduler</a> &amp;scheduler, nudb::context &amp;context, <a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> journal)</td></tr>
<tr class="separator:a39dce6db7becaff9d5819d81cc8ed8b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4162d130c7626e1e5207d1ffd583e880"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html#a4162d130c7626e1e5207d1ffd583e880">~NuDBBackend</a> () override</td></tr>
<tr class="separator:a4162d130c7626e1e5207d1ffd583e880"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a973bd1539e909dcc515980e7b6f61f3d"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html#a973bd1539e909dcc515980e7b6f61f3d">getName</a> () override</td></tr>
<tr class="memdesc:a973bd1539e909dcc515980e7b6f61f3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the human-readable name of this backend. <a href="classripple_1_1NodeStore_1_1NuDBBackend.html#a973bd1539e909dcc515980e7b6f61f3d">More...</a><br /></td></tr>
<tr class="separator:a973bd1539e909dcc515980e7b6f61f3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e494839a2dcf789bb6cdc300ad65931"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html#a9e494839a2dcf789bb6cdc300ad65931">open</a> (bool createIfMissing, uint64_t appType, uint64_t uid, uint64_t salt) override</td></tr>
<tr class="memdesc:a9e494839a2dcf789bb6cdc300ad65931"><td class="mdescLeft">&#160;</td><td class="mdescRight">Open the backend. <a href="classripple_1_1NodeStore_1_1NuDBBackend.html#a9e494839a2dcf789bb6cdc300ad65931">More...</a><br /></td></tr>
<tr class="separator:a9e494839a2dcf789bb6cdc300ad65931"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf5ab73b7ec283a9ee0b73462e1d8531"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html#acf5ab73b7ec283a9ee0b73462e1d8531">isOpen</a> () override</td></tr>
<tr class="memdesc:acf5ab73b7ec283a9ee0b73462e1d8531"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true is the database is open. <a href="classripple_1_1NodeStore_1_1NuDBBackend.html#acf5ab73b7ec283a9ee0b73462e1d8531">More...</a><br /></td></tr>
<tr class="separator:acf5ab73b7ec283a9ee0b73462e1d8531"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2160cbce008b1fd13e1797d81d989128"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html#a2160cbce008b1fd13e1797d81d989128">open</a> (bool createIfMissing) override</td></tr>
<tr class="memdesc:a2160cbce008b1fd13e1797d81d989128"><td class="mdescLeft">&#160;</td><td class="mdescRight">Open the backend. <a href="classripple_1_1NodeStore_1_1NuDBBackend.html#a2160cbce008b1fd13e1797d81d989128">More...</a><br /></td></tr>
<tr class="separator:a2160cbce008b1fd13e1797d81d989128"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a336d7fe747c73366bec1cf42c5e05b67"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html#a336d7fe747c73366bec1cf42c5e05b67">close</a> () override</td></tr>
<tr class="memdesc:a336d7fe747c73366bec1cf42c5e05b67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close the backend. <a href="classripple_1_1NodeStore_1_1NuDBBackend.html#a336d7fe747c73366bec1cf42c5e05b67">More...</a><br /></td></tr>
<tr class="separator:a336d7fe747c73366bec1cf42c5e05b67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b03edf356922e780fe41987476f1f6a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceripple_1_1NodeStore.html#af127c2e4fc73b5d35647147ef45b350c">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html#a1b03edf356922e780fe41987476f1f6a">fetch</a> (void const *key, <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; *pno) override</td></tr>
<tr class="memdesc:a1b03edf356922e780fe41987476f1f6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a single object. <a href="classripple_1_1NodeStore_1_1NuDBBackend.html#a1b03edf356922e780fe41987476f1f6a">More...</a><br /></td></tr>
<tr class="separator:a1b03edf356922e780fe41987476f1f6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1dea770406fa29aa16f14df58e8d568"><td class="memItemLeft" align="right" valign="top"><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/container/vector.html">std::vector</a>&lt; <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;, <a class="el" href="namespaceripple_1_1NodeStore.html#af127c2e4fc73b5d35647147ef45b350c">Status</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html#ad1dea770406fa29aa16f14df58e8d568">fetchBatch</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> const * &gt; const &amp;hashes) override</td></tr>
<tr class="memdesc:ad1dea770406fa29aa16f14df58e8d568"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetch a batch synchronously. <a href="classripple_1_1NodeStore_1_1NuDBBackend.html#ad1dea770406fa29aa16f14df58e8d568">More...</a><br /></td></tr>
<tr class="separator:ad1dea770406fa29aa16f14df58e8d568"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ffccad519a4ac36bb0329a186b4783f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html#a4ffccad519a4ac36bb0329a186b4783f">do_insert</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_1NodeObject.html">NodeObject</a> &gt; const &amp;no)</td></tr>
<tr class="separator:a4ffccad519a4ac36bb0329a186b4783f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00c5d2a5073f3318fc0e52f255a1c212"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html#a00c5d2a5073f3318fc0e52f255a1c212">store</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_1NodeObject.html">NodeObject</a> &gt; const &amp;no) override</td></tr>
<tr class="memdesc:a00c5d2a5073f3318fc0e52f255a1c212"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store a single object. <a href="classripple_1_1NodeStore_1_1NuDBBackend.html#a00c5d2a5073f3318fc0e52f255a1c212">More...</a><br /></td></tr>
<tr class="separator:a00c5d2a5073f3318fc0e52f255a1c212"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e9abc2a44a3501131709dcd6d5c509a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html#a4e9abc2a44a3501131709dcd6d5c509a">storeBatch</a> (<a class="el" href="namespaceripple_1_1NodeStore.html#ae0e4b79f8eb3ffa0bf8fcaf848643202">Batch</a> const &amp;batch) override</td></tr>
<tr class="memdesc:a4e9abc2a44a3501131709dcd6d5c509a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store a group of objects. <a href="classripple_1_1NodeStore_1_1NuDBBackend.html#a4e9abc2a44a3501131709dcd6d5c509a">More...</a><br /></td></tr>
<tr class="separator:a4e9abc2a44a3501131709dcd6d5c509a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d886e5eee636e58798208a5e46e71f6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html#a7d886e5eee636e58798208a5e46e71f6">sync</a> () override</td></tr>
<tr class="separator:a7d886e5eee636e58798208a5e46e71f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abaf0ba251ee000601135df13dd885dca"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html#abaf0ba251ee000601135df13dd885dca">for_each</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt; void(<a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1NodeObject.html">NodeObject</a> &gt;)&gt; f) override</td></tr>
<tr class="memdesc:abaf0ba251ee000601135df13dd885dca"><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_1NuDBBackend.html#abaf0ba251ee000601135df13dd885dca">More...</a><br /></td></tr>
<tr class="separator:abaf0ba251ee000601135df13dd885dca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf8b3a8b6f911845a8323cc00c0aeff0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html#adf8b3a8b6f911845a8323cc00c0aeff0">getWriteLoad</a> () override</td></tr>
<tr class="memdesc:adf8b3a8b6f911845a8323cc00c0aeff0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Estimate the number of write operations pending. <a href="classripple_1_1NodeStore_1_1NuDBBackend.html#adf8b3a8b6f911845a8323cc00c0aeff0">More...</a><br /></td></tr>
<tr class="separator:adf8b3a8b6f911845a8323cc00c0aeff0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6cf1bca8633f03532a5836b959adc60"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html#ae6cf1bca8633f03532a5836b959adc60">setDeletePath</a> () override</td></tr>
<tr class="memdesc:ae6cf1bca8633f03532a5836b959adc60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove contents on disk upon destruction. <a href="classripple_1_1NodeStore_1_1NuDBBackend.html#ae6cf1bca8633f03532a5836b959adc60">More...</a><br /></td></tr>
<tr class="separator:ae6cf1bca8633f03532a5836b959adc60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab012b4ff123427bc35a5d4ac4c6269c0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html#ab012b4ff123427bc35a5d4ac4c6269c0">verify</a> () override</td></tr>
<tr class="memdesc:ab012b4ff123427bc35a5d4ac4c6269c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform consistency checks on database. <a href="classripple_1_1NodeStore_1_1NuDBBackend.html#ab012b4ff123427bc35a5d4ac4c6269c0">More...</a><br /></td></tr>
<tr class="separator:ab012b4ff123427bc35a5d4ac4c6269c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80ceb104dfe540399ddb1fe8d43111ac"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html#a80ceb104dfe540399ddb1fe8d43111ac">fdRequired</a> () const override</td></tr>
<tr class="memdesc:a80ceb104dfe540399ddb1fe8d43111ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of file descriptors the backend expects to need. <a href="classripple_1_1NodeStore_1_1NuDBBackend.html#a80ceb104dfe540399ddb1fe8d43111ac">More...</a><br /></td></tr>
<tr class="separator:a80ceb104dfe540399ddb1fe8d43111ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd4e55baccdaf56f34ae3c77191932a6"><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">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_1Backend.html#afd4e55baccdaf56f34ae3c77191932a6">counters</a> () const</td></tr>
<tr class="memdesc:afd4e55baccdaf56f34ae3c77191932a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns read and write stats. <a href="classripple_1_1NodeStore_1_1Backend.html#afd4e55baccdaf56f34ae3c77191932a6">More...</a><br /></td></tr>
<tr class="separator:afd4e55baccdaf56f34ae3c77191932a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a6e4630f4a1747a3a96a690a862e801ec"><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_1NuDBBackend.html#a6e4630f4a1747a3a96a690a862e801ec">j_</a></td></tr>
<tr class="separator:a6e4630f4a1747a3a96a690a862e801ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9d0d8d731ae1ac3cc3bb35da8eaf9d2"><td class="memItemLeft" align="right" valign="top">const size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html#ae9d0d8d731ae1ac3cc3bb35da8eaf9d2">keyBytes_</a></td></tr>
<tr class="separator:ae9d0d8d731ae1ac3cc3bb35da8eaf9d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59ad11b330c2a53bfa0de5aa861f491e"><td class="memItemLeft" align="right" valign="top">const <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html#a59ad11b330c2a53bfa0de5aa861f491e">burstSize_</a></td></tr>
<tr class="separator:a59ad11b330c2a53bfa0de5aa861f491e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62b70315254855fd1fcbabe62d52495a"><td class="memItemLeft" align="right" valign="top">const <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_1NuDBBackend.html#a62b70315254855fd1fcbabe62d52495a">name_</a></td></tr>
<tr class="separator:a62b70315254855fd1fcbabe62d52495a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93307b4032398645d984ecc1f90bd1e7"><td class="memItemLeft" align="right" valign="top">nudb::store&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html#a93307b4032398645d984ecc1f90bd1e7">db_</a></td></tr>
<tr class="separator:a93307b4032398645d984ecc1f90bd1e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac45f916ad224a53a053260d68b622bc7"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html#ac45f916ad224a53a053260d68b622bc7">deletePath_</a></td></tr>
<tr class="separator:ac45f916ad224a53a053260d68b622bc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a265296b90c702786f4944f344f31d132"><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_1NuDBBackend.html#a265296b90c702786f4944f344f31d132">scheduler_</a></td></tr>
<tr class="separator:a265296b90c702786f4944f344f31d132"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a99fff9537e830abd48420803947a8276"><td class="memItemLeft" align="right" valign="top">static constexpr <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_1NuDBBackend.html#a99fff9537e830abd48420803947a8276">currentType</a> = 1</td></tr>
<tr class="separator:a99fff9537e830abd48420803947a8276"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95c6eb45222d14b3367d617f39c4c4c1"><td class="memItemLeft" align="right" valign="top">static constexpr <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_1NuDBBackend.html#a95c6eb45222d14b3367d617f39c4c4c1">deterministicMask</a> = 0xFFFFFFFF00000000ull</td></tr>
<tr class="separator:a95c6eb45222d14b3367d617f39c4c4c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80327260f0dbe62c801723f147a52ad9"><td class="memItemLeft" align="right" valign="top">static constexpr <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_1NuDBBackend.html#a80327260f0dbe62c801723f147a52ad9">deterministicType</a> = 0x5348524400000000ull</td></tr>
<tr class="separator:a80327260f0dbe62c801723f147a52ad9"><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="NuDBFactory_8cpp_source.html#l00038">38</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a0c087b7017042ac7691c40c15ba868e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0c087b7017042ac7691c40c15ba868e6">&#9670;&nbsp;</a></span>NuDBBackend() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ripple::NodeStore::NuDBBackend::NuDBBackend </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>keyBytes</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>keyValues</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td>
<td class="paramname"><em>burstSize</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"><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="NuDBFactory_8cpp_source.html#l00055">55</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="a39dce6db7becaff9d5819d81cc8ed8b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a39dce6db7becaff9d5819d81cc8ed8b6">&#9670;&nbsp;</a></span>NuDBBackend() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ripple::NodeStore::NuDBBackend::NuDBBackend </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>keyBytes</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>keyValues</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td>
<td class="paramname"><em>burstSize</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">nudb::context &amp;&#160;</td>
<td class="paramname"><em>context</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="NuDBFactory_8cpp_source.html#l00073">73</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="a4162d130c7626e1e5207d1ffd583e880"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4162d130c7626e1e5207d1ffd583e880">&#9670;&nbsp;</a></span>~NuDBBackend()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ripple::NodeStore::NuDBBackend::~NuDBBackend </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> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00093">93</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a973bd1539e909dcc515980e7b6f61f3d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a973bd1539e909dcc515980e7b6f61f3d">&#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"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> ripple::NodeStore::NuDBBackend::getName </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the human-readable name of this backend. </p>
<p>This is used for diagnostic output. </p>
<p>Implements <a class="el" href="classripple_1_1NodeStore_1_1Backend.html#a206d540c4b8359c598f2309c5ee194bd">ripple::NodeStore::Backend</a>.</p>
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00108">108</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="a9e494839a2dcf789bb6cdc300ad65931"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9e494839a2dcf789bb6cdc300ad65931">&#9670;&nbsp;</a></span>open() <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">void ripple::NodeStore::NuDBBackend::open </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>createIfMissing</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint64_t&#160;</td>
<td class="paramname"><em>appType</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint64_t&#160;</td>
<td class="paramname"><em>uid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint64_t&#160;</td>
<td class="paramname"><em>salt</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Open the backend. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">createIfMissing</td><td>Create the database files if necessary. </td></tr>
<tr><td class="paramname">appType</td><td>Deterministic appType used to create a backend. </td></tr>
<tr><td class="paramname">uid</td><td>Deterministic uid used to create a backend. </td></tr>
<tr><td class="paramname">salt</td><td>Deterministic salt used to create a backend. </td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="elRef" href="http://en.cppreference.com/w/cpp/error/runtime_error.html" title="STL class.">std::runtime_error</a></td><td>is function is called not for NuDB backend. </td></tr>
</table>
</dd>
</dl>
<p>Old value currentType is accepted for appnum in traditional databases, new value is used for deterministic shard databases. New 64-bit value is constructed from fixed and random parts. Fixed part is bounded by bitmask deterministicMask, and the value of fixed part is deterministicType. Random part depends on the contents of the shard and may be any. The contents of appnum field should match either old or new rule.</p>
<p>Reimplemented from <a class="el" href="classripple_1_1NodeStore_1_1Backend.html#ae4e7c931c5382d31d877c6f7162dd21e">ripple::NodeStore::Backend</a>.</p>
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00114">114</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="acf5ab73b7ec283a9ee0b73462e1d8531"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acf5ab73b7ec283a9ee0b73462e1d8531">&#9670;&nbsp;</a></span>isOpen()</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::NuDBBackend::isOpen </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true is the database is open. </p>
<p>Implements <a class="el" href="classripple_1_1NodeStore_1_1Backend.html#acd6ac096e54166098107227a8d168044">ripple::NodeStore::Backend</a>.</p>
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00167">167</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="a2160cbce008b1fd13e1797d81d989128"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2160cbce008b1fd13e1797d81d989128">&#9670;&nbsp;</a></span>open() <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">void ripple::NodeStore::NuDBBackend::open </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>createIfMissing</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Open the backend. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">createIfMissing</td><td>Create the database files if necessary. This allows the caller to catch exceptions. </td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="classripple_1_1NodeStore_1_1Backend.html#a586356a9f6050201be9d184bc3fd2c83">ripple::NodeStore::Backend</a>.</p>
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00173">173</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="a336d7fe747c73366bec1cf42c5e05b67"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a336d7fe747c73366bec1cf42c5e05b67">&#9670;&nbsp;</a></span>close()</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::NuDBBackend::close </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Close the backend. </p>
<p>This allows the caller to catch exceptions. </p>
<p>Implements <a class="el" href="classripple_1_1NodeStore_1_1Backend.html#a6b13f9a9bbf0bf6470648f4910a92dd0">ripple::NodeStore::Backend</a>.</p>
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00179">179</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="a1b03edf356922e780fe41987476f1f6a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b03edf356922e780fe41987476f1f6a">&#9670;&nbsp;</a></span>fetch()</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_1_1NodeStore.html#af127c2e4fc73b5d35647147ef45b350c">Status</a> ripple::NodeStore::NuDBBackend::fetch </td>
<td>(</td>
<td class="paramtype">void const *&#160;</td>
<td class="paramname"><em>key</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_1NodeObject.html">NodeObject</a> &gt; *&#160;</td>
<td class="paramname"><em>pObject</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Fetch a single object. </p>
<p>If the object is not found or an error is encountered, the result will indicate the condition. </p><dl class="section note"><dt>Note</dt><dd>This will be called concurrently. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">key</td><td>A pointer to the key data. </td></tr>
<tr><td class="paramname">pObject</td><td>[out] The created object if successful. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The result of the operation. </dd></dl>
<p>Implements <a class="el" href="classripple_1_1NodeStore_1_1Backend.html#a7d3224e43e89dc098962b986d70e9833">ripple::NodeStore::Backend</a>.</p>
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00205">205</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="ad1dea770406fa29aa16f14df58e8d568"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad1dea770406fa29aa16f14df58e8d568">&#9670;&nbsp;</a></span>fetchBatch()</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/utility/pair.html">std::pair</a>&lt;<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/memory/shared_ptr.html">std::shared_ptr</a>&lt;<a class="el" href="classripple_1_1NodeObject.html">NodeObject</a>&gt; &gt;, <a class="el" href="namespaceripple_1_1NodeStore.html#af127c2e4fc73b5d35647147ef45b350c">Status</a>&gt; ripple::NodeStore::NuDBBackend::fetchBatch </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> const * &gt; const &amp;&#160;</td>
<td class="paramname"><em>hashes</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Fetch a batch synchronously. </p>
<p>Implements <a class="el" href="classripple_1_1NodeStore_1_1Backend.html#aa772cdcdfaae28944eac29473bc3931a">ripple::NodeStore::Backend</a>.</p>
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00233">233</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="a4ffccad519a4ac36bb0329a186b4783f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ffccad519a4ac36bb0329a186b4783f">&#9670;&nbsp;</a></span>do_insert()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ripple::NodeStore::NuDBBackend::do_insert </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_1NodeObject.html">NodeObject</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>no</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00251">251</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="a00c5d2a5073f3318fc0e52f255a1c212"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00c5d2a5073f3318fc0e52f255a1c212">&#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">void ripple::NodeStore::NuDBBackend::store </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_1NodeObject.html">NodeObject</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>object</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Store a single object. </p>
<p>Depending on the implementation this may happen immediately or deferred using a scheduled task. </p><dl class="section note"><dt>Note</dt><dd>This will be called concurrently. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">object</td><td>The object to store. </td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="classripple_1_1NodeStore_1_1Backend.html#a8862f8d96713c985c3169e57cbb260c2">ripple::NodeStore::Backend</a>.</p>
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00264">264</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="a4e9abc2a44a3501131709dcd6d5c509a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e9abc2a44a3501131709dcd6d5c509a">&#9670;&nbsp;</a></span>storeBatch()</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::NuDBBackend::storeBatch </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceripple_1_1NodeStore.html#ae0e4b79f8eb3ffa0bf8fcaf848643202">Batch</a> const &amp;&#160;</td>
<td class="paramname"><em>batch</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Store a group of objects. </p>
<dl class="section note"><dt>Note</dt><dd>This function will not be called concurrently with itself or <a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html#a00c5d2a5073f3318fc0e52f255a1c212">store</a>. </dd></dl>
<p>Implements <a class="el" href="classripple_1_1NodeStore_1_1Backend.html#acb1f22b4101841e695477646c95376a7">ripple::NodeStore::Backend</a>.</p>
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00276">276</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="a7d886e5eee636e58798208a5e46e71f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7d886e5eee636e58798208a5e46e71f6">&#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">void ripple::NodeStore::NuDBBackend::sync </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implements <a class="el" href="classripple_1_1NodeStore_1_1Backend.html#a0756bdfe06dcb0382b47e23b39813394">ripple::NodeStore::Backend</a>.</p>
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00289">289</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="abaf0ba251ee000601135df13dd885dca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abaf0ba251ee000601135df13dd885dca">&#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">void ripple::NodeStore::NuDBBackend::for_each </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt; void(<a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1NodeObject.html">NodeObject</a> &gt;)&gt;&#160;</td>
<td class="paramname"><em>f</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Visit every object in the database This is usually called during import. </p>
<dl class="section note"><dt>Note</dt><dd>This routine will not be called concurrently with itself or other methods. </dd></dl>
<dl class="section see"><dt>See also</dt><dd>import </dd></dl>
<p>Implements <a class="el" href="classripple_1_1NodeStore_1_1Backend.html#a70721d2adc758a808d2536eee864df52">ripple::NodeStore::Backend</a>.</p>
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00294">294</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="adf8b3a8b6f911845a8323cc00c0aeff0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adf8b3a8b6f911845a8323cc00c0aeff0">&#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">int ripple::NodeStore::NuDBBackend::getWriteLoad </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Estimate the number of write operations pending. </p>
<p>Implements <a class="el" href="classripple_1_1NodeStore_1_1Backend.html#ac4d7008b7a616ce05568da3e96a204ec">ripple::NodeStore::Backend</a>.</p>
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00331">331</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="ae6cf1bca8633f03532a5836b959adc60"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae6cf1bca8633f03532a5836b959adc60">&#9670;&nbsp;</a></span>setDeletePath()</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::NuDBBackend::setDeletePath </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Remove contents on disk upon destruction. </p>
<p>Implements <a class="el" href="classripple_1_1NodeStore_1_1Backend.html#a898be5251e9216eb21938e3083c2d1ef">ripple::NodeStore::Backend</a>.</p>
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00337">337</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="ab012b4ff123427bc35a5d4ac4c6269c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab012b4ff123427bc35a5d4ac4c6269c0">&#9670;&nbsp;</a></span>verify()</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::NuDBBackend::verify </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Perform consistency checks on database. </p>
<p>This method is implemented only by <a class="el" href="classripple_1_1NodeStore_1_1NuDBBackend.html">NuDBBackend</a>. It is not yet called anywhere, but it might be a good idea to one day call it at startup to avert a crash. </p>
<p>Reimplemented from <a class="el" href="classripple_1_1NodeStore_1_1Backend.html#afea5371bd4d7824d96f28700fa831f33">ripple::NodeStore::Backend</a>.</p>
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00343">343</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="a80ceb104dfe540399ddb1fe8d43111ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80ceb104dfe540399ddb1fe8d43111ac">&#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::NuDBBackend::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">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the number of file descriptors the backend expects to need. </p>
<p>Implements <a class="el" href="classripple_1_1NodeStore_1_1Backend.html#a915130d326c2e63209accb8af09cf8b4">ripple::NodeStore::Backend</a>.</p>
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00362">362</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="afd4e55baccdaf56f34ae3c77191932a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afd4e55baccdaf56f34ae3c77191932a6">&#9670;&nbsp;</a></span>counters()</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">Counters</a>&lt;<a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a>&gt; &gt; ripple::NodeStore::Backend::counters </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">virtual</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns 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 class="definition">Definition at line <a class="el" href="Backend_8h_source.html#l00184">184</a> of file <a class="el" href="Backend_8h_source.html">Backend.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a99fff9537e830abd48420803947a8276"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a99fff9537e830abd48420803947a8276">&#9670;&nbsp;</a></span>currentType</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> ripple::NodeStore::NuDBBackend::currentType = 1</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00041">41</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="a95c6eb45222d14b3367d617f39c4c4c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a95c6eb45222d14b3367d617f39c4c4c1">&#9670;&nbsp;</a></span>deterministicMask</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> ripple::NodeStore::NuDBBackend::deterministicMask = 0xFFFFFFFF00000000ull</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00042">42</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="a80327260f0dbe62c801723f147a52ad9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80327260f0dbe62c801723f147a52ad9">&#9670;&nbsp;</a></span>deterministicType</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> ripple::NodeStore::NuDBBackend::deterministicType = 0x5348524400000000ull</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00045">45</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="a6e4630f4a1747a3a96a690a862e801ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e4630f4a1747a3a96a690a862e801ec">&#9670;&nbsp;</a></span>j_</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> ripple::NodeStore::NuDBBackend::j_</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00047">47</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="ae9d0d8d731ae1ac3cc3bb35da8eaf9d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae9d0d8d731ae1ac3cc3bb35da8eaf9d2">&#9670;&nbsp;</a></span>keyBytes_</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const size_t ripple::NodeStore::NuDBBackend::keyBytes_</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00048">48</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="a59ad11b330c2a53bfa0de5aa861f491e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a59ad11b330c2a53bfa0de5aa861f491e">&#9670;&nbsp;</a></span>burstSize_</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> ripple::NodeStore::NuDBBackend::burstSize_</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00049">49</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="a62b70315254855fd1fcbabe62d52495a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62b70315254855fd1fcbabe62d52495a">&#9670;&nbsp;</a></span>name_</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> ripple::NodeStore::NuDBBackend::name_</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00050">50</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="a93307b4032398645d984ecc1f90bd1e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a93307b4032398645d984ecc1f90bd1e7">&#9670;&nbsp;</a></span>db_</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">nudb::store ripple::NodeStore::NuDBBackend::db_</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00051">51</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="ac45f916ad224a53a053260d68b622bc7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac45f916ad224a53a053260d68b622bc7">&#9670;&nbsp;</a></span>deletePath_</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/atomic/atomic.html">std::atomic</a>&lt;bool&gt; ripple::NodeStore::NuDBBackend::deletePath_</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00052">52</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</a>.</p>
</div>
</div>
<a id="a265296b90c702786f4944f344f31d132"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a265296b90c702786f4944f344f31d132">&#9670;&nbsp;</a></span>scheduler_</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classripple_1_1NodeStore_1_1Scheduler.html">Scheduler</a>&amp; ripple::NodeStore::NuDBBackend::scheduler_</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="NuDBFactory_8cpp_source.html#l00053">53</a> of file <a class="el" href="NuDBFactory_8cpp_source.html">NuDBFactory.cpp</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>