Files
rippled/Entry_8h_source.html
2025-11-04 00:36:48 -08:00

223 lines
32 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>rippled: Entry.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 id="projectrow">
<td id="projectalign">
<div id="projectname">rippled
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function() { init_codefold(0); });
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_0103a8ad82dcc2c51f5cde661b4b5cb7.html">xrpl</a></li><li class="navelem"><a class="el" href="dir_68f79f171b7159941f300783854c1b48.html">resource</a></li><li class="navelem"><a class="el" href="dir_83cc80d895ddee2dee79c9a486487346.html">detail</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">Entry.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef XRPL_RESOURCE_ENTRY_H_INCLUDED</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define XRPL_RESOURCE_ENTRY_H_INCLUDED</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include &lt;xrpl/basics/DecayingSample.h&gt;</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include &lt;xrpl/beast/clock/abstract_clock.h&gt;</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include &lt;xrpl/beast/core/List.h&gt;</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include &lt;xrpl/beast/utility/instrumentation.h&gt;</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &lt;xrpl/resource/detail/Key.h&gt;</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &lt;xrpl/resource/detail/Tuning.h&gt;</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceripple.html">ripple</a> {</div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="keyword">namespace </span>Resource {</div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"><a class="line" href="namespaceripple_1_1Resource.html#a6cf750013e8f059c07f8eca00a1aae3c"> 14</a></span><span class="keyword">using </span><a class="code hl_class" href="classbeast_1_1abstract__clock.html">clock_type</a> = <a class="code hl_class" href="classbeast_1_1abstract__clock.html">beast::abstract_clock&lt;std::chrono::steady_clock&gt;</a>;</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment">// An entry in the table</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment">// VFALCO DEPRECATED using boost::intrusive list</span></div>
<div class="foldopen" id="foldopen00018" data-start="{" data-end="};">
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"><a class="line" href="structripple_1_1Resource_1_1Entry.html"> 18</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structripple_1_1Resource_1_1Entry.html">Entry</a> : <span class="keyword">public</span> <a class="code hl_class" href="classbeast_1_1List.html">beast::List</a>&lt;Entry&gt;::Node</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span>{</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"><a class="line" href="structripple_1_1Resource_1_1Entry.html#a4a06b3b5c7166c9ef2b8cf0ac206a083"> 20</a></span> <a class="code hl_function" href="structripple_1_1Resource_1_1Entry.html#a4a06b3b5c7166c9ef2b8cf0ac206a083">Entry</a>() = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
<div class="foldopen" id="foldopen00025" data-start="{" data-end="}">
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="structripple_1_1Resource_1_1Entry.html#a364af6969006dff5d9f8e86cbb34285b"> 25</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="structripple_1_1Resource_1_1Entry.html#a364af6969006dff5d9f8e86cbb34285b">Entry</a>(<a class="code hl_typedef" href="classbeast_1_1abstract__clock.html#a4e16832b0bdf9392c5138bbbde024d8e">clock_type::time_point</a> <span class="keyword">const</span> now)</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> : <a class="code hl_variable" href="structripple_1_1Resource_1_1Entry.html#a3e780c3b19c2c14ec472886ad9290a8c">refcount</a>(0)</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> , <a class="code hl_variable" href="structripple_1_1Resource_1_1Entry.html#afe460653a64898f33d951eed34c189ec">local_balance</a>(now)</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> , <a class="code hl_variable" href="structripple_1_1Resource_1_1Entry.html#abc6e6439d972b598c2736e92cc3a13b6">remote_balance</a>(0)</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> , <a class="code hl_variable" href="structripple_1_1Resource_1_1Entry.html#adc2dbd0b7399f896ac5e93d338e704f7">lastWarningTime</a>()</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> , <a class="code hl_variable" href="structripple_1_1Resource_1_1Entry.html#a7f29a0594727601ebd4269bb6e217eca">whenExpires</a>()</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> {</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> }</div>
</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div>
<div class="foldopen" id="foldopen00035" data-start="{" data-end="}">
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="structripple_1_1Resource_1_1Entry.html#a0b974f298dfb9f160e73f4b6a84e5176"> 35</a></span> <a class="code hl_function" href="structripple_1_1Resource_1_1Entry.html#a0b974f298dfb9f160e73f4b6a84e5176">to_string</a>()<span class="keyword"> const</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceripple.html#aa5a4b0393fcf6a5aef5a7452d828f6e8">getFingerprint</a>(<a class="code hl_variable" href="structripple_1_1Resource_1_1Entry.html#a36405d4dc065cdecf488e9e803220d23">key</a>-&gt;<a class="code hl_variable" href="structripple_1_1Resource_1_1Key.html#a055d0599801371df81ecc35087076fa1">address</a>, <a class="code hl_variable" href="structripple_1_1Resource_1_1Entry.html#a46a4a570e65ed7018db9b7aa21ad604b">publicKey</a>);</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> }</div>
</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> </div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keywordtype">bool</span></div>
<div class="foldopen" id="foldopen00046" data-start="{" data-end="}">
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="structripple_1_1Resource_1_1Entry.html#a57a1414566dc5941f2ffd9986fced385"> 46</a></span> <a class="code hl_function" href="structripple_1_1Resource_1_1Entry.html#a57a1414566dc5941f2ffd9986fced385">isUnlimited</a>()<span class="keyword"> const</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="structripple_1_1Resource_1_1Entry.html#a36405d4dc065cdecf488e9e803220d23">key</a>-&gt;<a class="code hl_variable" href="structripple_1_1Resource_1_1Key.html#afc16c2cbfed9837b2f1eb9554c0f21e3">kind</a> == <a class="code hl_enumvalue" href="namespaceripple_1_1Resource.html#a21bb0387f51ba0f1dc971bce94ffbac9aab94c40083a1cddf421ce87b6ad93a8f">kindUnlimited</a>;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> }</div>
</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="comment">// Balance including remote contributions</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordtype">int</span></div>
<div class="foldopen" id="foldopen00053" data-start="{" data-end="}">
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="structripple_1_1Resource_1_1Entry.html#a73c79c68a4fa07e44a288dbfda8501d5"> 53</a></span> <a class="code hl_function" href="structripple_1_1Resource_1_1Entry.html#a73c79c68a4fa07e44a288dbfda8501d5">balance</a>(<a class="code hl_typedef" href="classbeast_1_1abstract__clock.html#a4e16832b0bdf9392c5138bbbde024d8e">clock_type::time_point</a> <span class="keyword">const</span> now)</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> {</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="structripple_1_1Resource_1_1Entry.html#afe460653a64898f33d951eed34c189ec">local_balance</a>.value(now) + <a class="code hl_variable" href="structripple_1_1Resource_1_1Entry.html#abc6e6439d972b598c2736e92cc3a13b6">remote_balance</a>;</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> }</div>
</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="comment">// Add a charge and return normalized balance</span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="comment">// including contributions from imports.</span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordtype">int</span></div>
<div class="foldopen" id="foldopen00061" data-start="{" data-end="}">
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="structripple_1_1Resource_1_1Entry.html#a630a55b81eb0ae18c45e83b253bdbd05"> 61</a></span> <a class="code hl_function" href="structripple_1_1Resource_1_1Entry.html#a630a55b81eb0ae18c45e83b253bdbd05">add</a>(<span class="keywordtype">int</span> charge, <a class="code hl_typedef" href="classbeast_1_1abstract__clock.html#a4e16832b0bdf9392c5138bbbde024d8e">clock_type::time_point</a> <span class="keyword">const</span> now)</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> {</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="structripple_1_1Resource_1_1Entry.html#afe460653a64898f33d951eed34c189ec">local_balance</a>.add(charge, now) + <a class="code hl_variable" href="structripple_1_1Resource_1_1Entry.html#abc6e6439d972b598c2736e92cc3a13b6">remote_balance</a>;</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> }</div>
</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="comment">// The public key of the peer</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="structripple_1_1Resource_1_1Entry.html#a46a4a570e65ed7018db9b7aa21ad604b"> 67</a></span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;PublicKey&gt;</a> <a class="code hl_variable" href="structripple_1_1Resource_1_1Entry.html#a46a4a570e65ed7018db9b7aa21ad604b">publicKey</a>;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="comment">// Back pointer to the map key (bit of a hack here)</span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="structripple_1_1Resource_1_1Entry.html#a36405d4dc065cdecf488e9e803220d23"> 70</a></span> <a class="code hl_struct" href="structripple_1_1Resource_1_1Key.html">Key</a> <span class="keyword">const</span>* <a class="code hl_variable" href="structripple_1_1Resource_1_1Entry.html#a36405d4dc065cdecf488e9e803220d23">key</a>;</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> </div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="comment">// Number of Consumer references</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="structripple_1_1Resource_1_1Entry.html#a3e780c3b19c2c14ec472886ad9290a8c"> 73</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structripple_1_1Resource_1_1Entry.html#a3e780c3b19c2c14ec472886ad9290a8c">refcount</a>;</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> </div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="comment">// Exponentially decaying balance of resource consumption</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="structripple_1_1Resource_1_1Entry.html#afe460653a64898f33d951eed34c189ec"> 76</a></span> <a class="code hl_class" href="classripple_1_1DecayingSample.html">DecayingSample&lt;decayWindowSeconds, clock_type&gt;</a> <a class="code hl_variable" href="structripple_1_1Resource_1_1Entry.html#afe460653a64898f33d951eed34c189ec">local_balance</a>;</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> </div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="comment">// Normalized balance contribution from imports</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="structripple_1_1Resource_1_1Entry.html#abc6e6439d972b598c2736e92cc3a13b6"> 79</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structripple_1_1Resource_1_1Entry.html#abc6e6439d972b598c2736e92cc3a13b6">remote_balance</a>;</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="comment">// Time of the last warning</span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="structripple_1_1Resource_1_1Entry.html#adc2dbd0b7399f896ac5e93d338e704f7"> 82</a></span> <a class="code hl_typedef" href="classbeast_1_1abstract__clock.html#a4e16832b0bdf9392c5138bbbde024d8e">clock_type::time_point</a> <a class="code hl_variable" href="structripple_1_1Resource_1_1Entry.html#adc2dbd0b7399f896ac5e93d338e704f7">lastWarningTime</a>;</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> </div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="comment">// For inactive entries, time after which this entry will be erased</span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="structripple_1_1Resource_1_1Entry.html#a7f29a0594727601ebd4269bb6e217eca"> 85</a></span> <a class="code hl_typedef" href="classbeast_1_1abstract__clock.html#a4e16832b0bdf9392c5138bbbde024d8e">clock_type::time_point</a> <a class="code hl_variable" href="structripple_1_1Resource_1_1Entry.html#a7f29a0594727601ebd4269bb6e217eca">whenExpires</a>;</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span>};</div>
</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
<div class="foldopen" id="foldopen00088" data-start="{" data-end="}">
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="namespaceripple_1_1Resource.html#a7637c3c9da7a4550e6b4c9c08818311f"> 88</a></span><span class="keyword">inline</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a>&amp;</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><a class="code hl_function" href="namespaceripple_1_1Resource.html#a3ffff64b06f7de442d3c4335e951e208">operator&lt;&lt;</a>(<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a>&amp; os, <a class="code hl_struct" href="structripple_1_1Resource_1_1Entry.html">Entry</a> <span class="keyword">const</span>&amp; v)</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span>{</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> os &lt;&lt; v.<a class="code hl_function" href="structripple_1_1Resource_1_1Entry.html#a0b974f298dfb9f160e73f4b6a84e5176">to_string</a>();</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keywordflow">return</span> os;</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span>}</div>
</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> </div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span>} <span class="comment">// namespace Resource</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span>} <span class="comment">// namespace ripple</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> </div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a></div></div>
<div class="ttc" id="abasic_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div></div>
<div class="ttc" id="aclassbeast_1_1List_html"><div class="ttname"><a href="classbeast_1_1List.html">beast::List</a></div><div class="ttdoc">Intrusive doubly linked list.</div><div class="ttdef"><b>Definition</b> <a href="List_8h_source.html#l00259">List.h:260</a></div></div>
<div class="ttc" id="aclassbeast_1_1abstract__clock_html"><div class="ttname"><a href="classbeast_1_1abstract__clock.html">beast::abstract_clock&lt; std::chrono::steady_clock &gt;</a></div></div>
<div class="ttc" id="aclassbeast_1_1abstract__clock_html_a4e16832b0bdf9392c5138bbbde024d8e"><div class="ttname"><a href="classbeast_1_1abstract__clock.html#a4e16832b0bdf9392c5138bbbde024d8e">beast::abstract_clock&lt; std::chrono::steady_clock &gt;::time_point</a></div><div class="ttdeci">typename Clock::time_point time_point</div><div class="ttdef"><b>Definition</b> <a href="abstract__clock_8h_source.html#l00041">abstract_clock.h:41</a></div></div>
<div class="ttc" id="aclassripple_1_1DecayingSample_html"><div class="ttname"><a href="classripple_1_1DecayingSample.html">ripple::DecayingSample</a></div><div class="ttdoc">Sampling function using exponential decay to provide a continuous value.</div><div class="ttdef"><b>Definition</b> <a href="DecayingSample_8h_source.html#l00013">DecayingSample.h:14</a></div></div>
<div class="ttc" id="anamespaceripple_1_1Resource_html_a21bb0387f51ba0f1dc971bce94ffbac9aab94c40083a1cddf421ce87b6ad93a8f"><div class="ttname"><a href="namespaceripple_1_1Resource.html#a21bb0387f51ba0f1dc971bce94ffbac9aab94c40083a1cddf421ce87b6ad93a8f">ripple::Resource::kindUnlimited</a></div><div class="ttdeci">@ kindUnlimited</div><div class="ttdef"><b>Definition</b> <a href="Kind_8h_source.html#l00015">Kind.h:15</a></div></div>
<div class="ttc" id="anamespaceripple_1_1Resource_html_a3ffff64b06f7de442d3c4335e951e208"><div class="ttname"><a href="namespaceripple_1_1Resource.html#a3ffff64b06f7de442d3c4335e951e208">ripple::Resource::operator&lt;&lt;</a></div><div class="ttdeci">std::ostream &amp; operator&lt;&lt;(std::ostream &amp;os, Charge const &amp;v)</div><div class="ttdef"><b>Definition</b> <a href="Charge_8cpp_source.html#l00036">Charge.cpp:37</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="algorithm_8h_source.html#l00006">algorithm.h:6</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa5a4b0393fcf6a5aef5a7452d828f6e8"><div class="ttname"><a href="namespaceripple.html#aa5a4b0393fcf6a5aef5a7452d828f6e8">ripple::getFingerprint</a></div><div class="ttdeci">std::string getFingerprint(beast::IP::Endpoint const &amp;address, std::optional&lt; PublicKey &gt; const &amp;publicKey=std::nullopt, std::optional&lt; std::string &gt; const &amp;id=std::nullopt)</div><div class="ttdef"><b>Definition</b> <a href="PublicKey_8h_source.html#l00250">PublicKey.h:250</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="astructripple_1_1Resource_1_1Entry_html"><div class="ttname"><a href="structripple_1_1Resource_1_1Entry.html">ripple::Resource::Entry</a></div><div class="ttdef"><b>Definition</b> <a href="Entry_8h_source.html#l00018">Entry.h:19</a></div></div>
<div class="ttc" id="astructripple_1_1Resource_1_1Entry_html_a0b974f298dfb9f160e73f4b6a84e5176"><div class="ttname"><a href="structripple_1_1Resource_1_1Entry.html#a0b974f298dfb9f160e73f4b6a84e5176">ripple::Resource::Entry::to_string</a></div><div class="ttdeci">std::string to_string() const</div><div class="ttdef"><b>Definition</b> <a href="Entry_8h_source.html#l00035">Entry.h:35</a></div></div>
<div class="ttc" id="astructripple_1_1Resource_1_1Entry_html_a36405d4dc065cdecf488e9e803220d23"><div class="ttname"><a href="structripple_1_1Resource_1_1Entry.html#a36405d4dc065cdecf488e9e803220d23">ripple::Resource::Entry::key</a></div><div class="ttdeci">Key const * key</div><div class="ttdef"><b>Definition</b> <a href="Entry_8h_source.html#l00070">Entry.h:70</a></div></div>
<div class="ttc" id="astructripple_1_1Resource_1_1Entry_html_a364af6969006dff5d9f8e86cbb34285b"><div class="ttname"><a href="structripple_1_1Resource_1_1Entry.html#a364af6969006dff5d9f8e86cbb34285b">ripple::Resource::Entry::Entry</a></div><div class="ttdeci">Entry(clock_type::time_point const now)</div><div class="ttdef"><b>Definition</b> <a href="Entry_8h_source.html#l00025">Entry.h:25</a></div></div>
<div class="ttc" id="astructripple_1_1Resource_1_1Entry_html_a3e780c3b19c2c14ec472886ad9290a8c"><div class="ttname"><a href="structripple_1_1Resource_1_1Entry.html#a3e780c3b19c2c14ec472886ad9290a8c">ripple::Resource::Entry::refcount</a></div><div class="ttdeci">int refcount</div><div class="ttdef"><b>Definition</b> <a href="Entry_8h_source.html#l00073">Entry.h:73</a></div></div>
<div class="ttc" id="astructripple_1_1Resource_1_1Entry_html_a46a4a570e65ed7018db9b7aa21ad604b"><div class="ttname"><a href="structripple_1_1Resource_1_1Entry.html#a46a4a570e65ed7018db9b7aa21ad604b">ripple::Resource::Entry::publicKey</a></div><div class="ttdeci">std::optional&lt; PublicKey &gt; publicKey</div><div class="ttdef"><b>Definition</b> <a href="Entry_8h_source.html#l00067">Entry.h:67</a></div></div>
<div class="ttc" id="astructripple_1_1Resource_1_1Entry_html_a4a06b3b5c7166c9ef2b8cf0ac206a083"><div class="ttname"><a href="structripple_1_1Resource_1_1Entry.html#a4a06b3b5c7166c9ef2b8cf0ac206a083">ripple::Resource::Entry::Entry</a></div><div class="ttdeci">Entry()=delete</div></div>
<div class="ttc" id="astructripple_1_1Resource_1_1Entry_html_a57a1414566dc5941f2ffd9986fced385"><div class="ttname"><a href="structripple_1_1Resource_1_1Entry.html#a57a1414566dc5941f2ffd9986fced385">ripple::Resource::Entry::isUnlimited</a></div><div class="ttdeci">bool isUnlimited() const</div><div class="ttdoc">Returns true if this connection should have no resource limits appliedit is still possible for certa...</div><div class="ttdef"><b>Definition</b> <a href="Entry_8h_source.html#l00046">Entry.h:46</a></div></div>
<div class="ttc" id="astructripple_1_1Resource_1_1Entry_html_a630a55b81eb0ae18c45e83b253bdbd05"><div class="ttname"><a href="structripple_1_1Resource_1_1Entry.html#a630a55b81eb0ae18c45e83b253bdbd05">ripple::Resource::Entry::add</a></div><div class="ttdeci">int add(int charge, clock_type::time_point const now)</div><div class="ttdef"><b>Definition</b> <a href="Entry_8h_source.html#l00061">Entry.h:61</a></div></div>
<div class="ttc" id="astructripple_1_1Resource_1_1Entry_html_a73c79c68a4fa07e44a288dbfda8501d5"><div class="ttname"><a href="structripple_1_1Resource_1_1Entry.html#a73c79c68a4fa07e44a288dbfda8501d5">ripple::Resource::Entry::balance</a></div><div class="ttdeci">int balance(clock_type::time_point const now)</div><div class="ttdef"><b>Definition</b> <a href="Entry_8h_source.html#l00053">Entry.h:53</a></div></div>
<div class="ttc" id="astructripple_1_1Resource_1_1Entry_html_a7f29a0594727601ebd4269bb6e217eca"><div class="ttname"><a href="structripple_1_1Resource_1_1Entry.html#a7f29a0594727601ebd4269bb6e217eca">ripple::Resource::Entry::whenExpires</a></div><div class="ttdeci">clock_type::time_point whenExpires</div><div class="ttdef"><b>Definition</b> <a href="Entry_8h_source.html#l00085">Entry.h:85</a></div></div>
<div class="ttc" id="astructripple_1_1Resource_1_1Entry_html_abc6e6439d972b598c2736e92cc3a13b6"><div class="ttname"><a href="structripple_1_1Resource_1_1Entry.html#abc6e6439d972b598c2736e92cc3a13b6">ripple::Resource::Entry::remote_balance</a></div><div class="ttdeci">int remote_balance</div><div class="ttdef"><b>Definition</b> <a href="Entry_8h_source.html#l00079">Entry.h:79</a></div></div>
<div class="ttc" id="astructripple_1_1Resource_1_1Entry_html_adc2dbd0b7399f896ac5e93d338e704f7"><div class="ttname"><a href="structripple_1_1Resource_1_1Entry.html#adc2dbd0b7399f896ac5e93d338e704f7">ripple::Resource::Entry::lastWarningTime</a></div><div class="ttdeci">clock_type::time_point lastWarningTime</div><div class="ttdef"><b>Definition</b> <a href="Entry_8h_source.html#l00082">Entry.h:82</a></div></div>
<div class="ttc" id="astructripple_1_1Resource_1_1Entry_html_afe460653a64898f33d951eed34c189ec"><div class="ttname"><a href="structripple_1_1Resource_1_1Entry.html#afe460653a64898f33d951eed34c189ec">ripple::Resource::Entry::local_balance</a></div><div class="ttdeci">DecayingSample&lt; decayWindowSeconds, clock_type &gt; local_balance</div><div class="ttdef"><b>Definition</b> <a href="Entry_8h_source.html#l00076">Entry.h:76</a></div></div>
<div class="ttc" id="astructripple_1_1Resource_1_1Key_html"><div class="ttname"><a href="structripple_1_1Resource_1_1Key.html">ripple::Resource::Key</a></div><div class="ttdef"><b>Definition</b> <a href="Key_8h_source.html#l00012">Key.h:13</a></div></div>
<div class="ttc" id="astructripple_1_1Resource_1_1Key_html_a055d0599801371df81ecc35087076fa1"><div class="ttname"><a href="structripple_1_1Resource_1_1Key.html#a055d0599801371df81ecc35087076fa1">ripple::Resource::Key::address</a></div><div class="ttdeci">beast::IP::Endpoint address</div><div class="ttdef"><b>Definition</b> <a href="Key_8h_source.html#l00015">Key.h:15</a></div></div>
<div class="ttc" id="astructripple_1_1Resource_1_1Key_html_afc16c2cbfed9837b2f1eb9554c0f21e3"><div class="ttname"><a href="structripple_1_1Resource_1_1Key.html#afc16c2cbfed9837b2f1eb9554c0f21e3">ripple::Resource::Key::kind</a></div><div class="ttdeci">Kind kind</div><div class="ttdef"><b>Definition</b> <a href="Key_8h_source.html#l00014">Key.h:14</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>