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.

classutl_1_1out__dev.tex 25 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407
  1. \hypertarget{classutl_1_1out__dev}{}\section{utl\+:\+:out\+\_\+dev$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$ Class Template Reference}
  2. \label{classutl_1_1out__dev}\index{utl\+::out\+\_\+dev$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$@{utl\+::out\+\_\+dev$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$}}
  3. Abstract base classes for output devices.
  4. {\ttfamily \#include $<$out\+\_\+dev.\+h$>$}
  5. \subsection*{Public Types}
  6. \begin{DoxyCompactItemize}
  7. \item
  8. using \mbox{\hyperlink{classutl_1_1out__dev_aebda5d42d26027e9266bfe74bf71a960}{type}} = \mbox{\hyperlink{classutl_1_1out__dev}{out\+\_\+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_1out__dev_ac6b32afc51452a7dd2297a41f74e63e4}{data\+\_\+type}} = data\+\_\+t
  14. \item
  15. using \mbox{\hyperlink{classutl_1_1out__dev_abfb6a95c13fc63c09776141ad16e98e3}{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_1out__dev_a640214f205468c235dec25bab8fb6c08}{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_1out__dev_a0cfe5f4d3c3e4fb21abe9e88101e0bb8}{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_1out__dev}{out\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1out__dev_a73612dfcce721cbc386bad3e7d6864b4}{operator$<$$<$}} (\+\_\+\+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_1out__dev}{out\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1out__dev_a934913c0d594e8fd366b248bc01116aa}{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_1out__dev}{out\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1out__dev_a22dce1d313a4f6b4686d4253cbd7f485}{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_1out__dev_ad7f16990cdb6d54a54c774224f758f13}{iterator}} \mbox{\hyperlink{classutl_1_1out__dev_a34aeac23c0184d243c6631e713208e27}{end}} () noexcept
  40. \item
  41. \mbox{\hyperlink{classutl_1_1out__dev_acaf94b09de592226f78d4d2d43f348ed}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1out__dev_a0e89b3e0a5bddc3031b543ef32eb401e}{end}} () const noexcept
  42. \item
  43. \mbox{\hyperlink{classutl_1_1out__dev_acaf94b09de592226f78d4d2d43f348ed}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1out__dev_a71487ce8df820dd688d1698b035fe4fe}{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_1out__dev_a0c04af11ec0f3f9954399d22069e314d}{$\sim$out\+\_\+dev}} ()=default
  50. \begin{DoxyCompactList}\small\item\em Allow destructor from derived only. \end{DoxyCompactList}\item
  51. \mbox{\hyperlink{classutl_1_1out__dev_a0ceaf76475484f35174d96561dea73bf}{out\+\_\+dev}} ()=default
  52. \begin{DoxyCompactList}\small\item\em A default constructor from derived only. \end{DoxyCompactList}\item
  53. \mbox{\hyperlink{classutl_1_1out__dev_a36aed8619cf12b4f04334c7e0b219fb6}{out\+\_\+dev}} (const \mbox{\hyperlink{classutl_1_1out__dev}{out\+\_\+dev\+\_\+t}} \&)=delete
  54. \begin{DoxyCompactList}\small\item\em No copies. \end{DoxyCompactList}\item
  55. \mbox{\hyperlink{classutl_1_1out__dev}{out\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1out__dev_aba2f65a858ae47167f46979337299f44}{operator=}} (const \mbox{\hyperlink{classutl_1_1out__dev}{out\+\_\+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_1out__dev_ad7f16990cdb6d54a54c774224f758f13}{iterator}} = \mbox{\hyperlink{classutl_1_1outdev__it}{outdev\+\_\+it}}$<$ \mbox{\hyperlink{classutl_1_1out__dev}{out\+\_\+dev\+\_\+t}}, data\+\_\+t $\ast$, streamsize $>$
  62. \begin{DoxyCompactList}\small\item\em Iterator. \end{DoxyCompactList}\item
  63. using \mbox{\hyperlink{classutl_1_1out__dev_acaf94b09de592226f78d4d2d43f348ed}{const\+\_\+iterator}} = \mbox{\hyperlink{classutl_1_1outdev__it}{outdev\+\_\+it}}$<$ const \mbox{\hyperlink{classutl_1_1out__dev}{out\+\_\+dev\+\_\+t}}, data\+\_\+t $\ast$, streamsize $>$
  64. \begin{DoxyCompactList}\small\item\em Const iterator. \end{DoxyCompactList}\item
  65. \mbox{\hyperlink{classutl_1_1out__dev_ad7f16990cdb6d54a54c774224f758f13}{iterator}} \mbox{\hyperlink{classutl_1_1out__dev_a6396fb83348828e37d853d1566b0d742}{begin}} () noexcept
  66. \begin{DoxyCompactList}\small\item\em .begin implementation \end{DoxyCompactList}\item
  67. \mbox{\hyperlink{classutl_1_1out__dev_acaf94b09de592226f78d4d2d43f348ed}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1out__dev_ab08cdc4935ec15a388e34610e905d375}{begin}} () const noexcept
  68. \item
  69. \mbox{\hyperlink{classutl_1_1out__dev_acaf94b09de592226f78d4d2d43f348ed}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1out__dev_ace309e9fd1a113691c5a84fde268c676}{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\+::out\+\_\+dev$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$}
  74. Abstract base classes for output devices.
  75. Template base class for output devices. using C\+R\+TP
  76. This class force a common interface for output 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. {\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_1out__dev_a6396fb83348828e37d853d1566b0d742}{begin()}} now equals \mbox{\hyperlink{classutl_1_1out__dev_a34aeac23c0184d243c6631e713208e27}{end()}}. \end{DoxyItemize}
  89. \\
  90. \hline
  91. \end{DoxyParams}
  92. Definition at line 54 of file out\+\_\+dev.\+h.
  93. \subsection{Member Typedef Documentation}
  94. \mbox{\Hypertarget{classutl_1_1out__dev_acaf94b09de592226f78d4d2d43f348ed}\label{classutl_1_1out__dev_acaf94b09de592226f78d4d2d43f348ed}}
  95. \index{utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}!const\+\_\+iterator@{const\+\_\+iterator}}
  96. \index{const\+\_\+iterator@{const\+\_\+iterator}!utl\+::out\+\_\+dev@{utl\+::out\+\_\+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_1out__dev}{utl\+::out\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::\mbox{\hyperlink{classutl_1_1out__dev_acaf94b09de592226f78d4d2d43f348ed}{const\+\_\+iterator}} = \mbox{\hyperlink{classutl_1_1outdev__it}{outdev\+\_\+it}} $<$const \mbox{\hyperlink{classutl_1_1out__dev}{out\+\_\+dev\+\_\+t}}, data\+\_\+t$\ast$, streamsize$>$}
  100. Const iterator.
  101. Definition at line 153 of file out\+\_\+dev.\+h.
  102. \mbox{\Hypertarget{classutl_1_1out__dev_ac6b32afc51452a7dd2297a41f74e63e4}\label{classutl_1_1out__dev_ac6b32afc51452a7dd2297a41f74e63e4}}
  103. \index{utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}!data\+\_\+type@{data\+\_\+type}}
  104. \index{data\+\_\+type@{data\+\_\+type}!utl\+::out\+\_\+dev@{utl\+::out\+\_\+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_1out__dev}{utl\+::out\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::\mbox{\hyperlink{classutl_1_1out__dev_ac6b32afc51452a7dd2297a41f74e63e4}{data\+\_\+type}} = data\+\_\+t}
  108. Export types as input device concept demands
  109. Definition at line 61 of file out\+\_\+dev.\+h.
  110. \mbox{\Hypertarget{classutl_1_1out__dev_ad7f16990cdb6d54a54c774224f758f13}\label{classutl_1_1out__dev_ad7f16990cdb6d54a54c774224f758f13}}
  111. \index{utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}!iterator@{iterator}}
  112. \index{iterator@{iterator}!utl\+::out\+\_\+dev@{utl\+::out\+\_\+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_1out__dev}{utl\+::out\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::\mbox{\hyperlink{classutl_1_1out__dev_ad7f16990cdb6d54a54c774224f758f13}{iterator}} = \mbox{\hyperlink{classutl_1_1outdev__it}{outdev\+\_\+it}} $<$\mbox{\hyperlink{classutl_1_1out__dev}{out\+\_\+dev\+\_\+t}}, data\+\_\+t$\ast$, streamsize$>$}
  116. Iterator.
  117. Definition at line 152 of file out\+\_\+dev.\+h.
  118. \mbox{\Hypertarget{classutl_1_1out__dev_abfb6a95c13fc63c09776141ad16e98e3}\label{classutl_1_1out__dev_abfb6a95c13fc63c09776141ad16e98e3}}
  119. \index{utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}!pointer\+\_\+type@{pointer\+\_\+type}}
  120. \index{pointer\+\_\+type@{pointer\+\_\+type}!utl\+::out\+\_\+dev@{utl\+::out\+\_\+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_1out__dev}{utl\+::out\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::\mbox{\hyperlink{classutl_1_1out__dev_abfb6a95c13fc63c09776141ad16e98e3}{pointer\+\_\+type}} = data\+\_\+t$\ast$}
  124. Definition at line 62 of file out\+\_\+dev.\+h.
  125. \mbox{\Hypertarget{classutl_1_1out__dev_aebda5d42d26027e9266bfe74bf71a960}\label{classutl_1_1out__dev_aebda5d42d26027e9266bfe74bf71a960}}
  126. \index{utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}!type@{type}}
  127. \index{type@{type}!utl\+::out\+\_\+dev@{utl\+::out\+\_\+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_1out__dev}{utl\+::out\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::\mbox{\hyperlink{classutl_1_1out__dev_aebda5d42d26027e9266bfe74bf71a960}{type}} = \mbox{\hyperlink{classutl_1_1out__dev}{out\+\_\+dev\+\_\+t}}}
  131. Export type as identity meta-\/function.
  132. Definition at line 64 of file out\+\_\+dev.\+h.
  133. \subsection{Constructor \& Destructor Documentation}
  134. \mbox{\Hypertarget{classutl_1_1out__dev_a0c04af11ec0f3f9954399d22069e314d}\label{classutl_1_1out__dev_a0c04af11ec0f3f9954399d22069e314d}}
  135. \index{utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}!````~out\+\_\+dev@{$\sim$out\+\_\+dev}}
  136. \index{````~out\+\_\+dev@{$\sim$out\+\_\+dev}!utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}}
  137. \subsubsection{\texorpdfstring{$\sim$out\+\_\+dev()}{~out\_dev()}}
  138. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  139. \mbox{\hyperlink{classutl_1_1out__dev}{utl\+::out\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::$\sim$\mbox{\hyperlink{classutl_1_1out__dev}{out\+\_\+dev}} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [default]}}
  140. Allow destructor from derived only.
  141. \mbox{\Hypertarget{classutl_1_1out__dev_a0ceaf76475484f35174d96561dea73bf}\label{classutl_1_1out__dev_a0ceaf76475484f35174d96561dea73bf}}
  142. \index{utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}!out\+\_\+dev@{out\+\_\+dev}}
  143. \index{out\+\_\+dev@{out\+\_\+dev}!utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}}
  144. \subsubsection{\texorpdfstring{out\+\_\+dev()}{out\_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_1out__dev}{utl\+::out\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::\mbox{\hyperlink{classutl_1_1out__dev}{out\+\_\+dev}} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [default]}}
  147. A default constructor from derived only.
  148. \mbox{\Hypertarget{classutl_1_1out__dev_a36aed8619cf12b4f04334c7e0b219fb6}\label{classutl_1_1out__dev_a36aed8619cf12b4f04334c7e0b219fb6}}
  149. \index{utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}!out\+\_\+dev@{out\+\_\+dev}}
  150. \index{out\+\_\+dev@{out\+\_\+dev}!utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}}
  151. \subsubsection{\texorpdfstring{out\+\_\+dev()}{out\_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_1out__dev}{utl\+::out\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::\mbox{\hyperlink{classutl_1_1out__dev}{out\+\_\+dev}} (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classutl_1_1out__dev}{out\+\_\+dev\+\_\+t}} \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [delete]}}
  154. No copies.
  155. \subsection{Member Function Documentation}
  156. \mbox{\Hypertarget{classutl_1_1out__dev_a6396fb83348828e37d853d1566b0d742}\label{classutl_1_1out__dev_a6396fb83348828e37d853d1566b0d742}}
  157. \index{utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}!begin@{begin}}
  158. \index{begin@{begin}!utl\+::out\+\_\+dev@{utl\+::out\+\_\+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_1out__dev_ad7f16990cdb6d54a54c774224f758f13}{iterator}} \mbox{\hyperlink{classutl_1_1out__dev}{utl\+::out\+\_\+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 156 of file out\+\_\+dev.\+h.
  164. \mbox{\Hypertarget{classutl_1_1out__dev_ab08cdc4935ec15a388e34610e905d375}\label{classutl_1_1out__dev_ab08cdc4935ec15a388e34610e905d375}}
  165. \index{utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}!begin@{begin}}
  166. \index{begin@{begin}!utl\+::out\+\_\+dev@{utl\+::out\+\_\+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_1out__dev_acaf94b09de592226f78d4d2d43f348ed}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1out__dev}{utl\+::out\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::begin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
  170. Definition at line 157 of file out\+\_\+dev.\+h.
  171. \mbox{\Hypertarget{classutl_1_1out__dev_ace309e9fd1a113691c5a84fde268c676}\label{classutl_1_1out__dev_ace309e9fd1a113691c5a84fde268c676}}
  172. \index{utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}!cbegin@{cbegin}}
  173. \index{cbegin@{cbegin}!utl\+::out\+\_\+dev@{utl\+::out\+\_\+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_1out__dev_acaf94b09de592226f78d4d2d43f348ed}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1out__dev}{utl\+::out\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::cbegin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
  177. Definition at line 158 of file out\+\_\+dev.\+h.
  178. \mbox{\Hypertarget{classutl_1_1out__dev_a71487ce8df820dd688d1698b035fe4fe}\label{classutl_1_1out__dev_a71487ce8df820dd688d1698b035fe4fe}}
  179. \index{utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}!cend@{cend}}
  180. \index{cend@{cend}!utl\+::out\+\_\+dev@{utl\+::out\+\_\+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_1out__dev_acaf94b09de592226f78d4d2d43f348ed}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1out__dev}{utl\+::out\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::cend (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
  184. Definition at line 163 of file out\+\_\+dev.\+h.
  185. \mbox{\Hypertarget{classutl_1_1out__dev_a34aeac23c0184d243c6631e713208e27}\label{classutl_1_1out__dev_a34aeac23c0184d243c6631e713208e27}}
  186. \index{utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}!end@{end}}
  187. \index{end@{end}!utl\+::out\+\_\+dev@{utl\+::out\+\_\+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_1out__dev_ad7f16990cdb6d54a54c774224f758f13}{iterator}} \mbox{\hyperlink{classutl_1_1out__dev}{utl\+::out\+\_\+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 161 of file out\+\_\+dev.\+h.
  193. \mbox{\Hypertarget{classutl_1_1out__dev_a0e89b3e0a5bddc3031b543ef32eb401e}\label{classutl_1_1out__dev_a0e89b3e0a5bddc3031b543ef32eb401e}}
  194. \index{utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}!end@{end}}
  195. \index{end@{end}!utl\+::out\+\_\+dev@{utl\+::out\+\_\+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_1out__dev_acaf94b09de592226f78d4d2d43f348ed}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1out__dev}{utl\+::out\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::end (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
  199. Definition at line 162 of file out\+\_\+dev.\+h.
  200. \mbox{\Hypertarget{classutl_1_1out__dev_a73612dfcce721cbc386bad3e7d6864b4}\label{classutl_1_1out__dev_a73612dfcce721cbc386bad3e7d6864b4}}
  201. \index{utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}!operator$<$$<$@{operator$<$$<$}}
  202. \index{operator$<$$<$@{operator$<$$<$}!utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}}
  203. \subsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
  204. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  205. template$<$typename \+\_\+\+Src\+\_\+t $>$ \\
  206. \mbox{\hyperlink{classutl_1_1out__dev}{out\+\_\+dev\+\_\+t}}\& \mbox{\hyperlink{classutl_1_1out__dev}{utl\+::out\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::operator$<$$<$ (\begin{DoxyParamCaption}\item[{\+\_\+\+Src\+\_\+t \&}]{src }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  207. Template operator$<$$<$ implementation for for all by value/ref parameters.
  208. \begin{DoxyNote}{Note}
  209. 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.
  210. \end{DoxyNote}
  211. \begin{DoxyParams}{Parameters}
  212. {\em src} & Reference to source data \\
  213. \hline
  214. \end{DoxyParams}
  215. \begin{DoxyReturn}{Returns}
  216. Reference to this device for chaining
  217. \end{DoxyReturn}
  218. Definition at line 131 of file out\+\_\+dev.\+h.
  219. \mbox{\Hypertarget{classutl_1_1out__dev_a934913c0d594e8fd366b248bc01116aa}\label{classutl_1_1out__dev_a934913c0d594e8fd366b248bc01116aa}}
  220. \index{utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}!operator$<$$<$@{operator$<$$<$}}
  221. \index{operator$<$$<$@{operator$<$$<$}!utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}}
  222. \subsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
  223. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  224. template$<$typename \+\_\+\+Src\+\_\+t $>$ \\
  225. \mbox{\hyperlink{classutl_1_1out__dev}{out\+\_\+dev\+\_\+t}}\& \mbox{\hyperlink{classutl_1_1out__dev}{utl\+::out\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::operator$<$$<$ (\begin{DoxyParamCaption}\item[{\+\_\+\+Src\+\_\+t $\ast$}]{src }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}}
  226. Overload to disallow pointer types as source.
  227. \mbox{\Hypertarget{classutl_1_1out__dev_a22dce1d313a4f6b4686d4253cbd7f485}\label{classutl_1_1out__dev_a22dce1d313a4f6b4686d4253cbd7f485}}
  228. \index{utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}!operator$<$$<$@{operator$<$$<$}}
  229. \index{operator$<$$<$@{operator$<$$<$}!utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}}
  230. \subsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
  231. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  232. \mbox{\hyperlink{classutl_1_1out__dev}{out\+\_\+dev\+\_\+t}}\& \mbox{\hyperlink{classutl_1_1out__dev}{utl\+::out\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::operator$<$$<$ (\begin{DoxyParamCaption}\item[{const data\+\_\+t \&}]{src }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  233. Overload for single data\+\_\+t object.
  234. Definition at line 142 of file out\+\_\+dev.\+h.
  235. \mbox{\Hypertarget{classutl_1_1out__dev_aba2f65a858ae47167f46979337299f44}\label{classutl_1_1out__dev_aba2f65a858ae47167f46979337299f44}}
  236. \index{utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}!operator=@{operator=}}
  237. \index{operator=@{operator=}!utl\+::out\+\_\+dev@{utl\+::out\+\_\+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_1out__dev}{out\+\_\+dev\+\_\+t}}\& \mbox{\hyperlink{classutl_1_1out__dev}{utl\+::out\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::operator= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classutl_1_1out__dev}{out\+\_\+dev\+\_\+t}} \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [delete]}}
  241. No copy assignments \mbox{\Hypertarget{classutl_1_1out__dev_a640214f205468c235dec25bab8fb6c08}\label{classutl_1_1out__dev_a640214f205468c235dec25bab8fb6c08}}
  242. \index{utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}!put@{put}}
  243. \index{put@{put}!utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}}
  244. \subsubsection{\texorpdfstring{put()}{put()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
  245. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  246. \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1out__dev}{utl\+::out\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::put (\begin{DoxyParamCaption}\item[{const data\+\_\+t \&}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  247. Put interface. This function should send a single data\+\_\+t object to device.
  248. \begin{DoxyParams}{Parameters}
  249. {\em data} & The data to send \\
  250. \hline
  251. \end{DoxyParams}
  252. \begin{DoxyReturn}{Returns}
  253. The number of transmitted data items
  254. \end{DoxyReturn}
  255. \begin{DoxyNote}{Note}
  256. A successful call should return 1
  257. \end{DoxyNote}
  258. Definition at line 99 of file out\+\_\+dev.\+h.
  259. \mbox{\Hypertarget{classutl_1_1out__dev_a0cfe5f4d3c3e4fb21abe9e88101e0bb8}\label{classutl_1_1out__dev_a0cfe5f4d3c3e4fb21abe9e88101e0bb8}}
  260. \index{utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}!put@{put}}
  261. \index{put@{put}!utl\+::out\+\_\+dev@{utl\+::out\+\_\+dev}}
  262. \subsubsection{\texorpdfstring{put()}{put()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
  263. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , size\+\_\+t streamsize = 0$>$ \\
  264. \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1out__dev}{utl\+::out\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, streamsize $>$\+::put (\begin{DoxyParamCaption}\item[{const data\+\_\+t $\ast$}]{data, }\item[{\mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}}}]{n }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  265. Put interface. This function should send a stream of data\+\_\+t objects to device.
  266. \begin{DoxyParams}{Parameters}
  267. {\em data} & Pointer to buffer indenting write to device. \\
  268. \hline
  269. {\em n} & The number of data of type data\+\_\+t to send \\
  270. \hline
  271. \end{DoxyParams}
  272. \begin{DoxyReturn}{Returns}
  273. The number of transmitted items.
  274. \end{DoxyReturn}
  275. Definition at line 111 of file out\+\_\+dev.\+h.
  276. The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
  277. \item
  278. include/utl/dev/\mbox{\hyperlink{out__dev_8h}{out\+\_\+dev.\+h}}\end{DoxyCompactItemize}