Micro template library A library for building device drivers
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

1010 lines
55 KiB

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  6. <meta name="generator" content="Doxygen 1.8.14"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8. <title>uTL: utl::inbuf_dev&lt; impl_t, data_t, streamsize &gt; Class Template Reference</title>
  9. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  10. <script type="text/javascript" src="jquery.js"></script>
  11. <script type="text/javascript" src="dynsections.js"></script>
  12. <link href="navtree.css" rel="stylesheet" type="text/css"/>
  13. <script type="text/javascript" src="resize.js"></script>
  14. <script type="text/javascript" src="navtreedata.js"></script>
  15. <script type="text/javascript" src="navtree.js"></script>
  16. <script type="text/javascript">
  17. /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  18. $(document).ready(initResizable);
  19. /* @license-end */</script>
  20. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  21. <script type="text/javascript" src="search/searchdata.js"></script>
  22. <script type="text/javascript" src="search/search.js"></script>
  23. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  24. </head>
  25. <body>
  26. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  27. <div id="titlearea">
  28. <table cellspacing="0" cellpadding="0">
  29. <tbody>
  30. <tr style="height: 56px;">
  31. <td id="projectalign" style="padding-left: 0.5em;">
  32. <div id="projectname">uTL
  33. </div>
  34. <div id="projectbrief">micro Template library</div>
  35. </td>
  36. </tr>
  37. </tbody>
  38. </table>
  39. </div>
  40. <!-- end header part -->
  41. <!-- Generated by Doxygen 1.8.14 -->
  42. <script type="text/javascript">
  43. /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  44. var searchBox = new SearchBox("searchBox", "search",false,'Search');
  45. /* @license-end */
  46. </script>
  47. <script type="text/javascript" src="menudata.js"></script>
  48. <script type="text/javascript" src="menu.js"></script>
  49. <script type="text/javascript">
  50. /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  51. $(function() {
  52. initMenu('',true,false,'search.php','Search');
  53. $(document).ready(function() { init_search(); });
  54. });
  55. /* @license-end */</script>
  56. <div id="main-nav"></div>
  57. </div><!-- top -->
  58. <div id="side-nav" class="ui-resizable side-nav-resizable">
  59. <div id="nav-tree">
  60. <div id="nav-tree-contents">
  61. <div id="nav-sync" class="sync"></div>
  62. </div>
  63. </div>
  64. <div id="splitbar" style="-moz-user-select:none;"
  65. class="ui-resizable-handle">
  66. </div>
  67. </div>
  68. <script type="text/javascript">
  69. /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  70. $(document).ready(function(){initNavTree('classutl_1_1inbuf__dev.html','');});
  71. /* @license-end */
  72. </script>
  73. <div id="doc-content">
  74. <!-- window showing the filter options -->
  75. <div id="MSearchSelectWindow"
  76. onmouseover="return searchBox.OnSearchSelectShow()"
  77. onmouseout="return searchBox.OnSearchSelectHide()"
  78. onkeydown="return searchBox.OnSearchSelectKey(event)">
  79. </div>
  80. <!-- iframe showing the search results (closed by default) -->
  81. <div id="MSearchResultsWindow">
  82. <iframe src="javascript:void(0)" frameborder="0"
  83. name="MSearchResults" id="MSearchResults">
  84. </iframe>
  85. </div>
  86. <div class="header">
  87. <div class="summary">
  88. <a href="#pub-types">Public Types</a> &#124;
  89. <a href="#pri-types">Private Types</a> &#124;
  90. <a href="#pri-methods">Private Member Functions</a> &#124;
  91. <a href="classutl_1_1inbuf__dev-members.html">List of all members</a> </div>
  92. <div class="headertitle">
  93. <div class="title">utl::inbuf_dev&lt; impl_t, data_t, streamsize &gt; Class Template Reference</div> </div>
  94. </div><!--header-->
  95. <div class="contents">
  96. <p>Abstract base class for input buffered devices.
  97. <a href="classutl_1_1inbuf__dev.html#details">More...</a></p>
  98. <p><code>#include &lt;<a class="el" href="inbuf__dev_8h_source.html">inbuf_dev.h</a>&gt;</code></p>
  99. <table class="memberdecls">
  100. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
  101. Public Types</h2></td></tr>
  102. <tr class="memitem:ae429fbf167bbd96b2cc46094f3540b10"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#ae429fbf167bbd96b2cc46094f3540b10">type</a> = <a class="el" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">inbuf_dev_t</a></td></tr>
  103. <tr class="memdesc:ae429fbf167bbd96b2cc46094f3540b10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Export type as identity meta-function. <a href="#ae429fbf167bbd96b2cc46094f3540b10">More...</a><br /></td></tr>
  104. <tr class="separator:ae429fbf167bbd96b2cc46094f3540b10"><td class="memSeparator" colspan="2">&#160;</td></tr>
  105. <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
  106. <tr class="memitem:ae660dce5b5111b0ea4743e32b3d2c3aa"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#ae660dce5b5111b0ea4743e32b3d2c3aa">data_type</a> = data_t</td></tr>
  107. <tr class="separator:ae660dce5b5111b0ea4743e32b3d2c3aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
  108. <tr class="memitem:a345d3b465e9cf57ebe3a8df31b67fec7"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#a345d3b465e9cf57ebe3a8df31b67fec7">pointer_type</a> = data_t *</td></tr>
  109. <tr class="separator:a345d3b465e9cf57ebe3a8df31b67fec7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  110. </table><table class="memberdecls">
  111. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
  112. Public Member Functions</h2></td></tr>
  113. <tr><td colspan="2"><div class="groupHeader">Public Get interface</div></td></tr>
  114. <tr class="memitem:aa5b71a9b0c989c4686a053e9d5df9251"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#aa5b71a9b0c989c4686a053e9d5df9251">in_avail</a> ()</td></tr>
  115. <tr class="separator:aa5b71a9b0c989c4686a053e9d5df9251"><td class="memSeparator" colspan="2">&#160;</td></tr>
  116. <tr class="memitem:a7856963b0bb0bf294be53ea20f3564d0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#a7856963b0bb0bf294be53ea20f3564d0">get</a> (data_t &amp;data)</td></tr>
  117. <tr class="memdesc:a7856963b0bb0bf294be53ea20f3564d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">The base get interface. This function should read a single data_t object from device usually in non-blocking mode. <a href="#a7856963b0bb0bf294be53ea20f3564d0">More...</a><br /></td></tr>
  118. <tr class="separator:a7856963b0bb0bf294be53ea20f3564d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  119. <tr class="memitem:a9290fbfeebac0d161f800bc1522ea5a6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#a9290fbfeebac0d161f800bc1522ea5a6">get</a> (data_t *data, <a class="el" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a> n)</td></tr>
  120. <tr class="memdesc:a9290fbfeebac0d161f800bc1522ea5a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Old stile get functionality using free standing data_t*. This function should return a stream of data from device. <a href="#a9290fbfeebac0d161f800bc1522ea5a6">More...</a><br /></td></tr>
  121. <tr class="separator:a9290fbfeebac0d161f800bc1522ea5a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  122. <tr><td colspan="2"><div class="groupHeader">Stream operator &gt;&gt; interface</div></td></tr>
  123. <tr class="memitem:aca17fb240dfe221effa5a2092563d185"><td class="memTemplParams" colspan="2">template&lt;typename _Dst_t &gt; </td></tr>
  124. <tr class="memitem:aca17fb240dfe221effa5a2092563d185"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">inbuf_dev_t</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#aca17fb240dfe221effa5a2092563d185">operator&gt;&gt;</a> (_Dst_t &amp;dst)</td></tr>
  125. <tr class="memdesc:aca17fb240dfe221effa5a2092563d185"><td class="mdescLeft">&#160;</td><td class="mdescRight">Template operator &gt;&gt; implementation for for all by value/ref parameters. <a href="#aca17fb240dfe221effa5a2092563d185">More...</a><br /></td></tr>
  126. <tr class="separator:aca17fb240dfe221effa5a2092563d185"><td class="memSeparator" colspan="2">&#160;</td></tr>
  127. <tr class="memitem:a48a8160d1dce4542b0b09cff3f6a488b"><td class="memTemplParams" colspan="2">template&lt;typename _Dst_t &gt; </td></tr>
  128. <tr class="memitem:a48a8160d1dce4542b0b09cff3f6a488b"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">inbuf_dev_t</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#a48a8160d1dce4542b0b09cff3f6a488b">operator&gt;&gt;</a> (_Dst_t *dst)=delete</td></tr>
  129. <tr class="memdesc:a48a8160d1dce4542b0b09cff3f6a488b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialization to disallow pointer types as destination. <a href="#a48a8160d1dce4542b0b09cff3f6a488b">More...</a><br /></td></tr>
  130. <tr class="separator:a48a8160d1dce4542b0b09cff3f6a488b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  131. <tr class="memitem:a6b11ed7628520b4dfe0bd438ccc58197"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">inbuf_dev_t</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#a6b11ed7628520b4dfe0bd438ccc58197">operator&gt;&gt;</a> (data_t &amp;dst)</td></tr>
  132. <tr class="memdesc:a6b11ed7628520b4dfe0bd438ccc58197"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overload for single data_t object. <a href="#a6b11ed7628520b4dfe0bd438ccc58197">More...</a><br /></td></tr>
  133. <tr class="separator:a6b11ed7628520b4dfe0bd438ccc58197"><td class="memSeparator" colspan="2">&#160;</td></tr>
  134. <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
  135. <tr class="memitem:aea05a40b3c8966d1dd3978b40e0c6ac8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classutl_1_1inbuf__dev.html#a0c0827ae69fac778cec3abb179bfc0f3">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#aea05a40b3c8966d1dd3978b40e0c6ac8">end</a> () noexcept</td></tr>
  136. <tr class="separator:aea05a40b3c8966d1dd3978b40e0c6ac8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  137. <tr class="memitem:aa862f748551da0bd92341f8f125b8aa3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classutl_1_1inbuf__dev.html#a173c37503cdd40e7ac1be25759553c24">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#aa862f748551da0bd92341f8f125b8aa3">end</a> () const noexcept</td></tr>
  138. <tr class="separator:aa862f748551da0bd92341f8f125b8aa3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  139. <tr class="memitem:a4b51121e0ecc1d43fd3fe7d05bb6fa56"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classutl_1_1inbuf__dev.html#a173c37503cdd40e7ac1be25759553c24">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#a4b51121e0ecc1d43fd3fe7d05bb6fa56">cend</a> () const noexcept</td></tr>
  140. <tr class="separator:a4b51121e0ecc1d43fd3fe7d05bb6fa56"><td class="memSeparator" colspan="2">&#160;</td></tr>
  141. </table><table class="memberdecls">
  142. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
  143. Protected Member Functions</h2></td></tr>
  144. <tr><td colspan="2"><div class="groupHeader">Constructor / Destructor</div></td></tr>
  145. <tr class="memitem:a55763f1c3ba5610404df70bda1abe75b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#a55763f1c3ba5610404df70bda1abe75b">~inbuf_dev</a> ()=default</td></tr>
  146. <tr class="memdesc:a55763f1c3ba5610404df70bda1abe75b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow destructor from derived only. <a href="#a55763f1c3ba5610404df70bda1abe75b">More...</a><br /></td></tr>
  147. <tr class="separator:a55763f1c3ba5610404df70bda1abe75b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  148. <tr class="memitem:a9bc1f15ed57132539749d390d5bb03b9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#a9bc1f15ed57132539749d390d5bb03b9">inbuf_dev</a> ()=default</td></tr>
  149. <tr class="memdesc:a9bc1f15ed57132539749d390d5bb03b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">A default constructor from derived only. <a href="#a9bc1f15ed57132539749d390d5bb03b9">More...</a><br /></td></tr>
  150. <tr class="separator:a9bc1f15ed57132539749d390d5bb03b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  151. <tr class="memitem:a0fe7d9f726d8a0f2b23df6d9520b58ed"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#a0fe7d9f726d8a0f2b23df6d9520b58ed">inbuf_dev</a> (const <a class="el" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">inbuf_dev_t</a> &amp;)=delete</td></tr>
  152. <tr class="memdesc:a0fe7d9f726d8a0f2b23df6d9520b58ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">No copies. <a href="#a0fe7d9f726d8a0f2b23df6d9520b58ed">More...</a><br /></td></tr>
  153. <tr class="separator:a0fe7d9f726d8a0f2b23df6d9520b58ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
  154. <tr class="memitem:a7aaf5bc892d6247cb6bb547cf331704c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">inbuf_dev_t</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#a7aaf5bc892d6247cb6bb547cf331704c">operator=</a> (const <a class="el" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">inbuf_dev_t</a> &amp;)=delete</td></tr>
  155. <tr class="separator:a7aaf5bc892d6247cb6bb547cf331704c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  156. </table><table class="memberdecls">
  157. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-types"></a>
  158. Private Types</h2></td></tr>
  159. <tr class="memitem:abd832bf35fa1ae0881e8cd86386e5b6b"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">inbuf_dev_t</a> = <a class="el" href="classutl_1_1inbuf__dev.html">inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;</td></tr>
  160. <tr class="memdesc:abd832bf35fa1ae0881e8cd86386e5b6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">class type syntactic sugar <a href="#abd832bf35fa1ae0881e8cd86386e5b6b">More...</a><br /></td></tr>
  161. <tr class="separator:abd832bf35fa1ae0881e8cd86386e5b6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  162. </table><table class="memberdecls">
  163. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
  164. Private Member Functions</h2></td></tr>
  165. <tr class="memitem:a6fe2f35813f2b4e94d8d21a4403c8221"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#a6fe2f35813f2b4e94d8d21a4403c8221">_CRTP_IMPL</a> (impl_t)</td></tr>
  166. <tr class="separator:a6fe2f35813f2b4e94d8d21a4403c8221"><td class="memSeparator" colspan="2">&#160;</td></tr>
  167. <tr><td colspan="2"><div class="groupHeader">Common input device interface requirements</div></td></tr>
  168. <tr class="memitem:ac7af0c7df9eee2bcf02579b0fd1d8dea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#ac7af0c7df9eee2bcf02579b0fd1d8dea">in_avail_</a> ()</td></tr>
  169. <tr class="separator:ac7af0c7df9eee2bcf02579b0fd1d8dea"><td class="memSeparator" colspan="2">&#160;</td></tr>
  170. <tr class="memitem:ab2be58702c31d59e02683d5ff43c9dd6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#ab2be58702c31d59e02683d5ff43c9dd6">get_</a> (data_t &amp;data)</td></tr>
  171. <tr class="separator:ab2be58702c31d59e02683d5ff43c9dd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  172. <tr class="memitem:a2f835b56beec0efc5d1cd2088e6a40cb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#a2f835b56beec0efc5d1cd2088e6a40cb">get_</a> (data_t *data, <a class="el" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a> n)</td></tr>
  173. <tr class="separator:a2f835b56beec0efc5d1cd2088e6a40cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  174. </table><table class="memberdecls">
  175. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
  176. STL-like Input iterator interface</h2></td></tr>
  177. <tr class="memitem:a0c0827ae69fac778cec3abb179bfc0f3"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#a0c0827ae69fac778cec3abb179bfc0f3">iterator</a> = <a class="el" href="classutl_1_1indev__it.html">indev_it</a>&lt; <a class="el" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">inbuf_dev_t</a>, data_t *, streamsize &gt;</td></tr>
  178. <tr class="memdesc:a0c0827ae69fac778cec3abb179bfc0f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator. <a href="#a0c0827ae69fac778cec3abb179bfc0f3">More...</a><br /></td></tr>
  179. <tr class="separator:a0c0827ae69fac778cec3abb179bfc0f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  180. <tr class="memitem:a173c37503cdd40e7ac1be25759553c24"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#a173c37503cdd40e7ac1be25759553c24">const_iterator</a> = <a class="el" href="classutl_1_1indev__it.html">indev_it</a>&lt; <a class="el" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">inbuf_dev_t</a>, const data_t *, streamsize &gt;</td></tr>
  181. <tr class="memdesc:a173c37503cdd40e7ac1be25759553c24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Const iterator. <a href="#a173c37503cdd40e7ac1be25759553c24">More...</a><br /></td></tr>
  182. <tr class="separator:a173c37503cdd40e7ac1be25759553c24"><td class="memSeparator" colspan="2">&#160;</td></tr>
  183. <tr class="memitem:a0b7b02345e2306dc9f62a75029de71fb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classutl_1_1inbuf__dev.html#a0c0827ae69fac778cec3abb179bfc0f3">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#a0b7b02345e2306dc9f62a75029de71fb">begin</a> () noexcept</td></tr>
  184. <tr class="memdesc:a0b7b02345e2306dc9f62a75029de71fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">.begin implementation <a href="#a0b7b02345e2306dc9f62a75029de71fb">More...</a><br /></td></tr>
  185. <tr class="separator:a0b7b02345e2306dc9f62a75029de71fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  186. <tr class="memitem:acf6f21857302843661cdbbbeea61f05b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classutl_1_1inbuf__dev.html#a173c37503cdd40e7ac1be25759553c24">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#acf6f21857302843661cdbbbeea61f05b">begin</a> () const noexcept</td></tr>
  187. <tr class="separator:acf6f21857302843661cdbbbeea61f05b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  188. <tr class="memitem:a3c24ad3be57e15019e3fbd579e5fccb3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classutl_1_1inbuf__dev.html#a173c37503cdd40e7ac1be25759553c24">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutl_1_1inbuf__dev.html#a3c24ad3be57e15019e3fbd579e5fccb3">cbegin</a> () const noexcept</td></tr>
  189. <tr class="separator:a3c24ad3be57e15019e3fbd579e5fccb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  190. </table>
  191. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  192. <div class="textblock"><h3>template&lt;typename impl_t, typename data_t, size_t streamsize = 0&gt;<br />
  193. class utl::inbuf_dev&lt; impl_t, data_t, streamsize &gt;</h3>
  194. <p>Abstract base class for input buffered devices. </p>
  195. <p>Template base class for buffered input buffered devices. using CRTP</p>
  196. <p>This class force a common interface for input, buffered devices. By using this common interface the class implements</p><ul>
  197. <li>Stream-like extracting operator</li>
  198. <li>Input iterator</li>
  199. <li>Const input iterator to inherit to implementation.</li>
  200. </ul>
  201. <dl class="params"><dt>Parameters</dt><dd>
  202. <table class="params">
  203. <tr><td class="paramname">impl_t</td><td>The CRTP type (the derived/implementation class typename). </td></tr>
  204. <tr><td class="paramname">data_t</td><td>The devices base type of data </td></tr>
  205. <tr><td class="paramname">streamsize</td><td>The number of elements to indicate eos. <ul>
  206. <li>None or 0 Stream only. No iterator as <a class="el" href="classutl_1_1inbuf__dev.html#a0b7b02345e2306dc9f62a75029de71fb" title=".begin implementation ">begin()</a> now equals <a class="el" href="classutl_1_1inbuf__dev.html#aea05a40b3c8966d1dd3978b40e0c6ac8">end()</a>. </li>
  207. </ul>
  208. </td></tr>
  209. </table>
  210. </dd>
  211. </dl>
  212. <p class="definition">Definition at line <a class="el" href="inbuf__dev_8h_source.html#l00055">55</a> of file <a class="el" href="inbuf__dev_8h_source.html">inbuf_dev.h</a>.</p>
  213. </div><h2 class="groupheader">Member Typedef Documentation</h2>
  214. <a id="a173c37503cdd40e7ac1be25759553c24"></a>
  215. <h2 class="memtitle"><span class="permalink"><a href="#a173c37503cdd40e7ac1be25759553c24">&#9670;&nbsp;</a></span>const_iterator</h2>
  216. <div class="memitem">
  217. <div class="memproto">
  218. <div class="memtemplate">
  219. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  220. <table class="memname">
  221. <tr>
  222. <td class="memname">using <a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::<a class="el" href="classutl_1_1inbuf__dev.html#a173c37503cdd40e7ac1be25759553c24">const_iterator</a> = <a class="el" href="classutl_1_1indev__it.html">indev_it</a> &lt;<a class="el" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">inbuf_dev_t</a>, const data_t*, streamsize&gt;</td>
  223. </tr>
  224. </table>
  225. </div><div class="memdoc">
  226. <p>Const iterator. </p>
  227. <p class="definition">Definition at line <a class="el" href="inbuf__dev_8h_source.html#l00162">162</a> of file <a class="el" href="inbuf__dev_8h_source.html">inbuf_dev.h</a>.</p>
  228. </div>
  229. </div>
  230. <a id="ae660dce5b5111b0ea4743e32b3d2c3aa"></a>
  231. <h2 class="memtitle"><span class="permalink"><a href="#ae660dce5b5111b0ea4743e32b3d2c3aa">&#9670;&nbsp;</a></span>data_type</h2>
  232. <div class="memitem">
  233. <div class="memproto">
  234. <div class="memtemplate">
  235. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  236. <table class="memname">
  237. <tr>
  238. <td class="memname">using <a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::<a class="el" href="classutl_1_1inbuf__dev.html#ae660dce5b5111b0ea4743e32b3d2c3aa">data_type</a> = data_t</td>
  239. </tr>
  240. </table>
  241. </div><div class="memdoc">
  242. <p>Export types as input device concept demands </p>
  243. <p class="definition">Definition at line <a class="el" href="inbuf__dev_8h_source.html#l00062">62</a> of file <a class="el" href="inbuf__dev_8h_source.html">inbuf_dev.h</a>.</p>
  244. </div>
  245. </div>
  246. <a id="abd832bf35fa1ae0881e8cd86386e5b6b"></a>
  247. <h2 class="memtitle"><span class="permalink"><a href="#abd832bf35fa1ae0881e8cd86386e5b6b">&#9670;&nbsp;</a></span>inbuf_dev_t</h2>
  248. <div class="memitem">
  249. <div class="memproto">
  250. <div class="memtemplate">
  251. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  252. <table class="mlabels">
  253. <tr>
  254. <td class="mlabels-left">
  255. <table class="memname">
  256. <tr>
  257. <td class="memname">using <a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::<a class="el" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">inbuf_dev_t</a> = <a class="el" href="classutl_1_1inbuf__dev.html">inbuf_dev</a> &lt;impl_t, data_t, streamsize&gt;</td>
  258. </tr>
  259. </table>
  260. </td>
  261. <td class="mlabels-right">
  262. <span class="mlabels"><span class="mlabel">private</span></span> </td>
  263. </tr>
  264. </table>
  265. </div><div class="memdoc">
  266. <p>class type syntactic sugar </p>
  267. <p class="definition">Definition at line <a class="el" href="inbuf__dev_8h_source.html#l00057">57</a> of file <a class="el" href="inbuf__dev_8h_source.html">inbuf_dev.h</a>.</p>
  268. </div>
  269. </div>
  270. <a id="a0c0827ae69fac778cec3abb179bfc0f3"></a>
  271. <h2 class="memtitle"><span class="permalink"><a href="#a0c0827ae69fac778cec3abb179bfc0f3">&#9670;&nbsp;</a></span>iterator</h2>
  272. <div class="memitem">
  273. <div class="memproto">
  274. <div class="memtemplate">
  275. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  276. <table class="memname">
  277. <tr>
  278. <td class="memname">using <a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::<a class="el" href="classutl_1_1inbuf__dev.html#a0c0827ae69fac778cec3abb179bfc0f3">iterator</a> = <a class="el" href="classutl_1_1indev__it.html">indev_it</a> &lt;<a class="el" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">inbuf_dev_t</a>, data_t*, streamsize&gt;</td>
  279. </tr>
  280. </table>
  281. </div><div class="memdoc">
  282. <p>Iterator. </p>
  283. <p class="definition">Definition at line <a class="el" href="inbuf__dev_8h_source.html#l00161">161</a> of file <a class="el" href="inbuf__dev_8h_source.html">inbuf_dev.h</a>.</p>
  284. </div>
  285. </div>
  286. <a id="a345d3b465e9cf57ebe3a8df31b67fec7"></a>
  287. <h2 class="memtitle"><span class="permalink"><a href="#a345d3b465e9cf57ebe3a8df31b67fec7">&#9670;&nbsp;</a></span>pointer_type</h2>
  288. <div class="memitem">
  289. <div class="memproto">
  290. <div class="memtemplate">
  291. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  292. <table class="memname">
  293. <tr>
  294. <td class="memname">using <a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::<a class="el" href="classutl_1_1inbuf__dev.html#a345d3b465e9cf57ebe3a8df31b67fec7">pointer_type</a> = data_t*</td>
  295. </tr>
  296. </table>
  297. </div><div class="memdoc">
  298. <p class="definition">Definition at line <a class="el" href="inbuf__dev_8h_source.html#l00063">63</a> of file <a class="el" href="inbuf__dev_8h_source.html">inbuf_dev.h</a>.</p>
  299. </div>
  300. </div>
  301. <a id="ae429fbf167bbd96b2cc46094f3540b10"></a>
  302. <h2 class="memtitle"><span class="permalink"><a href="#ae429fbf167bbd96b2cc46094f3540b10">&#9670;&nbsp;</a></span>type</h2>
  303. <div class="memitem">
  304. <div class="memproto">
  305. <div class="memtemplate">
  306. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  307. <table class="memname">
  308. <tr>
  309. <td class="memname">using <a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::<a class="el" href="classutl_1_1inbuf__dev.html#ae429fbf167bbd96b2cc46094f3540b10">type</a> = <a class="el" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">inbuf_dev_t</a></td>
  310. </tr>
  311. </table>
  312. </div><div class="memdoc">
  313. <p>Export type as identity meta-function. </p>
  314. <p class="definition">Definition at line <a class="el" href="inbuf__dev_8h_source.html#l00065">65</a> of file <a class="el" href="inbuf__dev_8h_source.html">inbuf_dev.h</a>.</p>
  315. </div>
  316. </div>
  317. <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  318. <a id="a55763f1c3ba5610404df70bda1abe75b"></a>
  319. <h2 class="memtitle"><span class="permalink"><a href="#a55763f1c3ba5610404df70bda1abe75b">&#9670;&nbsp;</a></span>~inbuf_dev()</h2>
  320. <div class="memitem">
  321. <div class="memproto">
  322. <div class="memtemplate">
  323. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  324. <table class="mlabels">
  325. <tr>
  326. <td class="mlabels-left">
  327. <table class="memname">
  328. <tr>
  329. <td class="memname"><a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::~<a class="el" href="classutl_1_1inbuf__dev.html">inbuf_dev</a> </td>
  330. <td>(</td>
  331. <td class="paramname"></td><td>)</td>
  332. <td></td>
  333. </tr>
  334. </table>
  335. </td>
  336. <td class="mlabels-right">
  337. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">default</span></span> </td>
  338. </tr>
  339. </table>
  340. </div><div class="memdoc">
  341. <p>Allow destructor from derived only. </p>
  342. </div>
  343. </div>
  344. <a id="a9bc1f15ed57132539749d390d5bb03b9"></a>
  345. <h2 class="memtitle"><span class="permalink"><a href="#a9bc1f15ed57132539749d390d5bb03b9">&#9670;&nbsp;</a></span>inbuf_dev() <span class="overload">[1/2]</span></h2>
  346. <div class="memitem">
  347. <div class="memproto">
  348. <div class="memtemplate">
  349. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  350. <table class="mlabels">
  351. <tr>
  352. <td class="mlabels-left">
  353. <table class="memname">
  354. <tr>
  355. <td class="memname"><a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::<a class="el" href="classutl_1_1inbuf__dev.html">inbuf_dev</a> </td>
  356. <td>(</td>
  357. <td class="paramname"></td><td>)</td>
  358. <td></td>
  359. </tr>
  360. </table>
  361. </td>
  362. <td class="mlabels-right">
  363. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">default</span></span> </td>
  364. </tr>
  365. </table>
  366. </div><div class="memdoc">
  367. <p>A default constructor from derived only. </p>
  368. </div>
  369. </div>
  370. <a id="a0fe7d9f726d8a0f2b23df6d9520b58ed"></a>
  371. <h2 class="memtitle"><span class="permalink"><a href="#a0fe7d9f726d8a0f2b23df6d9520b58ed">&#9670;&nbsp;</a></span>inbuf_dev() <span class="overload">[2/2]</span></h2>
  372. <div class="memitem">
  373. <div class="memproto">
  374. <div class="memtemplate">
  375. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  376. <table class="mlabels">
  377. <tr>
  378. <td class="mlabels-left">
  379. <table class="memname">
  380. <tr>
  381. <td class="memname"><a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::<a class="el" href="classutl_1_1inbuf__dev.html">inbuf_dev</a> </td>
  382. <td>(</td>
  383. <td class="paramtype">const <a class="el" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">inbuf_dev_t</a> &amp;&#160;</td>
  384. <td class="paramname"></td><td>)</td>
  385. <td></td>
  386. </tr>
  387. </table>
  388. </td>
  389. <td class="mlabels-right">
  390. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">delete</span></span> </td>
  391. </tr>
  392. </table>
  393. </div><div class="memdoc">
  394. <p>No copies. </p>
  395. </div>
  396. </div>
  397. <h2 class="groupheader">Member Function Documentation</h2>
  398. <a id="a6fe2f35813f2b4e94d8d21a4403c8221"></a>
  399. <h2 class="memtitle"><span class="permalink"><a href="#a6fe2f35813f2b4e94d8d21a4403c8221">&#9670;&nbsp;</a></span>_CRTP_IMPL()</h2>
  400. <div class="memitem">
  401. <div class="memproto">
  402. <div class="memtemplate">
  403. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  404. <table class="mlabels">
  405. <tr>
  406. <td class="mlabels-left">
  407. <table class="memname">
  408. <tr>
  409. <td class="memname"><a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::_CRTP_IMPL </td>
  410. <td>(</td>
  411. <td class="paramtype">impl_t&#160;</td>
  412. <td class="paramname"></td><td>)</td>
  413. <td></td>
  414. </tr>
  415. </table>
  416. </td>
  417. <td class="mlabels-right">
  418. <span class="mlabels"><span class="mlabel">private</span></span> </td>
  419. </tr>
  420. </table>
  421. </div><div class="memdoc">
  422. </div>
  423. </div>
  424. <a id="a0b7b02345e2306dc9f62a75029de71fb"></a>
  425. <h2 class="memtitle"><span class="permalink"><a href="#a0b7b02345e2306dc9f62a75029de71fb">&#9670;&nbsp;</a></span>begin() <span class="overload">[1/2]</span></h2>
  426. <div class="memitem">
  427. <div class="memproto">
  428. <div class="memtemplate">
  429. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  430. <table class="mlabels">
  431. <tr>
  432. <td class="mlabels-left">
  433. <table class="memname">
  434. <tr>
  435. <td class="memname"><a class="el" href="classutl_1_1inbuf__dev.html#a0c0827ae69fac778cec3abb179bfc0f3">iterator</a> <a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::begin </td>
  436. <td>(</td>
  437. <td class="paramname"></td><td>)</td>
  438. <td></td>
  439. </tr>
  440. </table>
  441. </td>
  442. <td class="mlabels-right">
  443. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  444. </tr>
  445. </table>
  446. </div><div class="memdoc">
  447. <p>.begin implementation </p>
  448. <p class="definition">Definition at line <a class="el" href="inbuf__dev_8h_source.html#l00165">165</a> of file <a class="el" href="inbuf__dev_8h_source.html">inbuf_dev.h</a>.</p>
  449. </div>
  450. </div>
  451. <a id="acf6f21857302843661cdbbbeea61f05b"></a>
  452. <h2 class="memtitle"><span class="permalink"><a href="#acf6f21857302843661cdbbbeea61f05b">&#9670;&nbsp;</a></span>begin() <span class="overload">[2/2]</span></h2>
  453. <div class="memitem">
  454. <div class="memproto">
  455. <div class="memtemplate">
  456. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  457. <table class="mlabels">
  458. <tr>
  459. <td class="mlabels-left">
  460. <table class="memname">
  461. <tr>
  462. <td class="memname"><a class="el" href="classutl_1_1inbuf__dev.html#a173c37503cdd40e7ac1be25759553c24">const_iterator</a> <a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::begin </td>
  463. <td>(</td>
  464. <td class="paramname"></td><td>)</td>
  465. <td> const</td>
  466. </tr>
  467. </table>
  468. </td>
  469. <td class="mlabels-right">
  470. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  471. </tr>
  472. </table>
  473. </div><div class="memdoc">
  474. <p class="definition">Definition at line <a class="el" href="inbuf__dev_8h_source.html#l00166">166</a> of file <a class="el" href="inbuf__dev_8h_source.html">inbuf_dev.h</a>.</p>
  475. </div>
  476. </div>
  477. <a id="a3c24ad3be57e15019e3fbd579e5fccb3"></a>
  478. <h2 class="memtitle"><span class="permalink"><a href="#a3c24ad3be57e15019e3fbd579e5fccb3">&#9670;&nbsp;</a></span>cbegin()</h2>
  479. <div class="memitem">
  480. <div class="memproto">
  481. <div class="memtemplate">
  482. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  483. <table class="mlabels">
  484. <tr>
  485. <td class="mlabels-left">
  486. <table class="memname">
  487. <tr>
  488. <td class="memname"><a class="el" href="classutl_1_1inbuf__dev.html#a173c37503cdd40e7ac1be25759553c24">const_iterator</a> <a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::cbegin </td>
  489. <td>(</td>
  490. <td class="paramname"></td><td>)</td>
  491. <td> const</td>
  492. </tr>
  493. </table>
  494. </td>
  495. <td class="mlabels-right">
  496. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  497. </tr>
  498. </table>
  499. </div><div class="memdoc">
  500. <p class="definition">Definition at line <a class="el" href="inbuf__dev_8h_source.html#l00167">167</a> of file <a class="el" href="inbuf__dev_8h_source.html">inbuf_dev.h</a>.</p>
  501. </div>
  502. </div>
  503. <a id="a4b51121e0ecc1d43fd3fe7d05bb6fa56"></a>
  504. <h2 class="memtitle"><span class="permalink"><a href="#a4b51121e0ecc1d43fd3fe7d05bb6fa56">&#9670;&nbsp;</a></span>cend()</h2>
  505. <div class="memitem">
  506. <div class="memproto">
  507. <div class="memtemplate">
  508. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  509. <table class="mlabels">
  510. <tr>
  511. <td class="mlabels-left">
  512. <table class="memname">
  513. <tr>
  514. <td class="memname"><a class="el" href="classutl_1_1inbuf__dev.html#a173c37503cdd40e7ac1be25759553c24">const_iterator</a> <a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::cend </td>
  515. <td>(</td>
  516. <td class="paramname"></td><td>)</td>
  517. <td> const</td>
  518. </tr>
  519. </table>
  520. </td>
  521. <td class="mlabels-right">
  522. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  523. </tr>
  524. </table>
  525. </div><div class="memdoc">
  526. <p class="definition">Definition at line <a class="el" href="inbuf__dev_8h_source.html#l00172">172</a> of file <a class="el" href="inbuf__dev_8h_source.html">inbuf_dev.h</a>.</p>
  527. </div>
  528. </div>
  529. <a id="aea05a40b3c8966d1dd3978b40e0c6ac8"></a>
  530. <h2 class="memtitle"><span class="permalink"><a href="#aea05a40b3c8966d1dd3978b40e0c6ac8">&#9670;&nbsp;</a></span>end() <span class="overload">[1/2]</span></h2>
  531. <div class="memitem">
  532. <div class="memproto">
  533. <div class="memtemplate">
  534. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  535. <table class="mlabels">
  536. <tr>
  537. <td class="mlabels-left">
  538. <table class="memname">
  539. <tr>
  540. <td class="memname"><a class="el" href="classutl_1_1inbuf__dev.html#a0c0827ae69fac778cec3abb179bfc0f3">iterator</a> <a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::end </td>
  541. <td>(</td>
  542. <td class="paramname"></td><td>)</td>
  543. <td></td>
  544. </tr>
  545. </table>
  546. </td>
  547. <td class="mlabels-right">
  548. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  549. </tr>
  550. </table>
  551. </div><div class="memdoc">
  552. <p>.end implementation </p>
  553. <p class="definition">Definition at line <a class="el" href="inbuf__dev_8h_source.html#l00170">170</a> of file <a class="el" href="inbuf__dev_8h_source.html">inbuf_dev.h</a>.</p>
  554. </div>
  555. </div>
  556. <a id="aa862f748551da0bd92341f8f125b8aa3"></a>
  557. <h2 class="memtitle"><span class="permalink"><a href="#aa862f748551da0bd92341f8f125b8aa3">&#9670;&nbsp;</a></span>end() <span class="overload">[2/2]</span></h2>
  558. <div class="memitem">
  559. <div class="memproto">
  560. <div class="memtemplate">
  561. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  562. <table class="mlabels">
  563. <tr>
  564. <td class="mlabels-left">
  565. <table class="memname">
  566. <tr>
  567. <td class="memname"><a class="el" href="classutl_1_1inbuf__dev.html#a173c37503cdd40e7ac1be25759553c24">const_iterator</a> <a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::end </td>
  568. <td>(</td>
  569. <td class="paramname"></td><td>)</td>
  570. <td> const</td>
  571. </tr>
  572. </table>
  573. </td>
  574. <td class="mlabels-right">
  575. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  576. </tr>
  577. </table>
  578. </div><div class="memdoc">
  579. <p class="definition">Definition at line <a class="el" href="inbuf__dev_8h_source.html#l00171">171</a> of file <a class="el" href="inbuf__dev_8h_source.html">inbuf_dev.h</a>.</p>
  580. </div>
  581. </div>
  582. <a id="a7856963b0bb0bf294be53ea20f3564d0"></a>
  583. <h2 class="memtitle"><span class="permalink"><a href="#a7856963b0bb0bf294be53ea20f3564d0">&#9670;&nbsp;</a></span>get() <span class="overload">[1/2]</span></h2>
  584. <div class="memitem">
  585. <div class="memproto">
  586. <div class="memtemplate">
  587. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  588. <table class="mlabels">
  589. <tr>
  590. <td class="mlabels-left">
  591. <table class="memname">
  592. <tr>
  593. <td class="memname"><a class="el" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a> <a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::get </td>
  594. <td>(</td>
  595. <td class="paramtype">data_t &amp;&#160;</td>
  596. <td class="paramname"><em>data</em></td><td>)</td>
  597. <td></td>
  598. </tr>
  599. </table>
  600. </td>
  601. <td class="mlabels-right">
  602. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  603. </tr>
  604. </table>
  605. </div><div class="memdoc">
  606. <p>The base get interface. This function should read a single data_t object from device usually in non-blocking mode. </p>
  607. <dl class="params"><dt>Parameters</dt><dd>
  608. <table class="params">
  609. <tr><td class="paramname">data</td><td>Reference to data output from device. </td></tr>
  610. </table>
  611. </dd>
  612. </dl>
  613. <dl class="section return"><dt>Returns</dt><dd>Number of data read from device </dd></dl>
  614. <dl class="section note"><dt>Note</dt><dd>A successful call should return 1 </dd></dl>
  615. <p class="definition">Definition at line <a class="el" href="inbuf__dev_8h_source.html#l00108">108</a> of file <a class="el" href="inbuf__dev_8h_source.html">inbuf_dev.h</a>.</p>
  616. </div>
  617. </div>
  618. <a id="a9290fbfeebac0d161f800bc1522ea5a6"></a>
  619. <h2 class="memtitle"><span class="permalink"><a href="#a9290fbfeebac0d161f800bc1522ea5a6">&#9670;&nbsp;</a></span>get() <span class="overload">[2/2]</span></h2>
  620. <div class="memitem">
  621. <div class="memproto">
  622. <div class="memtemplate">
  623. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  624. <table class="mlabels">
  625. <tr>
  626. <td class="mlabels-left">
  627. <table class="memname">
  628. <tr>
  629. <td class="memname"><a class="el" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a> <a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::get </td>
  630. <td>(</td>
  631. <td class="paramtype">data_t *&#160;</td>
  632. <td class="paramname"><em>data</em>, </td>
  633. </tr>
  634. <tr>
  635. <td class="paramkey"></td>
  636. <td></td>
  637. <td class="paramtype"><a class="el" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a>&#160;</td>
  638. <td class="paramname"><em>n</em>&#160;</td>
  639. </tr>
  640. <tr>
  641. <td></td>
  642. <td>)</td>
  643. <td></td><td></td>
  644. </tr>
  645. </table>
  646. </td>
  647. <td class="mlabels-right">
  648. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  649. </tr>
  650. </table>
  651. </div><div class="memdoc">
  652. <p>Old stile get functionality using free standing data_t*. This function should return a stream of data from device. </p>
  653. <dl class="params"><dt>Parameters</dt><dd>
  654. <table class="params">
  655. <tr><td class="paramname">data</td><td>Pointer to buffer to write the data from device. </td></tr>
  656. <tr><td class="paramname">n</td><td>The number of data of type data_t to read </td></tr>
  657. </table>
  658. </dd>
  659. </dl>
  660. <dl class="section return"><dt>Returns</dt><dd>The read data items. </dd></dl>
  661. <p class="definition">Definition at line <a class="el" href="inbuf__dev_8h_source.html#l00120">120</a> of file <a class="el" href="inbuf__dev_8h_source.html">inbuf_dev.h</a>.</p>
  662. </div>
  663. </div>
  664. <a id="ab2be58702c31d59e02683d5ff43c9dd6"></a>
  665. <h2 class="memtitle"><span class="permalink"><a href="#ab2be58702c31d59e02683d5ff43c9dd6">&#9670;&nbsp;</a></span>get_() <span class="overload">[1/2]</span></h2>
  666. <div class="memitem">
  667. <div class="memproto">
  668. <div class="memtemplate">
  669. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  670. <table class="mlabels">
  671. <tr>
  672. <td class="mlabels-left">
  673. <table class="memname">
  674. <tr>
  675. <td class="memname"><a class="el" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a> <a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::get_ </td>
  676. <td>(</td>
  677. <td class="paramtype">data_t &amp;&#160;</td>
  678. <td class="paramname"><em>data</em></td><td>)</td>
  679. <td></td>
  680. </tr>
  681. </table>
  682. </td>
  683. <td class="mlabels-right">
  684. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
  685. </tr>
  686. </table>
  687. </div><div class="memdoc">
  688. <p class="definition">Definition at line <a class="el" href="inbuf__dev_8h_source.html#l00082">82</a> of file <a class="el" href="inbuf__dev_8h_source.html">inbuf_dev.h</a>.</p>
  689. </div>
  690. </div>
  691. <a id="a2f835b56beec0efc5d1cd2088e6a40cb"></a>
  692. <h2 class="memtitle"><span class="permalink"><a href="#a2f835b56beec0efc5d1cd2088e6a40cb">&#9670;&nbsp;</a></span>get_() <span class="overload">[2/2]</span></h2>
  693. <div class="memitem">
  694. <div class="memproto">
  695. <div class="memtemplate">
  696. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  697. <table class="mlabels">
  698. <tr>
  699. <td class="mlabels-left">
  700. <table class="memname">
  701. <tr>
  702. <td class="memname"><a class="el" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a> <a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::get_ </td>
  703. <td>(</td>
  704. <td class="paramtype">data_t *&#160;</td>
  705. <td class="paramname"><em>data</em>, </td>
  706. </tr>
  707. <tr>
  708. <td class="paramkey"></td>
  709. <td></td>
  710. <td class="paramtype"><a class="el" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a>&#160;</td>
  711. <td class="paramname"><em>n</em>&#160;</td>
  712. </tr>
  713. <tr>
  714. <td></td>
  715. <td>)</td>
  716. <td></td><td></td>
  717. </tr>
  718. </table>
  719. </td>
  720. <td class="mlabels-right">
  721. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
  722. </tr>
  723. </table>
  724. </div><div class="memdoc">
  725. <p class="definition">Definition at line <a class="el" href="inbuf__dev_8h_source.html#l00083">83</a> of file <a class="el" href="inbuf__dev_8h_source.html">inbuf_dev.h</a>.</p>
  726. </div>
  727. </div>
  728. <a id="aa5b71a9b0c989c4686a053e9d5df9251"></a>
  729. <h2 class="memtitle"><span class="permalink"><a href="#aa5b71a9b0c989c4686a053e9d5df9251">&#9670;&nbsp;</a></span>in_avail()</h2>
  730. <div class="memitem">
  731. <div class="memproto">
  732. <div class="memtemplate">
  733. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  734. <table class="mlabels">
  735. <tr>
  736. <td class="mlabels-left">
  737. <table class="memname">
  738. <tr>
  739. <td class="memname"><a class="el" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a> <a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::in_avail </td>
  740. <td>(</td>
  741. <td class="paramname"></td><td>)</td>
  742. <td></td>
  743. </tr>
  744. </table>
  745. </td>
  746. <td class="mlabels-right">
  747. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  748. </tr>
  749. </table>
  750. </div><div class="memdoc">
  751. <dl class="section return"><dt>Returns</dt><dd>The available <em>data_t</em> typed items in input buffer. </dd></dl>
  752. <p class="definition">Definition at line <a class="el" href="inbuf__dev_8h_source.html#l00095">95</a> of file <a class="el" href="inbuf__dev_8h_source.html">inbuf_dev.h</a>.</p>
  753. </div>
  754. </div>
  755. <a id="ac7af0c7df9eee2bcf02579b0fd1d8dea"></a>
  756. <h2 class="memtitle"><span class="permalink"><a href="#ac7af0c7df9eee2bcf02579b0fd1d8dea">&#9670;&nbsp;</a></span>in_avail_()</h2>
  757. <div class="memitem">
  758. <div class="memproto">
  759. <div class="memtemplate">
  760. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  761. <table class="mlabels">
  762. <tr>
  763. <td class="mlabels-left">
  764. <table class="memname">
  765. <tr>
  766. <td class="memname"><a class="el" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a> <a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::in_avail_ </td>
  767. <td>(</td>
  768. <td class="paramname"></td><td>)</td>
  769. <td></td>
  770. </tr>
  771. </table>
  772. </td>
  773. <td class="mlabels-right">
  774. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
  775. </tr>
  776. </table>
  777. </div><div class="memdoc">
  778. <p class="definition">Definition at line <a class="el" href="inbuf__dev_8h_source.html#l00081">81</a> of file <a class="el" href="inbuf__dev_8h_source.html">inbuf_dev.h</a>.</p>
  779. </div>
  780. </div>
  781. <a id="a7aaf5bc892d6247cb6bb547cf331704c"></a>
  782. <h2 class="memtitle"><span class="permalink"><a href="#a7aaf5bc892d6247cb6bb547cf331704c">&#9670;&nbsp;</a></span>operator=()</h2>
  783. <div class="memitem">
  784. <div class="memproto">
  785. <div class="memtemplate">
  786. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  787. <table class="mlabels">
  788. <tr>
  789. <td class="mlabels-left">
  790. <table class="memname">
  791. <tr>
  792. <td class="memname"><a class="el" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">inbuf_dev_t</a>&amp; <a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::operator= </td>
  793. <td>(</td>
  794. <td class="paramtype">const <a class="el" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">inbuf_dev_t</a> &amp;&#160;</td>
  795. <td class="paramname"></td><td>)</td>
  796. <td></td>
  797. </tr>
  798. </table>
  799. </td>
  800. <td class="mlabels-right">
  801. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">delete</span></span> </td>
  802. </tr>
  803. </table>
  804. </div><div class="memdoc">
  805. <p>No copy assignments </p>
  806. </div>
  807. </div>
  808. <a id="aca17fb240dfe221effa5a2092563d185"></a>
  809. <h2 class="memtitle"><span class="permalink"><a href="#aca17fb240dfe221effa5a2092563d185">&#9670;&nbsp;</a></span>operator&gt;&gt;() <span class="overload">[1/3]</span></h2>
  810. <div class="memitem">
  811. <div class="memproto">
  812. <div class="memtemplate">
  813. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  814. <div class="memtemplate">
  815. template&lt;typename _Dst_t &gt; </div>
  816. <table class="mlabels">
  817. <tr>
  818. <td class="mlabels-left">
  819. <table class="memname">
  820. <tr>
  821. <td class="memname"><a class="el" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">inbuf_dev_t</a>&amp; <a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::operator&gt;&gt; </td>
  822. <td>(</td>
  823. <td class="paramtype">_Dst_t &amp;&#160;</td>
  824. <td class="paramname"><em>dst</em></td><td>)</td>
  825. <td></td>
  826. </tr>
  827. </table>
  828. </td>
  829. <td class="mlabels-right">
  830. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  831. </tr>
  832. </table>
  833. </div><div class="memdoc">
  834. <p>Template operator &gt;&gt; implementation for for all by value/ref parameters. </p>
  835. <dl class="section note"><dt>Note</dt><dd>In the case _Dst_t size is not a integer multiple of device's data size this will fail by static assertion </dd></dl>
  836. <dl class="params"><dt>Parameters</dt><dd>
  837. <table class="params">
  838. <tr><td class="paramname">dst</td><td>Reference to destination </td></tr>
  839. </table>
  840. </dd>
  841. </dl>
  842. <dl class="section return"><dt>Returns</dt><dd>Reference to this device for chaining </dd></dl>
  843. <p class="definition">Definition at line <a class="el" href="inbuf__dev_8h_source.html#l00140">140</a> of file <a class="el" href="inbuf__dev_8h_source.html">inbuf_dev.h</a>.</p>
  844. </div>
  845. </div>
  846. <a id="a48a8160d1dce4542b0b09cff3f6a488b"></a>
  847. <h2 class="memtitle"><span class="permalink"><a href="#a48a8160d1dce4542b0b09cff3f6a488b">&#9670;&nbsp;</a></span>operator&gt;&gt;() <span class="overload">[2/3]</span></h2>
  848. <div class="memitem">
  849. <div class="memproto">
  850. <div class="memtemplate">
  851. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  852. <div class="memtemplate">
  853. template&lt;typename _Dst_t &gt; </div>
  854. <table class="mlabels">
  855. <tr>
  856. <td class="mlabels-left">
  857. <table class="memname">
  858. <tr>
  859. <td class="memname"><a class="el" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">inbuf_dev_t</a>&amp; <a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::operator&gt;&gt; </td>
  860. <td>(</td>
  861. <td class="paramtype">_Dst_t *&#160;</td>
  862. <td class="paramname"><em>dst</em></td><td>)</td>
  863. <td></td>
  864. </tr>
  865. </table>
  866. </td>
  867. <td class="mlabels-right">
  868. <span class="mlabels"><span class="mlabel">delete</span></span> </td>
  869. </tr>
  870. </table>
  871. </div><div class="memdoc">
  872. <p>Specialization to disallow pointer types as destination. </p>
  873. </div>
  874. </div>
  875. <a id="a6b11ed7628520b4dfe0bd438ccc58197"></a>
  876. <h2 class="memtitle"><span class="permalink"><a href="#a6b11ed7628520b4dfe0bd438ccc58197">&#9670;&nbsp;</a></span>operator&gt;&gt;() <span class="overload">[3/3]</span></h2>
  877. <div class="memitem">
  878. <div class="memproto">
  879. <div class="memtemplate">
  880. template&lt;typename impl_t , typename data_t , size_t streamsize = 0&gt; </div>
  881. <table class="mlabels">
  882. <tr>
  883. <td class="mlabels-left">
  884. <table class="memname">
  885. <tr>
  886. <td class="memname"><a class="el" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">inbuf_dev_t</a>&amp; <a class="el" href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a>&lt; impl_t, data_t, streamsize &gt;::operator&gt;&gt; </td>
  887. <td>(</td>
  888. <td class="paramtype">data_t &amp;&#160;</td>
  889. <td class="paramname"><em>dst</em></td><td>)</td>
  890. <td></td>
  891. </tr>
  892. </table>
  893. </td>
  894. <td class="mlabels-right">
  895. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  896. </tr>
  897. </table>
  898. </div><div class="memdoc">
  899. <p>Overload for single data_t object. </p>
  900. <p class="definition">Definition at line <a class="el" href="inbuf__dev_8h_source.html#l00151">151</a> of file <a class="el" href="inbuf__dev_8h_source.html">inbuf_dev.h</a>.</p>
  901. </div>
  902. </div>
  903. <hr/>The documentation for this class was generated from the following file:<ul>
  904. <li>include/utl/dev/<a class="el" href="inbuf__dev_8h_source.html">inbuf_dev.h</a></li>
  905. </ul>
  906. </div><!-- contents -->
  907. </div><!-- doc-content -->
  908. <!-- start footer part -->
  909. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  910. <ul>
  911. <li class="navelem"><a class="el" href="namespaceutl.html">utl</a></li><li class="navelem"><a class="el" href="classutl_1_1inbuf__dev.html">inbuf_dev</a></li>
  912. <li class="footer">Generated by
  913. <a href="http://www.doxygen.org/index.html">
  914. <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
  915. </ul>
  916. </div>
  917. </body>
  918. </html>