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

105 lines
10 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: src/protocols/TransportLayer/TransportLayer.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="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('_transport_layer_8h_source.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="headertitle">
<div class="title">TransportLayer.h</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef _RADIOLIB_TRANSPORT_LAYER_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define _RADIOLIB_TRANSPORT_LAYER_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;../../TypeDef.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="class_transport_layer.html"> 12</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_transport_layer.html">TransportLayer</a> {</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="comment">// constructor</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="comment">// this class is purely virtual and does not require explicit constructor</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="comment">// basic methods</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">virtual</span> int16_t <a class="code" href="class_transport_layer.html#a36b1ceebca3643fb475607d3d92f5d63">openTransportConnection</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* host, <span class="keyword">const</span> <span class="keywordtype">char</span>* protocol, uint16_t port, uint16_t tcpKeepAlive = 0) = 0;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">virtual</span> int16_t <a class="code" href="class_transport_layer.html#a82fc1c71a0f6d0aac1be7f6c184a0021">closeTransportConnection</a>() = 0;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> int16_t <a class="code" href="class_transport_layer.html#a1d9cb76640868aa0338b52808e4f022d">send</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* data) = 0;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> int16_t <a class="code" href="class_transport_layer.html#a1d9cb76640868aa0338b52808e4f022d">send</a>(uint8_t* data, <span class="keywordtype">size_t</span> len) = 0;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="class_transport_layer.html#a846492348f71d7328834076c9046dc3f">receive</a>(uint8_t* data, <span class="keywordtype">size_t</span> len, uint32_t timeout = 10000) = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="class_transport_layer.html#a730e6671632844b1effc114e5c7d95c8">getNumBytes</a>(uint32_t timeout = 10000, <span class="keywordtype">size_t</span> minBytes = 10) = 0;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;};</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="class_transport_layer_html"><div class="ttname"><a href="class_transport_layer.html">TransportLayer</a></div><div class="ttdoc">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. </div><div class="ttdef"><b>Definition:</b> TransportLayer.h:12</div></div>
<div class="ttc" id="class_transport_layer_html_a730e6671632844b1effc114e5c7d95c8"><div class="ttname"><a href="class_transport_layer.html#a730e6671632844b1effc114e5c7d95c8">TransportLayer::getNumBytes</a></div><div class="ttdeci">virtual size_t getNumBytes(uint32_t timeout=10000, size_t minBytes=10)=0</div><div class="ttdoc">Get number of received bytes. </div></div>
<div class="ttc" id="class_transport_layer_html_a846492348f71d7328834076c9046dc3f"><div class="ttname"><a href="class_transport_layer.html#a846492348f71d7328834076c9046dc3f">TransportLayer::receive</a></div><div class="ttdeci">virtual size_t receive(uint8_t *data, size_t len, uint32_t timeout=10000)=0</div><div class="ttdoc">Receive data. </div></div>
<div class="ttc" id="class_transport_layer_html_a36b1ceebca3643fb475607d3d92f5d63"><div class="ttname"><a href="class_transport_layer.html#a36b1ceebca3643fb475607d3d92f5d63">TransportLayer::openTransportConnection</a></div><div class="ttdeci">virtual int16_t openTransportConnection(const char *host, const char *protocol, uint16_t port, uint16_t tcpKeepAlive=0)=0</div><div class="ttdoc">Open transport layer connection. </div></div>
<div class="ttc" id="class_transport_layer_html_a1d9cb76640868aa0338b52808e4f022d"><div class="ttname"><a href="class_transport_layer.html#a1d9cb76640868aa0338b52808e4f022d">TransportLayer::send</a></div><div class="ttdeci">virtual int16_t send(const char *data)=0</div><div class="ttdoc">Send string-based data. </div></div>
<div class="ttc" id="class_transport_layer_html_a82fc1c71a0f6d0aac1be7f6c184a0021"><div class="ttname"><a href="class_transport_layer.html#a82fc1c71a0f6d0aac1be7f6c184a0021">TransportLayer::closeTransportConnection</a></div><div class="ttdeci">virtual int16_t closeTransportConnection()=0</div><div class="ttdoc">Close transport layer connection. </div></div>
</div><!-- fragment --></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="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_79690749eba542503bb1a9a3dbb495e1.html">protocols</a></li><li class="navelem"><a class="el" href="dir_022d1f7e87f0a3cd97fb9c4aa339f7b1.html">TransportLayer</a></li><li class="navelem"><b>TransportLayer.h</b></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>