\hypertarget{mca__base__param_8h}{\section{opal/mca/base/mca\+\_\+base\+\_\+param.h File Reference}
\label{mca__base__param_8h}\index{opal/mca/base/mca\+\_\+base\+\_\+param.\+h@{opal/mca/base/mca\+\_\+base\+\_\+param.\+h}}
}


This file presents the M\+C\+A parameter interface.  


{\ttfamily \#include \char`\"{}opal\+\_\+config.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/class/opal\+\_\+list.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/mca/mca.\+h\char`\"{}}\\*
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structmca__base__param__info__t}{mca\+\_\+base\+\_\+param\+\_\+info\+\_\+t}
\begin{DoxyCompactList}\small\item\em Struct for holding name/type info. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\hypertarget{mca__base__param_8h_a617a150b287b7dfd57936fd29481350f}{typedef struct \\*
\hyperlink{structmca__base__param__info__t}{mca\+\_\+base\+\_\+param\+\_\+info\+\_\+t} \hyperlink{mca__base__param_8h_a617a150b287b7dfd57936fd29481350f}{mca\+\_\+base\+\_\+param\+\_\+info\+\_\+t}}\label{mca__base__param_8h_a617a150b287b7dfd57936fd29481350f}

\begin{DoxyCompactList}\small\item\em Convenience typedef. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{mca__base__param_8h_ab5d78a6349635b872a71d2918db3df20}{mca\+\_\+base\+\_\+param\+\_\+type\+\_\+t} \{ \hyperlink{mca__base__param_8h_ab5d78a6349635b872a71d2918db3df20a659b3590ffed4311652f742fe1efd8a6}{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T}, 
\hyperlink{mca__base__param_8h_ab5d78a6349635b872a71d2918db3df20ac1c817d5c2e8f6a46ebd9ba6467442a8}{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+N\+G}, 
\hyperlink{mca__base__param_8h_ab5d78a6349635b872a71d2918db3df20abd725df4d5251221565fdcd0bf831313}{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+M\+A\+X}
 \}
\begin{DoxyCompactList}\small\item\em The types of M\+C\+A parameters. \end{DoxyCompactList}\item 
enum \hyperlink{mca__base__param_8h_a8c4ebd4ff6c6dd4bfca7f3aa5ea9a1b0}{mca\+\_\+base\+\_\+param\+\_\+source\+\_\+t} \{ \\*
\hyperlink{mca__base__param_8h_a8c4ebd4ff6c6dd4bfca7f3aa5ea9a1b0a1cfdc1d42b07b8dbe489ffda6effdd54}{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+D\+E\+F\+A\+U\+L\+T}, 
\hyperlink{mca__base__param_8h_a8c4ebd4ff6c6dd4bfca7f3aa5ea9a1b0ada9aa67971eb14f9deb79f9edec027cc}{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+E\+N\+V}, 
\hyperlink{mca__base__param_8h_a8c4ebd4ff6c6dd4bfca7f3aa5ea9a1b0afa3401c8ba8a2665f21bb8f12d8a8612}{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+F\+I\+L\+E}, 
\hyperlink{mca__base__param_8h_a8c4ebd4ff6c6dd4bfca7f3aa5ea9a1b0a265f6b3ce48d2bdc06975afa236f0a56}{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+O\+V\+E\+R\+R\+I\+D\+E}, 
\\*
\hyperlink{mca__base__param_8h_a8c4ebd4ff6c6dd4bfca7f3aa5ea9a1b0a6677d5ea9fa00d7513e4eb4768a3cd51}{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+M\+A\+X}
 \}
\begin{DoxyCompactList}\small\item\em Source of an M\+C\+A parameter's value. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{mca__base__param_8h_ae30f2b461be1c3947bf845a9d70e94cb}{B\+E\+G\+I\+N\+\_\+\+C\+\_\+\+D\+E\+C\+L\+S O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C \hyperlink{mca__base__param_8h_ae30f2b461be1c3947bf845a9d70e94cb}{O\+B\+J\+\_\+\+C\+L\+A\+S\+S\+\_\+\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N} (\hyperlink{structmca__base__param__info__t}{mca\+\_\+base\+\_\+param\+\_\+info\+\_\+t})}\label{mca__base__param_8h_ae30f2b461be1c3947bf845a9d70e94cb}

\begin{DoxyCompactList}\small\item\em Make a real object for the info. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_a9d52b0268df183d46d5e5c4cf7ac882c}{mca\+\_\+base\+\_\+param\+\_\+init} (void)
\begin{DoxyCompactList}\small\item\em Initialize the M\+C\+A parameter system. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_a00e9c730f3b88aff511735cd2f72707d}{mca\+\_\+base\+\_\+param\+\_\+recache\+\_\+files} (bool rel\+\_\+path\+\_\+search)
\begin{DoxyCompactList}\small\item\em Recache the M\+C\+A param files. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_a8e75dd884db8fec281d79a737066278b}{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+int} (const \hyperlink{mca_8h_a8ec1d0b303938c31727745037481d1bf}{mca\+\_\+base\+\_\+component\+\_\+t} $\ast$component, const char $\ast$param\+\_\+name, const char $\ast$help\+\_\+msg, bool internal, bool read\+\_\+only, int default\+\_\+value, int $\ast$current\+\_\+value)
\begin{DoxyCompactList}\small\item\em Register an integer M\+C\+A parameter. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_abc92e2379826e5d2d66ecfdf3cbecfaa}{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+int\+\_\+name} (const char $\ast$type, const char $\ast$param\+\_\+name, const char $\ast$help\+\_\+msg, bool internal, bool read\+\_\+only, int default\+\_\+value, int $\ast$current\+\_\+value)
\begin{DoxyCompactList}\small\item\em Register an integer M\+C\+A parameter that is not associated with a component. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_a21d3c925ec655e05b0b4ceaa706393cf}{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+string} (const \hyperlink{mca_8h_a8ec1d0b303938c31727745037481d1bf}{mca\+\_\+base\+\_\+component\+\_\+t} $\ast$component, const char $\ast$param\+\_\+name, const char $\ast$help\+\_\+msg, bool internal, bool read\+\_\+only, const char $\ast$default\+\_\+value, char $\ast$$\ast$current\+\_\+value)
\begin{DoxyCompactList}\small\item\em Register a string M\+C\+A parameter. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_a8f16aab79f5667c87e8c781586860a96}{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+string\+\_\+name} (const char $\ast$type, const char $\ast$param\+\_\+name, const char $\ast$help\+\_\+msg, bool internal, bool read\+\_\+only, const char $\ast$default\+\_\+value, char $\ast$$\ast$current\+\_\+value)
\begin{DoxyCompactList}\small\item\em Register a string M\+C\+A parameter that is not associated with a component. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_a87fd52313d8b0576ef5c79d464ec9813}{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+syn} (int orignal\+\_\+index, const \hyperlink{mca_8h_a8ec1d0b303938c31727745037481d1bf}{mca\+\_\+base\+\_\+component\+\_\+t} $\ast$syn\+\_\+component, const char $\ast$syn\+\_\+param\+\_\+name, bool deprecated)
\begin{DoxyCompactList}\small\item\em Register a synonym name for an M\+C\+A parameter. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_a5c3a0b23dda29d1b5531f06692e82514}{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+syn\+\_\+name} (int orignal\+\_\+index, const char $\ast$syn\+\_\+type, const char $\ast$syn\+\_\+param\+\_\+name, bool deprecated)
\begin{DoxyCompactList}\small\item\em Register an M\+C\+A parameter synonym that is not associated with a component. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_a63d754f049d5c52fed1f5b7e23de5c33}{mca\+\_\+base\+\_\+param\+\_\+deregister} (int index)
\begin{DoxyCompactList}\small\item\em Deregister a M\+C\+A parameter. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_a0098cb54feb368b051354807c230e50b}{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+int} (int index, int $\ast$value)
\begin{DoxyCompactList}\small\item\em Look up an integer M\+C\+A parameter. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_a0af1755e8da7d760f50a20d514f67700}{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+string} (int index, char $\ast$$\ast$value)
\begin{DoxyCompactList}\small\item\em Look up a string M\+C\+A parameter. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_a5fb14ea4a3e94840270da17fb0c84af9}{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+source} (int index, \hyperlink{mca__base__param_8h_a8c4ebd4ff6c6dd4bfca7f3aa5ea9a1b0}{mca\+\_\+base\+\_\+param\+\_\+source\+\_\+t} $\ast$source, char $\ast$$\ast$source\+\_\+file)
\begin{DoxyCompactList}\small\item\em Lookup the source of an M\+C\+A parameter's value. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_a0e00672c6cf7f351f8a14aa9e9e2d716}{mca\+\_\+base\+\_\+param\+\_\+set\+\_\+int} (int index, int value)
\begin{DoxyCompactList}\small\item\em Sets an \char`\"{}override\char`\"{} value for an integer M\+C\+A parameter. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_a9c01ccf2cc4795d741e88be6e8b867c4}{mca\+\_\+base\+\_\+param\+\_\+set\+\_\+string} (int index, char $\ast$value)
\begin{DoxyCompactList}\small\item\em Sets an \char`\"{}override\char`\"{} value for an string M\+C\+A parameter. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_a5124f6e9717089d95b43901921a2d157}{mca\+\_\+base\+\_\+param\+\_\+unset} (int index)
\begin{DoxyCompactList}\small\item\em Unset a parameter that was previously set by \hyperlink{mca__base__param_8h_a0e00672c6cf7f351f8a14aa9e9e2d716}{mca\+\_\+base\+\_\+param\+\_\+set\+\_\+int()} or \hyperlink{mca__base__param_8h_a9c01ccf2cc4795d741e88be6e8b867c4}{mca\+\_\+base\+\_\+param\+\_\+set\+\_\+string()}. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C char $\ast$ \hyperlink{mca__base__param_8h_a9e7ed5c3175fc58b6817701d277f404d}{mca\+\_\+base\+\_\+param\+\_\+env\+\_\+var} (const char $\ast$param\+\_\+name)
\begin{DoxyCompactList}\small\item\em Get the string name corresponding to the M\+C\+A parameter value in the environment. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_afbea8fa570947b14206e0a43ac2f59e3}{mca\+\_\+base\+\_\+param\+\_\+find} (const char $\ast$type, const char $\ast$component, const char $\ast$param)
\begin{DoxyCompactList}\small\item\em Find the index for an M\+C\+A parameter based on its names. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_a0113ca0d14a12c49bc5b3503983b95b9}{mca\+\_\+base\+\_\+param\+\_\+find\+\_\+int} (const \hyperlink{mca_8h_a8ec1d0b303938c31727745037481d1bf}{mca\+\_\+base\+\_\+component\+\_\+t} $\ast$component, const char $\ast$param\+\_\+name, char $\ast$$\ast$env, int $\ast$current\+\_\+value)
\begin{DoxyCompactList}\small\item\em Find an M\+C\+A parameter in an env array based on its names. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_a37695ba644dd489e505b7c09c9583b2d}{mca\+\_\+base\+\_\+param\+\_\+find\+\_\+int\+\_\+name} (const char $\ast$type, const char $\ast$param\+\_\+name, char $\ast$$\ast$env, int $\ast$current\+\_\+value)
\begin{DoxyCompactList}\small\item\em Find an M\+C\+A parameter (in an env array) that is not associated with a component. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_a3231341470cdd0c42ef43bcf839ef84f}{mca\+\_\+base\+\_\+param\+\_\+find\+\_\+string} (const \hyperlink{mca_8h_a8ec1d0b303938c31727745037481d1bf}{mca\+\_\+base\+\_\+component\+\_\+t} $\ast$component, const char $\ast$param\+\_\+name, char $\ast$$\ast$env, char $\ast$$\ast$current\+\_\+value)
\begin{DoxyCompactList}\small\item\em Find a string M\+C\+A parameter in an env array based on its names. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_add57fc41f1e572412dd0d5e6b67a7e47}{mca\+\_\+base\+\_\+param\+\_\+find\+\_\+string\+\_\+name} (const char $\ast$type, const char $\ast$param\+\_\+name, char $\ast$$\ast$env, char $\ast$$\ast$current\+\_\+value)
\begin{DoxyCompactList}\small\item\em Find a string M\+C\+A parameter (in an env array) that is not associated with a component. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_a1c0d3d16c7403d34c384014371e18863}{mca\+\_\+base\+\_\+param\+\_\+check\+\_\+exclusive\+\_\+string} (const char $\ast$type\+\_\+a, const char $\ast$component\+\_\+a, const char $\ast$param\+\_\+a, const char $\ast$type\+\_\+b, const char $\ast$component\+\_\+b, const char $\ast$param\+\_\+b)
\begin{DoxyCompactList}\small\item\em Check that two M\+C\+A parameters were not both set to non-\/default values. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_a49d1ce3e6584d72db98bf3d59c69165c}{mca\+\_\+base\+\_\+param\+\_\+set\+\_\+internal} (int index, bool internal)
\begin{DoxyCompactList}\small\item\em Set the \char`\"{}internal\char`\"{} flag on an M\+C\+A parameter to true or false. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_aafa3ba56b09f6dff38e81d160cf275f2}{mca\+\_\+base\+\_\+param\+\_\+dump} (\hyperlink{structopal__list__t}{opal\+\_\+list\+\_\+t} $\ast$$\ast$info, bool internal)
\begin{DoxyCompactList}\small\item\em Obtain a list of all the M\+C\+A parameters currently defined as well as their types. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_afb74365621711d460a91770bc87ad51a}{mca\+\_\+base\+\_\+param\+\_\+build\+\_\+env} (char $\ast$$\ast$$\ast$env, int $\ast$num\+\_\+env, bool internal)
\begin{DoxyCompactList}\small\item\em Obtain a list of all the M\+C\+A parameters currently defined as well as their types. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_aa08847aa25a63c054fd73583de639dbe}{mca\+\_\+base\+\_\+param\+\_\+dump\+\_\+release} (\hyperlink{structopal__list__t}{opal\+\_\+list\+\_\+t} $\ast$info)
\begin{DoxyCompactList}\small\item\em Release the memory associated with the info list returned from \hyperlink{mca__base__param_8h_aafa3ba56b09f6dff38e81d160cf275f2}{mca\+\_\+base\+\_\+param\+\_\+dump()}. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_a73013a43396f84b823170db3e836d626}{mca\+\_\+base\+\_\+param\+\_\+finalize} (void)
\begin{DoxyCompactList}\small\item\em Shut down the M\+C\+A parameter system (normally only invoked by the M\+C\+A framework itself). \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_a66fd2603b63658f054f7a6a54891c0c2}{mca\+\_\+base\+\_\+param\+\_\+register\+\_\+int} (const char $\ast$type\+\_\+name, const char $\ast$component\+\_\+name, const char $\ast$param\+\_\+name, const char $\ast$mca\+\_\+param\+\_\+name, int default\+\_\+value)
\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{mca__base__param_8h_a475d552a8bfa1f2690d9b5add80cda31}{mca\+\_\+base\+\_\+param\+\_\+register\+\_\+string} (const char $\ast$type\+\_\+name, const char $\ast$component\+\_\+name, const char $\ast$param\+\_\+name, const char $\ast$mca\+\_\+param\+\_\+name, const char $\ast$default\+\_\+value)
\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C char $\ast$ \hyperlink{mca__base__param_8h_af6454ee4e64b2e5ef4f04ed302b9aa0f}{mca\+\_\+base\+\_\+param\+\_\+environ\+\_\+variable} (const char $\ast$type, const char $\ast$comp, const char $\ast$param)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
This file presents the M\+C\+A parameter interface. 

Note that there are two scopes for M\+C\+A parameters\+: \char`\"{}normal\char`\"{} and attributes. Specifically, all M\+C\+A parameters are \char`\"{}normal\char`\"{} -- some are special and may also be found on attributes on communicators, datatypes, or windows.

In general, these functions are intended to be used as follows\+:


\begin{DoxyItemize}
\item Creating M\+C\+A parameters
\end{DoxyItemize}
\begin{DoxyEnumerate}
\item Register a parameter, get an index back
\end{DoxyEnumerate}
\begin{DoxyItemize}
\item Using M\+C\+A parameters
\end{DoxyItemize}
\begin{DoxyEnumerate}
\item Lookup a \char`\"{}normal\char`\"{} parameter value on a specific index, or
\item Lookup an attribute parameter on a specific index and communicator / datatype / window.
\end{DoxyEnumerate}

M\+C\+A parameters can be defined in multiple different places. As such, parameters are {\itshape resolved} to find their value. The order of resolution is as follows\+:


\begin{DoxyItemize}
\item An \char`\"{}override\char`\"{} location that is only available to be set via the mca\+\_\+base\+\_\+param A\+P\+I.
\item Look for an environment variable corresponding to the M\+C\+A parameter.
\item See if a file contains the M\+C\+A parameter (M\+C\+A parameter files are read only once -- when the first time any mca\+\_\+param\+\_\+t function is invoked).
\item If nothing else was found, use the parameter's default value.
\end{DoxyItemize}

Note that there is a second header file (\hyperlink{mca__base__param__internal_8h}{mca\+\_\+base\+\_\+param\+\_\+internal.\+h}) that contains several internal type delcarations for the parameter system. The internal file is only used within the parameter system itself; it should not be required by any other Open M\+P\+I entities. 

\subsection{Enumeration Type Documentation}
\hypertarget{mca__base__param_8h_a8c4ebd4ff6c6dd4bfca7f3aa5ea9a1b0}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+source\+\_\+t@{mca\+\_\+base\+\_\+param\+\_\+source\+\_\+t}}
\index{mca\+\_\+base\+\_\+param\+\_\+source\+\_\+t@{mca\+\_\+base\+\_\+param\+\_\+source\+\_\+t}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+source\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf mca\+\_\+base\+\_\+param\+\_\+source\+\_\+t}}}\label{mca__base__param_8h_a8c4ebd4ff6c6dd4bfca7f3aa5ea9a1b0}


Source of an M\+C\+A parameter's value. 

\begin{Desc}
\item[Enumerator]\par
\begin{description}
\index{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+D\+E\+F\+A\+U\+L\+T@{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+D\+E\+F\+A\+U\+L\+T}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+D\+E\+F\+A\+U\+L\+T@{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+D\+E\+F\+A\+U\+L\+T}}\item[{\em 
\hypertarget{mca__base__param_8h_a8c4ebd4ff6c6dd4bfca7f3aa5ea9a1b0a1cfdc1d42b07b8dbe489ffda6effdd54}{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+D\+E\+F\+A\+U\+L\+T}\label{mca__base__param_8h_a8c4ebd4ff6c6dd4bfca7f3aa5ea9a1b0a1cfdc1d42b07b8dbe489ffda6effdd54}
}]The default value. \index{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+E\+N\+V@{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+E\+N\+V}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+E\+N\+V@{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+E\+N\+V}}\item[{\em 
\hypertarget{mca__base__param_8h_a8c4ebd4ff6c6dd4bfca7f3aa5ea9a1b0ada9aa67971eb14f9deb79f9edec027cc}{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+E\+N\+V}\label{mca__base__param_8h_a8c4ebd4ff6c6dd4bfca7f3aa5ea9a1b0ada9aa67971eb14f9deb79f9edec027cc}
}]The value came from the environment (or command line!) \index{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+F\+I\+L\+E@{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+F\+I\+L\+E}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+F\+I\+L\+E@{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+F\+I\+L\+E}}\item[{\em 
\hypertarget{mca__base__param_8h_a8c4ebd4ff6c6dd4bfca7f3aa5ea9a1b0afa3401c8ba8a2665f21bb8f12d8a8612}{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+F\+I\+L\+E}\label{mca__base__param_8h_a8c4ebd4ff6c6dd4bfca7f3aa5ea9a1b0afa3401c8ba8a2665f21bb8f12d8a8612}
}]The value came from a file. \index{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+O\+V\+E\+R\+R\+I\+D\+E@{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+O\+V\+E\+R\+R\+I\+D\+E}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+O\+V\+E\+R\+R\+I\+D\+E@{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+O\+V\+E\+R\+R\+I\+D\+E}}\item[{\em 
\hypertarget{mca__base__param_8h_a8c4ebd4ff6c6dd4bfca7f3aa5ea9a1b0a265f6b3ce48d2bdc06975afa236f0a56}{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+O\+V\+E\+R\+R\+I\+D\+E}\label{mca__base__param_8h_a8c4ebd4ff6c6dd4bfca7f3aa5ea9a1b0a265f6b3ce48d2bdc06975afa236f0a56}
}]The value came a \char`\"{}set\char`\"{} A\+P\+I call. \index{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+M\+A\+X@{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+M\+A\+X}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+M\+A\+X@{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+M\+A\+X}}\item[{\em 
\hypertarget{mca__base__param_8h_a8c4ebd4ff6c6dd4bfca7f3aa5ea9a1b0a6677d5ea9fa00d7513e4eb4768a3cd51}{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+M\+A\+X}\label{mca__base__param_8h_a8c4ebd4ff6c6dd4bfca7f3aa5ea9a1b0a6677d5ea9fa00d7513e4eb4768a3cd51}
}]Maximum source type. \end{description}
\end{Desc}
\hypertarget{mca__base__param_8h_ab5d78a6349635b872a71d2918db3df20}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+type\+\_\+t@{mca\+\_\+base\+\_\+param\+\_\+type\+\_\+t}}
\index{mca\+\_\+base\+\_\+param\+\_\+type\+\_\+t@{mca\+\_\+base\+\_\+param\+\_\+type\+\_\+t}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+type\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf mca\+\_\+base\+\_\+param\+\_\+type\+\_\+t}}}\label{mca__base__param_8h_ab5d78a6349635b872a71d2918db3df20}


The types of M\+C\+A parameters. 

\begin{Desc}
\item[Enumerator]\par
\begin{description}
\index{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T@{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T@{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T}}\item[{\em 
\hypertarget{mca__base__param_8h_ab5d78a6349635b872a71d2918db3df20a659b3590ffed4311652f742fe1efd8a6}{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T}\label{mca__base__param_8h_ab5d78a6349635b872a71d2918db3df20a659b3590ffed4311652f742fe1efd8a6}
}]The parameter is of type integer. \index{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+N\+G@{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+N\+G}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+N\+G@{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+N\+G}}\item[{\em 
\hypertarget{mca__base__param_8h_ab5d78a6349635b872a71d2918db3df20ac1c817d5c2e8f6a46ebd9ba6467442a8}{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+N\+G}\label{mca__base__param_8h_ab5d78a6349635b872a71d2918db3df20ac1c817d5c2e8f6a46ebd9ba6467442a8}
}]The parameter is of type string. \index{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+M\+A\+X@{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+M\+A\+X}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+M\+A\+X@{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+M\+A\+X}}\item[{\em 
\hypertarget{mca__base__param_8h_ab5d78a6349635b872a71d2918db3df20abd725df4d5251221565fdcd0bf831313}{M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+M\+A\+X}\label{mca__base__param_8h_ab5d78a6349635b872a71d2918db3df20abd725df4d5251221565fdcd0bf831313}
}]Maximum parameter type. \end{description}
\end{Desc}


\subsection{Function Documentation}
\hypertarget{mca__base__param_8h_afb74365621711d460a91770bc87ad51a}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+build\+\_\+env@{mca\+\_\+base\+\_\+param\+\_\+build\+\_\+env}}
\index{mca\+\_\+base\+\_\+param\+\_\+build\+\_\+env@{mca\+\_\+base\+\_\+param\+\_\+build\+\_\+env}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+build\+\_\+env}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+build\+\_\+env (
\begin{DoxyParamCaption}
\item[{char $\ast$$\ast$$\ast$}]{env, }
\item[{int $\ast$}]{num\+\_\+env, }
\item[{bool}]{internal}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_afb74365621711d460a91770bc87ad51a}


Obtain a list of all the M\+C\+A parameters currently defined as well as their types. 


\begin{DoxyParams}{Parameters}
{\em env} & \mbox{[}out\mbox{]} A pointer to an argv-\/style array of key=value strings, suitable for use in an environment \\
\hline
{\em num\+\_\+env} & \mbox{[}out\mbox{]} A pointer to an int, containing the length of the env array (not including the final N\+U\+L\+L entry). \\
\hline
{\em internal} & \mbox{[}in\mbox{]} Whether to include the internal parameters or not.\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+P\+A\+L\+\_\+\+S\+U\+C\+C\+E\+S\+S} & Upon success. \\
\hline
{\em O\+P\+A\+L\+\_\+\+E\+R\+R\+O\+R} & Upon failure.\\
\hline
\end{DoxyRetVals}
This function is similar to \hyperlink{mca__base__param_8h_aafa3ba56b09f6dff38e81d160cf275f2}{mca\+\_\+base\+\_\+param\+\_\+dump()} except that its output is in terms of an argv-\/style array of key=value strings, suitable for using in an environment. 

References mca\+\_\+base\+\_\+param\+\_\+storage\+\_\+t\+::intval, M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T, M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+N\+G, opal\+\_\+argv\+\_\+append(), opal\+\_\+argv\+\_\+free(), and mca\+\_\+base\+\_\+param\+\_\+storage\+\_\+t\+::stringval.

\hypertarget{mca__base__param_8h_a1c0d3d16c7403d34c384014371e18863}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+check\+\_\+exclusive\+\_\+string@{mca\+\_\+base\+\_\+param\+\_\+check\+\_\+exclusive\+\_\+string}}
\index{mca\+\_\+base\+\_\+param\+\_\+check\+\_\+exclusive\+\_\+string@{mca\+\_\+base\+\_\+param\+\_\+check\+\_\+exclusive\+\_\+string}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+check\+\_\+exclusive\+\_\+string}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+check\+\_\+exclusive\+\_\+string (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{type\+\_\+a, }
\item[{const char $\ast$}]{component\+\_\+a, }
\item[{const char $\ast$}]{param\+\_\+a, }
\item[{const char $\ast$}]{type\+\_\+b, }
\item[{const char $\ast$}]{component\+\_\+b, }
\item[{const char $\ast$}]{param\+\_\+b}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_a1c0d3d16c7403d34c384014371e18863}


Check that two M\+C\+A parameters were not both set to non-\/default values. 


\begin{DoxyParams}{Parameters}
{\em type\+\_\+a} & \mbox{[}in\mbox{]} Framework name of parameter A (string). \\
\hline
{\em component\+\_\+a} & \mbox{[}in\mbox{]} Component name of parameter A (string). \\
\hline
{\em param\+\_\+a} & \mbox{[}in\mbox{]} Parameter name of parameter A (string. \\
\hline
{\em type\+\_\+b} & \mbox{[}in\mbox{]} Framework name of parameter A (string). \\
\hline
{\em component\+\_\+b} & \mbox{[}in\mbox{]} Component name of parameter A (string). \\
\hline
{\em param\+\_\+b} & \mbox{[}in\mbox{]} Parameter name of parameter A (string.\\
\hline
\end{DoxyParams}
This function is useful for checking that the user did not set both of 2 mutually-\/exclusive M\+C\+A parameters.

This function will print an opal\+\_\+show\+\_\+help() message and return O\+P\+A\+L\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+P\+A\+R\+A\+M if it finds that the two parameters both have value sources that are not M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+D\+E\+F\+A\+U\+L\+T. This means that both parameters have been set by the user (i.\+e., they're not default values).

Note that opal\+\_\+show\+\_\+help() allows itself to be hooked, so if this happens after the aggregated \hyperlink{orte_2util_2show__help_8h_a26cc59040695654429e9651119eb46d7}{orte\+\_\+show\+\_\+help()} system is initialized, the messages will be aggregated (w00t).

\begin{DoxyReturn}{Returns}
O\+P\+A\+L\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+P\+A\+R\+A\+M if the two parameters have sources that are not M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+D\+E\+F\+A\+U\+L\+T. 

O\+P\+A\+L\+\_\+\+S\+U\+C\+C\+E\+S\+S otherwise. 
\end{DoxyReturn}


References mca\+\_\+base\+\_\+param\+\_\+find(), mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+source(), and M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+O\+U\+R\+C\+E\+\_\+\+D\+E\+F\+A\+U\+L\+T.

\hypertarget{mca__base__param_8h_a63d754f049d5c52fed1f5b7e23de5c33}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+deregister@{mca\+\_\+base\+\_\+param\+\_\+deregister}}
\index{mca\+\_\+base\+\_\+param\+\_\+deregister@{mca\+\_\+base\+\_\+param\+\_\+deregister}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+deregister}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+deregister (
\begin{DoxyParamCaption}
\item[{int}]{index}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_a63d754f049d5c52fed1f5b7e23de5c33}


Deregister a M\+C\+A parameter. 


\begin{DoxyParams}{Parameters}
{\em index} & Index returned from mca\+\_\+base\+\_\+param\+\_\+register\+\_\+init() \\
\hline
\end{DoxyParams}
\hypertarget{mca__base__param_8h_aafa3ba56b09f6dff38e81d160cf275f2}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+dump@{mca\+\_\+base\+\_\+param\+\_\+dump}}
\index{mca\+\_\+base\+\_\+param\+\_\+dump@{mca\+\_\+base\+\_\+param\+\_\+dump}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+dump}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+dump (
\begin{DoxyParamCaption}
\item[{{\bf opal\+\_\+list\+\_\+t} $\ast$$\ast$}]{info, }
\item[{bool}]{internal}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_aafa3ba56b09f6dff38e81d160cf275f2}


Obtain a list of all the M\+C\+A parameters currently defined as well as their types. 


\begin{DoxyParams}{Parameters}
{\em info} & \mbox{[}out\mbox{]} An \hyperlink{structopal__list__t}{opal\+\_\+list\+\_\+t} of \hyperlink{structmca__base__param__info__t}{mca\+\_\+base\+\_\+param\+\_\+info\+\_\+t} instances. \\
\hline
{\em internal} & \mbox{[}in\mbox{]} Whether to include the internal parameters or not.\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+P\+A\+L\+\_\+\+S\+U\+C\+C\+E\+S\+S} & Upon success. \\
\hline
{\em O\+P\+A\+L\+\_\+\+E\+R\+R\+O\+R} & Upon failure.\\
\hline
\end{DoxyRetVals}
This function is used to obtain a list of all the currently registered M\+C\+A parameters along with their associated types (currently\+: string or integer). The results from this function can be used to repeatedly invoke \hyperlink{mca__base__param_8h_a0098cb54feb368b051354807c230e50b}{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+int()} and/or \hyperlink{mca__base__param_8h_a0af1755e8da7d760f50a20d514f67700}{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+string()} to obtain a comprehensive list of all M\+C\+A parameters and their current values.

Releasing the list, and all the items in the list, is a relatively complicated process. Use the companion function \hyperlink{mca__base__param_8h_aa08847aa25a63c054fd73583de639dbe}{mca\+\_\+base\+\_\+param\+\_\+dump\+\_\+release()} when finished with the returned info list to release all associated memory. 

References mca\+\_\+base\+\_\+param\+\_\+t\+::mbp\+\_\+component\+\_\+name, mca\+\_\+base\+\_\+param\+\_\+t\+::mbp\+\_\+deprecated, mca\+\_\+base\+\_\+param\+\_\+t\+::mbp\+\_\+full\+\_\+name, mca\+\_\+base\+\_\+param\+\_\+t\+::mbp\+\_\+help\+\_\+msg, mca\+\_\+base\+\_\+param\+\_\+t\+::mbp\+\_\+internal, mca\+\_\+base\+\_\+param\+\_\+t\+::mbp\+\_\+param\+\_\+name, mca\+\_\+base\+\_\+param\+\_\+t\+::mbp\+\_\+read\+\_\+only, mca\+\_\+base\+\_\+param\+\_\+t\+::mbp\+\_\+type, mca\+\_\+base\+\_\+param\+\_\+t\+::mbp\+\_\+type\+\_\+name, mca\+\_\+base\+\_\+param\+\_\+info\+\_\+t\+::mbpp\+\_\+component\+\_\+name, mca\+\_\+base\+\_\+param\+\_\+info\+\_\+t\+::mbpp\+\_\+deprecated, mca\+\_\+base\+\_\+param\+\_\+info\+\_\+t\+::mbpp\+\_\+full\+\_\+name, mca\+\_\+base\+\_\+param\+\_\+info\+\_\+t\+::mbpp\+\_\+help\+\_\+msg, mca\+\_\+base\+\_\+param\+\_\+info\+\_\+t\+::mbpp\+\_\+index, mca\+\_\+base\+\_\+param\+\_\+info\+\_\+t\+::mbpp\+\_\+internal, mca\+\_\+base\+\_\+param\+\_\+info\+\_\+t\+::mbpp\+\_\+param\+\_\+name, mca\+\_\+base\+\_\+param\+\_\+info\+\_\+t\+::mbpp\+\_\+read\+\_\+only, mca\+\_\+base\+\_\+param\+\_\+info\+\_\+t\+::mbpp\+\_\+synonym\+\_\+parent, mca\+\_\+base\+\_\+param\+\_\+info\+\_\+t\+::mbpp\+\_\+synonyms, mca\+\_\+base\+\_\+param\+\_\+info\+\_\+t\+::mbpp\+\_\+synonyms\+\_\+len, mca\+\_\+base\+\_\+param\+\_\+info\+\_\+t\+::mbpp\+\_\+type, mca\+\_\+base\+\_\+param\+\_\+info\+\_\+t\+::mbpp\+\_\+type\+\_\+name, opal\+\_\+list\+\_\+append, opal\+\_\+list\+\_\+get\+\_\+end(), opal\+\_\+list\+\_\+get\+\_\+first(), opal\+\_\+list\+\_\+get\+\_\+next, opal\+\_\+list\+\_\+get\+\_\+size(), and opal\+\_\+list\+\_\+is\+\_\+empty().

\hypertarget{mca__base__param_8h_aa08847aa25a63c054fd73583de639dbe}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+dump\+\_\+release@{mca\+\_\+base\+\_\+param\+\_\+dump\+\_\+release}}
\index{mca\+\_\+base\+\_\+param\+\_\+dump\+\_\+release@{mca\+\_\+base\+\_\+param\+\_\+dump\+\_\+release}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+dump\+\_\+release}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+dump\+\_\+release (
\begin{DoxyParamCaption}
\item[{{\bf opal\+\_\+list\+\_\+t} $\ast$}]{info}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_aa08847aa25a63c054fd73583de639dbe}


Release the memory associated with the info list returned from \hyperlink{mca__base__param_8h_aafa3ba56b09f6dff38e81d160cf275f2}{mca\+\_\+base\+\_\+param\+\_\+dump()}. 


\begin{DoxyParams}{Parameters}
{\em info} & \mbox{[}in/out\mbox{]} An \hyperlink{structopal__list__t}{opal\+\_\+list\+\_\+t} previously returned from \hyperlink{mca__base__param_8h_aafa3ba56b09f6dff38e81d160cf275f2}{mca\+\_\+base\+\_\+param\+\_\+dump()}.\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+P\+A\+L\+\_\+\+S\+U\+C\+C\+E\+S\+S} & Upon success. \\
\hline
{\em O\+P\+A\+L\+\_\+\+E\+R\+R\+O\+R} & Upon failure.\\
\hline
\end{DoxyRetVals}
This function is intended to be used to free the info list returned from \hyperlink{mca__base__param_8h_aafa3ba56b09f6dff38e81d160cf275f2}{mca\+\_\+base\+\_\+param\+\_\+dump()}. There are a bunch of strings and other associated memory in the list making it cumbersome for the caller to free it all properly. Hence, once the caller is finished with the info list, invoke this function and all memory associated with the list will be freed. 

References O\+B\+J\+\_\+\+R\+E\+L\+E\+A\+S\+E, and opal\+\_\+list\+\_\+remove\+\_\+first().

\hypertarget{mca__base__param_8h_a9e7ed5c3175fc58b6817701d277f404d}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+env\+\_\+var@{mca\+\_\+base\+\_\+param\+\_\+env\+\_\+var}}
\index{mca\+\_\+base\+\_\+param\+\_\+env\+\_\+var@{mca\+\_\+base\+\_\+param\+\_\+env\+\_\+var}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+env\+\_\+var}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C char$\ast$ mca\+\_\+base\+\_\+param\+\_\+env\+\_\+var (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{param\+\_\+name}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_a9e7ed5c3175fc58b6817701d277f404d}


Get the string name corresponding to the M\+C\+A parameter value in the environment. 


\begin{DoxyParams}{Parameters}
{\em param\+\_\+name} & Name of the type containing the parameter.\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em string} & A string suitable for setenv() or appending to an environ-\/style string array. \\
\hline
{\em N\+U\+L\+L} & Upon failure.\\
\hline
\end{DoxyRetVals}
The string that is returned is owned by the caller; if appropriate, it must be eventually freed by the caller. 

Referenced by parse\+\_\+args().

\hypertarget{mca__base__param_8h_af6454ee4e64b2e5ef4f04ed302b9aa0f}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+environ\+\_\+variable@{mca\+\_\+base\+\_\+param\+\_\+environ\+\_\+variable}}
\index{mca\+\_\+base\+\_\+param\+\_\+environ\+\_\+variable@{mca\+\_\+base\+\_\+param\+\_\+environ\+\_\+variable}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+environ\+\_\+variable}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C char$\ast$ mca\+\_\+base\+\_\+param\+\_\+environ\+\_\+variable (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{type, }
\item[{const char $\ast$}]{comp, }
\item[{const char $\ast$}]{param}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_af6454ee4e64b2e5ef4f04ed302b9aa0f}
\begin{DoxyRefDesc}{Deprecated}
\item[\hyperlink{deprecated__deprecated000003}{Deprecated}]\end{DoxyRefDesc}


Get the string name corresponding to the M\+C\+A parameter value in the environment (deprecated).


\begin{DoxyParams}{Parameters}
{\em type} & Name of the type containing the parameter. \\
\hline
{\em comp} & Name of the component containing the parameter. \\
\hline
{\em param} & Name of the parameter.\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em string} & A string suitable for setenv() or appending to an environ-\/style string array. \\
\hline
{\em N\+U\+L\+L} & Upon failure.\\
\hline
\end{DoxyRetVals}
This function is deprecated. Use \hyperlink{mca__base__param_8h_a9e7ed5c3175fc58b6817701d277f404d}{mca\+\_\+base\+\_\+param\+\_\+env\+\_\+var()} instead.

The string that is returned is owned by the caller; if appropriate, it must be eventually freed by the caller. 

References mca\+\_\+base\+\_\+param\+\_\+find().



Referenced by orte\+\_\+plm\+\_\+submit\+\_\+launch().

\hypertarget{mca__base__param_8h_a73013a43396f84b823170db3e836d626}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+finalize@{mca\+\_\+base\+\_\+param\+\_\+finalize}}
\index{mca\+\_\+base\+\_\+param\+\_\+finalize@{mca\+\_\+base\+\_\+param\+\_\+finalize}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+finalize}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+finalize (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_a73013a43396f84b823170db3e836d626}


Shut down the M\+C\+A parameter system (normally only invoked by the M\+C\+A framework itself). 

\begin{DoxyReturn}{Returns}
O\+P\+A\+L\+\_\+\+S\+U\+C\+C\+E\+S\+S This function never fails.
\end{DoxyReturn}
This function shuts down the M\+C\+A parameter repository and frees all associated memory. No other mca\+\_\+base\+\_\+param$\ast$() functions can be invoked after this function.

This function is normally only invoked by the M\+C\+A framework itself when the process is shutting down (e.\+g., during M\+P\+I\+\_\+\+F\+I\+N\+A\+L\+I\+Z\+E). It is only documented here for completeness. 

References O\+B\+J\+\_\+\+D\+E\+S\+T\+R\+U\+C\+T, O\+B\+J\+\_\+\+R\+E\+L\+E\+A\+S\+E, and opal\+\_\+list\+\_\+remove\+\_\+first().



Referenced by opal\+\_\+finalize\+\_\+util().

\hypertarget{mca__base__param_8h_afbea8fa570947b14206e0a43ac2f59e3}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+find@{mca\+\_\+base\+\_\+param\+\_\+find}}
\index{mca\+\_\+base\+\_\+param\+\_\+find@{mca\+\_\+base\+\_\+param\+\_\+find}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+find}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+find (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{type, }
\item[{const char $\ast$}]{component, }
\item[{const char $\ast$}]{param}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_afbea8fa570947b14206e0a43ac2f59e3}


Find the index for an M\+C\+A parameter based on its names. 


\begin{DoxyParams}{Parameters}
{\em type} & Name of the type containing the parameter. \\
\hline
{\em component} & Name of the component containing the parameter. \\
\hline
{\em param} & Name of the parameter.\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+P\+A\+L\+\_\+\+E\+R\+R\+O\+R} & If the parameter was not found. \\
\hline
{\em index} & If the parameter was found.\\
\hline
\end{DoxyRetVals}
It is not always convenient to widely propagate a parameter's index value, or it may be necessary to look up the parameter from a different component -- where it is not possible to have the return value from \hyperlink{mca__base__param_8h_a66fd2603b63658f054f7a6a54891c0c2}{mca\+\_\+base\+\_\+param\+\_\+register\+\_\+int()} or \hyperlink{mca__base__param_8h_a475d552a8bfa1f2690d9b5add80cda31}{mca\+\_\+base\+\_\+param\+\_\+register\+\_\+string()}. This function can be used to look up the index of any registered parameter. The returned index can be used with \hyperlink{mca__base__param_8h_a0098cb54feb368b051354807c230e50b}{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+int()} and \hyperlink{mca__base__param_8h_a0af1755e8da7d760f50a20d514f67700}{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+string()}. 

Referenced by mca\+\_\+base\+\_\+param\+\_\+check\+\_\+exclusive\+\_\+string(), mca\+\_\+base\+\_\+param\+\_\+environ\+\_\+variable(), mca\+\_\+btl\+\_\+ud\+\_\+component\+\_\+init(), mca\+\_\+io\+\_\+base\+\_\+open(), ompi\+\_\+init\+\_\+preconnect\+\_\+mpi(), ompi\+\_\+mpi\+\_\+init(), opal\+\_\+carto\+\_\+auto\+\_\+detect\+\_\+component\+\_\+query(), opal\+\_\+maffinity\+\_\+first\+\_\+use\+\_\+component\+\_\+query(), opal\+\_\+memchecker\+\_\+valgrind\+\_\+component\+\_\+query(), opal\+\_\+progress\+\_\+init(), and orte\+\_\+plm\+\_\+base\+\_\+orted\+\_\+append\+\_\+basic\+\_\+args().

\hypertarget{mca__base__param_8h_a0113ca0d14a12c49bc5b3503983b95b9}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+find\+\_\+int@{mca\+\_\+base\+\_\+param\+\_\+find\+\_\+int}}
\index{mca\+\_\+base\+\_\+param\+\_\+find\+\_\+int@{mca\+\_\+base\+\_\+param\+\_\+find\+\_\+int}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+find\+\_\+int}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+find\+\_\+int (
\begin{DoxyParamCaption}
\item[{const {\bf mca\+\_\+base\+\_\+component\+\_\+t} $\ast$}]{component, }
\item[{const char $\ast$}]{param\+\_\+name, }
\item[{char $\ast$$\ast$}]{env, }
\item[{int $\ast$}]{current\+\_\+value}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_a0113ca0d14a12c49bc5b3503983b95b9}


Find an M\+C\+A parameter in an env array based on its names. 


\begin{DoxyParams}{Parameters}
{\em component} & \mbox{[}in\mbox{]} Pointer to the component for which the parameter was registered. \\
\hline
{\em param\+\_\+name} & \mbox{[}in\mbox{]} The name of the parameter being registered (string). \\
\hline
{\em env} & \mbox{[}in\mbox{]} N\+U\+L\+L-\/terminated list of strings (e.\+g., from an environment). \\
\hline
{\em current\+\_\+value} & \mbox{[}out\mbox{]} Return the current value (if found).\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+P\+A\+L\+\_\+\+E\+R\+R\+O\+R} & If the parameter was not found.\\
\hline
\end{DoxyRetVals}
Look for a specific M\+C\+A parameter in an environment and return its value 

References mca\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t\+::mca\+\_\+component\+\_\+name, and mca\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t\+::mca\+\_\+type\+\_\+name.

\hypertarget{mca__base__param_8h_a37695ba644dd489e505b7c09c9583b2d}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+find\+\_\+int\+\_\+name@{mca\+\_\+base\+\_\+param\+\_\+find\+\_\+int\+\_\+name}}
\index{mca\+\_\+base\+\_\+param\+\_\+find\+\_\+int\+\_\+name@{mca\+\_\+base\+\_\+param\+\_\+find\+\_\+int\+\_\+name}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+find\+\_\+int\+\_\+name}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+find\+\_\+int\+\_\+name (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{type, }
\item[{const char $\ast$}]{param\+\_\+name, }
\item[{char $\ast$$\ast$}]{env, }
\item[{int $\ast$}]{current\+\_\+value}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_a37695ba644dd489e505b7c09c9583b2d}


Find an M\+C\+A parameter (in an env array) that is not associated with a component. 


\begin{DoxyParams}{Parameters}
{\em type} & \mbox{[}in\mbox{]} Although this parameter is not associated with a component, it still must have a string type name that will act as a prefix (string). \\
\hline
{\em param\+\_\+name} & \mbox{[}in\mbox{]} The name of the parameter being registered (string). \\
\hline
{\em env} & \mbox{[}in\mbox{]} N\+U\+L\+L-\/terminated list of strings (e.\+g., from an environment). \\
\hline
{\em current\+\_\+value} & \mbox{[}out\mbox{]} Return the current value (if found).\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+P\+A\+L\+\_\+\+E\+R\+R\+O\+R} & If the parameter was not found.\\
\hline
\end{DoxyRetVals}
Look for a specific M\+C\+A parameter in an environment and return its value \hypertarget{mca__base__param_8h_a3231341470cdd0c42ef43bcf839ef84f}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+find\+\_\+string@{mca\+\_\+base\+\_\+param\+\_\+find\+\_\+string}}
\index{mca\+\_\+base\+\_\+param\+\_\+find\+\_\+string@{mca\+\_\+base\+\_\+param\+\_\+find\+\_\+string}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+find\+\_\+string}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+find\+\_\+string (
\begin{DoxyParamCaption}
\item[{const {\bf mca\+\_\+base\+\_\+component\+\_\+t} $\ast$}]{component, }
\item[{const char $\ast$}]{param\+\_\+name, }
\item[{char $\ast$$\ast$}]{env, }
\item[{char $\ast$$\ast$}]{current\+\_\+value}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_a3231341470cdd0c42ef43bcf839ef84f}


Find a string M\+C\+A parameter in an env array based on its names. 


\begin{DoxyParams}{Parameters}
{\em component} & \mbox{[}in\mbox{]} Pointer to the component for which the parameter was registered. \\
\hline
{\em param\+\_\+name} & \mbox{[}in\mbox{]} The name of the parameter being registered (string). \\
\hline
{\em env} & \mbox{[}in\mbox{]} N\+U\+L\+L-\/terminated list of strings (e.\+g., from an environment). \\
\hline
{\em current\+\_\+value} & \mbox{[}out\mbox{]} Return the current value (if found).\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+P\+A\+L\+\_\+\+E\+R\+R\+O\+R} & If the parameter was not found.\\
\hline
\end{DoxyRetVals}
Look for a specific M\+C\+A parameter in an environment and return its value 

References mca\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t\+::mca\+\_\+component\+\_\+name, and mca\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t\+::mca\+\_\+type\+\_\+name.

\hypertarget{mca__base__param_8h_add57fc41f1e572412dd0d5e6b67a7e47}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+find\+\_\+string\+\_\+name@{mca\+\_\+base\+\_\+param\+\_\+find\+\_\+string\+\_\+name}}
\index{mca\+\_\+base\+\_\+param\+\_\+find\+\_\+string\+\_\+name@{mca\+\_\+base\+\_\+param\+\_\+find\+\_\+string\+\_\+name}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+find\+\_\+string\+\_\+name}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+find\+\_\+string\+\_\+name (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{type, }
\item[{const char $\ast$}]{param\+\_\+name, }
\item[{char $\ast$$\ast$}]{env, }
\item[{char $\ast$$\ast$}]{current\+\_\+value}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_add57fc41f1e572412dd0d5e6b67a7e47}


Find a string M\+C\+A parameter (in an env array) that is not associated with a component. 


\begin{DoxyParams}{Parameters}
{\em type} & \mbox{[}in\mbox{]} Although this parameter is not associated with a component, it still must have a string type name that will act as a prefix (string). \\
\hline
{\em param\+\_\+name} & \mbox{[}in\mbox{]} The name of the parameter being registered (string). \\
\hline
{\em env} & \mbox{[}in\mbox{]} N\+U\+L\+L-\/terminated list of strings (e.\+g., from an environment). \\
\hline
{\em current\+\_\+value} & \mbox{[}out\mbox{]} Return the current value (if found).\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+P\+A\+L\+\_\+\+E\+R\+R\+O\+R} & If the parameter was not found.\\
\hline
\end{DoxyRetVals}
Look for a specific M\+C\+A parameter in an environment and return its value \hypertarget{mca__base__param_8h_a9d52b0268df183d46d5e5c4cf7ac882c}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+init@{mca\+\_\+base\+\_\+param\+\_\+init}}
\index{mca\+\_\+base\+\_\+param\+\_\+init@{mca\+\_\+base\+\_\+param\+\_\+init}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+init}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+init (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_a9d52b0268df183d46d5e5c4cf7ac882c}


Initialize the M\+C\+A parameter system. 


\begin{DoxyRetVals}{Return values}
{\em O\+P\+A\+L\+\_\+\+S\+U\+C\+C\+E\+S\+S} & This function initalizes the M\+C\+A parameter system. It is invoked internally (by mca\+\_\+base\+\_\+open()) and is only documented here for completeness. \\
\hline
\end{DoxyRetVals}


References mca\+\_\+base\+\_\+param\+\_\+recache\+\_\+files(), and O\+B\+J\+\_\+\+C\+O\+N\+S\+T\+R\+U\+C\+T.



Referenced by opal\+\_\+init\+\_\+util().

\hypertarget{mca__base__param_8h_a0098cb54feb368b051354807c230e50b}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+int@{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+int}}
\index{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+int@{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+int}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+int}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+int (
\begin{DoxyParamCaption}
\item[{int}]{index, }
\item[{int $\ast$}]{value}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_a0098cb54feb368b051354807c230e50b}


Look up an integer M\+C\+A parameter. 


\begin{DoxyParams}{Parameters}
{\em index} & Index previous returned from \hyperlink{mca__base__param_8h_a66fd2603b63658f054f7a6a54891c0c2}{mca\+\_\+base\+\_\+param\+\_\+register\+\_\+int()}. \\
\hline
{\em value} & Pointer to int where the parameter value will be stored.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
O\+P\+A\+L\+\_\+\+E\+R\+R\+O\+R Upon failure. The contents of value are undefined. 

O\+P\+A\+L\+\_\+\+S\+U\+C\+C\+E\+S\+S Upon success. value will be filled with the parameter's current value.
\end{DoxyReturn}
The value of a specific M\+C\+A parameter can be looked up using the return value from \hyperlink{mca__base__param_8h_a66fd2603b63658f054f7a6a54891c0c2}{mca\+\_\+base\+\_\+param\+\_\+register\+\_\+int()}. 

References mca\+\_\+base\+\_\+param\+\_\+storage\+\_\+t\+::intval.



Referenced by ompi\+\_\+init\+\_\+preconnect\+\_\+mpi(), ompi\+\_\+mpi\+\_\+init(), opal\+\_\+carto\+\_\+auto\+\_\+detect\+\_\+component\+\_\+query(), opal\+\_\+dss\+\_\+open(), opal\+\_\+maffinity\+\_\+first\+\_\+use\+\_\+component\+\_\+query(), opal\+\_\+memchecker\+\_\+valgrind\+\_\+component\+\_\+query(), opal\+\_\+progress\+\_\+init(), and orte\+\_\+rmaps\+\_\+base\+\_\+open().

\hypertarget{mca__base__param_8h_a5fb14ea4a3e94840270da17fb0c84af9}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+source@{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+source}}
\index{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+source@{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+source}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+source}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+source (
\begin{DoxyParamCaption}
\item[{int}]{index, }
\item[{{\bf mca\+\_\+base\+\_\+param\+\_\+source\+\_\+t} $\ast$}]{source, }
\item[{char $\ast$$\ast$}]{source\+\_\+file}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_a5fb14ea4a3e94840270da17fb0c84af9}


Lookup the source of an M\+C\+A parameter's value. 


\begin{DoxyParams}{Parameters}
{\em index} & \mbox{[}in\mbox{]} Index of M\+C\+A parameter to set \\
\hline
{\em source} & \mbox{[}out\mbox{]} Enum value indicating source \\
\hline
{\em source\+\_\+file} & \mbox{[}out\mbox{]} If value came from source, name of the file that set it. The caller should not modify or free this string. It is permissable to specify source\+\_\+file==N\+U\+L\+L if the caller does not care to know the filename.\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+P\+A\+L\+\_\+\+E\+R\+R\+O\+R} & If the parameter was not found. \\
\hline
{\em O\+P\+A\+L\+\_\+\+S\+U\+C\+C\+E\+S\+S} & Upon success.\\
\hline
\end{DoxyRetVals}
This function looks up to see where the value of an M\+C\+A parameter came from. 

Referenced by mca\+\_\+base\+\_\+param\+\_\+check\+\_\+exclusive\+\_\+string().

\hypertarget{mca__base__param_8h_a0af1755e8da7d760f50a20d514f67700}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+string@{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+string}}
\index{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+string@{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+string}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+string}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+string (
\begin{DoxyParamCaption}
\item[{int}]{index, }
\item[{char $\ast$$\ast$}]{value}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_a0af1755e8da7d760f50a20d514f67700}


Look up a string M\+C\+A parameter. 


\begin{DoxyParams}{Parameters}
{\em index} & Index previous returned from \hyperlink{mca__base__param_8h_a475d552a8bfa1f2690d9b5add80cda31}{mca\+\_\+base\+\_\+param\+\_\+register\+\_\+string()}. \\
\hline
{\em value} & Pointer to (char $\ast$) where the parameter value will be stored.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
O\+P\+A\+L\+\_\+\+E\+R\+R\+O\+R Upon failure. The contents of value are undefined. 

O\+P\+A\+L\+\_\+\+S\+U\+C\+C\+E\+S\+S Upon success. value will be filled with the parameter's current value.
\end{DoxyReturn}
Note that if a string value is read in from a file then it will never be N\+U\+L\+L. It will always have a value, even if that value is the empty string.

Strings returned in the {\itshape value} parameter should later be free()'ed.

The value of a specific M\+C\+A parameter can be looked up using the return value from \hyperlink{mca__base__param_8h_a475d552a8bfa1f2690d9b5add80cda31}{mca\+\_\+base\+\_\+param\+\_\+register\+\_\+string()}. 

References mca\+\_\+base\+\_\+param\+\_\+storage\+\_\+t\+::stringval.



Referenced by mca\+\_\+btl\+\_\+base\+\_\+open(), mca\+\_\+btl\+\_\+ud\+\_\+component\+\_\+init(), mca\+\_\+io\+\_\+base\+\_\+delete(), mca\+\_\+io\+\_\+base\+\_\+file\+\_\+select(), and orte\+\_\+plm\+\_\+base\+\_\+orted\+\_\+append\+\_\+basic\+\_\+args().

\hypertarget{mca__base__param_8h_a00e9c730f3b88aff511735cd2f72707d}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+recache\+\_\+files@{mca\+\_\+base\+\_\+param\+\_\+recache\+\_\+files}}
\index{mca\+\_\+base\+\_\+param\+\_\+recache\+\_\+files@{mca\+\_\+base\+\_\+param\+\_\+recache\+\_\+files}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+recache\+\_\+files}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+recache\+\_\+files (
\begin{DoxyParamCaption}
\item[{bool}]{rel\+\_\+path\+\_\+search}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_a00e9c730f3b88aff511735cd2f72707d}


Recache the M\+C\+A param files. 


\begin{DoxyParams}{Parameters}
{\em rel\+\_\+path\+\_\+search} & If a relative path is found, search the path even if the relative path in pointing to the current working directory. \\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+P\+A\+L\+\_\+\+S\+U\+C\+C\+E\+S\+S} & \\
\hline
\end{DoxyRetVals}


References mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+string\+\_\+name(), and opal\+\_\+output().



Referenced by mca\+\_\+base\+\_\+param\+\_\+init().

\hypertarget{mca__base__param_8h_a8e75dd884db8fec281d79a737066278b}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+int@{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+int}}
\index{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+int@{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+int}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+int}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+int (
\begin{DoxyParamCaption}
\item[{const {\bf mca\+\_\+base\+\_\+component\+\_\+t} $\ast$}]{component, }
\item[{const char $\ast$}]{param\+\_\+name, }
\item[{const char $\ast$}]{help\+\_\+msg, }
\item[{bool}]{internal, }
\item[{bool}]{read\+\_\+only, }
\item[{int}]{default\+\_\+value, }
\item[{int $\ast$}]{current\+\_\+value}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_a8e75dd884db8fec281d79a737066278b}


Register an integer M\+C\+A parameter. 


\begin{DoxyParams}{Parameters}
{\em component} & \mbox{[}in\mbox{]} Pointer to the component for which the parameter is being registered. \\
\hline
{\em param\+\_\+name} & \mbox{[}in\mbox{]} The name of the parameter being registered (string). \\
\hline
{\em help\+\_\+msg} & \mbox{[}in\mbox{]} A string describing the use and valid values of the parameter (string). \\
\hline
{\em internal} & \mbox{[}in\mbox{]} Indicates whether the parameter is internal (i.\+e., not to be shown to users) or not (bool). \\
\hline
{\em read\+\_\+only} & \mbox{[}in\mbox{]} Indicates whether the parameter value can ever change (bool). \\
\hline
{\em default\+\_\+value} & \mbox{[}in\mbox{]} The value that is used for this parameter if the user does not supply one. \\
\hline
{\em current\+\_\+value} & \mbox{[}out\mbox{]} After registering the parameter, look up its current value and return it unless current\+\_\+value is N\+U\+L\+L.\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+P\+A\+L\+\_\+\+E\+R\+R\+O\+R} & Upon failure to register the parameter. \\
\hline
{\em index} & Index value that can be used with \hyperlink{mca__base__param_8h_a0098cb54feb368b051354807c230e50b}{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+int()} to retrieve the value of the parameter.\\
\hline
\end{DoxyRetVals}
This function registers an integer M\+C\+A parameter and associates it with a specific component.

If the \{component\} pointer is not N\+U\+L\+L, the type name and component name are automatically prefixed to the parameter name. Otherwise, the \{param\+\_\+name\} is used as the full parameter name.

The \{help\+\_\+msg\} is a string of arbitrary length (verbose is good!) for explaining what the parameter is for and what its valid values are. This message is used in help messages, such as the output from the ompi\+\_\+info executable.

If \{internal\} is set to true, this parameter is not shown by default in the output of ompi\+\_\+info. That is, this parameter is considered internal to the Open M\+P\+I implementation and is not supposed to be viewed / changed by the user.

If \{read\+\_\+only\} is true, then the registered \{default\+\_\+value\} will be the only value ever returned when this parameter is looked up. That is, command line, environment, and file overrides will be ignored. This is useful, for example, for reporting information to the user (e.\+g., the version of the G\+M library that was linked against).

If the \{current\+\_\+value\} is not N\+U\+L\+L, when the registration is complete, the parameter system will look up the current value of the parameter and return it in \{current\+\_\+value\}. 

References mca\+\_\+base\+\_\+param\+\_\+storage\+\_\+t\+::intval, M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T, mca\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t\+::mca\+\_\+component\+\_\+name, and mca\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t\+::mca\+\_\+type\+\_\+name.



Referenced by mca\+\_\+btl\+\_\+elan\+\_\+component\+\_\+open(), mca\+\_\+btl\+\_\+self\+\_\+component\+\_\+open(), and orte\+\_\+ras\+\_\+gridengine\+\_\+open().

\hypertarget{mca__base__param_8h_abc92e2379826e5d2d66ecfdf3cbecfaa}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+int\+\_\+name@{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+int\+\_\+name}}
\index{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+int\+\_\+name@{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+int\+\_\+name}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+int\+\_\+name}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+int\+\_\+name (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{type, }
\item[{const char $\ast$}]{param\+\_\+name, }
\item[{const char $\ast$}]{help\+\_\+msg, }
\item[{bool}]{internal, }
\item[{bool}]{read\+\_\+only, }
\item[{int}]{default\+\_\+value, }
\item[{int $\ast$}]{current\+\_\+value}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_abc92e2379826e5d2d66ecfdf3cbecfaa}


Register an integer M\+C\+A parameter that is not associated with a component. 


\begin{DoxyParams}{Parameters}
{\em type} & \mbox{[}in\mbox{]} Although this parameter is not associated with a component, it still must have a string type name that will act as a prefix (string). \\
\hline
{\em param\+\_\+name} & \mbox{[}in\mbox{]} The name of the parameter being registered (string). \\
\hline
{\em help\+\_\+msg} & \mbox{[}in\mbox{]} A string describing the use and valid values of the parameter (string). \\
\hline
{\em internal} & \mbox{[}in\mbox{]} Indicates whether the parameter is internal (i.\+e., not to be shown to users) or not (bool). \\
\hline
{\em read\+\_\+only} & \mbox{[}in\mbox{]} Indicates whether the parameter value can ever change (bool). \\
\hline
{\em default\+\_\+value} & \mbox{[}in\mbox{]} The value that is used for this parameter if the user does not supply one. \\
\hline
{\em current\+\_\+value} & \mbox{[}out\mbox{]} After registering the parameter, look up its current value and return it unless current\+\_\+value is N\+U\+L\+L.\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+P\+A\+L\+\_\+\+E\+R\+R\+O\+R} & Upon failure to register the parameter. \\
\hline
{\em index} & Index value that can be used with \hyperlink{mca__base__param_8h_a0af1755e8da7d760f50a20d514f67700}{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+string()} to retrieve the value of the parameter.\\
\hline
\end{DoxyRetVals}
This function is identical to \hyperlink{mca__base__param_8h_a8e75dd884db8fec281d79a737066278b}{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+int()} except that it registers parameters that are not associated with components. For example, it can be used to register parameters associated with a framework base or an overall layer (e.\+g., the M\+P\+I layer, or the M\+C\+A base system framework itself). Typical \char`\"{}type\char`\"{} strings are\+:

\char`\"{}mca\char`\"{}\+: for the M\+C\+A base framework itself framework name\+: for any given framework \char`\"{}mpi\char`\"{}\+: for parameters that apply to the overall M\+P\+I layer \char`\"{}orte\char`\"{}\+: for parameters that apply to the overall O\+R\+T\+E layer \char`\"{}btl\char`\"{}\+: for parameters to the O\+M\+P\+I B\+T\+L framework ...etc.

Note that the type should always be a framework or a level name (e.\+g., \char`\"{}btl\char`\"{} or \char`\"{}mpi\char`\"{}) -- it should not include the component name, even if the component is the base of a framework. Hence, \char`\"{}btl\+\_\+base\char`\"{} is not a valid type name. Specifically, registering a parameter with an unrecognized type is not an error, but ompi\+\_\+info has a hard-\/coded list of frameworks and levels; parameters that have recongized types, although they can be used by the user, will not be displayed by ompi\+\_\+info.

Note that if you use \hyperlink{mca__base__param_8h_afbea8fa570947b14206e0a43ac2f59e3}{mca\+\_\+base\+\_\+param\+\_\+find()} to lookup the index of the registered parameter, the \char`\"{}component\char`\"{} argument should be N\+U\+L\+L (because it is not specified in this registration function, and is therefore registered with a N\+U\+L\+L value). 

References mca\+\_\+base\+\_\+param\+\_\+storage\+\_\+t\+::intval, and M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T.



Referenced by mca\+\_\+btl\+\_\+base\+\_\+open(), mca\+\_\+io\+\_\+base\+\_\+open(), ompi\+\_\+mpi\+\_\+finalize(), ompi\+\_\+mpi\+\_\+init(), ompi\+\_\+op\+\_\+base\+\_\+open(), opal\+\_\+cr\+\_\+init(), opal\+\_\+register\+\_\+params(), orte\+\_\+ess\+\_\+base\+\_\+open(), orte\+\_\+odls\+\_\+base\+\_\+open(), orte\+\_\+plm\+\_\+base\+\_\+open(), orte\+\_\+ras\+\_\+base\+\_\+open(), orte\+\_\+register\+\_\+params(), and orte\+\_\+rmaps\+\_\+base\+\_\+open().

\hypertarget{mca__base__param_8h_a21d3c925ec655e05b0b4ceaa706393cf}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+string@{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+string}}
\index{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+string@{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+string}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+string}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+string (
\begin{DoxyParamCaption}
\item[{const {\bf mca\+\_\+base\+\_\+component\+\_\+t} $\ast$}]{component, }
\item[{const char $\ast$}]{param\+\_\+name, }
\item[{const char $\ast$}]{help\+\_\+msg, }
\item[{bool}]{internal, }
\item[{bool}]{read\+\_\+only, }
\item[{const char $\ast$}]{default\+\_\+value, }
\item[{char $\ast$$\ast$}]{current\+\_\+value}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_a21d3c925ec655e05b0b4ceaa706393cf}


Register a string M\+C\+A parameter. 


\begin{DoxyParams}{Parameters}
{\em component} & \mbox{[}in\mbox{]} Pointer to the component for which the parameter is being registered. \\
\hline
{\em param\+\_\+name} & \mbox{[}in\mbox{]} The name of the parameter being registered (string). \\
\hline
{\em help\+\_\+msg} & \mbox{[}in\mbox{]} A string describing the use and valid values of the parameter (string). \\
\hline
{\em internal} & \mbox{[}in\mbox{]} Indicates whether the parameter is internal (i.\+e., not to be shown to users) or not (bool). \\
\hline
{\em read\+\_\+only} & \mbox{[}in\mbox{]} Indicates whether the parameter value can ever change (bool). \\
\hline
{\em default\+\_\+value} & \mbox{[}in\mbox{]} The value that is used for this parameter if the user does not supply one. \\
\hline
{\em current\+\_\+value} & \mbox{[}out\mbox{]} After registering the parameter, look up its current value and return it unless current\+\_\+value is N\+U\+L\+L.\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+P\+A\+L\+\_\+\+E\+R\+R\+O\+R} & Upon failure to register the parameter. \\
\hline
{\em index} & Index value that can be used with \hyperlink{mca__base__param_8h_a0af1755e8da7d760f50a20d514f67700}{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+string()} to retrieve the value of the parameter.\\
\hline
\end{DoxyRetVals}
Note that if a string value is read in from a file then it will never be N\+U\+L\+L. It will always have a value, even if that value is the empty string.

N\+O\+T\+E\+: Strings returned in the {\itshape current\+\_\+value} parameter should later be free()'ed.

This function is identical to \hyperlink{mca__base__param_8h_a8e75dd884db8fec281d79a737066278b}{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+int()} except that you are registering a string parameter with an associated string default value (which is {\itshape not} allowed to be N\+U\+L\+L). See \hyperlink{mca__base__param_8h_a8e75dd884db8fec281d79a737066278b}{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+int()} for all other details. 

References M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+N\+G, mca\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t\+::mca\+\_\+component\+\_\+name, mca\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t\+::mca\+\_\+type\+\_\+name, and mca\+\_\+base\+\_\+param\+\_\+storage\+\_\+t\+::stringval.



Referenced by mca\+\_\+btl\+\_\+elan\+\_\+component\+\_\+open().

\hypertarget{mca__base__param_8h_a8f16aab79f5667c87e8c781586860a96}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+string\+\_\+name@{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+string\+\_\+name}}
\index{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+string\+\_\+name@{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+string\+\_\+name}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+string\+\_\+name}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+string\+\_\+name (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{type, }
\item[{const char $\ast$}]{param\+\_\+name, }
\item[{const char $\ast$}]{help\+\_\+msg, }
\item[{bool}]{internal, }
\item[{bool}]{read\+\_\+only, }
\item[{const char $\ast$}]{default\+\_\+value, }
\item[{char $\ast$$\ast$}]{current\+\_\+value}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_a8f16aab79f5667c87e8c781586860a96}


Register a string M\+C\+A parameter that is not associated with a component. 


\begin{DoxyParams}{Parameters}
{\em type} & \mbox{[}in\mbox{]} Although this parameter is not associated with a component, it still must have a string type name that will act as a prefix (string). \\
\hline
{\em param\+\_\+name} & \mbox{[}in\mbox{]} The name of the parameter being registered (string). \\
\hline
{\em help\+\_\+msg} & \mbox{[}in\mbox{]} A string describing the use and valid values of the parameter (string). \\
\hline
{\em internal} & \mbox{[}in\mbox{]} Indicates whether the parameter is internal (i.\+e., not to be shown to users) or not (bool). \\
\hline
{\em read\+\_\+only} & \mbox{[}in\mbox{]} Indicates whether the parameter value can ever change (bool). \\
\hline
{\em default\+\_\+value} & \mbox{[}in\mbox{]} The value that is used for this parameter if the user does not supply one. \\
\hline
{\em current\+\_\+value} & \mbox{[}out\mbox{]} After registering the parameter, look up its current value and return it unless current\+\_\+value is N\+U\+L\+L.\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+P\+A\+L\+\_\+\+E\+R\+R\+O\+R} & Upon failure to register the parameter. \\
\hline
{\em index} & Index value that can be used with \hyperlink{mca__base__param_8h_a0af1755e8da7d760f50a20d514f67700}{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+string()} to retrieve the value of the parameter.\\
\hline
\end{DoxyRetVals}
Note that if a string value is read in from a file then it will never be N\+U\+L\+L. It will always have a value, even if that value is the empty string.

This function is identical to \hyperlink{mca__base__param_8h_a21d3c925ec655e05b0b4ceaa706393cf}{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+string()} except that it registers parameters that are not associated with components. For example, it can be used to register parameters associated with a framework base or an overall layer (e.\+g., the M\+P\+I layer, or the M\+C\+A base system framework itself). Typical \char`\"{}type\char`\"{} strings are\+:

\char`\"{}mca\char`\"{}\+: for the M\+C\+A base framework itself framework name\+: for any given framework \char`\"{}mpi\char`\"{}\+: for parameters that apply to the overall M\+P\+I layer \char`\"{}orte\char`\"{}\+: for parameters that apply to the overall O\+R\+T\+E layer \char`\"{}btl\char`\"{}\+: for parameters to the O\+M\+P\+I B\+T\+L framework ...etc.

Note that the type should always be a framework or a level name (e.\+g., \char`\"{}btl\char`\"{} or \char`\"{}mpi\char`\"{}) -- it should not include the component name, even if the component is the base of a framework. Hence, \char`\"{}btl\+\_\+base\char`\"{} is not a valid type name. Specifically, registering a parameter with an unrecognized type is not an error, but ompi\+\_\+info has a hard-\/coded list of frameworks and levels; parameters that have recongized types, although they can be used by the user, will not be displayed by ompi\+\_\+info.

Note that if you use \hyperlink{mca__base__param_8h_afbea8fa570947b14206e0a43ac2f59e3}{mca\+\_\+base\+\_\+param\+\_\+find()} to lookup the index of the registered parameter, the \char`\"{}component\char`\"{} argument should be N\+U\+L\+L (because it is not specified in this registration function, and is therefore registered with a N\+U\+L\+L value). 

References M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+N\+G, and mca\+\_\+base\+\_\+param\+\_\+storage\+\_\+t\+::stringval.



Referenced by mca\+\_\+base\+\_\+param\+\_\+recache\+\_\+files(), ompi\+\_\+mpi\+\_\+init(), ompi\+\_\+wait\+\_\+for\+\_\+debugger(), opal\+\_\+cr\+\_\+init(), opal\+\_\+register\+\_\+params(), orte\+\_\+ess\+\_\+base\+\_\+orted\+\_\+setup(), orte\+\_\+notifier\+\_\+base\+\_\+open(), orte\+\_\+register\+\_\+params(), orte\+\_\+rmaps\+\_\+base\+\_\+open(), orte\+\_\+rml\+\_\+base\+\_\+open(), and orte\+\_\+rml\+\_\+base\+\_\+select().

\hypertarget{mca__base__param_8h_a87fd52313d8b0576ef5c79d464ec9813}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+syn@{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+syn}}
\index{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+syn@{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+syn}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+syn}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+syn (
\begin{DoxyParamCaption}
\item[{int}]{orignal\+\_\+index, }
\item[{const {\bf mca\+\_\+base\+\_\+component\+\_\+t} $\ast$}]{syn\+\_\+component, }
\item[{const char $\ast$}]{syn\+\_\+param\+\_\+name, }
\item[{bool}]{deprecated}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_a87fd52313d8b0576ef5c79d464ec9813}


Register a synonym name for an M\+C\+A parameter. 


\begin{DoxyParams}{Parameters}
{\em original\+\_\+index} & \mbox{[}in\mbox{]} The index of the original parameter to create a synonym for. \\
\hline
{\em syn\+\_\+component} & \mbox{[}in\mbox{]} Pointer to the component for which the synonym is being registered. \\
\hline
{\em syn\+\_\+param\+\_\+name} & \mbox{[}in\mbox{]} Parameter name of the synonym to be created (string) \\
\hline
{\em deprecated} & If true, a warning will be shown if this synonym is used to set the parameter's value (unless the warnings are silenced)\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
O\+P\+A\+L\+\_\+\+S\+U\+C\+C\+E\+S\+S Upon success. 

O\+P\+A\+L\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+P\+A\+R\+A\+M If the index value is invalid. 

O\+P\+A\+L\+\_\+\+E\+R\+R\+O\+R Otherwise
\end{DoxyReturn}
Upon success, this function creates a synonym M\+C\+A parameter that will be treated almost exactly like the original. The type (int or string) is irrelevant; this function simply creates a new name that by which the same parameter value is accessible.

Note that the original parameter name has precendence over all synonyms. For example, consider the case if parameter is originally registered under the name \char`\"{}\+A\char`\"{} and is later registered with synonyms \char`\"{}\+B\char`\"{} and \char`\"{}\+C\char`\"{}. If the user sets values for both M\+C\+A parameter names \char`\"{}\+A\char`\"{} and \char`\"{}\+B\char`\"{}, the value associated with the \char`\"{}\+A\char`\"{} name will be used and the value associated with the \char`\"{}\+B\char`\"{} will be ignored (and will not even be visible by the mca\+\_\+base\+\_\+param\+\_\+$\ast$() A\+P\+I). If the user sets values for both M\+C\+A parameter names \char`\"{}\+B\char`\"{} and \char`\"{}\+C\char`\"{} (and does {\itshape not} set a value for \char`\"{}\+A\char`\"{}), it is undefined as to which value will be used. 

References mca\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t\+::mca\+\_\+component\+\_\+name, and mca\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t\+::mca\+\_\+type\+\_\+name.

\hypertarget{mca__base__param_8h_a5c3a0b23dda29d1b5531f06692e82514}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+syn\+\_\+name@{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+syn\+\_\+name}}
\index{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+syn\+\_\+name@{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+syn\+\_\+name}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+syn\+\_\+name}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+syn\+\_\+name (
\begin{DoxyParamCaption}
\item[{int}]{orignal\+\_\+index, }
\item[{const char $\ast$}]{syn\+\_\+type, }
\item[{const char $\ast$}]{syn\+\_\+param\+\_\+name, }
\item[{bool}]{deprecated}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_a5c3a0b23dda29d1b5531f06692e82514}


Register an M\+C\+A parameter synonym that is not associated with a component. 


\begin{DoxyParams}{Parameters}
{\em original\+\_\+index} & \mbox{[}in\mbox{]} The index of the original parameter to create a synonym for. \\
\hline
{\em type} & \mbox{[}in\mbox{]} Although this synonym is not associated with a component, it still must have a string type name that will act as a prefix (string). \\
\hline
{\em syn\+\_\+param\+\_\+name} & \mbox{[}in\mbox{]} Parameter name of the synonym to be created (string) \\
\hline
{\em deprecated} & If true, a warning will be shown if this synonym is used to set the parameter's value (unless the warnings are silenced)\\
\hline
\end{DoxyParams}
Essentially the same as \hyperlink{mca__base__param_8h_a87fd52313d8b0576ef5c79d464ec9813}{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+syn()}, but using a type name instead of a component.

See \hyperlink{mca__base__param_8h_abc92e2379826e5d2d66ecfdf3cbecfaa}{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+int\+\_\+name()} for guidence on type string values. 

Referenced by orte\+\_\+rmaps\+\_\+base\+\_\+open().

\hypertarget{mca__base__param_8h_a66fd2603b63658f054f7a6a54891c0c2}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+register\+\_\+int@{mca\+\_\+base\+\_\+param\+\_\+register\+\_\+int}}
\index{mca\+\_\+base\+\_\+param\+\_\+register\+\_\+int@{mca\+\_\+base\+\_\+param\+\_\+register\+\_\+int}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+register\+\_\+int}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+register\+\_\+int (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{type\+\_\+name, }
\item[{const char $\ast$}]{component\+\_\+name, }
\item[{const char $\ast$}]{param\+\_\+name, }
\item[{const char $\ast$}]{mca\+\_\+param\+\_\+name, }
\item[{int}]{default\+\_\+value}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_a66fd2603b63658f054f7a6a54891c0c2}
\begin{DoxyRefDesc}{Deprecated}
\item[\hyperlink{deprecated__deprecated000001}{Deprecated}]\end{DoxyRefDesc}


Register an integer M\+C\+A parameter (deprecated).


\begin{DoxyParams}{Parameters}
{\em type\+\_\+name} & \mbox{[}in\mbox{]} The M\+C\+A type (string). \\
\hline
{\em component\+\_\+name} & \mbox{[}in\mbox{]} The name of the component (string). \\
\hline
{\em param\+\_\+name} & \mbox{[}in\mbox{]} The name of the parameter being registered (string). \\
\hline
{\em mca\+\_\+param\+\_\+name} & \mbox{[}in\mbox{]} Optional parameter to override the user-\/visible name of this parameter (string). \\
\hline
{\em default\+\_\+value} & \mbox{[}in\mbox{]} The value that is used for this parameter if the user does not supply one.\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+P\+A\+L\+\_\+\+E\+R\+R\+O\+R} & Upon failure to register the parameter. \\
\hline
{\em index} & Index value that can be used with \hyperlink{mca__base__param_8h_a0098cb54feb368b051354807c230e50b}{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+int()} to retrieve the value of the parameter.\\
\hline
\end{DoxyRetVals}
This function is deprecated. Use \hyperlink{mca__base__param_8h_a8e75dd884db8fec281d79a737066278b}{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+int()} instead.

This function registers an integer M\+C\+A parameter and associates it with a specific component.

The default resulting M\+C\+A parameter name is \{type\+\_\+name\}\mbox{[}\+\_\+\{component\+\_\+name\}\mbox{]}\mbox{[}\+\_\+\{param\+\_\+name\}\mbox{]}.

\{component\+\_\+name\} is only included if it is non-\/\+N\+U\+L\+L. All components an should include their name; component frameworks should pass \char`\"{}base\char`\"{}. It is only permissible for the M\+C\+A base itself to pass N\+U\+L\+L for the component\+\_\+name.

Likewise, \{param\+\_\+name\} is also only included if it is non-\/\+N\+U\+L\+L. Components and frameworks can pass N\+U\+L\+L for this parameter if they wish.

In most cases, mca\+\_\+param\+\_\+name should be N\+U\+L\+L, in which case the user-\/visible name of this parameter will be the default form (as described above). Only in rare cases is it necessary (or advisable) to override the default name -- its use is strongly discouraged.

It is permissable to register a (type\+\_\+name, component\+\_\+name, param\+\_\+name) triple more than once; the same index value will be returned, but the default value will be changed to reflect the last registration. 

References mca\+\_\+base\+\_\+param\+\_\+storage\+\_\+t\+::intval, and M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T.



Referenced by opal\+\_\+dss\+\_\+open().

\hypertarget{mca__base__param_8h_a475d552a8bfa1f2690d9b5add80cda31}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+register\+\_\+string@{mca\+\_\+base\+\_\+param\+\_\+register\+\_\+string}}
\index{mca\+\_\+base\+\_\+param\+\_\+register\+\_\+string@{mca\+\_\+base\+\_\+param\+\_\+register\+\_\+string}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+register\+\_\+string}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+register\+\_\+string (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{type\+\_\+name, }
\item[{const char $\ast$}]{component\+\_\+name, }
\item[{const char $\ast$}]{param\+\_\+name, }
\item[{const char $\ast$}]{mca\+\_\+param\+\_\+name, }
\item[{const char $\ast$}]{default\+\_\+value}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_a475d552a8bfa1f2690d9b5add80cda31}
\begin{DoxyRefDesc}{Deprecated}
\item[\hyperlink{deprecated__deprecated000002}{Deprecated}]\end{DoxyRefDesc}


Register a string M\+C\+A parameter (deprecated).


\begin{DoxyParams}{Parameters}
{\em type\+\_\+name} & \mbox{[}in\mbox{]} The M\+C\+A type (string). \\
\hline
{\em component\+\_\+name} & \mbox{[}in\mbox{]} The name of the component (string). \\
\hline
{\em param\+\_\+name} & \mbox{[}in\mbox{]} The name of the parameter being registered (string). \\
\hline
{\em mca\+\_\+param\+\_\+name} & \mbox{[}in\mbox{]} Optional parameter to override the user-\/visible name of this parameter (string). \\
\hline
{\em default\+\_\+value} & \mbox{[}in\mbox{]} The value that is used for this parameter if the user does not supply one.\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+P\+A\+L\+\_\+\+E\+R\+R\+O\+R} & Upon failure to register the parameter. \\
\hline
{\em index} & Index value that can be used with \hyperlink{mca__base__param_8h_a0af1755e8da7d760f50a20d514f67700}{mca\+\_\+base\+\_\+param\+\_\+lookup\+\_\+string()} to retrieve the value of the parameter.\\
\hline
\end{DoxyRetVals}
This function is deprecated. Use \hyperlink{mca__base__param_8h_a21d3c925ec655e05b0b4ceaa706393cf}{mca\+\_\+base\+\_\+param\+\_\+reg\+\_\+string()} instead.

Note that if a string value is read in from a file then it will never be N\+U\+L\+L. It will always have a value, even if that value is the empty string.

This function is identical to \hyperlink{mca__base__param_8h_a66fd2603b63658f054f7a6a54891c0c2}{mca\+\_\+base\+\_\+param\+\_\+register\+\_\+int()} except that you are registering a string parameter with an associated string default value (which is {\itshape not} allowed to be N\+U\+L\+L). See \hyperlink{mca__base__param_8h_a66fd2603b63658f054f7a6a54891c0c2}{mca\+\_\+base\+\_\+param\+\_\+register\+\_\+int()} for all other details. 

References M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+N\+G, and mca\+\_\+base\+\_\+param\+\_\+storage\+\_\+t\+::stringval.



Referenced by mca\+\_\+btl\+\_\+base\+\_\+open().

\hypertarget{mca__base__param_8h_a0e00672c6cf7f351f8a14aa9e9e2d716}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+set\+\_\+int@{mca\+\_\+base\+\_\+param\+\_\+set\+\_\+int}}
\index{mca\+\_\+base\+\_\+param\+\_\+set\+\_\+int@{mca\+\_\+base\+\_\+param\+\_\+set\+\_\+int}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+set\+\_\+int}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+set\+\_\+int (
\begin{DoxyParamCaption}
\item[{int}]{index, }
\item[{int}]{value}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_a0e00672c6cf7f351f8a14aa9e9e2d716}


Sets an \char`\"{}override\char`\"{} value for an integer M\+C\+A parameter. 


\begin{DoxyParams}{Parameters}
{\em index} & \mbox{[}in\mbox{]} Index of M\+C\+A parameter to set \\
\hline
{\em value} & \mbox{[}in\mbox{]} The integer value to set\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+P\+A\+L\+\_\+\+E\+R\+R\+O\+R} & If the parameter was not found. \\
\hline
{\em O\+P\+A\+L\+\_\+\+S\+U\+C\+C\+E\+S\+S} & Upon success.\\
\hline
\end{DoxyRetVals}
This function sets an integer value on the M\+C\+A parameter indicated by the index value index. This value will be used in lieu of any other value from any other M\+C\+A source (environment variable, file, etc.) until the value is unset with \hyperlink{mca__base__param_8h_a5124f6e9717089d95b43901921a2d157}{mca\+\_\+base\+\_\+param\+\_\+unset()}.

This function may be invoked multiple times; each time, the last \char`\"{}set\char`\"{} value is replaced with the newest value. 

References mca\+\_\+base\+\_\+param\+\_\+storage\+\_\+t\+::intval, M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T, and mca\+\_\+base\+\_\+param\+\_\+unset().

\hypertarget{mca__base__param_8h_a49d1ce3e6584d72db98bf3d59c69165c}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+set\+\_\+internal@{mca\+\_\+base\+\_\+param\+\_\+set\+\_\+internal}}
\index{mca\+\_\+base\+\_\+param\+\_\+set\+\_\+internal@{mca\+\_\+base\+\_\+param\+\_\+set\+\_\+internal}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+set\+\_\+internal}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+set\+\_\+internal (
\begin{DoxyParamCaption}
\item[{int}]{index, }
\item[{bool}]{internal}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_a49d1ce3e6584d72db98bf3d59c69165c}


Set the \char`\"{}internal\char`\"{} flag on an M\+C\+A parameter to true or false. 


\begin{DoxyParams}{Parameters}
{\em index} & \mbox{[}in\mbox{]} Index previous returned from \hyperlink{mca__base__param_8h_a475d552a8bfa1f2690d9b5add80cda31}{mca\+\_\+base\+\_\+param\+\_\+register\+\_\+string()} or \hyperlink{mca__base__param_8h_a66fd2603b63658f054f7a6a54891c0c2}{mca\+\_\+base\+\_\+param\+\_\+register\+\_\+int()}. \\
\hline
{\em internal} & \mbox{[}in\mbox{]} Boolean indicating whether the M\+C\+A parameter is internal (private) or public.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
O\+P\+A\+L\+\_\+\+S\+U\+C\+C\+E\+S\+S If it can find the parameter to reset 

O\+P\+A\+L\+\_\+\+E\+R\+R\+O\+R Otherwise
\end{DoxyReturn}
\char`\"{}\+Internal\char`\"{} M\+C\+A parameters are ones that are not intentended to be seen or modified by users or user applications. These include values that are set at run time, such as T\+C\+P ports, I\+P addresses, etc. By setting the \char`\"{}internal\char`\"{} flag, internal M\+C\+A parameters are not displayed during the output of ompi\+\_\+info and M\+P\+I\+\_\+\+I\+N\+I\+T (at least, they're not displayed by default), thus keeping them away from prying user eyes. 

References mca\+\_\+base\+\_\+param\+\_\+t\+::mbp\+\_\+internal.

\hypertarget{mca__base__param_8h_a9c01ccf2cc4795d741e88be6e8b867c4}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+set\+\_\+string@{mca\+\_\+base\+\_\+param\+\_\+set\+\_\+string}}
\index{mca\+\_\+base\+\_\+param\+\_\+set\+\_\+string@{mca\+\_\+base\+\_\+param\+\_\+set\+\_\+string}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+set\+\_\+string}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+set\+\_\+string (
\begin{DoxyParamCaption}
\item[{int}]{index, }
\item[{char $\ast$}]{value}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_a9c01ccf2cc4795d741e88be6e8b867c4}


Sets an \char`\"{}override\char`\"{} value for an string M\+C\+A parameter. 


\begin{DoxyParams}{Parameters}
{\em index} & \mbox{[}in\mbox{]} Index of M\+C\+A parameter to set \\
\hline
{\em value} & \mbox{[}in\mbox{]} The string value to set\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+P\+A\+L\+\_\+\+E\+R\+R\+O\+R} & If the parameter was not found. \\
\hline
{\em O\+P\+A\+L\+\_\+\+S\+U\+C\+C\+E\+S\+S} & Upon success.\\
\hline
\end{DoxyRetVals}
This function sets a string value on the M\+C\+A parameter indicated by the index value index. This value will be used in lieu of any other value from any other M\+C\+A source (environment variable, file, etc.) until the value is unset with \hyperlink{mca__base__param_8h_a5124f6e9717089d95b43901921a2d157}{mca\+\_\+base\+\_\+param\+\_\+unset()}.

The string is copied by value; the string \char`\"{}value\char`\"{} parameter does not become \char`\"{}owned\char`\"{} by the parameter subsystem.

This function may be invoked multiple times; each time, the last \char`\"{}set\char`\"{} value is replaced with the newest value (the old value is discarded). 

References M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+N\+G, mca\+\_\+base\+\_\+param\+\_\+unset(), and mca\+\_\+base\+\_\+param\+\_\+storage\+\_\+t\+::stringval.



Referenced by ompi\+\_\+mpi\+\_\+init().

\hypertarget{mca__base__param_8h_a5124f6e9717089d95b43901921a2d157}{\index{mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}!mca\+\_\+base\+\_\+param\+\_\+unset@{mca\+\_\+base\+\_\+param\+\_\+unset}}
\index{mca\+\_\+base\+\_\+param\+\_\+unset@{mca\+\_\+base\+\_\+param\+\_\+unset}!mca\+\_\+base\+\_\+param.\+h@{mca\+\_\+base\+\_\+param.\+h}}
\subsubsection[{mca\+\_\+base\+\_\+param\+\_\+unset}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int mca\+\_\+base\+\_\+param\+\_\+unset (
\begin{DoxyParamCaption}
\item[{int}]{index}
\end{DoxyParamCaption}
)}}\label{mca__base__param_8h_a5124f6e9717089d95b43901921a2d157}


Unset a parameter that was previously set by \hyperlink{mca__base__param_8h_a0e00672c6cf7f351f8a14aa9e9e2d716}{mca\+\_\+base\+\_\+param\+\_\+set\+\_\+int()} or \hyperlink{mca__base__param_8h_a9c01ccf2cc4795d741e88be6e8b867c4}{mca\+\_\+base\+\_\+param\+\_\+set\+\_\+string()}. 


\begin{DoxyParams}{Parameters}
{\em index} & \mbox{[}in\mbox{]} Index of M\+C\+A parameter to set\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+P\+A\+L\+\_\+\+E\+R\+R\+O\+R} & If the parameter was not found. \\
\hline
{\em O\+P\+A\+L\+\_\+\+S\+U\+C\+C\+E\+S\+S} & Upon success.\\
\hline
\end{DoxyRetVals}
Resets previous value that was set (if any) on the given M\+C\+A parameter. 

References mca\+\_\+base\+\_\+param\+\_\+t\+::mbp\+\_\+override\+\_\+value, mca\+\_\+base\+\_\+param\+\_\+t\+::mbp\+\_\+override\+\_\+value\+\_\+set, M\+C\+A\+\_\+\+B\+A\+S\+E\+\_\+\+P\+A\+R\+A\+M\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+N\+G, and mca\+\_\+base\+\_\+param\+\_\+storage\+\_\+t\+::stringval.



Referenced by mca\+\_\+base\+\_\+param\+\_\+set\+\_\+int(), and mca\+\_\+base\+\_\+param\+\_\+set\+\_\+string().

