\hypertarget{orte_2mca_2iof_2base_2base_8h}{\section{orte/mca/iof/base/base.h File Reference}
\label{orte_2mca_2iof_2base_2base_8h}\index{orte/mca/iof/base/base.\+h@{orte/mca/iof/base/base.\+h}}
}


I/\+O Forwarding Service.  


{\ttfamily \#include \char`\"{}orte\+\_\+config.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/mca/mca.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}orte/mca/iof/iof.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}orte/runtime/orte\+\_\+globals.\+h\char`\"{}}\\*
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structorte__iof__write__event__t}{orte\+\_\+iof\+\_\+write\+\_\+event\+\_\+t}
\item 
struct \hyperlink{structorte__iof__sink__t}{orte\+\_\+iof\+\_\+sink\+\_\+t}
\item 
struct \hyperlink{structorte__iof__read__event__t}{orte\+\_\+iof\+\_\+read\+\_\+event\+\_\+t}
\item 
struct \hyperlink{structorte__iof__proc__t}{orte\+\_\+iof\+\_\+proc\+\_\+t}
\item 
struct \hyperlink{structorte__iof__write__output__t}{orte\+\_\+iof\+\_\+write\+\_\+output\+\_\+t}
\item 
struct \hyperlink{structorte__iof__base__t}{orte\+\_\+iof\+\_\+base\+\_\+t}
\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\hypertarget{orte_2mca_2iof_2base_2base_8h_acba48882f7e256efc7ddce8922b3e967}{\#define {\bfseries O\+R\+T\+E\+\_\+\+I\+O\+F\+\_\+\+B\+A\+S\+E\+\_\+\+M\+S\+G\+\_\+\+M\+A\+X}~4096}\label{orte_2mca_2iof_2base_2base_8h_acba48882f7e256efc7ddce8922b3e967}

\item 
\hypertarget{orte_2mca_2iof_2base_2base_8h_abee57bc9f54d4fbd0f08cad7fbd658a7}{\#define {\bfseries O\+R\+T\+E\+\_\+\+I\+O\+F\+\_\+\+B\+A\+S\+E\+\_\+\+T\+A\+G\+\_\+\+M\+A\+X}~50}\label{orte_2mca_2iof_2base_2base_8h_abee57bc9f54d4fbd0f08cad7fbd658a7}

\item 
\hypertarget{orte_2mca_2iof_2base_2base_8h_a3396738861f59d3b4ac928b783780646}{\#define {\bfseries O\+R\+T\+E\+\_\+\+I\+O\+F\+\_\+\+B\+A\+S\+E\+\_\+\+T\+A\+G\+G\+E\+D\+\_\+\+O\+U\+T\+\_\+\+M\+A\+X}~8192}\label{orte_2mca_2iof_2base_2base_8h_a3396738861f59d3b4ac928b783780646}

\item 
\hypertarget{orte_2mca_2iof_2base_2base_8h_a0d2f7aede69a59d7e09ab1ef082e0ba1}{\#define {\bfseries O\+R\+T\+E\+\_\+\+I\+O\+F\+\_\+\+M\+A\+X\+\_\+\+I\+N\+P\+U\+T\+\_\+\+B\+U\+F\+F\+E\+R\+S}~50}\label{orte_2mca_2iof_2base_2base_8h_a0d2f7aede69a59d7e09ab1ef082e0ba1}

\item 
\#define {\bfseries O\+R\+T\+E\+\_\+\+I\+O\+F\+\_\+\+S\+I\+N\+K\+\_\+\+D\+E\+F\+I\+N\+E}(snk, nm, fid, tg, wrthndlr, eplist)
\item 
\#define {\bfseries O\+R\+T\+E\+\_\+\+I\+O\+F\+\_\+\+R\+E\+A\+D\+\_\+\+E\+V\+E\+N\+T}(rv, nm, fid, tg, cbfunc, actv)
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\hypertarget{orte_2mca_2iof_2base_2base_8h_a4b1e167d93f7e30236f101aabbdb6745}{typedef struct \hyperlink{structorte__iof__base__t}{orte\+\_\+iof\+\_\+base\+\_\+t} {\bfseries orte\+\_\+iof\+\_\+base\+\_\+t}}\label{orte_2mca_2iof_2base_2base_8h_a4b1e167d93f7e30236f101aabbdb6745}

\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{orte_2mca_2iof_2base_2base_8h_aa1a48222f52a25fb288348163a490da2}{B\+E\+G\+I\+N\+\_\+\+C\+\_\+\+D\+E\+C\+L\+S O\+R\+T\+E\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{orte_2mca_2iof_2base_2base_8h_aa1a48222f52a25fb288348163a490da2}{orte\+\_\+iof\+\_\+base\+\_\+open} (void)}\label{orte_2mca_2iof_2base_2base_8h_aa1a48222f52a25fb288348163a490da2}

\begin{DoxyCompactList}\small\item\em \hyperlink{structFunction}{Function} for finding and opening either all M\+C\+A components, or the one that was specifically requested via a M\+C\+A parameter. \end{DoxyCompactList}\item 
\hypertarget{orte_2mca_2iof_2base_2base_8h_a0b783753ab9c120085054f1b75932592}{O\+R\+T\+E\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C {\bfseries O\+B\+J\+\_\+\+C\+L\+A\+S\+S\+\_\+\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N} (\hyperlink{structorte__iof__write__event__t}{orte\+\_\+iof\+\_\+write\+\_\+event\+\_\+t})}\label{orte_2mca_2iof_2base_2base_8h_a0b783753ab9c120085054f1b75932592}

\item 
\hypertarget{orte_2mca_2iof_2base_2base_8h_a1e998654b9e32e5ef31737216a825d36}{O\+R\+T\+E\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C {\bfseries O\+B\+J\+\_\+\+C\+L\+A\+S\+S\+\_\+\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N} (\hyperlink{structorte__iof__sink__t}{orte\+\_\+iof\+\_\+sink\+\_\+t})}\label{orte_2mca_2iof_2base_2base_8h_a1e998654b9e32e5ef31737216a825d36}

\item 
\hypertarget{orte_2mca_2iof_2base_2base_8h_a2230c142a2859aae37dd25777fa80f0e}{O\+R\+T\+E\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C {\bfseries O\+B\+J\+\_\+\+C\+L\+A\+S\+S\+\_\+\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N} (\hyperlink{structorte__iof__read__event__t}{orte\+\_\+iof\+\_\+read\+\_\+event\+\_\+t})}\label{orte_2mca_2iof_2base_2base_8h_a2230c142a2859aae37dd25777fa80f0e}

\item 
\hypertarget{orte_2mca_2iof_2base_2base_8h_a6d40c1d712a00a60281b876e4f5dfff6}{O\+R\+T\+E\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C {\bfseries O\+B\+J\+\_\+\+C\+L\+A\+S\+S\+\_\+\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N} (\hyperlink{structorte__iof__proc__t}{orte\+\_\+iof\+\_\+proc\+\_\+t})}\label{orte_2mca_2iof_2base_2base_8h_a6d40c1d712a00a60281b876e4f5dfff6}

\item 
\hypertarget{orte_2mca_2iof_2base_2base_8h_a3f5a308d693a9f5bf2f89182873599f9}{O\+R\+T\+E\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C {\bfseries O\+B\+J\+\_\+\+C\+L\+A\+S\+S\+\_\+\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N} (\hyperlink{structorte__iof__write__output__t}{orte\+\_\+iof\+\_\+write\+\_\+output\+\_\+t})}\label{orte_2mca_2iof_2base_2base_8h_a3f5a308d693a9f5bf2f89182873599f9}

\item 
\hypertarget{orte_2mca_2iof_2base_2base_8h_a3af669bf621a8d85abc1b2688d6be261}{O\+R\+T\+E\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int {\bfseries orte\+\_\+iof\+\_\+base\+\_\+close} (void)}\label{orte_2mca_2iof_2base_2base_8h_a3af669bf621a8d85abc1b2688d6be261}

\item 
O\+R\+T\+E\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{orte_2mca_2iof_2base_2base_8h_ac9217059b20b76266b0c5d30e09486f1}{orte\+\_\+iof\+\_\+base\+\_\+select} (void)
\begin{DoxyCompactList}\small\item\em Call the query function on all available components to find out if they want to run. \end{DoxyCompactList}\item 
\hypertarget{orte_2mca_2iof_2base_2base_8h_adc82741b6b727ba7b6ffbc049276ecb9}{O\+R\+T\+E\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int {\bfseries orte\+\_\+iof\+\_\+base\+\_\+flush} (void)}\label{orte_2mca_2iof_2base_2base_8h_adc82741b6b727ba7b6ffbc049276ecb9}

\item 
\hypertarget{orte_2mca_2iof_2base_2base_8h_ad01ba6e920f857873f689472d72d341b}{O\+R\+T\+E\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int {\bfseries orte\+\_\+iof\+\_\+base\+\_\+write\+\_\+output} (\hyperlink{structorte__process__name__t}{orte\+\_\+process\+\_\+name\+\_\+t} $\ast$name, orte\+\_\+iof\+\_\+tag\+\_\+t stream, unsigned char $\ast$data, int numbytes, \hyperlink{structorte__iof__write__event__t}{orte\+\_\+iof\+\_\+write\+\_\+event\+\_\+t} $\ast$channel)}\label{orte_2mca_2iof_2base_2base_8h_ad01ba6e920f857873f689472d72d341b}

\item 
\hypertarget{orte_2mca_2iof_2base_2base_8h_a8204c0ac575f90ea2ccc13c814678a7a}{O\+R\+T\+E\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void {\bfseries orte\+\_\+iof\+\_\+base\+\_\+write\+\_\+handler} (int fd, short \hyperlink{structevent}{event}, void $\ast$cbdata)}\label{orte_2mca_2iof_2base_2base_8h_a8204c0ac575f90ea2ccc13c814678a7a}

\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\hypertarget{orte_2mca_2iof_2base_2base_8h_a6556020520ab7d057c06f01c61e395a0}{O\+R\+T\+E\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C \hyperlink{structorte__iof__base__t}{orte\+\_\+iof\+\_\+base\+\_\+t} {\bfseries orte\+\_\+iof\+\_\+base}}\label{orte_2mca_2iof_2base_2base_8h_a6556020520ab7d057c06f01c61e395a0}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
I/\+O Forwarding Service. 



\subsection{Macro Definition Documentation}
\hypertarget{orte_2mca_2iof_2base_2base_8h_a9aa3e6c85a2f6863eb1254ed7c4e9d8e}{\index{orte/mca/iof/base/base.\+h@{orte/mca/iof/base/base.\+h}!O\+R\+T\+E\+\_\+\+I\+O\+F\+\_\+\+R\+E\+A\+D\+\_\+\+E\+V\+E\+N\+T@{O\+R\+T\+E\+\_\+\+I\+O\+F\+\_\+\+R\+E\+A\+D\+\_\+\+E\+V\+E\+N\+T}}
\index{O\+R\+T\+E\+\_\+\+I\+O\+F\+\_\+\+R\+E\+A\+D\+\_\+\+E\+V\+E\+N\+T@{O\+R\+T\+E\+\_\+\+I\+O\+F\+\_\+\+R\+E\+A\+D\+\_\+\+E\+V\+E\+N\+T}!orte/mca/iof/base/base.\+h@{orte/mca/iof/base/base.\+h}}
\subsubsection[{O\+R\+T\+E\+\_\+\+I\+O\+F\+\_\+\+R\+E\+A\+D\+\_\+\+E\+V\+E\+N\+T}]{\setlength{\rightskip}{0pt plus 5cm}\#define O\+R\+T\+E\+\_\+\+I\+O\+F\+\_\+\+R\+E\+A\+D\+\_\+\+E\+V\+E\+N\+T(
\begin{DoxyParamCaption}
\item[{}]{rv, }
\item[{}]{nm, }
\item[{}]{fid, }
\item[{}]{tg, }
\item[{}]{cbfunc, }
\item[{}]{actv}
\end{DoxyParamCaption}
)}}\label{orte_2mca_2iof_2base_2base_8h_a9aa3e6c85a2f6863eb1254ed7c4e9d8e}
{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keywordflow}{do} \{                                                            \(\backslash\)
        orte\_iof\_read\_event\_t *rev;                                 \(\backslash\)
        rev = OBJ\_NEW(\hyperlink{structorte__iof__read__event__t}{orte\_iof\_read\_event\_t});                       \(\backslash\)
        rev->name.jobid = (nm)->jobid;                              \(\backslash\)
        rev->name.vpid = (nm)->vpid;                                \(\backslash\)
        ORTE\_EPOCH\_SET(rev->name.epoch,(nm)->epoch);                \(\backslash\)
        rev->tag = (tg);                                            \(\backslash\)
        rev->fd = (fid);                                            \(\backslash\)
        *(rv) = rev;                                                \(\backslash\)
        opal\_event\_set(opal\_event\_base,                             \(\backslash\)
                       &rev->ev, (fid),                             \(\backslash\)
                       OPAL\_EV\_READ,                                \(\backslash\)
                       (cbfunc), rev);                              \(\backslash\)
        if ((actv)) \{                                               \(\backslash\)
            rev->active = \textcolor{keyword}{true};                                     \(\backslash\)
            opal\_event\_add(&rev->ev, 0);                            \(\backslash\)
        \}                                                           \(\backslash\)
    \} \textcolor{keywordflow}{while}(0);
\end{DoxyCode}
\hypertarget{orte_2mca_2iof_2base_2base_8h_ac620c2cd80cc9026f31201ced4e83c9f}{\index{orte/mca/iof/base/base.\+h@{orte/mca/iof/base/base.\+h}!O\+R\+T\+E\+\_\+\+I\+O\+F\+\_\+\+S\+I\+N\+K\+\_\+\+D\+E\+F\+I\+N\+E@{O\+R\+T\+E\+\_\+\+I\+O\+F\+\_\+\+S\+I\+N\+K\+\_\+\+D\+E\+F\+I\+N\+E}}
\index{O\+R\+T\+E\+\_\+\+I\+O\+F\+\_\+\+S\+I\+N\+K\+\_\+\+D\+E\+F\+I\+N\+E@{O\+R\+T\+E\+\_\+\+I\+O\+F\+\_\+\+S\+I\+N\+K\+\_\+\+D\+E\+F\+I\+N\+E}!orte/mca/iof/base/base.\+h@{orte/mca/iof/base/base.\+h}}
\subsubsection[{O\+R\+T\+E\+\_\+\+I\+O\+F\+\_\+\+S\+I\+N\+K\+\_\+\+D\+E\+F\+I\+N\+E}]{\setlength{\rightskip}{0pt plus 5cm}\#define O\+R\+T\+E\+\_\+\+I\+O\+F\+\_\+\+S\+I\+N\+K\+\_\+\+D\+E\+F\+I\+N\+E(
\begin{DoxyParamCaption}
\item[{}]{snk, }
\item[{}]{nm, }
\item[{}]{fid, }
\item[{}]{tg, }
\item[{}]{wrthndlr, }
\item[{}]{eplist}
\end{DoxyParamCaption}
)}}\label{orte_2mca_2iof_2base_2base_8h_ac620c2cd80cc9026f31201ced4e83c9f}
{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keywordflow}{do} \{                                                            \(\backslash\)
        orte\_iof\_sink\_t *ep;                                        \(\backslash\)
        ep = OBJ\_NEW(\hyperlink{structorte__iof__sink__t}{orte\_iof\_sink\_t});                              \(\backslash\)
        ep->name.jobid = (nm)->jobid;                               \(\backslash\)
        ep->name.vpid = (nm)->vpid;                                 \(\backslash\)
        ORTE\_EPOCH\_SET(ep->name.epoch,(nm)->epoch);                 \(\backslash\)
        ep->tag = (tg);                                             \(\backslash\)
        if (0 <= (fid)) \{                                           \(\backslash\)
            ep->wev->fd = (fid);                                    \(\backslash\)
            opal\_event\_set(opal\_event\_base,                         \(\backslash\)
                           &(ep->wev->ev), ep->wev->fd,             \(\backslash\)
                           OPAL\_EV\_WRITE,                           \(\backslash\)
                           wrthndlr, ep);                           \(\backslash\)
        \}                                                           \(\backslash\)
        if (NULL != (eplist)) \{                                     \hyperlink{opal__list_8h_acf822c5c351cd03b2c86e48cf9aaa158}{\(\backslash\)}
\hyperlink{opal__list_8h_acf822c5c351cd03b2c86e48cf9aaa158}{            opal\_list\_append}((eplist), &ep->super);                 \(\backslash\)
        \}                                                           \(\backslash\)
        *(snk) = ep;                                                \(\backslash\)
    \} \textcolor{keywordflow}{while}(0);
\end{DoxyCode}


\subsection{Function Documentation}
\hypertarget{orte_2mca_2iof_2base_2base_8h_ac9217059b20b76266b0c5d30e09486f1}{\index{orte/mca/iof/base/base.\+h@{orte/mca/iof/base/base.\+h}!orte\+\_\+iof\+\_\+base\+\_\+select@{orte\+\_\+iof\+\_\+base\+\_\+select}}
\index{orte\+\_\+iof\+\_\+base\+\_\+select@{orte\+\_\+iof\+\_\+base\+\_\+select}!orte/mca/iof/base/base.\+h@{orte/mca/iof/base/base.\+h}}
\subsubsection[{orte\+\_\+iof\+\_\+base\+\_\+select}]{\setlength{\rightskip}{0pt plus 5cm}O\+R\+T\+E\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int orte\+\_\+iof\+\_\+base\+\_\+select (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}\label{orte_2mca_2iof_2base_2base_8h_ac9217059b20b76266b0c5d30e09486f1}


Call the query function on all available components to find out if they want to run. 

Select the single component with the highest priority. 

Referenced by orte\+\_\+ess\+\_\+base\+\_\+orted\+\_\+setup().

