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.
 
 
 
 

408 lignes
25 KiB

  1. \hypertarget{classutl_1_1in__dev}{}\section{utl\+:\+:in\+\_\+dev$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$ Class Template Reference}
  2. \label{classutl_1_1in__dev}\index{utl\+::in\+\_\+dev$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$@{utl\+::in\+\_\+dev$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$}}
  3. Abstract base class for input devices.
  4. {\ttfamily \#include $<$in\+\_\+dev.\+h$>$}
  5. \subsection*{Public Types}
  6. \begin{DoxyCompactItemize}
  7. \item
  8. using \mbox{\hyperlink{classutl_1_1in__dev_adef54df1c3d4ae20629ecfdb7826384c}{type}} = \mbox{\hyperlink{classutl_1_1in__dev}{in\+\_\+dev\+\_\+t}}
  9. \begin{DoxyCompactList}\small\item\em Export type as identity meta-\/function. \end{DoxyCompactList}\end{DoxyCompactItemize}
  10. \textbf{ }\par
  11. \begin{DoxyCompactItemize}
  12. \item
  13. using \mbox{\hyperlink{classutl_1_1in__dev_acb38742b242e8cf90323d46a9907863d}{data\+\_\+type}} = data\+\_\+t
  14. \item
  15. using \mbox{\hyperlink{classutl_1_1in__dev_aef4b5c41ab91ef284cfc0cf6100c0828}{pointer\+\_\+type}} = data\+\_\+t $\ast$
  16. \end{DoxyCompactItemize}
  17. \subsection*{Public Member Functions}
  18. \begin{Indent}\textbf{ Public Get interface}\par
  19. \begin{DoxyCompactItemize}
  20. \item
  21. \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1in__dev_aa13a075d41f3e020f4f67c2a59d580a5}{get}} (data\+\_\+t \&data)
  22. \begin{DoxyCompactList}\small\item\em Get interface. This function should read a single data\+\_\+t object from device in blocking mode. \end{DoxyCompactList}\item
  23. \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1in__dev_a5536fdd877bc9f078a9ede43ccc283e7}{get}} (data\+\_\+t $\ast$data, \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} n)
  24. \begin{DoxyCompactList}\small\item\em Old stile get functionality using free standing data\+\_\+t$\ast$. This function should return a stream of data from device. \end{DoxyCompactList}\end{DoxyCompactItemize}
  25. \end{Indent}
  26. \begin{Indent}\textbf{ Stream operator $>$$>$ interface}\par
  27. \begin{DoxyCompactItemize}
  28. \item
  29. {\footnotesize template$<$typename \+\_\+\+Dst\+\_\+t $>$ }\\\mbox{\hyperlink{classutl_1_1in__dev}{in\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1in__dev_abe8aa85c0dbe0ddb3745ded02b4e68fe}{operator$>$$>$}} (\+\_\+\+Dst\+\_\+t \&dst)
  30. \begin{DoxyCompactList}\small\item\em Template operator $>$$>$ implementation for for all by value/ref parameters. \end{DoxyCompactList}\item
  31. {\footnotesize template$<$typename \+\_\+\+Dst\+\_\+t $>$ }\\\mbox{\hyperlink{classutl_1_1in__dev}{in\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1in__dev_a60b3bba96e6bfd2091e594fdbc93fd6f}{operator$>$$>$}} (\+\_\+\+Dst\+\_\+t $\ast$dst)=delete
  32. \begin{DoxyCompactList}\small\item\em Specialization to disallow pointer types as destination. \end{DoxyCompactList}\item
  33. \mbox{\hyperlink{classutl_1_1in__dev}{in\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1in__dev_a98774619e8575162a8be271833282690}{operator$>$$>$}} (data\+\_\+t \&dst)
  34. \begin{DoxyCompactList}\small\item\em Overload for single data\+\_\+t object. \end{DoxyCompactList}\end{DoxyCompactItemize}
  35. \end{Indent}
  36. \textbf{ }\par
  37. \begin{DoxyCompactItemize}
  38. \item
  39. \mbox{\hyperlink{classutl_1_1in__dev_a629f2364e2ab427cbdc0c7f1cb8e8a66}{iterator}} \mbox{\hyperlink{classutl_1_1in__dev_aae7797f366d25091b63ad87b34ed4b48}{end}} () noexcept
  40. \item
  41. \mbox{\hyperlink{classutl_1_1in__dev_a686e6cda465a7e08b29465a75740e043}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1in__dev_aecb438cbb0e2a6c3a926aad81e8c29c7}{end}} () const noexcept
  42. \item
  43. \mbox{\hyperlink{classutl_1_1in__dev_a686e6cda465a7e08b29465a75740e043}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1in__dev_ac54d9a1fb6241be460ffc792aac18b24}{cend}} () const noexcept
  44. \end{DoxyCompactItemize}
  45. \subsection*{Protected Member Functions}
  46. \begin{Indent}\textbf{ Constructor / Destructor}\par
  47. \begin{DoxyCompactItemize}
  48. \item
  49. \mbox{\hyperlink{classutl_1_1in__dev_a2caa0f47e6132f051bb54b1acea37fc6}{$\sim$in\+\_\+dev}} ()=default
  50. \begin{DoxyCompactList}\small\item\em Allow destructor from derived only. \end{DoxyCompactList}\item
  51. \mbox{\hyperlink{classutl_1_1in__dev_a1ca16c382f5e0dd25089a4e06a40f2f2}{in\+\_\+dev}} ()=default
  52. \begin{DoxyCompactList}\small\item\em A default constructor from derived only. \end{DoxyCompactList}\item
  53. \mbox{\hyperlink{classutl_1_1in__dev_a570c94b183eff6f8ca2d7d9ab5d9a7ea}{in\+\_\+dev}} (const \mbox{\hyperlink{classutl_1_1in__dev}{in\+\_\+dev\+\_\+t}} \&)=delete
  54. \begin{DoxyCompactList}\small\item\em No copies. \end{DoxyCompactList}\item
  55. \mbox{\hyperlink{classutl_1_1in__dev}{in\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1in__dev_a55dc56f1277b2bd04b154fbf19d8853f}{operator=}} (const \mbox{\hyperlink{classutl_1_1in__dev}{in\+\_\+dev\+\_\+t}} \&)=delete
  56. \end{DoxyCompactItemize}
  57. \end{Indent}
  58. \subsection*{S\+T\+L-\/like Input iterator interface}
  59. \begin{DoxyCompactItemize}
  60. \item
  61. using \mbox{\hyperlink{classutl_1_1in__dev_a629f2364e2ab427cbdc0c7f1cb8e8a66}{iterator}} = \mbox{\hyperlink{classutl_1_1indev__it}{indev\+\_\+it}}$<$ \mbox{\hyperlink{classutl_1_1in__dev}{in\+\_\+dev\+\_\+t}}, data\+\_\+t $\ast$, streamsize $>$
  62. \begin{DoxyCompactList}\small\item\em Iterator. \end{DoxyCompactList}\item
  63. using \mbox{\hyperlink{classutl_1_1in__dev_a686e6cda465a7e08b29465a75740e043}{const\+\_\+iterator}} = \mbox{\hyperlink{classutl_1_1indev__it}{indev\+\_\+it}}$<$ \mbox{\hyperlink{classutl_1_1in__dev}{in\+\_\+dev\+\_\+t}}, const data\+\_\+t $\ast$, streamsize $>$
  64. \begin{DoxyCompactList}\small\item\em Const iterator. \end{DoxyCompactList}\item
  65. \mbox{\hyperlink{classutl_1_1in__dev_a629f2364e2ab427cbdc0c7f1cb8e8a66}{iterator}} \mbox{\hyperlink{classutl_1_1in__dev_ab2158d8a134dff882a3eac2960da04c0}{begin}} () noexcept
  66. \begin{DoxyCompactList}\small\item\em .begin implementation \end{DoxyCompactList}\item
  67. \mbox{\hyperlink{classutl_1_1in__dev_a686e6cda465a7e08b29465a75740e043}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1in__dev_af81ff90ccb0070ad9388bc032d6d3279}{begin}} () const noexcept
  68. \item
  69. \mbox{\hyperlink{classutl_1_1in__dev_a686e6cda465a7e08b29465a75740e043}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1in__dev_a1120a80c871e1ea8165b4943c767893d}{cbegin}} () const noexcept
  70. \end{DoxyCompactItemize}
  71. \subsection{Detailed Description}
  72. \subsubsection*{template$<$typename impl\+\_\+t, typename data\+\_\+t, size\+\_\+t streamsize = 0$>$\newline
  73. class utl\+::in\+\_\+dev$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$}
  74. Abstract base class for input devices.
  75. Template base class for un-\/buffered input devices. using C\+R\+TP
  76. This class force a common interface for input, non-\/buffered devices. By using this common interface the class implements
  77. \begin{DoxyItemize}
  78. \item Stream-\/like extracting operator
  79. \item Input iterator
  80. \item Const input iterator to inherit to implementation.
  81. \end{DoxyItemize}
  82. \begin{DoxyParams}{Parameters}
  83. {\em impl\+\_\+t} & The C\+R\+TP type (the derived/implementation class typename). \\
  84. \hline
  85. {\em data\+\_\+t} & The devices base type of data \\
  86. \hline
  87. {\em streamsize} & The number of elements to indicate eos. \begin{DoxyItemize}
  88. \item None or 0 Stream only. No iterator as \mbox{\hyperlink{classutl_1_1in__dev_ab2158d8a134dff882a3eac2960da04c0}{begin()}} now equals \mbox{\hyperlink{classutl_1_1in__dev_aae7797f366d25091b63ad87b34ed4b48}{end()}}. \end{DoxyItemize}
  89. \\
  90. \hline
  91. \end{DoxyParams}
  92. Definition at line 54 of file in\+\_\+dev.\+h.
  93. \subsection{Member Typedef Documentation}
  94. \mbox{\Hypertarget{classutl_1_1in__dev_a686e6cda465a7e08b29465a75740e043}\label{classutl_1_1in__dev_a686e6cda465a7e08b29465a75740e043}}
  95. \index{utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}!const\+\_\+iterator@{const\+\_\+iterator}}
  96. \index{const\+\_\+iterator@{const\+\_\+iterator}!utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}}
  97. \subsubsection{\texorpdfstring{const\+\_\+iterator}{const\_iterator}}
  98. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  99. using \mbox{\hyperlink{classutl_1_1in__dev}{utl\+::in\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::\mbox{\hyperlink{classutl_1_1in__dev_a686e6cda465a7e08b29465a75740e043}{const\+\_\+iterator}} = \mbox{\hyperlink{classutl_1_1indev__it}{indev\+\_\+it}} $<$\mbox{\hyperlink{classutl_1_1in__dev}{in\+\_\+dev\+\_\+t}}, const data\+\_\+t$\ast$, streamsize$>$}
  100. Const iterator.
  101. Definition at line 151 of file in\+\_\+dev.\+h.
  102. \mbox{\Hypertarget{classutl_1_1in__dev_acb38742b242e8cf90323d46a9907863d}\label{classutl_1_1in__dev_acb38742b242e8cf90323d46a9907863d}}
  103. \index{utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}!data\+\_\+type@{data\+\_\+type}}
  104. \index{data\+\_\+type@{data\+\_\+type}!utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}}
  105. \subsubsection{\texorpdfstring{data\+\_\+type}{data\_type}}
  106. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  107. using \mbox{\hyperlink{classutl_1_1in__dev}{utl\+::in\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::\mbox{\hyperlink{classutl_1_1in__dev_acb38742b242e8cf90323d46a9907863d}{data\+\_\+type}} = data\+\_\+t}
  108. Export types as input device concept demands
  109. Definition at line 61 of file in\+\_\+dev.\+h.
  110. \mbox{\Hypertarget{classutl_1_1in__dev_a629f2364e2ab427cbdc0c7f1cb8e8a66}\label{classutl_1_1in__dev_a629f2364e2ab427cbdc0c7f1cb8e8a66}}
  111. \index{utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}!iterator@{iterator}}
  112. \index{iterator@{iterator}!utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}}
  113. \subsubsection{\texorpdfstring{iterator}{iterator}}
  114. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  115. using \mbox{\hyperlink{classutl_1_1in__dev}{utl\+::in\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::\mbox{\hyperlink{classutl_1_1in__dev_a629f2364e2ab427cbdc0c7f1cb8e8a66}{iterator}} = \mbox{\hyperlink{classutl_1_1indev__it}{indev\+\_\+it}} $<$\mbox{\hyperlink{classutl_1_1in__dev}{in\+\_\+dev\+\_\+t}}, data\+\_\+t$\ast$, streamsize$>$}
  116. Iterator.
  117. Definition at line 150 of file in\+\_\+dev.\+h.
  118. \mbox{\Hypertarget{classutl_1_1in__dev_aef4b5c41ab91ef284cfc0cf6100c0828}\label{classutl_1_1in__dev_aef4b5c41ab91ef284cfc0cf6100c0828}}
  119. \index{utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}!pointer\+\_\+type@{pointer\+\_\+type}}
  120. \index{pointer\+\_\+type@{pointer\+\_\+type}!utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}}
  121. \subsubsection{\texorpdfstring{pointer\+\_\+type}{pointer\_type}}
  122. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  123. using \mbox{\hyperlink{classutl_1_1in__dev}{utl\+::in\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::\mbox{\hyperlink{classutl_1_1in__dev_aef4b5c41ab91ef284cfc0cf6100c0828}{pointer\+\_\+type}} = data\+\_\+t$\ast$}
  124. Definition at line 62 of file in\+\_\+dev.\+h.
  125. \mbox{\Hypertarget{classutl_1_1in__dev_adef54df1c3d4ae20629ecfdb7826384c}\label{classutl_1_1in__dev_adef54df1c3d4ae20629ecfdb7826384c}}
  126. \index{utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}!type@{type}}
  127. \index{type@{type}!utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}}
  128. \subsubsection{\texorpdfstring{type}{type}}
  129. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  130. using \mbox{\hyperlink{classutl_1_1in__dev}{utl\+::in\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::\mbox{\hyperlink{classutl_1_1in__dev_adef54df1c3d4ae20629ecfdb7826384c}{type}} = \mbox{\hyperlink{classutl_1_1in__dev}{in\+\_\+dev\+\_\+t}}}
  131. Export type as identity meta-\/function.
  132. Definition at line 64 of file in\+\_\+dev.\+h.
  133. \subsection{Constructor \& Destructor Documentation}
  134. \mbox{\Hypertarget{classutl_1_1in__dev_a2caa0f47e6132f051bb54b1acea37fc6}\label{classutl_1_1in__dev_a2caa0f47e6132f051bb54b1acea37fc6}}
  135. \index{utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}!````~in\+\_\+dev@{$\sim$in\+\_\+dev}}
  136. \index{````~in\+\_\+dev@{$\sim$in\+\_\+dev}!utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}}
  137. \subsubsection{\texorpdfstring{$\sim$in\+\_\+dev()}{~in\_dev()}}
  138. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  139. \mbox{\hyperlink{classutl_1_1in__dev}{utl\+::in\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::$\sim$\mbox{\hyperlink{classutl_1_1in__dev}{in\+\_\+dev}} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [default]}}
  140. Allow destructor from derived only.
  141. \mbox{\Hypertarget{classutl_1_1in__dev_a1ca16c382f5e0dd25089a4e06a40f2f2}\label{classutl_1_1in__dev_a1ca16c382f5e0dd25089a4e06a40f2f2}}
  142. \index{utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}!in\+\_\+dev@{in\+\_\+dev}}
  143. \index{in\+\_\+dev@{in\+\_\+dev}!utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}}
  144. \subsubsection{\texorpdfstring{in\+\_\+dev()}{in\_dev()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
  145. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  146. \mbox{\hyperlink{classutl_1_1in__dev}{utl\+::in\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::\mbox{\hyperlink{classutl_1_1in__dev}{in\+\_\+dev}} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [default]}}
  147. A default constructor from derived only.
  148. \mbox{\Hypertarget{classutl_1_1in__dev_a570c94b183eff6f8ca2d7d9ab5d9a7ea}\label{classutl_1_1in__dev_a570c94b183eff6f8ca2d7d9ab5d9a7ea}}
  149. \index{utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}!in\+\_\+dev@{in\+\_\+dev}}
  150. \index{in\+\_\+dev@{in\+\_\+dev}!utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}}
  151. \subsubsection{\texorpdfstring{in\+\_\+dev()}{in\_dev()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
  152. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  153. \mbox{\hyperlink{classutl_1_1in__dev}{utl\+::in\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::\mbox{\hyperlink{classutl_1_1in__dev}{in\+\_\+dev}} (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classutl_1_1in__dev}{in\+\_\+dev\+\_\+t}} \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [delete]}}
  154. No copies.
  155. \subsection{Member Function Documentation}
  156. \mbox{\Hypertarget{classutl_1_1in__dev_ab2158d8a134dff882a3eac2960da04c0}\label{classutl_1_1in__dev_ab2158d8a134dff882a3eac2960da04c0}}
  157. \index{utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}!begin@{begin}}
  158. \index{begin@{begin}!utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}}
  159. \subsubsection{\texorpdfstring{begin()}{begin()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
  160. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  161. \mbox{\hyperlink{classutl_1_1in__dev_a629f2364e2ab427cbdc0c7f1cb8e8a66}{iterator}} \mbox{\hyperlink{classutl_1_1in__dev}{utl\+::in\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::begin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
  162. .begin implementation
  163. Definition at line 154 of file in\+\_\+dev.\+h.
  164. \mbox{\Hypertarget{classutl_1_1in__dev_af81ff90ccb0070ad9388bc032d6d3279}\label{classutl_1_1in__dev_af81ff90ccb0070ad9388bc032d6d3279}}
  165. \index{utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}!begin@{begin}}
  166. \index{begin@{begin}!utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}}
  167. \subsubsection{\texorpdfstring{begin()}{begin()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
  168. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  169. \mbox{\hyperlink{classutl_1_1in__dev_a686e6cda465a7e08b29465a75740e043}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1in__dev}{utl\+::in\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::begin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
  170. Definition at line 155 of file in\+\_\+dev.\+h.
  171. \mbox{\Hypertarget{classutl_1_1in__dev_a1120a80c871e1ea8165b4943c767893d}\label{classutl_1_1in__dev_a1120a80c871e1ea8165b4943c767893d}}
  172. \index{utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}!cbegin@{cbegin}}
  173. \index{cbegin@{cbegin}!utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}}
  174. \subsubsection{\texorpdfstring{cbegin()}{cbegin()}}
  175. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  176. \mbox{\hyperlink{classutl_1_1in__dev_a686e6cda465a7e08b29465a75740e043}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1in__dev}{utl\+::in\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::cbegin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
  177. Definition at line 156 of file in\+\_\+dev.\+h.
  178. \mbox{\Hypertarget{classutl_1_1in__dev_ac54d9a1fb6241be460ffc792aac18b24}\label{classutl_1_1in__dev_ac54d9a1fb6241be460ffc792aac18b24}}
  179. \index{utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}!cend@{cend}}
  180. \index{cend@{cend}!utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}}
  181. \subsubsection{\texorpdfstring{cend()}{cend()}}
  182. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  183. \mbox{\hyperlink{classutl_1_1in__dev_a686e6cda465a7e08b29465a75740e043}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1in__dev}{utl\+::in\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::cend (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
  184. Definition at line 161 of file in\+\_\+dev.\+h.
  185. \mbox{\Hypertarget{classutl_1_1in__dev_aae7797f366d25091b63ad87b34ed4b48}\label{classutl_1_1in__dev_aae7797f366d25091b63ad87b34ed4b48}}
  186. \index{utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}!end@{end}}
  187. \index{end@{end}!utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}}
  188. \subsubsection{\texorpdfstring{end()}{end()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
  189. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  190. \mbox{\hyperlink{classutl_1_1in__dev_a629f2364e2ab427cbdc0c7f1cb8e8a66}{iterator}} \mbox{\hyperlink{classutl_1_1in__dev}{utl\+::in\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::end (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
  191. .end implementation
  192. Definition at line 159 of file in\+\_\+dev.\+h.
  193. \mbox{\Hypertarget{classutl_1_1in__dev_aecb438cbb0e2a6c3a926aad81e8c29c7}\label{classutl_1_1in__dev_aecb438cbb0e2a6c3a926aad81e8c29c7}}
  194. \index{utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}!end@{end}}
  195. \index{end@{end}!utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}}
  196. \subsubsection{\texorpdfstring{end()}{end()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
  197. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  198. \mbox{\hyperlink{classutl_1_1in__dev_a686e6cda465a7e08b29465a75740e043}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1in__dev}{utl\+::in\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::end (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
  199. Definition at line 160 of file in\+\_\+dev.\+h.
  200. \mbox{\Hypertarget{classutl_1_1in__dev_aa13a075d41f3e020f4f67c2a59d580a5}\label{classutl_1_1in__dev_aa13a075d41f3e020f4f67c2a59d580a5}}
  201. \index{utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}!get@{get}}
  202. \index{get@{get}!utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}}
  203. \subsubsection{\texorpdfstring{get()}{get()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
  204. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  205. \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1in__dev}{utl\+::in\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::get (\begin{DoxyParamCaption}\item[{data\+\_\+t \&}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  206. Get interface. This function should read a single data\+\_\+t object from device in blocking mode.
  207. \begin{DoxyParams}{Parameters}
  208. {\em data} & Reference to data output from device. \\
  209. \hline
  210. \end{DoxyParams}
  211. \begin{DoxyReturn}{Returns}
  212. Number of data read from device
  213. \end{DoxyReturn}
  214. \begin{DoxyNote}{Note}
  215. A successful call should return 1
  216. \end{DoxyNote}
  217. Definition at line 97 of file in\+\_\+dev.\+h.
  218. \mbox{\Hypertarget{classutl_1_1in__dev_a5536fdd877bc9f078a9ede43ccc283e7}\label{classutl_1_1in__dev_a5536fdd877bc9f078a9ede43ccc283e7}}
  219. \index{utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}!get@{get}}
  220. \index{get@{get}!utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}}
  221. \subsubsection{\texorpdfstring{get()}{get()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
  222. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  223. \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1in__dev}{utl\+::in\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::get (\begin{DoxyParamCaption}\item[{data\+\_\+t $\ast$}]{data, }\item[{\mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}}}]{n }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  224. Old stile get functionality using free standing data\+\_\+t$\ast$. This function should return a stream of data from device.
  225. \begin{DoxyParams}{Parameters}
  226. {\em data} & Pointer to buffer to write the data from device. \\
  227. \hline
  228. {\em n} & The number of data of type data\+\_\+t to read \\
  229. \hline
  230. \end{DoxyParams}
  231. \begin{DoxyReturn}{Returns}
  232. The read data items.
  233. \end{DoxyReturn}
  234. Definition at line 109 of file in\+\_\+dev.\+h.
  235. \mbox{\Hypertarget{classutl_1_1in__dev_a55dc56f1277b2bd04b154fbf19d8853f}\label{classutl_1_1in__dev_a55dc56f1277b2bd04b154fbf19d8853f}}
  236. \index{utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}!operator=@{operator=}}
  237. \index{operator=@{operator=}!utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}}
  238. \subsubsection{\texorpdfstring{operator=()}{operator=()}}
  239. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  240. \mbox{\hyperlink{classutl_1_1in__dev}{in\+\_\+dev\+\_\+t}}\& \mbox{\hyperlink{classutl_1_1in__dev}{utl\+::in\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::operator= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classutl_1_1in__dev}{in\+\_\+dev\+\_\+t}} \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [delete]}}
  241. No copy assignments \mbox{\Hypertarget{classutl_1_1in__dev_abe8aa85c0dbe0ddb3745ded02b4e68fe}\label{classutl_1_1in__dev_abe8aa85c0dbe0ddb3745ded02b4e68fe}}
  242. \index{utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}!operator$>$$>$@{operator$>$$>$}}
  243. \index{operator$>$$>$@{operator$>$$>$}!utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}}
  244. \subsubsection{\texorpdfstring{operator$>$$>$()}{operator>>()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
  245. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  246. template$<$typename \+\_\+\+Dst\+\_\+t $>$ \\
  247. \mbox{\hyperlink{classutl_1_1in__dev}{in\+\_\+dev\+\_\+t}}\& \mbox{\hyperlink{classutl_1_1in__dev}{utl\+::in\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::operator$>$$>$ (\begin{DoxyParamCaption}\item[{\+\_\+\+Dst\+\_\+t \&}]{dst }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  248. Template operator $>$$>$ implementation for for all by value/ref parameters.
  249. \begin{DoxyNote}{Note}
  250. In the case \+\_\+\+Dst\+\_\+t size is not a integer multiple of device\textquotesingle{}s data size this will fail by static assertion
  251. \end{DoxyNote}
  252. \begin{DoxyParams}{Parameters}
  253. {\em dst} & Reference to destination \\
  254. \hline
  255. \end{DoxyParams}
  256. \begin{DoxyReturn}{Returns}
  257. Reference to this device for chaining
  258. \end{DoxyReturn}
  259. Definition at line 129 of file in\+\_\+dev.\+h.
  260. \mbox{\Hypertarget{classutl_1_1in__dev_a60b3bba96e6bfd2091e594fdbc93fd6f}\label{classutl_1_1in__dev_a60b3bba96e6bfd2091e594fdbc93fd6f}}
  261. \index{utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}!operator$>$$>$@{operator$>$$>$}}
  262. \index{operator$>$$>$@{operator$>$$>$}!utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}}
  263. \subsubsection{\texorpdfstring{operator$>$$>$()}{operator>>()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
  264. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  265. template$<$typename \+\_\+\+Dst\+\_\+t $>$ \\
  266. \mbox{\hyperlink{classutl_1_1in__dev}{in\+\_\+dev\+\_\+t}}\& \mbox{\hyperlink{classutl_1_1in__dev}{utl\+::in\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::operator$>$$>$ (\begin{DoxyParamCaption}\item[{\+\_\+\+Dst\+\_\+t $\ast$}]{dst }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}}
  267. Specialization to disallow pointer types as destination.
  268. \mbox{\Hypertarget{classutl_1_1in__dev_a98774619e8575162a8be271833282690}\label{classutl_1_1in__dev_a98774619e8575162a8be271833282690}}
  269. \index{utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}!operator$>$$>$@{operator$>$$>$}}
  270. \index{operator$>$$>$@{operator$>$$>$}!utl\+::in\+\_\+dev@{utl\+::in\+\_\+dev}}
  271. \subsubsection{\texorpdfstring{operator$>$$>$()}{operator>>()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
  272. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  273. \mbox{\hyperlink{classutl_1_1in__dev}{in\+\_\+dev\+\_\+t}}\& \mbox{\hyperlink{classutl_1_1in__dev}{utl\+::in\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::operator$>$$>$ (\begin{DoxyParamCaption}\item[{data\+\_\+t \&}]{dst }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  274. Overload for single data\+\_\+t object.
  275. Definition at line 140 of file in\+\_\+dev.\+h.
  276. The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
  277. \item
  278. include/utl/dev/\mbox{\hyperlink{in__dev_8h}{in\+\_\+dev.\+h}}\end{DoxyCompactItemize}