RadioLibSmol/class_transport_layer.html
2020-08-22 08:35:55 +00:00

424 lines
18 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>RadioLib: TransportLayer 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">
$(document).ready(initResizable);
</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">RadioLib
</div>
<div id="projectbrief">Universal wireless communication library for Arduino</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</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">
$(document).ready(function(){initNavTree('class_transport_layer.html','');});
</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="class_transport_layer-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">TransportLayer Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>Provides common interface for protocols that run on modules with Internet connectivity, such as HTTP or MQTT. Because this class is used mainly as interface, all of its virtual members must be implemented in the module class.
<a href="class_transport_layer.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_transport_layer_8h_source.html">TransportLayer.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for TransportLayer:</div>
<div class="dyncontent">
<div class="center">
<img src="class_transport_layer.png" usemap="#TransportLayer_map" alt=""/>
<map id="TransportLayer_map" name="TransportLayer_map">
<area href="class_e_s_p8266.html" title="Control class for ESP8266 module. Implements TransportLayer methods. " alt="ESP8266" shape="rect" coords="0,56,99,80"/>
</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:a36b1ceebca3643fb475607d3d92f5d63"><td class="memItemLeft" align="right" valign="top">virtual int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_transport_layer.html#a36b1ceebca3643fb475607d3d92f5d63">openTransportConnection</a> (const char *host, const char *protocol, uint16_t port, uint16_t tcpKeepAlive=0)=0</td></tr>
<tr class="memdesc:a36b1ceebca3643fb475607d3d92f5d63"><td class="mdescLeft">&#160;</td><td class="mdescRight">Open transport layer connection. <a href="#a36b1ceebca3643fb475607d3d92f5d63">More...</a><br /></td></tr>
<tr class="separator:a36b1ceebca3643fb475607d3d92f5d63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82fc1c71a0f6d0aac1be7f6c184a0021"><td class="memItemLeft" align="right" valign="top">virtual int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_transport_layer.html#a82fc1c71a0f6d0aac1be7f6c184a0021">closeTransportConnection</a> ()=0</td></tr>
<tr class="memdesc:a82fc1c71a0f6d0aac1be7f6c184a0021"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close transport layer connection. <a href="#a82fc1c71a0f6d0aac1be7f6c184a0021">More...</a><br /></td></tr>
<tr class="separator:a82fc1c71a0f6d0aac1be7f6c184a0021"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d9cb76640868aa0338b52808e4f022d"><td class="memItemLeft" align="right" valign="top">virtual int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_transport_layer.html#a1d9cb76640868aa0338b52808e4f022d">send</a> (const char *data)=0</td></tr>
<tr class="memdesc:a1d9cb76640868aa0338b52808e4f022d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send string-based data. <a href="#a1d9cb76640868aa0338b52808e4f022d">More...</a><br /></td></tr>
<tr class="separator:a1d9cb76640868aa0338b52808e4f022d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb001c6348bc19694090532cc5f00e52"><td class="memItemLeft" align="right" valign="top">virtual int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_transport_layer.html#afb001c6348bc19694090532cc5f00e52">send</a> (uint8_t *data, size_t len)=0</td></tr>
<tr class="memdesc:afb001c6348bc19694090532cc5f00e52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send arbitrary binary data. <a href="#afb001c6348bc19694090532cc5f00e52">More...</a><br /></td></tr>
<tr class="separator:afb001c6348bc19694090532cc5f00e52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a846492348f71d7328834076c9046dc3f"><td class="memItemLeft" align="right" valign="top">virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_transport_layer.html#a846492348f71d7328834076c9046dc3f">receive</a> (uint8_t *data, size_t len, uint32_t timeout=10000)=0</td></tr>
<tr class="memdesc:a846492348f71d7328834076c9046dc3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receive data. <a href="#a846492348f71d7328834076c9046dc3f">More...</a><br /></td></tr>
<tr class="separator:a846492348f71d7328834076c9046dc3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a730e6671632844b1effc114e5c7d95c8"><td class="memItemLeft" align="right" valign="top">virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_transport_layer.html#a730e6671632844b1effc114e5c7d95c8">getNumBytes</a> (uint32_t timeout=10000, size_t minBytes=10)=0</td></tr>
<tr class="memdesc:a730e6671632844b1effc114e5c7d95c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get number of received bytes. <a href="#a730e6671632844b1effc114e5c7d95c8">More...</a><br /></td></tr>
<tr class="separator:a730e6671632844b1effc114e5c7d95c8"><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>Provides common interface for protocols that run on modules with Internet connectivity, such as HTTP or MQTT. Because this class is used mainly as interface, all of its virtual members must be implemented in the module class. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a82fc1c71a0f6d0aac1be7f6c184a0021"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82fc1c71a0f6d0aac1be7f6c184a0021">&#9670;&nbsp;</a></span>closeTransportConnection()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual int16_t TransportLayer::closeTransportConnection </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">
<p>Close transport layer connection. </p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
<p>Implemented in <a class="el" href="class_e_s_p8266.html#aa71846340d1a679a12ddb9b9597f8f91">ESP8266</a>.</p>
</div>
</div>
<a id="a730e6671632844b1effc114e5c7d95c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a730e6671632844b1effc114e5c7d95c8">&#9670;&nbsp;</a></span>getNumBytes()</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 TransportLayer::getNumBytes </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>timeout</em> = <code>10000</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>minBytes</em> = <code>10</code>&#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">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get number of received bytes. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">timeout</td><td>Reception timeout in ms. Defaults to 10000.</td></tr>
<tr><td class="paramname">minBytes</td><td>Minimum required number of bytes that must be received.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Number of received bytes, or 0 on timeout. </dd></dl>
<p>Implemented in <a class="el" href="class_e_s_p8266.html#ac463b6a80cdc52e7db50b1f6760cec3f">ESP8266</a>.</p>
</div>
</div>
<a id="a36b1ceebca3643fb475607d3d92f5d63"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a36b1ceebca3643fb475607d3d92f5d63">&#9670;&nbsp;</a></span>openTransportConnection()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual int16_t TransportLayer::openTransportConnection </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 char *&#160;</td>
<td class="paramname"><em>protocol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>tcpKeepAlive</em> = <code>0</code>&#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">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Open transport layer connection. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">host</td><td>Host to connect to.</td></tr>
<tr><td class="paramname">protocol</td><td>Transport protocol to use. Usually "TCP" or "UDP".</td></tr>
<tr><td class="paramname">port</td><td>to be used for the connection.</td></tr>
<tr><td class="paramname">tcpKeepAlive</td><td>TCP keep alive interval. Defaults to 0.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
<p>Implemented in <a class="el" href="class_e_s_p8266.html#a535f4b7a8ef104b208753f9361568d20">ESP8266</a>.</p>
</div>
</div>
<a id="a846492348f71d7328834076c9046dc3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a846492348f71d7328834076c9046dc3f">&#9670;&nbsp;</a></span>receive()</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 TransportLayer::receive </td>
<td>(</td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>timeout</em> = <code>10000</code>&#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">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Receive data. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">data</td><td>Pointer to array to save the received data.</td></tr>
<tr><td class="paramname">len</td><td>Number of bytes to read.</td></tr>
<tr><td class="paramname">timeout</td><td>Reception timeout in ms. Defaults to 10000.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
<p>Implemented in <a class="el" href="class_e_s_p8266.html#aa79f841de9ae9c5d6057e89a9f1721ea">ESP8266</a>.</p>
</div>
</div>
<a id="a1d9cb76640868aa0338b52808e4f022d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d9cb76640868aa0338b52808e4f022d">&#9670;&nbsp;</a></span>send() <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 int16_t TransportLayer::send </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>data</em></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">
<p>Send string-based data. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">string</td><td>String data to be sent.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
<p>Implemented in <a class="el" href="class_e_s_p8266.html#a1caaa537edd52d1c2b7a0a25ef69c1c9">ESP8266</a>.</p>
</div>
</div>
<a id="afb001c6348bc19694090532cc5f00e52"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb001c6348bc19694090532cc5f00e52">&#9670;&nbsp;</a></span>send() <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 int16_t TransportLayer::send </td>
<td>(</td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>len</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">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Send arbitrary binary data. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">data</td><td>Data to be sent.</td></tr>
<tr><td class="paramname">len</td><td>Number of bytes to send.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
<p>Implemented in <a class="el" href="class_e_s_p8266.html#a2f34474953b7dbe4d057c8e3f65e0dc4">ESP8266</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/protocols/TransportLayer/<a class="el" href="_transport_layer_8h_source.html">TransportLayer.h</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_transport_layer.html">TransportLayer</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.13 </li>
</ul>
</div>
</body>
</html>