This commit is contained in:
bthomee
2025-03-11 18:21:06 +00:00
parent 95e4a9d650
commit 4ba075f689
2527 changed files with 275798 additions and 275583 deletions

View File

@@ -100,91 +100,93 @@ $(function() {
<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;xrpl/server/WSSession.h&gt;</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#include &lt;xrpl/server/detail/BaseHTTPPeer.h&gt;</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#include &lt;boost/asio/ip/tcp.hpp&gt;</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor">#include &lt;boost/asio/ssl/context.hpp&gt;</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#include &lt;boost/asio/ssl/stream.hpp&gt;</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#include &lt;boost/beast/core/tcp_stream.hpp&gt;</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#include &lt;boost/beast/ssl/ssl_stream.hpp&gt;</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#include &lt;boost/beast/websocket/ssl.hpp&gt;</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#include &lt;<a class="codeRef" href="http://en.cppreference.com/w/cpp/header/memory.html">memory</a>&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;boost/asio/ip/tcp.hpp&gt;</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#include &lt;boost/asio/ssl/context.hpp&gt;</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#include &lt;boost/asio/ssl/stream.hpp&gt;</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#include &lt;boost/beast/core/tcp_stream.hpp&gt;</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#include &lt;boost/beast/ssl/ssl_stream.hpp&gt;</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#include &lt;boost/beast/websocket/ssl.hpp&gt;</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceripple.html">ripple</a> {</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor">#include &lt;<a class="codeRef" href="http://en.cppreference.com/w/cpp/header/memory.html">memory</a>&gt;</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="keyword">template</span> &lt;<span class="keyword">class</span> Handler&gt;</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="classripple_1_1SSLWSPeer.html"> 36</a></span><span class="keyword">class </span><a class="code hl_class" href="classripple_1_1SSLWSPeer.html">SSLWSPeer</a> : <span class="keyword">public</span> <a class="code hl_class" href="classripple_1_1BaseWSPeer.html">BaseWSPeer</a>&lt;Handler, SSLWSPeer&lt;Handler&gt;&gt;,</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">public</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/enable_shared_from_this.html">std::enable_shared_from_this</a>&lt;SSLWSPeer&lt;Handler&gt;&gt;</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span>{</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code hl_class" href="classripple_1_1BasePeer.html">BasePeer</a>&lt;Handler, <a class="code hl_class" href="classripple_1_1SSLWSPeer.html">SSLWSPeer</a>&gt;;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code hl_class" href="classripple_1_1BaseWSPeer.html">BaseWSPeer</a>&lt;Handler, <a class="code hl_class" href="classripple_1_1SSLWSPeer.html">SSLWSPeer</a>&gt;;</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="classripple_1_1SSLWSPeer.html#ab378343cf70bf35c248762d31cf6094d"> 42</a></span> <span class="keyword">using </span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/chrono/system_clock.html">clock_type</a> = <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/chrono/system_clock.html">std::chrono::system_clock</a>;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="classripple_1_1SSLWSPeer.html#aa6f2bccfec303c52d590d422cfb8d71c"> 43</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classripple_1_1SSLWSPeer.html#aa6f2bccfec303c52d590d422cfb8d71c">error_code</a> = boost::system::error_code;</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="classripple_1_1SSLWSPeer.html#a81f6c16a826a0889e7491b3e7f3d9d74"> 44</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classripple_1_1SSLWSPeer.html#a81f6c16a826a0889e7491b3e7f3d9d74">endpoint_type</a> = boost::asio::ip::tcp::endpoint;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="classripple_1_1SSLWSPeer.html#a67d555feb28ca52e3afb48a4b8e3fbf4"> 45</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classripple_1_1SSLWSPeer.html#a67d555feb28ca52e3afb48a4b8e3fbf4">socket_type</a> = boost::beast::tcp_stream;</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="classripple_1_1SSLWSPeer.html#a37ef59f3ed9883a9019577cad57debd9"> 46</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classripple_1_1SSLWSPeer.html#a37ef59f3ed9883a9019577cad57debd9">stream_type</a> = boost::beast::ssl_stream&lt;socket_type&gt;;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="classripple_1_1SSLWSPeer.html#ae24e8b72e2546b308ae12045474e35a2"> 47</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classripple_1_1SSLWSPeer.html#ae24e8b72e2546b308ae12045474e35a2">waitable_timer</a> = boost::asio::basic_waitable_timer&lt;clock_type&gt;;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="classripple_1_1SSLWSPeer.html#a52ec3f49deca43ee1d5edaf220f4786a"> 49</a></span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr&lt;stream_type&gt;</a> <a class="code hl_variable" href="classripple_1_1SSLWSPeer.html#a52ec3f49deca43ee1d5edaf220f4786a">stream_ptr_</a>;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="classripple_1_1SSLWSPeer.html#a0dea5585c59f8ca910f53d7f9906939c"> 50</a></span> boost::beast::websocket::stream&lt;stream_type&amp;&gt; <a class="code hl_variable" href="classripple_1_1SSLWSPeer.html#a0dea5585c59f8ca910f53d7f9906939c">ws_</a>;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> Body, <span class="keyword">class</span> Headers&gt;</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <a class="code hl_class" href="classripple_1_1SSLWSPeer.html">SSLWSPeer</a>(</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <a class="code hl_struct" href="structripple_1_1Port.html">Port</a> <span class="keyword">const</span>&amp; <a class="code hl_function" href="classripple_1_1BaseWSPeer.html#a894b1e36aaef17cc7bc2e5620db1126e">port</a>,</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> Handler&amp; handler,</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <a class="code hl_typedef" href="classripple_1_1SSLWSPeer.html#a81f6c16a826a0889e7491b3e7f3d9d74">endpoint_type</a> <a class="code hl_function" href="classripple_1_1BaseWSPeer.html#a8276d7fe8845272d9794f38b798508bf">remote_endpoint</a>,</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> boost::beast::http::request&lt;Body, Headers&gt;&amp;&amp; <a class="code hl_function" href="classripple_1_1BaseWSPeer.html#a2327c1c59bad48a2c4972b8b5b593de8">request</a>,</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr&lt;stream_type&gt;</a>&amp;&amp; stream_ptr,</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <a class="code hl_class" href="classbeast_1_1Journal.html">beast::Journal</a> journal);</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span>};</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="comment">//------------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceripple.html">ripple</a> {</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="keyword">template</span> &lt;<span class="keyword">class</span> Handler&gt;</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="classripple_1_1SSLWSPeer.html"> 38</a></span><span class="keyword">class </span><a class="code hl_class" href="classripple_1_1SSLWSPeer.html">SSLWSPeer</a> : <span class="keyword">public</span> <a class="code hl_class" href="classripple_1_1BaseWSPeer.html">BaseWSPeer</a>&lt;Handler, SSLWSPeer&lt;Handler&gt;&gt;,</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">public</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/enable_shared_from_this.html">std::enable_shared_from_this</a>&lt;SSLWSPeer&lt;Handler&gt;&gt;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span>{</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code hl_class" href="classripple_1_1BasePeer.html">BasePeer</a>&lt;Handler, <a class="code hl_class" href="classripple_1_1SSLWSPeer.html">SSLWSPeer</a>&gt;;</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code hl_class" href="classripple_1_1BaseWSPeer.html">BaseWSPeer</a>&lt;Handler, <a class="code hl_class" href="classripple_1_1SSLWSPeer.html">SSLWSPeer</a>&gt;;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="classripple_1_1SSLWSPeer.html#ab378343cf70bf35c248762d31cf6094d"> 44</a></span> <span class="keyword">using </span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/chrono/system_clock.html">clock_type</a> = <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/chrono/system_clock.html">std::chrono::system_clock</a>;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="classripple_1_1SSLWSPeer.html#aa6f2bccfec303c52d590d422cfb8d71c"> 45</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classripple_1_1SSLWSPeer.html#aa6f2bccfec303c52d590d422cfb8d71c">error_code</a> = boost::system::error_code;</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="classripple_1_1SSLWSPeer.html#a81f6c16a826a0889e7491b3e7f3d9d74"> 46</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classripple_1_1SSLWSPeer.html#a81f6c16a826a0889e7491b3e7f3d9d74">endpoint_type</a> = boost::asio::ip::tcp::endpoint;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="classripple_1_1SSLWSPeer.html#a67d555feb28ca52e3afb48a4b8e3fbf4"> 47</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classripple_1_1SSLWSPeer.html#a67d555feb28ca52e3afb48a4b8e3fbf4">socket_type</a> = boost::beast::tcp_stream;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="classripple_1_1SSLWSPeer.html#a37ef59f3ed9883a9019577cad57debd9"> 48</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classripple_1_1SSLWSPeer.html#a37ef59f3ed9883a9019577cad57debd9">stream_type</a> = boost::beast::ssl_stream&lt;socket_type&gt;;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="classripple_1_1SSLWSPeer.html#ae24e8b72e2546b308ae12045474e35a2"> 49</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classripple_1_1SSLWSPeer.html#ae24e8b72e2546b308ae12045474e35a2">waitable_timer</a> = boost::asio::basic_waitable_timer&lt;clock_type&gt;;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="classripple_1_1SSLWSPeer.html#a52ec3f49deca43ee1d5edaf220f4786a"> 51</a></span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr&lt;stream_type&gt;</a> <a class="code hl_variable" href="classripple_1_1SSLWSPeer.html#a52ec3f49deca43ee1d5edaf220f4786a">stream_ptr_</a>;</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="classripple_1_1SSLWSPeer.html#a0dea5585c59f8ca910f53d7f9906939c"> 52</a></span> boost::beast::websocket::stream&lt;stream_type&amp;&gt; <a class="code hl_variable" href="classripple_1_1SSLWSPeer.html#a0dea5585c59f8ca910f53d7f9906939c">ws_</a>;</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> Body, <span class="keyword">class</span> Headers&gt;</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <a class="code hl_class" href="classripple_1_1SSLWSPeer.html">SSLWSPeer</a>(</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <a class="code hl_struct" href="structripple_1_1Port.html">Port</a> <span class="keyword">const</span>&amp; <a class="code hl_function" href="classripple_1_1BaseWSPeer.html#a894b1e36aaef17cc7bc2e5620db1126e">port</a>,</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> Handler&amp; handler,</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <a class="code hl_typedef" href="classripple_1_1SSLWSPeer.html#a81f6c16a826a0889e7491b3e7f3d9d74">endpoint_type</a> <a class="code hl_function" href="classripple_1_1BaseWSPeer.html#a8276d7fe8845272d9794f38b798508bf">remote_endpoint</a>,</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> boost::beast::http::request&lt;Body, Headers&gt;&amp;&amp; <a class="code hl_function" href="classripple_1_1BaseWSPeer.html#a2327c1c59bad48a2c4972b8b5b593de8">request</a>,</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr&lt;stream_type&gt;</a>&amp;&amp; stream_ptr,</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <a class="code hl_class" href="classbeast_1_1Journal.html">beast::Journal</a> journal);</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span>};</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="keyword">template</span> &lt;<span class="keyword">class</span> Handler&gt;</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="keyword">template</span> &lt;<span class="keyword">class</span> Body, <span class="keyword">class</span> Headers&gt;</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="classripple_1_1SSLWSPeer.html#abdaeef3270adf4ef7b64f9e4fc7688fd"> 67</a></span><a class="code hl_function" href="classripple_1_1SSLWSPeer.html#a2abe9169c22d273c36d040b24b835311">SSLWSPeer&lt;Handler&gt;::SSLWSPeer</a>(</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <a class="code hl_struct" href="structripple_1_1Port.html">Port</a> <span class="keyword">const</span>&amp; port,</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> Handler&amp; handler,</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <a class="code hl_typedef" href="classripple_1_1SSLWSPeer.html#a81f6c16a826a0889e7491b3e7f3d9d74">endpoint_type</a> remote_endpoint,</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> boost::beast::http::request&lt;Body, Headers&gt;&amp;&amp; request,</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr&lt;stream_type&gt;</a>&amp;&amp; stream_ptr,</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <a class="code hl_class" href="classbeast_1_1Journal.html">beast::Journal</a> journal)</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> : <a class="code hl_class" href="classripple_1_1BaseWSPeer.html">BaseWSPeer</a>&lt;Handler, <a class="code hl_class" href="classripple_1_1SSLWSPeer.html">SSLWSPeer</a>&gt;(</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> port,</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> handler,</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> stream_ptr-&gt;get_executor(),</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <a class="code hl_typedef" href="classripple_1_1SSLWSPeer.html#ae24e8b72e2546b308ae12045474e35a2">waitable_timer</a>{stream_ptr-&gt;get_executor()},</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> remote_endpoint,</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <a class="code hl_namespace" href="namespacestd.html">std</a>::move(request),</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> journal)</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> , stream_ptr_(<a class="code hl_namespace" href="namespacestd.html">std</a>::move(stream_ptr))</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> , ws_(*stream_ptr_)</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span>{</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</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>} <span class="comment">// namespace ripple</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="comment">//------------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> </div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="keyword">template</span> &lt;<span class="keyword">class</span> Handler&gt;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="keyword">template</span> &lt;<span class="keyword">class</span> Body, <span class="keyword">class</span> Headers&gt;</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="classripple_1_1SSLWSPeer.html#abdaeef3270adf4ef7b64f9e4fc7688fd"> 69</a></span><a class="code hl_function" href="classripple_1_1SSLWSPeer.html#a2abe9169c22d273c36d040b24b835311">SSLWSPeer&lt;Handler&gt;::SSLWSPeer</a>(</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <a class="code hl_struct" href="structripple_1_1Port.html">Port</a> <span class="keyword">const</span>&amp; port,</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> Handler&amp; handler,</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <a class="code hl_typedef" href="classripple_1_1SSLWSPeer.html#a81f6c16a826a0889e7491b3e7f3d9d74">endpoint_type</a> remote_endpoint,</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> boost::beast::http::request&lt;Body, Headers&gt;&amp;&amp; request,</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr&lt;stream_type&gt;</a>&amp;&amp; stream_ptr,</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <a class="code hl_class" href="classbeast_1_1Journal.html">beast::Journal</a> journal)</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> : <a class="code hl_class" href="classripple_1_1BaseWSPeer.html">BaseWSPeer</a>&lt;Handler, <a class="code hl_class" href="classripple_1_1SSLWSPeer.html">SSLWSPeer</a>&gt;(</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> port,</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> handler,</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> stream_ptr-&gt;get_executor(),</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <a class="code hl_typedef" href="classripple_1_1SSLWSPeer.html#ae24e8b72e2546b308ae12045474e35a2">waitable_timer</a>{stream_ptr-&gt;get_executor()},</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> remote_endpoint,</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <a class="code hl_namespace" href="namespacestd.html">std</a>::move(request),</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> journal)</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> , stream_ptr_(<a class="code hl_namespace" href="namespacestd.html">std</a>::move(stream_ptr))</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> , ws_(*stream_ptr_)</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 class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> </div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="aclassbeast_1_1Journal_html"><div class="ttname"><a href="classbeast_1_1Journal.html">beast::Journal</a></div><div class="ttdoc">A generic endpoint for log messages.</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00058">Journal.h:59</a></div></div>
<div class="ttc" id="aclassripple_1_1BasePeer_html"><div class="ttname"><a href="classripple_1_1BasePeer.html">ripple::BasePeer</a></div><div class="ttdef"><b>Definition:</b> <a href="BasePeer_8h_source.html#l00037">BasePeer.h:38</a></div></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span>} <span class="comment">// namespace ripple</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> </div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="aclassbeast_1_1Journal_html"><div class="ttname"><a href="classbeast_1_1Journal.html">beast::Journal</a></div><div class="ttdoc">A generic endpoint for log messages.</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00059">Journal.h:60</a></div></div>
<div class="ttc" id="aclassripple_1_1BasePeer_html"><div class="ttname"><a href="classripple_1_1BasePeer.html">ripple::BasePeer</a></div><div class="ttdef"><b>Definition:</b> <a href="BasePeer_8h_source.html#l00039">BasePeer.h:40</a></div></div>
<div class="ttc" id="aclassripple_1_1BaseWSPeer_html"><div class="ttname"><a href="classripple_1_1BaseWSPeer.html">ripple::BaseWSPeer</a></div><div class="ttdoc">Represents an active WebSocket connection.</div><div class="ttdef"><b>Definition:</b> <a href="BaseWSPeer_8h_source.html#l00044">BaseWSPeer.h:45</a></div></div>
<div class="ttc" id="aclassripple_1_1BaseWSPeer_html_a2327c1c59bad48a2c4972b8b5b593de8"><div class="ttname"><a href="classripple_1_1BaseWSPeer.html#a2327c1c59bad48a2c4972b8b5b593de8">ripple::BaseWSPeer&lt; Handler, SSLWSPeer&lt; Handler &gt; &gt;::request</a></div><div class="ttdeci">http_request_type const &amp; request() const override</div><div class="ttdef"><b>Definition:</b> <a href="BaseWSPeer_8h_source.html#l00099">BaseWSPeer.h:99</a></div></div>
<div class="ttc" id="aclassripple_1_1BaseWSPeer_html_a8276d7fe8845272d9794f38b798508bf"><div class="ttname"><a href="classripple_1_1BaseWSPeer.html#a8276d7fe8845272d9794f38b798508bf">ripple::BaseWSPeer&lt; Handler, SSLWSPeer&lt; Handler &gt; &gt;::remote_endpoint</a></div><div class="ttdeci">boost::asio::ip::tcp::endpoint const &amp; remote_endpoint() const override</div><div class="ttdef"><b>Definition:</b> <a href="BaseWSPeer_8h_source.html#l00105">BaseWSPeer.h:105</a></div></div>
<div class="ttc" id="aclassripple_1_1BaseWSPeer_html_a894b1e36aaef17cc7bc2e5620db1126e"><div class="ttname"><a href="classripple_1_1BaseWSPeer.html#a894b1e36aaef17cc7bc2e5620db1126e">ripple::BaseWSPeer&lt; Handler, SSLWSPeer&lt; Handler &gt; &gt;::port</a></div><div class="ttdeci">Port const &amp; port() const override</div><div class="ttdef"><b>Definition:</b> <a href="BaseWSPeer_8h_source.html#l00093">BaseWSPeer.h:93</a></div></div>
<div class="ttc" id="aclassripple_1_1SSLWSPeer_html"><div class="ttname"><a href="classripple_1_1SSLWSPeer.html">ripple::SSLWSPeer</a></div><div class="ttdef"><b>Definition:</b> <a href="SSLWSPeer_8h_source.html#l00036">SSLWSPeer.h:38</a></div></div>
<div class="ttc" id="aclassripple_1_1SSLWSPeer_html_a0dea5585c59f8ca910f53d7f9906939c"><div class="ttname"><a href="classripple_1_1SSLWSPeer.html#a0dea5585c59f8ca910f53d7f9906939c">ripple::SSLWSPeer::ws_</a></div><div class="ttdeci">boost::beast::websocket::stream&lt; stream_type &amp; &gt; ws_</div><div class="ttdef"><b>Definition:</b> <a href="SSLWSPeer_8h_source.html#l00050">SSLWSPeer.h:50</a></div></div>
<div class="ttc" id="aclassripple_1_1SSLWSPeer_html_a2abe9169c22d273c36d040b24b835311"><div class="ttname"><a href="classripple_1_1SSLWSPeer.html#a2abe9169c22d273c36d040b24b835311">ripple::SSLWSPeer::SSLWSPeer</a></div><div class="ttdeci">SSLWSPeer(Port const &amp;port, Handler &amp;handler, endpoint_type remote_endpoint, boost::beast::http::request&lt; Body, Headers &gt; &amp;&amp;request, std::unique_ptr&lt; stream_type &gt; &amp;&amp;stream_ptr, beast::Journal journal)</div><div class="ttdef"><b>Definition:</b> <a href="SSLWSPeer_8h_source.html#l00067">SSLWSPeer.h:67</a></div></div>
<div class="ttc" id="aclassripple_1_1SSLWSPeer_html_a37ef59f3ed9883a9019577cad57debd9"><div class="ttname"><a href="classripple_1_1SSLWSPeer.html#a37ef59f3ed9883a9019577cad57debd9">ripple::SSLWSPeer::stream_type</a></div><div class="ttdeci">boost::beast::ssl_stream&lt; socket_type &gt; stream_type</div><div class="ttdef"><b>Definition:</b> <a href="SSLWSPeer_8h_source.html#l00046">SSLWSPeer.h:46</a></div></div>
<div class="ttc" id="aclassripple_1_1SSLWSPeer_html_a52ec3f49deca43ee1d5edaf220f4786a"><div class="ttname"><a href="classripple_1_1SSLWSPeer.html#a52ec3f49deca43ee1d5edaf220f4786a">ripple::SSLWSPeer::stream_ptr_</a></div><div class="ttdeci">std::unique_ptr&lt; stream_type &gt; stream_ptr_</div><div class="ttdef"><b>Definition:</b> <a href="SSLWSPeer_8h_source.html#l00049">SSLWSPeer.h:49</a></div></div>
<div class="ttc" id="aclassripple_1_1SSLWSPeer_html_a67d555feb28ca52e3afb48a4b8e3fbf4"><div class="ttname"><a href="classripple_1_1SSLWSPeer.html#a67d555feb28ca52e3afb48a4b8e3fbf4">ripple::SSLWSPeer::socket_type</a></div><div class="ttdeci">boost::beast::tcp_stream socket_type</div><div class="ttdef"><b>Definition:</b> <a href="SSLWSPeer_8h_source.html#l00045">SSLWSPeer.h:45</a></div></div>
<div class="ttc" id="aclassripple_1_1SSLWSPeer_html_a81f6c16a826a0889e7491b3e7f3d9d74"><div class="ttname"><a href="classripple_1_1SSLWSPeer.html#a81f6c16a826a0889e7491b3e7f3d9d74">ripple::SSLWSPeer::endpoint_type</a></div><div class="ttdeci">boost::asio::ip::tcp::endpoint endpoint_type</div><div class="ttdef"><b>Definition:</b> <a href="SSLWSPeer_8h_source.html#l00044">SSLWSPeer.h:44</a></div></div>
<div class="ttc" id="aclassripple_1_1SSLWSPeer_html_aa6f2bccfec303c52d590d422cfb8d71c"><div class="ttname"><a href="classripple_1_1SSLWSPeer.html#aa6f2bccfec303c52d590d422cfb8d71c">ripple::SSLWSPeer::error_code</a></div><div class="ttdeci">boost::system::error_code error_code</div><div class="ttdef"><b>Definition:</b> <a href="SSLWSPeer_8h_source.html#l00043">SSLWSPeer.h:43</a></div></div>
<div class="ttc" id="aclassripple_1_1SSLWSPeer_html_ae24e8b72e2546b308ae12045474e35a2"><div class="ttname"><a href="classripple_1_1SSLWSPeer.html#ae24e8b72e2546b308ae12045474e35a2">ripple::SSLWSPeer::waitable_timer</a></div><div class="ttdeci">boost::asio::basic_waitable_timer&lt; clock_type &gt; waitable_timer</div><div class="ttdef"><b>Definition:</b> <a href="SSLWSPeer_8h_source.html#l00047">SSLWSPeer.h:47</a></div></div>
<div class="ttc" id="aclassripple_1_1SSLWSPeer_html"><div class="ttname"><a href="classripple_1_1SSLWSPeer.html">ripple::SSLWSPeer</a></div><div class="ttdef"><b>Definition:</b> <a href="SSLWSPeer_8h_source.html#l00038">SSLWSPeer.h:40</a></div></div>
<div class="ttc" id="aclassripple_1_1SSLWSPeer_html_a0dea5585c59f8ca910f53d7f9906939c"><div class="ttname"><a href="classripple_1_1SSLWSPeer.html#a0dea5585c59f8ca910f53d7f9906939c">ripple::SSLWSPeer::ws_</a></div><div class="ttdeci">boost::beast::websocket::stream&lt; stream_type &amp; &gt; ws_</div><div class="ttdef"><b>Definition:</b> <a href="SSLWSPeer_8h_source.html#l00052">SSLWSPeer.h:52</a></div></div>
<div class="ttc" id="aclassripple_1_1SSLWSPeer_html_a2abe9169c22d273c36d040b24b835311"><div class="ttname"><a href="classripple_1_1SSLWSPeer.html#a2abe9169c22d273c36d040b24b835311">ripple::SSLWSPeer::SSLWSPeer</a></div><div class="ttdeci">SSLWSPeer(Port const &amp;port, Handler &amp;handler, endpoint_type remote_endpoint, boost::beast::http::request&lt; Body, Headers &gt; &amp;&amp;request, std::unique_ptr&lt; stream_type &gt; &amp;&amp;stream_ptr, beast::Journal journal)</div><div class="ttdef"><b>Definition:</b> <a href="SSLWSPeer_8h_source.html#l00069">SSLWSPeer.h:69</a></div></div>
<div class="ttc" id="aclassripple_1_1SSLWSPeer_html_a37ef59f3ed9883a9019577cad57debd9"><div class="ttname"><a href="classripple_1_1SSLWSPeer.html#a37ef59f3ed9883a9019577cad57debd9">ripple::SSLWSPeer::stream_type</a></div><div class="ttdeci">boost::beast::ssl_stream&lt; socket_type &gt; stream_type</div><div class="ttdef"><b>Definition:</b> <a href="SSLWSPeer_8h_source.html#l00048">SSLWSPeer.h:48</a></div></div>
<div class="ttc" id="aclassripple_1_1SSLWSPeer_html_a52ec3f49deca43ee1d5edaf220f4786a"><div class="ttname"><a href="classripple_1_1SSLWSPeer.html#a52ec3f49deca43ee1d5edaf220f4786a">ripple::SSLWSPeer::stream_ptr_</a></div><div class="ttdeci">std::unique_ptr&lt; stream_type &gt; stream_ptr_</div><div class="ttdef"><b>Definition:</b> <a href="SSLWSPeer_8h_source.html#l00051">SSLWSPeer.h:51</a></div></div>
<div class="ttc" id="aclassripple_1_1SSLWSPeer_html_a67d555feb28ca52e3afb48a4b8e3fbf4"><div class="ttname"><a href="classripple_1_1SSLWSPeer.html#a67d555feb28ca52e3afb48a4b8e3fbf4">ripple::SSLWSPeer::socket_type</a></div><div class="ttdeci">boost::beast::tcp_stream socket_type</div><div class="ttdef"><b>Definition:</b> <a href="SSLWSPeer_8h_source.html#l00047">SSLWSPeer.h:47</a></div></div>
<div class="ttc" id="aclassripple_1_1SSLWSPeer_html_a81f6c16a826a0889e7491b3e7f3d9d74"><div class="ttname"><a href="classripple_1_1SSLWSPeer.html#a81f6c16a826a0889e7491b3e7f3d9d74">ripple::SSLWSPeer::endpoint_type</a></div><div class="ttdeci">boost::asio::ip::tcp::endpoint endpoint_type</div><div class="ttdef"><b>Definition:</b> <a href="SSLWSPeer_8h_source.html#l00046">SSLWSPeer.h:46</a></div></div>
<div class="ttc" id="aclassripple_1_1SSLWSPeer_html_aa6f2bccfec303c52d590d422cfb8d71c"><div class="ttname"><a href="classripple_1_1SSLWSPeer.html#aa6f2bccfec303c52d590d422cfb8d71c">ripple::SSLWSPeer::error_code</a></div><div class="ttdeci">boost::system::error_code error_code</div><div class="ttdef"><b>Definition:</b> <a href="SSLWSPeer_8h_source.html#l00045">SSLWSPeer.h:45</a></div></div>
<div class="ttc" id="aclassripple_1_1SSLWSPeer_html_ae24e8b72e2546b308ae12045474e35a2"><div class="ttname"><a href="classripple_1_1SSLWSPeer.html#ae24e8b72e2546b308ae12045474e35a2">ripple::SSLWSPeer::waitable_timer</a></div><div class="ttdeci">boost::asio::basic_waitable_timer&lt; clock_type &gt; waitable_timer</div><div class="ttdef"><b>Definition:</b> <a href="SSLWSPeer_8h_source.html#l00049">SSLWSPeer.h:49</a></div></div>
<div class="ttc" id="aenable_shared_from_this_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/memory/enable_shared_from_this.html">std::enable_shared_from_this</a></div></div>
<div class="ttc" id="amemory_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/memory.html">memory</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#l00026">algorithm.h:26</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="astructripple_1_1Port_html"><div class="ttname"><a href="structripple_1_1Port.html">ripple::Port</a></div><div class="ttdoc">Configuration information for a Server listening port.</div><div class="ttdef"><b>Definition:</b> <a href="Port_8h_source.html#l00048">Port.h:49</a></div></div>
<div class="ttc" id="astructripple_1_1Port_html"><div class="ttname"><a href="structripple_1_1Port.html">ripple::Port</a></div><div class="ttdoc">Configuration information for a Server listening port.</div><div class="ttdef"><b>Definition:</b> <a href="Port_8h_source.html#l00049">Port.h:50</a></div></div>
<div class="ttc" id="asystem_clock_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/system_clock.html">std::chrono::system_clock</a></div></div>
<div class="ttc" id="aunique_ptr_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr</a></div></div>
</div><!-- fragment --></div><!-- contents -->