This commit is contained in:
manojsdoshi
2021-03-12 22:34:28 +00:00
parent 1664f589f1
commit dffdcfc0e7
4802 changed files with 108249 additions and 108053 deletions

View File

@@ -223,18 +223,18 @@ $(function() {
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">return</span> post(<a class="code" href="classripple_1_1PeerImp.html#aef0a014fd8791fb1e3d47b783e491c1b">strand_</a>, <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/functional/bind.html">std::bind</a>(&amp;<a class="code" href="classripple_1_1PeerImp.html#a2b82daab3747a2e829eb1b8607b9337f">PeerImp::run</a>, <a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/enable_shared_from_this/shared_from_this.html">shared_from_this</a>()));</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; </div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">auto</span> parseLedgerHash =</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; [](<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>&amp; value) -&gt; boost::optional&lt;uint256&gt; {</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1base__uint.html">uint256</a> ret; ret.<a class="code" href="classripple_1_1base__uint.html#a88941f6d88609ddcd997293791772aed">parseHex</a>(value))</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; [](<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>&amp; value) -&gt; <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;uint256&gt;</a> {</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1base__uint.html">uint256</a> ret; ret.<a class="code" href="classripple_1_1base__uint.html#a698d3fd0c0f0155995c87d2f48ac90d5">parseHex</a>(value))</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">return</span> ret;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; </div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> s = <a class="code" href="namespaceripple.html#a551be32de1cc0f8a8ff1f14ee84d892b">base64_decode</a>(value); s.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() == <a class="code" href="classripple_1_1base__uint.html#adbe18ef92b677603e8539b3a77c064b0">uint256::size</a>())</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classripple_1_1base__uint.html">uint256</a>{s};</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; </div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> boost::none;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> std::nullopt;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; };</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; </div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; boost::optional&lt;uint256&gt; closed;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; boost::optional&lt;uint256&gt; previous;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;uint256&gt;</a> closed;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;uint256&gt;</a> previous;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; </div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> iter = <a class="code" href="classripple_1_1PeerImp.html#a07c076bb0ff33256d508d55713ecaa50">headers_</a>.find(<span class="stringliteral">&quot;Closed-Ledger&quot;</span>);</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; iter != <a class="code" href="classripple_1_1PeerImp.html#a07c076bb0ff33256d508d55713ecaa50">headers_</a>.end())</div>
@@ -380,7 +380,7 @@ $(function() {
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="keywordtype">bool</span></div>
<div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="classripple_1_1PeerImp.html#adf07c79bb64c5aca004dfe7752e2daef"> 312</a></span>&#160;<a class="code" href="classripple_1_1PeerImp.html#adf07c79bb64c5aca004dfe7752e2daef">PeerImp::cluster</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">bool</span><span class="keyword">&gt;</span>(<a class="code" href="classripple_1_1PeerImp.html#a3a6db914d2068ddf53982b433d7dce97">app_</a>.<a class="code" href="classripple_1_1Application.html#a296fbab181bda48bf599996518228bf9">cluster</a>().<a class="code" href="classripple_1_1Cluster.html#a0c718ec2f55e267d3b4f484fcac27717">member</a>(<a class="code" href="classripple_1_1PeerImp.html#af30b1a251f7a0a3546bfbb645130b713">publicKey_</a>));</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">bool</span><span class="keyword">&gt;</span>(<a class="code" href="classripple_1_1PeerImp.html#a3a6db914d2068ddf53982b433d7dce97">app_</a>.<a class="code" href="classripple_1_1Application.html#a296fbab181bda48bf599996518228bf9">cluster</a>().<a class="code" href="classripple_1_1Cluster.html#adffcdc10e28e4fa6f3e9b9c5f4bb3afa">member</a>(<a class="code" href="classripple_1_1PeerImp.html#af30b1a251f7a0a3546bfbb645130b713">publicKey_</a>));</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;}</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; </div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div>
@@ -414,7 +414,7 @@ $(function() {
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> d = <a class="code" href="classripple_1_1PeerImp.html#a23911da98ba540250f16a5628a1b25c3">domain</a>(); !d.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>())</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; ret[jss::server_domain] = <a class="code" href="classripple_1_1PeerImp.html#a23911da98ba540250f16a5628a1b25c3">domain</a>();</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; </div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> nid = <a class="code" href="classripple_1_1PeerImp.html#a07c076bb0ff33256d508d55713ecaa50">headers_</a>[<span class="stringliteral">&quot;Network-ID&quot;</span>].<a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(); !nid.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>())</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> nid = <a class="code" href="classripple_1_1PeerImp.html#a07c076bb0ff33256d508d55713ecaa50">headers_</a>[<span class="stringliteral">&quot;Network-ID&quot;</span>].<a class="code" href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">to_string</a>(); !nid.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>())</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; ret[jss::network_id] = nid;</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; </div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; ret[jss::load] = <a class="code" href="classripple_1_1PeerImp.html#af29eb14e970e770829b9bd767825767e">usage_</a>.<a class="code" href="classripple_1_1Resource_1_1Consumer.html#a320fc29f63c46d86d9564dcd3a3b20bb">balance</a>();</div>
@@ -422,12 +422,12 @@ $(function() {
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> version = <a class="code" href="classripple_1_1PeerImp.html#a9530806aa9810287da118287fb87018d">getVersion</a>(); !version.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/empty.html">empty</a>())</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; ret[jss::version] = version;</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; </div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; ret[jss::protocol] = <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(<a class="code" href="classripple_1_1PeerImp.html#a8e0132307f0669ca95b6abe730924807">protocol_</a>);</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; ret[jss::protocol] = <a class="code" href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">to_string</a>(<a class="code" href="classripple_1_1PeerImp.html#a8e0132307f0669ca95b6abe730924807">protocol_</a>);</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; </div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; {</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> sl(<a class="code" href="classripple_1_1PeerImp.html#a6d90ab41186371b3b0c13e2ce8d89486">recentLock_</a>);</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1PeerImp.html#adce74938d3d2b74eebba702d811bf7c7">latency_</a>)</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; ret[jss::latency] = <span class="keyword">static_cast&lt;</span><a class="code" href="namespaceJson.html#ab1488c31a37eea2d37f36a0961372572">Json::UInt</a><span class="keyword">&gt;</span>(<a class="code" href="classripple_1_1PeerImp.html#adce74938d3d2b74eebba702d811bf7c7">latency_</a>-&gt;count());</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1PeerImp.html#a53e1dcd04d1a1c6576b913ae95fc37e3">latency_</a>)</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; ret[jss::latency] = <span class="keyword">static_cast&lt;</span><a class="code" href="namespaceJson.html#ab1488c31a37eea2d37f36a0961372572">Json::UInt</a><span class="keyword">&gt;</span>(<a class="code" href="classripple_1_1PeerImp.html#a53e1dcd04d1a1c6576b913ae95fc37e3">latency_</a>-&gt;count());</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; }</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; </div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; ret[jss::uptime] = <span class="keyword">static_cast&lt;</span><a class="code" href="namespaceJson.html#ab1488c31a37eea2d37f36a0961372572">Json::UInt</a><span class="keyword">&gt;</span>(</div>
@@ -464,7 +464,7 @@ $(function() {
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; }</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; </div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">if</span> (closedLedgerHash != beast::zero)</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; ret[jss::ledger] = <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(closedLedgerHash);</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; ret[jss::ledger] = <a class="code" href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">to_string</a>(closedLedgerHash);</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; </div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">if</span> (last_status.has_newstatus())</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; {</div>
@@ -644,23 +644,23 @@ $(function() {
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <a class="code" href="classripple_1_1PeerImp.html#a63c7b7076475ae93d8f0f9701aff008d">close</a>();</div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;}</div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; </div>
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;boost::optional&lt;RangeSet&lt;std::uint32_t&gt;&gt;</div>
<div class="line"><a name="l00579"></a><span class="lineno"><a class="line" href="classripple_1_1PeerImp.html#a4b02c057151f01313bd051904b4948c7"> 579</a></span>&#160;<a class="code" href="classripple_1_1PeerImp.html#a4b02c057151f01313bd051904b4948c7">PeerImp::getShardIndexes</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;<a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;RangeSet&lt;std::uint32_t&gt;</a>&gt;</div>
<div class="line"><a name="l00579"></a><span class="lineno"><a class="line" href="classripple_1_1PeerImp.html#a1e00696f4c17b9135b687c1cd395673d"> 579</a></span>&#160;<a class="code" href="classripple_1_1PeerImp.html#a1e00696f4c17b9135b687c1cd395673d">PeerImp::getShardIndexes</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> l{<a class="code" href="classripple_1_1PeerImp.html#a4883ff4412cae3d60e2ab4ff5d35a905">shardInfoMutex_</a>};</div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keyword">auto</span> it{<a class="code" href="classripple_1_1PeerImp.html#a0d4f291740db94ec816fc64a222323a6">shardInfo_</a>.find(<a class="code" href="classripple_1_1PeerImp.html#af30b1a251f7a0a3546bfbb645130b713">publicKey_</a>)};</div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">if</span> (it != <a class="code" href="classripple_1_1PeerImp.html#a0d4f291740db94ec816fc64a222323a6">shardInfo_</a>.end())</div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">return</span> it-&gt;second.shardIndexes;</div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">return</span> boost::none;</div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">return</span> std::nullopt;</div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;}</div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; </div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;boost::optional&lt;hash_map&lt;PublicKey, PeerImp::ShardInfo&gt;&gt;</div>
<div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="classripple_1_1PeerImp.html#a6c1f9ea45ebf172e848b8307ce7b0296"> 589</a></span>&#160;<a class="code" href="classripple_1_1PeerImp.html#a6c1f9ea45ebf172e848b8307ce7b0296">PeerImp::getPeerShardInfo</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;hash_map&lt;PublicKey, PeerImp::ShardInfo&gt;</a>&gt;</div>
<div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="classripple_1_1PeerImp.html#ae59a941ecf3ae81417f3a8fdd2ae6629"> 589</a></span>&#160;<a class="code" href="classripple_1_1PeerImp.html#ae59a941ecf3ae81417f3a8fdd2ae6629">PeerImp::getPeerShardInfo</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> l{<a class="code" href="classripple_1_1PeerImp.html#a4883ff4412cae3d60e2ab4ff5d35a905">shardInfoMutex_</a>};</div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classripple_1_1PeerImp.html#a0d4f291740db94ec816fc64a222323a6">shardInfo_</a>.empty())</div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classripple_1_1PeerImp.html#a0d4f291740db94ec816fc64a222323a6">shardInfo_</a>;</div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keywordflow">return</span> boost::none;</div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keywordflow">return</span> std::nullopt;</div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;}</div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; </div>
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="keywordtype">void</span></div>
@@ -762,18 +762,18 @@ $(function() {
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; }</div>
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; </div>
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="comment">// Already waiting for PONG</span></div>
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1PeerImp.html#a028f026ae616dcc1fb2b78665c5c42f3">lastPingSeq_</a>)</div>
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1PeerImp.html#a23f99c9eb6bca0f2db087e1120f22ec3">lastPingSeq_</a>)</div>
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; {</div>
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <a class="code" href="classripple_1_1PeerImp.html#afd11cda882653473f66e9609e9681ea3">fail</a>(<span class="stringliteral">&quot;Ping Timeout&quot;</span>);</div>
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; }</div>
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; </div>
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <a class="code" href="classripple_1_1PeerImp.html#a460d3d1a70fcee9ae038012f77012a41">lastPingTime_</a> = <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/steady_clock/now.html">clock_type::now</a>();</div>
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <a class="code" href="classripple_1_1PeerImp.html#a028f026ae616dcc1fb2b78665c5c42f3">lastPingSeq_</a> = rand_int&lt;std::uint32_t&gt;();</div>
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <a class="code" href="classripple_1_1PeerImp.html#a23f99c9eb6bca0f2db087e1120f22ec3">lastPingSeq_</a> = rand_int&lt;std::uint32_t&gt;();</div>
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; </div>
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; protocol::TMPing message;</div>
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; message.set_type(protocol::TMPing::ptPING);</div>
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; message.set_seq(*<a class="code" href="classripple_1_1PeerImp.html#a028f026ae616dcc1fb2b78665c5c42f3">lastPingSeq_</a>);</div>
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; message.set_seq(*<a class="code" href="classripple_1_1PeerImp.html#a23f99c9eb6bca0f2db087e1120f22ec3">lastPingSeq_</a>);</div>
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; </div>
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <a class="code" href="classripple_1_1PeerImp.html#aa349eb9f7a80300fcfc951ed514cb658">send</a>(std::make_shared&lt;Message&gt;(message, protocol::mtPING));</div>
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; </div>
@@ -810,11 +810,11 @@ $(function() {
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keywordflow">if</span> (!sharedValue)</div>
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classripple_1_1PeerImp.html#afd11cda882653473f66e9609e9681ea3">fail</a>(<span class="stringliteral">&quot;makeSharedValue: Unexpected failure&quot;</span>);</div>
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; </div>
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; JLOG(<a class="code" href="classripple_1_1PeerImp.html#af1e8a55ca5b1179bff11289830b6c30c">journal_</a>.<a class="code" href="classbeast_1_1Journal.html#a87d6bd59020d94110027dcab3d9e3357">info</a>()) &lt;&lt; <span class="stringliteral">&quot;Protocol: &quot;</span> &lt;&lt; <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(<a class="code" href="classripple_1_1PeerImp.html#a8e0132307f0669ca95b6abe730924807">protocol_</a>);</div>
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; JLOG(<a class="code" href="classripple_1_1PeerImp.html#af1e8a55ca5b1179bff11289830b6c30c">journal_</a>.<a class="code" href="classbeast_1_1Journal.html#a87d6bd59020d94110027dcab3d9e3357">info</a>()) &lt;&lt; <span class="stringliteral">&quot;Protocol: &quot;</span> &lt;&lt; <a class="code" href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">to_string</a>(<a class="code" href="classripple_1_1PeerImp.html#a8e0132307f0669ca95b6abe730924807">protocol_</a>);</div>
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; JLOG(<a class="code" href="classripple_1_1PeerImp.html#af1e8a55ca5b1179bff11289830b6c30c">journal_</a>.<a class="code" href="classbeast_1_1Journal.html#a87d6bd59020d94110027dcab3d9e3357">info</a>()) &lt;&lt; <span class="stringliteral">&quot;Public Key: &quot;</span></div>
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; &lt;&lt; <a class="code" href="namespaceripple.html#a08a13b62b18272366f788632359e8793">toBase58</a>(<a class="code" href="namespaceripple.html#a1bf8df553d36589191c8057c136cce03ac3fe5edb1f8a81a8e585f6a27c120be6">TokenType::NodePublic</a>, <a class="code" href="classripple_1_1PeerImp.html#af30b1a251f7a0a3546bfbb645130b713">publicKey_</a>);</div>
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; </div>
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">auto</span> member = <a class="code" href="classripple_1_1PeerImp.html#a3a6db914d2068ddf53982b433d7dce97">app_</a>.<a class="code" href="classripple_1_1Application.html#a296fbab181bda48bf599996518228bf9">cluster</a>().<a class="code" href="classripple_1_1Cluster.html#a0c718ec2f55e267d3b4f484fcac27717">member</a>(<a class="code" href="classripple_1_1PeerImp.html#af30b1a251f7a0a3546bfbb645130b713">publicKey_</a>))</div>
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">auto</span> member = <a class="code" href="classripple_1_1PeerImp.html#a3a6db914d2068ddf53982b433d7dce97">app_</a>.<a class="code" href="classripple_1_1Application.html#a296fbab181bda48bf599996518228bf9">cluster</a>().<a class="code" href="classripple_1_1Cluster.html#adffcdc10e28e4fa6f3e9b9c5f4bb3afa">member</a>(<a class="code" href="classripple_1_1PeerImp.html#af30b1a251f7a0a3546bfbb645130b713">publicKey_</a>))</div>
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; {</div>
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; {</div>
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/unique_lock.html">std::unique_lock</a> lock{<a class="code" href="classripple_1_1PeerImp.html#a10408149af92b12413402a291ac37e82">nameMutex_</a>};</div>
@@ -1103,9 +1103,9 @@ $(function() {
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; <span class="comment">// Only reset the ping sequence if we actually received a</span></div>
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; <span class="comment">// PONG with the correct cookie. That way, any peers which</span></div>
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; <span class="comment">// respond with incorrect cookies will eventually time out.</span></div>
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; <span class="keywordflow">if</span> (m-&gt;seq() == <a class="code" href="classripple_1_1PeerImp.html#a028f026ae616dcc1fb2b78665c5c42f3">lastPingSeq_</a>)</div>
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; <span class="keywordflow">if</span> (m-&gt;seq() == <a class="code" href="classripple_1_1PeerImp.html#a23f99c9eb6bca0f2db087e1120f22ec3">lastPingSeq_</a>)</div>
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; {</div>
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; <a class="code" href="classripple_1_1PeerImp.html#a028f026ae616dcc1fb2b78665c5c42f3">lastPingSeq_</a>.reset();</div>
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; <a class="code" href="classripple_1_1PeerImp.html#a23f99c9eb6bca0f2db087e1120f22ec3">lastPingSeq_</a>.<a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/optional/reset.html">reset</a>();</div>
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; </div>
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; <span class="comment">// Update latency estimate</span></div>
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> rtt = std::chrono::round&lt;std::chrono::milliseconds&gt;(</div>
@@ -1113,10 +1113,10 @@ $(function() {
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; </div>
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> sl(<a class="code" href="classripple_1_1PeerImp.html#a6d90ab41186371b3b0c13e2ce8d89486">recentLock_</a>);</div>
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; </div>
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1PeerImp.html#adce74938d3d2b74eebba702d811bf7c7">latency_</a>)</div>
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; <a class="code" href="classripple_1_1PeerImp.html#adce74938d3d2b74eebba702d811bf7c7">latency_</a> = (*<a class="code" href="classripple_1_1PeerImp.html#adce74938d3d2b74eebba702d811bf7c7">latency_</a> * 7 + rtt) / 8;</div>
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1PeerImp.html#a53e1dcd04d1a1c6576b913ae95fc37e3">latency_</a>)</div>
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; <a class="code" href="classripple_1_1PeerImp.html#a53e1dcd04d1a1c6576b913ae95fc37e3">latency_</a> = (*<a class="code" href="classripple_1_1PeerImp.html#a53e1dcd04d1a1c6576b913ae95fc37e3">latency_</a> * 7 + rtt) / 8;</div>
<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; <a class="code" href="classripple_1_1PeerImp.html#adce74938d3d2b74eebba702d811bf7c7">latency_</a> = rtt;</div>
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; <a class="code" href="classripple_1_1PeerImp.html#a53e1dcd04d1a1c6576b913ae95fc37e3">latency_</a> = rtt;</div>
<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; }</div>
<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; </div>
<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; <span class="keywordflow">return</span>;</div>
@@ -1237,7 +1237,7 @@ $(function() {
<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; {</div>
<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; m-&gt;peerchain_size(); ++i)</div>
<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; {</div>
<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespaceripple.html#abe1502195233c7375f3465f17c7610e4">publicKeyType</a>(<a class="code" href="namespaceripple.html#aabe37451093c21757855542d68fba3ce">makeSlice</a>(m-&gt;peerchain(i).nodepubkey())))</div>
<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespaceripple.html#adc1f8a2c9b47d7c08e671ad3473e9d3a">publicKeyType</a>(<a class="code" href="namespaceripple.html#aabe37451093c21757855542d68fba3ce">makeSlice</a>(m-&gt;peerchain(i).nodepubkey())))</div>
<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; <span class="keywordflow">return</span> badData(<span class="stringliteral">&quot;Invalid peer chain public key&quot;</span>);</div>
<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; }</div>
<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; </div>
@@ -1280,7 +1280,7 @@ $(function() {
<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; <span class="keywordflow">return</span> badData(<span class="stringliteral">&quot;Missing shard indexes&quot;</span>);</div>
<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160; <span class="keywordflow">if</span> (m-&gt;peerchain_size() &gt; <a class="code" href="namespaceripple.html#aeb6ef577d0427e1740f066083031b41f">csHopLimit</a>)</div>
<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; <span class="keywordflow">return</span> badData(<span class="stringliteral">&quot;Invalid peer chain&quot;</span>);</div>
<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; <span class="keywordflow">if</span> (m-&gt;has_nodepubkey() &amp;&amp; !<a class="code" href="namespaceripple.html#abe1502195233c7375f3465f17c7610e4">publicKeyType</a>(<a class="code" href="namespaceripple.html#aabe37451093c21757855542d68fba3ce">makeSlice</a>(m-&gt;nodepubkey())))</div>
<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; <span class="keywordflow">if</span> (m-&gt;has_nodepubkey() &amp;&amp; !<a class="code" href="namespaceripple.html#adc1f8a2c9b47d7c08e671ad3473e9d3a">publicKeyType</a>(<a class="code" href="namespaceripple.html#aabe37451093c21757855542d68fba3ce">makeSlice</a>(m-&gt;nodepubkey())))</div>
<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; <span class="keywordflow">return</span> badData(<span class="stringliteral">&quot;Invalid public key&quot;</span>);</div>
<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; </div>
<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; <span class="comment">// Check if the message should be forwarded to another peer</span></div>
@@ -1289,7 +1289,7 @@ $(function() {
<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; <span class="comment">// Get the Public key of the last link in the peer chain</span></div>
<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> s{</div>
<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; <a class="code" href="namespaceripple.html#aabe37451093c21757855542d68fba3ce">makeSlice</a>(m-&gt;peerchain(m-&gt;peerchain_size() - 1).nodepubkey())};</div>
<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespaceripple.html#abe1502195233c7375f3465f17c7610e4">publicKeyType</a>(s))</div>
<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespaceripple.html#adc1f8a2c9b47d7c08e671ad3473e9d3a">publicKeyType</a>(s))</div>
<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; <span class="keywordflow">return</span> badData(<span class="stringliteral">&quot;Invalid pubKey&quot;</span>);</div>
<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; <a class="code" href="classripple_1_1PublicKey.html">PublicKey</a> peerPubKey(s);</div>
<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160; </div>
@@ -1331,7 +1331,7 @@ $(function() {
<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160; <span class="keywordflow">return</span> badData(<span class="stringliteral">&quot;Invalid shard indexes&quot;</span>);</div>
<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; </div>
<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> earliestShard;</div>
<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160; boost::optional&lt;std::uint32_t&gt; latestShard;</div>
<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;std::uint32_t&gt;</a> latestShard;</div>
<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; {</div>
<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> curLedgerSeq{</div>
<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160; <a class="code" href="classripple_1_1PeerImp.html#a3a6db914d2068ddf53982b433d7dce97">app_</a>.<a class="code" href="classripple_1_1Application.html#a57929fa83c551514e364fe6981b0c104">getLedgerMaster</a>().<a class="code" href="classripple_1_1LedgerMaster.html#ae1ced193783ee99e6935bf68d8eb7031">getCurrentLedgerIndex</a>()};</div>
@@ -1365,7 +1365,7 @@ $(function() {
<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160; <span class="keywordflow">if</span> (m-&gt;endpoint() != <span class="stringliteral">&quot;0&quot;</span>)</div>
<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160; {</div>
<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160; <span class="keyword">auto</span> result =</div>
<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; <a class="code" href="classbeast_1_1IP_1_1Endpoint.html#aac388eeb417add061487b8166490a338">beast::IP::Endpoint::from_string_checked</a>(m-&gt;endpoint());</div>
<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; <a class="code" href="classbeast_1_1IP_1_1Endpoint.html#a0d6ba5509dc00fbf39e8b91e5f267a87">beast::IP::Endpoint::from_string_checked</a>(m-&gt;endpoint());</div>
<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; <span class="keywordflow">if</span> (!result)</div>
<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160; <span class="keywordflow">return</span> badData(<span class="stringliteral">&quot;Invalid incoming endpoint: &quot;</span> + m-&gt;endpoint());</div>
<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160; endpoint = std::move(*result);</div>
@@ -1426,7 +1426,7 @@ $(function() {
<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; </div>
<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>&amp; tm : m-&gt;endpoints_v2())</div>
<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160; {</div>
<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160; <span class="keyword">auto</span> result = <a class="code" href="classbeast_1_1IP_1_1Endpoint.html#aac388eeb417add061487b8166490a338">beast::IP::Endpoint::from_string_checked</a>(tm.endpoint());</div>
<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160; <span class="keyword">auto</span> result = <a class="code" href="classbeast_1_1IP_1_1Endpoint.html#a0d6ba5509dc00fbf39e8b91e5f267a87">beast::IP::Endpoint::from_string_checked</a>(tm.endpoint());</div>
<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160; <span class="keywordflow">if</span> (!result)</div>
<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160; {</div>
<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; JLOG(<a class="code" href="classripple_1_1PeerImp.html#a2f022bda1c97c193ad63f49946dc79af">p_journal_</a>.<a class="code" href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) &lt;&lt; <span class="stringliteral">&quot;failed to parse incoming endpoint: {&quot;</span></div>
@@ -1715,7 +1715,7 @@ $(function() {
<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160; <span class="comment">// Preliminary check for the validity of the signature: A DER encoded</span></div>
<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160; <span class="comment">// signature can&#39;t be longer than 72 bytes.</span></div>
<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160; <span class="keywordflow">if</span> ((boost::algorithm::clamp(sig.size(), 64, 72) != sig.size()) ||</div>
<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160; (<a class="code" href="namespaceripple.html#abe1502195233c7375f3465f17c7610e4">publicKeyType</a>(<a class="code" href="namespaceripple.html#aabe37451093c21757855542d68fba3ce">makeSlice</a>(<a class="code" href="namespaceripple.html#a53f80df10254751781250aa20704e98f">set</a>.nodepubkey())) != KeyType::secp256k1))</div>
<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160; (<a class="code" href="namespaceripple.html#adc1f8a2c9b47d7c08e671ad3473e9d3a">publicKeyType</a>(<a class="code" href="namespaceripple.html#aabe37451093c21757855542d68fba3ce">makeSlice</a>(<a class="code" href="namespaceripple.html#a53f80df10254751781250aa20704e98f">set</a>.nodepubkey())) != KeyType::secp256k1))</div>
<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160; {</div>
<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160; JLOG(p_journal_.warn()) &lt;&lt; <span class="stringliteral">&quot;Proposal: malformed&quot;</span>;</div>
<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160; fee_ = Resource::feeInvalidSignature;</div>
@@ -2309,17 +2309,17 @@ $(function() {
<div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l02241"></a><span class="lineno"><a class="line" href="classripple_1_1PeerImp.html#a07c3caabfa782ee7c75117db855c0f8f"> 2241</a></span>&#160;PeerImp::onMessage(<a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;protocol::TMValidation&gt;</a> <span class="keyword">const</span>&amp; m)</div>
<div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>&#160;{</div>
<div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> closeTime = app_.timeKeeper().closeTime();</div>
<div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160; </div>
<div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160; <span class="keywordflow">if</span> (m-&gt;validation().size() &lt; 50)</div>
<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160; {</div>
<div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>&#160; JLOG(p_journal_.warn()) &lt;&lt; <span class="stringliteral">&quot;Validation: Too small&quot;</span>;</div>
<div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>&#160; fee_ = Resource::feeInvalidRequest;</div>
<div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>&#160; }</div>
<div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>&#160; </div>
<div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>&#160; {</div>
<div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>&#160; <span class="keywordflow">if</span> (m-&gt;validation().size() &lt; 50)</div>
<div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160; {</div>
<div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160; JLOG(p_journal_.warn()) &lt;&lt; <span class="stringliteral">&quot;Validation: Too small&quot;</span>;</div>
<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160; fee_ = Resource::feeInvalidRequest;</div>
<div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>&#160; }</div>
<div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>&#160; </div>
<div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>&#160; {</div>
<div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> closeTime = app_.timeKeeper().closeTime();</div>
<div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>&#160; </div>
<div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;STValidation&gt;</a> val;</div>
<div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>&#160; {</div>
<div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>&#160; <a class="code" href="classripple_1_1SerialIter.html">SerialIter</a> sit(<a class="code" href="namespaceripple.html#aabe37451093c21757855542d68fba3ce">makeSlice</a>(m-&gt;validation()));</div>
@@ -2551,7 +2551,7 @@ $(function() {
<div class="line"><a name="l02482"></a><span class="lineno"> 2482</span>&#160; }</div>
<div class="line"><a name="l02483"></a><span class="lineno"> 2483</span>&#160; <span class="keyword">auto</span> validator = m-&gt;validatorpubkey();</div>
<div class="line"><a name="l02484"></a><span class="lineno"> 2484</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> slice{<a class="code" href="namespaceripple.html#aabe37451093c21757855542d68fba3ce">makeSlice</a>(validator)};</div>
<div class="line"><a name="l02485"></a><span class="lineno"> 2485</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespaceripple.html#abe1502195233c7375f3465f17c7610e4">publicKeyType</a>(slice))</div>
<div class="line"><a name="l02485"></a><span class="lineno"> 2485</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespaceripple.html#adc1f8a2c9b47d7c08e671ad3473e9d3a">publicKeyType</a>(slice))</div>
<div class="line"><a name="l02486"></a><span class="lineno"> 2486</span>&#160; {</div>
<div class="line"><a name="l02487"></a><span class="lineno"> 2487</span>&#160; charge(Resource::feeBadData);</div>
<div class="line"><a name="l02488"></a><span class="lineno"> 2488</span>&#160; <span class="keywordflow">return</span>;</div>
@@ -2752,16 +2752,16 @@ $(function() {
<div class="line"><a name="l02683"></a><span class="lineno"> 2683</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;STValidation&gt;</a> <span class="keyword">const</span>&amp; val,</div>
<div class="line"><a name="l02684"></a><span class="lineno"> 2684</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;protocol::TMValidation&gt;</a> <span class="keyword">const</span>&amp; packet)</div>
<div class="line"><a name="l02685"></a><span class="lineno"> 2685</span>&#160;{</div>
<div class="line"><a name="l02686"></a><span class="lineno"> 2686</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l02686"></a><span class="lineno"> 2686</span>&#160; <span class="keywordflow">if</span> (!cluster() &amp;&amp; !val-&gt;isValid())</div>
<div class="line"><a name="l02687"></a><span class="lineno"> 2687</span>&#160; {</div>
<div class="line"><a name="l02688"></a><span class="lineno"> 2688</span>&#160; <span class="comment">// VFALCO Which functions throw?</span></div>
<div class="line"><a name="l02689"></a><span class="lineno"> 2689</span>&#160; <span class="keywordflow">if</span> (!cluster() &amp;&amp; !val-&gt;isValid())</div>
<div class="line"><a name="l02690"></a><span class="lineno"> 2690</span>&#160; {</div>
<div class="line"><a name="l02691"></a><span class="lineno"> 2691</span>&#160; JLOG(p_journal_.warn()) &lt;&lt; <span class="stringliteral">&quot;Validation is invalid&quot;</span>;</div>
<div class="line"><a name="l02692"></a><span class="lineno"> 2692</span>&#160; charge(Resource::feeInvalidRequest);</div>
<div class="line"><a name="l02693"></a><span class="lineno"> 2693</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l02694"></a><span class="lineno"> 2694</span>&#160; }</div>
<div class="line"><a name="l02695"></a><span class="lineno"> 2695</span>&#160; </div>
<div class="line"><a name="l02688"></a><span class="lineno"> 2688</span>&#160; JLOG(p_journal_.debug()) &lt;&lt; <span class="stringliteral">&quot;Validation forwarded by peer is invalid&quot;</span>;</div>
<div class="line"><a name="l02689"></a><span class="lineno"> 2689</span>&#160; charge(Resource::feeInvalidRequest);</div>
<div class="line"><a name="l02690"></a><span class="lineno"> 2690</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l02691"></a><span class="lineno"> 2691</span>&#160; }</div>
<div class="line"><a name="l02692"></a><span class="lineno"> 2692</span>&#160; </div>
<div class="line"><a name="l02693"></a><span class="lineno"> 2693</span>&#160; <span class="comment">// FIXME it should be safe to remove this try/catch. Investigate codepaths.</span></div>
<div class="line"><a name="l02694"></a><span class="lineno"> 2694</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l02695"></a><span class="lineno"> 2695</span>&#160; {</div>
<div class="line"><a name="l02696"></a><span class="lineno"> 2696</span>&#160; <span class="keywordflow">if</span> (app_.getOPs().recvValidation(val, <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/to_string.html">std::to_string</a>(<span class="keywordtype">id</span>())) ||</div>
<div class="line"><a name="l02697"></a><span class="lineno"> 2697</span>&#160; cluster())</div>
<div class="line"><a name="l02698"></a><span class="lineno"> 2698</span>&#160; {</div>
@@ -3196,7 +3196,7 @@ $(function() {
<div class="line"><a name="l03127"></a><span class="lineno"> 3127</span>&#160; <span class="keywordflow">if</span> (haveItem)</div>
<div class="line"><a name="l03128"></a><span class="lineno"> 3128</span>&#160; score += spHaveItem;</div>
<div class="line"><a name="l03129"></a><span class="lineno"> 3129</span>&#160; </div>
<div class="line"><a name="l03130"></a><span class="lineno"> 3130</span>&#160; boost::optional&lt;std::chrono::milliseconds&gt; latency;</div>
<div class="line"><a name="l03130"></a><span class="lineno"> 3130</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;std::chrono::milliseconds&gt;</a> latency;</div>
<div class="line"><a name="l03131"></a><span class="lineno"> 3131</span>&#160; {</div>
<div class="line"><a name="l03132"></a><span class="lineno"> 3132</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> sl(recentLock_);</div>
<div class="line"><a name="l03133"></a><span class="lineno"> 3133</span>&#160; latency = latency_;</div>
@@ -3270,6 +3270,7 @@ $(function() {
<div class="line"><a name="l03201"></a><span class="lineno"> 3201</span>&#160;} <span class="comment">// namespace ripple</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassripple_1_1PublicKey_html_a46e654e5021f7a037dbacd14db86fc5e"><div class="ttname"><a href="classripple_1_1PublicKey.html#a46e654e5021f7a037dbacd14db86fc5e">ripple::PublicKey::data</a></div><div class="ttdeci">std::uint8_t const * data() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="PublicKey_8h_source.html#l00081">PublicKey.h:81</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_a53e1dcd04d1a1c6576b913ae95fc37e3"><div class="ttname"><a href="classripple_1_1PeerImp.html#a53e1dcd04d1a1c6576b913ae95fc37e3">ripple::PeerImp::latency_</a></div><div class="ttdeci">std::optional&lt; std::chrono::milliseconds &gt; latency_</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00117">PeerImp.h:117</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_afad1d4fd948d26f3880b5b392bc6be5e"><div class="ttname"><a href="classripple_1_1PeerImp.html#afad1d4fd948d26f3880b5b392bc6be5e">ripple::PeerImp::ledgerRange</a></div><div class="ttdeci">void ledgerRange(std::uint32_t &amp;minSeq, std::uint32_t &amp;maxSeq) const override</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8cpp_source.html#l00478">PeerImp.cpp:478</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_a0c41a6f0980877701514318cd388f6f0"><div class="ttname"><a href="classripple_1_1PeerImp.html#a0c41a6f0980877701514318cd388f6f0">ripple::PeerImp::uptime</a></div><div class="ttdeci">clock_type::duration uptime() const</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00331">PeerImp.h:331</a></div></div>
<div class="ttc" id="anamespaceripple_1_1Resource_html_ae8affe62398aaca63fca0f78f22b8171"><div class="ttname"><a href="namespaceripple_1_1Resource.html#ae8affe62398aaca63fca0f78f22b8171">ripple::Resource::feeInvalidRequest</a></div><div class="ttdeci">const Charge feeInvalidRequest</div><div class="ttdoc">Schedule of fees charged for imposing load on the server.</div></div>
@@ -3300,7 +3301,6 @@ $(function() {
<div class="ttc" id="aclassripple_1_1PeerImp_html_a457d11b1db6ab6e7d0b138d59f6fcc3d"><div class="ttname"><a href="classripple_1_1PeerImp.html#a457d11b1db6ab6e7d0b138d59f6fcc3d">ripple::PeerImp::hasTxSet</a></div><div class="ttdeci">bool hasTxSet(uint256 const &amp;hash) const override</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8cpp_source.html#l00497">PeerImp.cpp:497</a></div></div>
<div class="ttc" id="anamespaceripple_html_a984ddd646f1e1a5032a9a17f96c6fc55"><div class="ttname"><a href="namespaceripple.html#a984ddd646f1e1a5032a9a17f96c6fc55">ripple::calcNodeID</a></div><div class="ttdeci">NodeID calcNodeID(PublicKey const &amp;pk)</div><div class="ttdoc">Calculate the 160-bit node ID from a node public key.</div><div class="ttdef"><b>Definition:</b> <a href="PublicKey_8cpp_source.html#l00299">PublicKey.cpp:299</a></div></div>
<div class="ttc" id="aclassbeast_1_1Journal_html_abbe082bd27ca0f1d1365af2824e4f85b"><div class="ttname"><a href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">beast::Journal::trace</a></div><div class="ttdeci">Stream trace() const</div><div class="ttdoc">Severity stream access functions.</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00309">Journal.h:309</a></div></div>
<div class="ttc" id="anamespaceripple_html_abe1502195233c7375f3465f17c7610e4"><div class="ttname"><a href="namespaceripple.html#abe1502195233c7375f3465f17c7610e4">ripple::publicKeyType</a></div><div class="ttdeci">boost::optional&lt; KeyType &gt; publicKeyType(Slice const &amp;slice)</div><div class="ttdoc">Returns the type of public key.</div><div class="ttdef"><b>Definition:</b> <a href="PublicKey_8cpp_source.html#l00203">PublicKey.cpp:203</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_aef0a014fd8791fb1e3d47b783e491c1b"><div class="ttname"><a href="classripple_1_1PeerImp.html#aef0a014fd8791fb1e3d47b783e491c1b">ripple::PeerImp::strand_</a></div><div class="ttdeci">boost::asio::strand&lt; boost::asio::executor &gt; strand_</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00084">PeerImp.h:84</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_a5179829767fd9651abd0c8e66ee27560"><div class="ttname"><a href="classripple_1_1PeerImp.html#a5179829767fd9651abd0c8e66ee27560">ripple::PeerImp::recentLedgers_</a></div><div class="ttdeci">boost::circular_buffer&lt; uint256 &gt; recentLedgers_</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00114">PeerImp.h:114</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_ab3d9977d9b0a92e1015928335a3b91fb"><div class="ttname"><a href="classripple_1_1PeerImp.html#ab3d9977d9b0a92e1015928335a3b91fb">ripple::PeerImp::ledgerReplayEnabled_</a></div><div class="ttdeci">bool ledgerReplayEnabled_</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00176">PeerImp.h:176</a></div></div>
@@ -3308,15 +3308,16 @@ $(function() {
<div class="ttc" id="aclassripple_1_1PeerImp_html_ad1046b6b5845a0bd2a25d545dce6c489"><div class="ttname"><a href="classripple_1_1PeerImp.html#ad1046b6b5845a0bd2a25d545dce6c489">ripple::PeerImp::request_</a></div><div class="ttdeci">http_request_type request_</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00158">PeerImp.h:158</a></div></div>
<div class="ttc" id="astructripple_1_1Resource_1_1Gossip_html"><div class="ttname"><a href="structripple_1_1Resource_1_1Gossip.html">ripple::Resource::Gossip</a></div><div class="ttdoc">Data format for exchanging consumption information across peers.</div><div class="ttdef"><b>Definition:</b> <a href="Gossip_8h_source.html#l00029">Gossip.h:29</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_ad4a5abf9fb2e30f9dd2d621861eebb8a"><div class="ttname"><a href="classripple_1_1PeerImp.html#ad4a5abf9fb2e30f9dd2d621861eebb8a">ripple::PeerImp::~PeerImp</a></div><div class="ttdeci">virtual ~PeerImp()</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8cpp_source.html#l00128">PeerImp.cpp:128</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_a4b02c057151f01313bd051904b4948c7"><div class="ttname"><a href="classripple_1_1PeerImp.html#a4b02c057151f01313bd051904b4948c7">ripple::PeerImp::getShardIndexes</a></div><div class="ttdeci">boost::optional&lt; RangeSet&lt; std::uint32_t &gt; &gt; getShardIndexes() const</div><div class="ttdoc">Return a range set of known shard indexes from this peer.</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8cpp_source.html#l00579">PeerImp.cpp:579</a></div></div>
<div class="ttc" id="aclassripple_1_1Serializer_html_a0b9f56cab2021e47d45e4cd287f4b425"><div class="ttname"><a href="classripple_1_1Serializer.html#a0b9f56cab2021e47d45e4cd287f4b425">ripple::Serializer::erase</a></div><div class="ttdeci">void erase()</div><div class="ttdef"><b>Definition:</b> <a href="Serializer_8h_source.html#l00207">Serializer.h:207</a></div></div>
<div class="ttc" id="aclassripple_1_1Serializer_html_a0b9f56cab2021e47d45e4cd287f4b425"><div class="ttname"><a href="classripple_1_1Serializer.html#a0b9f56cab2021e47d45e4cd287f4b425">ripple::Serializer::erase</a></div><div class="ttdeci">void erase()</div><div class="ttdef"><b>Definition:</b> <a href="Serializer_8h_source.html#l00209">Serializer.h:209</a></div></div>
<div class="ttc" id="aclassbeast_1_1IP_1_1Endpoint_html_adcbd20a3d8d1d3f7c6a3ae541f519fb4"><div class="ttname"><a href="classbeast_1_1IP_1_1Endpoint.html#adcbd20a3d8d1d3f7c6a3ae541f519fb4">beast::IP::Endpoint::to_string</a></div><div class="ttdeci">std::string to_string() const</div><div class="ttdoc">Returns a string representing the endpoint.</div><div class="ttdef"><b>Definition:</b> <a href="IPEndpoint_8cpp_source.html#l00054">IPEndpoint.cpp:54</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_a1e00696f4c17b9135b687c1cd395673d"><div class="ttname"><a href="classripple_1_1PeerImp.html#a1e00696f4c17b9135b687c1cd395673d">ripple::PeerImp::getShardIndexes</a></div><div class="ttdeci">std::optional&lt; RangeSet&lt; std::uint32_t &gt; &gt; getShardIndexes() const</div><div class="ttdoc">Return a range set of known shard indexes from this peer.</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8cpp_source.html#l00579">PeerImp.cpp:579</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="aclassripple_1_1PeerImp_html_a769cf63a57812604843f4d00ab124bf0"><div class="ttname"><a href="classripple_1_1PeerImp.html#a769cf63a57812604843f4d00ab124bf0">ripple::PeerImp::doAccept</a></div><div class="ttdeci">void doAccept()</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8cpp_source.html#l00731">PeerImp.cpp:731</a></div></div>
<div class="ttc" id="areserve_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/reserve.html">std::vector::reserve</a></div><div class="ttdeci">T reserve(T... args)</div></div>
<div class="ttc" id="aclassripple_1_1HashRouter_html_a2a2ef462b7dc7e845d7c0fa55cdb3665"><div class="ttname"><a href="classripple_1_1HashRouter.html#a2a2ef462b7dc7e845d7c0fa55cdb3665">ripple::HashRouter::shouldProcess</a></div><div class="ttdeci">bool shouldProcess(uint256 const &amp;key, PeerShortID peer, int &amp;flags, std::chrono::seconds tx_interval)</div><div class="ttdef"><b>Definition:</b> <a href="HashRouter_8cpp_source.html#l00078">HashRouter.cpp:78</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_ae59a941ecf3ae81417f3a8fdd2ae6629"><div class="ttname"><a href="classripple_1_1PeerImp.html#ae59a941ecf3ae81417f3a8fdd2ae6629">ripple::PeerImp::getPeerShardInfo</a></div><div class="ttdeci">std::optional&lt; hash_map&lt; PublicKey, ShardInfo &gt; &gt; getPeerShardInfo() const</div><div class="ttdoc">Return any known shard info from this peer and its sub peers.</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8cpp_source.html#l00589">PeerImp.cpp:589</a></div></div>
<div class="ttc" id="anamespaceripple_html_ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45"><div class="ttname"><a href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45">ripple::HashPrefix::manifest</a></div><div class="ttdeci">@ manifest</div><div class="ttdoc">Manifest.</div></div>
<div class="ttc" id="anamespaceripple_html_ace117d2fc5a43543b6a33fff822d4854"><div class="ttname"><a href="namespaceripple.html#ace117d2fc5a43543b6a33fff822d4854">ripple::addRaw</a></div><div class="ttdeci">void addRaw(LedgerInfo const &amp;info, Serializer &amp;s, bool includeHash)</div><div class="ttdef"><b>Definition:</b> <a href="View_8cpp_source.html#l00043">View.cpp:43</a></div></div>
<div class="ttc" id="anamespaceripple_html_ace117d2fc5a43543b6a33fff822d4854"><div class="ttname"><a href="namespaceripple.html#ace117d2fc5a43543b6a33fff822d4854">ripple::addRaw</a></div><div class="ttdeci">void addRaw(LedgerInfo const &amp;info, Serializer &amp;s, bool includeHash)</div><div class="ttdef"><b>Definition:</b> <a href="View_8cpp_source.html#l00044">View.cpp:44</a></div></div>
<div class="ttc" id="anamespaceJson_html_ab1488c31a37eea2d37f36a0961372572"><div class="ttname"><a href="namespaceJson.html#ab1488c31a37eea2d37f36a0961372572">Json::UInt</a></div><div class="ttdeci">unsigned int UInt</div><div class="ttdef"><b>Definition:</b> <a href="json__forwards_8h_source.html#l00027">json_forwards.h:27</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_afc7c7c76ccd8f49f2cdaf96fb5980b56"><div class="ttname"><a href="classripple_1_1PeerImp.html#afc7c7c76ccd8f49f2cdaf96fb5980b56">ripple::PeerImp::doProtocolStart</a></div><div class="ttdeci">void doProtocolStart()</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8cpp_source.html#l00814">PeerImp.cpp:814</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>
@@ -3331,7 +3332,7 @@ $(function() {
<div class="ttc" id="anamespaceripple_html_a3b423ad1ba6341f945c08c13fe141150a955e673a299bbf8322d01b7b5e88be4e"><div class="ttname"><a href="namespaceripple.html#a3b423ad1ba6341f945c08c13fe141150a955e673a299bbf8322d01b7b5e88be4e">ripple::ProtocolFeature::LedgerReplay</a></div><div class="ttdeci">@ LedgerReplay</div></div>
<div class="ttc" id="aclassripple_1_1OverlayImpl_html_ae3e793fadc871cc98c8c45bd8f77b29a"><div class="ttname"><a href="classripple_1_1OverlayImpl.html#ae3e793fadc871cc98c8c45bd8f77b29a">ripple::OverlayImpl::incPeerDisconnectCharges</a></div><div class="ttdeci">void incPeerDisconnectCharges() override</div><div class="ttdef"><b>Definition:</b> <a href="OverlayImpl_8h_source.html#l00357">OverlayImpl.h:357</a></div></div>
<div class="ttc" id="anamespaceripple_html_a08a13b62b18272366f788632359e8793"><div class="ttname"><a href="namespaceripple.html#a08a13b62b18272366f788632359e8793">ripple::toBase58</a></div><div class="ttdeci">std::string toBase58(AccountID const &amp;v)</div><div class="ttdoc">Convert AccountID to base58 checked string.</div><div class="ttdef"><b>Definition:</b> <a href="AccountID_8cpp_source.html#l00029">AccountID.cpp:29</a></div></div>
<div class="ttc" id="aclassbeast_1_1IP_1_1Endpoint_html_a63fa66c4eb0d68359a0ff642891493c5"><div class="ttname"><a href="classbeast_1_1IP_1_1Endpoint.html#a63fa66c4eb0d68359a0ff642891493c5">beast::IP::Endpoint::address</a></div><div class="ttdeci">Address const &amp; address() const</div><div class="ttdoc">Returns the address portion of this endpoint.</div><div class="ttdef"><b>Definition:</b> <a href="IPEndpoint_8h_source.html#l00077">IPEndpoint.h:77</a></div></div>
<div class="ttc" id="aclassbeast_1_1IP_1_1Endpoint_html_a63fa66c4eb0d68359a0ff642891493c5"><div class="ttname"><a href="classbeast_1_1IP_1_1Endpoint.html#a63fa66c4eb0d68359a0ff642891493c5">beast::IP::Endpoint::address</a></div><div class="ttdeci">Address const &amp; address() const</div><div class="ttdoc">Returns the address portion of this endpoint.</div><div class="ttdef"><b>Definition:</b> <a href="IPEndpoint_8h_source.html#l00076">IPEndpoint.h:76</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_a9530806aa9810287da118287fb87018d"><div class="ttname"><a href="classripple_1_1PeerImp.html#a9530806aa9810287da118287fb87018d">ripple::PeerImp::getVersion</a></div><div class="ttdeci">std::string getVersion() const</div><div class="ttdoc">Return the version of rippled that the peer is running, if reported.</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8cpp_source.html#l00318">PeerImp.cpp:318</a></div></div>
<div class="ttc" id="abasic_stringstream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_stringstream.html">std::stringstream</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="aclassbeast_1_1Journal_html_ad8fefe3e8ad583e1ed1bf02094ac3d8f"><div class="ttname"><a href="classbeast_1_1Journal.html#ad8fefe3e8ad583e1ed1bf02094ac3d8f">beast::Journal::warn</a></div><div class="ttdeci">Stream warn() const</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00327">Journal.h:327</a></div></div>
@@ -3345,11 +3346,11 @@ $(function() {
<div class="ttc" id="aclassripple_1_1PeerImp_html_a4903f4a4aeda23c806152c6a4cea114b"><div class="ttname"><a href="classripple_1_1PeerImp.html#a4903f4a4aeda23c806152c6a4cea114b">ripple::PeerImp::onMessageUnknown</a></div><div class="ttdeci">void onMessageUnknown(std::uint16_t type)</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8cpp_source.html#l00967">PeerImp.cpp:967</a></div></div>
<div class="ttc" id="anamespaceripple_html_a84ef8b46b58f794955c6b2b108aa5dba"><div class="ttname"><a href="namespaceripple.html#a84ef8b46b58f794955c6b2b108aa5dba">ripple::from_string</a></div><div class="ttdeci">bool from_string(RangeSet&lt; T &gt; &amp;rs, std::string const &amp;s)</div><div class="ttdoc">Convert the given styled string to a RangeSet.</div><div class="ttdef"><b>Definition:</b> <a href="RangeSet_8h_source.html#l00126">RangeSet.h:126</a></div></div>
<div class="ttc" id="anamespaceripple_html_a7241d07322a0d8fa2e2effedd739a90f"><div class="ttname"><a href="namespaceripple.html#a7241d07322a0d8fa2e2effedd739a90f">ripple::makeSharedValue</a></div><div class="ttdeci">std::optional&lt; uint256 &gt; makeSharedValue(stream_type &amp;ssl, beast::Journal journal)</div><div class="ttdoc">Computes a shared value based on the SSL connection state.</div><div class="ttdef"><b>Definition:</b> <a href="Handshake_8cpp_source.html#l00139">Handshake.cpp:139</a></div></div>
<div class="ttc" id="aclassripple_1_1Cluster_html_adffcdc10e28e4fa6f3e9b9c5f4bb3afa"><div class="ttname"><a href="classripple_1_1Cluster.html#adffcdc10e28e4fa6f3e9b9c5f4bb3afa">ripple::Cluster::member</a></div><div class="ttdeci">std::optional&lt; std::string &gt; member(PublicKey const &amp;node) const</div><div class="ttdoc">Determines whether a node belongs in the cluster.</div><div class="ttdef"><b>Definition:</b> <a href="Cluster_8cpp_source.html#l00039">Cluster.cpp:39</a></div></div>
<div class="ttc" id="aclassripple_1_1JobQueue_html_af5e34187d55aa58e551dc196aaf1ec25"><div class="ttname"><a href="classripple_1_1JobQueue.html#af5e34187d55aa58e551dc196aaf1ec25">ripple::JobQueue::addJob</a></div><div class="ttdeci">bool addJob(JobType type, std::string const &amp;name, JobHandler &amp;&amp;jobHandler)</div><div class="ttdoc">Adds a job to the JobQueue.</div><div class="ttdef"><b>Definition:</b> <a href="JobQueue_8h_source.html#l00166">JobQueue.h:166</a></div></div>
<div class="ttc" id="anamespaceripple_html_ac70521ab6e1277870a9e400e7a08e937"><div class="ttname"><a href="namespaceripple.html#ac70521ab6e1277870a9e400e7a08e937">ripple::stopwatch</a></div><div class="ttdeci">Stopwatch &amp; stopwatch()</div><div class="ttdoc">Returns an instance of a wall clock.</div><div class="ttdef"><b>Definition:</b> <a href="chrono_8h_source.html#l00086">chrono.h:86</a></div></div>
<div class="ttc" id="anamespaceripple_html_ac70521ab6e1277870a9e400e7a08e937"><div class="ttname"><a href="namespaceripple.html#ac70521ab6e1277870a9e400e7a08e937">ripple::stopwatch</a></div><div class="ttdeci">Stopwatch &amp; stopwatch()</div><div class="ttdoc">Returns an instance of a wall clock.</div><div class="ttdef"><b>Definition:</b> <a href="chrono_8h_source.html#l00088">chrono.h:88</a></div></div>
<div class="ttc" id="asetfill_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/setfill.html">std::setfill</a></div><div class="ttdeci">T setfill(T... args)</div></div>
<div class="ttc" id="astructripple_1_1PeerImp_1_1ShardInfo_html_a71d90f4af93624dec03d649abba6ef7d"><div class="ttname"><a href="structripple_1_1PeerImp_1_1ShardInfo.html#a71d90f4af93624dec03d649abba6ef7d">ripple::PeerImp::ShardInfo::endpoint</a></div><div class="ttdeci">beast::IP::Endpoint endpoint</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00059">PeerImp.h:59</a></div></div>
<div class="ttc" id="anamespaceripple_html_a96888695e8d79474e080c334f149e30a"><div class="ttname"><a href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">ripple::to_string</a></div><div class="ttdeci">std::string to_string(ListDisposition disposition)</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00045">ValidatorList.cpp:45</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_af1e8a55ca5b1179bff11289830b6c30c"><div class="ttname"><a href="classripple_1_1PeerImp.html#af1e8a55ca5b1179bff11289830b6c30c">ripple::PeerImp::journal_</a></div><div class="ttdeci">const beast::Journal journal_</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00079">PeerImp.h:79</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_aa349eb9f7a80300fcfc951ed514cb658"><div class="ttname"><a href="classripple_1_1PeerImp.html#aa349eb9f7a80300fcfc951ed514cb658">ripple::PeerImp::send</a></div><div class="ttdeci">void send(std::shared_ptr&lt; Message &gt; const &amp;m) override</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8cpp_source.html#l00235">PeerImp.cpp:235</a></div></div>
<div class="ttc" id="aclassripple_1_1Application_html_a280004d4cce56d8f1ec4664950aa58d4"><div class="ttname"><a href="classripple_1_1Application.html#a280004d4cce56d8f1ec4664950aa58d4">ripple::Application::timeKeeper</a></div><div class="ttdeci">virtual TimeKeeper &amp; timeKeeper()=0</div></div>
@@ -3365,13 +3366,14 @@ $(function() {
<div class="ttc" id="aclassripple_1_1PeerImp_html_a98c400cc69a072ae5dd425113babc0fb"><div class="ttname"><a href="classripple_1_1PeerImp.html#a98c400cc69a072ae5dd425113babc0fb">ripple::PeerImp::previousLedgerHash_</a></div><div class="ttdeci">uint256 previousLedgerHash_</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00112">PeerImp.h:112</a></div></div>
<div class="ttc" id="afront_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/front.html">std::vector::front</a></div><div class="ttdeci">T front(T... args)</div></div>
<div class="ttc" id="anamespaceripple_html_af8096ae8c38e0d57b54d62311a0ae0e3"><div class="ttname"><a href="namespaceripple.html#af8096ae8c38e0d57b54d62311a0ae0e3">ripple::FEATURE_VPRR</a></div><div class="ttdeci">static constexpr char FEATURE_VPRR[]</div><div class="ttdef"><b>Definition:</b> <a href="Handshake_8h_source.html#l00137">Handshake.h:137</a></div></div>
<div class="ttc" id="areset_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/optional/reset.html">std::optional::reset</a></div><div class="ttdeci">T reset(T... args)</div></div>
<div class="ttc" id="aalgorithm_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/algorithm.html">algorithm</a></div></div>
<div class="ttc" id="aclassripple_1_1Application_html_a7c963aa5c47180b24897ff6b5622e5bc"><div class="ttname"><a href="classripple_1_1Application.html#a7c963aa5c47180b24897ff6b5622e5bc">ripple::Application::getOPs</a></div><div class="ttdeci">virtual NetworkOPs &amp; getOPs()=0</div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_a10ceb4899e1d4cc4f27a9af79e82e880"><div class="ttname"><a href="classripple_1_1PeerImp.html#a10ceb4899e1d4cc4f27a9af79e82e880">ripple::PeerImp::name_</a></div><div class="ttdeci">std::string name_</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00104">PeerImp.h:104</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerFinder_1_1Manager_html_a0534c3b8a8b06093ca9aacc03d3e4def"><div class="ttname"><a href="classripple_1_1PeerFinder_1_1Manager.html#a0534c3b8a8b06093ca9aacc03d3e4def">ripple::PeerFinder::Manager::on_endpoints</a></div><div class="ttdeci">virtual void on_endpoints(std::shared_ptr&lt; Slot &gt; const &amp;slot, Endpoints const &amp;endpoints)=0</div><div class="ttdoc">Called when mtENDPOINTS is received.</div></div>
<div class="ttc" id="anamespaceripple_html_ab5fadc2b2814a10d35c00c0a8241fbe7"><div class="ttname"><a href="namespaceripple.html#ab5fadc2b2814a10d35c00c0a8241fbe7">ripple::forceValidity</a></div><div class="ttdeci">void forceValidity(HashRouter &amp;router, uint256 const &amp;txid, Validity validity)</div><div class="ttdoc">Sets the validity of a given transaction in the cache.</div><div class="ttdef"><b>Definition:</b> <a href="apply_8cpp_source.html#l00089">apply.cpp:89</a></div></div>
<div class="ttc" id="aclassripple_1_1Application_html_a426bdbb87f6dc2082cf6f418526901cb"><div class="ttname"><a href="classripple_1_1Application.html#a426bdbb87f6dc2082cf6f418526901cb">ripple::Application::getFeeTrack</a></div><div class="ttdeci">virtual LoadFeeTrack &amp; getFeeTrack()=0</div></div>
<div class="ttc" id="aclassripple_1_1base__uint_html_adbe18ef92b677603e8539b3a77c064b0"><div class="ttname"><a href="classripple_1_1base__uint.html#adbe18ef92b677603e8539b3a77c064b0">ripple::base_uint&lt; 256 &gt;::size</a></div><div class="ttdeci">constexpr static std::size_t size()</div><div class="ttdef"><b>Definition:</b> <a href="base__uint_8h_source.html#l00426">base_uint.h:426</a></div></div>
<div class="ttc" id="aclassripple_1_1base__uint_html_adbe18ef92b677603e8539b3a77c064b0"><div class="ttname"><a href="classripple_1_1base__uint.html#adbe18ef92b677603e8539b3a77c064b0">ripple::base_uint&lt; 256 &gt;::size</a></div><div class="ttdeci">constexpr static std::size_t size()</div><div class="ttdef"><b>Definition:</b> <a href="base__uint_8h_source.html#l00495">base_uint.h:495</a></div></div>
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a023f425a3145224e0101f0ef9db7c917"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a023f425a3145224e0101f0ef9db7c917">ripple::ValidatorList::sendValidatorList</a></div><div class="ttdeci">static void sendValidatorList(Peer &amp;peer, std::uint64_t peerSequence, PublicKey const &amp;publisherKey, std::size_t maxSequence, std::uint32_t rawVersion, std::string const &amp;rawManifest, std::map&lt; std::size_t, ValidatorBlobInfo &gt; const &amp;blobInfos, HashRouter &amp;hashRouter, beast::Journal j)</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00751">ValidatorList.cpp:751</a></div></div>
<div class="ttc" id="anamespaceripple_html_afdd3affbc1d310613816bdcb0901a897"><div class="ttname"><a href="namespaceripple.html#afdd3affbc1d310613816bdcb0901a897">ripple::getPeerWithLedger</a></div><div class="ttdeci">static std::shared_ptr&lt; PeerImp &gt; getPeerWithLedger(OverlayImpl &amp;ov, uint256 const &amp;ledgerHash, LedgerIndex ledger, PeerImp const *skip)</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8cpp_source.html#l02752">PeerImp.cpp:2752</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_af30b1a251f7a0a3546bfbb645130b713"><div class="ttname"><a href="classripple_1_1PeerImp.html#af30b1a251f7a0a3546bfbb645130b713">ripple::PeerImp::publicKey_</a></div><div class="ttdeci">const PublicKey publicKey_</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00103">PeerImp.h:103</a></div></div>
@@ -3381,7 +3383,7 @@ $(function() {
<div class="ttc" id="aclassripple_1_1JobQueue_html_ab9dfcd27fee120a72875872a68f12ffb"><div class="ttname"><a href="classripple_1_1JobQueue.html#ab9dfcd27fee120a72875872a68f12ffb">ripple::JobQueue::getJobCount</a></div><div class="ttdeci">int getJobCount(JobType t) const</div><div class="ttdoc">Jobs waiting at this priority.</div><div class="ttdef"><b>Definition:</b> <a href="JobQueue_8cpp_source.html#l00123">JobQueue.cpp:123</a></div></div>
<div class="ttc" id="atie_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/tuple/tie.html">std::tie</a></div><div class="ttdeci">T tie(T... args)</div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_aed11b723277f12570dc80a8f14b3d1d5"><div class="ttname"><a href="classripple_1_1PeerImp.html#aed11b723277f12570dc80a8f14b3d1d5">ripple::PeerImp::remote_address_</a></div><div class="ttdeci">const beast::IP::Endpoint remote_address_</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00089">PeerImp.h:89</a></div></div>
<div class="ttc" id="aclassripple_1_1Cluster_html_a0c718ec2f55e267d3b4f484fcac27717"><div class="ttname"><a href="classripple_1_1Cluster.html#a0c718ec2f55e267d3b4f484fcac27717">ripple::Cluster::member</a></div><div class="ttdeci">boost::optional&lt; std::string &gt; member(PublicKey const &amp;node) const</div><div class="ttdoc">Determines whether a node belongs in the cluster.</div><div class="ttdef"><b>Definition:</b> <a href="Cluster_8cpp_source.html#l00039">Cluster.cpp:39</a></div></div>
<div class="ttc" id="anamespaceripple_html_adc1f8a2c9b47d7c08e671ad3473e9d3a"><div class="ttname"><a href="namespaceripple.html#adc1f8a2c9b47d7c08e671ad3473e9d3a">ripple::publicKeyType</a></div><div class="ttdeci">std::optional&lt; KeyType &gt; publicKeyType(Slice const &amp;slice)</div><div class="ttdoc">Returns the type of public key.</div><div class="ttdef"><b>Definition:</b> <a href="PublicKey_8cpp_source.html#l00203">PublicKey.cpp:203</a></div></div>
<div class="ttc" id="anamespaceripple_html_ae0f54f8ce649d639bf3e2b295347e17aac04ecc4122a37cf832f12c0dd02a27d2"><div class="ttname"><a href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17aac04ecc4122a37cf832f12c0dd02a27d2">ripple::jtTXN_DATA</a></div><div class="ttdeci">@ jtTXN_DATA</div><div class="ttdef"><b>Definition:</b> <a href="Job_8h_source.html#l00057">Job.h:57</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerFinder_1_1Manager_html_a95d15486aa5e71cdd042f7f67dabf797"><div class="ttname"><a href="classripple_1_1PeerFinder_1_1Manager.html#a95d15486aa5e71cdd042f7f67dabf797">ripple::PeerFinder::Manager::on_closed</a></div><div class="ttdeci">virtual void on_closed(std::shared_ptr&lt; Slot &gt; const &amp;slot)=0</div><div class="ttdoc">Called when the slot is closed.</div></div>
<div class="ttc" id="aclassripple_1_1OverlayImpl_html_af79b454c807a1a1ed55ddfb56ba9cf09"><div class="ttname"><a href="classripple_1_1OverlayImpl.html#af79b454c807a1a1ed55ddfb56ba9cf09">ripple::OverlayImpl::peerFinder</a></div><div class="ttdeci">PeerFinder::Manager &amp; peerFinder()</div><div class="ttdef"><b>Definition:</b> <a href="OverlayImpl_8h_source.html#l00159">OverlayImpl.h:159</a></div></div>
@@ -3405,14 +3407,13 @@ $(function() {
<div class="ttc" id="anamespaceripple_1_1Resource_html_a0051d327f5a6419ffb9b4a2dac7a81ed"><div class="ttname"><a href="namespaceripple_1_1Resource.html#a0051d327f5a6419ffb9b4a2dac7a81ed">ripple::Resource::feeBadData</a></div><div class="ttdeci">const Charge feeBadData</div></div>
<div class="ttc" id="aclassripple_1_1PublicKey_html_a663437215503b159ed33b1664e4213a3"><div class="ttname"><a href="classripple_1_1PublicKey.html#a663437215503b159ed33b1664e4213a3">ripple::PublicKey::size</a></div><div class="ttdeci">std::size_t size() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="PublicKey_8h_source.html#l00087">PublicKey.h:87</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_a0d4f291740db94ec816fc64a222323a6"><div class="ttname"><a href="classripple_1_1PeerImp.html#a0d4f291740db94ec816fc64a222323a6">ripple::PeerImp::shardInfo_</a></div><div class="ttdeci">hash_map&lt; PublicKey, ShardInfo &gt; shardInfo_</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00170">PeerImp.h:170</a></div></div>
<div class="ttc" id="aclassripple_1_1Serializer_html_ac7156012b6dd5a536cf030b48109894c"><div class="ttname"><a href="classripple_1_1Serializer.html#ac7156012b6dd5a536cf030b48109894c">ripple::Serializer::getDataPtr</a></div><div class="ttdeci">const void * getDataPtr() const</div><div class="ttdef"><b>Definition:</b> <a href="Serializer_8h_source.html#l00187">Serializer.h:187</a></div></div>
<div class="ttc" id="aclassripple_1_1Serializer_html_ac7156012b6dd5a536cf030b48109894c"><div class="ttname"><a href="classripple_1_1Serializer.html#ac7156012b6dd5a536cf030b48109894c">ripple::Serializer::getDataPtr</a></div><div class="ttdeci">const void * getDataPtr() const</div><div class="ttdef"><b>Definition:</b> <a href="Serializer_8h_source.html#l00189">Serializer.h:189</a></div></div>
<div class="ttc" id="aclassripple_1_1Resource_1_1Manager_html_aa932836afb30bf1db023222eff401247"><div class="ttname"><a href="classripple_1_1Resource_1_1Manager.html#aa932836afb30bf1db023222eff401247">ripple::Resource::Manager::importConsumers</a></div><div class="ttdeci">virtual void importConsumers(std::string const &amp;origin, Gossip const &amp;gossip)=0</div><div class="ttdoc">Import packaged consumer information.</div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_a1dd0d9f359b78affdc97507b1dd70702"><div class="ttname"><a href="classripple_1_1PeerImp.html#a1dd0d9f359b78affdc97507b1dd70702">ripple::PeerImp::closedLedgerHash_</a></div><div class="ttdeci">uint256 closedLedgerHash_</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00111">PeerImp.h:111</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_a028f026ae616dcc1fb2b78665c5c42f3"><div class="ttname"><a href="classripple_1_1PeerImp.html#a028f026ae616dcc1fb2b78665c5c42f3">ripple::PeerImp::lastPingSeq_</a></div><div class="ttdeci">boost::optional&lt; std::uint32_t &gt; lastPingSeq_</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00118">PeerImp.h:118</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_a188c37583421faf7f1fa2bea12fe7180"><div class="ttname"><a href="classripple_1_1PeerImp.html#a188c37583421faf7f1fa2bea12fe7180">ripple::PeerImp::detaching_</a></div><div class="ttdeci">bool detaching_</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00101">PeerImp.h:101</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_a081ce86dc210e524fec85f035ea55427"><div class="ttname"><a href="classripple_1_1PeerImp.html#a081ce86dc210e524fec85f035ea55427">ripple::PeerImp::onMessageEnd</a></div><div class="ttdeci">void onMessageEnd(std::uint16_t type, std::shared_ptr&lt;::google::protobuf::Message &gt; const &amp;m)</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8cpp_source.html#l00990">PeerImp.cpp:990</a></div></div>
<div class="ttc" id="aclassripple_1_1Application_html_aca56b7c63030174e59720ab51d739422"><div class="ttname"><a href="classripple_1_1Application.html#aca56b7c63030174e59720ab51d739422">ripple::Application::config</a></div><div class="ttdeci">virtual Config &amp; config()=0</div></div>
<div class="ttc" id="anamespaceripple_html_a38d1749cd010f88da471b4183b2dfe52"><div class="ttname"><a href="namespaceripple.html#a38d1749cd010f88da471b4183b2dfe52">ripple::isCurrent</a></div><div class="ttdeci">bool isCurrent(ValidationParms const &amp;p, NetClock::time_point now, NetClock::time_point signTime, NetClock::time_point seenTime)</div><div class="ttdoc">Whether a validation is still current.</div><div class="ttdef"><b>Definition:</b> <a href="Validations_8h_source.html#l00145">Validations.h:145</a></div></div>
<div class="ttc" id="anamespaceripple_html_a38d1749cd010f88da471b4183b2dfe52"><div class="ttname"><a href="namespaceripple.html#a38d1749cd010f88da471b4183b2dfe52">ripple::isCurrent</a></div><div class="ttdeci">bool isCurrent(ValidationParms const &amp;p, NetClock::time_point now, NetClock::time_point signTime, NetClock::time_point seenTime)</div><div class="ttdoc">Whether a validation is still current.</div><div class="ttdef"><b>Definition:</b> <a href="Validations_8h_source.html#l00146">Validations.h:146</a></div></div>
<div class="ttc" id="aclassbeast_1_1Journal_html_a5929f5a6c995e2c2c5aada222ee470c4"><div class="ttname"><a href="classbeast_1_1Journal.html#a5929f5a6c995e2c2c5aada222ee470c4">beast::Journal::active</a></div><div class="ttdeci">bool active(Severity level) const</div><div class="ttdoc">Returns true if any message would be logged at this severity level.</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00301">Journal.h:301</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_ada4e6d052bc58424b7837b43768cf1a1"><div class="ttname"><a href="classripple_1_1PeerImp.html#ada4e6d052bc58424b7837b43768cf1a1">ripple::PeerImp::stream_</a></div><div class="ttdeci">stream_type &amp; stream_</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00083">PeerImp.h:83</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_acf6dee0e6890d0d9b338cc5e0ce8d3c3"><div class="ttname"><a href="classripple_1_1PeerImp.html#acf6dee0e6890d0d9b338cc5e0ce8d3c3">ripple::PeerImp::onWriteMessage</a></div><div class="ttdeci">void onWriteMessage(error_code ec, std::size_t bytes_transferred)</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8cpp_source.html#l00913">PeerImp.cpp:913</a></div></div>
@@ -3441,7 +3442,7 @@ $(function() {
<div class="ttc" id="aclassripple_1_1Job_html"><div class="ttname"><a href="classripple_1_1Job.html">ripple::Job</a></div><div class="ttdef"><b>Definition:</b> <a href="Job_8h_source.html#l00084">Job.h:84</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_a07c076bb0ff33256d508d55713ecaa50"><div class="ttname"><a href="classripple_1_1PeerImp.html#a07c076bb0ff33256d508d55713ecaa50">ripple::PeerImp::headers_</a></div><div class="ttdeci">boost::beast::http::fields const &amp; headers_</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00160">PeerImp.h:160</a></div></div>
<div class="ttc" id="aaccumulate_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/accumulate.html">std::accumulate</a></div><div class="ttdeci">T accumulate(T... args)</div></div>
<div class="ttc" id="aclassripple_1_1SerialIter_html"><div class="ttname"><a href="classripple_1_1SerialIter.html">ripple::SerialIter</a></div><div class="ttdef"><b>Definition:</b> <a href="Serializer_8h_source.html#l00308">Serializer.h:308</a></div></div>
<div class="ttc" id="aclassripple_1_1SerialIter_html"><div class="ttname"><a href="classripple_1_1SerialIter.html">ripple::SerialIter</a></div><div class="ttdef"><b>Definition:</b> <a href="Serializer_8h_source.html#l00310">Serializer.h:310</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_a63ebca31f6c2f54226ff7106ee40cdb1"><div class="ttname"><a href="classripple_1_1PeerImp.html#a63ebca31f6c2f54226ff7106ee40cdb1">ripple::PeerImp::metrics_</a></div><div class="ttdeci">struct ripple::PeerImp::@13 metrics_</div></div>
<div class="ttc" id="anamespaceripple_1_1NodeStore_html_a0db6f76260c2461d4ad9ba780aaba96b"><div class="ttname"><a href="namespaceripple_1_1NodeStore.html#a0db6f76260c2461d4ad9ba780aaba96b">ripple::NodeStore::seqToShardIndex</a></div><div class="ttdeci">constexpr std::uint32_t seqToShardIndex(std::uint32_t ledgerSeq, std::uint32_t ledgersPerShard=DatabaseShard::ledgersPerShardDefault)</div><div class="ttdef"><b>Definition:</b> <a href="DatabaseShard_8h_source.html#l00183">DatabaseShard.h:183</a></div></div>
<div class="ttc" id="anamespaceripple_html_ab58cf24607744c98d521c3e97aca2a53"><div class="ttname"><a href="namespaceripple.html#ab58cf24607744c98d521c3e97aca2a53">ripple::peerFeatureEnabled</a></div><div class="ttdeci">bool peerFeatureEnabled(headers const &amp;request, std::string const &amp;feature, std::string value, bool config)</div><div class="ttdoc">Check if a feature should be enabled for a peer.</div><div class="ttdef"><b>Definition:</b> <a href="Handshake_8h_source.html#l00191">Handshake.h:191</a></div></div>
@@ -3475,7 +3476,6 @@ $(function() {
<div class="ttc" id="aclassripple_1_1PeerImp_html_a19e49da48df03e4a73204bea2b268d2aadb5a93fff259ad3ff2017a64912fa156"><div class="ttname"><a href="classripple_1_1PeerImp.html#a19e49da48df03e4a73204bea2b268d2aadb5a93fff259ad3ff2017a64912fa156">ripple::PeerImp::Tracking::diverged</a></div><div class="ttdeci">@ diverged</div></div>
<div class="ttc" id="anamespaceripple_html_ae0f54f8ce649d639bf3e2b295347e17aad750b14a4d255f7800b8f33027d242ff"><div class="ttname"><a href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17aad750b14a4d255f7800b8f33027d242ff">ripple::jtPACK</a></div><div class="ttdeci">@ jtPACK</div><div class="ttdef"><b>Definition:</b> <a href="Job_8h_source.html#l00041">Job.h:41</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_a25559d6b6e8167b4071e61e04b8cbb12"><div class="ttname"><a href="classripple_1_1PeerImp.html#a25559d6b6e8167b4071e61e04b8cbb12">ripple::PeerImp::gracefulClose_</a></div><div class="ttdeci">bool gracefulClose_</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00162">PeerImp.h:162</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_adce74938d3d2b74eebba702d811bf7c7"><div class="ttname"><a href="classripple_1_1PeerImp.html#adce74938d3d2b74eebba702d811bf7c7">ripple::PeerImp::latency_</a></div><div class="ttdeci">boost::optional&lt; std::chrono::milliseconds &gt; latency_</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00117">PeerImp.h:117</a></div></div>
<div class="ttc" id="aemplace_back_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/emplace_back.html">std::vector::emplace_back</a></div><div class="ttdeci">T emplace_back(T... args)</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_1Application_html_a25c5851322f6cb3762563fd1278c6143"><div class="ttname"><a href="classripple_1_1Application.html#a25c5851322f6cb3762563fd1278c6143">ripple::Application::getNodeStore</a></div><div class="ttdeci">virtual NodeStore::Database &amp; getNodeStore()=0</div></div>
@@ -3483,12 +3483,12 @@ $(function() {
<div class="ttc" id="anamespaceripple_html_aadbdb5fdb67df35a18a57c2db051b3f5"><div class="ttname"><a href="namespaceripple.html#aadbdb5fdb67df35a18a57c2db051b3f5">ripple::send_if_not</a></div><div class="ttdeci">send_if_not_pred&lt; Predicate &gt; send_if_not(std::shared_ptr&lt; Message &gt; const &amp;m, Predicate const &amp;f)</div><div class="ttdoc">Helper function to aid in type deduction.</div><div class="ttdef"><b>Definition:</b> <a href="predicates_8h_source.html#l00107">predicates.h:107</a></div></div>
<div class="ttc" id="anamespaceprotocol_html"><div class="ttname"><a href="namespaceprotocol.html">protocol</a></div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8h_source.html#l00038">ValidatorList.h:38</a></div></div>
<div class="ttc" id="anamespaceripple_html_ae0f54f8ce649d639bf3e2b295347e17aaefed1b8b28b929c0faac87349e759506"><div class="ttname"><a href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17aaefed1b8b28b929c0faac87349e759506">ripple::jtVALIDATION_ut</a></div><div class="ttdeci">@ jtVALIDATION_ut</div><div class="ttdef"><b>Definition:</b> <a href="Job_8h_source.html#l00043">Job.h:43</a></div></div>
<div class="ttc" id="anamespaceripple_html_a2e97c395a5e1ef4ed1052299e0e60843af8c5e3e10d98fcbda2c4d43d50d712a2"><div class="ttname"><a href="namespaceripple.html#a2e97c395a5e1ef4ed1052299e0e60843af8c5e3e10d98fcbda2c4d43d50d712a2">ripple::INVALID</a></div><div class="ttdeci">@ INVALID</div><div class="ttdef"><b>Definition:</b> <a href="Transaction_8h_source.html#l00046">Transaction.h:46</a></div></div>
<div class="ttc" id="aclassripple_1_1base__uint_html_a88941f6d88609ddcd997293791772aed"><div class="ttname"><a href="classripple_1_1base__uint.html#a88941f6d88609ddcd997293791772aed">ripple::base_uint::parseHex</a></div><div class="ttdeci">bool parseHex(std::string_view sv)</div><div class="ttdoc">Parse a hex string into a base_uint.</div><div class="ttdef"><b>Definition:</b> <a href="base__uint_8h_source.html#l00384">base_uint.h:384</a></div></div>
<div class="ttc" id="anamespaceripple_html_a2e97c395a5e1ef4ed1052299e0e60843af8c5e3e10d98fcbda2c4d43d50d712a2"><div class="ttname"><a href="namespaceripple.html#a2e97c395a5e1ef4ed1052299e0e60843af8c5e3e10d98fcbda2c4d43d50d712a2">ripple::INVALID</a></div><div class="ttdeci">@ INVALID</div><div class="ttdef"><b>Definition:</b> <a href="Transaction_8h_source.html#l00048">Transaction.h:48</a></div></div>
<div class="ttc" id="anamespaceripple_html_a3b423ad1ba6341f945c08c13fe141150abbd68b30711cfd4adc8abd9b5519abe1"><div class="ttname"><a href="namespaceripple.html#a3b423ad1ba6341f945c08c13fe141150abbd68b30711cfd4adc8abd9b5519abe1">ripple::ProtocolFeature::ValidatorList2Propagation</a></div><div class="ttdeci">@ ValidatorList2Propagation</div></div>
<div class="ttc" id="aclassripple_1_1OverlayImpl_html_a8314d9411ae5be655929354317b4693b"><div class="ttname"><a href="classripple_1_1OverlayImpl.html#a8314d9411ae5be655929354317b4693b">ripple::OverlayImpl::remove</a></div><div class="ttdeci">void remove(std::shared_ptr&lt; PeerFinder::Slot &gt; const &amp;slot)</div><div class="ttdef"><b>Definition:</b> <a href="OverlayImpl_8cpp_source.html#l00474">OverlayImpl.cpp:474</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_a92bfc40054cd1c222f06494e74593fc6"><div class="ttname"><a href="classripple_1_1PeerImp.html#a92bfc40054cd1c222f06494e74593fc6">ripple::PeerImp::squelch_</a></div><div class="ttdeci">reduce_relay::Squelch&lt; UptimeClock &gt; squelch_</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00122">PeerImp.h:122</a></div></div>
<div class="ttc" id="aclassripple_1_1base__uint_html_a1f9135f2eef3ec702d5f17e679733e8e"><div class="ttname"><a href="classripple_1_1base__uint.html#a1f9135f2eef3ec702d5f17e679733e8e">ripple::base_uint::zero</a></div><div class="ttdeci">void zero()</div><div class="ttdef"><b>Definition:</b> <a href="base__uint_8h_source.html#l00449">base_uint.h:449</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_a23f99c9eb6bca0f2db087e1120f22ec3"><div class="ttname"><a href="classripple_1_1PeerImp.html#a23f99c9eb6bca0f2db087e1120f22ec3">ripple::PeerImp::lastPingSeq_</a></div><div class="ttdeci">std::optional&lt; std::uint32_t &gt; lastPingSeq_</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00118">PeerImp.h:118</a></div></div>
<div class="ttc" id="aclassripple_1_1base__uint_html_a1f9135f2eef3ec702d5f17e679733e8e"><div class="ttname"><a href="classripple_1_1base__uint.html#a1f9135f2eef3ec702d5f17e679733e8e">ripple::base_uint::zero</a></div><div class="ttdeci">void zero()</div><div class="ttdef"><b>Definition:</b> <a href="base__uint_8h_source.html#l00518">base_uint.h:518</a></div></div>
<div class="ttc" id="abegin_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/begin.html">std::vector::begin</a></div><div class="ttdeci">T begin(T... args)</div></div>
<div class="ttc" id="aclassripple_1_1PeerFinder_1_1Manager_html_a7b106eb8bb9983a45b86a3685875d5ca"><div class="ttname"><a href="classripple_1_1PeerFinder_1_1Manager.html#a7b106eb8bb9983a45b86a3685875d5ca">ripple::PeerFinder::Manager::config</a></div><div class="ttdeci">virtual Config config()=0</div><div class="ttdoc">Returns the configuration for the manager.</div></div>
<div class="ttc" id="anamespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div><div class="ttdoc">STL namespace.</div></div>
@@ -3522,17 +3522,19 @@ $(function() {
<div class="ttc" id="aclassripple_1_1RCLCxPeerPos_html_a748ae509bb447cc33356579b72ef8e62"><div class="ttname"><a href="classripple_1_1RCLCxPeerPos.html#a748ae509bb447cc33356579b72ef8e62">ripple::RCLCxPeerPos::suppressionID</a></div><div class="ttdeci">uint256 const &amp; suppressionID() const</div><div class="ttdoc">Unique id used by hash router to suppress duplicates.</div><div class="ttdef"><b>Definition:</b> <a href="RCLCxPeerPos_8h_source.html#l00088">RCLCxPeerPos.h:88</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_acbf09221d5f32e0ec2efe67429a78617"><div class="ttname"><a href="classripple_1_1PeerImp.html#acbf09221d5f32e0ec2efe67429a78617">ripple::PeerImp::supportsFeature</a></div><div class="ttdeci">bool supportsFeature(ProtocolFeature f) const override</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8cpp_source.html#l00444">PeerImp.cpp:444</a></div></div>
<div class="ttc" id="aclassripple_1_1OverlayImpl_html_a35852ee0ce8279aef2a36773dd861223"><div class="ttname"><a href="classripple_1_1OverlayImpl.html#a35852ee0ce8279aef2a36773dd861223">ripple::OverlayImpl::findPeerByPublicKey</a></div><div class="ttdeci">std::shared_ptr&lt; Peer &gt; findPeerByPublicKey(PublicKey const &amp;pubKey) override</div><div class="ttdoc">Returns the peer with the matching public key, or null.</div><div class="ttdef"><b>Definition:</b> <a href="OverlayImpl_8cpp_source.html#l01205">OverlayImpl.cpp:1205</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="amutex_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/mutex.html">mutex</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_a78a01a7c2f1f7ad5e7c23ea3767cc6ea"><div class="ttname"><a href="classripple_1_1PeerImp.html#a78a01a7c2f1f7ad5e7c23ea3767cc6ea">ripple::PeerImp::onMessageBegin</a></div><div class="ttdeci">void onMessageBegin(std::uint16_t type, std::shared_ptr&lt;::google::protobuf::Message &gt; const &amp;m, std::size_t size, std::size_t uncompressed_size, bool isCompressed)</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8cpp_source.html#l00973">PeerImp.cpp:973</a></div></div>
<div class="ttc" id="astr_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_stringstream/str.html">std::stringstream::str</a></div><div class="ttdeci">T str(T... args)</div></div>
<div class="ttc" id="aclassbeast_1_1Journal_html_a556228cb60bcf405c225d3f64b7b01ae"><div class="ttname"><a href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">beast::Journal::debug</a></div><div class="ttdeci">Stream debug() const</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00315">Journal.h:315</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="anamespaceripple_html_af9776f187d3686a7fba4c2d2fbeebdf4"><div class="ttname"><a href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">ripple::to_string</a></div><div class="ttdeci">std::string to_string(Manifest const &amp;m)</div><div class="ttdoc">Format the specified manifest to a string for debugging purposes.</div><div class="ttdef"><b>Definition:</b> <a href="app_2misc_2impl_2Manifest_8cpp_source.html#l00038">app/misc/impl/Manifest.cpp:38</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_a5c8e5700e9d6ee35b834d189ff915a17"><div class="ttname"><a href="classripple_1_1PeerImp.html#a5c8e5700e9d6ee35b834d189ff915a17">ripple::PeerImp::json</a></div><div class="ttdeci">Json::Value json() override</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8cpp_source.html#l00326">PeerImp.cpp:326</a></div></div>
<div class="ttc" id="aclassripple_1_1Cluster_html_a52adb42f90234baba096961525f94a87"><div class="ttname"><a href="classripple_1_1Cluster.html#a52adb42f90234baba096961525f94a87">ripple::Cluster::for_each</a></div><div class="ttdeci">void for_each(std::function&lt; void(ClusterNode const &amp;)&gt; func) const</div><div class="ttdoc">Invokes the callback once for every cluster node.</div><div class="ttdef"><b>Definition:</b> <a href="Cluster_8cpp_source.html#l00084">Cluster.cpp:84</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_a1af98192bd9143be003b8e314c85c49b"><div class="ttname"><a href="classripple_1_1PeerImp.html#a1af98192bd9143be003b8e314c85c49b">ripple::PeerImp::compressionEnabled_</a></div><div class="ttdeci">Compressed compressionEnabled_</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00172">PeerImp.h:172</a></div></div>
<div class="ttc" id="anamespaceripple_1_1Tuning_html_a728589bd52b8426227390d5640782a10ab1675121c898e98033db8e9111642e6f"><div class="ttname"><a href="namespaceripple_1_1Tuning.html#a728589bd52b8426227390d5640782a10ab1675121c898e98033db8e9111642e6f">ripple::Tuning::sendqIntervals</a></div><div class="ttdeci">@ sendqIntervals</div><div class="ttdoc">How many timer intervals a sendq has to stay large before we disconnect.</div><div class="ttdef"><b>Definition:</b> <a href="overlay_2impl_2Tuning_8h_source.html#l00044">overlay/impl/Tuning.h:44</a></div></div>
<div class="ttc" id="anamespaceripple_html_a3b423ad1ba6341f945c08c13fe141150a9a32e2a438c197a712d352ca4e69b65b"><div class="ttname"><a href="namespaceripple.html#a3b423ad1ba6341f945c08c13fe141150a9a32e2a438c197a712d352ca4e69b65b">ripple::ProtocolFeature::ValidatorListPropagation</a></div><div class="ttdeci">@ ValidatorListPropagation</div></div>
<div class="ttc" id="aclassbeast_1_1IP_1_1Endpoint_html"><div class="ttname"><a href="classbeast_1_1IP_1_1Endpoint.html">beast::IP::Endpoint</a></div><div class="ttdoc">A version-independent IP address and port combination.</div><div class="ttdef"><b>Definition:</b> <a href="IPEndpoint_8h_source.html#l00039">IPEndpoint.h:39</a></div></div>
<div class="ttc" id="aclassbeast_1_1IP_1_1Endpoint_html"><div class="ttname"><a href="classbeast_1_1IP_1_1Endpoint.html">beast::IP::Endpoint</a></div><div class="ttdoc">A version-independent IP address and port combination.</div><div class="ttdef"><b>Definition:</b> <a href="IPEndpoint_8h_source.html#l00038">IPEndpoint.h:38</a></div></div>
<div class="ttc" id="aclassripple_1_1OverlayImpl_html_a5f0a9aee646b4b98d7a255a2ce15e4cc"><div class="ttname"><a href="classripple_1_1OverlayImpl.html#a5f0a9aee646b4b98d7a255a2ce15e4cc">ripple::OverlayImpl::incPeerDisconnect</a></div><div class="ttdeci">void incPeerDisconnect() override</div><div class="ttdoc">Increment and retrieve counters for total peer disconnects, and disconnects we initiate for excessive...</div><div class="ttdef"><b>Definition:</b> <a href="OverlayImpl_8h_source.html#l00345">OverlayImpl.h:345</a></div></div>
<div class="ttc" id="anamespaceripple_html_a86e358ce3f06ff049af13c2342791cf8"><div class="ttname"><a href="namespaceripple.html#a86e358ce3f06ff049af13c2342791cf8">ripple::strHex</a></div><div class="ttdeci">std::string strHex(FwdIt begin, FwdIt end)</div><div class="ttdef"><b>Definition:</b> <a href="strHex_8h_source.html#l00045">strHex.h:45</a></div></div>
<div class="ttc" id="aend_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/end.html">std::vector::end</a></div><div class="ttdeci">T end(T... args)</div></div>
@@ -3544,19 +3546,18 @@ $(function() {
<div class="ttc" id="asetw_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/setw.html">std::setw</a></div><div class="ttdeci">T setw(T... args)</div></div>
<div class="ttc" id="anumeric_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/numeric.html">numeric</a></div></div>
<div class="ttc" id="aclassripple_1_1OverlayImpl_html"><div class="ttname"><a href="classripple_1_1OverlayImpl.html">ripple::OverlayImpl</a></div><div class="ttdef"><b>Definition:</b> <a href="OverlayImpl_8h_source.html#l00057">OverlayImpl.h:57</a></div></div>
<div class="ttc" id="aclassbeast_1_1IP_1_1Endpoint_html_aac388eeb417add061487b8166490a338"><div class="ttname"><a href="classbeast_1_1IP_1_1Endpoint.html#aac388eeb417add061487b8166490a338">beast::IP::Endpoint::from_string_checked</a></div><div class="ttdeci">static boost::optional&lt; Endpoint &gt; from_string_checked(std::string const &amp;s)</div><div class="ttdoc">Create an Endpoint from a string.</div><div class="ttdef"><b>Definition:</b> <a href="IPEndpoint_8cpp_source.html#l00035">IPEndpoint.cpp:35</a></div></div>
<div class="ttc" id="amax_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a></div><div class="ttdeci">T max(T... args)</div></div>
<div class="ttc" id="aclassbeast_1_1IP_1_1Endpoint_html_a7336271ad6a45e88f485d8fccc7cd4a2"><div class="ttname"><a href="classbeast_1_1IP_1_1Endpoint.html#a7336271ad6a45e88f485d8fccc7cd4a2">beast::IP::Endpoint::at_port</a></div><div class="ttdeci">Endpoint at_port(Port port) const</div><div class="ttdoc">Returns a new Endpoint with a different port.</div><div class="ttdef"><b>Definition:</b> <a href="IPEndpoint_8h_source.html#l00070">IPEndpoint.h:70</a></div></div>
<div class="ttc" id="aclassripple_1_1Serializer_html_aa5c7aa53db0c7c90c6a86dd5144e9255"><div class="ttname"><a href="classripple_1_1Serializer.html#aa5c7aa53db0c7c90c6a86dd5144e9255">ripple::Serializer::getLength</a></div><div class="ttdeci">int getLength() const</div><div class="ttdef"><b>Definition:</b> <a href="Serializer_8h_source.html#l00197">Serializer.h:197</a></div></div>
<div class="ttc" id="aclassripple_1_1base__uint_html_a698d3fd0c0f0155995c87d2f48ac90d5"><div class="ttname"><a href="classripple_1_1base__uint.html#a698d3fd0c0f0155995c87d2f48ac90d5">ripple::base_uint::parseHex</a></div><div class="ttdeci">constexpr bool parseHex(std::string_view sv)</div><div class="ttdoc">Parse a hex string into a base_uint.</div><div class="ttdef"><b>Definition:</b> <a href="base__uint_8h_source.html#l00472">base_uint.h:472</a></div></div>
<div class="ttc" id="aclassbeast_1_1IP_1_1Endpoint_html_a7336271ad6a45e88f485d8fccc7cd4a2"><div class="ttname"><a href="classbeast_1_1IP_1_1Endpoint.html#a7336271ad6a45e88f485d8fccc7cd4a2">beast::IP::Endpoint::at_port</a></div><div class="ttdeci">Endpoint at_port(Port port) const</div><div class="ttdoc">Returns a new Endpoint with a different port.</div><div class="ttdef"><b>Definition:</b> <a href="IPEndpoint_8h_source.html#l00069">IPEndpoint.h:69</a></div></div>
<div class="ttc" id="aclassripple_1_1Serializer_html_aa5c7aa53db0c7c90c6a86dd5144e9255"><div class="ttname"><a href="classripple_1_1Serializer.html#aa5c7aa53db0c7c90c6a86dd5144e9255">ripple::Serializer::getLength</a></div><div class="ttdeci">int getLength() const</div><div class="ttdef"><b>Definition:</b> <a href="Serializer_8h_source.html#l00199">Serializer.h:199</a></div></div>
<div class="ttc" id="aclassripple_1_1OverlayImpl_html_a24fdba9c67abfceb410797749c99443f"><div class="ttname"><a href="classripple_1_1OverlayImpl.html#a24fdba9c67abfceb410797749c99443f">ripple::OverlayImpl::reportTraffic</a></div><div class="ttdeci">void reportTraffic(TrafficCount::category cat, bool isInbound, int bytes)</div><div class="ttdef"><b>Definition:</b> <a href="OverlayImpl_8cpp_source.html#l00718">OverlayImpl.cpp:718</a></div></div>
<div class="ttc" id="anamespaceripple_html_a628c597be4a050e3957be56ec78df01a"><div class="ttname"><a href="namespaceripple.html#a628c597be4a050e3957be56ec78df01a">ripple::sfLastLedgerSequence</a></div><div class="ttdeci">const SF_UINT32 sfLastLedgerSequence</div></div>
<div class="ttc" id="aclassripple_1_1JobQueue_html_aaacda2b13f6602a6db919fdc2a8bcdec"><div class="ttname"><a href="classripple_1_1JobQueue.html#aaacda2b13f6602a6db919fdc2a8bcdec">ripple::JobQueue::makeLoadEvent</a></div><div class="ttdeci">std::unique_ptr&lt; LoadEvent &gt; makeLoadEvent(JobType t, std::string const &amp;name)</div><div class="ttdoc">Return a scoped LoadEvent.</div><div class="ttdef"><b>Definition:</b> <a href="JobQueue_8cpp_source.html#l00183">JobQueue.cpp:183</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_a6c1f9ea45ebf172e848b8307ce7b0296"><div class="ttname"><a href="classripple_1_1PeerImp.html#a6c1f9ea45ebf172e848b8307ce7b0296">ripple::PeerImp::getPeerShardInfo</a></div><div class="ttdeci">boost::optional&lt; hash_map&lt; PublicKey, ShardInfo &gt; &gt; getPeerShardInfo() const</div><div class="ttdoc">Return any known shard info from this peer and its sub peers.</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8cpp_source.html#l00589">PeerImp.cpp:589</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_a4883ff4412cae3d60e2ab4ff5d35a905"><div class="ttname"><a href="classripple_1_1PeerImp.html#a4883ff4412cae3d60e2ab4ff5d35a905">ripple::PeerImp::shardInfoMutex_</a></div><div class="ttdeci">std::mutex shardInfoMutex_</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00169">PeerImp.h:169</a></div></div>
<div class="ttc" id="aclassripple_1_1Resource_1_1Consumer_html_a65d4f295e044ae0bf1e5ef1e4e6df539"><div class="ttname"><a href="classripple_1_1Resource_1_1Consumer.html#a65d4f295e044ae0bf1e5ef1e4e6df539">ripple::Resource::Consumer::charge</a></div><div class="ttdeci">Disposition charge(Charge const &amp;fee)</div><div class="ttdoc">Apply a load charge to the consumer.</div><div class="ttdef"><b>Definition:</b> <a href="Consumer_8cpp_source.html#l00099">Consumer.cpp:99</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_ad29d370765fbc2405bdf7ea2d15d601b"><div class="ttname"><a href="classripple_1_1PeerImp.html#ad29d370765fbc2405bdf7ea2d15d601b">ripple::PeerImp::overlay_</a></div><div class="ttdeci">OverlayImpl &amp; overlay_</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00093">PeerImp.h:93</a></div></div>
<div class="ttc" id="anamespaceripple_html_a5590ae6006b178275628bde91fa03129"><div class="ttname"><a href="namespaceripple.html#a5590ae6006b178275628bde91fa03129">ripple::makeResponse</a></div><div class="ttdeci">http_response_type makeResponse(bool crawlPublic, http_request_type const &amp;req, beast::IP::Address public_ip, beast::IP::Address remote_ip, uint256 const &amp;sharedValue, std::optional&lt; std::uint32_t &gt; networkID, ProtocolVersion protocol, Application &amp;app)</div><div class="ttdoc">Make http response.</div><div class="ttdef"><b>Definition:</b> <a href="Handshake_8cpp_source.html#l00387">Handshake.cpp:387</a></div></div>
<div class="ttc" id="aclassripple_1_1SHAMap_html_a82934b5efbae6aaebd17f74cad86c1f7"><div class="ttname"><a href="classripple_1_1SHAMap.html#a82934b5efbae6aaebd17f74cad86c1f7">ripple::SHAMap::getNodeFat</a></div><div class="ttdeci">bool getNodeFat(SHAMapNodeID const &amp;wanted, std::vector&lt; SHAMapNodeID &gt; &amp;nodeIDs, std::vector&lt; Blob &gt; &amp;rawNodes, bool fatLeaves, std::uint32_t depth) const</div><div class="ttdef"><b>Definition:</b> <a href="SHAMapSync_8cpp_source.html#l00427">SHAMapSync.cpp:427</a></div></div>
<div class="ttc" id="aclassripple_1_1SHAMap_html_a82934b5efbae6aaebd17f74cad86c1f7"><div class="ttname"><a href="classripple_1_1SHAMap.html#a82934b5efbae6aaebd17f74cad86c1f7">ripple::SHAMap::getNodeFat</a></div><div class="ttdeci">bool getNodeFat(SHAMapNodeID const &amp;wanted, std::vector&lt; SHAMapNodeID &gt; &amp;nodeIDs, std::vector&lt; Blob &gt; &amp;rawNodes, bool fatLeaves, std::uint32_t depth) const</div><div class="ttdef"><b>Definition:</b> <a href="SHAMapSync_8cpp_source.html#l00426">SHAMapSync.cpp:426</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa265217edeb8282e636c78b50049f4c0"><div class="ttname"><a href="namespaceripple.html#aa265217edeb8282e636c78b50049f4c0">ripple::http_request_type</a></div><div class="ttdeci">boost::beast::http::request&lt; boost::beast::http::dynamic_body &gt; http_request_type</div><div class="ttdef"><b>Definition:</b> <a href="Handshake_8h_source.html#l00047">Handshake.h:47</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&lt; stream_type &gt;</a></div></div>
<div class="ttc" id="anamespaceripple_1_1Tuning_html_a728589bd52b8426227390d5640782a10abdc936f3cecce920c48b176c0f8bc0a7"><div class="ttname"><a href="namespaceripple_1_1Tuning.html#a728589bd52b8426227390d5640782a10abdc936f3cecce920c48b176c0f8bc0a7">ripple::Tuning::sendQueueLogFreq</a></div><div class="ttdeci">@ sendQueueLogFreq</div><div class="ttdoc">How often to log send queue size.</div><div class="ttdef"><b>Definition:</b> <a href="overlay_2impl_2Tuning_8h_source.html#l00053">overlay/impl/Tuning.h:53</a></div></div>
@@ -3566,6 +3567,7 @@ $(function() {
<div class="ttc" id="anamespaceripple_html_a320fee67ee6b1d8ce780998df8ffc35e"><div class="ttname"><a href="namespaceripple.html#a320fee67ee6b1d8ce780998df8ffc35e">ripple::invokeProtocolMessage</a></div><div class="ttdeci">std::pair&lt; std::size_t, boost::system::error_code &gt; invokeProtocolMessage(Buffers const &amp;buffers, Handler &amp;handler, std::size_t &amp;hint)</div><div class="ttdoc">Calls the handler for up to one protocol message in the passed buffers.</div><div class="ttdef"><b>Definition:</b> <a href="ProtocolMessage_8h_source.html#l00339">ProtocolMessage.h:339</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_a8c33a8b35ed60127d256c6210770dfc9"><div class="ttname"><a href="classripple_1_1PeerImp.html#a8c33a8b35ed60127d256c6210770dfc9">ripple::PeerImp::fee_</a></div><div class="ttdeci">Resource::Charge fee_</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8h_source.html#l00155">PeerImp.h:155</a></div></div>
<div class="ttc" id="anamespaceripple_html_a56ea3162e3d91377dcbcdfa7a65fbd77"><div class="ttname"><a href="namespaceripple.html#a56ea3162e3d91377dcbcdfa7a65fbd77">ripple::stringIsUint256Sized</a></div><div class="ttdeci">static bool stringIsUint256Sized(std::string const &amp;pBuffStr)</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8cpp_source.html#l00145">PeerImp.cpp:145</a></div></div>
<div class="ttc" id="aclassbeast_1_1IP_1_1Endpoint_html_a0d6ba5509dc00fbf39e8b91e5f267a87"><div class="ttname"><a href="classbeast_1_1IP_1_1Endpoint.html#a0d6ba5509dc00fbf39e8b91e5f267a87">beast::IP::Endpoint::from_string_checked</a></div><div class="ttdeci">static std::optional&lt; Endpoint &gt; from_string_checked(std::string const &amp;s)</div><div class="ttdoc">Create an Endpoint from a string.</div><div class="ttdef"><b>Definition:</b> <a href="IPEndpoint_8cpp_source.html#l00035">IPEndpoint.cpp:35</a></div></div>
<div class="ttc" id="aclassripple_1_1ValidatorList_html_a727b089f03d260cebfaca07ee4c83059"><div class="ttname"><a href="classripple_1_1ValidatorList.html#a727b089f03d260cebfaca07ee4c83059">ripple::ValidatorList::for_each_available</a></div><div class="ttdeci">void for_each_available(std::function&lt; void(std::string const &amp;manifest, std::uint32_t version, std::map&lt; std::size_t, ValidatorBlobInfo &gt; const &amp;blobInfos, PublicKey const &amp;pubKey, std::size_t maxSequence, uint256 const &amp;hash)&gt; func) const</div><div class="ttdoc">Invokes the callback once for every available publisher list's raw data members.</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l01653">ValidatorList.cpp:1653</a></div></div>
<div class="ttc" id="aclassripple_1_1PeerImp_html_a3b02a6f5908e5da544f876bd48614e4c"><div class="ttname"><a href="classripple_1_1PeerImp.html#a3b02a6f5908e5da544f876bd48614e4c">ripple::PeerImp::stop</a></div><div class="ttdeci">void stop() override</div><div class="ttdef"><b>Definition:</b> <a href="PeerImp_8cpp_source.html#l00209">PeerImp.cpp:209</a></div></div>
<div class="ttc" id="aclassripple_1_1Application_html_ab7873738f31780e68f0d12d87fc35356"><div class="ttname"><a href="classripple_1_1Application.html#ab7873738f31780e68f0d12d87fc35356">ripple::Application::getHashRouter</a></div><div class="ttdeci">virtual HashRouter &amp; getHashRouter()=0</div></div>