Files
rippled/RelationalDatabase_8h_source.html
2023-09-11 22:52:27 +00:00

362 lines
79 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: RelationalDatabase.h Source File</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="dir_df9c78dcf3f59a33b12284f95992a64b.html">ripple</a></li><li class="navelem"><a class="el" href="dir_9f69212e4c6e2ca9ec5ab59cd7b6275c.html">app</a></li><li class="navelem"><a class="el" href="dir_6fe6f4dca26289abeb8b3619a8f9ad32.html">rdb</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">RelationalDatabase.h</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> This file is part of rippled: https://github.com/ripple/rippled</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> Copyright (c) 2020 Ripple Labs Inc.</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> Permission to use, copy, modify, and/or distribute this software for any</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> purpose with or without fee is hereby granted, provided that the above</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> copyright notice and this permission notice appear in all copies.</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> THE SOFTWARE IS PROVIDED &quot;AS IS&quot; AND THE AUTHOR DISCLAIMS ALL WARRANTIES</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">//==============================================================================</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#ifndef RIPPLE_APP_RDB_RELATIONALDATABASE_H_INCLUDED</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#define RIPPLE_APP_RDB_RELATIONALDATABASE_H_INCLUDED</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; </div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;ripple/app/ledger/Ledger.h&gt;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;ripple/app/main/Application.h&gt;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &lt;ripple/app/misc/Transaction.h&gt;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &lt;ripple/core/Config.h&gt;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &lt;ripple/core/DatabaseCon.h&gt;</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &lt;ripple/peerfinder/impl/Store.h&gt;</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &lt;ripple/rpc/impl/RPCHelpers.h&gt;</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &lt;boost/filesystem.hpp&gt;</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &lt;boost/optional.hpp&gt;</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;boost/variant.hpp&gt;</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceripple.html">ripple</a> {</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="structripple_1_1LedgerHashPair.html"> 36</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structripple_1_1LedgerHashPair.html">LedgerHashPair</a></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="structripple_1_1LedgerHashPair.html#a4b52e6ae64b9feac6fa5f8f8cbf1f9ce"> 38</a></span>&#160; <a class="code" href="classripple_1_1base__uint.html">uint256</a> <a class="code" href="structripple_1_1LedgerHashPair.html#a4b52e6ae64b9feac6fa5f8f8cbf1f9ce">ledgerHash</a>;</div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="structripple_1_1LedgerHashPair.html#a9d5c3af96a015921da17b40ea48012cd"> 39</a></span>&#160; <a class="code" href="classripple_1_1base__uint.html">uint256</a> <a class="code" href="structripple_1_1LedgerHashPair.html#a9d5c3af96a015921da17b40ea48012cd">parentHash</a>;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;};</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; </div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="structripple_1_1LedgerRange.html"> 42</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structripple_1_1LedgerRange.html">LedgerRange</a></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="structripple_1_1LedgerRange.html#a823ea62ac90523714bb914f82c803f86"> 44</a></span>&#160; uint32_t <a class="code" href="structripple_1_1LedgerRange.html#a823ea62ac90523714bb914f82c803f86">min</a>;</div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="structripple_1_1LedgerRange.html#a7e0a57dae4c124f10c091fb1cf0af155"> 45</a></span>&#160; uint32_t <a class="code" href="structripple_1_1LedgerRange.html#a7e0a57dae4c124f10c091fb1cf0af155">max</a>;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;};</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; </div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classripple_1_1RelationalDatabase.html"> 48</a></span>&#160;<span class="keyword">class </span><a class="code" href="classripple_1_1RelationalDatabase.html">RelationalDatabase</a></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1CountMinMax.html"> 51</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structripple_1_1RelationalDatabase_1_1CountMinMax.html">CountMinMax</a></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1CountMinMax.html#ab9e4303198e013125c6ea4527cca69cf"> 53</a></span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> <a class="code" href="structripple_1_1RelationalDatabase_1_1CountMinMax.html#ab9e4303198e013125c6ea4527cca69cf">numberOfRows</a>;</div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1CountMinMax.html#a70de10a1e7beafffc08aec09d707487e"> 54</a></span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">LedgerIndex</a> <a class="code" href="structripple_1_1RelationalDatabase_1_1CountMinMax.html#a70de10a1e7beafffc08aec09d707487e">minLedgerSequence</a>;</div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1CountMinMax.html#a224936dfdfdf15406398afb5d2cab573"> 55</a></span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">LedgerIndex</a> <a class="code" href="structripple_1_1RelationalDatabase_1_1CountMinMax.html#a224936dfdfdf15406398afb5d2cab573">maxLedgerSequence</a>;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; };</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxMarker.html"> 58</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxMarker.html">AccountTxMarker</a></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxMarker.html#a1fa384a5a48121ff50cd0adf4cb45c96"> 60</a></span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxMarker.html#a1fa384a5a48121ff50cd0adf4cb45c96">ledgerSeq</a> = 0;</div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxMarker.html#a37a8d158fa4d5ac84604b010fb74bf6d"> 61</a></span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxMarker.html#a37a8d158fa4d5ac84604b010fb74bf6d">txnSeq</a> = 0;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; };</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxOptions.html"> 64</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxOptions.html">AccountTxOptions</a></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxOptions.html#a57a340a78e0da40eef457ecac5b01e6f"> 66</a></span>&#160; <a class="code" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>&amp; <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxOptions.html#a57a340a78e0da40eef457ecac5b01e6f">account</a>;</div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxOptions.html#a13b9fa077f549c9c2351a377833f4700"> 67</a></span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxOptions.html#a13b9fa077f549c9c2351a377833f4700">minLedger</a>;</div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxOptions.html#a2eb43349ee334341dfeff864d2de67e3"> 68</a></span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxOptions.html#a2eb43349ee334341dfeff864d2de67e3">maxLedger</a>;</div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxOptions.html#a2dec492c05b84e8e0494a17f898b61ee"> 69</a></span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxOptions.html#a2dec492c05b84e8e0494a17f898b61ee">offset</a>;</div>
<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxOptions.html#a0929f727bd1acc6a875445ee7b71eab8"> 70</a></span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxOptions.html#a0929f727bd1acc6a875445ee7b71eab8">limit</a>;</div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxOptions.html#a99fb142ab6d995a74e2a5cea9758d6fe"> 71</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxOptions.html#a99fb142ab6d995a74e2a5cea9758d6fe">bUnlimited</a>;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; };</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxPageOptions.html"> 74</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxPageOptions.html">AccountTxPageOptions</a></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; {</div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxPageOptions.html#acc6dbb5053fa99590a5fc5191af4b3a8"> 76</a></span>&#160; <a class="code" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>&amp; <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxPageOptions.html#acc6dbb5053fa99590a5fc5191af4b3a8">account</a>;</div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxPageOptions.html#abe08b7088eef1475161b50ad7244729b"> 77</a></span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxPageOptions.html#abe08b7088eef1475161b50ad7244729b">minLedger</a>;</div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxPageOptions.html#ae28fa65e417bea658879884aebc1c3e6"> 78</a></span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxPageOptions.html#ae28fa65e417bea658879884aebc1c3e6">maxLedger</a>;</div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxPageOptions.html#aebfc077df43d070c1e0cd4205be74403"> 79</a></span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;AccountTxMarker&gt;</a> <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxPageOptions.html#aebfc077df43d070c1e0cd4205be74403">marker</a>;</div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxPageOptions.html#a0549ee351d7065b44be66a916ce4a05f"> 80</a></span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxPageOptions.html#a0549ee351d7065b44be66a916ce4a05f">limit</a>;</div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxPageOptions.html#ab49f0adb3df34651b7440a794d158809"> 81</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxPageOptions.html#ab49f0adb3df34651b7440a794d158809">bAdmin</a>;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; };</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; </div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">using</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">AccountTx</a> =</div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classripple_1_1RelationalDatabase.html#a251e55e3d5aa9b4e4d1a7eebe2157d46"> 85</a></span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;std::shared_ptr&lt;Transaction&gt;</a>, <a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;TxMeta&gt;</a>&gt;;</div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classripple_1_1RelationalDatabase.html#a1af9139d7f4c8f662c7b8e49473a21e2"> 86</a></span>&#160; <span class="keyword">using</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">AccountTxs</a> = <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;AccountTx&gt;</a>;</div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classripple_1_1RelationalDatabase.html#ad49d721f8f069c1ee9652b93a3485423"> 87</a></span>&#160; <span class="keyword">using</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/tuple.html">txnMetaLedgerType</a> = <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/tuple.html">std::tuple&lt;Blob, Blob, std::uint32_t&gt;</a>;</div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classripple_1_1RelationalDatabase.html#a183ed7f35d368ec4564d8083fe9656f3"> 88</a></span>&#160; <span class="keyword">using</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">MetaTxsList</a> = <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;txnMetaLedgerType&gt;</a>;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; </div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classripple_1_1RelationalDatabase.html#affdfbc3c5f0f2d7b78cc5570617a5fda"> 90</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classripple_1_1RelationalDatabase.html#affdfbc3c5f0f2d7b78cc5570617a5fda">LedgerSequence</a> = uint32_t;</div>
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classripple_1_1RelationalDatabase.html#ae6ed6a653c43698a1480c0230b1e99aa"> 91</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classripple_1_1base__uint.html">LedgerHash</a> = <a class="code" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a>;</div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="classripple_1_1RelationalDatabase.html#a99c471461c2b0858d240f98034c6fda3"> 92</a></span>&#160; <span class="keyword">using</span> <a class="code" href="namespaceripple_1_1RPC.html#a4c04e509451d50d9449cff3d477ff4f2">LedgerShortcut</a> = <a class="code" href="namespaceripple_1_1RPC.html#a4c04e509451d50d9449cff3d477ff4f2">RPC::LedgerShortcut</a>;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">using</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/variant.html">LedgerSpecifier</a> =</div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classripple_1_1RelationalDatabase.html#ae6edb30f534bd5669ee659789aa22e86"> 94</a></span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/variant.html">std::variant&lt;LedgerRange, LedgerShortcut, LedgerSequence, LedgerHash&gt;</a>;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; </div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxArgs.html"> 96</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxArgs.html">AccountTxArgs</a></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; {</div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxArgs.html#a2df887a4acea4839f84f70a8b7b5ae74"> 98</a></span>&#160; <a class="code" href="classripple_1_1base__uint.html">AccountID</a> <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxArgs.html#a2df887a4acea4839f84f70a8b7b5ae74">account</a>;</div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxArgs.html#a98e857b5bc5149d64ae2fe3a19d052f6"> 99</a></span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;LedgerSpecifier&gt;</a> <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxArgs.html#a98e857b5bc5149d64ae2fe3a19d052f6">ledger</a>;</div>
<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxArgs.html#a6c4bb3e0e05718428cf601a435ad381a"> 100</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxArgs.html#a6c4bb3e0e05718428cf601a435ad381a">binary</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxArgs.html#ab798755660bdb0995a3c53a2f1baeec7"> 101</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxArgs.html#ab798755660bdb0995a3c53a2f1baeec7">forward</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxArgs.html#ab42ec99c697abee74193bef313518543"> 102</a></span>&#160; uint32_t <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxArgs.html#ab42ec99c697abee74193bef313518543">limit</a> = 0;</div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxArgs.html#a7756201e6bb598050a01f445d4ef61e0"> 103</a></span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;AccountTxMarker&gt;</a> <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxArgs.html#a7756201e6bb598050a01f445d4ef61e0">marker</a>;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; };</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; </div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxResult.html"> 106</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxResult.html">AccountTxResult</a></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; {</div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxResult.html#a6cab3498452cb41a5110dd0b78837223"> 108</a></span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/variant.html">std::variant&lt;AccountTxs, MetaTxsList&gt;</a> <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxResult.html#a6cab3498452cb41a5110dd0b78837223">transactions</a>;</div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxResult.html#aad5d28a6cfe900d6d34087b7077ba37e"> 109</a></span>&#160; <a class="code" href="structripple_1_1LedgerRange.html">LedgerRange</a> <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxResult.html#aad5d28a6cfe900d6d34087b7077ba37e">ledgerRange</a>;</div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxResult.html#af121f7ac83689271cf038239cac88ad2"> 110</a></span>&#160; uint32_t <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxResult.html#af121f7ac83689271cf038239cac88ad2">limit</a>;</div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTxResult.html#a1591fdfc514f0b923e002951b0ac09fb"> 111</a></span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;AccountTxMarker&gt;</a> <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTxResult.html#a1591fdfc514f0b923e002951b0ac09fb">marker</a>;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; };</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html"> 116</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html">AccountTransactionsData</a></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; {</div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#a4a05749917b9d100f9d85b97ee1ce1f3"> 118</a></span>&#160; boost::container::flat_set&lt;AccountID&gt; <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#a4a05749917b9d100f9d85b97ee1ce1f3">accounts</a>;</div>
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#a1b87704eba75a9cd54e593928091677a"> 119</a></span>&#160; uint32_t <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#a1b87704eba75a9cd54e593928091677a">ledgerSequence</a>;</div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#a1b5fcc36c5638e4c5b88c8b40822366f"> 120</a></span>&#160; uint32_t <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#a1b5fcc36c5638e4c5b88c8b40822366f">transactionIndex</a>;</div>
<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#a441541b8fb78df2af54fdef4ec08ac07"> 121</a></span>&#160; <a class="code" href="classripple_1_1base__uint.html">uint256</a> <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#a441541b8fb78df2af54fdef4ec08ac07">txHash</a>;</div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#a44a14b5a5b9854652704bddc7de9b719"> 122</a></span>&#160; <a class="code" href="classripple_1_1base__uint.html">uint256</a> <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#a44a14b5a5b9854652704bddc7de9b719">nodestoreHash</a>;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; </div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#ad768a0b27908b386e5f52e0770031706"> 124</a></span>&#160; <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#ad768a0b27908b386e5f52e0770031706">AccountTransactionsData</a>(</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="classripple_1_1TxMeta.html">TxMeta</a> <span class="keyword">const</span>&amp; meta,</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="classripple_1_1base__uint.html">uint256</a> <span class="keyword">const</span>&amp; <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#a44a14b5a5b9854652704bddc7de9b719">nodestoreHash</a>,</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="classbeast_1_1Journal.html">beast::Journal</a> j)</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; : <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#a4a05749917b9d100f9d85b97ee1ce1f3">accounts</a>(meta.getAffectedAccounts())</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; , <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#a1b87704eba75a9cd54e593928091677a">ledgerSequence</a>(meta.getLgrSeq())</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; , <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#a1b5fcc36c5638e4c5b88c8b40822366f">transactionIndex</a>(meta.getIndex())</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; , <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#a441541b8fb78df2af54fdef4ec08ac07">txHash</a>(meta.getTxID())</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; , <a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#a44a14b5a5b9854652704bddc7de9b719">nodestoreHash</a>(<a class="code" href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#a44a14b5a5b9854652704bddc7de9b719">nodestoreHash</a>)</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; {</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; };</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; </div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">static</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr&lt;RelationalDatabase&gt;</a></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="classripple_1_1RelationalDatabase.html#a7f08e20557d394e761662ff29373f467">init</a>(<a class="code" href="classripple_1_1Application.html">Application</a>&amp; app, <a class="code" href="classripple_1_1Config.html">Config</a> <span class="keyword">const</span>&amp; config, <a class="code" href="classripple_1_1JobQueue.html">JobQueue</a>&amp; jobQueue);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; </div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classripple_1_1RelationalDatabase.html#a2aa37e3eb9fbd4f96a030b6188c4e9d2">~RelationalDatabase</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; </div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">virtual</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;LedgerIndex&gt;</a></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="classripple_1_1RelationalDatabase.html#a0075f77f85eb16d36fdd35974acfb8ea">getMinLedgerSeq</a>() = 0;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; </div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">virtual</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;LedgerIndex&gt;</a></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="classripple_1_1RelationalDatabase.html#aa4e757a2656cd3c537e997e8a67ee78a">getMaxLedgerSeq</a>() = 0;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">virtual</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;LedgerInfo&gt;</a></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="classripple_1_1RelationalDatabase.html#a4b67ba7e09ea642386597210efefe07d">getLedgerInfoByIndex</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">LedgerIndex</a> ledgerSeq) = 0;</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; </div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">virtual</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;LedgerInfo&gt;</a></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="classripple_1_1RelationalDatabase.html#acbc9c19a6c01c6004df183ed8858f88b">getNewestLedgerInfo</a>() = 0;</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">virtual</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;LedgerInfo&gt;</a></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="classripple_1_1RelationalDatabase.html#a2df06f73b03baa40ff0cc92066d9fd3b">getLedgerInfoByHash</a>(<a class="code" href="classripple_1_1base__uint.html">uint256</a> <span class="keyword">const</span>&amp; ledgerHash) = 0;</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; </div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classripple_1_1base__uint.html">uint256</a></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="classripple_1_1RelationalDatabase.html#ae73b0356cc96e29c9c66e52f64aeac0d">getHashByIndex</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">LedgerIndex</a> ledgerIndex) = 0;</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; </div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">virtual</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;LedgerHashPair&gt;</a></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="classripple_1_1RelationalDatabase.html#a177aaf55106410ac5a2b2969674d4d57">getHashesByIndex</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">LedgerIndex</a> ledgerIndex) = 0;</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; </div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">virtual</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map&lt;LedgerIndex, LedgerHashPair&gt;</a></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="classripple_1_1RelationalDatabase.html#a177aaf55106410ac5a2b2969674d4d57">getHashesByIndex</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">LedgerIndex</a> minSeq, <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">LedgerIndex</a> maxSeq) = 0;</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; </div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keyword">virtual</span> <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::shared_ptr&lt;Transaction&gt;</a>&gt;</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="classripple_1_1RelationalDatabase.html#ae6c8de0e4ae5d6b0ad97d0ac219196d5">getTxHistory</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">LedgerIndex</a> startIndex) = 0;</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; </div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <a class="code" href="classripple_1_1RelationalDatabase.html#a7d4e0e3c03536c80901f72355139a483">ledgerDbHasSpace</a>(<a class="code" href="classripple_1_1Config.html">Config</a> <span class="keyword">const</span>&amp; config) = 0;</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; </div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="classripple_1_1RelationalDatabase.html#a59c527306560ba3cf9d774fc73ee29a4">transactionDbHasSpace</a>(<a class="code" href="classripple_1_1Config.html">Config</a> <span class="keyword">const</span>&amp; config) = 0;</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;};</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; </div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> T, <span class="keyword">class</span> C&gt;</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;T</div>
<div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="namespaceripple.html#a689877829c664a51aacaf78811eadf27"> 252</a></span>&#160;<a class="code" href="namespaceripple.html#a689877829c664a51aacaf78811eadf27">rangeCheckedCast</a>(C c)</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;{</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">if</span> ((c &gt; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/numeric_limits.html">std::numeric_limits&lt;T&gt;::max</a>()) ||</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; (!<a class="codeRef" href="http://en.cppreference.com/w/cpp/types/numeric_limits.html">std::numeric_limits&lt;T&gt;::is_signed</a> &amp;&amp; c &lt; 0) ||</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; (<a class="codeRef" href="http://en.cppreference.com/w/cpp/types/numeric_limits.html">std::numeric_limits&lt;T&gt;::is_signed</a> &amp;&amp;</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/numeric_limits.html">std::numeric_limits&lt;C&gt;::is_signed</a> &amp;&amp;</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; c &lt; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/numeric_limits.html">std::numeric_limits&lt;T&gt;::lowest</a>()))</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; {</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">/* This should never happen */</span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; assert(0);</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; JLOG(<a class="code" href="namespaceripple.html#a94e13759bd026c8ac305482e17f05adb">debugLog</a>().error())</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; &lt;&lt; <span class="stringliteral">&quot;rangeCheckedCast domain error:&quot;</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; &lt;&lt; <span class="stringliteral">&quot; value = &quot;</span> &lt;&lt; c &lt;&lt; <span class="stringliteral">&quot; min = &quot;</span> &lt;&lt; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/numeric_limits/lowest.html">std::numeric_limits&lt;T&gt;::lowest</a>()</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; &lt;&lt; <span class="stringliteral">&quot; max: &quot;</span> &lt;&lt; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/numeric_limits/max.html">std::numeric_limits&lt;T&gt;::max</a>();</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; }</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; </div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(c);</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;}</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; </div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;} <span class="comment">// namespace ripple</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; </div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxOptions_html_a2dec492c05b84e8e0494a17f898b61ee"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxOptions.html#a2dec492c05b84e8e0494a17f898b61ee">ripple::RelationalDatabase::AccountTxOptions::offset</a></div><div class="ttdeci">std::uint32_t offset</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00069">RelationalDatabase.h:69</a></div></div>
<div class="ttc" id="aclassripple_1_1RelationalDatabase_html_a7f08e20557d394e761662ff29373f467"><div class="ttname"><a href="classripple_1_1RelationalDatabase.html#a7f08e20557d394e761662ff29373f467">ripple::RelationalDatabase::init</a></div><div class="ttdeci">static std::unique_ptr&lt; RelationalDatabase &gt; init(Application &amp;app, Config const &amp;config, JobQueue &amp;jobQueue)</div><div class="ttdoc">init Creates and returns an appropriate RelationalDatabase instance based on configuration.</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8cpp_source.html#l00034">RelationalDatabase.cpp:34</a></div></div>
<div class="ttc" id="aclassripple_1_1RelationalDatabase_html_aa4e757a2656cd3c537e997e8a67ee78a"><div class="ttname"><a href="classripple_1_1RelationalDatabase.html#aa4e757a2656cd3c537e997e8a67ee78a">ripple::RelationalDatabase::getMaxLedgerSeq</a></div><div class="ttdeci">virtual std::optional&lt; LedgerIndex &gt; getMaxLedgerSeq()=0</div><div class="ttdoc">getMaxLedgerSeq Returns the maximum ledger sequence in the Ledgers table.</div></div>
<div class="ttc" id="aclassripple_1_1Application_html"><div class="ttname"><a href="classripple_1_1Application.html">ripple::Application</a></div><div class="ttdef"><b>Definition:</b> <a href="Application_8h_source.html#l00116">Application.h:116</a></div></div>
<div class="ttc" id="aclassripple_1_1RelationalDatabase_html_a2aa37e3eb9fbd4f96a030b6188c4e9d2"><div class="ttname"><a href="classripple_1_1RelationalDatabase.html#a2aa37e3eb9fbd4f96a030b6188c4e9d2">ripple::RelationalDatabase::~RelationalDatabase</a></div><div class="ttdeci">virtual ~RelationalDatabase()=default</div></div>
<div class="ttc" id="ashared_ptr_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTransactionsData_html_a4a05749917b9d100f9d85b97ee1ce1f3"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#a4a05749917b9d100f9d85b97ee1ce1f3">ripple::RelationalDatabase::AccountTransactionsData::accounts</a></div><div class="ttdeci">boost::container::flat_set&lt; AccountID &gt; accounts</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00118">RelationalDatabase.h:118</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxArgs_html"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxArgs.html">ripple::RelationalDatabase::AccountTxArgs</a></div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00096">RelationalDatabase.h:96</a></div></div>
<div class="ttc" id="apair_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a></div></div>
<div class="ttc" id="anamespaceripple_1_1RPC_html_a4c04e509451d50d9449cff3d477ff4f2"><div class="ttname"><a href="namespaceripple_1_1RPC.html#a4c04e509451d50d9449cff3d477ff4f2">ripple::RPC::LedgerShortcut</a></div><div class="ttdeci">LedgerShortcut</div><div class="ttdef"><b>Definition:</b> <a href="RPCHelpers_8h_source.html#l00131">RPCHelpers.h:131</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxArgs_html_a6c4bb3e0e05718428cf601a435ad381a"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxArgs.html#a6c4bb3e0e05718428cf601a435ad381a">ripple::RelationalDatabase::AccountTxArgs::binary</a></div><div class="ttdeci">bool binary</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00100">RelationalDatabase.h:100</a></div></div>
<div class="ttc" id="anamespaceripple_html_a689877829c664a51aacaf78811eadf27"><div class="ttname"><a href="namespaceripple.html#a689877829c664a51aacaf78811eadf27">ripple::rangeCheckedCast</a></div><div class="ttdeci">T rangeCheckedCast(C c)</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00252">RelationalDatabase.h:252</a></div></div>
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="aclassripple_1_1RelationalDatabase_html_ae6c8de0e4ae5d6b0ad97d0ac219196d5"><div class="ttname"><a href="classripple_1_1RelationalDatabase.html#ae6c8de0e4ae5d6b0ad97d0ac219196d5">ripple::RelationalDatabase::getTxHistory</a></div><div class="ttdeci">virtual std::vector&lt; std::shared_ptr&lt; Transaction &gt; &gt; getTxHistory(LedgerIndex startIndex)=0</div><div class="ttdoc">getTxHistory Returns the 20 most recent transactions starting from the given number.</div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxPageOptions_html_abe08b7088eef1475161b50ad7244729b"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxPageOptions.html#abe08b7088eef1475161b50ad7244729b">ripple::RelationalDatabase::AccountTxPageOptions::minLedger</a></div><div class="ttdeci">std::uint32_t minLedger</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00077">RelationalDatabase.h:77</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1CountMinMax_html_a70de10a1e7beafffc08aec09d707487e"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1CountMinMax.html#a70de10a1e7beafffc08aec09d707487e">ripple::RelationalDatabase::CountMinMax::minLedgerSequence</a></div><div class="ttdeci">LedgerIndex minLedgerSequence</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00054">RelationalDatabase.h:54</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxResult_html_a6cab3498452cb41a5110dd0b78837223"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxResult.html#a6cab3498452cb41a5110dd0b78837223">ripple::RelationalDatabase::AccountTxResult::transactions</a></div><div class="ttdeci">std::variant&lt; AccountTxs, MetaTxsList &gt; transactions</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00108">RelationalDatabase.h:108</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxOptions_html"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxOptions.html">ripple::RelationalDatabase::AccountTxOptions</a></div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00064">RelationalDatabase.h:64</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxOptions_html_a13b9fa077f549c9c2351a377833f4700"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxOptions.html#a13b9fa077f549c9c2351a377833f4700">ripple::RelationalDatabase::AccountTxOptions::minLedger</a></div><div class="ttdeci">std::uint32_t minLedger</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00067">RelationalDatabase.h:67</a></div></div>
<div class="ttc" id="atuple_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/tuple.html">std::tuple</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxPageOptions_html_ab49f0adb3df34651b7440a794d158809"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxPageOptions.html#ab49f0adb3df34651b7440a794d158809">ripple::RelationalDatabase::AccountTxPageOptions::bAdmin</a></div><div class="ttdeci">bool bAdmin</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00081">RelationalDatabase.h:81</a></div></div>
<div class="ttc" id="aclassripple_1_1RelationalDatabase_html_acbc9c19a6c01c6004df183ed8858f88b"><div class="ttname"><a href="classripple_1_1RelationalDatabase.html#acbc9c19a6c01c6004df183ed8858f88b">ripple::RelationalDatabase::getNewestLedgerInfo</a></div><div class="ttdeci">virtual std::optional&lt; LedgerInfo &gt; getNewestLedgerInfo()=0</div><div class="ttdoc">getNewestLedgerInfo Returns the info of the newest saved ledger.</div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxArgs_html_a2df887a4acea4839f84f70a8b7b5ae74"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxArgs.html#a2df887a4acea4839f84f70a8b7b5ae74">ripple::RelationalDatabase::AccountTxArgs::account</a></div><div class="ttdeci">AccountID account</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00098">RelationalDatabase.h:98</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxOptions_html_a0929f727bd1acc6a875445ee7b71eab8"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxOptions.html#a0929f727bd1acc6a875445ee7b71eab8">ripple::RelationalDatabase::AccountTxOptions::limit</a></div><div class="ttdeci">std::uint32_t limit</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00070">RelationalDatabase.h:70</a></div></div>
<div class="ttc" id="aclassripple_1_1RelationalDatabase_html_a4b67ba7e09ea642386597210efefe07d"><div class="ttname"><a href="classripple_1_1RelationalDatabase.html#a4b67ba7e09ea642386597210efefe07d">ripple::RelationalDatabase::getLedgerInfoByIndex</a></div><div class="ttdeci">virtual std::optional&lt; LedgerInfo &gt; getLedgerInfoByIndex(LedgerIndex ledgerSeq)=0</div><div class="ttdoc">getLedgerInfoByIndex Returns a ledger by its sequence.</div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxResult_html"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxResult.html">ripple::RelationalDatabase::AccountTxResult</a></div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00106">RelationalDatabase.h:106</a></div></div>
<div class="ttc" id="anamespaceripple_html_a94e13759bd026c8ac305482e17f05adb"><div class="ttname"><a href="namespaceripple.html#a94e13759bd026c8ac305482e17f05adb">ripple::debugLog</a></div><div class="ttdeci">beast::Journal debugLog()</div><div class="ttdoc">Returns a debug journal.</div><div class="ttdef"><b>Definition:</b> <a href="Log_8cpp_source.html#l00452">Log.cpp:452</a></div></div>
<div class="ttc" id="alowest_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/numeric_limits/lowest.html">std::numeric_limits::lowest</a></div><div class="ttdeci">T lowest(T... args)</div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxPageOptions_html_ae28fa65e417bea658879884aebc1c3e6"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxPageOptions.html#ae28fa65e417bea658879884aebc1c3e6">ripple::RelationalDatabase::AccountTxPageOptions::maxLedger</a></div><div class="ttdeci">std::uint32_t maxLedger</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00078">RelationalDatabase.h:78</a></div></div>
<div class="ttc" id="anamespaceripple_html_a356c68147333a9a48a344718038576d9"><div class="ttname"><a href="namespaceripple.html#a356c68147333a9a48a344718038576d9">ripple::uint256</a></div><div class="ttdeci">base_uint&lt; 256 &gt; uint256</div><div class="ttdef"><b>Definition:</b> <a href="base__uint_8h_source.html#l00550">base_uint.h:550</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxResult_html_aad5d28a6cfe900d6d34087b7077ba37e"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxResult.html#aad5d28a6cfe900d6d34087b7077ba37e">ripple::RelationalDatabase::AccountTxResult::ledgerRange</a></div><div class="ttdeci">LedgerRange ledgerRange</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00109">RelationalDatabase.h:109</a></div></div>
<div class="ttc" id="aclassripple_1_1TxMeta_html"><div class="ttname"><a href="classripple_1_1TxMeta.html">ripple::TxMeta</a></div><div class="ttdef"><b>Definition:</b> <a href="TxMeta_8h_source.html#l00032">TxMeta.h:32</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1CountMinMax_html"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1CountMinMax.html">ripple::RelationalDatabase::CountMinMax</a></div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00051">RelationalDatabase.h:51</a></div></div>
<div class="ttc" id="aclassripple_1_1base__uint_html"><div class="ttname"><a href="classripple_1_1base__uint.html">ripple::base_uint&lt; 256 &gt;</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxOptions_html_a99fb142ab6d995a74e2a5cea9758d6fe"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxOptions.html#a99fb142ab6d995a74e2a5cea9758d6fe">ripple::RelationalDatabase::AccountTxOptions::bUnlimited</a></div><div class="ttdeci">bool bUnlimited</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00071">RelationalDatabase.h:71</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxPageOptions_html_acc6dbb5053fa99590a5fc5191af4b3a8"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxPageOptions.html#acc6dbb5053fa99590a5fc5191af4b3a8">ripple::RelationalDatabase::AccountTxPageOptions::account</a></div><div class="ttdeci">AccountID const &amp; account</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00076">RelationalDatabase.h:76</a></div></div>
<div class="ttc" id="astructripple_1_1LedgerHashPair_html_a4b52e6ae64b9feac6fa5f8f8cbf1f9ce"><div class="ttname"><a href="structripple_1_1LedgerHashPair.html#a4b52e6ae64b9feac6fa5f8f8cbf1f9ce">ripple::LedgerHashPair::ledgerHash</a></div><div class="ttdeci">uint256 ledgerHash</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00038">RelationalDatabase.h:38</a></div></div>
<div class="ttc" id="aclassripple_1_1Config_html"><div class="ttname"><a href="classripple_1_1Config.html">ripple::Config</a></div><div class="ttdef"><b>Definition:</b> <a href="Config_8h_source.html#l00089">Config.h:89</a></div></div>
<div class="ttc" id="astructripple_1_1LedgerHashPair_html"><div class="ttname"><a href="structripple_1_1LedgerHashPair.html">ripple::LedgerHashPair</a></div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00036">RelationalDatabase.h:36</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxMarker_html_a37a8d158fa4d5ac84604b010fb74bf6d"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxMarker.html#a37a8d158fa4d5ac84604b010fb74bf6d">ripple::RelationalDatabase::AccountTxMarker::txnSeq</a></div><div class="ttdeci">std::uint32_t txnSeq</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00061">RelationalDatabase.h:61</a></div></div>
<div class="ttc" id="aclassripple_1_1RelationalDatabase_html_ae73b0356cc96e29c9c66e52f64aeac0d"><div class="ttname"><a href="classripple_1_1RelationalDatabase.html#ae73b0356cc96e29c9c66e52f64aeac0d">ripple::RelationalDatabase::getHashByIndex</a></div><div class="ttdeci">virtual uint256 getHashByIndex(LedgerIndex ledgerIndex)=0</div><div class="ttdoc">getHashByIndex Returns the hash of the ledger with the given sequence.</div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxArgs_html_a7756201e6bb598050a01f445d4ef61e0"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxArgs.html#a7756201e6bb598050a01f445d4ef61e0">ripple::RelationalDatabase::AccountTxArgs::marker</a></div><div class="ttdeci">std::optional&lt; AccountTxMarker &gt; marker</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00103">RelationalDatabase.h:103</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxArgs_html_ab42ec99c697abee74193bef313518543"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxArgs.html#ab42ec99c697abee74193bef313518543">ripple::RelationalDatabase::AccountTxArgs::limit</a></div><div class="ttdeci">uint32_t limit</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00102">RelationalDatabase.h:102</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxMarker_html"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxMarker.html">ripple::RelationalDatabase::AccountTxMarker</a></div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00058">RelationalDatabase.h:58</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxResult_html_a1591fdfc514f0b923e002951b0ac09fb"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxResult.html#a1591fdfc514f0b923e002951b0ac09fb">ripple::RelationalDatabase::AccountTxResult::marker</a></div><div class="ttdeci">std::optional&lt; AccountTxMarker &gt; marker</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00111">RelationalDatabase.h:111</a></div></div>
<div class="ttc" id="aclassripple_1_1RelationalDatabase_html_a2df06f73b03baa40ff0cc92066d9fd3b"><div class="ttname"><a href="classripple_1_1RelationalDatabase.html#a2df06f73b03baa40ff0cc92066d9fd3b">ripple::RelationalDatabase::getLedgerInfoByHash</a></div><div class="ttdeci">virtual std::optional&lt; LedgerInfo &gt; getLedgerInfoByHash(uint256 const &amp;ledgerHash)=0</div><div class="ttdoc">getLedgerInfoByHash Returns the info of the ledger with given hash.</div></div>
<div class="ttc" id="aclassripple_1_1RelationalDatabase_html_a0075f77f85eb16d36fdd35974acfb8ea"><div class="ttname"><a href="classripple_1_1RelationalDatabase.html#a0075f77f85eb16d36fdd35974acfb8ea">ripple::RelationalDatabase::getMinLedgerSeq</a></div><div class="ttdeci">virtual std::optional&lt; LedgerIndex &gt; getMinLedgerSeq()=0</div><div class="ttdoc">getMinLedgerSeq Returns the minimum ledger sequence in the Ledgers table.</div></div>
<div class="ttc" id="aclassbeast_1_1Journal_html"><div class="ttname"><a href="classbeast_1_1Journal.html">beast::Journal</a></div><div class="ttdoc">A generic endpoint for log messages.</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00058">Journal.h:58</a></div></div>
<div class="ttc" id="ainteger_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a></div></div>
<div class="ttc" id="amap_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/map.html">std::map</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1CountMinMax_html_a224936dfdfdf15406398afb5d2cab573"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1CountMinMax.html#a224936dfdfdf15406398afb5d2cab573">ripple::RelationalDatabase::CountMinMax::maxLedgerSequence</a></div><div class="ttdeci">LedgerIndex maxLedgerSequence</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00055">RelationalDatabase.h:55</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxOptions_html_a57a340a78e0da40eef457ecac5b01e6f"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxOptions.html#a57a340a78e0da40eef457ecac5b01e6f">ripple::RelationalDatabase::AccountTxOptions::account</a></div><div class="ttdeci">AccountID const &amp; account</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00066">RelationalDatabase.h:66</a></div></div>
<div class="ttc" id="aclassripple_1_1JobQueue_html"><div class="ttname"><a href="classripple_1_1JobQueue.html">ripple::JobQueue</a></div><div class="ttdoc">A pool of threads to perform work.</div><div class="ttdef"><b>Definition:</b> <a href="JobQueue_8h_source.html#l00055">JobQueue.h:55</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxOptions_html_a2eb43349ee334341dfeff864d2de67e3"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxOptions.html#a2eb43349ee334341dfeff864d2de67e3">ripple::RelationalDatabase::AccountTxOptions::maxLedger</a></div><div class="ttdeci">std::uint32_t maxLedger</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00068">RelationalDatabase.h:68</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxArgs_html_ab798755660bdb0995a3c53a2f1baeec7"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxArgs.html#ab798755660bdb0995a3c53a2f1baeec7">ripple::RelationalDatabase::AccountTxArgs::forward</a></div><div class="ttdeci">bool forward</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00101">RelationalDatabase.h:101</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTransactionsData_html_a1b5fcc36c5638e4c5b88c8b40822366f"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#a1b5fcc36c5638e4c5b88c8b40822366f">ripple::RelationalDatabase::AccountTransactionsData::transactionIndex</a></div><div class="ttdeci">uint32_t transactionIndex</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00120">RelationalDatabase.h:120</a></div></div>
<div class="ttc" id="anamespaceripple_html"><div class="ttname"><a href="namespaceripple.html">ripple</a></div><div class="ttdoc">Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="RCLCensorshipDetector_8h_source.html#l00029">RCLCensorshipDetector.h:29</a></div></div>
<div class="ttc" id="aclassripple_1_1RelationalDatabase_html_a59c527306560ba3cf9d774fc73ee29a4"><div class="ttname"><a href="classripple_1_1RelationalDatabase.html#a59c527306560ba3cf9d774fc73ee29a4">ripple::RelationalDatabase::transactionDbHasSpace</a></div><div class="ttdeci">virtual bool transactionDbHasSpace(Config const &amp;config)=0</div><div class="ttdoc">transactionDbHasSpace Checks if the transaction database has available space.</div></div>
<div class="ttc" id="aclassripple_1_1RelationalDatabase_html_a7d4e0e3c03536c80901f72355139a483"><div class="ttname"><a href="classripple_1_1RelationalDatabase.html#a7d4e0e3c03536c80901f72355139a483">ripple::RelationalDatabase::ledgerDbHasSpace</a></div><div class="ttdeci">virtual bool ledgerDbHasSpace(Config const &amp;config)=0</div><div class="ttdoc">ledgerDbHasSpace Checks if the ledger database has available space.</div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxPageOptions_html_a0549ee351d7065b44be66a916ce4a05f"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxPageOptions.html#a0549ee351d7065b44be66a916ce4a05f">ripple::RelationalDatabase::AccountTxPageOptions::limit</a></div><div class="ttdeci">std::uint32_t limit</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00080">RelationalDatabase.h:80</a></div></div>
<div class="ttc" id="astructripple_1_1LedgerRange_html_a7e0a57dae4c124f10c091fb1cf0af155"><div class="ttname"><a href="structripple_1_1LedgerRange.html#a7e0a57dae4c124f10c091fb1cf0af155">ripple::LedgerRange::max</a></div><div class="ttdeci">uint32_t max</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00045">RelationalDatabase.h:45</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxMarker_html_a1fa384a5a48121ff50cd0adf4cb45c96"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxMarker.html#a1fa384a5a48121ff50cd0adf4cb45c96">ripple::RelationalDatabase::AccountTxMarker::ledgerSeq</a></div><div class="ttdeci">std::uint32_t ledgerSeq</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00060">RelationalDatabase.h:60</a></div></div>
<div class="ttc" id="aclassripple_1_1RelationalDatabase_html_affdfbc3c5f0f2d7b78cc5570617a5fda"><div class="ttname"><a href="classripple_1_1RelationalDatabase.html#affdfbc3c5f0f2d7b78cc5570617a5fda">ripple::RelationalDatabase::LedgerSequence</a></div><div class="ttdeci">uint32_t LedgerSequence</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00090">RelationalDatabase.h:90</a></div></div>
<div class="ttc" id="astructripple_1_1LedgerHashPair_html_a9d5c3af96a015921da17b40ea48012cd"><div class="ttname"><a href="structripple_1_1LedgerHashPair.html#a9d5c3af96a015921da17b40ea48012cd">ripple::LedgerHashPair::parentHash</a></div><div class="ttdeci">uint256 parentHash</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00039">RelationalDatabase.h:39</a></div></div>
<div class="ttc" id="aoptional_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional</a></div></div>
<div class="ttc" id="asize_t_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1CountMinMax_html_ab9e4303198e013125c6ea4527cca69cf"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1CountMinMax.html#ab9e4303198e013125c6ea4527cca69cf">ripple::RelationalDatabase::CountMinMax::numberOfRows</a></div><div class="ttdeci">std::size_t numberOfRows</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00053">RelationalDatabase.h:53</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTransactionsData_html_a1b87704eba75a9cd54e593928091677a"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#a1b87704eba75a9cd54e593928091677a">ripple::RelationalDatabase::AccountTransactionsData::ledgerSequence</a></div><div class="ttdeci">uint32_t ledgerSequence</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00119">RelationalDatabase.h:119</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxArgs_html_a98e857b5bc5149d64ae2fe3a19d052f6"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxArgs.html#a98e857b5bc5149d64ae2fe3a19d052f6">ripple::RelationalDatabase::AccountTxArgs::ledger</a></div><div class="ttdeci">std::optional&lt; LedgerSpecifier &gt; ledger</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00099">RelationalDatabase.h:99</a></div></div>
<div class="ttc" id="astructripple_1_1LedgerRange_html"><div class="ttname"><a href="structripple_1_1LedgerRange.html">ripple::LedgerRange</a></div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00042">RelationalDatabase.h:42</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTransactionsData_html_ad768a0b27908b386e5f52e0770031706"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#ad768a0b27908b386e5f52e0770031706">ripple::RelationalDatabase::AccountTransactionsData::AccountTransactionsData</a></div><div class="ttdeci">AccountTransactionsData(TxMeta const &amp;meta, uint256 const &amp;nodestoreHash, beast::Journal j)</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00124">RelationalDatabase.h:124</a></div></div>
<div class="ttc" id="amax_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/numeric_limits/max.html">std::numeric_limits::max</a></div><div class="ttdeci">T max(T... args)</div></div>
<div class="ttc" id="aclassripple_1_1RelationalDatabase_html"><div class="ttname"><a href="classripple_1_1RelationalDatabase.html">ripple::RelationalDatabase</a></div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00048">RelationalDatabase.h:48</a></div></div>
<div class="ttc" id="astructripple_1_1LedgerRange_html_a823ea62ac90523714bb914f82c803f86"><div class="ttname"><a href="structripple_1_1LedgerRange.html#a823ea62ac90523714bb914f82c803f86">ripple::LedgerRange::min</a></div><div class="ttdeci">uint32_t min</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00044">RelationalDatabase.h:44</a></div></div>
<div class="ttc" id="aunique_ptr_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="anumeric_limits_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/numeric_limits.html">std::numeric_limits</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxResult_html_af121f7ac83689271cf038239cac88ad2"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxResult.html#af121f7ac83689271cf038239cac88ad2">ripple::RelationalDatabase::AccountTxResult::limit</a></div><div class="ttdeci">uint32_t limit</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00110">RelationalDatabase.h:110</a></div></div>
<div class="ttc" id="aclassripple_1_1RelationalDatabase_html_a177aaf55106410ac5a2b2969674d4d57"><div class="ttname"><a href="classripple_1_1RelationalDatabase.html#a177aaf55106410ac5a2b2969674d4d57">ripple::RelationalDatabase::getHashesByIndex</a></div><div class="ttdeci">virtual std::optional&lt; LedgerHashPair &gt; getHashesByIndex(LedgerIndex ledgerIndex)=0</div><div class="ttdoc">getHashesByIndex Returns the hashes of the ledger and its parent as specified by the ledgerIndex.</div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTransactionsData_html_a441541b8fb78df2af54fdef4ec08ac07"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#a441541b8fb78df2af54fdef4ec08ac07">ripple::RelationalDatabase::AccountTransactionsData::txHash</a></div><div class="ttdeci">uint256 txHash</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00121">RelationalDatabase.h:121</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxPageOptions_html_aebfc077df43d070c1e0cd4205be74403"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxPageOptions.html#aebfc077df43d070c1e0cd4205be74403">ripple::RelationalDatabase::AccountTxPageOptions::marker</a></div><div class="ttdeci">std::optional&lt; AccountTxMarker &gt; marker</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00079">RelationalDatabase.h:79</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTransactionsData_html_a44a14b5a5b9854652704bddc7de9b719"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html#a44a14b5a5b9854652704bddc7de9b719">ripple::RelationalDatabase::AccountTransactionsData::nodestoreHash</a></div><div class="ttdeci">uint256 nodestoreHash</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00122">RelationalDatabase.h:122</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTxPageOptions_html"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTxPageOptions.html">ripple::RelationalDatabase::AccountTxPageOptions</a></div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00074">RelationalDatabase.h:74</a></div></div>
<div class="ttc" id="astructripple_1_1RelationalDatabase_1_1AccountTransactionsData_html"><div class="ttname"><a href="structripple_1_1RelationalDatabase_1_1AccountTransactionsData.html">ripple::RelationalDatabase::AccountTransactionsData</a></div><div class="ttdoc">Struct used to keep track of what to write to transactions and account_transactions tables in Postgre...</div><div class="ttdef"><b>Definition:</b> <a href="RelationalDatabase_8h_source.html#l00116">RelationalDatabase.h:116</a></div></div>
<div class="ttc" id="avariant_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/variant.html">std::variant</a></div></div>
<!-- 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>