SSLClient/docs/html/class_s_s_l_client_impl.html
2019-08-05 21:47:12 -07:00

1070 lines
51 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>SSLClient: SSLClientImpl Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">SSLClient
&#160;<span id="projectnumber">v1.1.1</span>
</div>
<div id="projectbrief">Add TLS 1.2 functionality to any network library.</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('class_s_s_l_client_impl.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="class_s_s_l_client_impl-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">SSLClientImpl Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>Implementation code to be inherited by <a class="el" href="class_s_s_l_client.html" title="The main SSLClient class. Check out README.md for more info.">SSLClient</a>.
<a href="class_s_s_l_client_impl.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_s_s_l_client_impl_8h_source.html">SSLClientImpl.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for SSLClientImpl:</div>
<div class="dyncontent">
<div class="center">
<img src="class_s_s_l_client_impl.png" usemap="#SSLClientImpl_map" alt=""/>
<map id="SSLClientImpl_map" name="SSLClientImpl_map">
<area href="class_s_s_l_client.html" title="The main SSLClient class. Check out README.md for more info." alt="SSLClient&lt; C, SessionCache &gt;" shape="rect" coords="0,112,190,136"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a2b0b9043c8252871272bf6ba199ab67b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#a2b0b9043c8252871272bf6ba199ab67b">SSLClientImpl</a> (const br_x509_trust_anchor *trust_anchors, const size_t trust_anchors_num, const int analog_pin, const <a class="el" href="_s_s_l_client_impl_8h.html#ab658e6d84759440dbf3c890446075395">DebugLevel</a> debug)</td></tr>
<tr class="separator:a2b0b9043c8252871272bf6ba199ab67b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8314c7dab1d923db5624f8075a53e6ea"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#a8314c7dab1d923db5624f8075a53e6ea">SSLClientImpl</a> (const br_x509_trust_anchor *trust_anchors, const size_t trust_anchors_num, const int analog_pin, const <a class="el" href="_s_s_l_client_impl_8h.html#ab658e6d84759440dbf3c890446075395">DebugLevel</a> debug, const <a class="el" href="struct_s_s_l_client_parameters.html">SSLClientParameters</a> *mutual_auth_params)</td></tr>
<tr class="separator:a8314c7dab1d923db5624f8075a53e6ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5c14ecf301c268306946c85825e565b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#aa5c14ecf301c268306946c85825e565b">connect_impl</a> (IPAddress ip, uint16_t port)</td></tr>
<tr class="separator:aa5c14ecf301c268306946c85825e565b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6c947ad92979ab99364428004abbeba"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#ae6c947ad92979ab99364428004abbeba">connect_impl</a> (const char *host, uint16_t port)</td></tr>
<tr class="separator:ae6c947ad92979ab99364428004abbeba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a807656f814f24cf6cd711e429b716c4d"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#a807656f814f24cf6cd711e429b716c4d">write_impl</a> (const uint8_t *buf, size_t size)</td></tr>
<tr class="separator:a807656f814f24cf6cd711e429b716c4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe33c793ec37f11087651cf4e586569b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#abe33c793ec37f11087651cf4e586569b">available_impl</a> ()</td></tr>
<tr class="separator:abe33c793ec37f11087651cf4e586569b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a231b7b1bb2182cda1ed6e9d5ebf66afe"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#a231b7b1bb2182cda1ed6e9d5ebf66afe">read_impl</a> (uint8_t *buf, size_t size)</td></tr>
<tr class="separator:a231b7b1bb2182cda1ed6e9d5ebf66afe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b90e7df3a77eea5efb955cc15a17f7d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#a1b90e7df3a77eea5efb955cc15a17f7d">peek_impl</a> ()</td></tr>
<tr class="separator:a1b90e7df3a77eea5efb955cc15a17f7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21ab78a0917f74ae5383d688e1548788"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#a21ab78a0917f74ae5383d688e1548788">flush_impl</a> ()</td></tr>
<tr class="separator:a21ab78a0917f74ae5383d688e1548788"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81eb5ede3a894f281ae586d463b624e6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#a81eb5ede3a894f281ae586d463b624e6">stop_impl</a> ()</td></tr>
<tr class="separator:a81eb5ede3a894f281ae586d463b624e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a957984fa392550a7df86f758e9b14bfb"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#a957984fa392550a7df86f758e9b14bfb">connected_impl</a> ()</td></tr>
<tr class="separator:a957984fa392550a7df86f758e9b14bfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4e38d4319ec504395d67d2ab21a639e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_s_s_l_session.html">SSLSession</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#ab4e38d4319ec504395d67d2ab21a639e">get_session_impl</a> (const char *host, const IPAddress &amp;addr)</td></tr>
<tr class="separator:ab4e38d4319ec504395d67d2ab21a639e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6baed094969874fb9d2bea3a00ecbee1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#a6baed094969874fb9d2bea3a00ecbee1">remove_session_impl</a> (const char *host, const IPAddress &amp;addr)</td></tr>
<tr class="separator:a6baed094969874fb9d2bea3a00ecbee1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45f26385ee1975b12265943efb1ff0d5"><td class="memItemLeft" align="right" valign="top">virtual uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#a45f26385ee1975b12265943efb1ff0d5">localPort</a> ()=0</td></tr>
<tr class="separator:a45f26385ee1975b12265943efb1ff0d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae97adc55212c1aa96880aac28dd71387"><td class="memItemLeft" align="right" valign="top">virtual IPAddress&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#ae97adc55212c1aa96880aac28dd71387">remoteIP</a> ()=0</td></tr>
<tr class="separator:ae97adc55212c1aa96880aac28dd71387"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93cdb32491fc08b035e40f840ff2e8f5"><td class="memItemLeft" align="right" valign="top">virtual uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#a93cdb32491fc08b035e40f840ff2e8f5">remotePort</a> ()=0</td></tr>
<tr class="separator:a93cdb32491fc08b035e40f840ff2e8f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e2385522ec04b1ce70871d4de23db6b"><td class="memItemLeft" align="right" valign="top">virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#a8e2385522ec04b1ce70871d4de23db6b">getSessionCount</a> () const =0</td></tr>
<tr class="separator:a8e2385522ec04b1ce70871d4de23db6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a20dd9a9794b95719e6f3df8cb39126e3"><td class="memItemLeft" align="right" valign="top">virtual Client &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#a20dd9a9794b95719e6f3df8cb39126e3">get_arduino_client</a> ()=0</td></tr>
<tr class="separator:a20dd9a9794b95719e6f3df8cb39126e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1c8f30bd3669c15e07fa1522ede4336"><td class="memItemLeft" align="right" valign="top">virtual const Client &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#ab1c8f30bd3669c15e07fa1522ede4336">get_arduino_client</a> () const =0</td></tr>
<tr class="separator:ab1c8f30bd3669c15e07fa1522ede4336"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44cfafd6f5cdcaa5dbac22961ab3a58b"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_s_s_l_session.html">SSLSession</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#a44cfafd6f5cdcaa5dbac22961ab3a58b">get_session_array</a> ()=0</td></tr>
<tr class="separator:a44cfafd6f5cdcaa5dbac22961ab3a58b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace6652307ba028d67c7ddbc4103fa9b4"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="class_s_s_l_session.html">SSLSession</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#ace6652307ba028d67c7ddbc4103fa9b4">get_session_array</a> () const =0</td></tr>
<tr class="separator:ace6652307ba028d67c7ddbc4103fa9b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ee82ad492f2297bd7cd0835c0d4556f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#a9ee82ad492f2297bd7cd0835c0d4556f">m_print_prefix</a> (const char *func_name, const <a class="el" href="_s_s_l_client_impl_8h.html#ab658e6d84759440dbf3c890446075395">DebugLevel</a> level) const</td></tr>
<tr class="memdesc:a9ee82ad492f2297bd7cd0835c0d4556f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints a debugging prefix to all logs, so we can attatch them to useful information. <a href="#a9ee82ad492f2297bd7cd0835c0d4556f">More...</a><br /></td></tr>
<tr class="separator:a9ee82ad492f2297bd7cd0835c0d4556f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e701597178b81f10d0db671b81ab075"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#a6e701597178b81f10d0db671b81ab075">m_print_ssl_error</a> (const int ssl_error, const <a class="el" href="_s_s_l_client_impl_8h.html#ab658e6d84759440dbf3c890446075395">DebugLevel</a> level) const</td></tr>
<tr class="memdesc:a6e701597178b81f10d0db671b81ab075"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints the string associated with a write error. <a href="#a6e701597178b81f10d0db671b81ab075">More...</a><br /></td></tr>
<tr class="separator:a6e701597178b81f10d0db671b81ab075"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2cf492a714cf787e54a17bb47cda43ed"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#a2cf492a714cf787e54a17bb47cda43ed">m_print_br_error</a> (const unsigned br_error_code, const <a class="el" href="_s_s_l_client_impl_8h.html#ab658e6d84759440dbf3c890446075395">DebugLevel</a> level) const</td></tr>
<tr class="memdesc:a2cf492a714cf787e54a17bb47cda43ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print the text string associated with a BearSSL error code. <a href="#a2cf492a714cf787e54a17bb47cda43ed">More...</a><br /></td></tr>
<tr class="separator:a2cf492a714cf787e54a17bb47cda43ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45a1967029784a2f0f3edc7f75a00117"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a45a1967029784a2f0f3edc7f75a00117"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#a45a1967029784a2f0f3edc7f75a00117">m_print</a> (const T str, const char *func_name, const <a class="el" href="_s_s_l_client_impl_8h.html#ab658e6d84759440dbf3c890446075395">DebugLevel</a> level) const</td></tr>
<tr class="memdesc:a45a1967029784a2f0f3edc7f75a00117"><td class="mdescLeft">&#160;</td><td class="mdescRight">debugging print function, only prints if m_debug is true <a href="#a45a1967029784a2f0f3edc7f75a00117">More...</a><br /></td></tr>
<tr class="separator:a45a1967029784a2f0f3edc7f75a00117"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b4cb1e9e510955078b83c9f84c0e18c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a3b4cb1e9e510955078b83c9f84c0e18c"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#a3b4cb1e9e510955078b83c9f84c0e18c">m_info</a> (const T str, const char *func_name) const</td></tr>
<tr class="memdesc:a3b4cb1e9e510955078b83c9f84c0e18c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints a info message to serial, if info messages are enabled. <a href="#a3b4cb1e9e510955078b83c9f84c0e18c">More...</a><br /></td></tr>
<tr class="separator:a3b4cb1e9e510955078b83c9f84c0e18c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bfb55bcde46d8d77a46bfe0f577bf3f"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a2bfb55bcde46d8d77a46bfe0f577bf3f"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#a2bfb55bcde46d8d77a46bfe0f577bf3f">m_warn</a> (const T str, const char *func_name) const</td></tr>
<tr class="separator:a2bfb55bcde46d8d77a46bfe0f577bf3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada595ed8f11673a9180ef0b762949c83"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ada595ed8f11673a9180ef0b762949c83"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_impl.html#ada595ed8f11673a9180ef0b762949c83">m_error</a> (const T str, const char *func_name) const</td></tr>
<tr class="separator:ada595ed8f11673a9180ef0b762949c83"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Implementation code to be inherited by <a class="el" href="class_s_s_l_client.html" title="The main SSLClient class. Check out README.md for more info.">SSLClient</a>. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a2b0b9043c8252871272bf6ba199ab67b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b0b9043c8252871272bf6ba199ab67b">&#9670;&nbsp;</a></span>SSLClientImpl() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">SSLClientImpl::SSLClientImpl </td>
<td>(</td>
<td class="paramtype">const br_x509_trust_anchor *&#160;</td>
<td class="paramname"><em>trust_anchors</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const size_t&#160;</td>
<td class="paramname"><em>trust_anchors_num</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int&#160;</td>
<td class="paramname"><em>analog_pin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="_s_s_l_client_impl_8h.html#ab658e6d84759440dbf3c890446075395">DebugLevel</a>&#160;</td>
<td class="paramname"><em>debug</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_s_s_l_client.html#ae9a7509bc8a18f67e286547c19deb3c0" title="Initialize SSLClient with all of the prerequisites needed.">SSLClient::SSLClient</a> </dd></dl>
</div>
</div>
<a id="a8314c7dab1d923db5624f8075a53e6ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8314c7dab1d923db5624f8075a53e6ea">&#9670;&nbsp;</a></span>SSLClientImpl() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">SSLClientImpl::SSLClientImpl </td>
<td>(</td>
<td class="paramtype">const br_x509_trust_anchor *&#160;</td>
<td class="paramname"><em>trust_anchors</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const size_t&#160;</td>
<td class="paramname"><em>trust_anchors_num</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int&#160;</td>
<td class="paramname"><em>analog_pin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="_s_s_l_client_impl_8h.html#ab658e6d84759440dbf3c890446075395">DebugLevel</a>&#160;</td>
<td class="paramname"><em>debug</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="struct_s_s_l_client_parameters.html">SSLClientParameters</a> *&#160;</td>
<td class="paramname"><em>mutual_auth_params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_s_s_l_client.html#ae9a7509bc8a18f67e286547c19deb3c0" title="Initialize SSLClient with all of the prerequisites needed.">SSLClient::SSLClient</a> </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="abe33c793ec37f11087651cf4e586569b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe33c793ec37f11087651cf4e586569b">&#9670;&nbsp;</a></span>available_impl()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int SSLClientImpl::available_impl </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_s_s_l_client.html#a5d13fd2f32ee2ea65a1f3820f758e77e" title="Returns the number of bytes available to read from the data that has been received and decrypted.">SSLClient::available</a> </dd></dl>
</div>
</div>
<a id="aa5c14ecf301c268306946c85825e565b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa5c14ecf301c268306946c85825e565b">&#9670;&nbsp;</a></span>connect_impl() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int SSLClientImpl::connect_impl </td>
<td>(</td>
<td class="paramtype">IPAddress&#160;</td>
<td class="paramname"><em>ip</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>port</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_s_s_l_client.html#a4a2172aedfcc483ba2a256ad12148630" title="Connect over SSL to a host specified by an IP address.">SSLClient::connect(IPAddress, uint16_t)</a> </dd></dl>
</div>
</div>
<a id="ae6c947ad92979ab99364428004abbeba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae6c947ad92979ab99364428004abbeba">&#9670;&nbsp;</a></span>connect_impl() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int SSLClientImpl::connect_impl </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>host</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>port</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_s_s_l_client.html#a91c63e35f31652c20faa5b9be95984bf" title="Connect over SSL to a host specified by a hostname.">SSLClient::connect(const char*, uint16_t)</a> </dd></dl>
</div>
</div>
<a id="a957984fa392550a7df86f758e9b14bfb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a957984fa392550a7df86f758e9b14bfb">&#9670;&nbsp;</a></span>connected_impl()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t SSLClientImpl::connected_impl </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_s_s_l_client.html#a25e4414ab0c9424d09592f9567a678dc" title="Check if the device is connected.">SSLClient::connected</a> </dd></dl>
</div>
</div>
<a id="a21ab78a0917f74ae5383d688e1548788"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a21ab78a0917f74ae5383d688e1548788">&#9670;&nbsp;</a></span>flush_impl()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SSLClientImpl::flush_impl </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_s_s_l_client.html#a2ee6a3134d07ca09cf61ee04d32c3d44" title="Force writing the buffered bytes from SSLClient::write to the network.">SSLClient::flush</a> </dd></dl>
</div>
</div>
<a id="a20dd9a9794b95719e6f3df8cb39126e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a20dd9a9794b95719e6f3df8cb39126e3">&#9670;&nbsp;</a></span>get_arduino_client() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual Client&amp; SSLClientImpl::get_arduino_client </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_s_s_l_client.html#a9c5001bdfa75ccc0d93cc60dd872b38a" title="Returns an instance of m_client that is polymorphic and can be used by SSLClientImpl.">SSLClient::get_arduino_client</a> </dd></dl>
<p>Implemented in <a class="el" href="class_s_s_l_client.html#a9c5001bdfa75ccc0d93cc60dd872b38a">SSLClient&lt; C, SessionCache &gt;</a>.</p>
</div>
</div>
<a id="ab1c8f30bd3669c15e07fa1522ede4336"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab1c8f30bd3669c15e07fa1522ede4336">&#9670;&nbsp;</a></span>get_arduino_client() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual const Client&amp; SSLClientImpl::get_arduino_client </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implemented in <a class="el" href="class_s_s_l_client.html#a353c875d17a85dbb7bfe10de155f3b52">SSLClient&lt; C, SessionCache &gt;</a>.</p>
</div>
</div>
<a id="a44cfafd6f5cdcaa5dbac22961ab3a58b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a44cfafd6f5cdcaa5dbac22961ab3a58b">&#9670;&nbsp;</a></span>get_session_array() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="class_s_s_l_session.html">SSLSession</a>* SSLClientImpl::get_session_array </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_s_s_l_client.html#a9e7769fed78825cf4723778f4b5aa3e9" title="Returns an instance of the session array that is on the stack.">SSLClient::get_session_array</a> </dd></dl>
<p>Implemented in <a class="el" href="class_s_s_l_client.html#a9e7769fed78825cf4723778f4b5aa3e9">SSLClient&lt; C, SessionCache &gt;</a>.</p>
</div>
</div>
<a id="ace6652307ba028d67c7ddbc4103fa9b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ace6652307ba028d67c7ddbc4103fa9b4">&#9670;&nbsp;</a></span>get_session_array() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual const <a class="el" href="class_s_s_l_session.html">SSLSession</a>* SSLClientImpl::get_session_array </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implemented in <a class="el" href="class_s_s_l_client.html#a18adfc074d6b8e996819d4beb4689cbd">SSLClient&lt; C, SessionCache &gt;</a>.</p>
</div>
</div>
<a id="ab4e38d4319ec504395d67d2ab21a639e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab4e38d4319ec504395d67d2ab21a639e">&#9670;&nbsp;</a></span>get_session_impl()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="class_s_s_l_session.html">SSLSession</a> &amp; SSLClientImpl::get_session_impl </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>host</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const IPAddress &amp;&#160;</td>
<td class="paramname"><em>addr</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_s_s_l_client.html#a2d8bf9b891151bc5b0b865d70cf9c086" title="Gets a session reference corresponding to a host and IP, or a reference to a empty session if none ex...">SSLClient::getSession</a> </dd></dl>
</div>
</div>
<a id="a8e2385522ec04b1ce70871d4de23db6b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e2385522ec04b1ce70871d4de23db6b">&#9670;&nbsp;</a></span>getSessionCount()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual size_t SSLClientImpl::getSessionCount </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_s_s_l_client.html#a2d71f00d6634092f50c5262ad25cdacd" title="Get the maximum number of SSL sessions that can be stored at once.">SSLClient::getSessionCount</a> </dd></dl>
<p>Implemented in <a class="el" href="class_s_s_l_client.html#a2d71f00d6634092f50c5262ad25cdacd">SSLClient&lt; C, SessionCache &gt;</a>.</p>
</div>
</div>
<a id="a45f26385ee1975b12265943efb1ff0d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a45f26385ee1975b12265943efb1ff0d5">&#9670;&nbsp;</a></span>localPort()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual uint16_t SSLClientImpl::localPort </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_s_s_l_client.html#a563c5f9829757075bf16742cffa4cf73" title="Returns the local port, if C::localPort exists.">SSLClient::localPort</a> </dd></dl>
<p>Implemented in <a class="el" href="class_s_s_l_client.html#a563c5f9829757075bf16742cffa4cf73">SSLClient&lt; C, SessionCache &gt;</a>.</p>
</div>
</div>
<a id="ada595ed8f11673a9180ef0b762949c83"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ada595ed8f11673a9180ef0b762949c83">&#9670;&nbsp;</a></span>m_error()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void SSLClientImpl::m_error </td>
<td>(</td>
<td class="paramtype">const T&#160;</td>
<td class="paramname"><em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>func_name</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a3b4cb1e9e510955078b83c9f84c0e18c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3b4cb1e9e510955078b83c9f84c0e18c">&#9670;&nbsp;</a></span>m_info()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void SSLClientImpl::m_info </td>
<td>(</td>
<td class="paramtype">const T&#160;</td>
<td class="paramname"><em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>func_name</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Prints a info message to serial, if info messages are enabled. </p>
</div>
</div>
<a id="a45a1967029784a2f0f3edc7f75a00117"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a45a1967029784a2f0f3edc7f75a00117">&#9670;&nbsp;</a></span>m_print()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void SSLClientImpl::m_print </td>
<td>(</td>
<td class="paramtype">const T&#160;</td>
<td class="paramname"><em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>func_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="_s_s_l_client_impl_8h.html#ab658e6d84759440dbf3c890446075395">DebugLevel</a>&#160;</td>
<td class="paramname"><em>level</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>debugging print function, only prints if m_debug is true </p>
</div>
</div>
<a id="a2cf492a714cf787e54a17bb47cda43ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2cf492a714cf787e54a17bb47cda43ed">&#9670;&nbsp;</a></span>m_print_br_error()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void SSLClientImpl::m_print_br_error </td>
<td>(</td>
<td class="paramtype">const unsigned&#160;</td>
<td class="paramname"><em>br_error_code</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="_s_s_l_client_impl_8h.html#ab658e6d84759440dbf3c890446075395">DebugLevel</a>&#160;</td>
<td class="paramname"><em>level</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Print the text string associated with a BearSSL error code. </p>
</div>
</div>
<a id="a9ee82ad492f2297bd7cd0835c0d4556f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9ee82ad492f2297bd7cd0835c0d4556f">&#9670;&nbsp;</a></span>m_print_prefix()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void SSLClientImpl::m_print_prefix </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>func_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="_s_s_l_client_impl_8h.html#ab658e6d84759440dbf3c890446075395">DebugLevel</a>&#160;</td>
<td class="paramname"><em>level</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Prints a debugging prefix to all logs, so we can attatch them to useful information. </p>
</div>
</div>
<a id="a6e701597178b81f10d0db671b81ab075"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e701597178b81f10d0db671b81ab075">&#9670;&nbsp;</a></span>m_print_ssl_error()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void SSLClientImpl::m_print_ssl_error </td>
<td>(</td>
<td class="paramtype">const int&#160;</td>
<td class="paramname"><em>ssl_error</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="_s_s_l_client_impl_8h.html#ab658e6d84759440dbf3c890446075395">DebugLevel</a>&#160;</td>
<td class="paramname"><em>level</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Prints the string associated with a write error. </p>
</div>
</div>
<a id="a2bfb55bcde46d8d77a46bfe0f577bf3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2bfb55bcde46d8d77a46bfe0f577bf3f">&#9670;&nbsp;</a></span>m_warn()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void SSLClientImpl::m_warn </td>
<td>(</td>
<td class="paramtype">const T&#160;</td>
<td class="paramname"><em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>func_name</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a1b90e7df3a77eea5efb955cc15a17f7d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b90e7df3a77eea5efb955cc15a17f7d">&#9670;&nbsp;</a></span>peek_impl()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int SSLClientImpl::peek_impl </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_s_s_l_client.html#a31742867b00bd8d130637af0935bacbd" title="View the first byte of the buffer, without removing it from the SSLClient Buffer.">SSLClient::peek</a> </dd></dl>
</div>
</div>
<a id="a231b7b1bb2182cda1ed6e9d5ebf66afe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a231b7b1bb2182cda1ed6e9d5ebf66afe">&#9670;&nbsp;</a></span>read_impl()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int SSLClientImpl::read_impl </td>
<td>(</td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_s_s_l_client.html#afd6d7ae798c05cf566b2eb5651dba795" title="Read size bytes from the SSL client buffer, copying them into *buf, and return the number of bytes re...">SSLClient::read(uint8_t*, size_t)</a> </dd></dl>
</div>
</div>
<a id="ae97adc55212c1aa96880aac28dd71387"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae97adc55212c1aa96880aac28dd71387">&#9670;&nbsp;</a></span>remoteIP()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual IPAddress SSLClientImpl::remoteIP </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_s_s_l_client.html#af76a0df76834e0d0999dbf44c7c0a174" title="Returns the remote IP, if C::remoteIP exists.">SSLClient::remoteIP</a> </dd></dl>
<p>Implemented in <a class="el" href="class_s_s_l_client.html#af76a0df76834e0d0999dbf44c7c0a174">SSLClient&lt; C, SessionCache &gt;</a>.</p>
</div>
</div>
<a id="a93cdb32491fc08b035e40f840ff2e8f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a93cdb32491fc08b035e40f840ff2e8f5">&#9670;&nbsp;</a></span>remotePort()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual uint16_t SSLClientImpl::remotePort </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_s_s_l_client.html#a563c5f9829757075bf16742cffa4cf73" title="Returns the local port, if C::localPort exists.">SSLClient::localPort</a> </dd></dl>
<p>Implemented in <a class="el" href="class_s_s_l_client.html#a5974a5f8722a752f121af4fac498bb22">SSLClient&lt; C, SessionCache &gt;</a>.</p>
</div>
</div>
<a id="a6baed094969874fb9d2bea3a00ecbee1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6baed094969874fb9d2bea3a00ecbee1">&#9670;&nbsp;</a></span>remove_session_impl()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SSLClientImpl::remove_session_impl </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>host</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const IPAddress &amp;&#160;</td>
<td class="paramname"><em>addr</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_s_s_l_client.html#a5b626703a24089dbb0480a9b6ddf348c" title="Clear the session corresponding to a host and IP.">SSLClient::removeSession</a> </dd></dl>
</div>
</div>
<a id="a81eb5ede3a894f281ae586d463b624e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a81eb5ede3a894f281ae586d463b624e6">&#9670;&nbsp;</a></span>stop_impl()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SSLClientImpl::stop_impl </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_s_s_l_client.html#ad30db47248d78df7c12dedfb27f06529" title="Close the connection.">SSLClient::stop</a> </dd></dl>
</div>
</div>
<a id="a807656f814f24cf6cd711e429b716c4d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a807656f814f24cf6cd711e429b716c4d">&#9670;&nbsp;</a></span>write_impl()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t SSLClientImpl::write_impl </td>
<td>(</td>
<td class="paramtype">const uint8_t *&#160;</td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_s_s_l_client.html#a6bcb7579ebc051c097acb794b95771a9" title="Write some bytes to the SSL connection.">SSLClient::write(const uint8_t*, size_t)</a> </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>C:/Users/Noah/Documents/Arduino/libraries/SSLClient/src/<a class="el" href="_s_s_l_client_impl_8h_source.html">SSLClientImpl.h</a></li>
<li>C:/Users/Noah/Documents/Arduino/libraries/SSLClient/src/<a class="el" href="_s_s_l_client_impl_8cpp.html">SSLClientImpl.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_s_s_l_client_impl.html">SSLClientImpl</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul>
</div>
</body>
</html>