\hypertarget{op__example__component_8c}{\section{ompi/mca/op/example/op\+\_\+example\+\_\+component.c File Reference}
\label{op__example__component_8c}\index{ompi/mca/op/example/op\+\_\+example\+\_\+component.\+c@{ompi/mca/op/example/op\+\_\+example\+\_\+component.\+c}}
}


This is the \char`\"{}example\char`\"{} component source code.  


{\ttfamily \#include \char`\"{}ompi\+\_\+config.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/mca/base/mca\+\_\+base\+\_\+param.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}ompi/constants.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}ompi/op/op.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}ompi/mca/op/op.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}ompi/mca/op/base/base.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}ompi/mca/op/example/op\+\_\+example.\+h\char`\"{}}\\*
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{op__example__component_8c_a9f5d3220e07d53be231d32756a6f55f7}{static int {\bfseries example\+\_\+component\+\_\+open} (void)}\label{op__example__component_8c_a9f5d3220e07d53be231d32756a6f55f7}

\item 
\hypertarget{op__example__component_8c_a3835c454c01b4baa6d7fc870b9fbdef1}{static int {\bfseries example\+\_\+component\+\_\+close} (void)}\label{op__example__component_8c_a3835c454c01b4baa6d7fc870b9fbdef1}

\item 
\hypertarget{op__example__component_8c_a5a1cd0b90c5a5ab4ce54c7b9fddd8cdb}{static int {\bfseries example\+\_\+component\+\_\+init\+\_\+query} (bool enable\+\_\+progress\+\_\+threads, bool enable\+\_\+mpi\+\_\+thread\+\_\+multiple)}\label{op__example__component_8c_a5a1cd0b90c5a5ab4ce54c7b9fddd8cdb}

\item 
\hypertarget{op__example__component_8c_a3bea92e14119c9dd7343d01cbb763f11}{static struct \\*
\hyperlink{structompi__op__base__module__1__0__0__t}{ompi\+\_\+op\+\_\+base\+\_\+module\+\_\+1\+\_\+0\+\_\+0\+\_\+t} $\ast$ {\bfseries example\+\_\+component\+\_\+op\+\_\+query} (struct \hyperlink{structompi__op__t}{ompi\+\_\+op\+\_\+t} $\ast$op, int $\ast$priority)}\label{op__example__component_8c_a3bea92e14119c9dd7343d01cbb763f11}

\item 
\hypertarget{op__example__component_8c_ae5e98d7db51b86889281ae1045db7a63}{static int {\bfseries example\+\_\+component\+\_\+register} (void)}\label{op__example__component_8c_ae5e98d7db51b86889281ae1045db7a63}

\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\hyperlink{structompi__op__example__component__t}{ompi\+\_\+op\+\_\+example\+\_\+component\+\_\+t} \hyperlink{op__example__component_8c_a774a0baaa997672f01caf2b6fa41c370}{mca\+\_\+op\+\_\+example\+\_\+component}
\begin{DoxyCompactList}\small\item\em Globally exported variable. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
This is the \char`\"{}example\char`\"{} component source code. 

It contains the well-\/known struct that O\+M\+P\+I will dlsym() (or equivalent) for to find how to access the rest of the component and any modules that are created. 

\subsection{Variable Documentation}
\hypertarget{op__example__component_8c_a774a0baaa997672f01caf2b6fa41c370}{\index{op\+\_\+example\+\_\+component.\+c@{op\+\_\+example\+\_\+component.\+c}!mca\+\_\+op\+\_\+example\+\_\+component@{mca\+\_\+op\+\_\+example\+\_\+component}}
\index{mca\+\_\+op\+\_\+example\+\_\+component@{mca\+\_\+op\+\_\+example\+\_\+component}!op\+\_\+example\+\_\+component.\+c@{op\+\_\+example\+\_\+component.\+c}}
\subsubsection[{mca\+\_\+op\+\_\+example\+\_\+component}]{\setlength{\rightskip}{0pt plus 5cm}{\bf ompi\+\_\+op\+\_\+example\+\_\+component\+\_\+t} mca\+\_\+op\+\_\+example\+\_\+component}}\label{op__example__component_8c_a774a0baaa997672f01caf2b6fa41c370}
{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
    
    \{
        \{
            OMPI\_OP\_BASE\_VERSION\_1\_0\_0,
            
            \textcolor{stringliteral}{"example"},
            OMPI\_MAJOR\_VERSION,
            OMPI\_MINOR\_VERSION,
            OMPI\_RELEASE\_VERSION,
            example\_component\_open,
            example\_component\_close,
            NULL,
            example\_component\_register
        \},
        \{
            
            \hyperlink{mca_8h_a897241f36af010e7e120521a966d845e}{MCA\_BASE\_METADATA\_PARAM\_CHECKPOINT}
        \},
        
        example\_component\_init\_query,
        example\_component\_op\_query,
    \},

    
\}
\end{DoxyCode}


Globally exported variable. 

Note that it is a {\itshape example} component (defined above), which has the ompi\+\_\+op\+\_\+base\+\_\+component\+\_\+t as its first member. Hence, the M\+C\+A/op framework will find the data that it expects in the first memory locations, but then the component itself can cache additional information after that that can be used by both the component and modules. 

Referenced by ompi\+\_\+op\+\_\+example\+\_\+setup\+\_\+max().

