\hypertarget{group__ha}{\section{Handler Array Interface}
\label{group__ha}\index{Handler Array Interface@{Handler Array Interface}}
}


Using this interface you can setup a handler array for reading traces.  


\subsection*{Files}
\begin{DoxyCompactItemize}
\item 
file \hyperlink{OTF__HandlerArray_8h}{O\+T\+F\+\_\+\+Handler\+Array.\+h}
\begin{DoxyCompactList}\small\item\em Provides read access to O\+T\+F traces which consist of multiple streams. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef int( \hyperlink{group__ha_gab82e91b18ea38538fcc52af1b5c894e1}{O\+T\+F\+\_\+\+Function\+Pointer} )(void $\ast$user\+Data)
\begin{DoxyCompactList}\small\item\em Generic function pointer for O\+T\+F record handlers. \end{DoxyCompactList}\item 
typedef struct \\*
\hyperlink{structstruct__OTF__HandlerArray}{struct\+\_\+\+O\+T\+F\+\_\+\+Handler\+Array} \hyperlink{group__ha_ga25c9228aeaddda3577266eab8a986b27}{O\+T\+F\+\_\+\+Handler\+Array}
\begin{DoxyCompactList}\small\item\em Object type which holds O\+T\+F record handlers. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__ha_ga25c9228aeaddda3577266eab8a986b27}{O\+T\+F\+\_\+\+Handler\+Array} $\ast$ \hyperlink{group__ha_ga7a735836565a79674f38e08caf20698f}{O\+T\+F\+\_\+\+Handler\+Array\+\_\+open} (void)
\begin{DoxyCompactList}\small\item\em Open a new array of handlers. \end{DoxyCompactList}\item 
int \hyperlink{group__ha_gab5a17464f32f6b9ddaf0cf6984f953db}{O\+T\+F\+\_\+\+Handler\+Array\+\_\+close} (\hyperlink{group__ha_ga25c9228aeaddda3577266eab8a986b27}{O\+T\+F\+\_\+\+Handler\+Array} $\ast$handlers)
\begin{DoxyCompactList}\small\item\em Close and delete a O\+T\+F\+\_\+\+Handler\+Array object. \end{DoxyCompactList}\item 
int \hyperlink{group__ha_ga2f7ab5597bfbaa182d4cf471dc28f1da}{O\+T\+F\+\_\+\+Handler\+Array\+\_\+set\+Handler} (\hyperlink{group__ha_ga25c9228aeaddda3577266eab8a986b27}{O\+T\+F\+\_\+\+Handler\+Array} $\ast$handlers, \hyperlink{group__ha_gab82e91b18ea38538fcc52af1b5c894e1}{O\+T\+F\+\_\+\+Function\+Pointer} $\ast$pointer, uint32\+\_\+t recordtype)
\begin{DoxyCompactList}\small\item\em Assign the function pointer to your own handler of the given record type. \end{DoxyCompactList}\item 
\hypertarget{group__ha_ga65c9d10752139ca29dedd1baeebc146e}{int \hyperlink{group__ha_ga65c9d10752139ca29dedd1baeebc146e}{O\+T\+F\+\_\+\+Handler\+Array\+\_\+set\+First\+Handler\+Arg} (\hyperlink{group__ha_ga25c9228aeaddda3577266eab8a986b27}{O\+T\+F\+\_\+\+Handler\+Array} $\ast$handlers, void $\ast$firsthandlerarg, uint32\+\_\+t recordtype)}\label{group__ha_ga65c9d10752139ca29dedd1baeebc146e}

\begin{DoxyCompactList}\small\item\em Assign the first argument to your own handler of the given record type. \end{DoxyCompactList}\item 
int \hyperlink{group__ha_ga788faa7799ee26765cbfc21d35ca06c9}{O\+T\+F\+\_\+\+Handler\+Array\+\_\+get\+Copy\+Handler} (\hyperlink{group__ha_ga25c9228aeaddda3577266eab8a986b27}{O\+T\+F\+\_\+\+Handler\+Array} $\ast$handlers, \hyperlink{group__writer_ga9650309d1e145dbd60f61e954f11c279}{O\+T\+F\+\_\+\+Writer} $\ast$writer)
\begin{DoxyCompactList}\small\item\em Provide copy handlers to every record type. \end{DoxyCompactList}\item 
int \hyperlink{group__ha_gac641bef3e2fcd3bfd500776b69b160b6}{O\+T\+F\+\_\+\+Handler\+Array\+\_\+get\+Copy\+Handler\+\_\+stream} (\hyperlink{group__ha_ga25c9228aeaddda3577266eab8a986b27}{O\+T\+F\+\_\+\+Handler\+Array} $\ast$handlers, \hyperlink{group__wstream_ga1e0f8485efbcb0d39ebfbb9e1a657ed4}{O\+T\+F\+\_\+\+W\+Stream} $\ast$writer)
\begin{DoxyCompactList}\small\item\em Provide copy handlers to every record type for O\+T\+F streams. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Using this interface you can setup a handler array for reading traces. 



\subsection{Typedef Documentation}
\hypertarget{group__ha_gab82e91b18ea38538fcc52af1b5c894e1}{\index{Handler Array Interface@{Handler Array Interface}!O\+T\+F\+\_\+\+Function\+Pointer@{O\+T\+F\+\_\+\+Function\+Pointer}}
\index{O\+T\+F\+\_\+\+Function\+Pointer@{O\+T\+F\+\_\+\+Function\+Pointer}!Handler Array Interface@{Handler Array Interface}}
\subsubsection[{O\+T\+F\+\_\+\+Function\+Pointer}]{\setlength{\rightskip}{0pt plus 5cm}typedef int( O\+T\+F\+\_\+\+Function\+Pointer)(void $\ast$user\+Data)}}\label{group__ha_gab82e91b18ea38538fcc52af1b5c894e1}


Generic function pointer for O\+T\+F record handlers. 

\hypertarget{group__ha_ga25c9228aeaddda3577266eab8a986b27}{\index{Handler Array Interface@{Handler Array Interface}!O\+T\+F\+\_\+\+Handler\+Array@{O\+T\+F\+\_\+\+Handler\+Array}}
\index{O\+T\+F\+\_\+\+Handler\+Array@{O\+T\+F\+\_\+\+Handler\+Array}!Handler Array Interface@{Handler Array Interface}}
\subsubsection[{O\+T\+F\+\_\+\+Handler\+Array}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf struct\+\_\+\+O\+T\+F\+\_\+\+Handler\+Array} {\bf O\+T\+F\+\_\+\+Handler\+Array}}}\label{group__ha_ga25c9228aeaddda3577266eab8a986b27}


Object type which holds O\+T\+F record handlers. 



\subsection{Function Documentation}
\hypertarget{group__ha_gab5a17464f32f6b9ddaf0cf6984f953db}{\index{Handler Array Interface@{Handler Array Interface}!O\+T\+F\+\_\+\+Handler\+Array\+\_\+close@{O\+T\+F\+\_\+\+Handler\+Array\+\_\+close}}
\index{O\+T\+F\+\_\+\+Handler\+Array\+\_\+close@{O\+T\+F\+\_\+\+Handler\+Array\+\_\+close}!Handler Array Interface@{Handler Array Interface}}
\subsubsection[{O\+T\+F\+\_\+\+Handler\+Array\+\_\+close}]{\setlength{\rightskip}{0pt plus 5cm}int O\+T\+F\+\_\+\+Handler\+Array\+\_\+close (
\begin{DoxyParamCaption}
\item[{{\bf O\+T\+F\+\_\+\+Handler\+Array} $\ast$}]{handlers}
\end{DoxyParamCaption}
)}}\label{group__ha_gab5a17464f32f6b9ddaf0cf6984f953db}


Close and delete a O\+T\+F\+\_\+\+Handler\+Array object. 

\hypertarget{group__ha_ga788faa7799ee26765cbfc21d35ca06c9}{\index{Handler Array Interface@{Handler Array Interface}!O\+T\+F\+\_\+\+Handler\+Array\+\_\+get\+Copy\+Handler@{O\+T\+F\+\_\+\+Handler\+Array\+\_\+get\+Copy\+Handler}}
\index{O\+T\+F\+\_\+\+Handler\+Array\+\_\+get\+Copy\+Handler@{O\+T\+F\+\_\+\+Handler\+Array\+\_\+get\+Copy\+Handler}!Handler Array Interface@{Handler Array Interface}}
\subsubsection[{O\+T\+F\+\_\+\+Handler\+Array\+\_\+get\+Copy\+Handler}]{\setlength{\rightskip}{0pt plus 5cm}int O\+T\+F\+\_\+\+Handler\+Array\+\_\+get\+Copy\+Handler (
\begin{DoxyParamCaption}
\item[{{\bf O\+T\+F\+\_\+\+Handler\+Array} $\ast$}]{handlers, }
\item[{{\bf O\+T\+F\+\_\+\+Writer} $\ast$}]{writer}
\end{DoxyParamCaption}
)}}\label{group__ha_ga788faa7799ee26765cbfc21d35ca06c9}


Provide copy handlers to every record type. 



References O\+T\+F\+\_\+\+Handler\+Array\+\_\+set\+First\+Handler\+Arg(), and O\+T\+F\+\_\+\+Handler\+Array\+\_\+set\+Handler().

\hypertarget{group__ha_gac641bef3e2fcd3bfd500776b69b160b6}{\index{Handler Array Interface@{Handler Array Interface}!O\+T\+F\+\_\+\+Handler\+Array\+\_\+get\+Copy\+Handler\+\_\+stream@{O\+T\+F\+\_\+\+Handler\+Array\+\_\+get\+Copy\+Handler\+\_\+stream}}
\index{O\+T\+F\+\_\+\+Handler\+Array\+\_\+get\+Copy\+Handler\+\_\+stream@{O\+T\+F\+\_\+\+Handler\+Array\+\_\+get\+Copy\+Handler\+\_\+stream}!Handler Array Interface@{Handler Array Interface}}
\subsubsection[{O\+T\+F\+\_\+\+Handler\+Array\+\_\+get\+Copy\+Handler\+\_\+stream}]{\setlength{\rightskip}{0pt plus 5cm}int O\+T\+F\+\_\+\+Handler\+Array\+\_\+get\+Copy\+Handler\+\_\+stream (
\begin{DoxyParamCaption}
\item[{{\bf O\+T\+F\+\_\+\+Handler\+Array} $\ast$}]{handlers, }
\item[{{\bf O\+T\+F\+\_\+\+W\+Stream} $\ast$}]{writer}
\end{DoxyParamCaption}
)}}\label{group__ha_gac641bef3e2fcd3bfd500776b69b160b6}


Provide copy handlers to every record type for O\+T\+F streams. 



References O\+T\+F\+\_\+\+Handler\+Array\+\_\+set\+First\+Handler\+Arg(), and O\+T\+F\+\_\+\+Handler\+Array\+\_\+set\+Handler().

\hypertarget{group__ha_ga7a735836565a79674f38e08caf20698f}{\index{Handler Array Interface@{Handler Array Interface}!O\+T\+F\+\_\+\+Handler\+Array\+\_\+open@{O\+T\+F\+\_\+\+Handler\+Array\+\_\+open}}
\index{O\+T\+F\+\_\+\+Handler\+Array\+\_\+open@{O\+T\+F\+\_\+\+Handler\+Array\+\_\+open}!Handler Array Interface@{Handler Array Interface}}
\subsubsection[{O\+T\+F\+\_\+\+Handler\+Array\+\_\+open}]{\setlength{\rightskip}{0pt plus 5cm}{\bf O\+T\+F\+\_\+\+Handler\+Array}$\ast$ O\+T\+F\+\_\+\+Handler\+Array\+\_\+open (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}\label{group__ha_ga7a735836565a79674f38e08caf20698f}


Open a new array of handlers. 



References struct\+\_\+\+O\+T\+F\+\_\+\+Handler\+Array\+::firsthandlerarg, and struct\+\_\+\+O\+T\+F\+\_\+\+Handler\+Array\+::pointer.

\hypertarget{group__ha_ga2f7ab5597bfbaa182d4cf471dc28f1da}{\index{Handler Array Interface@{Handler Array Interface}!O\+T\+F\+\_\+\+Handler\+Array\+\_\+set\+Handler@{O\+T\+F\+\_\+\+Handler\+Array\+\_\+set\+Handler}}
\index{O\+T\+F\+\_\+\+Handler\+Array\+\_\+set\+Handler@{O\+T\+F\+\_\+\+Handler\+Array\+\_\+set\+Handler}!Handler Array Interface@{Handler Array Interface}}
\subsubsection[{O\+T\+F\+\_\+\+Handler\+Array\+\_\+set\+Handler}]{\setlength{\rightskip}{0pt plus 5cm}int O\+T\+F\+\_\+\+Handler\+Array\+\_\+set\+Handler (
\begin{DoxyParamCaption}
\item[{{\bf O\+T\+F\+\_\+\+Handler\+Array} $\ast$}]{handlers, }
\item[{{\bf O\+T\+F\+\_\+\+Function\+Pointer} $\ast$}]{pointer, }
\item[{uint32\+\_\+t}]{recordtype}
\end{DoxyParamCaption}
)}}\label{group__ha_ga2f7ab5597bfbaa182d4cf471dc28f1da}


Assign the function pointer to your own handler of the given record type. 



References struct\+\_\+\+O\+T\+F\+\_\+\+Handler\+Array\+::pointer.



Referenced by O\+T\+F\+\_\+\+Handler\+Array\+\_\+get\+Copy\+Handler(), and O\+T\+F\+\_\+\+Handler\+Array\+\_\+get\+Copy\+Handler\+\_\+stream().

