Files
rippled/ConsensusTypes_8h_source.html
2025-08-19 09:49:50 -07:00

348 lines
59 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" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>rippled: ConsensusTypes.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">rippled
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function() { init_codefold(0); });
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_a62226f9e3a6c7c5a3be455e2f87ae01.html">xrpld</a></li><li class="navelem"><a class="el" href="dir_a45383be4b466e94d1f055eccb2c6f46.html">consensus</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">ConsensusTypes.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">//------------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">/*</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> This file is part of rippled: https://github.com/ripple/rippled</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> Copyright (c) 2012-2017 Ripple Labs Inc.</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment"></span> </div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment"> Permission to use, copy, modify, and/or distribute this software for any</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"> purpose with or without fee is hereby granted, provided that the above</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment"> copyright notice and this permission notice appear in all copies.</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment"></span> </div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment"> THE SOFTWARE IS PROVIDED &quot;AS IS&quot; AND THE AUTHOR DISCLAIMS ALL WARRANTIES</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment"> ANY SPECIAL , DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment"> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment"> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment"> OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment">*/</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment">//==============================================================================</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#ifndef RIPPLE_CONSENSUS_CONSENSUS_TYPES_H_INCLUDED</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#define RIPPLE_CONSENSUS_CONSENSUS_TYPES_H_INCLUDED</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#include &lt;xrpld/consensus/ConsensusProposal.h&gt;</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#include &lt;xrpld/consensus/DisputedTx.h&gt;</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor">#include &lt;xrpl/basics/chrono.h&gt;</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#include &lt;<a class="codeRef" href="http://en.cppreference.com/w/cpp/header/chrono.html">chrono</a>&gt;</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#include &lt;<a class="codeRef" href="http://en.cppreference.com/w/cpp/header/map.html">map</a>&gt;</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceripple.html">ripple</a> {</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
<div class="foldopen" id="foldopen00057" data-start="{" data-end="};">
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563e"> 57</a></span><span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563e">ConsensusMode</a> {</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <a class="code hl_enumvalue" href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563ea80dcf57f5ecd4be3cbfa37eccbcb6f44">proposing</a>,</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <a class="code hl_enumvalue" href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563eaea5234685f43dcab142e132c0e7be2ce">observing</a>,</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <a class="code hl_enumvalue" href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563ea1dde5f68261b60a2e4655f5ad1f13e0b">wrongLedger</a>,</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <a class="code hl_enumvalue" href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563eabc8904337817db1a59f2a10ed405b817">switchedLedger</a></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span>};</div>
</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="keyword">inline</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div>
<div class="foldopen" id="foldopen00072" data-start="{" data-end="}">
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"><a class="line" href="namespaceripple.html#adc3c30f5af69be2fb015915e83bec5ff"> 72</a></span><a class="code hl_function" href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">to_string</a>(<a class="code hl_enumeration" href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563e">ConsensusMode</a> m)</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span>{</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keywordflow">switch</span> (m)</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> {</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563ea80dcf57f5ecd4be3cbfa37eccbcb6f44">ConsensusMode::proposing</a>:</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordflow">return</span> <span class="stringliteral">&quot;proposing&quot;</span>;</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563eaea5234685f43dcab142e132c0e7be2ce">ConsensusMode::observing</a>:</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordflow">return</span> <span class="stringliteral">&quot;observing&quot;</span>;</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563ea1dde5f68261b60a2e4655f5ad1f13e0b">ConsensusMode::wrongLedger</a>:</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keywordflow">return</span> <span class="stringliteral">&quot;wrongLedger&quot;</span>;</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563eabc8904337817db1a59f2a10ed405b817">ConsensusMode::switchedLedger</a>:</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <span class="keywordflow">return</span> <span class="stringliteral">&quot;switchedLedger&quot;</span>;</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keywordflow">return</span> <span class="stringliteral">&quot;unknown&quot;</span>;</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> }</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span>}</div>
</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> </div>
<div class="foldopen" id="foldopen00105" data-start="{" data-end="};">
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"><a class="line" href="namespaceripple.html#a77adb10ef53a2e25195ccd38b46bfe9b"> 105</a></span><span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespaceripple.html#a77adb10ef53a2e25195ccd38b46bfe9b">ConsensusPhase</a> {</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <a class="code hl_enumvalue" href="namespaceripple.html#a77adb10ef53a2e25195ccd38b46bfe9ba7cef8a734855777c2a9d0caf42666e69">open</a>,</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <a class="code hl_enumvalue" href="namespaceripple.html#a77adb10ef53a2e25195ccd38b46bfe9bacfaa89ec89b7e4605665cdc0069a56e1">establish</a>,</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> </div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <a class="code hl_enumvalue" href="namespaceripple.html#a8a16d6f665a032453ec4cbfca01929b6a3e4d891a5df3d6d0d7dd9432a1bc6470">accepted</a>,</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span>};</div>
</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> </div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="keyword">inline</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div>
<div class="foldopen" id="foldopen00119" data-start="{" data-end="}">
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"><a class="line" href="namespaceripple.html#adacaa5bdc65e1615b5485f9b0b9b72f1"> 119</a></span><a class="code hl_function" href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">to_string</a>(<a class="code hl_enumeration" href="namespaceripple.html#a77adb10ef53a2e25195ccd38b46bfe9b">ConsensusPhase</a> p)</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span>{</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="keywordflow">switch</span> (p)</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> {</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceripple.html#a77adb10ef53a2e25195ccd38b46bfe9ba7cef8a734855777c2a9d0caf42666e69">ConsensusPhase::open</a>:</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">return</span> <span class="stringliteral">&quot;open&quot;</span>;</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceripple.html#a77adb10ef53a2e25195ccd38b46bfe9bacfaa89ec89b7e4605665cdc0069a56e1">ConsensusPhase::establish</a>:</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keywordflow">return</span> <span class="stringliteral">&quot;establish&quot;</span>;</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespaceripple.html#a77adb10ef53a2e25195ccd38b46bfe9ba3e4d891a5df3d6d0d7dd9432a1bc6470">ConsensusPhase::accepted</a>:</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keywordflow">return</span> <span class="stringliteral">&quot;accepted&quot;</span>;</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <span class="keywordflow">return</span> <span class="stringliteral">&quot;unknown&quot;</span>;</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> }</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span>}</div>
</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> </div>
<div class="foldopen" id="foldopen00136" data-start="{" data-end="};">
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"><a class="line" href="classripple_1_1ConsensusTimer.html"> 136</a></span><span class="keyword">class </span><a class="code hl_class" href="classripple_1_1ConsensusTimer.html">ConsensusTimer</a></div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span>{</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"><a class="line" href="classripple_1_1ConsensusTimer.html#a84fc1bfda7bcaca6f33df2c8035e301e"> 138</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classripple_1_1ConsensusTimer.html#a84fc1bfda7bcaca6f33df2c8035e301e">time_point</a> = std::chrono::steady_clock::time_point;</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"><a class="line" href="classripple_1_1ConsensusTimer.html#a1b45e06eb52e00903e024c3711e4a868"> 139</a></span> <a class="code hl_typedef" href="classripple_1_1ConsensusTimer.html#a84fc1bfda7bcaca6f33df2c8035e301e">time_point</a> <a class="code hl_variable" href="classripple_1_1ConsensusTimer.html#a1b45e06eb52e00903e024c3711e4a868">start_</a>;</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"><a class="line" href="classripple_1_1ConsensusTimer.html#a69a65edecf1cb8f15ba5040cf9bad19f"> 140</a></span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a> <a class="code hl_variable" href="classripple_1_1ConsensusTimer.html#a69a65edecf1cb8f15ba5040cf9bad19f">dur_</a>;</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> </div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a></div>
<div class="foldopen" id="foldopen00144" data-start="{" data-end="}">
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"><a class="line" href="classripple_1_1ConsensusTimer.html#a3c6486c5da8f92bc3d05c0a45be4f0d8"> 144</a></span> <a class="code hl_function" href="classripple_1_1ConsensusTimer.html#a3c6486c5da8f92bc3d05c0a45be4f0d8">read</a>()<span class="keyword"> const</span></div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classripple_1_1ConsensusTimer.html#a69a65edecf1cb8f15ba5040cf9bad19f">dur_</a>;</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> }</div>
</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> </div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00150" data-start="{" data-end="}">
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"><a class="line" href="classripple_1_1ConsensusTimer.html#aa1622d363e3b90aa2b36c772c1bc9b1f"> 150</a></span> <a class="code hl_function" href="classripple_1_1ConsensusTimer.html#aa1622d363e3b90aa2b36c772c1bc9b1f">tick</a>(<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a> fixed)</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> {</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <a class="code hl_variable" href="classripple_1_1ConsensusTimer.html#a69a65edecf1cb8f15ba5040cf9bad19f">dur_</a> += fixed;</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> }</div>
</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> </div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00156" data-start="{" data-end="}">
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"><a class="line" href="classripple_1_1ConsensusTimer.html#a4ed4c7abd53a5919320beec03501dcc3"> 156</a></span> <a class="code hl_function" href="classripple_1_1ConsensusTimer.html#a4ed4c7abd53a5919320beec03501dcc3">reset</a>(<a class="code hl_typedef" href="classripple_1_1ConsensusTimer.html#a84fc1bfda7bcaca6f33df2c8035e301e">time_point</a> tp)</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> {</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <a class="code hl_variable" href="classripple_1_1ConsensusTimer.html#a1b45e06eb52e00903e024c3711e4a868">start_</a> = tp;</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <a class="code hl_variable" href="classripple_1_1ConsensusTimer.html#a69a65edecf1cb8f15ba5040cf9bad19f">dur_</a> = <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a>{0};</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> }</div>
</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> </div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00163" data-start="{" data-end="}">
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"><a class="line" href="classripple_1_1ConsensusTimer.html#ae7dd7a076b15810123615aa8718981d0"> 163</a></span> <a class="code hl_function" href="classripple_1_1ConsensusTimer.html#ae7dd7a076b15810123615aa8718981d0">tick</a>(<a class="code hl_typedef" href="classripple_1_1ConsensusTimer.html#a84fc1bfda7bcaca6f33df2c8035e301e">time_point</a> tp)</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> {</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keyword">using namespace </span><a class="code hl_namespaceRef" href="http://en.cppreference.com/w/namespacestd_1_1chrono.html">std::chrono</a>;</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <a class="code hl_variable" href="classripple_1_1ConsensusTimer.html#a69a65edecf1cb8f15ba5040cf9bad19f">dur_</a> = duration_cast&lt;milliseconds&gt;(tp - <a class="code hl_variable" href="classripple_1_1ConsensusTimer.html#a1b45e06eb52e00903e024c3711e4a868">start_</a>);</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> }</div>
</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span>};</div>
</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> </div>
<div class="foldopen" id="foldopen00176" data-start="{" data-end="};">
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"><a class="line" href="structripple_1_1ConsensusCloseTimes.html"> 176</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structripple_1_1ConsensusCloseTimes.html">ConsensusCloseTimes</a></div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span>{</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"><a class="line" href="structripple_1_1ConsensusCloseTimes.html#a4fea47eb736eebac2b656982600e51c5"> 178</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="structripple_1_1ConsensusCloseTimes.html#a4fea47eb736eebac2b656982600e51c5">ConsensusCloseTimes</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> </div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"><a class="line" href="structripple_1_1ConsensusCloseTimes.html#ab2a0ce0f8c12886a51768d8ff04e6f29"> 181</a></span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map&lt;NetClock::time_point, int&gt;</a> <a class="code hl_variable" href="structripple_1_1ConsensusCloseTimes.html#ab2a0ce0f8c12886a51768d8ff04e6f29">peers</a>;</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> </div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"><a class="line" href="structripple_1_1ConsensusCloseTimes.html#af2d231be64dcaf4e53b35778a4133edf"> 184</a></span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a> <a class="code hl_variable" href="structripple_1_1ConsensusCloseTimes.html#af2d231be64dcaf4e53b35778a4133edf">self</a>;</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span>};</div>
</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> </div>
<div class="foldopen" id="foldopen00188" data-start="{" data-end="};">
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"><a class="line" href="namespaceripple.html#a79cc3b590c118bd551b693bb333fb9d1"> 188</a></span><span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespaceripple.html#a79cc3b590c118bd551b693bb333fb9d1">ConsensusState</a> {</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa9819bf6e2ef44707a0144da6c874890abafd7322c6e97d25b6299b5d6fe8920b">No</a>, </div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <a class="code hl_enumvalue" href="namespaceripple.html#a79cc3b590c118bd551b693bb333fb9d1a6978081a12147518207c7512374c5c80">MovedOn</a>, </div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> <a class="code hl_enumvalue" href="namespaceripple.html#a79cc3b590c118bd551b693bb333fb9d1a24fe48030f7d3097d5882535b04c3fa8">Expired</a>, </div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa9819bf6e2ef44707a0144da6c874890a93cba07454f06a4a960172bbd6e2a435">Yes</a> </div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span>};</div>
</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> </div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span><span class="keyword">template</span> &lt;<span class="keyword">class</span> Traits&gt;</div>
<div class="foldopen" id="foldopen00204" data-start="{" data-end="};">
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"><a class="line" href="structripple_1_1ConsensusResult.html"> 204</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structripple_1_1ConsensusResult.html">ConsensusResult</a></div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span>{</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"><a class="line" href="structripple_1_1ConsensusResult.html#a0aa93af60fe62a76f9dea5d9bce0e11f"> 206</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structripple_1_1ConsensusResult.html#a0aa93af60fe62a76f9dea5d9bce0e11f">Ledger_t</a> = <span class="keyword">typename</span> Traits::Ledger_t;</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"><a class="line" href="structripple_1_1ConsensusResult.html#ad256400f5a95710ee624ea32cabe0fb8"> 207</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structripple_1_1ConsensusResult.html#ad256400f5a95710ee624ea32cabe0fb8">TxSet_t</a> = <span class="keyword">typename</span> Traits::TxSet_t;</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"><a class="line" href="structripple_1_1ConsensusResult.html#a76adc207d0dd8a218b90d28522c314ab"> 208</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structripple_1_1ConsensusResult.html#a76adc207d0dd8a218b90d28522c314ab">NodeID_t</a> = <span class="keyword">typename</span> Traits::NodeID_t;</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> </div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"><a class="line" href="structripple_1_1ConsensusResult.html#a2cd3c49e589a17f9a09e3dd36737aef3"> 210</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structripple_1_1ConsensusResult.html#a2cd3c49e589a17f9a09e3dd36737aef3">Tx_t</a> = <span class="keyword">typename</span> TxSet_t::Tx;</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"><a class="line" href="structripple_1_1ConsensusResult.html#a6fccc8169f8bbbe6b77fa744df93f431"> 211</a></span> <span class="keyword">using </span><a class="code hl_class" href="classripple_1_1ConsensusProposal.html">Proposal_t</a> = <a class="code hl_class" href="classripple_1_1ConsensusProposal.html">ConsensusProposal</a>&lt;</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <a class="code hl_typedef" href="structripple_1_1ConsensusResult.html#a76adc207d0dd8a218b90d28522c314ab">NodeID_t</a>,</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> <span class="keyword">typename</span> Ledger_t::ID,</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <span class="keyword">typename</span> TxSet_t::ID&gt;;</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"><a class="line" href="structripple_1_1ConsensusResult.html#afbc7370d887e28c1d37c38028d5813aa"> 215</a></span> <span class="keyword">using </span><a class="code hl_class" href="classripple_1_1DisputedTx.html">Dispute_t</a> = <a class="code hl_class" href="classripple_1_1DisputedTx.html">DisputedTx&lt;Tx_t, NodeID_t&gt;</a>;</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> </div>
<div class="foldopen" id="foldopen00217" data-start="{" data-end="}">
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"><a class="line" href="structripple_1_1ConsensusResult.html#a0abf92ad1c40a39ebaf3179451105c12"> 217</a></span> <a class="code hl_function" href="structripple_1_1ConsensusResult.html#a0abf92ad1c40a39ebaf3179451105c12">ConsensusResult</a>(<a class="code hl_typedef" href="structripple_1_1ConsensusResult.html#ad256400f5a95710ee624ea32cabe0fb8">TxSet_t</a>&amp;&amp; s, <a class="code hl_class" href="classripple_1_1ConsensusProposal.html">Proposal_t</a>&amp;&amp; p)</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> : <a class="code hl_variable" href="structripple_1_1ConsensusResult.html#aadd381cc66700d0cbb8a4db94ee1c214">txns</a>{<a class="code hl_namespace" href="namespacestd.html">std</a>::move(s)}, <a class="code hl_variable" href="structripple_1_1ConsensusResult.html#afc0376d9cf4dfd013539594b7b8bbbde">position</a>{<a class="code hl_namespace" href="namespacestd.html">std</a>::move(p)}</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> {</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> XRPL_ASSERT(</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> <a class="code hl_variable" href="structripple_1_1ConsensusResult.html#aadd381cc66700d0cbb8a4db94ee1c214">txns</a>.id() == <a class="code hl_variable" href="structripple_1_1ConsensusResult.html#afc0376d9cf4dfd013539594b7b8bbbde">position</a>.<a class="code hl_function" href="classripple_1_1ConsensusProposal.html#a91e326fe44578217610b5ace9e246004">position</a>(),</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <span class="stringliteral">&quot;ripple::ConsensusResult : valid inputs&quot;</span>);</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> }</div>
</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> </div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"><a class="line" href="structripple_1_1ConsensusResult.html#aadd381cc66700d0cbb8a4db94ee1c214"> 226</a></span> <a class="code hl_typedef" href="structripple_1_1ConsensusResult.html#ad256400f5a95710ee624ea32cabe0fb8">TxSet_t</a> <a class="code hl_variable" href="structripple_1_1ConsensusResult.html#aadd381cc66700d0cbb8a4db94ee1c214">txns</a>;</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> </div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"><a class="line" href="structripple_1_1ConsensusResult.html#afc0376d9cf4dfd013539594b7b8bbbde"> 229</a></span> <a class="code hl_class" href="classripple_1_1ConsensusProposal.html">Proposal_t</a> <a class="code hl_variable" href="structripple_1_1ConsensusResult.html#afc0376d9cf4dfd013539594b7b8bbbde">position</a>;</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> </div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"><a class="line" href="structripple_1_1ConsensusResult.html#a38268e19ebfca7fcd9956b82b474d6cb"> 232</a></span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/container/unordered_map.html">hash_map&lt;typename Tx_t::ID, Dispute_t&gt;</a> <a class="code hl_variable" href="structripple_1_1ConsensusResult.html#a38268e19ebfca7fcd9956b82b474d6cb">disputes</a>;</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> </div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <span class="comment">// Set of TxSet ids we have already compared/created disputes</span></div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"><a class="line" href="structripple_1_1ConsensusResult.html#a56e409e5212229dc0fb8514350fa52b2"> 235</a></span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/container/unordered_set.html">hash_set&lt;typename TxSet_t::ID&gt;</a> <a class="code hl_variable" href="structripple_1_1ConsensusResult.html#a56e409e5212229dc0fb8514350fa52b2">compares</a>;</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> </div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="comment">// Measures the duration of the establish phase for this consensus round</span></div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"><a class="line" href="structripple_1_1ConsensusResult.html#ad1c8143d67980ac53ec5bd8ebf8b9ce3"> 238</a></span> <a class="code hl_class" href="classripple_1_1ConsensusTimer.html">ConsensusTimer</a> <a class="code hl_variable" href="structripple_1_1ConsensusResult.html#ad1c8143d67980ac53ec5bd8ebf8b9ce3">roundTime</a>;</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> </div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> <span class="comment">// Indicates state in which consensus ended. Once in the accept phase</span></div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> <span class="comment">// will be either Yes or MovedOn or Expired</span></div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"><a class="line" href="structripple_1_1ConsensusResult.html#acaf3328683148dad2a2dca4bd50aba7f"> 242</a></span> <a class="code hl_enumeration" href="namespaceripple.html#a79cc3b590c118bd551b693bb333fb9d1">ConsensusState</a> <a class="code hl_variable" href="structripple_1_1ConsensusResult.html#acaf3328683148dad2a2dca4bd50aba7f">state</a> = <a class="code hl_enumvalue" href="namespaceripple.html#a79cc3b590c118bd551b693bb333fb9d1abafd7322c6e97d25b6299b5d6fe8920b">ConsensusState::No</a>;</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> </div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <span class="comment">// The number of peers proposing during the round</span></div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"><a class="line" href="structripple_1_1ConsensusResult.html#adbe9cfc54c331e78706ffcba7a0f35a3"> 245</a></span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> <a class="code hl_variable" href="structripple_1_1ConsensusResult.html#adbe9cfc54c331e78706ffcba7a0f35a3">proposers</a> = 0;</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span>};</div>
</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span>} <span class="comment">// namespace ripple</span></div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> </div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="abasic_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div></div>
<div class="ttc" id="achrono_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/chrono.html">chrono</a></div></div>
<div class="ttc" id="aclassripple_1_1ConsensusProposal_html"><div class="ttname"><a href="classripple_1_1ConsensusProposal.html">ripple::ConsensusProposal&lt; NodeID_t, typename Ledger_t::ID, typename TxSet_t::ID &gt;</a></div></div>
<div class="ttc" id="aclassripple_1_1ConsensusProposal_html_a91e326fe44578217610b5ace9e246004"><div class="ttname"><a href="classripple_1_1ConsensusProposal.html#a91e326fe44578217610b5ace9e246004">ripple::ConsensusProposal::position</a></div><div class="ttdeci">Position_t const &amp; position() const</div><div class="ttdoc">Get the proposed position.</div><div class="ttdef"><b>Definition</b> <a href="ConsensusProposal_8h_source.html#l00104">ConsensusProposal.h:104</a></div></div>
<div class="ttc" id="aclassripple_1_1ConsensusTimer_html"><div class="ttname"><a href="classripple_1_1ConsensusTimer.html">ripple::ConsensusTimer</a></div><div class="ttdoc">Measures the duration of phases of consensus.</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00136">ConsensusTypes.h:137</a></div></div>
<div class="ttc" id="aclassripple_1_1ConsensusTimer_html_a1b45e06eb52e00903e024c3711e4a868"><div class="ttname"><a href="classripple_1_1ConsensusTimer.html#a1b45e06eb52e00903e024c3711e4a868">ripple::ConsensusTimer::start_</a></div><div class="ttdeci">time_point start_</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00139">ConsensusTypes.h:139</a></div></div>
<div class="ttc" id="aclassripple_1_1ConsensusTimer_html_a3c6486c5da8f92bc3d05c0a45be4f0d8"><div class="ttname"><a href="classripple_1_1ConsensusTimer.html#a3c6486c5da8f92bc3d05c0a45be4f0d8">ripple::ConsensusTimer::read</a></div><div class="ttdeci">std::chrono::milliseconds read() const</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00144">ConsensusTypes.h:144</a></div></div>
<div class="ttc" id="aclassripple_1_1ConsensusTimer_html_a4ed4c7abd53a5919320beec03501dcc3"><div class="ttname"><a href="classripple_1_1ConsensusTimer.html#a4ed4c7abd53a5919320beec03501dcc3">ripple::ConsensusTimer::reset</a></div><div class="ttdeci">void reset(time_point tp)</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00156">ConsensusTypes.h:156</a></div></div>
<div class="ttc" id="aclassripple_1_1ConsensusTimer_html_a69a65edecf1cb8f15ba5040cf9bad19f"><div class="ttname"><a href="classripple_1_1ConsensusTimer.html#a69a65edecf1cb8f15ba5040cf9bad19f">ripple::ConsensusTimer::dur_</a></div><div class="ttdeci">std::chrono::milliseconds dur_</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00140">ConsensusTypes.h:140</a></div></div>
<div class="ttc" id="aclassripple_1_1ConsensusTimer_html_a84fc1bfda7bcaca6f33df2c8035e301e"><div class="ttname"><a href="classripple_1_1ConsensusTimer.html#a84fc1bfda7bcaca6f33df2c8035e301e">ripple::ConsensusTimer::time_point</a></div><div class="ttdeci">std::chrono::steady_clock::time_point time_point</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00138">ConsensusTypes.h:138</a></div></div>
<div class="ttc" id="aclassripple_1_1ConsensusTimer_html_aa1622d363e3b90aa2b36c772c1bc9b1f"><div class="ttname"><a href="classripple_1_1ConsensusTimer.html#aa1622d363e3b90aa2b36c772c1bc9b1f">ripple::ConsensusTimer::tick</a></div><div class="ttdeci">void tick(std::chrono::milliseconds fixed)</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00150">ConsensusTypes.h:150</a></div></div>
<div class="ttc" id="aclassripple_1_1ConsensusTimer_html_ae7dd7a076b15810123615aa8718981d0"><div class="ttname"><a href="classripple_1_1ConsensusTimer.html#ae7dd7a076b15810123615aa8718981d0">ripple::ConsensusTimer::tick</a></div><div class="ttdeci">void tick(time_point tp)</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00163">ConsensusTypes.h:163</a></div></div>
<div class="ttc" id="aclassripple_1_1DisputedTx_html"><div class="ttname"><a href="classripple_1_1DisputedTx.html">ripple::DisputedTx</a></div><div class="ttdoc">A transaction discovered to be in dispute during consensus.</div><div class="ttdef"><b>Definition</b> <a href="DisputedTx_8h_source.html#l00048">DisputedTx.h:49</a></div></div>
<div class="ttc" id="aduration_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a></div></div>
<div class="ttc" id="amap_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/map.html">map</a></div></div>
<div class="ttc" id="anamespaceripple_html"><div class="ttname"><a href="namespaceripple.html">ripple</a></div><div class="ttdoc">Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.</div><div class="ttdef"><b>Definition</b> <a href="algorithm_8h_source.html#l00025">algorithm.h:25</a></div></div>
<div class="ttc" id="anamespaceripple_html_a33f8b6e68b5f63faf2e9755cc251563e"><div class="ttname"><a href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563e">ripple::ConsensusMode</a></div><div class="ttdeci">ConsensusMode</div><div class="ttdoc">Represents how a node currently participates in Consensus.</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00057">ConsensusTypes.h:57</a></div></div>
<div class="ttc" id="anamespaceripple_html_a33f8b6e68b5f63faf2e9755cc251563ea1dde5f68261b60a2e4655f5ad1f13e0b"><div class="ttname"><a href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563ea1dde5f68261b60a2e4655f5ad1f13e0b">ripple::ConsensusMode::wrongLedger</a></div><div class="ttdeci">@ wrongLedger</div><div class="ttdoc">We have the wrong ledger and are attempting to acquire it.</div></div>
<div class="ttc" id="anamespaceripple_html_a33f8b6e68b5f63faf2e9755cc251563ea80dcf57f5ecd4be3cbfa37eccbcb6f44"><div class="ttname"><a href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563ea80dcf57f5ecd4be3cbfa37eccbcb6f44">ripple::ConsensusMode::proposing</a></div><div class="ttdeci">@ proposing</div><div class="ttdoc">We are normal participant in consensus and propose our position.</div></div>
<div class="ttc" id="anamespaceripple_html_a33f8b6e68b5f63faf2e9755cc251563eabc8904337817db1a59f2a10ed405b817"><div class="ttname"><a href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563eabc8904337817db1a59f2a10ed405b817">ripple::ConsensusMode::switchedLedger</a></div><div class="ttdeci">@ switchedLedger</div><div class="ttdoc">We switched ledgers since we started this consensus round but are now running on what we believe is t...</div></div>
<div class="ttc" id="anamespaceripple_html_a33f8b6e68b5f63faf2e9755cc251563eaea5234685f43dcab142e132c0e7be2ce"><div class="ttname"><a href="namespaceripple.html#a33f8b6e68b5f63faf2e9755cc251563eaea5234685f43dcab142e132c0e7be2ce">ripple::ConsensusMode::observing</a></div><div class="ttdeci">@ observing</div><div class="ttdoc">We are observing peer positions, but not proposing our position.</div></div>
<div class="ttc" id="anamespaceripple_html_a77adb10ef53a2e25195ccd38b46bfe9b"><div class="ttname"><a href="namespaceripple.html#a77adb10ef53a2e25195ccd38b46bfe9b">ripple::ConsensusPhase</a></div><div class="ttdeci">ConsensusPhase</div><div class="ttdoc">Phases of consensus for a single ledger round.</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00105">ConsensusTypes.h:105</a></div></div>
<div class="ttc" id="anamespaceripple_html_a77adb10ef53a2e25195ccd38b46bfe9ba3e4d891a5df3d6d0d7dd9432a1bc6470"><div class="ttname"><a href="namespaceripple.html#a77adb10ef53a2e25195ccd38b46bfe9ba3e4d891a5df3d6d0d7dd9432a1bc6470">ripple::ConsensusPhase::accepted</a></div><div class="ttdeci">@ accepted</div><div class="ttdoc">We have accepted a new last closed ledger and are waiting on a call to startRound to begin the next c...</div></div>
<div class="ttc" id="anamespaceripple_html_a77adb10ef53a2e25195ccd38b46bfe9ba7cef8a734855777c2a9d0caf42666e69"><div class="ttname"><a href="namespaceripple.html#a77adb10ef53a2e25195ccd38b46bfe9ba7cef8a734855777c2a9d0caf42666e69">ripple::ConsensusPhase::open</a></div><div class="ttdeci">@ open</div><div class="ttdoc">We haven't closed our ledger yet, but others might have.</div></div>
<div class="ttc" id="anamespaceripple_html_a77adb10ef53a2e25195ccd38b46bfe9bacfaa89ec89b7e4605665cdc0069a56e1"><div class="ttname"><a href="namespaceripple.html#a77adb10ef53a2e25195ccd38b46bfe9bacfaa89ec89b7e4605665cdc0069a56e1">ripple::ConsensusPhase::establish</a></div><div class="ttdeci">@ establish</div><div class="ttdoc">Establishing consensus by exchanging proposals with our peers.</div></div>
<div class="ttc" id="anamespaceripple_html_a79cc3b590c118bd551b693bb333fb9d1"><div class="ttname"><a href="namespaceripple.html#a79cc3b590c118bd551b693bb333fb9d1">ripple::ConsensusState</a></div><div class="ttdeci">ConsensusState</div><div class="ttdoc">Whether we have or don't have a consensus.</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00188">ConsensusTypes.h:188</a></div></div>
<div class="ttc" id="anamespaceripple_html_a79cc3b590c118bd551b693bb333fb9d1a24fe48030f7d3097d5882535b04c3fa8"><div class="ttname"><a href="namespaceripple.html#a79cc3b590c118bd551b693bb333fb9d1a24fe48030f7d3097d5882535b04c3fa8">ripple::ConsensusState::Expired</a></div><div class="ttdeci">@ Expired</div><div class="ttdoc">Consensus time limit has hard-expired.</div></div>
<div class="ttc" id="anamespaceripple_html_a79cc3b590c118bd551b693bb333fb9d1a6978081a12147518207c7512374c5c80"><div class="ttname"><a href="namespaceripple.html#a79cc3b590c118bd551b693bb333fb9d1a6978081a12147518207c7512374c5c80">ripple::ConsensusState::MovedOn</a></div><div class="ttdeci">@ MovedOn</div><div class="ttdoc">The network has consensus without us.</div></div>
<div class="ttc" id="anamespaceripple_html_a79cc3b590c118bd551b693bb333fb9d1abafd7322c6e97d25b6299b5d6fe8920b"><div class="ttname"><a href="namespaceripple.html#a79cc3b590c118bd551b693bb333fb9d1abafd7322c6e97d25b6299b5d6fe8920b">ripple::ConsensusState::No</a></div><div class="ttdeci">@ No</div><div class="ttdoc">We do not have consensus.</div></div>
<div class="ttc" id="anamespaceripple_html_a8a16d6f665a032453ec4cbfca01929b6a3e4d891a5df3d6d0d7dd9432a1bc6470"><div class="ttname"><a href="namespaceripple.html#a8a16d6f665a032453ec4cbfca01929b6a3e4d891a5df3d6d0d7dd9432a1bc6470">ripple::ManifestDisposition::accepted</a></div><div class="ttdeci">@ accepted</div><div class="ttdoc">Manifest is valid.</div></div>
<div class="ttc" id="anamespaceripple_html_aa9819bf6e2ef44707a0144da6c874890a93cba07454f06a4a960172bbd6e2a435"><div class="ttname"><a href="namespaceripple.html#aa9819bf6e2ef44707a0144da6c874890a93cba07454f06a4a960172bbd6e2a435">ripple::IsDeposit::Yes</a></div><div class="ttdeci">@ Yes</div></div>
<div class="ttc" id="anamespaceripple_html_aa9819bf6e2ef44707a0144da6c874890abafd7322c6e97d25b6299b5d6fe8920b"><div class="ttname"><a href="namespaceripple.html#aa9819bf6e2ef44707a0144da6c874890abafd7322c6e97d25b6299b5d6fe8920b">ripple::IsDeposit::No</a></div><div class="ttdeci">@ No</div></div>
<div class="ttc" id="anamespaceripple_html_ac124fe6744b7fe887dec949b56b16d50"><div class="ttname"><a href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">ripple::to_string</a></div><div class="ttdeci">std::string to_string(base_uint&lt; Bits, Tag &gt; const &amp;a)</div><div class="ttdef"><b>Definition</b> <a href="base__uint_8h_source.html#l00630">base_uint.h:630</a></div></div>
<div class="ttc" id="anamespacestd_1_1chrono_html"><div class="ttname"><a href="http://en.cppreference.com/w/namespacestd_1_1chrono.html">std::chrono</a></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>
<div class="ttc" id="asize_t_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusCloseTimes_html"><div class="ttname"><a href="structripple_1_1ConsensusCloseTimes.html">ripple::ConsensusCloseTimes</a></div><div class="ttdoc">Stores the set of initial close times.</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00176">ConsensusTypes.h:177</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusCloseTimes_html_a4fea47eb736eebac2b656982600e51c5"><div class="ttname"><a href="structripple_1_1ConsensusCloseTimes.html#a4fea47eb736eebac2b656982600e51c5">ripple::ConsensusCloseTimes::ConsensusCloseTimes</a></div><div class="ttdeci">ConsensusCloseTimes()=default</div></div>
<div class="ttc" id="astructripple_1_1ConsensusCloseTimes_html_ab2a0ce0f8c12886a51768d8ff04e6f29"><div class="ttname"><a href="structripple_1_1ConsensusCloseTimes.html#ab2a0ce0f8c12886a51768d8ff04e6f29">ripple::ConsensusCloseTimes::peers</a></div><div class="ttdeci">std::map&lt; NetClock::time_point, int &gt; peers</div><div class="ttdoc">Close time estimates, keep ordered for predictable traverse.</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00181">ConsensusTypes.h:181</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusCloseTimes_html_af2d231be64dcaf4e53b35778a4133edf"><div class="ttname"><a href="structripple_1_1ConsensusCloseTimes.html#af2d231be64dcaf4e53b35778a4133edf">ripple::ConsensusCloseTimes::self</a></div><div class="ttdeci">NetClock::time_point self</div><div class="ttdoc">Our close time estimate.</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00184">ConsensusTypes.h:184</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusResult_html"><div class="ttname"><a href="structripple_1_1ConsensusResult.html">ripple::ConsensusResult</a></div><div class="ttdoc">Encapsulates the result of consensus.</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00204">ConsensusTypes.h:205</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusResult_html_a0aa93af60fe62a76f9dea5d9bce0e11f"><div class="ttname"><a href="structripple_1_1ConsensusResult.html#a0aa93af60fe62a76f9dea5d9bce0e11f">ripple::ConsensusResult::Ledger_t</a></div><div class="ttdeci">typename Traits::Ledger_t Ledger_t</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00206">ConsensusTypes.h:206</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusResult_html_a0abf92ad1c40a39ebaf3179451105c12"><div class="ttname"><a href="structripple_1_1ConsensusResult.html#a0abf92ad1c40a39ebaf3179451105c12">ripple::ConsensusResult::ConsensusResult</a></div><div class="ttdeci">ConsensusResult(TxSet_t &amp;&amp;s, Proposal_t &amp;&amp;p)</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00217">ConsensusTypes.h:217</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusResult_html_a2cd3c49e589a17f9a09e3dd36737aef3"><div class="ttname"><a href="structripple_1_1ConsensusResult.html#a2cd3c49e589a17f9a09e3dd36737aef3">ripple::ConsensusResult::Tx_t</a></div><div class="ttdeci">typename TxSet_t::Tx Tx_t</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00210">ConsensusTypes.h:210</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusResult_html_a38268e19ebfca7fcd9956b82b474d6cb"><div class="ttname"><a href="structripple_1_1ConsensusResult.html#a38268e19ebfca7fcd9956b82b474d6cb">ripple::ConsensusResult::disputes</a></div><div class="ttdeci">hash_map&lt; typename Tx_t::ID, Dispute_t &gt; disputes</div><div class="ttdoc">Transactions which are under dispute with our peers.</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00232">ConsensusTypes.h:232</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusResult_html_a56e409e5212229dc0fb8514350fa52b2"><div class="ttname"><a href="structripple_1_1ConsensusResult.html#a56e409e5212229dc0fb8514350fa52b2">ripple::ConsensusResult::compares</a></div><div class="ttdeci">hash_set&lt; typename TxSet_t::ID &gt; compares</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00235">ConsensusTypes.h:235</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusResult_html_a76adc207d0dd8a218b90d28522c314ab"><div class="ttname"><a href="structripple_1_1ConsensusResult.html#a76adc207d0dd8a218b90d28522c314ab">ripple::ConsensusResult::NodeID_t</a></div><div class="ttdeci">typename Traits::NodeID_t NodeID_t</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00208">ConsensusTypes.h:208</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusResult_html_aadd381cc66700d0cbb8a4db94ee1c214"><div class="ttname"><a href="structripple_1_1ConsensusResult.html#aadd381cc66700d0cbb8a4db94ee1c214">ripple::ConsensusResult::txns</a></div><div class="ttdeci">TxSet_t txns</div><div class="ttdoc">The set of transactions consensus agrees go in the ledger.</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00226">ConsensusTypes.h:226</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusResult_html_acaf3328683148dad2a2dca4bd50aba7f"><div class="ttname"><a href="structripple_1_1ConsensusResult.html#acaf3328683148dad2a2dca4bd50aba7f">ripple::ConsensusResult::state</a></div><div class="ttdeci">ConsensusState state</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00242">ConsensusTypes.h:242</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusResult_html_ad1c8143d67980ac53ec5bd8ebf8b9ce3"><div class="ttname"><a href="structripple_1_1ConsensusResult.html#ad1c8143d67980ac53ec5bd8ebf8b9ce3">ripple::ConsensusResult::roundTime</a></div><div class="ttdeci">ConsensusTimer roundTime</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00238">ConsensusTypes.h:238</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusResult_html_ad256400f5a95710ee624ea32cabe0fb8"><div class="ttname"><a href="structripple_1_1ConsensusResult.html#ad256400f5a95710ee624ea32cabe0fb8">ripple::ConsensusResult::TxSet_t</a></div><div class="ttdeci">typename Traits::TxSet_t TxSet_t</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00207">ConsensusTypes.h:207</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusResult_html_adbe9cfc54c331e78706ffcba7a0f35a3"><div class="ttname"><a href="structripple_1_1ConsensusResult.html#adbe9cfc54c331e78706ffcba7a0f35a3">ripple::ConsensusResult::proposers</a></div><div class="ttdeci">std::size_t proposers</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00245">ConsensusTypes.h:245</a></div></div>
<div class="ttc" id="astructripple_1_1ConsensusResult_html_afc0376d9cf4dfd013539594b7b8bbbde"><div class="ttname"><a href="structripple_1_1ConsensusResult.html#afc0376d9cf4dfd013539594b7b8bbbde">ripple::ConsensusResult::position</a></div><div class="ttdeci">Proposal_t position</div><div class="ttdoc">Our proposed position on transactions/close time.</div><div class="ttdef"><b>Definition</b> <a href="ConsensusTypes_8h_source.html#l00229">ConsensusTypes.h:229</a></div></div>
<div class="ttc" id="atime_point_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/time_point.html">std::chrono::time_point</a></div></div>
<div class="ttc" id="aunordered_map_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/unordered_map.html">std::unordered_map</a></div></div>
<div class="ttc" id="aunordered_set_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/unordered_set.html">std::unordered_set</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>