\hypertarget{keyval__parse_8h}{\section{opal/util/keyval\+\_\+parse.h File Reference}
\label{keyval__parse_8h}\index{opal/util/keyval\+\_\+parse.\+h@{opal/util/keyval\+\_\+parse.\+h}}
}
{\ttfamily \#include \char`\"{}opal\+\_\+config.\+h\char`\"{}}\\*
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{keyval__parse_8h_ac223b097b220a053f45f3b82aa5071b1}{opal\+\_\+util\+\_\+keyval\+\_\+parse} (const char $\ast$filename, \hyperlink{keyval__parse_8h_a7e12b7c4099212047acccb9d462da8b7}{opal\+\_\+keyval\+\_\+parse\+\_\+fn\+\_\+t} callback)
\begin{DoxyCompactList}\small\item\em Parse {\ttfamily filename}, made up of key = value pairs. \end{DoxyCompactList}\item 
\hypertarget{keyval__parse_8h_ab94b3dad24d56b11537ba50aeb00ef9d}{O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int {\bfseries opal\+\_\+util\+\_\+keyval\+\_\+parse\+\_\+init} (void)}\label{keyval__parse_8h_ab94b3dad24d56b11537ba50aeb00ef9d}

\item 
\hypertarget{keyval__parse_8h_a22f806599c8e1e672e32eacbf817ab2c}{O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int {\bfseries opal\+\_\+util\+\_\+keyval\+\_\+parse\+\_\+finalize} (void)}\label{keyval__parse_8h_a22f806599c8e1e672e32eacbf817ab2c}

\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
B\+E\+G\+I\+N\+\_\+\+C\+\_\+\+D\+E\+C\+L\+S typedef void($\ast$ \hyperlink{keyval__parse_8h_a7e12b7c4099212047acccb9d462da8b7}{opal\+\_\+keyval\+\_\+parse\+\_\+fn\+\_\+t} )(const char $\ast$key, const char $\ast$value)
\begin{DoxyCompactList}\small\item\em Callback triggered for each key = value pair. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Function Documentation}
\hypertarget{keyval__parse_8h_ac223b097b220a053f45f3b82aa5071b1}{\index{keyval\+\_\+parse.\+h@{keyval\+\_\+parse.\+h}!opal\+\_\+util\+\_\+keyval\+\_\+parse@{opal\+\_\+util\+\_\+keyval\+\_\+parse}}
\index{opal\+\_\+util\+\_\+keyval\+\_\+parse@{opal\+\_\+util\+\_\+keyval\+\_\+parse}!keyval\+\_\+parse.\+h@{keyval\+\_\+parse.\+h}}
\subsubsection[{opal\+\_\+util\+\_\+keyval\+\_\+parse}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int opal\+\_\+util\+\_\+keyval\+\_\+parse (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{filename, }
\item[{{\bf opal\+\_\+keyval\+\_\+parse\+\_\+fn\+\_\+t}}]{callback}
\end{DoxyParamCaption}
)}}\label{keyval__parse_8h_ac223b097b220a053f45f3b82aa5071b1}


Parse {\ttfamily filename}, made up of key = value pairs. 

Parse {\ttfamily filename}, made up of key = value pairs. For each line that appears to contain a key = value pair, {\ttfamily callback} will be called exactly once. In a multithreaded context, calls to \hyperlink{keyval__parse_8h_ac223b097b220a053f45f3b82aa5071b1}{opal\+\_\+util\+\_\+keyval\+\_\+parse()} will serialize multiple calls. 

References O\+P\+A\+L\+\_\+\+T\+H\+R\+E\+A\+D\+\_\+\+L\+O\+C\+K, and O\+P\+A\+L\+\_\+\+T\+H\+R\+E\+A\+D\+\_\+\+U\+N\+L\+O\+C\+K.



\subsection{Variable Documentation}
\hypertarget{keyval__parse_8h_a7e12b7c4099212047acccb9d462da8b7}{\index{keyval\+\_\+parse.\+h@{keyval\+\_\+parse.\+h}!opal\+\_\+keyval\+\_\+parse\+\_\+fn\+\_\+t@{opal\+\_\+keyval\+\_\+parse\+\_\+fn\+\_\+t}}
\index{opal\+\_\+keyval\+\_\+parse\+\_\+fn\+\_\+t@{opal\+\_\+keyval\+\_\+parse\+\_\+fn\+\_\+t}!keyval\+\_\+parse.\+h@{keyval\+\_\+parse.\+h}}
\subsubsection[{opal\+\_\+keyval\+\_\+parse\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}B\+E\+G\+I\+N\+\_\+\+C\+\_\+\+D\+E\+C\+L\+S typedef void($\ast$ opal\+\_\+keyval\+\_\+parse\+\_\+fn\+\_\+t)(const char $\ast$key, const char $\ast$value)}}\label{keyval__parse_8h_a7e12b7c4099212047acccb9d462da8b7}


Callback triggered for each key = value pair. 

Callback triggered from opal\+\_\+util\+\_\+keyval\+\_\+parse for each key = value pair. Both key and value will be pointers into static buffers. The buffers must not be free()ed and contents may be overwritten immediately after the callback returns. 