Micro template library A library for building device drivers
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 

598 lines
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}