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

404 lines
25 KiB

  1. \hypertarget{classutl_1_1ostream__dev}{}\section{utl\+:\+:ostream\+\_\+dev$<$ impl\+\_\+t, data\+\_\+t $>$ Class Template Reference}
  2. \label{classutl_1_1ostream__dev}\index{utl\+::ostream\+\_\+dev$<$ impl\+\_\+t, data\+\_\+t $>$@{utl\+::ostream\+\_\+dev$<$ impl\+\_\+t, data\+\_\+t $>$}}
  3. Abstract base classes for output stream devices.
  4. {\ttfamily \#include $<$ostream\+\_\+dev.\+h$>$}
  5. \subsection*{Public Types}
  6. \begin{DoxyCompactItemize}
  7. \item
  8. using \mbox{\hyperlink{classutl_1_1ostream__dev_ac7169419677c70f4811803828b826351}{type}} = \mbox{\hyperlink{classutl_1_1ostream__dev}{ostream\+\_\+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_1ostream__dev_af333211e6a4c20b86c35a1d4fd15b9c5}{data\+\_\+type}} = data\+\_\+t
  14. \item
  15. using \mbox{\hyperlink{classutl_1_1ostream__dev_a4d60fb31555306bf52a88889db1c8739}{pointer\+\_\+type}} = data\+\_\+t $\ast$
  16. \end{DoxyCompactItemize}
  17. \subsection*{Public Member Functions}
  18. \begin{Indent}\textbf{ Common output device interface}\par
  19. \begin{DoxyCompactItemize}
  20. \item
  21. \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1ostream__dev_a70a8d008d93a5a3f50de63dc70b7b4e4}{put}} (const data\+\_\+t \&data)
  22. \begin{DoxyCompactList}\small\item\em Put interface. This function should send a single data\+\_\+t object to device. \end{DoxyCompactList}\item
  23. \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1ostream__dev_a29f2cad2b83c801cfdab235c880e528b}{put}} (const data\+\_\+t $\ast$data, \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} n)
  24. \begin{DoxyCompactList}\small\item\em Put interface. This function should send a stream of data\+\_\+t objects to 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 \+\_\+\+Src\+\_\+t $>$ }\\\mbox{\hyperlink{classutl_1_1ostream__dev}{ostream\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1ostream__dev_a4ab9729e2a50b797bcd939c840685b48}{operator$<$$<$}} (const \+\_\+\+Src\+\_\+t \&src)
  30. \begin{DoxyCompactList}\small\item\em Template operator$<$$<$ implementation for for all by value/ref parameters. \end{DoxyCompactList}\item
  31. {\footnotesize template$<$typename \+\_\+\+Src\+\_\+t $>$ }\\\mbox{\hyperlink{classutl_1_1ostream__dev}{ostream\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1ostream__dev_a17b6362ea015437b1cd3f4b9122c4e35}{operator$<$$<$}} (\+\_\+\+Src\+\_\+t $\ast$src)=delete
  32. \begin{DoxyCompactList}\small\item\em Overload to disallow pointer types as source. \end{DoxyCompactList}\item
  33. \mbox{\hyperlink{classutl_1_1ostream__dev}{ostream\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1ostream__dev_a776a690023246345f1af2991f1b3b206}{operator$<$$<$}} (const data\+\_\+t \&src)
  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_1ostream__dev_a38ce53a3ec7a902bdcbd9dc04350b903}{iterator}} \mbox{\hyperlink{classutl_1_1ostream__dev_a3d2f837c438b1a97ec14384ba3382090}{end}} () noexcept
  40. \item
  41. \mbox{\hyperlink{classutl_1_1ostream__dev_a04f153a089085daceda6a55854789a95}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1ostream__dev_af836e2bdffe1829593d889f98a35a726}{end}} () const noexcept
  42. \item
  43. \mbox{\hyperlink{classutl_1_1ostream__dev_a04f153a089085daceda6a55854789a95}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1ostream__dev_a90d454a509be230af0595e5a57e91f56}{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_1ostream__dev_ad0358c1b879818118e745da164d99998}{$\sim$ostream\+\_\+dev}} ()=default
  50. \begin{DoxyCompactList}\small\item\em Allow destructor from derived only. \end{DoxyCompactList}\item
  51. \mbox{\hyperlink{classutl_1_1ostream__dev_a6bb520cb5397ab9f7579c868311017b5}{ostream\+\_\+dev}} ()=default
  52. \begin{DoxyCompactList}\small\item\em A default constructor from derived only. \end{DoxyCompactList}\item
  53. \mbox{\hyperlink{classutl_1_1ostream__dev_afdb03e10c54fa5d079f59b0bb938c82c}{ostream\+\_\+dev}} (const \mbox{\hyperlink{classutl_1_1ostream__dev}{ostream\+\_\+dev\+\_\+t}} \&)=delete
  54. \begin{DoxyCompactList}\small\item\em No copies. \end{DoxyCompactList}\item
  55. \mbox{\hyperlink{classutl_1_1ostream__dev}{ostream\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1ostream__dev_a385318ff45d575ec92801f7c0e29e9c8}{operator=}} (const \mbox{\hyperlink{classutl_1_1ostream__dev}{ostream\+\_\+dev\+\_\+t}} \&)=delete
  56. \end{DoxyCompactItemize}
  57. \end{Indent}
  58. \subsection*{S\+T\+L-\/like Output iterator interface}
  59. \begin{DoxyCompactItemize}
  60. \item
  61. using \mbox{\hyperlink{classutl_1_1ostream__dev_a38ce53a3ec7a902bdcbd9dc04350b903}{iterator}} = \mbox{\hyperlink{classutl_1_1ostreamdev__it}{ostreamdev\+\_\+it}}$<$ \mbox{\hyperlink{classutl_1_1ostream__dev}{ostream\+\_\+dev\+\_\+t}}, data\+\_\+t $>$
  62. \begin{DoxyCompactList}\small\item\em Iterator. \end{DoxyCompactList}\item
  63. using \mbox{\hyperlink{classutl_1_1ostream__dev_a04f153a089085daceda6a55854789a95}{const\+\_\+iterator}} = \mbox{\hyperlink{classutl_1_1ostreamdev__it}{ostreamdev\+\_\+it}}$<$ const \mbox{\hyperlink{classutl_1_1ostream__dev}{ostream\+\_\+dev\+\_\+t}}, data\+\_\+t $>$
  64. \begin{DoxyCompactList}\small\item\em Const iterator. \end{DoxyCompactList}\item
  65. \mbox{\hyperlink{classutl_1_1ostream__dev_a38ce53a3ec7a902bdcbd9dc04350b903}{iterator}} \mbox{\hyperlink{classutl_1_1ostream__dev_a313cc3aada490c2d2641d6bdac559748}{begin}} () noexcept
  66. \begin{DoxyCompactList}\small\item\em .begin implementation \end{DoxyCompactList}\item
  67. \mbox{\hyperlink{classutl_1_1ostream__dev_a04f153a089085daceda6a55854789a95}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1ostream__dev_aa541b838442aaf7693d528dabd049790}{begin}} () const noexcept
  68. \item
  69. \mbox{\hyperlink{classutl_1_1ostream__dev_a04f153a089085daceda6a55854789a95}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1ostream__dev_adad6881acafe06f05545364b3bb3941c}{cbegin}} () const noexcept
  70. \end{DoxyCompactItemize}
  71. \subsection{Detailed Description}
  72. \subsubsection*{template$<$typename impl\+\_\+t, typename data\+\_\+t$>$\newline
  73. class utl\+::ostream\+\_\+dev$<$ impl\+\_\+t, data\+\_\+t $>$}
  74. Abstract base classes for output stream devices.
  75. Template base class for output stream devices using C\+R\+TP
  76. This class force a common interface for output stream devices. By using this common interface the class implements
  77. \begin{DoxyItemize}
  78. \item Stream-\/like inserting operator
  79. \item Output iterator
  80. \item Const output 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. \end{DoxyParams}
  88. Definition at line 52 of file ostream\+\_\+dev.\+h.
  89. \subsection{Member Typedef Documentation}
  90. \mbox{\Hypertarget{classutl_1_1ostream__dev_a04f153a089085daceda6a55854789a95}\label{classutl_1_1ostream__dev_a04f153a089085daceda6a55854789a95}}
  91. \index{utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}!const\+\_\+iterator@{const\+\_\+iterator}}
  92. \index{const\+\_\+iterator@{const\+\_\+iterator}!utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}}
  93. \subsubsection{\texorpdfstring{const\+\_\+iterator}{const\_iterator}}
  94. {\footnotesize\ttfamily template$<$typename impl\+\_\+t, typename data\+\_\+t$>$ \\
  95. using \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t $>$\+::\mbox{\hyperlink{classutl_1_1ostream__dev_a04f153a089085daceda6a55854789a95}{const\+\_\+iterator}} = \mbox{\hyperlink{classutl_1_1ostreamdev__it}{ostreamdev\+\_\+it}} $<$const \mbox{\hyperlink{classutl_1_1ostream__dev}{ostream\+\_\+dev\+\_\+t}}, data\+\_\+t$>$}
  96. Const iterator.
  97. Definition at line 151 of file ostream\+\_\+dev.\+h.
  98. \mbox{\Hypertarget{classutl_1_1ostream__dev_af333211e6a4c20b86c35a1d4fd15b9c5}\label{classutl_1_1ostream__dev_af333211e6a4c20b86c35a1d4fd15b9c5}}
  99. \index{utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}!data\+\_\+type@{data\+\_\+type}}
  100. \index{data\+\_\+type@{data\+\_\+type}!utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}}
  101. \subsubsection{\texorpdfstring{data\+\_\+type}{data\_type}}
  102. {\footnotesize\ttfamily template$<$typename impl\+\_\+t, typename data\+\_\+t$>$ \\
  103. using \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t $>$\+::\mbox{\hyperlink{classutl_1_1ostream__dev_af333211e6a4c20b86c35a1d4fd15b9c5}{data\+\_\+type}} = data\+\_\+t}
  104. Export types as output device concept demands
  105. Definition at line 59 of file ostream\+\_\+dev.\+h.
  106. \mbox{\Hypertarget{classutl_1_1ostream__dev_a38ce53a3ec7a902bdcbd9dc04350b903}\label{classutl_1_1ostream__dev_a38ce53a3ec7a902bdcbd9dc04350b903}}
  107. \index{utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}!iterator@{iterator}}
  108. \index{iterator@{iterator}!utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}}
  109. \subsubsection{\texorpdfstring{iterator}{iterator}}
  110. {\footnotesize\ttfamily template$<$typename impl\+\_\+t, typename data\+\_\+t$>$ \\
  111. using \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t $>$\+::\mbox{\hyperlink{classutl_1_1ostream__dev_a38ce53a3ec7a902bdcbd9dc04350b903}{iterator}} = \mbox{\hyperlink{classutl_1_1ostreamdev__it}{ostreamdev\+\_\+it}} $<$\mbox{\hyperlink{classutl_1_1ostream__dev}{ostream\+\_\+dev\+\_\+t}}, data\+\_\+t$>$}
  112. Iterator.
  113. Definition at line 150 of file ostream\+\_\+dev.\+h.
  114. \mbox{\Hypertarget{classutl_1_1ostream__dev_a4d60fb31555306bf52a88889db1c8739}\label{classutl_1_1ostream__dev_a4d60fb31555306bf52a88889db1c8739}}
  115. \index{utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}!pointer\+\_\+type@{pointer\+\_\+type}}
  116. \index{pointer\+\_\+type@{pointer\+\_\+type}!utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}}
  117. \subsubsection{\texorpdfstring{pointer\+\_\+type}{pointer\_type}}
  118. {\footnotesize\ttfamily template$<$typename impl\+\_\+t, typename data\+\_\+t$>$ \\
  119. using \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t $>$\+::\mbox{\hyperlink{classutl_1_1ostream__dev_a4d60fb31555306bf52a88889db1c8739}{pointer\+\_\+type}} = data\+\_\+t$\ast$}
  120. Definition at line 60 of file ostream\+\_\+dev.\+h.
  121. \mbox{\Hypertarget{classutl_1_1ostream__dev_ac7169419677c70f4811803828b826351}\label{classutl_1_1ostream__dev_ac7169419677c70f4811803828b826351}}
  122. \index{utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}!type@{type}}
  123. \index{type@{type}!utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}}
  124. \subsubsection{\texorpdfstring{type}{type}}
  125. {\footnotesize\ttfamily template$<$typename impl\+\_\+t, typename data\+\_\+t$>$ \\
  126. using \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t $>$\+::\mbox{\hyperlink{classutl_1_1ostream__dev_ac7169419677c70f4811803828b826351}{type}} = \mbox{\hyperlink{classutl_1_1ostream__dev}{ostream\+\_\+dev\+\_\+t}}}
  127. Export type as identity meta-\/function.
  128. Definition at line 62 of file ostream\+\_\+dev.\+h.
  129. \subsection{Constructor \& Destructor Documentation}
  130. \mbox{\Hypertarget{classutl_1_1ostream__dev_ad0358c1b879818118e745da164d99998}\label{classutl_1_1ostream__dev_ad0358c1b879818118e745da164d99998}}
  131. \index{utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}!````~ostream\+\_\+dev@{$\sim$ostream\+\_\+dev}}
  132. \index{````~ostream\+\_\+dev@{$\sim$ostream\+\_\+dev}!utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}}
  133. \subsubsection{\texorpdfstring{$\sim$ostream\+\_\+dev()}{~ostream\_dev()}}
  134. {\footnotesize\ttfamily template$<$typename impl\+\_\+t, typename data\+\_\+t$>$ \\
  135. \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t $>$\+::$\sim$\mbox{\hyperlink{classutl_1_1ostream__dev}{ostream\+\_\+dev}} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [default]}}
  136. Allow destructor from derived only.
  137. \mbox{\Hypertarget{classutl_1_1ostream__dev_a6bb520cb5397ab9f7579c868311017b5}\label{classutl_1_1ostream__dev_a6bb520cb5397ab9f7579c868311017b5}}
  138. \index{utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}!ostream\+\_\+dev@{ostream\+\_\+dev}}
  139. \index{ostream\+\_\+dev@{ostream\+\_\+dev}!utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}}
  140. \subsubsection{\texorpdfstring{ostream\+\_\+dev()}{ostream\_dev()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
  141. {\footnotesize\ttfamily template$<$typename impl\+\_\+t, typename data\+\_\+t$>$ \\
  142. \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t $>$\+::\mbox{\hyperlink{classutl_1_1ostream__dev}{ostream\+\_\+dev}} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [default]}}
  143. A default constructor from derived only.
  144. \mbox{\Hypertarget{classutl_1_1ostream__dev_afdb03e10c54fa5d079f59b0bb938c82c}\label{classutl_1_1ostream__dev_afdb03e10c54fa5d079f59b0bb938c82c}}
  145. \index{utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}!ostream\+\_\+dev@{ostream\+\_\+dev}}
  146. \index{ostream\+\_\+dev@{ostream\+\_\+dev}!utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}}
  147. \subsubsection{\texorpdfstring{ostream\+\_\+dev()}{ostream\_dev()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
  148. {\footnotesize\ttfamily template$<$typename impl\+\_\+t, typename data\+\_\+t$>$ \\
  149. \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t $>$\+::\mbox{\hyperlink{classutl_1_1ostream__dev}{ostream\+\_\+dev}} (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classutl_1_1ostream__dev}{ostream\+\_\+dev\+\_\+t}} \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [delete]}}
  150. No copies.
  151. \subsection{Member Function Documentation}
  152. \mbox{\Hypertarget{classutl_1_1ostream__dev_a313cc3aada490c2d2641d6bdac559748}\label{classutl_1_1ostream__dev_a313cc3aada490c2d2641d6bdac559748}}
  153. \index{utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}!begin@{begin}}
  154. \index{begin@{begin}!utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}}
  155. \subsubsection{\texorpdfstring{begin()}{begin()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
  156. {\footnotesize\ttfamily template$<$typename impl\+\_\+t, typename data\+\_\+t$>$ \\
  157. \mbox{\hyperlink{classutl_1_1ostream__dev_a38ce53a3ec7a902bdcbd9dc04350b903}{iterator}} \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t $>$\+::begin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
  158. .begin implementation
  159. Definition at line 154 of file ostream\+\_\+dev.\+h.
  160. \mbox{\Hypertarget{classutl_1_1ostream__dev_aa541b838442aaf7693d528dabd049790}\label{classutl_1_1ostream__dev_aa541b838442aaf7693d528dabd049790}}
  161. \index{utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}!begin@{begin}}
  162. \index{begin@{begin}!utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}}
  163. \subsubsection{\texorpdfstring{begin()}{begin()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
  164. {\footnotesize\ttfamily template$<$typename impl\+\_\+t, typename data\+\_\+t$>$ \\
  165. \mbox{\hyperlink{classutl_1_1ostream__dev_a04f153a089085daceda6a55854789a95}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t $>$\+::begin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
  166. Definition at line 155 of file ostream\+\_\+dev.\+h.
  167. \mbox{\Hypertarget{classutl_1_1ostream__dev_adad6881acafe06f05545364b3bb3941c}\label{classutl_1_1ostream__dev_adad6881acafe06f05545364b3bb3941c}}
  168. \index{utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}!cbegin@{cbegin}}
  169. \index{cbegin@{cbegin}!utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}}
  170. \subsubsection{\texorpdfstring{cbegin()}{cbegin()}}
  171. {\footnotesize\ttfamily template$<$typename impl\+\_\+t, typename data\+\_\+t$>$ \\
  172. \mbox{\hyperlink{classutl_1_1ostream__dev_a04f153a089085daceda6a55854789a95}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t $>$\+::cbegin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
  173. Definition at line 156 of file ostream\+\_\+dev.\+h.
  174. \mbox{\Hypertarget{classutl_1_1ostream__dev_a90d454a509be230af0595e5a57e91f56}\label{classutl_1_1ostream__dev_a90d454a509be230af0595e5a57e91f56}}
  175. \index{utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}!cend@{cend}}
  176. \index{cend@{cend}!utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}}
  177. \subsubsection{\texorpdfstring{cend()}{cend()}}
  178. {\footnotesize\ttfamily template$<$typename impl\+\_\+t, typename data\+\_\+t$>$ \\
  179. \mbox{\hyperlink{classutl_1_1ostream__dev_a04f153a089085daceda6a55854789a95}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t $>$\+::cend (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
  180. Definition at line 161 of file ostream\+\_\+dev.\+h.
  181. \mbox{\Hypertarget{classutl_1_1ostream__dev_a3d2f837c438b1a97ec14384ba3382090}\label{classutl_1_1ostream__dev_a3d2f837c438b1a97ec14384ba3382090}}
  182. \index{utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}!end@{end}}
  183. \index{end@{end}!utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}}
  184. \subsubsection{\texorpdfstring{end()}{end()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
  185. {\footnotesize\ttfamily template$<$typename impl\+\_\+t, typename data\+\_\+t$>$ \\
  186. \mbox{\hyperlink{classutl_1_1ostream__dev_a38ce53a3ec7a902bdcbd9dc04350b903}{iterator}} \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t $>$\+::end (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
  187. .end implementation
  188. Definition at line 159 of file ostream\+\_\+dev.\+h.
  189. \mbox{\Hypertarget{classutl_1_1ostream__dev_af836e2bdffe1829593d889f98a35a726}\label{classutl_1_1ostream__dev_af836e2bdffe1829593d889f98a35a726}}
  190. \index{utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}!end@{end}}
  191. \index{end@{end}!utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}}
  192. \subsubsection{\texorpdfstring{end()}{end()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
  193. {\footnotesize\ttfamily template$<$typename impl\+\_\+t, typename data\+\_\+t$>$ \\
  194. \mbox{\hyperlink{classutl_1_1ostream__dev_a04f153a089085daceda6a55854789a95}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t $>$\+::end (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
  195. Definition at line 160 of file ostream\+\_\+dev.\+h.
  196. \mbox{\Hypertarget{classutl_1_1ostream__dev_a4ab9729e2a50b797bcd939c840685b48}\label{classutl_1_1ostream__dev_a4ab9729e2a50b797bcd939c840685b48}}
  197. \index{utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}!operator$<$$<$@{operator$<$$<$}}
  198. \index{operator$<$$<$@{operator$<$$<$}!utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}}
  199. \subsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
  200. {\footnotesize\ttfamily template$<$typename impl\+\_\+t, typename data\+\_\+t$>$ \\
  201. template$<$typename \+\_\+\+Src\+\_\+t $>$ \\
  202. \mbox{\hyperlink{classutl_1_1ostream__dev}{ostream\+\_\+dev\+\_\+t}}\& \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t $>$\+::operator$<$$<$ (\begin{DoxyParamCaption}\item[{const \+\_\+\+Src\+\_\+t \&}]{src }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  203. Template operator$<$$<$ implementation for for all by value/ref parameters.
  204. \begin{DoxyNote}{Note}
  205. In the case \+\_\+\+Src\+\_\+t size is not an exact multiple of data\+\_\+t size the write data will be truncated and there may be data loss.
  206. \end{DoxyNote}
  207. \begin{DoxyParams}{Parameters}
  208. {\em src} & Reference to source data \\
  209. \hline
  210. \end{DoxyParams}
  211. \begin{DoxyReturn}{Returns}
  212. Reference to this device for chaining
  213. \end{DoxyReturn}
  214. Definition at line 128 of file ostream\+\_\+dev.\+h.
  215. \mbox{\Hypertarget{classutl_1_1ostream__dev_a17b6362ea015437b1cd3f4b9122c4e35}\label{classutl_1_1ostream__dev_a17b6362ea015437b1cd3f4b9122c4e35}}
  216. \index{utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}!operator$<$$<$@{operator$<$$<$}}
  217. \index{operator$<$$<$@{operator$<$$<$}!utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}}
  218. \subsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
  219. {\footnotesize\ttfamily template$<$typename impl\+\_\+t, typename data\+\_\+t$>$ \\
  220. template$<$typename \+\_\+\+Src\+\_\+t $>$ \\
  221. \mbox{\hyperlink{classutl_1_1ostream__dev}{ostream\+\_\+dev\+\_\+t}}\& \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t $>$\+::operator$<$$<$ (\begin{DoxyParamCaption}\item[{\+\_\+\+Src\+\_\+t $\ast$}]{src }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}}
  222. Overload to disallow pointer types as source.
  223. \mbox{\Hypertarget{classutl_1_1ostream__dev_a776a690023246345f1af2991f1b3b206}\label{classutl_1_1ostream__dev_a776a690023246345f1af2991f1b3b206}}
  224. \index{utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}!operator$<$$<$@{operator$<$$<$}}
  225. \index{operator$<$$<$@{operator$<$$<$}!utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}}
  226. \subsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
  227. {\footnotesize\ttfamily template$<$typename impl\+\_\+t, typename data\+\_\+t$>$ \\
  228. \mbox{\hyperlink{classutl_1_1ostream__dev}{ostream\+\_\+dev\+\_\+t}}\& \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t $>$\+::operator$<$$<$ (\begin{DoxyParamCaption}\item[{const data\+\_\+t \&}]{src }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  229. Overload for single data\+\_\+t object.
  230. Definition at line 139 of file ostream\+\_\+dev.\+h.
  231. \mbox{\Hypertarget{classutl_1_1ostream__dev_a385318ff45d575ec92801f7c0e29e9c8}\label{classutl_1_1ostream__dev_a385318ff45d575ec92801f7c0e29e9c8}}
  232. \index{utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}!operator=@{operator=}}
  233. \index{operator=@{operator=}!utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}}
  234. \subsubsection{\texorpdfstring{operator=()}{operator=()}}
  235. {\footnotesize\ttfamily template$<$typename impl\+\_\+t, typename data\+\_\+t$>$ \\
  236. \mbox{\hyperlink{classutl_1_1ostream__dev}{ostream\+\_\+dev\+\_\+t}}\& \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t $>$\+::operator= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classutl_1_1ostream__dev}{ostream\+\_\+dev\+\_\+t}} \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [delete]}}
  237. No copy assignments \mbox{\Hypertarget{classutl_1_1ostream__dev_a70a8d008d93a5a3f50de63dc70b7b4e4}\label{classutl_1_1ostream__dev_a70a8d008d93a5a3f50de63dc70b7b4e4}}
  238. \index{utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}!put@{put}}
  239. \index{put@{put}!utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}}
  240. \subsubsection{\texorpdfstring{put()}{put()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
  241. {\footnotesize\ttfamily template$<$typename impl\+\_\+t, typename data\+\_\+t$>$ \\
  242. \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t $>$\+::put (\begin{DoxyParamCaption}\item[{const data\+\_\+t \&}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  243. Put interface. This function should send a single data\+\_\+t object to device.
  244. \begin{DoxyParams}{Parameters}
  245. {\em data} & The data to send \\
  246. \hline
  247. \end{DoxyParams}
  248. \begin{DoxyReturn}{Returns}
  249. The number of transmitted data items
  250. \end{DoxyReturn}
  251. \begin{DoxyNote}{Note}
  252. A successful call should return 1
  253. \end{DoxyNote}
  254. Definition at line 96 of file ostream\+\_\+dev.\+h.
  255. \mbox{\Hypertarget{classutl_1_1ostream__dev_a29f2cad2b83c801cfdab235c880e528b}\label{classutl_1_1ostream__dev_a29f2cad2b83c801cfdab235c880e528b}}
  256. \index{utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}!put@{put}}
  257. \index{put@{put}!utl\+::ostream\+\_\+dev@{utl\+::ostream\+\_\+dev}}
  258. \subsubsection{\texorpdfstring{put()}{put()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
  259. {\footnotesize\ttfamily template$<$typename impl\+\_\+t, typename data\+\_\+t$>$ \\
  260. \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1ostream__dev}{utl\+::ostream\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t $>$\+::put (\begin{DoxyParamCaption}\item[{const data\+\_\+t $\ast$}]{data, }\item[{\mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}}}]{n }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  261. Put interface. This function should send a stream of data\+\_\+t objects to device.
  262. \begin{DoxyParams}{Parameters}
  263. {\em data} & Pointer to buffer indenting write to device. \\
  264. \hline
  265. {\em n} & The number of data of type data\+\_\+t to send \\
  266. \hline
  267. \end{DoxyParams}
  268. \begin{DoxyReturn}{Returns}
  269. The number of transmitted items.
  270. \end{DoxyReturn}
  271. Definition at line 108 of file ostream\+\_\+dev.\+h.
  272. The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
  273. \item
  274. include/utl/dev/\mbox{\hyperlink{ostream__dev_8h}{ostream\+\_\+dev.\+h}}\end{DoxyCompactItemize}