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.
 
 
 
 

424 lignes
27 KiB

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