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.
 
 
 
 

598 lignes
37 KiB

  1. \hypertarget{classutl_1_1idx__dev}{}\section{utl\+:\+:idx\+\_\+dev$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$ Class Template Reference}
  2. \label{classutl_1_1idx__dev}\index{utl\+::idx\+\_\+dev$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$@{utl\+::idx\+\_\+dev$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$}}
  3. Abstract base class for indexed devices.
  4. {\ttfamily \#include $<$idx\+\_\+dev.\+h$>$}
  5. \subsection*{Public Types}
  6. \begin{DoxyCompactItemize}
  7. \item
  8. using \mbox{\hyperlink{classutl_1_1idx__dev_a6cdcb1da82a0047d990ee6bce8b6c32b}{type}} = \mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+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_1idx__dev_ace7a74e439972658d6006f83371ee0ca}{data\+\_\+type}} = data\+\_\+t
  14. \begin{DoxyCompactList}\small\item\em Export types as index device concept demands. \end{DoxyCompactList}\item
  15. using \mbox{\hyperlink{classutl_1_1idx__dev_acf054246b0c7c8be0a676fc1cf2b090c}{pointer\+\_\+type}} = data\+\_\+t $\ast$
  16. \item
  17. using \mbox{\hyperlink{classutl_1_1idx__dev_aa8055ff3787876f243710ff194c7b8d0}{idx\+\_\+type}} = idx\+\_\+t
  18. \end{DoxyCompactItemize}
  19. \subsection*{Public Member Functions}
  20. \begin{Indent}\textbf{ Public index device interface}\par
  21. \begin{DoxyCompactItemize}
  22. \item
  23. \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1idx__dev_a04f9404d7741c3c6ac421c530dfe867c}{get}} (data\+\_\+t \&data, idx\+\_\+t \mbox{\hyperlink{classutl_1_1idx__dev_a5ec37ed1b09a484563e4ad21107ac5a5}{cursor}})
  24. \begin{DoxyCompactList}\small\item\em Get interface. This function should read a single data\+\_\+t object from device in blocking mode. \end{DoxyCompactList}\item
  25. \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1idx__dev_aeef118cb863218cb2b5a1e8bb2dba600}{get}} (data\+\_\+t $\ast$data, \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} n, idx\+\_\+t \mbox{\hyperlink{classutl_1_1idx__dev_a5ec37ed1b09a484563e4ad21107ac5a5}{cursor}})
  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}\item
  27. \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1idx__dev_af588d605d6968164cca3e348b5363613}{put}} (const data\+\_\+t \&data, idx\+\_\+t \mbox{\hyperlink{classutl_1_1idx__dev_a5ec37ed1b09a484563e4ad21107ac5a5}{cursor}})
  28. \begin{DoxyCompactList}\small\item\em Put interface. This function should send a single data\+\_\+t object to device. \end{DoxyCompactList}\item
  29. \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1idx__dev_a4d91ec798d3bf0da54467b4a394da839}{put}} (const data\+\_\+t $\ast$data, \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} n, idx\+\_\+t \mbox{\hyperlink{classutl_1_1idx__dev_a5ec37ed1b09a484563e4ad21107ac5a5}{cursor}})
  30. \begin{DoxyCompactList}\small\item\em Put interface. This function should send a stream of data\+\_\+t objects to device. \end{DoxyCompactList}\item
  31. idx\+\_\+t \mbox{\hyperlink{classutl_1_1idx__dev_a5ec37ed1b09a484563e4ad21107ac5a5}{cursor}} () const
  32. \begin{DoxyCompactList}\small\item\em Return the current cursor position. \end{DoxyCompactList}\item
  33. idx\+\_\+t \mbox{\hyperlink{classutl_1_1idx__dev_ab49339f7ff0608ab460f0883224acb3c}{cursor}} (idx\+\_\+t idx)
  34. \begin{DoxyCompactList}\small\item\em Set the cursor position. \end{DoxyCompactList}\end{DoxyCompactItemize}
  35. \end{Indent}
  36. \begin{Indent}\textbf{ Stream operator $>$$>$ interface}\par
  37. \begin{DoxyCompactItemize}
  38. \item
  39. {\footnotesize template$<$typename \+\_\+\+Dst\+\_\+t $>$ }\\\mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1idx__dev_a296be5211871773b2b8aa5409772ce6a}{operator$>$$>$}} (\+\_\+\+Dst\+\_\+t \&dst)
  40. \begin{DoxyCompactList}\small\item\em Template operator$>$$>$ implementation for for all by value/ref parameters. \end{DoxyCompactList}\item
  41. {\footnotesize template$<$typename \+\_\+\+Dst\+\_\+t $>$ }\\\mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1idx__dev_af5822e3e77e2748a6eaf13b9381e0736}{operator$>$$>$}} (\+\_\+\+Dst\+\_\+t $\ast$dst)=delete
  42. \begin{DoxyCompactList}\small\item\em Specialization to disallow pointer types as destination. \end{DoxyCompactList}\item
  43. \mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1idx__dev_a3480680f94fcb06f9ee8b2e5dcdb4dcd}{operator$>$$>$}} (data\+\_\+t \&dst)
  44. \begin{DoxyCompactList}\small\item\em Overload for single data\+\_\+t object. \end{DoxyCompactList}\end{DoxyCompactItemize}
  45. \end{Indent}
  46. \begin{Indent}\textbf{ Stream operator$<$$<$ interface}\par
  47. \begin{DoxyCompactItemize}
  48. \item
  49. {\footnotesize template$<$typename \+\_\+\+Src\+\_\+t $>$ }\\\mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1idx__dev_a661ea93cc07a61ef208ab6f021f62907}{operator$<$$<$}} (\+\_\+\+Src\+\_\+t \&src)
  50. \begin{DoxyCompactList}\small\item\em Template operator$<$$<$ implementation for for all by value/ref parameters. \end{DoxyCompactList}\item
  51. {\footnotesize template$<$typename \+\_\+\+Src\+\_\+t $>$ }\\\mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1idx__dev_a4e5a520417e7defe7cec77c261a01b73}{operator$<$$<$}} (\+\_\+\+Src\+\_\+t $\ast$src)=delete
  52. \begin{DoxyCompactList}\small\item\em specialization to disallow pointer types as source \end{DoxyCompactList}\item
  53. \mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1idx__dev_ad1c24182de1432f4d43eaa69db7aaec7}{operator$<$$<$}} (const data\+\_\+t \&src)
  54. \begin{DoxyCompactList}\small\item\em Overload for single data\+\_\+t object. \end{DoxyCompactList}\end{DoxyCompactItemize}
  55. \end{Indent}
  56. \begin{Indent}\textbf{ Helper operators}\par
  57. \begin{DoxyCompactItemize}
  58. \item
  59. data\+\_\+t \& \mbox{\hyperlink{classutl_1_1idx__dev_a5e0d647ad1cc5533e4f70292d8793a9f}{operator\mbox{[}$\,$\mbox{]}}} (const idx\+\_\+t idx)
  60. \end{DoxyCompactItemize}
  61. \end{Indent}
  62. \textbf{ }\par
  63. \begin{DoxyCompactItemize}
  64. \item
  65. \mbox{\hyperlink{classutl_1_1idx__dev_a7aa9e9ecfa5035dba4c2f9ef9ec60c2a}{iterator}} \mbox{\hyperlink{classutl_1_1idx__dev_aae291a2bb6788f85aa543861ccdb51c5}{end}} () noexcept
  66. \item
  67. \mbox{\hyperlink{classutl_1_1idx__dev_afa0e264f696f45c5a1b663c7c868a510}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1idx__dev_ae1cf97364a8264b390b361fc6b54b389}{end}} () const noexcept
  68. \item
  69. \mbox{\hyperlink{classutl_1_1idx__dev_afa0e264f696f45c5a1b663c7c868a510}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1idx__dev_a6ee37538b456c4b53b0bd4b3757b5edf}{cend}} () const noexcept
  70. \end{DoxyCompactItemize}
  71. \subsection*{Protected Member Functions}
  72. \begin{Indent}\textbf{ Constructor / Destructor}\par
  73. \begin{DoxyCompactItemize}
  74. \item
  75. \mbox{\hyperlink{classutl_1_1idx__dev_ac7fc9b499b2c4b73769b68d10181b08b}{$\sim$idx\+\_\+dev}} ()=default
  76. \begin{DoxyCompactList}\small\item\em Allow destructor from derived only. \end{DoxyCompactList}\item
  77. \mbox{\hyperlink{classutl_1_1idx__dev_a90c6f576acb2a1ced3e973864d5d61b1}{idx\+\_\+dev}} ()=default
  78. \begin{DoxyCompactList}\small\item\em A default constructor from derived only. \end{DoxyCompactList}\item
  79. \mbox{\hyperlink{classutl_1_1idx__dev_a846e84b90848710336e2763c833eb8ec}{idx\+\_\+dev}} (const \mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}} \&)=delete
  80. \begin{DoxyCompactList}\small\item\em No copies. \end{DoxyCompactList}\item
  81. \mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1idx__dev_ac817369b5efb068d648328320a9cf6a4}{operator=}} (const \mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}} \&)=delete
  82. \end{DoxyCompactItemize}
  83. \end{Indent}
  84. \subsection*{S\+T\+L-\/like Input iterator interface}
  85. \begin{DoxyCompactItemize}
  86. \item
  87. using \mbox{\hyperlink{classutl_1_1idx__dev_a7aa9e9ecfa5035dba4c2f9ef9ec60c2a}{iterator}} = idxdev\+\_\+it$<$ \mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}}, data\+\_\+t $\ast$, N $>$
  88. \begin{DoxyCompactList}\small\item\em Iterator. \end{DoxyCompactList}\item
  89. using \mbox{\hyperlink{classutl_1_1idx__dev_afa0e264f696f45c5a1b663c7c868a510}{const\+\_\+iterator}} = idxdev\+\_\+it$<$ \mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}}, const data\+\_\+t $\ast$, N $>$
  90. \begin{DoxyCompactList}\small\item\em Const iterator. \end{DoxyCompactList}\item
  91. \mbox{\hyperlink{classutl_1_1idx__dev_a7aa9e9ecfa5035dba4c2f9ef9ec60c2a}{iterator}} \mbox{\hyperlink{classutl_1_1idx__dev_a83b186ed15e9bbe1e5d53e3941d517a7}{begin}} () noexcept
  92. \begin{DoxyCompactList}\small\item\em .begin implementation \end{DoxyCompactList}\item
  93. \mbox{\hyperlink{classutl_1_1idx__dev_afa0e264f696f45c5a1b663c7c868a510}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1idx__dev_ad456ced43be8ab4fb9a66840afa030f7}{begin}} () const noexcept
  94. \item
  95. \mbox{\hyperlink{classutl_1_1idx__dev_afa0e264f696f45c5a1b663c7c868a510}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1idx__dev_a7550b4dbfea20c02f4600821bf36dc0c}{cbegin}} () const noexcept
  96. \end{DoxyCompactItemize}
  97. \subsection{Detailed Description}
  98. \subsubsection*{template$<$typename impl\+\_\+t, typename data\+\_\+t, typename idx\+\_\+t, size\+\_\+t N$>$\newline
  99. class utl\+::idx\+\_\+dev$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$}
  100. Abstract base class for indexed devices.
  101. Template base class for indexed (I/O) devices. using C\+R\+TP
  102. This class force a common interface for input, indexed (I/O) devices. By using this common interface the class implements
  103. \begin{DoxyItemize}
  104. \item Stream-\/like extracting and insertion operator
  105. \item Helper operators
  106. \item Input iterator
  107. \item Const input iterator to inherit to implementation.
  108. \end{DoxyItemize}
  109. \begin{DoxyParams}{Parameters}
  110. {\em impl\+\_\+t} & The C\+R\+TP type (the derived/implementation class typename). \\
  111. \hline
  112. {\em data\+\_\+t} & The devices base type of data \\
  113. \hline
  114. {\em idx\+\_\+t} & The type to use for indexing \\
  115. \hline
  116. {\em streamsize} & The number of elements to indicate eos. \\
  117. \hline
  118. \end{DoxyParams}
  119. Definition at line 56 of file idx\+\_\+dev.\+h.
  120. \subsection{Member Typedef Documentation}
  121. \mbox{\Hypertarget{classutl_1_1idx__dev_afa0e264f696f45c5a1b663c7c868a510}\label{classutl_1_1idx__dev_afa0e264f696f45c5a1b663c7c868a510}}
  122. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!const\+\_\+iterator@{const\+\_\+iterator}}
  123. \index{const\+\_\+iterator@{const\+\_\+iterator}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  124. \subsubsection{\texorpdfstring{const\+\_\+iterator}{const\_iterator}}
  125. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  126. using \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::\mbox{\hyperlink{classutl_1_1idx__dev_afa0e264f696f45c5a1b663c7c868a510}{const\+\_\+iterator}} = idxdev\+\_\+it $<$\mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}}, const data\+\_\+t$\ast$, N$>$}
  127. Const iterator.
  128. Definition at line 231 of file idx\+\_\+dev.\+h.
  129. \mbox{\Hypertarget{classutl_1_1idx__dev_ace7a74e439972658d6006f83371ee0ca}\label{classutl_1_1idx__dev_ace7a74e439972658d6006f83371ee0ca}}
  130. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!data\+\_\+type@{data\+\_\+type}}
  131. \index{data\+\_\+type@{data\+\_\+type}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  132. \subsubsection{\texorpdfstring{data\+\_\+type}{data\_type}}
  133. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  134. using \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::\mbox{\hyperlink{classutl_1_1idx__dev_ace7a74e439972658d6006f83371ee0ca}{data\+\_\+type}} = data\+\_\+t}
  135. Export types as index device concept demands.
  136. Definition at line 62 of file idx\+\_\+dev.\+h.
  137. \mbox{\Hypertarget{classutl_1_1idx__dev_aa8055ff3787876f243710ff194c7b8d0}\label{classutl_1_1idx__dev_aa8055ff3787876f243710ff194c7b8d0}}
  138. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!idx\+\_\+type@{idx\+\_\+type}}
  139. \index{idx\+\_\+type@{idx\+\_\+type}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  140. \subsubsection{\texorpdfstring{idx\+\_\+type}{idx\_type}}
  141. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  142. using \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::\mbox{\hyperlink{classutl_1_1idx__dev_aa8055ff3787876f243710ff194c7b8d0}{idx\+\_\+type}} = idx\+\_\+t}
  143. Definition at line 64 of file idx\+\_\+dev.\+h.
  144. \mbox{\Hypertarget{classutl_1_1idx__dev_a7aa9e9ecfa5035dba4c2f9ef9ec60c2a}\label{classutl_1_1idx__dev_a7aa9e9ecfa5035dba4c2f9ef9ec60c2a}}
  145. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!iterator@{iterator}}
  146. \index{iterator@{iterator}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  147. \subsubsection{\texorpdfstring{iterator}{iterator}}
  148. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  149. using \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::\mbox{\hyperlink{classutl_1_1idx__dev_a7aa9e9ecfa5035dba4c2f9ef9ec60c2a}{iterator}} = idxdev\+\_\+it $<$\mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}}, data\+\_\+t$\ast$, N$>$}
  150. Iterator.
  151. Definition at line 230 of file idx\+\_\+dev.\+h.
  152. \mbox{\Hypertarget{classutl_1_1idx__dev_acf054246b0c7c8be0a676fc1cf2b090c}\label{classutl_1_1idx__dev_acf054246b0c7c8be0a676fc1cf2b090c}}
  153. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!pointer\+\_\+type@{pointer\+\_\+type}}
  154. \index{pointer\+\_\+type@{pointer\+\_\+type}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  155. \subsubsection{\texorpdfstring{pointer\+\_\+type}{pointer\_type}}
  156. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  157. using \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::\mbox{\hyperlink{classutl_1_1idx__dev_acf054246b0c7c8be0a676fc1cf2b090c}{pointer\+\_\+type}} = data\+\_\+t$\ast$}
  158. Definition at line 63 of file idx\+\_\+dev.\+h.
  159. \mbox{\Hypertarget{classutl_1_1idx__dev_a6cdcb1da82a0047d990ee6bce8b6c32b}\label{classutl_1_1idx__dev_a6cdcb1da82a0047d990ee6bce8b6c32b}}
  160. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!type@{type}}
  161. \index{type@{type}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  162. \subsubsection{\texorpdfstring{type}{type}}
  163. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  164. using \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::\mbox{\hyperlink{classutl_1_1idx__dev_a6cdcb1da82a0047d990ee6bce8b6c32b}{type}} = \mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}}}
  165. Export type as identity meta-\/function.
  166. Definition at line 66 of file idx\+\_\+dev.\+h.
  167. \subsection{Constructor \& Destructor Documentation}
  168. \mbox{\Hypertarget{classutl_1_1idx__dev_ac7fc9b499b2c4b73769b68d10181b08b}\label{classutl_1_1idx__dev_ac7fc9b499b2c4b73769b68d10181b08b}}
  169. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!````~idx\+\_\+dev@{$\sim$idx\+\_\+dev}}
  170. \index{````~idx\+\_\+dev@{$\sim$idx\+\_\+dev}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  171. \subsubsection{\texorpdfstring{$\sim$idx\+\_\+dev()}{~idx\_dev()}}
  172. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  173. \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::$\sim$\mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev}} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [default]}}
  174. Allow destructor from derived only.
  175. \mbox{\Hypertarget{classutl_1_1idx__dev_a90c6f576acb2a1ced3e973864d5d61b1}\label{classutl_1_1idx__dev_a90c6f576acb2a1ced3e973864d5d61b1}}
  176. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!idx\+\_\+dev@{idx\+\_\+dev}}
  177. \index{idx\+\_\+dev@{idx\+\_\+dev}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  178. \subsubsection{\texorpdfstring{idx\+\_\+dev()}{idx\_dev()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
  179. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  180. \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::\mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev}} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [default]}}
  181. A default constructor from derived only.
  182. \mbox{\Hypertarget{classutl_1_1idx__dev_a846e84b90848710336e2763c833eb8ec}\label{classutl_1_1idx__dev_a846e84b90848710336e2763c833eb8ec}}
  183. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!idx\+\_\+dev@{idx\+\_\+dev}}
  184. \index{idx\+\_\+dev@{idx\+\_\+dev}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  185. \subsubsection{\texorpdfstring{idx\+\_\+dev()}{idx\_dev()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
  186. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  187. \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::\mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev}} (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}} \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [delete]}}
  188. No copies.
  189. \subsection{Member Function Documentation}
  190. \mbox{\Hypertarget{classutl_1_1idx__dev_a83b186ed15e9bbe1e5d53e3941d517a7}\label{classutl_1_1idx__dev_a83b186ed15e9bbe1e5d53e3941d517a7}}
  191. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!begin@{begin}}
  192. \index{begin@{begin}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  193. \subsubsection{\texorpdfstring{begin()}{begin()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
  194. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  195. \mbox{\hyperlink{classutl_1_1idx__dev_a7aa9e9ecfa5035dba4c2f9ef9ec60c2a}{iterator}} \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::begin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
  196. .begin implementation
  197. Definition at line 234 of file idx\+\_\+dev.\+h.
  198. \mbox{\Hypertarget{classutl_1_1idx__dev_ad456ced43be8ab4fb9a66840afa030f7}\label{classutl_1_1idx__dev_ad456ced43be8ab4fb9a66840afa030f7}}
  199. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!begin@{begin}}
  200. \index{begin@{begin}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  201. \subsubsection{\texorpdfstring{begin()}{begin()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
  202. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  203. \mbox{\hyperlink{classutl_1_1idx__dev_afa0e264f696f45c5a1b663c7c868a510}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::begin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
  204. Definition at line 235 of file idx\+\_\+dev.\+h.
  205. \mbox{\Hypertarget{classutl_1_1idx__dev_a7550b4dbfea20c02f4600821bf36dc0c}\label{classutl_1_1idx__dev_a7550b4dbfea20c02f4600821bf36dc0c}}
  206. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!cbegin@{cbegin}}
  207. \index{cbegin@{cbegin}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  208. \subsubsection{\texorpdfstring{cbegin()}{cbegin()}}
  209. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  210. \mbox{\hyperlink{classutl_1_1idx__dev_afa0e264f696f45c5a1b663c7c868a510}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::cbegin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
  211. Definition at line 236 of file idx\+\_\+dev.\+h.
  212. \mbox{\Hypertarget{classutl_1_1idx__dev_a6ee37538b456c4b53b0bd4b3757b5edf}\label{classutl_1_1idx__dev_a6ee37538b456c4b53b0bd4b3757b5edf}}
  213. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!cend@{cend}}
  214. \index{cend@{cend}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  215. \subsubsection{\texorpdfstring{cend()}{cend()}}
  216. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  217. \mbox{\hyperlink{classutl_1_1idx__dev_afa0e264f696f45c5a1b663c7c868a510}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::cend (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
  218. Definition at line 241 of file idx\+\_\+dev.\+h.
  219. \mbox{\Hypertarget{classutl_1_1idx__dev_a5ec37ed1b09a484563e4ad21107ac5a5}\label{classutl_1_1idx__dev_a5ec37ed1b09a484563e4ad21107ac5a5}}
  220. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!cursor@{cursor}}
  221. \index{cursor@{cursor}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  222. \subsubsection{\texorpdfstring{cursor()}{cursor()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
  223. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  224. idx\+\_\+t \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::cursor (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
  225. Return the current cursor position.
  226. Definition at line 149 of file idx\+\_\+dev.\+h.
  227. \mbox{\Hypertarget{classutl_1_1idx__dev_ab49339f7ff0608ab460f0883224acb3c}\label{classutl_1_1idx__dev_ab49339f7ff0608ab460f0883224acb3c}}
  228. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!cursor@{cursor}}
  229. \index{cursor@{cursor}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  230. \subsubsection{\texorpdfstring{cursor()}{cursor()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
  231. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  232. idx\+\_\+t \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::cursor (\begin{DoxyParamCaption}\item[{idx\+\_\+t}]{idx }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  233. Set the cursor position.
  234. \begin{DoxyParams}{Parameters}
  235. {\em idx} & Cursor address to set \\
  236. \hline
  237. \end{DoxyParams}
  238. \begin{DoxyReturn}{Returns}
  239. The current cursor
  240. \end{DoxyReturn}
  241. Definition at line 156 of file idx\+\_\+dev.\+h.
  242. \mbox{\Hypertarget{classutl_1_1idx__dev_aae291a2bb6788f85aa543861ccdb51c5}\label{classutl_1_1idx__dev_aae291a2bb6788f85aa543861ccdb51c5}}
  243. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!end@{end}}
  244. \index{end@{end}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  245. \subsubsection{\texorpdfstring{end()}{end()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
  246. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  247. \mbox{\hyperlink{classutl_1_1idx__dev_a7aa9e9ecfa5035dba4c2f9ef9ec60c2a}{iterator}} \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::end (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
  248. .end implementation
  249. Definition at line 239 of file idx\+\_\+dev.\+h.
  250. \mbox{\Hypertarget{classutl_1_1idx__dev_ae1cf97364a8264b390b361fc6b54b389}\label{classutl_1_1idx__dev_ae1cf97364a8264b390b361fc6b54b389}}
  251. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!end@{end}}
  252. \index{end@{end}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  253. \subsubsection{\texorpdfstring{end()}{end()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
  254. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  255. \mbox{\hyperlink{classutl_1_1idx__dev_afa0e264f696f45c5a1b663c7c868a510}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::end (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
  256. Definition at line 240 of file idx\+\_\+dev.\+h.
  257. \mbox{\Hypertarget{classutl_1_1idx__dev_a04f9404d7741c3c6ac421c530dfe867c}\label{classutl_1_1idx__dev_a04f9404d7741c3c6ac421c530dfe867c}}
  258. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!get@{get}}
  259. \index{get@{get}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  260. \subsubsection{\texorpdfstring{get()}{get()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
  261. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  262. \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::get (\begin{DoxyParamCaption}\item[{data\+\_\+t \&}]{data, }\item[{idx\+\_\+t}]{cursor }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  263. Get interface. This function should read a single data\+\_\+t object from device in blocking mode.
  264. \begin{DoxyParams}{Parameters}
  265. {\em data} & Reference to data output from device. \\
  266. \hline
  267. \end{DoxyParams}
  268. \begin{DoxyReturn}{Returns}
  269. Number of data read from device
  270. \end{DoxyReturn}
  271. \begin{DoxyNote}{Note}
  272. A successful call should return 1
  273. \end{DoxyNote}
  274. Definition at line 104 of file idx\+\_\+dev.\+h.
  275. \mbox{\Hypertarget{classutl_1_1idx__dev_aeef118cb863218cb2b5a1e8bb2dba600}\label{classutl_1_1idx__dev_aeef118cb863218cb2b5a1e8bb2dba600}}
  276. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!get@{get}}
  277. \index{get@{get}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  278. \subsubsection{\texorpdfstring{get()}{get()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
  279. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  280. \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::get (\begin{DoxyParamCaption}\item[{data\+\_\+t $\ast$}]{data, }\item[{\mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}}}]{n, }\item[{idx\+\_\+t}]{cursor }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  281. Old stile get functionality using free standing data\+\_\+t$\ast$. This function should return a stream of data from device.
  282. \begin{DoxyParams}{Parameters}
  283. {\em data} & Pointer to buffer to write the data from device. \\
  284. \hline
  285. {\em n} & The number of data of type data\+\_\+t to read \\
  286. \hline
  287. \end{DoxyParams}
  288. \begin{DoxyReturn}{Returns}
  289. The read data items.
  290. \end{DoxyReturn}
  291. Definition at line 116 of file idx\+\_\+dev.\+h.
  292. \mbox{\Hypertarget{classutl_1_1idx__dev_a661ea93cc07a61ef208ab6f021f62907}\label{classutl_1_1idx__dev_a661ea93cc07a61ef208ab6f021f62907}}
  293. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!operator$<$$<$@{operator$<$$<$}}
  294. \index{operator$<$$<$@{operator$<$$<$}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  295. \subsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
  296. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  297. template$<$typename \+\_\+\+Src\+\_\+t $>$ \\
  298. \mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}}\& \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::operator$<$$<$ (\begin{DoxyParamCaption}\item[{\+\_\+\+Src\+\_\+t \&}]{src }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  299. Template operator$<$$<$ implementation for for all by value/ref parameters.
  300. \begin{DoxyParams}{Parameters}
  301. {\em src} & Reference to source data \\
  302. \hline
  303. \end{DoxyParams}
  304. \begin{DoxyReturn}{Returns}
  305. Reference to this device for chaining
  306. \end{DoxyReturn}
  307. Definition at line 198 of file idx\+\_\+dev.\+h.
  308. \mbox{\Hypertarget{classutl_1_1idx__dev_a4e5a520417e7defe7cec77c261a01b73}\label{classutl_1_1idx__dev_a4e5a520417e7defe7cec77c261a01b73}}
  309. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!operator$<$$<$@{operator$<$$<$}}
  310. \index{operator$<$$<$@{operator$<$$<$}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  311. \subsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
  312. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  313. template$<$typename \+\_\+\+Src\+\_\+t $>$ \\
  314. \mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}}\& \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::operator$<$$<$ (\begin{DoxyParamCaption}\item[{\+\_\+\+Src\+\_\+t $\ast$}]{src }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}}
  315. specialization to disallow pointer types as source
  316. \mbox{\Hypertarget{classutl_1_1idx__dev_ad1c24182de1432f4d43eaa69db7aaec7}\label{classutl_1_1idx__dev_ad1c24182de1432f4d43eaa69db7aaec7}}
  317. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!operator$<$$<$@{operator$<$$<$}}
  318. \index{operator$<$$<$@{operator$<$$<$}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  319. \subsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
  320. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  321. \mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}}\& \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::operator$<$$<$ (\begin{DoxyParamCaption}\item[{const data\+\_\+t \&}]{src }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  322. Overload for single data\+\_\+t object.
  323. Definition at line 209 of file idx\+\_\+dev.\+h.
  324. \mbox{\Hypertarget{classutl_1_1idx__dev_ac817369b5efb068d648328320a9cf6a4}\label{classutl_1_1idx__dev_ac817369b5efb068d648328320a9cf6a4}}
  325. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!operator=@{operator=}}
  326. \index{operator=@{operator=}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  327. \subsubsection{\texorpdfstring{operator=()}{operator=()}}
  328. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  329. \mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}}\& \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::operator= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}} \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [delete]}}
  330. No copy assignments \mbox{\Hypertarget{classutl_1_1idx__dev_a296be5211871773b2b8aa5409772ce6a}\label{classutl_1_1idx__dev_a296be5211871773b2b8aa5409772ce6a}}
  331. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!operator$>$$>$@{operator$>$$>$}}
  332. \index{operator$>$$>$@{operator$>$$>$}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  333. \subsubsection{\texorpdfstring{operator$>$$>$()}{operator>>()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
  334. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  335. template$<$typename \+\_\+\+Dst\+\_\+t $>$ \\
  336. \mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}}\& \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::operator$>$$>$ (\begin{DoxyParamCaption}\item[{\+\_\+\+Dst\+\_\+t \&}]{dst }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  337. Template operator$>$$>$ implementation for for all by value/ref parameters.
  338. \begin{DoxyParams}{Parameters}
  339. {\em dst} & Reference to destination \\
  340. \hline
  341. \end{DoxyParams}
  342. \begin{DoxyReturn}{Returns}
  343. Reference to this device for chaining
  344. \end{DoxyReturn}
  345. Definition at line 170 of file idx\+\_\+dev.\+h.
  346. \mbox{\Hypertarget{classutl_1_1idx__dev_af5822e3e77e2748a6eaf13b9381e0736}\label{classutl_1_1idx__dev_af5822e3e77e2748a6eaf13b9381e0736}}
  347. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!operator$>$$>$@{operator$>$$>$}}
  348. \index{operator$>$$>$@{operator$>$$>$}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  349. \subsubsection{\texorpdfstring{operator$>$$>$()}{operator>>()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
  350. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  351. template$<$typename \+\_\+\+Dst\+\_\+t $>$ \\
  352. \mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}}\& \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::operator$>$$>$ (\begin{DoxyParamCaption}\item[{\+\_\+\+Dst\+\_\+t $\ast$}]{dst }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}}
  353. Specialization to disallow pointer types as destination.
  354. \mbox{\Hypertarget{classutl_1_1idx__dev_a3480680f94fcb06f9ee8b2e5dcdb4dcd}\label{classutl_1_1idx__dev_a3480680f94fcb06f9ee8b2e5dcdb4dcd}}
  355. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!operator$>$$>$@{operator$>$$>$}}
  356. \index{operator$>$$>$@{operator$>$$>$}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  357. \subsubsection{\texorpdfstring{operator$>$$>$()}{operator>>()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
  358. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  359. \mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}}\& \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::operator$>$$>$ (\begin{DoxyParamCaption}\item[{data\+\_\+t \&}]{dst }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  360. Overload for single data\+\_\+t object.
  361. Definition at line 181 of file idx\+\_\+dev.\+h.
  362. \mbox{\Hypertarget{classutl_1_1idx__dev_a5e0d647ad1cc5533e4f70292d8793a9f}\label{classutl_1_1idx__dev_a5e0d647ad1cc5533e4f70292d8793a9f}}
  363. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!operator\mbox{[}\mbox{]}@{operator[]}}
  364. \index{operator\mbox{[}\mbox{]}@{operator[]}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  365. \subsubsection{\texorpdfstring{operator[]()}{operator[]()}}
  366. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  367. data\+\_\+t\& \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::operator\mbox{[}$\,$\mbox{]} (\begin{DoxyParamCaption}\item[{const idx\+\_\+t}]{idx }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  368. Definition at line 219 of file idx\+\_\+dev.\+h.
  369. \mbox{\Hypertarget{classutl_1_1idx__dev_af588d605d6968164cca3e348b5363613}\label{classutl_1_1idx__dev_af588d605d6968164cca3e348b5363613}}
  370. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!put@{put}}
  371. \index{put@{put}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  372. \subsubsection{\texorpdfstring{put()}{put()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
  373. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  374. \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::put (\begin{DoxyParamCaption}\item[{const data\+\_\+t \&}]{data, }\item[{idx\+\_\+t}]{cursor }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  375. Put interface. This function should send a single data\+\_\+t object to device.
  376. \begin{DoxyParams}{Parameters}
  377. {\em data} & The data to send \\
  378. \hline
  379. \end{DoxyParams}
  380. \begin{DoxyReturn}{Returns}
  381. The number of transmitted data items
  382. \end{DoxyReturn}
  383. \begin{DoxyNote}{Note}
  384. A successful call should return 1
  385. \end{DoxyNote}
  386. Definition at line 129 of file idx\+\_\+dev.\+h.
  387. \mbox{\Hypertarget{classutl_1_1idx__dev_a4d91ec798d3bf0da54467b4a394da839}\label{classutl_1_1idx__dev_a4d91ec798d3bf0da54467b4a394da839}}
  388. \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!put@{put}}
  389. \index{put@{put}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}}
  390. \subsubsection{\texorpdfstring{put()}{put()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
  391. {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\
  392. \mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}} \mbox{\hyperlink{classutl_1_1idx__dev}{utl\+::idx\+\_\+dev}}$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$\+::put (\begin{DoxyParamCaption}\item[{const data\+\_\+t $\ast$}]{data, }\item[{\mbox{\hyperlink{namespaceutl_a22cbecb50ee5c1032de66133e96cbac6}{size\+\_\+t}}}]{n, }\item[{idx\+\_\+t}]{cursor }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
  393. Put interface. This function should send a stream of data\+\_\+t objects to device.
  394. \begin{DoxyParams}{Parameters}
  395. {\em data} & Pointer to buffer indenting write to device. \\
  396. \hline
  397. {\em n} & The number of data of type data\+\_\+t to send \\
  398. \hline
  399. \end{DoxyParams}
  400. \begin{DoxyReturn}{Returns}
  401. The number of transmitted items.
  402. \end{DoxyReturn}
  403. Definition at line 141 of file idx\+\_\+dev.\+h.
  404. The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
  405. \item
  406. include/utl/dev/\mbox{\hyperlink{idx__dev_8h}{idx\+\_\+dev.\+h}}\end{DoxyCompactItemize}