\hypertarget{group__thumbnail}{\section{Module for thumbnail generation.}
\label{group__thumbnail}\index{Module for thumbnail generation.@{Module for thumbnail generation.}}
}


\+:  


\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structOTFAUX__Thumbnail__Data}{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Data}
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \\*
\hyperlink{structOTFAUX__Thumbnail__Context}{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Context} \hyperlink{group__thumbnail_gac48a7d4567854d8d86ed7ebe5fde6f00}{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Context}
\begin{DoxyCompactList}\small\item\em Opaque type for using the thumbnail module. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{structOTFAUX__Thumbnail__Context}{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Context} $\ast$ \hyperlink{group__thumbnail_gaefc772fdbf1be77bd77a1fb709154f5e}{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+create} (uint64\+\_\+t min\+Time, uint64\+\_\+t max\+Time, uint32\+\_\+t width)
\begin{DoxyCompactList}\small\item\em Create a context for thumbnail generation. \end{DoxyCompactList}\item 
void \hyperlink{group__thumbnail_ga6edc88607e8cd3bc9272e06de0934675}{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+destroy} (\hyperlink{structOTFAUX__Thumbnail__Context}{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Context} $\ast$tn\+\_\+context)
\begin{DoxyCompactList}\small\item\em Destroy a context previously created with {\itshape O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Create}. \end{DoxyCompactList}\item 
void \hyperlink{group__thumbnail_gac294d9452aca774c0c1b64331417d39e}{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+declare\+Process} (\hyperlink{structOTFAUX__Thumbnail__Context}{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Context} $\ast$tn\+\_\+context, uint64\+\_\+t process)
\begin{DoxyCompactList}\small\item\em Declares that the process {\itshape process} should be handled by this context. \end{DoxyCompactList}\item 
void \hyperlink{group__thumbnail_ga70a17731de7734e5b0aa6f97c24a6e8a}{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+handle\+Enter} (\hyperlink{structOTFAUX__Thumbnail__Context}{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Context} $\ast$tn\+\_\+context, uint64\+\_\+t timestamp, uint64\+\_\+t process, uint32\+\_\+t function)
\begin{DoxyCompactList}\small\item\em Declare that the process {\itshape process} has entered the fucntion {\itshape function} at timestamp {\itshape timestamp}. \end{DoxyCompactList}\item 
void \hyperlink{group__thumbnail_ga8666aecd64d494d66d593bc269b8a96b}{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+handle\+Leave} (\hyperlink{structOTFAUX__Thumbnail__Context}{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Context} $\ast$tn\+\_\+context, uint64\+\_\+t timestamp, uint64\+\_\+t process)
\begin{DoxyCompactList}\small\item\em Declare that the process {\itshape process} has left the current fucntion at timestamp {\itshape timestamp}. \end{DoxyCompactList}\item 
uint32\+\_\+t \hyperlink{group__thumbnail_gaa2394913941be684af847aac7440f80a}{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+get\+Size} (\hyperlink{structOTFAUX__Thumbnail__Context}{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Context} $\ast$context, uint64\+\_\+t process)
\begin{DoxyCompactList}\small\item\em Get the number of entries for the process {\itshape process}. \end{DoxyCompactList}\item 
int \hyperlink{group__thumbnail_ga5f6206e1b5c6198ae845e1b0bb5656fc}{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+get\+Data} (\hyperlink{structOTFAUX__Thumbnail__Context}{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Context} $\ast$context, uint64\+\_\+t process, \hyperlink{structOTFAUX__Thumbnail__Data}{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Data} $\ast$data)
\begin{DoxyCompactList}\small\item\em Get the collected thumbnail data for process {\itshape process}. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
\+: 

ctx = O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Create(min\+Time, max\+Time, 1024);

announce all interesting processes\+: O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+declare\+Process(ctx, ...);

repeatedly call for interesting processes\+: O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+handle\+Enter(ctx, ...); O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+handle\+Leave(ctx, ...);

at end, for all processes\+: O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+Data td; O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+get\+Data(ctx, process, \&td); .. do something with td.\+start\+\_\+pixel and td.\+function ..

O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Destroy(ctx); 

\subsection{Typedef Documentation}
\hypertarget{group__thumbnail_gac48a7d4567854d8d86ed7ebe5fde6f00}{\index{Module for thumbnail generation.@{Module for thumbnail generation.}!O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Context@{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Context}}
\index{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Context@{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Context}!Module for thumbnail generation.@{Module for thumbnail generation.}}
\subsubsection[{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Context}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Context} {\bf O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Context}}}\label{group__thumbnail_gac48a7d4567854d8d86ed7ebe5fde6f00}


Opaque type for using the thumbnail module. 



\subsection{Function Documentation}
\hypertarget{group__thumbnail_gaefc772fdbf1be77bd77a1fb709154f5e}{\index{Module for thumbnail generation.@{Module for thumbnail generation.}!O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+create@{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+create}}
\index{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+create@{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+create}!Module for thumbnail generation.@{Module for thumbnail generation.}}
\subsubsection[{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+create}]{\setlength{\rightskip}{0pt plus 5cm}{\bf O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Context}$\ast$ O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+create (
\begin{DoxyParamCaption}
\item[{uint64\+\_\+t}]{min\+Time, }
\item[{uint64\+\_\+t}]{max\+Time, }
\item[{uint32\+\_\+t}]{width}
\end{DoxyParamCaption}
)}}\label{group__thumbnail_gaefc772fdbf1be77bd77a1fb709154f5e}


Create a context for thumbnail generation. 


\begin{DoxyParams}{Parameters}
{\em min\+Time} & Minimum timestamp of the trace file. \\
\hline
{\em max\+Time} & Maximum timestamp of the trace file. \\
\hline
{\em width} & The width in pixels of the thumbnail.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The context. 
\end{DoxyReturn}
\hypertarget{group__thumbnail_gac294d9452aca774c0c1b64331417d39e}{\index{Module for thumbnail generation.@{Module for thumbnail generation.}!O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+declare\+Process@{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+declare\+Process}}
\index{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+declare\+Process@{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+declare\+Process}!Module for thumbnail generation.@{Module for thumbnail generation.}}
\subsubsection[{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+declare\+Process}]{\setlength{\rightskip}{0pt plus 5cm}void O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+declare\+Process (
\begin{DoxyParamCaption}
\item[{{\bf O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Context} $\ast$}]{tn\+\_\+context, }
\item[{uint64\+\_\+t}]{process}
\end{DoxyParamCaption}
)}}\label{group__thumbnail_gac294d9452aca774c0c1b64331417d39e}


Declares that the process {\itshape process} should be handled by this context. 


\begin{DoxyParams}{Parameters}
{\em tn\+\_\+context} & The context. \\
\hline
\end{DoxyParams}
\hypertarget{group__thumbnail_ga6edc88607e8cd3bc9272e06de0934675}{\index{Module for thumbnail generation.@{Module for thumbnail generation.}!O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+destroy@{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+destroy}}
\index{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+destroy@{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+destroy}!Module for thumbnail generation.@{Module for thumbnail generation.}}
\subsubsection[{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+destroy}]{\setlength{\rightskip}{0pt plus 5cm}void O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+destroy (
\begin{DoxyParamCaption}
\item[{{\bf O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Context} $\ast$}]{tn\+\_\+context}
\end{DoxyParamCaption}
)}}\label{group__thumbnail_ga6edc88607e8cd3bc9272e06de0934675}


Destroy a context previously created with {\itshape O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Create}. 


\begin{DoxyParams}{Parameters}
{\em tn\+\_\+context} & The context. \\
\hline
\end{DoxyParams}


References O\+T\+F\+A\+U\+X\+\_\+\+Thumbail\+\_\+\+Process\+::function\+\_\+stack, O\+T\+F\+A\+U\+X\+\_\+\+Thumbail\+\_\+\+Process\+::next, and O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Context\+::processes.

\hypertarget{group__thumbnail_ga5f6206e1b5c6198ae845e1b0bb5656fc}{\index{Module for thumbnail generation.@{Module for thumbnail generation.}!O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+get\+Data@{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+get\+Data}}
\index{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+get\+Data@{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+get\+Data}!Module for thumbnail generation.@{Module for thumbnail generation.}}
\subsubsection[{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+get\+Data}]{\setlength{\rightskip}{0pt plus 5cm}int O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+get\+Data (
\begin{DoxyParamCaption}
\item[{{\bf O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Context} $\ast$}]{context, }
\item[{uint64\+\_\+t}]{process, }
\item[{{\bf O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Data} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{group__thumbnail_ga5f6206e1b5c6198ae845e1b0bb5656fc}


Get the collected thumbnail data for process {\itshape process}. 


\begin{DoxyParams}{Parameters}
{\em tn\+\_\+context} & The context. \\
\hline
{\em process} & The process. \\
\hline
{\em data} & Pointer to storage where the data will be stored into. \\
\hline
{\em size} & Pointer to storage where the size will be stored into.\\
\hline
{\em 1} & on success. \\
\hline
\end{DoxyParams}
\hypertarget{group__thumbnail_gaa2394913941be684af847aac7440f80a}{\index{Module for thumbnail generation.@{Module for thumbnail generation.}!O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+get\+Size@{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+get\+Size}}
\index{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+get\+Size@{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+get\+Size}!Module for thumbnail generation.@{Module for thumbnail generation.}}
\subsubsection[{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+get\+Size}]{\setlength{\rightskip}{0pt plus 5cm}uint32\+\_\+t O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+get\+Size (
\begin{DoxyParamCaption}
\item[{{\bf O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Context} $\ast$}]{context, }
\item[{uint64\+\_\+t}]{process}
\end{DoxyParamCaption}
)}}\label{group__thumbnail_gaa2394913941be684af847aac7440f80a}


Get the number of entries for the process {\itshape process}. 


\begin{DoxyParams}{Parameters}
{\em tn\+\_\+context} & The context.\\
\hline
{\em The} & size. \\
\hline
\end{DoxyParams}
\hypertarget{group__thumbnail_ga70a17731de7734e5b0aa6f97c24a6e8a}{\index{Module for thumbnail generation.@{Module for thumbnail generation.}!O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+handle\+Enter@{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+handle\+Enter}}
\index{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+handle\+Enter@{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+handle\+Enter}!Module for thumbnail generation.@{Module for thumbnail generation.}}
\subsubsection[{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+handle\+Enter}]{\setlength{\rightskip}{0pt plus 5cm}void O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+handle\+Enter (
\begin{DoxyParamCaption}
\item[{{\bf O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Context} $\ast$}]{tn\+\_\+context, }
\item[{uint64\+\_\+t}]{timestamp, }
\item[{uint64\+\_\+t}]{process, }
\item[{uint32\+\_\+t}]{function}
\end{DoxyParamCaption}
)}}\label{group__thumbnail_ga70a17731de7734e5b0aa6f97c24a6e8a}


Declare that the process {\itshape process} has entered the fucntion {\itshape function} at timestamp {\itshape timestamp}. 

This function needs to be called in monotonically increasing timestamp order.


\begin{DoxyParams}{Parameters}
{\em tn\+\_\+context} & The context. \\
\hline
{\em timestamp} & The timestamp. \\
\hline
{\em process} & The process. \\
\hline
{\em function} & The function. \\
\hline
\end{DoxyParams}


References O\+T\+F\+A\+U\+X\+\_\+\+Thumbail\+\_\+\+Process\+::function\+\_\+stack.

\hypertarget{group__thumbnail_ga8666aecd64d494d66d593bc269b8a96b}{\index{Module for thumbnail generation.@{Module for thumbnail generation.}!O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+handle\+Leave@{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+handle\+Leave}}
\index{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+handle\+Leave@{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+handle\+Leave}!Module for thumbnail generation.@{Module for thumbnail generation.}}
\subsubsection[{O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+handle\+Leave}]{\setlength{\rightskip}{0pt plus 5cm}void O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+handle\+Leave (
\begin{DoxyParamCaption}
\item[{{\bf O\+T\+F\+A\+U\+X\+\_\+\+Thumbnail\+\_\+\+Context} $\ast$}]{tn\+\_\+context, }
\item[{uint64\+\_\+t}]{timestamp, }
\item[{uint64\+\_\+t}]{process}
\end{DoxyParamCaption}
)}}\label{group__thumbnail_ga8666aecd64d494d66d593bc269b8a96b}


Declare that the process {\itshape process} has left the current fucntion at timestamp {\itshape timestamp}. 

This function needs to be called in monotonically increasing timestamp order.


\begin{DoxyParams}{Parameters}
{\em tn\+\_\+context} & The context. \\
\hline
{\em timestamp} & The timestamp. \\
\hline
{\em process} & The process. \\
\hline
\end{DoxyParams}
