\hypertarget{group__msgmatch}{\section{Module to match messages.}
\label{group__msgmatch}\index{Module to match messages.@{Module to match messages.}}
}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \\*
\hyperlink{structOTFAUX__MsgMatching__Context}{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context} \hyperlink{group__msgmatch_gabf6e931bfcde2891c132d1bcdc3eaf63}{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context}
\begin{DoxyCompactList}\small\item\em Opaque type for using the matching module. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{structOTFAUX__MsgMatching__Context}{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context} $\ast$ \hyperlink{group__msgmatch_gaf3835893a24a2b68add41c334ede56fe}{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+create} (void)
\begin{DoxyCompactList}\small\item\em Create a context for matching messages. \end{DoxyCompactList}\item 
void \hyperlink{group__msgmatch_ga0ca4f0338e546732fa62cc5f75b84f3f}{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+destroy} (\hyperlink{structOTFAUX__MsgMatching__Context}{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context} $\ast$mm\+\_\+context)
\begin{DoxyCompactList}\small\item\em Destroy a context previously created with {\itshape O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Create}. \end{DoxyCompactList}\item 
void \hyperlink{group__msgmatch_gaf10664f49790a7a75843a69c4d0cc16e}{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+enqueue\+Recv} (\hyperlink{structOTFAUX__MsgMatching__Context}{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context} $\ast$mm\+\_\+context, uint64\+\_\+t sender, uint64\+\_\+t receiver, uint32\+\_\+t tag, uint32\+\_\+t comm, uint64\+\_\+t time, uint32\+\_\+t size, uint32\+\_\+t scl)
\begin{DoxyCompactList}\small\item\em Provide a recv event for matching. \end{DoxyCompactList}\item 
int \hyperlink{group__msgmatch_ga15374711792d910054d8a48e32631104}{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+match\+Send} (\hyperlink{structOTFAUX__MsgMatching__Context}{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context} $\ast$mm\+\_\+context, uint64\+\_\+t sender, uint64\+\_\+t receiver, uint32\+\_\+t tag, uint32\+\_\+t comm, uint64\+\_\+t $\ast$ptime, uint32\+\_\+t $\ast$psize, uint32\+\_\+t $\ast$pscl)
\begin{DoxyCompactList}\small\item\em Try to match a send with the corresponding recv. \end{DoxyCompactList}\item 
void \hyperlink{group__msgmatch_ga4a7f419bb210c86bdde52e874b19a6a6}{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+release\+Memory} (\hyperlink{structOTFAUX__MsgMatching__Context}{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context} $\ast$mm\+\_\+context)
\begin{DoxyCompactList}\small\item\em If you think the \hyperlink{structOTFAUX__MsgMatching__Context}{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context} holds to much memory, you can order him to release unused memory. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}


\subsection{Typedef Documentation}
\hypertarget{group__msgmatch_gabf6e931bfcde2891c132d1bcdc3eaf63}{\index{Module to match messages.@{Module to match messages.}!O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context@{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context}}
\index{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context@{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context}!Module to match messages.@{Module to match messages.}}
\subsubsection[{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context} {\bf O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context}}}\label{group__msgmatch_gabf6e931bfcde2891c132d1bcdc3eaf63}


Opaque type for using the matching module. 



\subsection{Function Documentation}
\hypertarget{group__msgmatch_gaf3835893a24a2b68add41c334ede56fe}{\index{Module to match messages.@{Module to match messages.}!O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+create@{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+create}}
\index{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+create@{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+create}!Module to match messages.@{Module to match messages.}}
\subsubsection[{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+create}]{\setlength{\rightskip}{0pt plus 5cm}{\bf O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context}$\ast$ O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+create (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}\label{group__msgmatch_gaf3835893a24a2b68add41c334ede56fe}


Create a context for matching messages. 

\hypertarget{group__msgmatch_ga0ca4f0338e546732fa62cc5f75b84f3f}{\index{Module to match messages.@{Module to match messages.}!O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+destroy@{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+destroy}}
\index{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+destroy@{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+destroy}!Module to match messages.@{Module to match messages.}}
\subsubsection[{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+destroy}]{\setlength{\rightskip}{0pt plus 5cm}void O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+destroy (
\begin{DoxyParamCaption}
\item[{{\bf O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context} $\ast$}]{mm\+\_\+context}
\end{DoxyParamCaption}
)}}\label{group__msgmatch_ga0ca4f0338e546732fa62cc5f75b84f3f}


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



References O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context\+::free\+\_\+list, O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Queue\+::head, O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Queue\+::next, and O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context\+::queues.

\hypertarget{group__msgmatch_gaf10664f49790a7a75843a69c4d0cc16e}{\index{Module to match messages.@{Module to match messages.}!O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+enqueue\+Recv@{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+enqueue\+Recv}}
\index{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+enqueue\+Recv@{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+enqueue\+Recv}!Module to match messages.@{Module to match messages.}}
\subsubsection[{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+enqueue\+Recv}]{\setlength{\rightskip}{0pt plus 5cm}void O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+enqueue\+Recv (
\begin{DoxyParamCaption}
\item[{{\bf O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context} $\ast$}]{mm\+\_\+context, }
\item[{uint64\+\_\+t}]{sender, }
\item[{uint64\+\_\+t}]{receiver, }
\item[{uint32\+\_\+t}]{tag, }
\item[{uint32\+\_\+t}]{comm, }
\item[{uint64\+\_\+t}]{time, }
\item[{uint32\+\_\+t}]{size, }
\item[{uint32\+\_\+t}]{scl}
\end{DoxyParamCaption}
)}}\label{group__msgmatch_gaf10664f49790a7a75843a69c4d0cc16e}


Provide a recv event for matching. 



References O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context\+::free\+\_\+list, and O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Recv\+::next.

\hypertarget{group__msgmatch_ga15374711792d910054d8a48e32631104}{\index{Module to match messages.@{Module to match messages.}!O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+match\+Send@{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+match\+Send}}
\index{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+match\+Send@{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+match\+Send}!Module to match messages.@{Module to match messages.}}
\subsubsection[{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+match\+Send}]{\setlength{\rightskip}{0pt plus 5cm}int O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+match\+Send (
\begin{DoxyParamCaption}
\item[{{\bf O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context} $\ast$}]{mm\+\_\+context, }
\item[{uint64\+\_\+t}]{sender, }
\item[{uint64\+\_\+t}]{receiver, }
\item[{uint32\+\_\+t}]{tag, }
\item[{uint32\+\_\+t}]{comm, }
\item[{uint64\+\_\+t $\ast$}]{ptime, }
\item[{uint32\+\_\+t $\ast$}]{psize, }
\item[{uint32\+\_\+t $\ast$}]{pscl}
\end{DoxyParamCaption}
)}}\label{group__msgmatch_ga15374711792d910054d8a48e32631104}


Try to match a send with the corresponding recv. 

\begin{DoxyReturn}{Returns}
1 for success 0 for no recv 
\end{DoxyReturn}


References O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context\+::free\+\_\+list, O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Queue\+::head, and O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Recv\+::next.

\hypertarget{group__msgmatch_ga4a7f419bb210c86bdde52e874b19a6a6}{\index{Module to match messages.@{Module to match messages.}!O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+release\+Memory@{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+release\+Memory}}
\index{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+release\+Memory@{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+release\+Memory}!Module to match messages.@{Module to match messages.}}
\subsubsection[{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+release\+Memory}]{\setlength{\rightskip}{0pt plus 5cm}void O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+release\+Memory (
\begin{DoxyParamCaption}
\item[{{\bf O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context} $\ast$}]{mm\+\_\+context}
\end{DoxyParamCaption}
)}}\label{group__msgmatch_ga4a7f419bb210c86bdde52e874b19a6a6}


If you think the \hyperlink{structOTFAUX__MsgMatching__Context}{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context} holds to much memory, you can order him to release unused memory. 

If you think the \hyperlink{structOTFAUX__MsgMatching__Context}{O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context} holds to much memory, you can order him to release unused memory. 

References O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context\+::free\+\_\+list, O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Queue\+::head, O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Queue\+::next, and O\+T\+F\+A\+U\+X\+\_\+\+Msg\+Matching\+\_\+\+Context\+::queues.

