Files
rippled/classripple_1_1PeerSet.html
2020-05-06 06:59:28 +00:00

871 lines
47 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>rippled: ripple::PeerSet Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">rippled
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceripple.html">ripple</a></li><li class="navelem"><a class="el" href="classripple_1_1PeerSet.html">PeerSet</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pro-types">Protected Types</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classripple_1_1PeerSet-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">ripple::PeerSet Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>Supports data retrieval by managing a set of peers.
<a href="classripple_1_1PeerSet.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for ripple::PeerSet:</div>
<div class="dyncontent">
<div class="center"><img src="classripple_1_1PeerSet__inherit__graph.png" border="0" usemap="#ripple_1_1PeerSet_inherit__map" alt="Inheritance graph"/></div>
<map name="ripple_1_1PeerSet_inherit__map" id="ripple_1_1PeerSet_inherit__map">
<area shape="rect" title="Supports data retrieval by managing a set of peers." alt="" coords="128,5,245,32"/>
<area shape="rect" href="classripple_1_1InboundLedger.html" title=" " alt="" coords="5,80,168,107"/>
<area shape="rect" href="classripple_1_1TransactionAcquire.html" title=" " alt="" coords="193,80,383,107"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for ripple::PeerSet:</div>
<div class="dyncontent">
<div class="center"><img src="classripple_1_1PeerSet__coll__graph.png" border="0" usemap="#ripple_1_1PeerSet_coll__map" alt="Collaboration graph"/></div>
<map name="ripple_1_1PeerSet_coll__map" id="ripple_1_1PeerSet_coll__map">
<area shape="rect" title="Supports data retrieval by managing a set of peers." alt="" coords="1596,132,1713,159"/>
<area shape="rect" href="classripple_1_1Application.html" title=" " alt="" coords="1281,49,1421,76"/>
<area shape="rect" href="classbeast_1_1PropertyStream_1_1Source.html" title="Subclasses can be called to write to a stream and have children." alt="" coords="861,85,1029,126"/>
<area shape="rect" href="classbeast_1_1PropertyStream_1_1Item.html" title=" " alt="" coords="1267,151,1435,193"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/thread/recursive_mutex.html" title="STL class." alt="" coords="576,13,735,40"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/string/basic_string.html" title="STL class." alt="" coords="612,149,699,176"/>
<area shape="rect" href="classbeast_1_1List.html" title=" " alt="" coords="563,83,748,125"/>
<area shape="rect" href="classbeast_1_1detail_1_1ListNode.html" title=" " alt="" coords="275,76,457,132"/>
<area shape="rect" href="classbeast_1_1detail_1_1ListNode.html" title=" " alt="" coords="5,83,173,125"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/types/size_t.html" title=" " alt="" coords="322,181,410,208"/>
<area shape="rect" href="classripple_1_1base__uint.html" title=" " alt="" coords="1280,217,1421,258"/>
<area shape="rect" title=" " alt="" coords="872,157,1019,184"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/chrono/duration.html" title=" " alt="" coords="1259,100,1443,127"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/container/array.html" title=" " alt="" coords="861,259,1029,301"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/types/integer.html" title=" " alt="" coords="604,303,707,329"/>
<area shape="rect" href="http://en.cppreference.com/w/cpp/container/set.html" title=" " alt="" coords="1053,319,1235,345"/>
<area shape="rect" href="classbeast_1_1Journal.html" title="A generic endpoint for log messages." alt="" coords="1295,367,1406,393"/>
<area shape="rect" href="classbeast_1_1Journal_1_1Sink.html" title="Abstraction for the underlying message destination." alt="" coords="872,376,1019,403"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-types"></a>
Protected Types</h2></td></tr>
<tr class="memitem:a90a3672f3016e5d1c6128061879ec41e"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PeerSet.html#a90a3672f3016e5d1c6128061879ec41e">ScopedLockType</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/thread/unique_lock.html">std::unique_lock</a>&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/thread/recursive_mutex.html">std::recursive_mutex</a> &gt;</td></tr>
<tr class="separator:a90a3672f3016e5d1c6128061879ec41e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a496be98fd2d19b2e01c9495c8ff3d069"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PeerSet.html#a496be98fd2d19b2e01c9495c8ff3d069">PeerSet</a> (<a class="el" href="classripple_1_1Application.html">Application</a> &amp;app, <a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> const &amp;hash, <a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a> interval, <a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> journal)</td></tr>
<tr class="separator:a496be98fd2d19b2e01c9495c8ff3d069"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22815d04e8927297736623dbfafa24a6"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PeerSet.html#a22815d04e8927297736623dbfafa24a6">~PeerSet</a> ()=0</td></tr>
<tr class="separator:a22815d04e8927297736623dbfafa24a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4557b201391f7d1b5e11af49560ff3ee"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PeerSet.html#a4557b201391f7d1b5e11af49560ff3ee">addPeers</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> limit, <a class="elRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt; bool(<a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1Peer.html">Peer</a> &gt; const &amp;)&gt; score)</td></tr>
<tr class="memdesc:a4557b201391f7d1b5e11af49560ff3ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add at most <code>limit</code> peers to this set from the overlay. <a href="classripple_1_1PeerSet.html#a4557b201391f7d1b5e11af49560ff3ee">More...</a><br /></td></tr>
<tr class="separator:a4557b201391f7d1b5e11af49560ff3ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ce55399eb28bc79e4397b7455af8aec"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PeerSet.html#a9ce55399eb28bc79e4397b7455af8aec">onPeerAdded</a> (<a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1Peer.html">Peer</a> &gt; const &amp;)=0</td></tr>
<tr class="memdesc:a9ce55399eb28bc79e4397b7455af8aec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hook called from <a class="el" href="classripple_1_1PeerSet.html#a4557b201391f7d1b5e11af49560ff3ee" title="Add at most limit peers to this set from the overlay.">addPeers()</a>. <a href="classripple_1_1PeerSet.html#a9ce55399eb28bc79e4397b7455af8aec">More...</a><br /></td></tr>
<tr class="separator:a9ce55399eb28bc79e4397b7455af8aec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0416d2dcd2e5eb8801f55b03f4875e1"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PeerSet.html#ac0416d2dcd2e5eb8801f55b03f4875e1">onTimer</a> (bool progress, <a class="el" href="classripple_1_1PeerSet.html#a90a3672f3016e5d1c6128061879ec41e">ScopedLockType</a> &amp;)=0</td></tr>
<tr class="memdesc:ac0416d2dcd2e5eb8801f55b03f4875e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hook called from <a class="el" href="classripple_1_1PeerSet.html#af519e54b016eff0b244aceba65944e55" title="Calls onTimer() if in the right state.">invokeOnTimer()</a>. <a href="classripple_1_1PeerSet.html#ac0416d2dcd2e5eb8801f55b03f4875e1">More...</a><br /></td></tr>
<tr class="separator:ac0416d2dcd2e5eb8801f55b03f4875e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46bc82ece5fd76d43a6206fa7714d13b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PeerSet.html#a46bc82ece5fd76d43a6206fa7714d13b">queueJob</a> ()=0</td></tr>
<tr class="memdesc:a46bc82ece5fd76d43a6206fa7714d13b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Queue a job to call <a class="el" href="classripple_1_1PeerSet.html#af519e54b016eff0b244aceba65944e55" title="Calls onTimer() if in the right state.">invokeOnTimer()</a>. <a href="classripple_1_1PeerSet.html#a46bc82ece5fd76d43a6206fa7714d13b">More...</a><br /></td></tr>
<tr class="separator:a46bc82ece5fd76d43a6206fa7714d13b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1c64f5cd21f67f9e232c42195aed820"><td class="memItemLeft" align="right" valign="top">virtual <a class="elRef" href="http://en.cppreference.com/w/cpp/memory/weak_ptr.html">std::weak_ptr</a>&lt; <a class="el" href="classripple_1_1PeerSet.html">PeerSet</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PeerSet.html#af1c64f5cd21f67f9e232c42195aed820">pmDowncast</a> ()=0</td></tr>
<tr class="memdesc:af1c64f5cd21f67f9e232c42195aed820"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a weak pointer to this. <a href="classripple_1_1PeerSet.html#af1c64f5cd21f67f9e232c42195aed820">More...</a><br /></td></tr>
<tr class="separator:af1c64f5cd21f67f9e232c42195aed820"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92cd86e610ddc3c75bfa4a613dd42285"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PeerSet.html#a92cd86e610ddc3c75bfa4a613dd42285">isDone</a> () const</td></tr>
<tr class="separator:a92cd86e610ddc3c75bfa4a613dd42285"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af519e54b016eff0b244aceba65944e55"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PeerSet.html#af519e54b016eff0b244aceba65944e55">invokeOnTimer</a> ()</td></tr>
<tr class="memdesc:af519e54b016eff0b244aceba65944e55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls <a class="el" href="classripple_1_1PeerSet.html#ac0416d2dcd2e5eb8801f55b03f4875e1" title="Hook called from invokeOnTimer().">onTimer()</a> if in the right state. <a href="classripple_1_1PeerSet.html#af519e54b016eff0b244aceba65944e55">More...</a><br /></td></tr>
<tr class="separator:af519e54b016eff0b244aceba65944e55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb0ae391c3b73fdb47a4bca7069b97f4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PeerSet.html#abb0ae391c3b73fdb47a4bca7069b97f4">sendRequest</a> (const protocol::TMGetLedger &amp;message, <a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1Peer.html">Peer</a> &gt; const &amp;peer)</td></tr>
<tr class="memdesc:abb0ae391c3b73fdb47a4bca7069b97f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send a GetLedger message to one or all peers. <a href="classripple_1_1PeerSet.html#abb0ae391c3b73fdb47a4bca7069b97f4">More...</a><br /></td></tr>
<tr class="separator:abb0ae391c3b73fdb47a4bca7069b97f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:addc5e94d9df5ad4a25e9afb735984cf3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PeerSet.html#addc5e94d9df5ad4a25e9afb735984cf3">setTimer</a> ()</td></tr>
<tr class="memdesc:addc5e94d9df5ad4a25e9afb735984cf3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Schedule a call to <a class="el" href="classripple_1_1PeerSet.html#a46bc82ece5fd76d43a6206fa7714d13b" title="Queue a job to call invokeOnTimer().">queueJob()</a> after mTimerInterval. <a href="classripple_1_1PeerSet.html#addc5e94d9df5ad4a25e9afb735984cf3">More...</a><br /></td></tr>
<tr class="separator:addc5e94d9df5ad4a25e9afb735984cf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a706a011ba681781598055237f2d7fdaf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1Application.html">Application</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PeerSet.html#a706a011ba681781598055237f2d7fdaf">app_</a></td></tr>
<tr class="separator:a706a011ba681781598055237f2d7fdaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63e0e407163a2e3f9fcd9135f519b5d1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbeast_1_1Journal.html">beast::Journal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PeerSet.html#a63e0e407163a2e3f9fcd9135f519b5d1">m_journal</a></td></tr>
<tr class="separator:a63e0e407163a2e3f9fcd9135f519b5d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4fa0ea92f95d96e69d2149e23d02ea4"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/recursive_mutex.html">std::recursive_mutex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PeerSet.html#ab4fa0ea92f95d96e69d2149e23d02ea4">mLock</a></td></tr>
<tr class="separator:ab4fa0ea92f95d96e69d2149e23d02ea4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a79a33d6012ccbc0f7e21e561d8f113"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PeerSet.html#a0a79a33d6012ccbc0f7e21e561d8f113">mHash</a></td></tr>
<tr class="memdesc:a0a79a33d6012ccbc0f7e21e561d8f113"><td class="mdescLeft">&#160;</td><td class="mdescRight">The hash of the object (in practice, always a ledger) we are trying to fetch. <a href="classripple_1_1PeerSet.html#a0a79a33d6012ccbc0f7e21e561d8f113">More...</a><br /></td></tr>
<tr class="separator:a0a79a33d6012ccbc0f7e21e561d8f113"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9b6f50ad29c4a6838652f98d5cca7e3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PeerSet.html#ae9b6f50ad29c4a6838652f98d5cca7e3">mTimeouts</a></td></tr>
<tr class="separator:ae9b6f50ad29c4a6838652f98d5cca7e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e8e26a4201b05c805959c7fc909ec84"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PeerSet.html#a5e8e26a4201b05c805959c7fc909ec84">mComplete</a></td></tr>
<tr class="separator:a5e8e26a4201b05c805959c7fc909ec84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a7d358bfb4c9ca39cbe143a270d6123"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PeerSet.html#a9a7d358bfb4c9ca39cbe143a270d6123">mFailed</a></td></tr>
<tr class="separator:a9a7d358bfb4c9ca39cbe143a270d6123"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab291c226238498bf28b4ffad090b47e1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PeerSet.html#ab291c226238498bf28b4ffad090b47e1">mProgress</a></td></tr>
<tr class="memdesc:ab291c226238498bf28b4ffad090b47e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether forward progress has been made. <a href="classripple_1_1PeerSet.html#ab291c226238498bf28b4ffad090b47e1">More...</a><br /></td></tr>
<tr class="separator:ab291c226238498bf28b4ffad090b47e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0652998669e63104bf8da3c0eafbe270"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/set.html">std::set</a>&lt; <a class="el" href="classripple_1_1Peer.html#a56cc3cdd9c73921f23cb43a2bfa696a1">Peer::id_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PeerSet.html#a0652998669e63104bf8da3c0eafbe270">mPeers</a></td></tr>
<tr class="memdesc:a0652998669e63104bf8da3c0eafbe270"><td class="mdescLeft">&#160;</td><td class="mdescRight">The identifiers of the peers we are tracking. <a href="classripple_1_1PeerSet.html#a0652998669e63104bf8da3c0eafbe270">More...</a><br /></td></tr>
<tr class="separator:a0652998669e63104bf8da3c0eafbe270"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a6c83fd1c266d3fa99adb07d0075f201c"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PeerSet.html#a6c83fd1c266d3fa99adb07d0075f201c">mTimerInterval</a></td></tr>
<tr class="memdesc:a6c83fd1c266d3fa99adb07d0075f201c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The minimum time to wait between calls to execute(). <a href="classripple_1_1PeerSet.html#a6c83fd1c266d3fa99adb07d0075f201c">More...</a><br /></td></tr>
<tr class="separator:a6c83fd1c266d3fa99adb07d0075f201c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afab2c5b6dc398605d06502c282f11b56"><td class="memItemLeft" align="right" valign="top">boost::asio::basic_waitable_timer&lt; <a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/steady_clock.html">std::chrono::steady_clock</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1PeerSet.html#afab2c5b6dc398605d06502c282f11b56">mTimer</a></td></tr>
<tr class="separator:afab2c5b6dc398605d06502c282f11b56"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Supports data retrieval by managing a set of peers. </p>
<p>When desired data (such as a ledger or a transaction set) is missing locally it can be obtained by querying connected peers. This class manages common aspects of the retrieval. Callers maintain the set by adding and removing peers depending on whether the peers have useful information.</p>
<p>This class is an "active" object. It maintains its own timer and dispatches work to a job queue. Implementations derive from this class and override the abstract hook functions in the base.</p>
<p>The data is represented by its hash. </p>
<p class="definition">Definition at line <a class="el" href="PeerSet_8h_source.html#l00048">48</a> of file <a class="el" href="PeerSet_8h_source.html">PeerSet.h</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="a90a3672f3016e5d1c6128061879ec41e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90a3672f3016e5d1c6128061879ec41e">&#9670;&nbsp;</a></span>ScopedLockType</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classripple_1_1PeerSet.html#a90a3672f3016e5d1c6128061879ec41e">ripple::PeerSet::ScopedLockType</a> = <a class="elRef" href="http://en.cppreference.com/w/cpp/thread/unique_lock.html">std::unique_lock</a>&lt;<a class="elRef" href="http://en.cppreference.com/w/cpp/thread/recursive_mutex.html">std::recursive_mutex</a>&gt;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="PeerSet_8h_source.html#l00051">51</a> of file <a class="el" href="PeerSet_8h_source.html">PeerSet.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a496be98fd2d19b2e01c9495c8ff3d069"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a496be98fd2d19b2e01c9495c8ff3d069">&#9670;&nbsp;</a></span>PeerSet()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ripple::PeerSet::PeerSet </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1Application.html">Application</a> &amp;&#160;</td>
<td class="paramname"><em>app</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> const &amp;&#160;</td>
<td class="paramname"><em>hash</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a>&#160;</td>
<td class="paramname"><em>interval</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classbeast_1_1Journal.html">beast::Journal</a>&#160;</td>
<td class="paramname"><em>journal</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="PeerSet_8cpp_source.html#l00029">29</a> of file <a class="el" href="PeerSet_8cpp_source.html">PeerSet.cpp</a>.</p>
</div>
</div>
<a id="a22815d04e8927297736623dbfafa24a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a22815d04e8927297736623dbfafa24a6">&#9670;&nbsp;</a></span>~PeerSet()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ripple::PeerSet::~PeerSet </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a4557b201391f7d1b5e11af49560ff3ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4557b201391f7d1b5e11af49560ff3ee">&#9670;&nbsp;</a></span>addPeers()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::PeerSet::addPeers </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a>&#160;</td>
<td class="paramname"><em>limit</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt; bool(<a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1Peer.html">Peer</a> &gt; const &amp;)&gt;&#160;</td>
<td class="paramname"><em>score</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Add at most <code>limit</code> peers to this set from the overlay. </p>
<p class="definition">Definition at line <a class="el" href="PeerSet_8cpp_source.html#l00050">50</a> of file <a class="el" href="PeerSet_8cpp_source.html">PeerSet.cpp</a>.</p>
</div>
</div>
<a id="a9ce55399eb28bc79e4397b7455af8aec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9ce55399eb28bc79e4397b7455af8aec">&#9670;&nbsp;</a></span>onPeerAdded()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void ripple::PeerSet::onPeerAdded </td>
<td>(</td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1Peer.html">Peer</a> &gt; const &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Hook called from <a class="el" href="classripple_1_1PeerSet.html#a4557b201391f7d1b5e11af49560ff3ee" title="Add at most limit peers to this set from the overlay.">addPeers()</a>. </p>
<p>Implemented in <a class="el" href="classripple_1_1InboundLedger.html#a7d35d2afc9c0f8ea11d241cb352cc675">ripple::InboundLedger</a>, and <a class="el" href="classripple_1_1TransactionAcquire.html#aebb867d525e6ea79a7a856c23b724734">ripple::TransactionAcquire</a>.</p>
</div>
</div>
<a id="ac0416d2dcd2e5eb8801f55b03f4875e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac0416d2dcd2e5eb8801f55b03f4875e1">&#9670;&nbsp;</a></span>onTimer()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void ripple::PeerSet::onTimer </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>progress</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1PeerSet.html#a90a3672f3016e5d1c6128061879ec41e">ScopedLockType</a> &amp;&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Hook called from <a class="el" href="classripple_1_1PeerSet.html#af519e54b016eff0b244aceba65944e55" title="Calls onTimer() if in the right state.">invokeOnTimer()</a>. </p>
<p>Implemented in <a class="el" href="classripple_1_1InboundLedger.html#abb06c0dd36a6e78848ce2bb0ff9258e7">ripple::InboundLedger</a>, and <a class="el" href="classripple_1_1TransactionAcquire.html#a3c478137ad5621d4290f242c6de834ba">ripple::TransactionAcquire</a>.</p>
</div>
</div>
<a id="a46bc82ece5fd76d43a6206fa7714d13b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a46bc82ece5fd76d43a6206fa7714d13b">&#9670;&nbsp;</a></span>queueJob()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void ripple::PeerSet::queueJob </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Queue a job to call <a class="el" href="classripple_1_1PeerSet.html#af519e54b016eff0b244aceba65944e55" title="Calls onTimer() if in the right state.">invokeOnTimer()</a>. </p>
<p>Implemented in <a class="el" href="classripple_1_1InboundLedger.html#a053057694f4cef35279b5825cdc73406">ripple::InboundLedger</a>, and <a class="el" href="classripple_1_1TransactionAcquire.html#a47afa8da1fb2bfd6540573a303ce0657">ripple::TransactionAcquire</a>.</p>
</div>
</div>
<a id="af1c64f5cd21f67f9e232c42195aed820"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1c64f5cd21f67f9e232c42195aed820">&#9670;&nbsp;</a></span>pmDowncast()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="elRef" href="http://en.cppreference.com/w/cpp/memory/weak_ptr.html">std::weak_ptr</a>&lt;<a class="el" href="classripple_1_1PeerSet.html">PeerSet</a>&gt; ripple::PeerSet::pmDowncast </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Return a weak pointer to this. </p>
<p>Implemented in <a class="el" href="classripple_1_1InboundLedger.html#a48200c48c1b400de18691502dc89dce7">ripple::InboundLedger</a>, and <a class="el" href="classripple_1_1TransactionAcquire.html#ac30842a6e54deecb72f2b60aa412f6d6">ripple::TransactionAcquire</a>.</p>
</div>
</div>
<a id="a92cd86e610ddc3c75bfa4a613dd42285"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a92cd86e610ddc3c75bfa4a613dd42285">&#9670;&nbsp;</a></span>isDone()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ripple::PeerSet::isDone </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="PeerSet_8h_source.html#l00084">84</a> of file <a class="el" href="PeerSet_8h_source.html">PeerSet.h</a>.</p>
</div>
</div>
<a id="af519e54b016eff0b244aceba65944e55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af519e54b016eff0b244aceba65944e55">&#9670;&nbsp;</a></span>invokeOnTimer()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::PeerSet::invokeOnTimer </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Calls <a class="el" href="classripple_1_1PeerSet.html#ac0416d2dcd2e5eb8801f55b03f4875e1" title="Hook called from invokeOnTimer().">onTimer()</a> if in the right state. </p>
<p class="definition">Definition at line <a class="el" href="PeerSet_8cpp_source.html#l00101">101</a> of file <a class="el" href="PeerSet_8cpp_source.html">PeerSet.cpp</a>.</p>
</div>
</div>
<a id="abb0ae391c3b73fdb47a4bca7069b97f4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abb0ae391c3b73fdb47a4bca7069b97f4">&#9670;&nbsp;</a></span>sendRequest()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::PeerSet::sendRequest </td>
<td>(</td>
<td class="paramtype">const protocol::TMGetLedger &amp;&#160;</td>
<td class="paramname"><em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1Peer.html">Peer</a> &gt; const &amp;&#160;</td>
<td class="paramname"><em>peer</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Send a GetLedger message to one or all peers. </p>
<p class="definition">Definition at line <a class="el" href="PeerSet_8cpp_source.html#l00127">127</a> of file <a class="el" href="PeerSet_8cpp_source.html">PeerSet.cpp</a>.</p>
</div>
</div>
<a id="addc5e94d9df5ad4a25e9afb735984cf3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#addc5e94d9df5ad4a25e9afb735984cf3">&#9670;&nbsp;</a></span>setTimer()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ripple::PeerSet::setTimer </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Schedule a call to <a class="el" href="classripple_1_1PeerSet.html#a46bc82ece5fd76d43a6206fa7714d13b" title="Queue a job to call invokeOnTimer().">queueJob()</a> after mTimerInterval. </p>
<p class="definition">Definition at line <a class="el" href="PeerSet_8cpp_source.html#l00087">87</a> of file <a class="el" href="PeerSet_8cpp_source.html">PeerSet.cpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a706a011ba681781598055237f2d7fdaf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a706a011ba681781598055237f2d7fdaf">&#9670;&nbsp;</a></span>app_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classripple_1_1Application.html">Application</a>&amp; ripple::PeerSet::app_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="PeerSet_8h_source.html#l00105">105</a> of file <a class="el" href="PeerSet_8h_source.html">PeerSet.h</a>.</p>
</div>
</div>
<a id="a63e0e407163a2e3f9fcd9135f519b5d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a63e0e407163a2e3f9fcd9135f519b5d1">&#9670;&nbsp;</a></span>m_journal</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classbeast_1_1Journal.html">beast::Journal</a> ripple::PeerSet::m_journal</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="PeerSet_8h_source.html#l00106">106</a> of file <a class="el" href="PeerSet_8h_source.html">PeerSet.h</a>.</p>
</div>
</div>
<a id="ab4fa0ea92f95d96e69d2149e23d02ea4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab4fa0ea92f95d96e69d2149e23d02ea4">&#9670;&nbsp;</a></span>mLock</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/recursive_mutex.html">std::recursive_mutex</a> ripple::PeerSet::mLock</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="PeerSet_8h_source.html#l00108">108</a> of file <a class="el" href="PeerSet_8h_source.html">PeerSet.h</a>.</p>
</div>
</div>
<a id="a0a79a33d6012ccbc0f7e21e561d8f113"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a79a33d6012ccbc0f7e21e561d8f113">&#9670;&nbsp;</a></span>mHash</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> ripple::PeerSet::mHash</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The hash of the object (in practice, always a ledger) we are trying to fetch. </p>
<p class="definition">Definition at line <a class="el" href="PeerSet_8h_source.html#l00112">112</a> of file <a class="el" href="PeerSet_8h_source.html">PeerSet.h</a>.</p>
</div>
</div>
<a id="ae9b6f50ad29c4a6838652f98d5cca7e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae9b6f50ad29c4a6838652f98d5cca7e3">&#9670;&nbsp;</a></span>mTimeouts</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int ripple::PeerSet::mTimeouts</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="PeerSet_8h_source.html#l00113">113</a> of file <a class="el" href="PeerSet_8h_source.html">PeerSet.h</a>.</p>
</div>
</div>
<a id="a5e8e26a4201b05c805959c7fc909ec84"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5e8e26a4201b05c805959c7fc909ec84">&#9670;&nbsp;</a></span>mComplete</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ripple::PeerSet::mComplete</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="PeerSet_8h_source.html#l00114">114</a> of file <a class="el" href="PeerSet_8h_source.html">PeerSet.h</a>.</p>
</div>
</div>
<a id="a9a7d358bfb4c9ca39cbe143a270d6123"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9a7d358bfb4c9ca39cbe143a270d6123">&#9670;&nbsp;</a></span>mFailed</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ripple::PeerSet::mFailed</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="PeerSet_8h_source.html#l00115">115</a> of file <a class="el" href="PeerSet_8h_source.html">PeerSet.h</a>.</p>
</div>
</div>
<a id="ab291c226238498bf28b4ffad090b47e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab291c226238498bf28b4ffad090b47e1">&#9670;&nbsp;</a></span>mProgress</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ripple::PeerSet::mProgress</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Whether forward progress has been made. </p>
<p class="definition">Definition at line <a class="el" href="PeerSet_8h_source.html#l00117">117</a> of file <a class="el" href="PeerSet_8h_source.html">PeerSet.h</a>.</p>
</div>
</div>
<a id="a0652998669e63104bf8da3c0eafbe270"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0652998669e63104bf8da3c0eafbe270">&#9670;&nbsp;</a></span>mPeers</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/container/set.html">std::set</a>&lt;<a class="el" href="classripple_1_1Peer.html#a56cc3cdd9c73921f23cb43a2bfa696a1">Peer::id_t</a>&gt; ripple::PeerSet::mPeers</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The identifiers of the peers we are tracking. </p>
<p class="definition">Definition at line <a class="el" href="PeerSet_8h_source.html#l00120">120</a> of file <a class="el" href="PeerSet_8h_source.html">PeerSet.h</a>.</p>
</div>
</div>
<a id="a6c83fd1c266d3fa99adb07d0075f201c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c83fd1c266d3fa99adb07d0075f201c">&#9670;&nbsp;</a></span>mTimerInterval</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a> ripple::PeerSet::mTimerInterval</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The minimum time to wait between calls to execute(). </p>
<p class="definition">Definition at line <a class="el" href="PeerSet_8h_source.html#l00124">124</a> of file <a class="el" href="PeerSet_8h_source.html">PeerSet.h</a>.</p>
</div>
</div>
<a id="afab2c5b6dc398605d06502c282f11b56"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afab2c5b6dc398605d06502c282f11b56">&#9670;&nbsp;</a></span>mTimer</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">boost::asio::basic_waitable_timer&lt;<a class="elRef" href="http://en.cppreference.com/w/cpp/chrono/steady_clock.html">std::chrono::steady_clock</a>&gt; ripple::PeerSet::mTimer</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="PeerSet_8h_source.html#l00126">126</a> of file <a class="el" href="PeerSet_8h_source.html">PeerSet.h</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>