\hypertarget{classutl_1_1idx__dev}{}\section{utl\+:\+:idx\+\_\+dev$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$ Class Template Reference} \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 $>$}} Abstract base class for indexed devices. {\ttfamily \#include $<$idx\+\_\+dev.\+h$>$} \subsection*{Public Types} \begin{DoxyCompactItemize} \item using \mbox{\hyperlink{classutl_1_1idx__dev_a6cdcb1da82a0047d990ee6bce8b6c32b}{type}} = \mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}} \begin{DoxyCompactList}\small\item\em Export type as identity meta-\/function. \end{DoxyCompactList}\end{DoxyCompactItemize} \textbf{ }\par \begin{DoxyCompactItemize} \item using \mbox{\hyperlink{classutl_1_1idx__dev_ace7a74e439972658d6006f83371ee0ca}{data\+\_\+type}} = data\+\_\+t \begin{DoxyCompactList}\small\item\em Export types as index device concept demands. \end{DoxyCompactList}\item using \mbox{\hyperlink{classutl_1_1idx__dev_acf054246b0c7c8be0a676fc1cf2b090c}{pointer\+\_\+type}} = data\+\_\+t $\ast$ \item using \mbox{\hyperlink{classutl_1_1idx__dev_aa8055ff3787876f243710ff194c7b8d0}{idx\+\_\+type}} = idx\+\_\+t \end{DoxyCompactItemize} \subsection*{Public Member Functions} \begin{Indent}\textbf{ Public index device interface}\par \begin{DoxyCompactItemize} \item \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}}) \begin{DoxyCompactList}\small\item\em Get interface. This function should read a single data\+\_\+t object from device in blocking mode. \end{DoxyCompactList}\item \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}}) \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 \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}}) \begin{DoxyCompactList}\small\item\em Put interface. This function should send a single data\+\_\+t object to device. \end{DoxyCompactList}\item \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}}) \begin{DoxyCompactList}\small\item\em Put interface. This function should send a stream of data\+\_\+t objects to device. \end{DoxyCompactList}\item idx\+\_\+t \mbox{\hyperlink{classutl_1_1idx__dev_a5ec37ed1b09a484563e4ad21107ac5a5}{cursor}} () const \begin{DoxyCompactList}\small\item\em Return the current cursor position. \end{DoxyCompactList}\item idx\+\_\+t \mbox{\hyperlink{classutl_1_1idx__dev_ab49339f7ff0608ab460f0883224acb3c}{cursor}} (idx\+\_\+t idx) \begin{DoxyCompactList}\small\item\em Set the cursor position. \end{DoxyCompactList}\end{DoxyCompactItemize} \end{Indent} \begin{Indent}\textbf{ Stream operator $>$$>$ interface}\par \begin{DoxyCompactItemize} \item {\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) \begin{DoxyCompactList}\small\item\em Template operator$>$$>$ implementation for for all by value/ref parameters. \end{DoxyCompactList}\item {\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 \begin{DoxyCompactList}\small\item\em Specialization to disallow pointer types as destination. \end{DoxyCompactList}\item \mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1idx__dev_a3480680f94fcb06f9ee8b2e5dcdb4dcd}{operator$>$$>$}} (data\+\_\+t \&dst) \begin{DoxyCompactList}\small\item\em Overload for single data\+\_\+t object. \end{DoxyCompactList}\end{DoxyCompactItemize} \end{Indent} \begin{Indent}\textbf{ Stream operator$<$$<$ interface}\par \begin{DoxyCompactItemize} \item {\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) \begin{DoxyCompactList}\small\item\em Template operator$<$$<$ implementation for for all by value/ref parameters. \end{DoxyCompactList}\item {\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 \begin{DoxyCompactList}\small\item\em specialization to disallow pointer types as source \end{DoxyCompactList}\item \mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}} \& \mbox{\hyperlink{classutl_1_1idx__dev_ad1c24182de1432f4d43eaa69db7aaec7}{operator$<$$<$}} (const data\+\_\+t \&src) \begin{DoxyCompactList}\small\item\em Overload for single data\+\_\+t object. \end{DoxyCompactList}\end{DoxyCompactItemize} \end{Indent} \begin{Indent}\textbf{ Helper operators}\par \begin{DoxyCompactItemize} \item data\+\_\+t \& \mbox{\hyperlink{classutl_1_1idx__dev_a5e0d647ad1cc5533e4f70292d8793a9f}{operator\mbox{[}$\,$\mbox{]}}} (const idx\+\_\+t idx) \end{DoxyCompactItemize} \end{Indent} \textbf{ }\par \begin{DoxyCompactItemize} \item \mbox{\hyperlink{classutl_1_1idx__dev_a7aa9e9ecfa5035dba4c2f9ef9ec60c2a}{iterator}} \mbox{\hyperlink{classutl_1_1idx__dev_aae291a2bb6788f85aa543861ccdb51c5}{end}} () noexcept \item \mbox{\hyperlink{classutl_1_1idx__dev_afa0e264f696f45c5a1b663c7c868a510}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1idx__dev_ae1cf97364a8264b390b361fc6b54b389}{end}} () const noexcept \item \mbox{\hyperlink{classutl_1_1idx__dev_afa0e264f696f45c5a1b663c7c868a510}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1idx__dev_a6ee37538b456c4b53b0bd4b3757b5edf}{cend}} () const noexcept \end{DoxyCompactItemize} \subsection*{Protected Member Functions} \begin{Indent}\textbf{ Constructor / Destructor}\par \begin{DoxyCompactItemize} \item \mbox{\hyperlink{classutl_1_1idx__dev_ac7fc9b499b2c4b73769b68d10181b08b}{$\sim$idx\+\_\+dev}} ()=default \begin{DoxyCompactList}\small\item\em Allow destructor from derived only. \end{DoxyCompactList}\item \mbox{\hyperlink{classutl_1_1idx__dev_a90c6f576acb2a1ced3e973864d5d61b1}{idx\+\_\+dev}} ()=default \begin{DoxyCompactList}\small\item\em A default constructor from derived only. \end{DoxyCompactList}\item \mbox{\hyperlink{classutl_1_1idx__dev_a846e84b90848710336e2763c833eb8ec}{idx\+\_\+dev}} (const \mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}} \&)=delete \begin{DoxyCompactList}\small\item\em No copies. \end{DoxyCompactList}\item \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 \end{DoxyCompactItemize} \end{Indent} \subsection*{S\+T\+L-\/like Input iterator interface} \begin{DoxyCompactItemize} \item using \mbox{\hyperlink{classutl_1_1idx__dev_a7aa9e9ecfa5035dba4c2f9ef9ec60c2a}{iterator}} = idxdev\+\_\+it$<$ \mbox{\hyperlink{classutl_1_1idx__dev}{idx\+\_\+dev\+\_\+t}}, data\+\_\+t $\ast$, N $>$ \begin{DoxyCompactList}\small\item\em Iterator. \end{DoxyCompactList}\item 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 $>$ \begin{DoxyCompactList}\small\item\em Const iterator. \end{DoxyCompactList}\item \mbox{\hyperlink{classutl_1_1idx__dev_a7aa9e9ecfa5035dba4c2f9ef9ec60c2a}{iterator}} \mbox{\hyperlink{classutl_1_1idx__dev_a83b186ed15e9bbe1e5d53e3941d517a7}{begin}} () noexcept \begin{DoxyCompactList}\small\item\em .begin implementation \end{DoxyCompactList}\item \mbox{\hyperlink{classutl_1_1idx__dev_afa0e264f696f45c5a1b663c7c868a510}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1idx__dev_ad456ced43be8ab4fb9a66840afa030f7}{begin}} () const noexcept \item \mbox{\hyperlink{classutl_1_1idx__dev_afa0e264f696f45c5a1b663c7c868a510}{const\+\_\+iterator}} \mbox{\hyperlink{classutl_1_1idx__dev_a7550b4dbfea20c02f4600821bf36dc0c}{cbegin}} () const noexcept \end{DoxyCompactItemize} \subsection{Detailed Description} \subsubsection*{template$<$typename impl\+\_\+t, typename data\+\_\+t, typename idx\+\_\+t, size\+\_\+t N$>$\newline class utl\+::idx\+\_\+dev$<$ impl\+\_\+t, data\+\_\+t, idx\+\_\+t, N $>$} Abstract base class for indexed devices. Template base class for indexed (I/O) devices. using C\+R\+TP This class force a common interface for input, indexed (I/O) devices. By using this common interface the class implements \begin{DoxyItemize} \item Stream-\/like extracting and insertion operator \item Helper operators \item Input iterator \item Const input iterator to inherit to implementation. \end{DoxyItemize} \begin{DoxyParams}{Parameters} {\em impl\+\_\+t} & The C\+R\+TP type (the derived/implementation class typename). \\ \hline {\em data\+\_\+t} & The devices base type of data \\ \hline {\em idx\+\_\+t} & The type to use for indexing \\ \hline {\em streamsize} & The number of elements to indicate eos. \\ \hline \end{DoxyParams} Definition at line 56 of file idx\+\_\+dev.\+h. \subsection{Member Typedef Documentation} \mbox{\Hypertarget{classutl_1_1idx__dev_afa0e264f696f45c5a1b663c7c868a510}\label{classutl_1_1idx__dev_afa0e264f696f45c5a1b663c7c868a510}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!const\+\_\+iterator@{const\+\_\+iterator}} \index{const\+\_\+iterator@{const\+\_\+iterator}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{const\+\_\+iterator}{const\_iterator}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ 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$>$} Const iterator. Definition at line 231 of file idx\+\_\+dev.\+h. \mbox{\Hypertarget{classutl_1_1idx__dev_ace7a74e439972658d6006f83371ee0ca}\label{classutl_1_1idx__dev_ace7a74e439972658d6006f83371ee0ca}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!data\+\_\+type@{data\+\_\+type}} \index{data\+\_\+type@{data\+\_\+type}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{data\+\_\+type}{data\_type}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ 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} Export types as index device concept demands. Definition at line 62 of file idx\+\_\+dev.\+h. \mbox{\Hypertarget{classutl_1_1idx__dev_aa8055ff3787876f243710ff194c7b8d0}\label{classutl_1_1idx__dev_aa8055ff3787876f243710ff194c7b8d0}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!idx\+\_\+type@{idx\+\_\+type}} \index{idx\+\_\+type@{idx\+\_\+type}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{idx\+\_\+type}{idx\_type}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ 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} Definition at line 64 of file idx\+\_\+dev.\+h. \mbox{\Hypertarget{classutl_1_1idx__dev_a7aa9e9ecfa5035dba4c2f9ef9ec60c2a}\label{classutl_1_1idx__dev_a7aa9e9ecfa5035dba4c2f9ef9ec60c2a}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!iterator@{iterator}} \index{iterator@{iterator}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{iterator}{iterator}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ 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$>$} Iterator. Definition at line 230 of file idx\+\_\+dev.\+h. \mbox{\Hypertarget{classutl_1_1idx__dev_acf054246b0c7c8be0a676fc1cf2b090c}\label{classutl_1_1idx__dev_acf054246b0c7c8be0a676fc1cf2b090c}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!pointer\+\_\+type@{pointer\+\_\+type}} \index{pointer\+\_\+type@{pointer\+\_\+type}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{pointer\+\_\+type}{pointer\_type}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ 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$} Definition at line 63 of file idx\+\_\+dev.\+h. \mbox{\Hypertarget{classutl_1_1idx__dev_a6cdcb1da82a0047d990ee6bce8b6c32b}\label{classutl_1_1idx__dev_a6cdcb1da82a0047d990ee6bce8b6c32b}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!type@{type}} \index{type@{type}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{type}{type}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ 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}}} Export type as identity meta-\/function. Definition at line 66 of file idx\+\_\+dev.\+h. \subsection{Constructor \& Destructor Documentation} \mbox{\Hypertarget{classutl_1_1idx__dev_ac7fc9b499b2c4b73769b68d10181b08b}\label{classutl_1_1idx__dev_ac7fc9b499b2c4b73769b68d10181b08b}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!````~idx\+\_\+dev@{$\sim$idx\+\_\+dev}} \index{````~idx\+\_\+dev@{$\sim$idx\+\_\+dev}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{$\sim$idx\+\_\+dev()}{~idx\_dev()}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ \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]}} Allow destructor from derived only. \mbox{\Hypertarget{classutl_1_1idx__dev_a90c6f576acb2a1ced3e973864d5d61b1}\label{classutl_1_1idx__dev_a90c6f576acb2a1ced3e973864d5d61b1}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!idx\+\_\+dev@{idx\+\_\+dev}} \index{idx\+\_\+dev@{idx\+\_\+dev}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{idx\+\_\+dev()}{idx\_dev()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ \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]}} A default constructor from derived only. \mbox{\Hypertarget{classutl_1_1idx__dev_a846e84b90848710336e2763c833eb8ec}\label{classutl_1_1idx__dev_a846e84b90848710336e2763c833eb8ec}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!idx\+\_\+dev@{idx\+\_\+dev}} \index{idx\+\_\+dev@{idx\+\_\+dev}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{idx\+\_\+dev()}{idx\_dev()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ \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]}} No copies. \subsection{Member Function Documentation} \mbox{\Hypertarget{classutl_1_1idx__dev_a83b186ed15e9bbe1e5d53e3941d517a7}\label{classutl_1_1idx__dev_a83b186ed15e9bbe1e5d53e3941d517a7}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!begin@{begin}} \index{begin@{begin}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{begin()}{begin()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ \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]}} .begin implementation Definition at line 234 of file idx\+\_\+dev.\+h. \mbox{\Hypertarget{classutl_1_1idx__dev_ad456ced43be8ab4fb9a66840afa030f7}\label{classutl_1_1idx__dev_ad456ced43be8ab4fb9a66840afa030f7}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!begin@{begin}} \index{begin@{begin}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{begin()}{begin()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ \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]}} Definition at line 235 of file idx\+\_\+dev.\+h. \mbox{\Hypertarget{classutl_1_1idx__dev_a7550b4dbfea20c02f4600821bf36dc0c}\label{classutl_1_1idx__dev_a7550b4dbfea20c02f4600821bf36dc0c}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!cbegin@{cbegin}} \index{cbegin@{cbegin}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{cbegin()}{cbegin()}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ \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]}} Definition at line 236 of file idx\+\_\+dev.\+h. \mbox{\Hypertarget{classutl_1_1idx__dev_a6ee37538b456c4b53b0bd4b3757b5edf}\label{classutl_1_1idx__dev_a6ee37538b456c4b53b0bd4b3757b5edf}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!cend@{cend}} \index{cend@{cend}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{cend()}{cend()}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ \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]}} Definition at line 241 of file idx\+\_\+dev.\+h. \mbox{\Hypertarget{classutl_1_1idx__dev_a5ec37ed1b09a484563e4ad21107ac5a5}\label{classutl_1_1idx__dev_a5ec37ed1b09a484563e4ad21107ac5a5}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!cursor@{cursor}} \index{cursor@{cursor}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{cursor()}{cursor()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ 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]}} Return the current cursor position. Definition at line 149 of file idx\+\_\+dev.\+h. \mbox{\Hypertarget{classutl_1_1idx__dev_ab49339f7ff0608ab460f0883224acb3c}\label{classutl_1_1idx__dev_ab49339f7ff0608ab460f0883224acb3c}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!cursor@{cursor}} \index{cursor@{cursor}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{cursor()}{cursor()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ 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]}} Set the cursor position. \begin{DoxyParams}{Parameters} {\em idx} & Cursor address to set \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} The current cursor \end{DoxyReturn} Definition at line 156 of file idx\+\_\+dev.\+h. \mbox{\Hypertarget{classutl_1_1idx__dev_aae291a2bb6788f85aa543861ccdb51c5}\label{classutl_1_1idx__dev_aae291a2bb6788f85aa543861ccdb51c5}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!end@{end}} \index{end@{end}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{end()}{end()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ \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]}} .end implementation Definition at line 239 of file idx\+\_\+dev.\+h. \mbox{\Hypertarget{classutl_1_1idx__dev_ae1cf97364a8264b390b361fc6b54b389}\label{classutl_1_1idx__dev_ae1cf97364a8264b390b361fc6b54b389}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!end@{end}} \index{end@{end}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{end()}{end()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ \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]}} Definition at line 240 of file idx\+\_\+dev.\+h. \mbox{\Hypertarget{classutl_1_1idx__dev_a04f9404d7741c3c6ac421c530dfe867c}\label{classutl_1_1idx__dev_a04f9404d7741c3c6ac421c530dfe867c}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!get@{get}} \index{get@{get}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{get()}{get()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ \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]}} Get interface. This function should read a single data\+\_\+t object from device in blocking mode. \begin{DoxyParams}{Parameters} {\em data} & Reference to data output from device. \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} Number of data read from device \end{DoxyReturn} \begin{DoxyNote}{Note} A successful call should return 1 \end{DoxyNote} Definition at line 104 of file idx\+\_\+dev.\+h. \mbox{\Hypertarget{classutl_1_1idx__dev_aeef118cb863218cb2b5a1e8bb2dba600}\label{classutl_1_1idx__dev_aeef118cb863218cb2b5a1e8bb2dba600}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!get@{get}} \index{get@{get}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{get()}{get()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ \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]}} Old stile get functionality using free standing data\+\_\+t$\ast$. This function should return a stream of data from device. \begin{DoxyParams}{Parameters} {\em data} & Pointer to buffer to write the data from device. \\ \hline {\em n} & The number of data of type data\+\_\+t to read \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} The read data items. \end{DoxyReturn} Definition at line 116 of file idx\+\_\+dev.\+h. \mbox{\Hypertarget{classutl_1_1idx__dev_a661ea93cc07a61ef208ab6f021f62907}\label{classutl_1_1idx__dev_a661ea93cc07a61ef208ab6f021f62907}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!operator$<$$<$@{operator$<$$<$}} \index{operator$<$$<$@{operator$<$$<$}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ template$<$typename \+\_\+\+Src\+\_\+t $>$ \\ \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]}} Template operator$<$$<$ implementation for for all by value/ref parameters. \begin{DoxyParams}{Parameters} {\em src} & Reference to source data \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} Reference to this device for chaining \end{DoxyReturn} Definition at line 198 of file idx\+\_\+dev.\+h. \mbox{\Hypertarget{classutl_1_1idx__dev_a4e5a520417e7defe7cec77c261a01b73}\label{classutl_1_1idx__dev_a4e5a520417e7defe7cec77c261a01b73}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!operator$<$$<$@{operator$<$$<$}} \index{operator$<$$<$@{operator$<$$<$}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ template$<$typename \+\_\+\+Src\+\_\+t $>$ \\ \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]}} specialization to disallow pointer types as source \mbox{\Hypertarget{classutl_1_1idx__dev_ad1c24182de1432f4d43eaa69db7aaec7}\label{classutl_1_1idx__dev_ad1c24182de1432f4d43eaa69db7aaec7}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!operator$<$$<$@{operator$<$$<$}} \index{operator$<$$<$@{operator$<$$<$}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ \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]}} Overload for single data\+\_\+t object. Definition at line 209 of file idx\+\_\+dev.\+h. \mbox{\Hypertarget{classutl_1_1idx__dev_ac817369b5efb068d648328320a9cf6a4}\label{classutl_1_1idx__dev_ac817369b5efb068d648328320a9cf6a4}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!operator=@{operator=}} \index{operator=@{operator=}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{operator=()}{operator=()}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ \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]}} No copy assignments \mbox{\Hypertarget{classutl_1_1idx__dev_a296be5211871773b2b8aa5409772ce6a}\label{classutl_1_1idx__dev_a296be5211871773b2b8aa5409772ce6a}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!operator$>$$>$@{operator$>$$>$}} \index{operator$>$$>$@{operator$>$$>$}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{operator$>$$>$()}{operator>>()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ template$<$typename \+\_\+\+Dst\+\_\+t $>$ \\ \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]}} Template operator$>$$>$ implementation for for all by value/ref parameters. \begin{DoxyParams}{Parameters} {\em dst} & Reference to destination \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} Reference to this device for chaining \end{DoxyReturn} Definition at line 170 of file idx\+\_\+dev.\+h. \mbox{\Hypertarget{classutl_1_1idx__dev_af5822e3e77e2748a6eaf13b9381e0736}\label{classutl_1_1idx__dev_af5822e3e77e2748a6eaf13b9381e0736}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!operator$>$$>$@{operator$>$$>$}} \index{operator$>$$>$@{operator$>$$>$}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{operator$>$$>$()}{operator>>()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ template$<$typename \+\_\+\+Dst\+\_\+t $>$ \\ \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]}} Specialization to disallow pointer types as destination. \mbox{\Hypertarget{classutl_1_1idx__dev_a3480680f94fcb06f9ee8b2e5dcdb4dcd}\label{classutl_1_1idx__dev_a3480680f94fcb06f9ee8b2e5dcdb4dcd}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!operator$>$$>$@{operator$>$$>$}} \index{operator$>$$>$@{operator$>$$>$}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{operator$>$$>$()}{operator>>()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ \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]}} Overload for single data\+\_\+t object. Definition at line 181 of file idx\+\_\+dev.\+h. \mbox{\Hypertarget{classutl_1_1idx__dev_a5e0d647ad1cc5533e4f70292d8793a9f}\label{classutl_1_1idx__dev_a5e0d647ad1cc5533e4f70292d8793a9f}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!operator\mbox{[}\mbox{]}@{operator[]}} \index{operator\mbox{[}\mbox{]}@{operator[]}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{operator[]()}{operator[]()}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ 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]}} Definition at line 219 of file idx\+\_\+dev.\+h. \mbox{\Hypertarget{classutl_1_1idx__dev_af588d605d6968164cca3e348b5363613}\label{classutl_1_1idx__dev_af588d605d6968164cca3e348b5363613}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!put@{put}} \index{put@{put}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{put()}{put()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ \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]}} Put interface. This function should send a single data\+\_\+t object to device. \begin{DoxyParams}{Parameters} {\em data} & The data to send \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} The number of transmitted data items \end{DoxyReturn} \begin{DoxyNote}{Note} A successful call should return 1 \end{DoxyNote} Definition at line 129 of file idx\+\_\+dev.\+h. \mbox{\Hypertarget{classutl_1_1idx__dev_a4d91ec798d3bf0da54467b4a394da839}\label{classutl_1_1idx__dev_a4d91ec798d3bf0da54467b4a394da839}} \index{utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}!put@{put}} \index{put@{put}!utl\+::idx\+\_\+dev@{utl\+::idx\+\_\+dev}} \subsubsection{\texorpdfstring{put()}{put()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} {\footnotesize\ttfamily template$<$typename impl\+\_\+t , typename data\+\_\+t , typename idx\+\_\+t , size\+\_\+t N$>$ \\ \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]}} Put interface. This function should send a stream of data\+\_\+t objects to device. \begin{DoxyParams}{Parameters} {\em data} & Pointer to buffer indenting write to device. \\ \hline {\em n} & The number of data of type data\+\_\+t to send \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} The number of transmitted items. \end{DoxyReturn} Definition at line 141 of file idx\+\_\+dev.\+h. The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} \item include/utl/dev/\mbox{\hyperlink{idx__dev_8h}{idx\+\_\+dev.\+h}}\end{DoxyCompactItemize}