\hypertarget{rml__base__contact_8c}{\section{orte/mca/rml/base/rml\+\_\+base\+\_\+contact.c File Reference}
\label{rml__base__contact_8c}\index{orte/mca/rml/base/rml\+\_\+base\+\_\+contact.\+c@{orte/mca/rml/base/rml\+\_\+base\+\_\+contact.\+c}}
}
{\ttfamily \#include \char`\"{}orte\+\_\+config.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}orte/constants.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}orte/types.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/util/argv.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/util/output.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/dss/dss.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}orte/mca/errmgr/errmgr.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}orte/mca/routed/routed.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}orte/util/name\+\_\+fns.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}orte/util/proc\+\_\+info.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}orte/runtime/orte\+\_\+globals.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}orte/mca/rml/rml.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}orte/mca/rml/base/rml\+\_\+contact.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}orte/mca/rml/base/base.\+h\char`\"{}}\\*
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \hyperlink{rml__base__contact_8c_a2736fbc6437409a153fe852a4f5c281d}{orte\+\_\+rml\+\_\+base\+\_\+get\+\_\+contact\+\_\+info} (\hyperlink{orte_2include_2orte_2types_8h_addefe647f31eee13c7f756f0d959a99b}{orte\+\_\+jobid\+\_\+t} job, \hyperlink{structopal__buffer__t}{opal\+\_\+buffer\+\_\+t} $\ast$data)
\begin{DoxyCompactList}\small\item\em Create packed R\+M\+L contact information for the given process names. \end{DoxyCompactList}\item 
int \hyperlink{rml__base__contact_8c_ae29660fedd4f6fa3e19d70bad4710481}{orte\+\_\+rml\+\_\+base\+\_\+update\+\_\+contact\+\_\+info} (\hyperlink{structopal__buffer__t}{opal\+\_\+buffer\+\_\+t} $\ast$data)
\begin{DoxyCompactList}\small\item\em Update the R\+M\+L with contact information. \end{DoxyCompactList}\item 
int \hyperlink{rml__base__contact_8c_a42248f43d75af552d1462a3fe213407f}{orte\+\_\+rml\+\_\+base\+\_\+parse\+\_\+uris} (const char $\ast$uri, \hyperlink{structorte__process__name__t}{orte\+\_\+process\+\_\+name\+\_\+t} $\ast$peer, char $\ast$$\ast$$\ast$uris)
\begin{DoxyCompactList}\small\item\em Parse a contact information string. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Function Documentation}
\hypertarget{rml__base__contact_8c_a2736fbc6437409a153fe852a4f5c281d}{\index{rml\+\_\+base\+\_\+contact.\+c@{rml\+\_\+base\+\_\+contact.\+c}!orte\+\_\+rml\+\_\+base\+\_\+get\+\_\+contact\+\_\+info@{orte\+\_\+rml\+\_\+base\+\_\+get\+\_\+contact\+\_\+info}}
\index{orte\+\_\+rml\+\_\+base\+\_\+get\+\_\+contact\+\_\+info@{orte\+\_\+rml\+\_\+base\+\_\+get\+\_\+contact\+\_\+info}!rml\+\_\+base\+\_\+contact.\+c@{rml\+\_\+base\+\_\+contact.\+c}}
\subsubsection[{orte\+\_\+rml\+\_\+base\+\_\+get\+\_\+contact\+\_\+info}]{\setlength{\rightskip}{0pt plus 5cm}int orte\+\_\+rml\+\_\+base\+\_\+get\+\_\+contact\+\_\+info (
\begin{DoxyParamCaption}
\item[{{\bf orte\+\_\+jobid\+\_\+t}}]{job, }
\item[{{\bf opal\+\_\+buffer\+\_\+t} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{rml__base__contact_8c_a2736fbc6437409a153fe852a4f5c281d}


Create packed R\+M\+L contact information for the given process names. 

Create packed R\+M\+L contact information for a given job. The information is provided packed in an \hyperlink{structopal__buffer__t}{opal\+\_\+buffer\+\_\+t} structure.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em jobid} & Job whose contact information is needed \\
\hline
\mbox{\tt out}  & {\em data} & Contact information packed in buffer for {\ttfamily name}.\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S} & Successfully found contact information \\
\hline
{\em O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R} & Contact information could not be found or shared \\
\hline
\end{DoxyRetVals}


References opal\+\_\+pointer\+\_\+array\+\_\+get\+\_\+item(), O\+P\+A\+L\+\_\+\+S\+T\+R\+I\+N\+G, orte\+\_\+get\+\_\+job\+\_\+data\+\_\+object(), and opal\+\_\+pointer\+\_\+array\+\_\+t\+::size.

\hypertarget{rml__base__contact_8c_a42248f43d75af552d1462a3fe213407f}{\index{rml\+\_\+base\+\_\+contact.\+c@{rml\+\_\+base\+\_\+contact.\+c}!orte\+\_\+rml\+\_\+base\+\_\+parse\+\_\+uris@{orte\+\_\+rml\+\_\+base\+\_\+parse\+\_\+uris}}
\index{orte\+\_\+rml\+\_\+base\+\_\+parse\+\_\+uris@{orte\+\_\+rml\+\_\+base\+\_\+parse\+\_\+uris}!rml\+\_\+base\+\_\+contact.\+c@{rml\+\_\+base\+\_\+contact.\+c}}
\subsubsection[{orte\+\_\+rml\+\_\+base\+\_\+parse\+\_\+uris}]{\setlength{\rightskip}{0pt plus 5cm}int orte\+\_\+rml\+\_\+base\+\_\+parse\+\_\+uris (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{contact\+\_\+inf, }
\item[{{\bf orte\+\_\+process\+\_\+name\+\_\+t} $\ast$}]{peer, }
\item[{char $\ast$$\ast$$\ast$}]{uris}
\end{DoxyParamCaption}
)}}\label{rml__base__contact_8c_a42248f43d75af552d1462a3fe213407f}


Parse a contact information string. 

Parse a contact infromation string, such as that returned by orte\+\_\+rml.\+get\+\_\+contact\+\_\+info(). Generally used to extract the peer name from a contact information string. It can also be used to extract the contact U\+R\+I strings, although this is slightly less useful as the U\+R\+Is may be R\+M\+L componenent specific and not have general meaning.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em contact\+\_\+info} & Contact information string for peer \\
\hline
\mbox{\tt out}  & {\em peer} & Peer name in contact\+\_\+info \\
\hline
\mbox{\tt out}  & {\em uris} & U\+R\+I strings for peer. May be N\+U\+L\+L if information is not needed\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S} & Information successfully extraced \\
\hline
{\em O\+R\+T\+E\+\_\+\+E\+R\+R\+\_\+\+B\+A\+D\+\_\+\+P\+A\+R\+A\+M} & The contact\+\_\+info was not a valid string \\
\hline
{\em O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R} & An unspecified error occurred \\
\hline
\end{DoxyRetVals}


References opal\+\_\+argv\+\_\+split(), and orte\+\_\+util\+\_\+convert\+\_\+string\+\_\+to\+\_\+process\+\_\+name().



Referenced by orte\+\_\+rml\+\_\+base\+\_\+update\+\_\+contact\+\_\+info().

\hypertarget{rml__base__contact_8c_ae29660fedd4f6fa3e19d70bad4710481}{\index{rml\+\_\+base\+\_\+contact.\+c@{rml\+\_\+base\+\_\+contact.\+c}!orte\+\_\+rml\+\_\+base\+\_\+update\+\_\+contact\+\_\+info@{orte\+\_\+rml\+\_\+base\+\_\+update\+\_\+contact\+\_\+info}}
\index{orte\+\_\+rml\+\_\+base\+\_\+update\+\_\+contact\+\_\+info@{orte\+\_\+rml\+\_\+base\+\_\+update\+\_\+contact\+\_\+info}!rml\+\_\+base\+\_\+contact.\+c@{rml\+\_\+base\+\_\+contact.\+c}}
\subsubsection[{orte\+\_\+rml\+\_\+base\+\_\+update\+\_\+contact\+\_\+info}]{\setlength{\rightskip}{0pt plus 5cm}int orte\+\_\+rml\+\_\+base\+\_\+update\+\_\+contact\+\_\+info (
\begin{DoxyParamCaption}
\item[{{\bf opal\+\_\+buffer\+\_\+t} $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{rml__base__contact_8c_ae29660fedd4f6fa3e19d70bad4710481}


Update the R\+M\+L with contact information. 

Update the R\+M\+L with contact information provided from a call to \hyperlink{rml__contact_8h_a8af4c158a8986930d57565bce4c49af3}{orte\+\_\+rml\+\_\+base\+\_\+get\+\_\+contact\+\_\+info()}, likely on another host.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em data} & Contact information in a packed buffer, obtained by call to \hyperlink{rml__contact_8h_a8af4c158a8986930d57565bce4c49af3}{orte\+\_\+rml\+\_\+base\+\_\+get\+\_\+contact\+\_\+info()}\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S} & Successfully updated contact information \\
\hline
\end{DoxyRetVals}


References orte\+\_\+process\+\_\+name\+\_\+t\+::jobid, orte\+\_\+proc\+\_\+info\+\_\+t\+::max\+\_\+procs, orte\+\_\+proc\+\_\+info\+\_\+t\+::num\+\_\+procs, O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T\+\_\+\+V\+E\+R\+B\+O\+S\+E, O\+P\+A\+L\+\_\+\+S\+T\+R\+I\+N\+G, O\+R\+T\+E\+\_\+\+P\+R\+O\+C\+\_\+\+M\+Y\+\_\+\+N\+A\+M\+E, orte\+\_\+process\+\_\+info, orte\+\_\+rml, orte\+\_\+rml\+\_\+base\+\_\+output, orte\+\_\+rml\+\_\+base\+\_\+parse\+\_\+uris(), orte\+\_\+routed, and orte\+\_\+rml\+\_\+module\+\_\+t\+::set\+\_\+contact\+\_\+info.

