Micro template library A library for building device drivers
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

ostream__dev_8h_source.html 51 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  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: include/utl/dev/ostream_dev.h Source File</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('ostream__dev_8h_source.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="headertitle">
  88. <div class="title">ostream_dev.h</div> </div>
  89. </div><!--header-->
  90. <div class="contents">
  91. <a href="ostream__dev_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#ifndef __utl_dev_ostream_dev_h__</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#define __utl_dev_ostream_dev_h__</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="impl_8h.html">utl/core/impl.h</a>&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="crtp_8h.html">utl/core/crtp.h</a>&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="dev__iterators_8h.html">utl/dev/dev_iterators.h</a>&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="meta_8h.html">utl/meta/meta.h</a>&gt;</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceutl.html">utl</a> {</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> impl_t, <span class="keyword">typename</span> data_t&gt;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev.html"> 52</a></span>&#160; <span class="keyword">class </span><a class="code" href="classutl_1_1ostream__dev.html">ostream_dev</a> {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="classutl_1_1ostream__dev.html#af993acec883f07fcd4ac9905eaa6f127">_CRTP_IMPL</a>(impl_t);</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev.html#adc4bbb5e81e6d612937bca9a84c950ca"> 54</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classutl_1_1ostream__dev.html">ostream_dev_t</a> = <a class="code" href="classutl_1_1ostream__dev.html">ostream_dev &lt;impl_t, data_t&gt;</a>; </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev.html#af333211e6a4c20b86c35a1d4fd15b9c5"> 59</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classutl_1_1ostream__dev.html#af333211e6a4c20b86c35a1d4fd15b9c5">data_type</a> = data_t;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev.html#a4d60fb31555306bf52a88889db1c8739"> 60</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classutl_1_1ostream__dev.html#a4d60fb31555306bf52a88889db1c8739">pointer_type</a> = data_t*;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev.html#ac7169419677c70f4811803828b826351"> 62</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classutl_1_1ostream__dev.html">type</a> = <a class="code" href="classutl_1_1ostream__dev.html#adc4bbb5e81e6d612937bca9a84c950ca">ostream_dev_t</a>; </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="classutl_1_1ostream__dev.html#ad0358c1b879818118e745da164d99998">~ostream_dev</a> () = <span class="keywordflow">default</span>; </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="classutl_1_1ostream__dev.html#a6bb520cb5397ab9f7579c868311017b5">ostream_dev</a> () = <span class="keywordflow">default</span>; </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classutl_1_1ostream__dev.html#a6bb520cb5397ab9f7579c868311017b5">ostream_dev</a>(<span class="keyword">const</span> <a class="code" href="classutl_1_1ostream__dev.html">ostream_dev_t</a>&amp;) = <span class="keyword">delete</span>; </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="classutl_1_1ostream__dev.html">ostream_dev_t</a>&amp; <a class="code" href="classutl_1_1ostream__dev.html#a385318ff45d575ec92801f7c0e29e9c8">operator= </a>(<span class="keyword">const</span> <a class="code" href="classutl_1_1ostream__dev.html">ostream_dev_t</a>&amp;) = <span class="keyword">delete</span>; </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev.html#acfe4768762548db0d99cde8a802b0723"> 77</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classutl_1_1ostream__dev.html#acfe4768762548db0d99cde8a802b0723">put_</a> (<span class="keyword">const</span> data_t&amp; data) { <span class="keywordflow">return</span> impl().put_ (data); }</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev.html#a33546e98ec0cbd6cef862cb4d9853c7a"> 78</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classutl_1_1ostream__dev.html#a33546e98ec0cbd6cef862cb4d9853c7a">put_</a> (<span class="keyword">const</span> data_t* data, <span class="keywordtype">size_t</span> n) {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> impl().put_ (data, n);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev.html#a70a8d008d93a5a3f50de63dc70b7b4e4"> 96</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classutl_1_1ostream__dev.html#a70a8d008d93a5a3f50de63dc70b7b4e4">put</a> (<span class="keyword">const</span> data_t&amp; data) {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classutl_1_1ostream__dev.html#acfe4768762548db0d99cde8a802b0723">put_</a> (data);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev.html#a29f2cad2b83c801cfdab235c880e528b"> 108</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classutl_1_1ostream__dev.html#a29f2cad2b83c801cfdab235c880e528b">put</a> (<span class="keyword">const</span> data_t* data, <span class="keywordtype">size_t</span> n) {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classutl_1_1ostream__dev.html#acfe4768762548db0d99cde8a802b0723">put_</a> (data, n);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> _Src_t&gt;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev.html#a4ab9729e2a50b797bcd939c840685b48"> 128</a></span>&#160; <a class="code" href="classutl_1_1ostream__dev.html">ostream_dev_t</a>&amp; <a class="code" href="classutl_1_1ostream__dev.html#a4ab9729e2a50b797bcd939c840685b48">operator&lt;&lt; </a>(<span class="keyword">const</span> _Src_t&amp; src) {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; static_assert ((<span class="keyword">sizeof</span> (_Src_t)%<span class="keyword">sizeof</span>(data_t) == 0),</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="stringliteral">&quot;Source size must be an integer multiple of device&#39;s data size&quot;</span>);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="classutl_1_1ostream__dev.html#acfe4768762548db0d99cde8a802b0723">put_</a> (reinterpret_cast&lt;const data_t*&gt;(&amp;src), <span class="keyword">sizeof</span>(_Src_t)/<span class="keyword">sizeof</span>(data_t));</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> _Src_t&gt;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="classutl_1_1ostream__dev.html#adc4bbb5e81e6d612937bca9a84c950ca">ostream_dev_t</a>&amp; <a class="code" href="classutl_1_1ostream__dev.html#a4ab9729e2a50b797bcd939c840685b48">operator&lt;&lt; </a>(_Src_t* src) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev.html#a776a690023246345f1af2991f1b3b206"> 139</a></span>&#160; <a class="code" href="classutl_1_1ostream__dev.html">ostream_dev_t</a>&amp; <a class="code" href="classutl_1_1ostream__dev.html#a4ab9729e2a50b797bcd939c840685b48">operator&lt;&lt; </a>(<span class="keyword">const</span> data_t&amp; src) {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="classutl_1_1ostream__dev.html#acfe4768762548db0d99cde8a802b0723">put_</a> (src);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="comment">//ToDo: Add support for c-string, utl::string, ...</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">using</span> <a class="code" href="classutl_1_1ostream__dev.html#a38ce53a3ec7a902bdcbd9dc04350b903">iterator</a> = <a class="code" href="classutl_1_1ostreamdev__it.html">ostreamdev_it &lt;ostream_dev_t, data_t&gt;</a>; </div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev.html#a04f153a089085daceda6a55854789a95"> 151</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classutl_1_1ostreamdev__it.html">const_iterator</a> = <a class="code" href="classutl_1_1ostreamdev__it.html">ostreamdev_it &lt;const ostream_dev_t, data_t&gt;</a>; </div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev.html#a313cc3aada490c2d2641d6bdac559748"> 154</a></span>&#160; <a class="code" href="classutl_1_1ostreamdev__it.html">iterator</a> <a class="code" href="classutl_1_1ostream__dev.html#a313cc3aada490c2d2641d6bdac559748">begin</a> () noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1ostream__dev.html#a38ce53a3ec7a902bdcbd9dc04350b903">iterator</a>(<span class="keyword">this</span>); }</div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev.html#aa541b838442aaf7693d528dabd049790"> 155</a></span>&#160; <a class="code" href="classutl_1_1ostreamdev__it.html">const_iterator</a> <a class="code" href="classutl_1_1ostream__dev.html#aa541b838442aaf7693d528dabd049790">begin</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1ostream__dev.html#a04f153a089085daceda6a55854789a95">const_iterator</a>(<span class="keyword">this</span>); }</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev.html#adad6881acafe06f05545364b3bb3941c"> 156</a></span>&#160; <a class="code" href="classutl_1_1ostreamdev__it.html">const_iterator</a> <a class="code" href="classutl_1_1ostream__dev.html#adad6881acafe06f05545364b3bb3941c">cbegin</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1ostream__dev.html#a04f153a089085daceda6a55854789a95">const_iterator</a>(<span class="keyword">this</span>); }</div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev.html#a3d2f837c438b1a97ec14384ba3382090"> 159</a></span>&#160; <a class="code" href="classutl_1_1ostreamdev__it.html">iterator</a> <a class="code" href="classutl_1_1ostream__dev.html#a3d2f837c438b1a97ec14384ba3382090">end</a> () noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1ostream__dev.html#a38ce53a3ec7a902bdcbd9dc04350b903">iterator</a>(); }</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev.html#af836e2bdffe1829593d889f98a35a726"> 160</a></span>&#160; <a class="code" href="classutl_1_1ostreamdev__it.html">const_iterator</a> <a class="code" href="classutl_1_1ostream__dev.html#af836e2bdffe1829593d889f98a35a726">end</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1ostream__dev.html#a04f153a089085daceda6a55854789a95">const_iterator</a>(); }</div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev.html#a90d454a509be230af0595e5a57e91f56"> 161</a></span>&#160; <a class="code" href="classutl_1_1ostreamdev__it.html">const_iterator</a> <a class="code" href="classutl_1_1ostream__dev.html#a90d454a509be230af0595e5a57e91f56">cend</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1ostream__dev.html#a04f153a089085daceda6a55854789a95">const_iterator</a>(); }</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; };</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> data_t&gt;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html"> 171</a></span>&#160; <span class="keyword">class </span><a class="code" href="classutl_1_1ostream__dev.html">ostream_dev</a>&lt;<a class="code" href="structutl_1_1virtual__tag.html">virtual_tag</a>, data_t&gt; {</div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#a802836d016068af3e5e78dc5001d5861"> 172</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html">ostream_dev_t</a> = <a class="code" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html">ostream_dev &lt;virtual_tag, data_t&gt;</a>; </div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#a0c182d46215479ac0169c741db773f3b"> 177</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#a0c182d46215479ac0169c741db773f3b">data_type</a> = data_t;</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#a2186444525589e2e06fdf947b238b785"> 178</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#a2186444525589e2e06fdf947b238b785">pointer_type</a> = data_t*;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#aa3cb961a80a8dee210e9ab9ffd2483ee"> 180</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html">type</a> = <a class="code" href="classutl_1_1ostream__dev.html#adc4bbb5e81e6d612937bca9a84c950ca">ostream_dev_t</a>; </div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classutl_1_1ostream__dev.html#ad0358c1b879818118e745da164d99998">~ostream_dev</a> () = <span class="keywordflow">default</span>; </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="classutl_1_1ostream__dev.html#a6bb520cb5397ab9f7579c868311017b5">ostream_dev</a> () = <span class="keywordflow">default</span>; </div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="classutl_1_1ostream__dev.html#a6bb520cb5397ab9f7579c868311017b5">ostream_dev</a>(<span class="keyword">const</span> <a class="code" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html">ostream_dev_t</a>&amp;) = <span class="keyword">delete</span>; </div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html">ostream_dev_t</a>&amp; <a class="code" href="classutl_1_1ostream__dev.html#a385318ff45d575ec92801f7c0e29e9c8">operator= </a>(<span class="keyword">const</span> <a class="code" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html">ostream_dev_t</a>&amp;) = <span class="keyword">delete</span>; </div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classutl_1_1ostream__dev.html#acfe4768762548db0d99cde8a802b0723">put_</a> (<span class="keyword">const</span> data_t&amp; data) =0;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classutl_1_1ostream__dev.html#acfe4768762548db0d99cde8a802b0723">put_</a> (<span class="keyword">const</span> data_t* data, <span class="keywordtype">size_t</span> n) =0;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#aaee696bf560e084e61b4fb0217569d1a"> 213</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#aaee696bf560e084e61b4fb0217569d1a">put</a> (<span class="keyword">const</span> data_t&amp; data) {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classutl_1_1ostream__dev.html#acfe4768762548db0d99cde8a802b0723">put_</a> (data);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#a8014501f6c22a8dc0a366898e92fa83c"> 225</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#a8014501f6c22a8dc0a366898e92fa83c">put</a> (<span class="keyword">const</span> data_t* data, <span class="keywordtype">size_t</span> n) {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classutl_1_1ostream__dev.html#acfe4768762548db0d99cde8a802b0723">put_</a> (data, n);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; }</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> _Src_t&gt;</div><div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#a9761a89cc6f5f57529fd7f686350a221"> 245</a></span>&#160; <a class="code" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html">ostream_dev_t</a>&amp; <a class="code" href="classutl_1_1ostream__dev.html#a4ab9729e2a50b797bcd939c840685b48">operator&lt;&lt; </a>(<span class="keyword">const</span> _Src_t&amp; src) {</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; static_assert ((<span class="keyword">sizeof</span> (_Src_t)%<span class="keyword">sizeof</span>(data_t) == 0),</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="stringliteral">&quot;Source size must be an integer multiple of device&#39;s data size&quot;</span>);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="classutl_1_1ostream__dev.html#acfe4768762548db0d99cde8a802b0723">put_</a> (reinterpret_cast&lt;const data_t*&gt;(&amp;src), <span class="keyword">sizeof</span>(_Src_t)/<span class="keyword">sizeof</span>(data_t));</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; }</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> _Src_t&gt;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="classutl_1_1ostream__dev.html#adc4bbb5e81e6d612937bca9a84c950ca">ostream_dev_t</a>&amp; <a class="code" href="classutl_1_1ostream__dev.html#a4ab9729e2a50b797bcd939c840685b48">operator&lt;&lt; </a>(_Src_t* src) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#a767095b8efcafd7cb50c065b1c781146"> 256</a></span>&#160; <a class="code" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html">ostream_dev_t</a>&amp; <a class="code" href="classutl_1_1ostream__dev.html#a4ab9729e2a50b797bcd939c840685b48">operator&lt;&lt; </a>(<span class="keyword">const</span> data_t&amp; src) {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="classutl_1_1ostream__dev.html#acfe4768762548db0d99cde8a802b0723">put_</a> (src);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keyword">using</span> <a class="code" href="classutl_1_1ostream__dev.html#a38ce53a3ec7a902bdcbd9dc04350b903">iterator</a> = <a class="code" href="classutl_1_1ostreamdev__it.html">ostreamdev_it &lt;ostream_dev_t, data_t&gt;</a>; </div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#abcb00d6a76ac3baa46283c631c020b9c"> 267</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classutl_1_1ostreamdev__it.html">const_iterator</a> = <a class="code" href="classutl_1_1ostreamdev__it.html">ostreamdev_it &lt;const ostream_dev_t, data_t&gt;</a>; </div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#ab1319beb5c2d1d84adb54c83d73d34b6"> 270</a></span>&#160; <a class="code" href="classutl_1_1ostreamdev__it.html">iterator</a> <a class="code" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#ab1319beb5c2d1d84adb54c83d73d34b6">begin</a> () noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1ostream__dev.html#a38ce53a3ec7a902bdcbd9dc04350b903">iterator</a>(<span class="keyword">this</span>); }</div><div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#a43515a84a7f31d33a1bcc5c352ae3809"> 271</a></span>&#160; <a class="code" href="classutl_1_1ostreamdev__it.html">const_iterator</a> <a class="code" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#a43515a84a7f31d33a1bcc5c352ae3809">begin</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1ostream__dev.html#a04f153a089085daceda6a55854789a95">const_iterator</a>(<span class="keyword">this</span>); }</div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#aafdd8c809f8c113ff8749d9d98ad5831"> 272</a></span>&#160; <a class="code" href="classutl_1_1ostreamdev__it.html">const_iterator</a> <a class="code" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#aafdd8c809f8c113ff8749d9d98ad5831">cbegin</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1ostream__dev.html#a04f153a089085daceda6a55854789a95">const_iterator</a>(<span class="keyword">this</span>); }</div><div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#a853552686bba8432a6f53a9c21f83ac2"> 275</a></span>&#160; <a class="code" href="classutl_1_1ostreamdev__it.html">iterator</a> <a class="code" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#a853552686bba8432a6f53a9c21f83ac2">end</a> () noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1ostream__dev.html#a38ce53a3ec7a902bdcbd9dc04350b903">iterator</a>(); }</div><div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#a8ea06a012f2d55f67421026116000337"> 276</a></span>&#160; <a class="code" href="classutl_1_1ostreamdev__it.html">const_iterator</a> <a class="code" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#a8ea06a012f2d55f67421026116000337">end</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1ostream__dev.html#a04f153a089085daceda6a55854789a95">const_iterator</a>(); }</div><div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#a7a883628b71791d0f26a47f9d801543d"> 277</a></span>&#160; <a class="code" href="classutl_1_1ostreamdev__it.html">const_iterator</a> <a class="code" href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#a7a883628b71791d0f26a47f9d801543d">cend</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1ostream__dev.html#a04f153a089085daceda6a55854789a95">const_iterator</a>(); }</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; };</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;} <span class="comment">//namespace utl</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* #ifndef __utl_dev_out_dev_h__ */</span><span class="preprocessor"></span></div><div class="ttc" id="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_html_a7a883628b71791d0f26a47f9d801543d"><div class="ttname"><a href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#a7a883628b71791d0f26a47f9d801543d">utl::ostream_dev&lt; virtual_tag, data_t &gt;::cend</a></div><div class="ttdeci">const_iterator cend() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00277">ostream_dev.h:277</a></div></div>
  92. <div class="ttc" id="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_html_aafdd8c809f8c113ff8749d9d98ad5831"><div class="ttname"><a href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#aafdd8c809f8c113ff8749d9d98ad5831">utl::ostream_dev&lt; virtual_tag, data_t &gt;::cbegin</a></div><div class="ttdeci">const_iterator cbegin() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00272">ostream_dev.h:272</a></div></div>
  93. <div class="ttc" id="classutl_1_1ostream__dev_html_a38ce53a3ec7a902bdcbd9dc04350b903"><div class="ttname"><a href="classutl_1_1ostream__dev.html#a38ce53a3ec7a902bdcbd9dc04350b903">utl::ostream_dev::iterator</a></div><div class="ttdeci">ostreamdev_it&lt; ostream_dev_t, data_t &gt; iterator</div><div class="ttdoc">Iterator. </div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00150">ostream_dev.h:150</a></div></div>
  94. <div class="ttc" id="meta_8h_html"><div class="ttname"><a href="meta_8h.html">meta.h</a></div><div class="ttdoc">Include all meta library. </div></div>
  95. <div class="ttc" id="classutl_1_1ostream__dev_html_af836e2bdffe1829593d889f98a35a726"><div class="ttname"><a href="classutl_1_1ostream__dev.html#af836e2bdffe1829593d889f98a35a726">utl::ostream_dev::end</a></div><div class="ttdeci">const_iterator end() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00160">ostream_dev.h:160</a></div></div>
  96. <div class="ttc" id="classutl_1_1ostream__dev_html_acfe4768762548db0d99cde8a802b0723"><div class="ttname"><a href="classutl_1_1ostream__dev.html#acfe4768762548db0d99cde8a802b0723">utl::ostream_dev::put_</a></div><div class="ttdeci">size_t put_(const data_t &amp;data)</div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00077">ostream_dev.h:77</a></div></div>
  97. <div class="ttc" id="classutl_1_1ostream__dev_html_ad0358c1b879818118e745da164d99998"><div class="ttname"><a href="classutl_1_1ostream__dev.html#ad0358c1b879818118e745da164d99998">utl::ostream_dev::~ostream_dev</a></div><div class="ttdeci">~ostream_dev()=default</div><div class="ttdoc">Allow destructor from derived only. </div></div>
  98. <div class="ttc" id="crtp_8h_html"><div class="ttname"><a href="crtp_8h.html">crtp.h</a></div></div>
  99. <div class="ttc" id="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_html_ab1319beb5c2d1d84adb54c83d73d34b6"><div class="ttname"><a href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#ab1319beb5c2d1d84adb54c83d73d34b6">utl::ostream_dev&lt; virtual_tag, data_t &gt;::begin</a></div><div class="ttdeci">iterator begin() noexcept</div><div class="ttdoc">.begin implementation </div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00270">ostream_dev.h:270</a></div></div>
  100. <div class="ttc" id="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_html_a8014501f6c22a8dc0a366898e92fa83c"><div class="ttname"><a href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#a8014501f6c22a8dc0a366898e92fa83c">utl::ostream_dev&lt; virtual_tag, data_t &gt;::put</a></div><div class="ttdeci">size_t put(const data_t *data, size_t n)</div><div class="ttdoc">Put interface. This function should send a stream of data_t objects to device. </div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00225">ostream_dev.h:225</a></div></div>
  101. <div class="ttc" id="classutl_1_1ostream__dev_html_adc4bbb5e81e6d612937bca9a84c950ca"><div class="ttname"><a href="classutl_1_1ostream__dev.html#adc4bbb5e81e6d612937bca9a84c950ca">utl::ostream_dev::ostream_dev_t</a></div><div class="ttdeci">ostream_dev&lt; impl_t, data_t &gt; ostream_dev_t</div><div class="ttdoc">class type syntactic sugar </div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00054">ostream_dev.h:54</a></div></div>
  102. <div class="ttc" id="classutl_1_1ostream__dev_html_a29f2cad2b83c801cfdab235c880e528b"><div class="ttname"><a href="classutl_1_1ostream__dev.html#a29f2cad2b83c801cfdab235c880e528b">utl::ostream_dev::put</a></div><div class="ttdeci">size_t put(const data_t *data, size_t n)</div><div class="ttdoc">Put interface. This function should send a stream of data_t objects to device. </div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00108">ostream_dev.h:108</a></div></div>
  103. <div class="ttc" id="classutl_1_1ostream__dev_html_a4d60fb31555306bf52a88889db1c8739"><div class="ttname"><a href="classutl_1_1ostream__dev.html#a4d60fb31555306bf52a88889db1c8739">utl::ostream_dev::pointer_type</a></div><div class="ttdeci">data_t * pointer_type</div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00060">ostream_dev.h:60</a></div></div>
  104. <div class="ttc" id="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_html_a0c182d46215479ac0169c741db773f3b"><div class="ttname"><a href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#a0c182d46215479ac0169c741db773f3b">utl::ostream_dev&lt; virtual_tag, data_t &gt;::data_type</a></div><div class="ttdeci">data_t data_type</div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00177">ostream_dev.h:177</a></div></div>
  105. <div class="ttc" id="classutl_1_1ostream__dev_html"><div class="ttname"><a href="classutl_1_1ostream__dev.html">utl::ostream_dev</a></div><div class="ttdoc">Abstract base classes for output stream devices. </div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00052">ostream_dev.h:52</a></div></div>
  106. <div class="ttc" id="namespaceutl_html"><div class="ttname"><a href="namespaceutl.html">utl</a></div><div class="ttdoc">STL&amp;#39;s core language concepts. </div><div class="ttdef"><b>Definition:</b> <a href="__1wire_8h_source.html#l00030">_1wire.h:30</a></div></div>
  107. <div class="ttc" id="classutl_1_1ostream__dev_html_a385318ff45d575ec92801f7c0e29e9c8"><div class="ttname"><a href="classutl_1_1ostream__dev.html#a385318ff45d575ec92801f7c0e29e9c8">utl::ostream_dev::operator=</a></div><div class="ttdeci">ostream_dev_t &amp; operator=(const ostream_dev_t &amp;)=delete</div></div>
  108. <div class="ttc" id="classutl_1_1ostream__dev_html_a6bb520cb5397ab9f7579c868311017b5"><div class="ttname"><a href="classutl_1_1ostream__dev.html#a6bb520cb5397ab9f7579c868311017b5">utl::ostream_dev::ostream_dev</a></div><div class="ttdeci">ostream_dev()=default</div><div class="ttdoc">A default constructor from derived only. </div></div>
  109. <div class="ttc" id="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_html_a2186444525589e2e06fdf947b238b785"><div class="ttname"><a href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#a2186444525589e2e06fdf947b238b785">utl::ostream_dev&lt; virtual_tag, data_t &gt;::pointer_type</a></div><div class="ttdeci">data_t * pointer_type</div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00178">ostream_dev.h:178</a></div></div>
  110. <div class="ttc" id="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_html_a853552686bba8432a6f53a9c21f83ac2"><div class="ttname"><a href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#a853552686bba8432a6f53a9c21f83ac2">utl::ostream_dev&lt; virtual_tag, data_t &gt;::end</a></div><div class="ttdeci">iterator end() noexcept</div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00275">ostream_dev.h:275</a></div></div>
  111. <div class="ttc" id="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_html"><div class="ttname"><a href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html">utl::ostream_dev&lt; virtual_tag, data_t &gt;</a></div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00171">ostream_dev.h:171</a></div></div>
  112. <div class="ttc" id="classutl_1_1ostreamdev__it_html"><div class="ttname"><a href="classutl_1_1ostreamdev__it.html">utl::ostreamdev_it</a></div><div class="ttdef"><b>Definition:</b> <a href="dev__iterators_8h_source.html#l00069">dev_iterators.h:69</a></div></div>
  113. <div class="ttc" id="classutl_1_1ostream__dev_html_af333211e6a4c20b86c35a1d4fd15b9c5"><div class="ttname"><a href="classutl_1_1ostream__dev.html#af333211e6a4c20b86c35a1d4fd15b9c5">utl::ostream_dev::data_type</a></div><div class="ttdeci">data_t data_type</div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00059">ostream_dev.h:59</a></div></div>
  114. <div class="ttc" id="classutl_1_1ostream__dev_html_a04f153a089085daceda6a55854789a95"><div class="ttname"><a href="classutl_1_1ostream__dev.html#a04f153a089085daceda6a55854789a95">utl::ostream_dev::const_iterator</a></div><div class="ttdeci">ostreamdev_it&lt; const ostream_dev_t, data_t &gt; const_iterator</div><div class="ttdoc">Const iterator. </div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00151">ostream_dev.h:151</a></div></div>
  115. <div class="ttc" id="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_html_a43515a84a7f31d33a1bcc5c352ae3809"><div class="ttname"><a href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#a43515a84a7f31d33a1bcc5c352ae3809">utl::ostream_dev&lt; virtual_tag, data_t &gt;::begin</a></div><div class="ttdeci">const_iterator begin() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00271">ostream_dev.h:271</a></div></div>
  116. <div class="ttc" id="dev__iterators_8h_html"><div class="ttname"><a href="dev__iterators_8h.html">dev_iterators.h</a></div><div class="ttdoc">Iterator collection for devices. </div></div>
  117. <div class="ttc" id="classutl_1_1ostream__dev_html_a70a8d008d93a5a3f50de63dc70b7b4e4"><div class="ttname"><a href="classutl_1_1ostream__dev.html#a70a8d008d93a5a3f50de63dc70b7b4e4">utl::ostream_dev::put</a></div><div class="ttdeci">size_t put(const data_t &amp;data)</div><div class="ttdoc">Put interface. This function should send a single data_t object to device. </div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00096">ostream_dev.h:96</a></div></div>
  118. <div class="ttc" id="classutl_1_1ostream__dev_html_a313cc3aada490c2d2641d6bdac559748"><div class="ttname"><a href="classutl_1_1ostream__dev.html#a313cc3aada490c2d2641d6bdac559748">utl::ostream_dev::begin</a></div><div class="ttdeci">iterator begin() noexcept</div><div class="ttdoc">.begin implementation </div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00154">ostream_dev.h:154</a></div></div>
  119. <div class="ttc" id="classutl_1_1ostream__dev_html_af993acec883f07fcd4ac9905eaa6f127"><div class="ttname"><a href="classutl_1_1ostream__dev.html#af993acec883f07fcd4ac9905eaa6f127">utl::ostream_dev::_CRTP_IMPL</a></div><div class="ttdeci">_CRTP_IMPL(impl_t)</div></div>
  120. <div class="ttc" id="classutl_1_1ostream__dev_html_aa541b838442aaf7693d528dabd049790"><div class="ttname"><a href="classutl_1_1ostream__dev.html#aa541b838442aaf7693d528dabd049790">utl::ostream_dev::begin</a></div><div class="ttdeci">const_iterator begin() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00155">ostream_dev.h:155</a></div></div>
  121. <div class="ttc" id="structutl_1_1virtual__tag_html"><div class="ttname"><a href="structutl_1_1virtual__tag.html">utl::virtual_tag</a></div><div class="ttdoc">virtual support tag type </div><div class="ttdef"><b>Definition:</b> <a href="crtp_8h_source.html#l00040">crtp.h:40</a></div></div>
  122. <div class="ttc" id="classutl_1_1ostream__dev_html_a3d2f837c438b1a97ec14384ba3382090"><div class="ttname"><a href="classutl_1_1ostream__dev.html#a3d2f837c438b1a97ec14384ba3382090">utl::ostream_dev::end</a></div><div class="ttdeci">iterator end() noexcept</div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00159">ostream_dev.h:159</a></div></div>
  123. <div class="ttc" id="classutl_1_1ostream__dev_html_a4ab9729e2a50b797bcd939c840685b48"><div class="ttname"><a href="classutl_1_1ostream__dev.html#a4ab9729e2a50b797bcd939c840685b48">utl::ostream_dev::operator&lt;&lt;</a></div><div class="ttdeci">ostream_dev_t &amp; operator&lt;&lt;(const _Src_t &amp;src)</div><div class="ttdoc">Template operator&lt;&lt; implementation for for all by value/ref parameters. </div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00128">ostream_dev.h:128</a></div></div>
  124. <div class="ttc" id="classutl_1_1ostream__dev_html_adad6881acafe06f05545364b3bb3941c"><div class="ttname"><a href="classutl_1_1ostream__dev.html#adad6881acafe06f05545364b3bb3941c">utl::ostream_dev::cbegin</a></div><div class="ttdeci">const_iterator cbegin() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00156">ostream_dev.h:156</a></div></div>
  125. <div class="ttc" id="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_html_a8ea06a012f2d55f67421026116000337"><div class="ttname"><a href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#a8ea06a012f2d55f67421026116000337">utl::ostream_dev&lt; virtual_tag, data_t &gt;::end</a></div><div class="ttdeci">const_iterator end() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00276">ostream_dev.h:276</a></div></div>
  126. <div class="ttc" id="impl_8h_html"><div class="ttname"><a href="impl_8h.html">impl.h</a></div><div class="ttdoc">Implementation detail main forward header. </div></div>
  127. <div class="ttc" id="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4_html_aaee696bf560e084e61b4fb0217569d1a"><div class="ttname"><a href="classutl_1_1ostream__dev_3_01virtual__tag_00_01data__t_01_4.html#aaee696bf560e084e61b4fb0217569d1a">utl::ostream_dev&lt; virtual_tag, data_t &gt;::put</a></div><div class="ttdeci">size_t put(const data_t &amp;data)</div><div class="ttdoc">Put interface. This function should send a single data_t object to device. </div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00213">ostream_dev.h:213</a></div></div>
  128. <div class="ttc" id="classutl_1_1ostream__dev_html_a90d454a509be230af0595e5a57e91f56"><div class="ttname"><a href="classutl_1_1ostream__dev.html#a90d454a509be230af0595e5a57e91f56">utl::ostream_dev::cend</a></div><div class="ttdeci">const_iterator cend() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00161">ostream_dev.h:161</a></div></div>
  129. <div class="ttc" id="classutl_1_1ostream__dev_html_a33546e98ec0cbd6cef862cb4d9853c7a"><div class="ttname"><a href="classutl_1_1ostream__dev.html#a33546e98ec0cbd6cef862cb4d9853c7a">utl::ostream_dev::put_</a></div><div class="ttdeci">size_t put_(const data_t *data, size_t n)</div><div class="ttdef"><b>Definition:</b> <a href="ostream__dev_8h_source.html#l00078">ostream_dev.h:78</a></div></div>
  130. </div><!-- fragment --></div><!-- contents -->
  131. </div><!-- doc-content -->
  132. <!-- start footer part -->
  133. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  134. <ul>
  135. <li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_82754f54d9380477ef02477185c1f103.html">utl</a></li><li class="navelem"><a class="el" href="dir_e9da18de27e34a68f4aee9f9a960d991.html">dev</a></li><li class="navelem"><a class="el" href="ostream__dev_8h.html">ostream_dev.h</a></li>
  136. <li class="footer">Generated by
  137. <a href="http://www.doxygen.org/index.html">
  138. <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
  139. </ul>
  140. </div>
  141. </body>
  142. </html>