Files
rippled/classripple_1_1PostgresDatabaseImp.html
2022-05-11 23:57:28 +00:00

1364 lines
84 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::PostgresDatabaseImp 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="classripple_1_1PostgresDatabaseImp.html">PostgresDatabaseImp</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classripple_1_1PostgresDatabaseImp-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">ripple::PostgresDatabaseImp Class Reference<span class="mlabels"><span class="mlabel">final</span></span></div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for ripple::PostgresDatabaseImp:</div>
<div class="dyncontent">
<div class="center"><img src="classripple_1_1PostgresDatabaseImp__inherit__graph.png" border="0" usemap="#ripple_1_1PostgresDatabaseImp_inherit__map" alt="Inheritance graph"/></div>
<map name="ripple_1_1PostgresDatabaseImp_inherit__map" id="ripple_1_1PostgresDatabaseImp_inherit__map">
<area shape="rect" title=" " alt="" coords="5,155,216,181"/>
<area shape="rect" href="classripple_1_1PostgresDatabase.html" title=" " alt="" coords="18,80,203,107"/>
<area shape="rect" href="classripple_1_1RelationalDatabase.html" title=" " alt="" coords="13,5,208,32"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for ripple::PostgresDatabaseImp:</div>
<div class="dyncontent">
<div class="center"><img src="classripple_1_1PostgresDatabaseImp__coll__graph.png" border="0" usemap="#ripple_1_1PostgresDatabaseImp_coll__map" alt="Collaboration graph"/></div>
<map name="ripple_1_1PostgresDatabaseImp_coll__map" id="ripple_1_1PostgresDatabaseImp_coll__map">
<area shape="rect" title=" " alt="" coords="1468,199,1679,225"/>
<area shape="rect" href="classripple_1_1PostgresDatabase.html" title=" " alt="" coords="1175,19,1360,45"/>
<area shape="rect" href="classripple_1_1RelationalDatabase.html" title=" " alt="" coords="860,5,1055,32"/>
<area shape="rect" href="classripple_1_1Application.html" title=" " alt="" coords="1197,172,1337,199"/>
<area shape="rect" href="classbeast_1_1PropertyStream_1_1Source.html" title="Subclasses can be called to write to a stream and have children." alt="" coords="873,146,1041,187"/>
<area shape="rect" href="classbeast_1_1PropertyStream_1_1Item.html" title=" " alt="" coords="1183,83,1351,125"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/thread/recursive_mutex.html" title="STL class." alt="" coords="576,103,735,129"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/string/basic_string.html" title="STL class." alt="" coords="612,153,699,180"/>
<area shape="rect" href="classbeast_1_1List.html" title=" " alt="" coords="563,205,748,246"/>
<area shape="rect" href="classbeast_1_1detail_1_1ListNode.html" title=" " alt="" coords="275,155,457,211"/>
<area shape="rect" href="classbeast_1_1detail_1_1ListNode.html" title=" " alt="" coords="5,162,173,203"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/types/size_t.html" title=" " alt="" coords="322,235,410,261"/>
<area shape="rect" title=" " alt="" coords="884,56,1031,83"/>
<area shape="rect" href="classbeast_1_1Journal.html" title="A generic endpoint for log messages." alt="" coords="1212,223,1323,249"/>
<area shape="rect" href="classbeast_1_1Journal_1_1Sink.html" title="Abstraction for the underlying message destination." alt="" coords="884,223,1031,249"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html" title=" " alt="" coords="1171,273,1364,300"/>
</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-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a251e55e3d5aa9b4e4d1a7eebe2157d46"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1RelationalDatabase.html#a251e55e3d5aa9b4e4d1a7eebe2157d46">AccountTx</a> = <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/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1Transaction.html">Transaction</a> &gt;, <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_1TxMeta.html">TxMeta</a> &gt; &gt;</td></tr>
<tr class="separator:a251e55e3d5aa9b4e4d1a7eebe2157d46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1af9139d7f4c8f662c7b8e49473a21e2"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1RelationalDatabase.html#a1af9139d7f4c8f662c7b8e49473a21e2">AccountTxs</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="classripple_1_1RelationalDatabase.html#a251e55e3d5aa9b4e4d1a7eebe2157d46">AccountTx</a> &gt;</td></tr>
<tr class="separator:a1af9139d7f4c8f662c7b8e49473a21e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad49d721f8f069c1ee9652b93a3485423"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1RelationalDatabase.html#ad49d721f8f069c1ee9652b93a3485423">txnMetaLedgerType</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/tuple.html">std::tuple</a>&lt; <a class="el" href="namespaceripple.html#ab1f2184bb5938b5508798cd47a561a21">Blob</a>, <a class="el" href="namespaceripple.html#ab1f2184bb5938b5508798cd47a561a21">Blob</a>, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> &gt;</td></tr>
<tr class="separator:ad49d721f8f069c1ee9652b93a3485423"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a183ed7f35d368ec4564d8083fe9656f3"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1RelationalDatabase.html#a183ed7f35d368ec4564d8083fe9656f3">MetaTxsList</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="classripple_1_1RelationalDatabase.html#ad49d721f8f069c1ee9652b93a3485423">txnMetaLedgerType</a> &gt;</td></tr>
<tr class="separator:a183ed7f35d368ec4564d8083fe9656f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affdfbc3c5f0f2d7b78cc5570617a5fda"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1RelationalDatabase.html#affdfbc3c5f0f2d7b78cc5570617a5fda">LedgerSequence</a> = uint32_t</td></tr>
<tr class="separator:affdfbc3c5f0f2d7b78cc5570617a5fda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6ed6a653c43698a1480c0230b1e99aa"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1RelationalDatabase.html#ae6ed6a653c43698a1480c0230b1e99aa">LedgerHash</a> = <a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a></td></tr>
<tr class="separator:ae6ed6a653c43698a1480c0230b1e99aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99c471461c2b0858d240f98034c6fda3"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1RelationalDatabase.html#a99c471461c2b0858d240f98034c6fda3">LedgerShortcut</a> = <a class="el" href="namespaceripple_1_1RPC.html#a4c04e509451d50d9449cff3d477ff4f2">RPC::LedgerShortcut</a></td></tr>
<tr class="separator:a99c471461c2b0858d240f98034c6fda3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6edb30f534bd5669ee659789aa22e86"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1RelationalDatabase.html#ae6edb30f534bd5669ee659789aa22e86">LedgerSpecifier</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/variant.html">std::variant</a>&lt; <a class="el" href="structripple_1_1LedgerRange.html">LedgerRange</a>, <a class="el" href="namespaceripple_1_1RPC.html#a4c04e509451d50d9449cff3d477ff4f2">LedgerShortcut</a>, <a class="el" href="classripple_1_1RelationalDatabase.html#affdfbc3c5f0f2d7b78cc5570617a5fda">LedgerSequence</a>, <a class="el" href="classripple_1_1RelationalDatabase.html#ae6ed6a653c43698a1480c0230b1e99aa">LedgerHash</a> &gt;</td></tr>
<tr class="separator:ae6edb30f534bd5669ee659789aa22e86"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><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:a42111c91d1b4f1333f625f662ca19e6d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PostgresDatabaseImp.html#a42111c91d1b4f1333f625f662ca19e6d">PostgresDatabaseImp</a> (<a class="el" href="classripple_1_1Application.html">Application</a> &amp;app, <a class="el" href="classripple_1_1Config.html">Config</a> const &amp;config, <a class="el" href="classripple_1_1JobQueue.html">JobQueue</a> &amp;jobQueue)</td></tr>
<tr class="separator:a42111c91d1b4f1333f625f662ca19e6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a790b0907cabeaa9309e53df35caf2270"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PostgresDatabaseImp.html#a790b0907cabeaa9309e53df35caf2270">stop</a> () override</td></tr>
<tr class="separator:a790b0907cabeaa9309e53df35caf2270"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a18dfaba02fe5f4535e0f7eeff62568"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PostgresDatabaseImp.html#a3a18dfaba02fe5f4535e0f7eeff62568">sweep</a> () override</td></tr>
<tr class="memdesc:a3a18dfaba02fe5f4535e0f7eeff62568"><td class="mdescLeft">&#160;</td><td class="mdescRight">sweep Sweeps the database. <a href="classripple_1_1PostgresDatabaseImp.html#a3a18dfaba02fe5f4535e0f7eeff62568">More...</a><br /></td></tr>
<tr class="separator:a3a18dfaba02fe5f4535e0f7eeff62568"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3aff3775078aaa487ce9ef7118f9d83e"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; <a class="el" href="namespaceripple.html#a12af8e98b794e8ee3b4dbecaed2a4efd">LedgerIndex</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PostgresDatabaseImp.html#a3aff3775078aaa487ce9ef7118f9d83e">getMinLedgerSeq</a> () override</td></tr>
<tr class="memdesc:a3aff3775078aaa487ce9ef7118f9d83e"><td class="mdescLeft">&#160;</td><td class="mdescRight">getMinLedgerSeq Returns the minimum ledger sequence in the Ledgers table. <a href="classripple_1_1PostgresDatabaseImp.html#a3aff3775078aaa487ce9ef7118f9d83e">More...</a><br /></td></tr>
<tr class="separator:a3aff3775078aaa487ce9ef7118f9d83e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0497da471d261f1647531eee85b18a9"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; <a class="el" href="namespaceripple.html#a12af8e98b794e8ee3b4dbecaed2a4efd">LedgerIndex</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PostgresDatabaseImp.html#ae0497da471d261f1647531eee85b18a9">getMaxLedgerSeq</a> () override</td></tr>
<tr class="memdesc:ae0497da471d261f1647531eee85b18a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">getMaxLedgerSeq Returns the maximum ledger sequence in the Ledgers table. <a href="classripple_1_1PostgresDatabaseImp.html#ae0497da471d261f1647531eee85b18a9">More...</a><br /></td></tr>
<tr class="separator:ae0497da471d261f1647531eee85b18a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10f42a66974feddf42ab5b70cc6f2da8"><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_1PostgresDatabaseImp.html#a10f42a66974feddf42ab5b70cc6f2da8">getCompleteLedgers</a> () override</td></tr>
<tr class="memdesc:a10f42a66974feddf42ab5b70cc6f2da8"><td class="mdescLeft">&#160;</td><td class="mdescRight">getCompleteLedgers Returns a string which contains a list of completed ledgers. <a href="classripple_1_1PostgresDatabaseImp.html#a10f42a66974feddf42ab5b70cc6f2da8">More...</a><br /></td></tr>
<tr class="separator:a10f42a66974feddf42ab5b70cc6f2da8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93c76cb1c9bdbe3b7bb3ea9297332fba"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PostgresDatabaseImp.html#a93c76cb1c9bdbe3b7bb3ea9297332fba">getValidatedLedgerAge</a> () override</td></tr>
<tr class="memdesc:a93c76cb1c9bdbe3b7bb3ea9297332fba"><td class="mdescLeft">&#160;</td><td class="mdescRight">getValidatedLedgerAge Returns the age of the last validated ledger. <a href="classripple_1_1PostgresDatabaseImp.html#a93c76cb1c9bdbe3b7bb3ea9297332fba">More...</a><br /></td></tr>
<tr class="separator:a93c76cb1c9bdbe3b7bb3ea9297332fba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b093ff1efa295270aaa0b34381ba455"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PostgresDatabaseImp.html#a1b093ff1efa295270aaa0b34381ba455">writeLedgerAndTransactions</a> (<a class="el" href="structripple_1_1LedgerInfo.html">LedgerInfo</a> const &amp;info, <a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; <a class="el" href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html">AccountTransactionsData</a> &gt; const &amp;accountTxData) override</td></tr>
<tr class="memdesc:a1b093ff1efa295270aaa0b34381ba455"><td class="mdescLeft">&#160;</td><td class="mdescRight">writeLedgerAndTransactions Writes new ledger and transaction data into the database. <a href="classripple_1_1PostgresDatabaseImp.html#a1b093ff1efa295270aaa0b34381ba455">More...</a><br /></td></tr>
<tr class="separator:a1b093ff1efa295270aaa0b34381ba455"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a2470e10bd922ac8ca13d4818510060"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; <a class="el" href="structripple_1_1LedgerInfo.html">LedgerInfo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PostgresDatabaseImp.html#a4a2470e10bd922ac8ca13d4818510060">getLedgerInfoByIndex</a> (<a class="el" href="namespaceripple.html#a12af8e98b794e8ee3b4dbecaed2a4efd">LedgerIndex</a> ledgerSeq) override</td></tr>
<tr class="memdesc:a4a2470e10bd922ac8ca13d4818510060"><td class="mdescLeft">&#160;</td><td class="mdescRight">getLedgerInfoByIndex Returns a ledger by its sequence. <a href="classripple_1_1PostgresDatabaseImp.html#a4a2470e10bd922ac8ca13d4818510060">More...</a><br /></td></tr>
<tr class="separator:a4a2470e10bd922ac8ca13d4818510060"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64195350ec9e7043d4963346766d26a9"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; <a class="el" href="structripple_1_1LedgerInfo.html">LedgerInfo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PostgresDatabaseImp.html#a64195350ec9e7043d4963346766d26a9">getNewestLedgerInfo</a> () override</td></tr>
<tr class="memdesc:a64195350ec9e7043d4963346766d26a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">getNewestLedgerInfo Returns the info of the newest saved ledger. <a href="classripple_1_1PostgresDatabaseImp.html#a64195350ec9e7043d4963346766d26a9">More...</a><br /></td></tr>
<tr class="separator:a64195350ec9e7043d4963346766d26a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15e0d6d6c71c77cc64cdb50e17154451"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; <a class="el" href="structripple_1_1LedgerInfo.html">LedgerInfo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PostgresDatabaseImp.html#a15e0d6d6c71c77cc64cdb50e17154451">getLedgerInfoByHash</a> (<a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> const &amp;ledgerHash) override</td></tr>
<tr class="memdesc:a15e0d6d6c71c77cc64cdb50e17154451"><td class="mdescLeft">&#160;</td><td class="mdescRight">getLedgerInfoByHash Returns the info of the ledger with given hash. <a href="classripple_1_1PostgresDatabaseImp.html#a15e0d6d6c71c77cc64cdb50e17154451">More...</a><br /></td></tr>
<tr class="separator:a15e0d6d6c71c77cc64cdb50e17154451"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a060af4b68fab45d700f44565713dcb9f"><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_1PostgresDatabaseImp.html#a060af4b68fab45d700f44565713dcb9f">getHashByIndex</a> (<a class="el" href="namespaceripple.html#a12af8e98b794e8ee3b4dbecaed2a4efd">LedgerIndex</a> ledgerIndex) override</td></tr>
<tr class="memdesc:a060af4b68fab45d700f44565713dcb9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">getHashByIndex Returns the hash of the ledger with the given sequence. <a href="classripple_1_1PostgresDatabaseImp.html#a060af4b68fab45d700f44565713dcb9f">More...</a><br /></td></tr>
<tr class="separator:a060af4b68fab45d700f44565713dcb9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21f82c0714c06dac9b05f4bc00b8ad08"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a>&lt; <a class="el" href="structripple_1_1LedgerHashPair.html">LedgerHashPair</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PostgresDatabaseImp.html#a21f82c0714c06dac9b05f4bc00b8ad08">getHashesByIndex</a> (<a class="el" href="namespaceripple.html#a12af8e98b794e8ee3b4dbecaed2a4efd">LedgerIndex</a> ledgerIndex) override</td></tr>
<tr class="memdesc:a21f82c0714c06dac9b05f4bc00b8ad08"><td class="mdescLeft">&#160;</td><td class="mdescRight">getHashesByIndex Returns the hashes of the ledger and its parent as specified by the ledgerIndex. <a href="classripple_1_1PostgresDatabaseImp.html#a21f82c0714c06dac9b05f4bc00b8ad08">More...</a><br /></td></tr>
<tr class="separator:a21f82c0714c06dac9b05f4bc00b8ad08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad32e02bffab00459a5e6b67486960c5c"><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#a12af8e98b794e8ee3b4dbecaed2a4efd">LedgerIndex</a>, <a class="el" href="structripple_1_1LedgerHashPair.html">LedgerHashPair</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PostgresDatabaseImp.html#ad32e02bffab00459a5e6b67486960c5c">getHashesByIndex</a> (<a class="el" href="namespaceripple.html#a12af8e98b794e8ee3b4dbecaed2a4efd">LedgerIndex</a> minSeq, <a class="el" href="namespaceripple.html#a12af8e98b794e8ee3b4dbecaed2a4efd">LedgerIndex</a> maxSeq) override</td></tr>
<tr class="memdesc:ad32e02bffab00459a5e6b67486960c5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">getHashesByIndex Returns hashes of each ledger and its parent for all ledgers within the provided range. <a href="classripple_1_1PostgresDatabaseImp.html#ad32e02bffab00459a5e6b67486960c5c">More...</a><br /></td></tr>
<tr class="separator:ad32e02bffab00459a5e6b67486960c5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9137b0128b53180e5e2888e45a17027e"><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="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PostgresDatabaseImp.html#a9137b0128b53180e5e2888e45a17027e">getTxHashes</a> (<a class="el" href="namespaceripple.html#a12af8e98b794e8ee3b4dbecaed2a4efd">LedgerIndex</a> seq) override</td></tr>
<tr class="memdesc:a9137b0128b53180e5e2888e45a17027e"><td class="mdescLeft">&#160;</td><td class="mdescRight">getTxHashes Returns a vector of the hashes of transactions belonging to the ledger with the provided sequence. <a href="classripple_1_1PostgresDatabaseImp.html#a9137b0128b53180e5e2888e45a17027e">More...</a><br /></td></tr>
<tr class="separator:a9137b0128b53180e5e2888e45a17027e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0084018c94d6d1f922e679c80e45de6f"><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/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1Transaction.html">Transaction</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PostgresDatabaseImp.html#a0084018c94d6d1f922e679c80e45de6f">getTxHistory</a> (<a class="el" href="namespaceripple.html#a12af8e98b794e8ee3b4dbecaed2a4efd">LedgerIndex</a> startIndex) override</td></tr>
<tr class="memdesc:a0084018c94d6d1f922e679c80e45de6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">getTxHistory Returns the 20 most recent transactions starting from the given number. <a href="classripple_1_1PostgresDatabaseImp.html#a0084018c94d6d1f922e679c80e45de6f">More...</a><br /></td></tr>
<tr class="separator:a0084018c94d6d1f922e679c80e45de6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ec203479d0d36415fc638adeb6cc115"><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="el" href="structripple_1_1RelationalDatabase_1_1AccountTxResult.html">AccountTxResult</a>, <a class="el" href="structripple_1_1RPC_1_1Status.html">RPC::Status</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PostgresDatabaseImp.html#a2ec203479d0d36415fc638adeb6cc115">getAccountTx</a> (<a class="el" href="structripple_1_1RelationalDatabase_1_1AccountTxArgs.html">AccountTxArgs</a> const &amp;args) override</td></tr>
<tr class="memdesc:a2ec203479d0d36415fc638adeb6cc115"><td class="mdescLeft">&#160;</td><td class="mdescRight">getAccountTx Get the last account transactions specified by the AccountTxArgs struct. <a href="classripple_1_1PostgresDatabaseImp.html#a2ec203479d0d36415fc638adeb6cc115">More...</a><br /></td></tr>
<tr class="separator:a2ec203479d0d36415fc638adeb6cc115"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63de1d50319ee10af6bad0dd2ac51fab"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structripple_1_1Transaction_1_1Locator.html">Transaction::Locator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PostgresDatabaseImp.html#a63de1d50319ee10af6bad0dd2ac51fab">locateTransaction</a> (<a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> const &amp;id) override</td></tr>
<tr class="memdesc:a63de1d50319ee10af6bad0dd2ac51fab"><td class="mdescLeft">&#160;</td><td class="mdescRight">locateTransaction Returns information used to locate a transaction. <a href="classripple_1_1PostgresDatabaseImp.html#a63de1d50319ee10af6bad0dd2ac51fab">More...</a><br /></td></tr>
<tr class="separator:a63de1d50319ee10af6bad0dd2ac51fab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7350424c6e5750abc473b6855d21fabb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PostgresDatabaseImp.html#a7350424c6e5750abc473b6855d21fabb">ledgerDbHasSpace</a> (<a class="el" href="classripple_1_1Config.html">Config</a> const &amp;config) override</td></tr>
<tr class="memdesc:a7350424c6e5750abc473b6855d21fabb"><td class="mdescLeft">&#160;</td><td class="mdescRight">ledgerDbHasSpace Checks if the ledger database has available space. <a href="classripple_1_1PostgresDatabaseImp.html#a7350424c6e5750abc473b6855d21fabb">More...</a><br /></td></tr>
<tr class="separator:a7350424c6e5750abc473b6855d21fabb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34c266907f8549408ffe730ccc0dd5c2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PostgresDatabaseImp.html#a34c266907f8549408ffe730ccc0dd5c2">transactionDbHasSpace</a> (<a class="el" href="classripple_1_1Config.html">Config</a> const &amp;config) override</td></tr>
<tr class="memdesc:a34c266907f8549408ffe730ccc0dd5c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">transactionDbHasSpace Checks if the transaction database has available space. <a href="classripple_1_1PostgresDatabaseImp.html#a34c266907f8549408ffe730ccc0dd5c2">More...</a><br /></td></tr>
<tr class="separator:a34c266907f8549408ffe730ccc0dd5c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a317f4a4105f83ff73370b7075e618fd0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PostgresDatabaseImp.html#a317f4a4105f83ff73370b7075e618fd0">isCaughtUp</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;reason) override</td></tr>
<tr class="memdesc:a317f4a4105f83ff73370b7075e618fd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">isCaughtUp returns whether the database is caught up with the network <a href="classripple_1_1PostgresDatabaseImp.html#a317f4a4105f83ff73370b7075e618fd0">More...</a><br /></td></tr>
<tr class="separator:a317f4a4105f83ff73370b7075e618fd0"><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-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a7f08e20557d394e761662ff29373f467"><td class="memItemLeft" align="right" valign="top">static <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_1RelationalDatabase.html">RelationalDatabase</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1RelationalDatabase.html#a7f08e20557d394e761662ff29373f467">init</a> (<a class="el" href="classripple_1_1Application.html">Application</a> &amp;app, <a class="el" href="classripple_1_1Config.html">Config</a> const &amp;config, <a class="el" href="classripple_1_1JobQueue.html">JobQueue</a> &amp;jobQueue)</td></tr>
<tr class="memdesc:a7f08e20557d394e761662ff29373f467"><td class="mdescLeft">&#160;</td><td class="mdescRight">init Creates and returns an appropriate <a class="el" href="classripple_1_1RelationalDatabase.html">RelationalDatabase</a> instance based on configuration. <a href="classripple_1_1RelationalDatabase.html#a7f08e20557d394e761662ff29373f467">More...</a><br /></td></tr>
<tr class="separator:a7f08e20557d394e761662ff29373f467"><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:ae48b9a3a616ac41d7d0e6280d816181a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PostgresDatabaseImp.html#ae48b9a3a616ac41d7d0e6280d816181a">dbHasSpace</a> (<a class="el" href="classripple_1_1Config.html">Config</a> const &amp;config)</td></tr>
<tr class="separator:ae48b9a3a616ac41d7d0e6280d816181a"><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:a0b78222a8decc22512c15235ce2cdb71"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1Application.html">Application</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PostgresDatabaseImp.html#a0b78222a8decc22512c15235ce2cdb71">app_</a></td></tr>
<tr class="separator:a0b78222a8decc22512c15235ce2cdb71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98864c49c0bae3d697b9131715e47877"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbeast_1_1Journal.html">beast::Journal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PostgresDatabaseImp.html#a98864c49c0bae3d697b9131715e47877">j_</a></td></tr>
<tr class="separator:a98864c49c0bae3d697b9131715e47877"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0274f452fa29b8416249847c766f2034"><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; PgPool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PostgresDatabaseImp.html#a0274f452fa29b8416249847c766f2034">pgPool_</a></td></tr>
<tr class="separator:a0274f452fa29b8416249847c766f2034"><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="PostgresDatabase_8cpp_source.html#l00049">49</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="a251e55e3d5aa9b4e4d1a7eebe2157d46"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a251e55e3d5aa9b4e4d1a7eebe2157d46">&#9670;&nbsp;</a></span>AccountTx</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_1RelationalDatabase.html#a251e55e3d5aa9b4e4d1a7eebe2157d46">ripple::RelationalDatabase::AccountTx</a> = <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/memory/shared_ptr.html">std::shared_ptr</a>&lt;<a class="el" href="classripple_1_1Transaction.html">Transaction</a>&gt;, <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_1TxMeta.html">TxMeta</a>&gt; &gt;</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="RelationalDatabase_8h_source.html#l00085">85</a> of file <a class="el" href="RelationalDatabase_8h_source.html">RelationalDatabase.h</a>.</p>
</div>
</div>
<a id="a1af9139d7f4c8f662c7b8e49473a21e2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1af9139d7f4c8f662c7b8e49473a21e2">&#9670;&nbsp;</a></span>AccountTxs</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_1RelationalDatabase.html#a1af9139d7f4c8f662c7b8e49473a21e2">ripple::RelationalDatabase::AccountTxs</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;<a class="el" href="classripple_1_1RelationalDatabase.html#a251e55e3d5aa9b4e4d1a7eebe2157d46">AccountTx</a>&gt;</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="RelationalDatabase_8h_source.html#l00086">86</a> of file <a class="el" href="RelationalDatabase_8h_source.html">RelationalDatabase.h</a>.</p>
</div>
</div>
<a id="ad49d721f8f069c1ee9652b93a3485423"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad49d721f8f069c1ee9652b93a3485423">&#9670;&nbsp;</a></span>txnMetaLedgerType</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_1RelationalDatabase.html#ad49d721f8f069c1ee9652b93a3485423">ripple::RelationalDatabase::txnMetaLedgerType</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/tuple.html">std::tuple</a>&lt;<a class="el" href="namespaceripple.html#ab1f2184bb5938b5508798cd47a561a21">Blob</a>, <a class="el" href="namespaceripple.html#ab1f2184bb5938b5508798cd47a561a21">Blob</a>, <a class="elRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>&gt;</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="RelationalDatabase_8h_source.html#l00087">87</a> of file <a class="el" href="RelationalDatabase_8h_source.html">RelationalDatabase.h</a>.</p>
</div>
</div>
<a id="a183ed7f35d368ec4564d8083fe9656f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a183ed7f35d368ec4564d8083fe9656f3">&#9670;&nbsp;</a></span>MetaTxsList</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_1RelationalDatabase.html#a183ed7f35d368ec4564d8083fe9656f3">ripple::RelationalDatabase::MetaTxsList</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt;<a class="el" href="classripple_1_1RelationalDatabase.html#ad49d721f8f069c1ee9652b93a3485423">txnMetaLedgerType</a>&gt;</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="RelationalDatabase_8h_source.html#l00088">88</a> of file <a class="el" href="RelationalDatabase_8h_source.html">RelationalDatabase.h</a>.</p>
</div>
</div>
<a id="affdfbc3c5f0f2d7b78cc5570617a5fda"></a>
<h2 class="memtitle"><span class="permalink"><a href="#affdfbc3c5f0f2d7b78cc5570617a5fda">&#9670;&nbsp;</a></span>LedgerSequence</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_1RelationalDatabase.html#affdfbc3c5f0f2d7b78cc5570617a5fda">ripple::RelationalDatabase::LedgerSequence</a> = uint32_t</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="RelationalDatabase_8h_source.html#l00090">90</a> of file <a class="el" href="RelationalDatabase_8h_source.html">RelationalDatabase.h</a>.</p>
</div>
</div>
<a id="ae6ed6a653c43698a1480c0230b1e99aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae6ed6a653c43698a1480c0230b1e99aa">&#9670;&nbsp;</a></span>LedgerHash</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_1RelationalDatabase.html#ae6ed6a653c43698a1480c0230b1e99aa">ripple::RelationalDatabase::LedgerHash</a> = <a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a></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="RelationalDatabase_8h_source.html#l00091">91</a> of file <a class="el" href="RelationalDatabase_8h_source.html">RelationalDatabase.h</a>.</p>
</div>
</div>
<a id="a99c471461c2b0858d240f98034c6fda3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a99c471461c2b0858d240f98034c6fda3">&#9670;&nbsp;</a></span>LedgerShortcut</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="namespaceripple_1_1RPC.html#a4c04e509451d50d9449cff3d477ff4f2">ripple::RelationalDatabase::LedgerShortcut</a> = <a class="el" href="namespaceripple_1_1RPC.html#a4c04e509451d50d9449cff3d477ff4f2">RPC::LedgerShortcut</a></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="RelationalDatabase_8h_source.html#l00092">92</a> of file <a class="el" href="RelationalDatabase_8h_source.html">RelationalDatabase.h</a>.</p>
</div>
</div>
<a id="ae6edb30f534bd5669ee659789aa22e86"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae6edb30f534bd5669ee659789aa22e86">&#9670;&nbsp;</a></span>LedgerSpecifier</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_1RelationalDatabase.html#ae6edb30f534bd5669ee659789aa22e86">ripple::RelationalDatabase::LedgerSpecifier</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/variant.html">std::variant</a>&lt;<a class="el" href="structripple_1_1LedgerRange.html">LedgerRange</a>, <a class="el" href="namespaceripple_1_1RPC.html#a4c04e509451d50d9449cff3d477ff4f2">LedgerShortcut</a>, <a class="el" href="classripple_1_1RelationalDatabase.html#affdfbc3c5f0f2d7b78cc5570617a5fda">LedgerSequence</a>, <a class="el" href="classripple_1_1RelationalDatabase.html#ae6ed6a653c43698a1480c0230b1e99aa">LedgerHash</a>&gt;</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="RelationalDatabase_8h_source.html#l00094">94</a> of file <a class="el" href="RelationalDatabase_8h_source.html">RelationalDatabase.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a42111c91d1b4f1333f625f662ca19e6d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a42111c91d1b4f1333f625f662ca19e6d">&#9670;&nbsp;</a></span>PostgresDatabaseImp()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ripple::PostgresDatabaseImp::PostgresDatabaseImp </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Application.html">Application</a> &amp;&#160;</td>
<td class="paramname"><em>app</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1Config.html">Config</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="classripple_1_1JobQueue.html">JobQueue</a> &amp;&#160;</td>
<td class="paramname"><em>jobQueue</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="PostgresDatabase_8cpp_source.html#l00052">52</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a790b0907cabeaa9309e53df35caf2270"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a790b0907cabeaa9309e53df35caf2270">&#9670;&nbsp;</a></span>stop()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::PostgresDatabaseImp::stop </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implements <a class="el" href="classripple_1_1PostgresDatabase.html#a777dd8559a055cca317f9525694be1c4">ripple::PostgresDatabase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PostgresDatabase_8cpp_source.html#l00074">74</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div>
</div>
<a id="a3a18dfaba02fe5f4535e0f7eeff62568"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3a18dfaba02fe5f4535e0f7eeff62568">&#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">void ripple::PostgresDatabaseImp::sweep </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>sweep Sweeps the database. </p>
<p>Implements <a class="el" href="classripple_1_1PostgresDatabase.html#ad14da01d1b10dbcc73c16b729ed67b1a">ripple::PostgresDatabase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PostgresDatabase_8cpp_source.html#l00484">484</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div>
</div>
<a id="a3aff3775078aaa487ce9ef7118f9d83e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3aff3775078aaa487ce9ef7118f9d83e">&#9670;&nbsp;</a></span>getMinLedgerSeq()</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/optional.html">std::optional</a>&lt; <a class="el" href="namespaceripple.html#a12af8e98b794e8ee3b4dbecaed2a4efd">LedgerIndex</a> &gt; ripple::PostgresDatabaseImp::getMinLedgerSeq </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>getMinLedgerSeq Returns the minimum ledger sequence in the Ledgers table. </p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classripple_1_1Ledger.html" title="Holds a ledger.">Ledger</a> sequence or no value if no ledgers exist. </dd></dl>
<p>Implements <a class="el" href="classripple_1_1RelationalDatabase.html#a0075f77f85eb16d36fdd35974acfb8ea">ripple::RelationalDatabase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PostgresDatabase_8cpp_source.html#l00492">492</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div>
</div>
<a id="ae0497da471d261f1647531eee85b18a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae0497da471d261f1647531eee85b18a9">&#9670;&nbsp;</a></span>getMaxLedgerSeq()</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/optional.html">std::optional</a>&lt; <a class="el" href="namespaceripple.html#a12af8e98b794e8ee3b4dbecaed2a4efd">LedgerIndex</a> &gt; ripple::PostgresDatabaseImp::getMaxLedgerSeq </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>getMaxLedgerSeq Returns the maximum ledger sequence in the Ledgers table. </p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classripple_1_1Ledger.html" title="Holds a ledger.">Ledger</a> sequence or none if no ledgers exist. </dd></dl>
<p>Implements <a class="el" href="classripple_1_1RelationalDatabase.html#aa4e757a2656cd3c537e997e8a67ee78a">ripple::RelationalDatabase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PostgresDatabase_8cpp_source.html#l00507">507</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div>
</div>
<a id="a10f42a66974feddf42ab5b70cc6f2da8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a10f42a66974feddf42ab5b70cc6f2da8">&#9670;&nbsp;</a></span>getCompleteLedgers()</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::PostgresDatabaseImp::getCompleteLedgers </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>getCompleteLedgers Returns a string which contains a list of completed ledgers. </p>
<dl class="section return"><dt>Returns</dt><dd>String with completed ledger sequences </dd></dl>
<p>Implements <a class="el" href="classripple_1_1PostgresDatabase.html#a638a2672a99fd56dc7c534a65de82422">ripple::PostgresDatabase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PostgresDatabase_8cpp_source.html#l00518">518</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div>
</div>
<a id="a93c76cb1c9bdbe3b7bb3ea9297332fba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a93c76cb1c9bdbe3b7bb3ea9297332fba">&#9670;&nbsp;</a></span>getValidatedLedgerAge()</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/chrono/duration.html">std::chrono::seconds</a> ripple::PostgresDatabaseImp::getValidatedLedgerAge </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>getValidatedLedgerAge Returns the age of the last validated ledger. </p>
<dl class="section return"><dt>Returns</dt><dd>Age of the last validated ledger in seconds </dd></dl>
<p>Implements <a class="el" href="classripple_1_1PostgresDatabase.html#acbad8709817f45cb6879fd6bbb8168d9">ripple::PostgresDatabase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PostgresDatabase_8cpp_source.html#l00529">529</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div>
</div>
<a id="a1b093ff1efa295270aaa0b34381ba455"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b093ff1efa295270aaa0b34381ba455">&#9670;&nbsp;</a></span>writeLedgerAndTransactions()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ripple::PostgresDatabaseImp::writeLedgerAndTransactions </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structripple_1_1LedgerInfo.html">LedgerInfo</a> const &amp;&#160;</td>
<td class="paramname"><em>info</em>, </td>
</tr>
<tr>
<td class="paramkey"></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="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html">AccountTransactionsData</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>accountTxData</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>writeLedgerAndTransactions Writes new ledger and transaction data into the database. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">info</td><td><a class="el" href="classripple_1_1Ledger.html" title="Holds a ledger.">Ledger</a> info to write. </td></tr>
<tr><td class="paramname">accountTxData</td><td><a class="el" href="classripple_1_1Transaction.html">Transaction</a> data to write </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True on success, false on failure. </dd></dl>
<p>Implements <a class="el" href="classripple_1_1PostgresDatabase.html#a80ccf4e291a450fb7dda321479677e32">ripple::PostgresDatabase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PostgresDatabase_8cpp_source.html#l00543">543</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div>
</div>
<a id="a4a2470e10bd922ac8ca13d4818510060"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4a2470e10bd922ac8ca13d4818510060">&#9670;&nbsp;</a></span>getLedgerInfoByIndex()</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/optional.html">std::optional</a>&lt; <a class="el" href="structripple_1_1LedgerInfo.html">LedgerInfo</a> &gt; ripple::PostgresDatabaseImp::getLedgerInfoByIndex </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a12af8e98b794e8ee3b4dbecaed2a4efd">LedgerIndex</a>&#160;</td>
<td class="paramname"><em>ledgerSeq</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>getLedgerInfoByIndex Returns a ledger by its sequence. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ledgerSeq</td><td><a class="el" href="classripple_1_1Ledger.html" title="Holds a ledger.">Ledger</a> sequence. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The ledger if found, otherwise no value. </dd></dl>
<p>Implements <a class="el" href="classripple_1_1RelationalDatabase.html#a4b67ba7e09ea642386597210efefe07d">ripple::RelationalDatabase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PostgresDatabase_8cpp_source.html#l00628">628</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div>
</div>
<a id="a64195350ec9e7043d4963346766d26a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a64195350ec9e7043d4963346766d26a9">&#9670;&nbsp;</a></span>getNewestLedgerInfo()</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/optional.html">std::optional</a>&lt; <a class="el" href="structripple_1_1LedgerInfo.html">LedgerInfo</a> &gt; ripple::PostgresDatabaseImp::getNewestLedgerInfo </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>getNewestLedgerInfo Returns the info of the newest saved ledger. </p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classripple_1_1Ledger.html" title="Holds a ledger.">Ledger</a> info if found, otherwise no value. </dd></dl>
<p>Implements <a class="el" href="classripple_1_1RelationalDatabase.html#acbc9c19a6c01c6004df183ed8858f88b">ripple::RelationalDatabase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PostgresDatabase_8cpp_source.html#l00634">634</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div>
</div>
<a id="a15e0d6d6c71c77cc64cdb50e17154451"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15e0d6d6c71c77cc64cdb50e17154451">&#9670;&nbsp;</a></span>getLedgerInfoByHash()</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/optional.html">std::optional</a>&lt; <a class="el" href="structripple_1_1LedgerInfo.html">LedgerInfo</a> &gt; ripple::PostgresDatabaseImp::getLedgerInfoByHash </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> const &amp;&#160;</td>
<td class="paramname"><em>ledgerHash</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>getLedgerInfoByHash Returns the info of the ledger with given hash. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ledgerHash</td><td>Hash of the ledger. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classripple_1_1Ledger.html" title="Holds a ledger.">Ledger</a> if found, otherwise no value. </dd></dl>
<p>Implements <a class="el" href="classripple_1_1RelationalDatabase.html#a2df06f73b03baa40ff0cc92066d9fd3b">ripple::RelationalDatabase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PostgresDatabase_8cpp_source.html#l00640">640</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div>
</div>
<a id="a060af4b68fab45d700f44565713dcb9f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a060af4b68fab45d700f44565713dcb9f">&#9670;&nbsp;</a></span>getHashByIndex()</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::PostgresDatabaseImp::getHashByIndex </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a12af8e98b794e8ee3b4dbecaed2a4efd">LedgerIndex</a>&#160;</td>
<td class="paramname"><em>ledgerIndex</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>getHashByIndex Returns the hash of the ledger with the given sequence. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ledgerIndex</td><td><a class="el" href="classripple_1_1Ledger.html" title="Holds a ledger.">Ledger</a> sequence. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Hash of the ledger. </dd></dl>
<p>Implements <a class="el" href="classripple_1_1RelationalDatabase.html#ae73b0356cc96e29c9c66e52f64aeac0d">ripple::RelationalDatabase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PostgresDatabase_8cpp_source.html#l00646">646</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div>
</div>
<a id="a21f82c0714c06dac9b05f4bc00b8ad08"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a21f82c0714c06dac9b05f4bc00b8ad08">&#9670;&nbsp;</a></span>getHashesByIndex() <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/utility/optional.html">std::optional</a>&lt; <a class="el" href="structripple_1_1LedgerHashPair.html">LedgerHashPair</a> &gt; ripple::PostgresDatabaseImp::getHashesByIndex </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a12af8e98b794e8ee3b4dbecaed2a4efd">LedgerIndex</a>&#160;</td>
<td class="paramname"><em>ledgerIndex</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>getHashesByIndex Returns the hashes of the ledger and its parent as specified by the ledgerIndex. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ledgerIndex</td><td><a class="el" href="classripple_1_1Ledger.html" title="Holds a ledger.">Ledger</a> sequence. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Struct <a class="el" href="structripple_1_1LedgerHashPair.html">LedgerHashPair</a> which contains hashes of the ledger and its parent. </dd></dl>
<p>Implements <a class="el" href="classripple_1_1RelationalDatabase.html#a177aaf55106410ac5a2b2969674d4d57">ripple::RelationalDatabase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PostgresDatabase_8cpp_source.html#l00656">656</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div>
</div>
<a id="ad32e02bffab00459a5e6b67486960c5c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad32e02bffab00459a5e6b67486960c5c">&#9670;&nbsp;</a></span>getHashesByIndex() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a>&lt; <a class="el" href="namespaceripple.html#a12af8e98b794e8ee3b4dbecaed2a4efd">LedgerIndex</a>, <a class="el" href="structripple_1_1LedgerHashPair.html">LedgerHashPair</a> &gt; ripple::PostgresDatabaseImp::getHashesByIndex </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a12af8e98b794e8ee3b4dbecaed2a4efd">LedgerIndex</a>&#160;</td>
<td class="paramname"><em>minSeq</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a12af8e98b794e8ee3b4dbecaed2a4efd">LedgerIndex</a>&#160;</td>
<td class="paramname"><em>maxSeq</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>getHashesByIndex Returns hashes of each ledger and its parent for all ledgers within the provided range. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">minSeq</td><td>Minimum ledger sequence. </td></tr>
<tr><td class="paramname">maxSeq</td><td>Maximum ledger sequence. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Container that maps the sequence number of a found ledger to the struct <a class="el" href="structripple_1_1LedgerHashPair.html">LedgerHashPair</a> which contains the hashes of the ledger and its parent. </dd></dl>
<p>Implements <a class="el" href="classripple_1_1RelationalDatabase.html#a4d01c850566c044f3d595db5b16cc7c0">ripple::RelationalDatabase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PostgresDatabase_8cpp_source.html#l00671">671</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div>
</div>
<a id="a9137b0128b53180e5e2888e45a17027e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9137b0128b53180e5e2888e45a17027e">&#9670;&nbsp;</a></span>getTxHashes()</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="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> &gt; ripple::PostgresDatabaseImp::getTxHashes </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a12af8e98b794e8ee3b4dbecaed2a4efd">LedgerIndex</a>&#160;</td>
<td class="paramname"><em>seq</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>getTxHashes Returns a vector of the hashes of transactions belonging to the ledger with the provided sequence. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">seq</td><td><a class="el" href="classripple_1_1Ledger.html" title="Holds a ledger.">Ledger</a> sequence </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Vector of transaction hashes </dd></dl>
<p>Implements <a class="el" href="classripple_1_1PostgresDatabase.html#a784583e95d607018791e7073784bd04d">ripple::PostgresDatabase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PostgresDatabase_8cpp_source.html#l00683">683</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div>
</div>
<a id="a0084018c94d6d1f922e679c80e45de6f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0084018c94d6d1f922e679c80e45de6f">&#9670;&nbsp;</a></span>getTxHistory()</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/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1Transaction.html">Transaction</a> &gt; &gt; ripple::PostgresDatabaseImp::getTxHistory </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a12af8e98b794e8ee3b4dbecaed2a4efd">LedgerIndex</a>&#160;</td>
<td class="paramname"><em>startIndex</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>getTxHistory Returns the 20 most recent transactions starting from the given number. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">startIndex</td><td>First number of returned entry. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Vector of shared pointers to transactions sorted in descending order by ledger sequence. </dd></dl>
<p>Implements <a class="el" href="classripple_1_1RelationalDatabase.html#ae6c8de0e4ae5d6b0ad97d0ac219196d5">ripple::RelationalDatabase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PostgresDatabase_8cpp_source.html#l00753">753</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div>
</div>
<a id="a2ec203479d0d36415fc638adeb6cc115"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ec203479d0d36415fc638adeb6cc115">&#9670;&nbsp;</a></span>getAccountTx()</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="el" href="structripple_1_1RelationalDatabase_1_1AccountTxResult.html">AccountTxResult</a>, <a class="el" href="structripple_1_1RPC_1_1Status.html">RPC::Status</a> &gt; ripple::PostgresDatabaseImp::getAccountTx </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structripple_1_1RelationalDatabase_1_1AccountTxArgs.html">AccountTxArgs</a> const &amp;&#160;</td>
<td class="paramname"><em>args</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>getAccountTx Get the last account transactions specified by the AccountTxArgs struct. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">args</td><td>Arguments which specify the account and which transactions to return. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Vector of account transactions and the <a class="el" href="namespaceripple_1_1RPC.html">RPC</a> status response. </dd></dl>
<p>Implements <a class="el" href="classripple_1_1PostgresDatabase.html#af006b47c3c1caa59cc062700a4d41741">ripple::PostgresDatabase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PostgresDatabase_8cpp_source.html#l00844">844</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div>
</div>
<a id="a63de1d50319ee10af6bad0dd2ac51fab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a63de1d50319ee10af6bad0dd2ac51fab">&#9670;&nbsp;</a></span>locateTransaction()</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_1Transaction_1_1Locator.html">Transaction::Locator</a> ripple::PostgresDatabaseImp::locateTransaction </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> const &amp;&#160;</td>
<td class="paramname"><em>id</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>locateTransaction Returns information used to locate a transaction. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">id</td><td>Hash of the transaction. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Information used to locate a transaction. Contains a nodestore hash and a ledger sequence pair if the transaction was found. Otherwise, contains the range of ledgers present in the database at the time of search. </dd></dl>
<p>Implements <a class="el" href="classripple_1_1PostgresDatabase.html#a7ba9f944c4586b5b93018d828ace12b8">ripple::PostgresDatabase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PostgresDatabase_8cpp_source.html#l00955">955</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div>
</div>
<a id="a7350424c6e5750abc473b6855d21fabb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7350424c6e5750abc473b6855d21fabb">&#9670;&nbsp;</a></span>ledgerDbHasSpace()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ripple::PostgresDatabaseImp::ledgerDbHasSpace </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Config.html">Config</a> const &amp;&#160;</td>
<td class="paramname"><em>config</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>ledgerDbHasSpace Checks if the ledger database has available space. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td><a class="el" href="classripple_1_1Config.html">Config</a> object. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if space is available. </dd></dl>
<p>Implements <a class="el" href="classripple_1_1RelationalDatabase.html#a7d4e0e3c03536c80901f72355139a483">ripple::RelationalDatabase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PostgresDatabase_8cpp_source.html#l01040">1040</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div>
</div>
<a id="a34c266907f8549408ffe730ccc0dd5c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34c266907f8549408ffe730ccc0dd5c2">&#9670;&nbsp;</a></span>transactionDbHasSpace()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ripple::PostgresDatabaseImp::transactionDbHasSpace </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Config.html">Config</a> const &amp;&#160;</td>
<td class="paramname"><em>config</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>transactionDbHasSpace Checks if the transaction database has available space. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td><a class="el" href="classripple_1_1Config.html">Config</a> object. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if space is available. </dd></dl>
<p>Implements <a class="el" href="classripple_1_1RelationalDatabase.html#a59c527306560ba3cf9d774fc73ee29a4">ripple::RelationalDatabase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PostgresDatabase_8cpp_source.html#l01046">1046</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div>
</div>
<a id="a317f4a4105f83ff73370b7075e618fd0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a317f4a4105f83ff73370b7075e618fd0">&#9670;&nbsp;</a></span>isCaughtUp()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ripple::PostgresDatabaseImp::isCaughtUp </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;&#160;</td>
<td class="paramname"><em>reason</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>isCaughtUp returns whether the database is caught up with the network </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">reason</td><td>if the database is not caught up, reason contains a helpful message describing why </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if the most recently written ledger has a close time over 3 minutes ago, or if there are no ledgers in the database. true otherwise </dd></dl>
<p>Implements <a class="el" href="classripple_1_1PostgresDatabase.html#aeff0aabad25764e5b7bd22acfd9c3a82">ripple::PostgresDatabase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PostgresDatabase_8cpp_source.html#l01058">1058</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div>
</div>
<a id="ae48b9a3a616ac41d7d0e6280d816181a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae48b9a3a616ac41d7d0e6280d816181a">&#9670;&nbsp;</a></span>dbHasSpace()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ripple::PostgresDatabaseImp::dbHasSpace </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Config.html">Config</a> const &amp;&#160;</td>
<td class="paramname"><em>config</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="PostgresDatabase_8cpp_source.html#l01032">1032</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div>
</div>
<a id="a7f08e20557d394e761662ff29373f467"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7f08e20557d394e761662ff29373f467">&#9670;&nbsp;</a></span>init()</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/unique_ptr.html">std::unique_ptr</a>&lt; <a class="el" href="classripple_1_1RelationalDatabase.html">RelationalDatabase</a> &gt; ripple::RelationalDatabase::init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Application.html">Application</a> &amp;&#160;</td>
<td class="paramname"><em>app</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1Config.html">Config</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="classripple_1_1JobQueue.html">JobQueue</a> &amp;&#160;</td>
<td class="paramname"><em>jobQueue</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">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>init Creates and returns an appropriate <a class="el" href="classripple_1_1RelationalDatabase.html">RelationalDatabase</a> instance based on configuration. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">app</td><td><a class="el" href="classripple_1_1Application.html">Application</a> object. </td></tr>
<tr><td class="paramname">config</td><td><a class="el" href="classripple_1_1Config.html">Config</a> object. </td></tr>
<tr><td class="paramname">jobQueue</td><td><a class="el" href="classripple_1_1JobQueue.html" title="A pool of threads to perform work.">JobQueue</a> object. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Unique pointer to the interface. </dd></dl>
<p class="definition">Definition at line <a class="el" href="RelationalDatabase_8cpp_source.html#l00034">34</a> of file <a class="el" href="RelationalDatabase_8cpp_source.html">RelationalDatabase.cpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a0b78222a8decc22512c15235ce2cdb71"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b78222a8decc22512c15235ce2cdb71">&#9670;&nbsp;</a></span>app_</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_1Application.html">Application</a>&amp; ripple::PostgresDatabaseImp::app_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="PostgresDatabase_8cpp_source.html#l00141">141</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div>
</div>
<a id="a98864c49c0bae3d697b9131715e47877"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a98864c49c0bae3d697b9131715e47877">&#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"><a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> ripple::PostgresDatabaseImp::j_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="PostgresDatabase_8cpp_source.html#l00142">142</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.cpp</a>.</p>
</div>
</div>
<a id="a0274f452fa29b8416249847c766f2034"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0274f452fa29b8416249847c766f2034">&#9670;&nbsp;</a></span>pgPool_</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;PgPool&gt; ripple::PostgresDatabaseImp::pgPool_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="PostgresDatabase_8cpp_source.html#l00143">143</a> of file <a class="el" href="PostgresDatabase_8cpp_source.html">PostgresDatabase.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>