\hypertarget{output_8h}{\section{opal/util/output.h File Reference}
\label{output_8h}\index{opal/util/output.\+h@{opal/util/output.\+h}}
}


O\+P\+A\+L output stream facility.  


{\ttfamily \#include \char`\"{}opal\+\_\+config.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/class/opal\+\_\+object.\+h\char`\"{}}\\*
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{structopal__output__stream__t}{opal\+\_\+output\+\_\+stream\+\_\+t}
\begin{DoxyCompactList}\small\item\em Structure used to request the opening of a O\+P\+A\+L output stream. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{output_8h_a0899ff7a013288f7a8f7afc8fa9d8f9c}{O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T}(a)
\begin{DoxyCompactList}\small\item\em Main macro for use in sending debugging output to output streams; will be \char`\"{}compiled out\char`\"{} when O\+P\+A\+L is configured without --enable-\/debug. \end{DoxyCompactList}\item 
\#define \hyperlink{output_8h_ac1802ce1863ea1add58d6b8d248f0597}{O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T\+\_\+\+V\+E\+R\+B\+O\+S\+E}(a)
\begin{DoxyCompactList}\small\item\em Macro for use in sending debugging output to the output streams. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\hypertarget{output_8h_a6d5b854b4f878bfe34d6817cd61322bb}{typedef struct \hyperlink{structopal__output__stream__t}{opal\+\_\+output\+\_\+stream\+\_\+t} \hyperlink{output_8h_a6d5b854b4f878bfe34d6817cd61322bb}{opal\+\_\+output\+\_\+stream\+\_\+t}}\label{output_8h_a6d5b854b4f878bfe34d6817cd61322bb}

\begin{DoxyCompactList}\small\item\em Convenience typedef. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C bool \hyperlink{output_8h_a9449315366609859b84865a5f8bcc5ed}{opal\+\_\+output\+\_\+init} (void)
\begin{DoxyCompactList}\small\item\em Initializes the output stream system and opens a default \char`\"{}verbose\char`\"{} stream. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \hyperlink{output_8h_a0f0525457dddf695f0607c422ddd7c2c}{opal\+\_\+output\+\_\+finalize} (void)
\begin{DoxyCompactList}\small\item\em Shut down the output stream system. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{output_8h_a4d8b0bc841a63bf157029bf5437df599}{opal\+\_\+output\+\_\+open} (\hyperlink{structopal__output__stream__t}{opal\+\_\+output\+\_\+stream\+\_\+t} $\ast$lds)
\begin{DoxyCompactList}\small\item\em Opens an output stream. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{output_8h_adf60d0a7b82aa92c8aee7bd344267e71}{opal\+\_\+output\+\_\+reopen} (int output\+\_\+id, \hyperlink{structopal__output__stream__t}{opal\+\_\+output\+\_\+stream\+\_\+t} $\ast$lds)
\begin{DoxyCompactList}\small\item\em Re-\/opens / redirects an output stream. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C bool \hyperlink{output_8h_a4f85c5f420b770c7da2488dc034b47c7}{opal\+\_\+output\+\_\+switch} (int output\+\_\+id, bool enable)
\begin{DoxyCompactList}\small\item\em Enables and disables output streams. \end{DoxyCompactList}\item 
\hypertarget{output_8h_ad122d4de11fd66e236af25f5dc11017e}{O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void {\bfseries opal\+\_\+output\+\_\+reopen\+\_\+all} (void)}\label{output_8h_ad122d4de11fd66e236af25f5dc11017e}

\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \hyperlink{output_8h_ab3ac30368e6a33edcfa7733c0b4574a0}{opal\+\_\+output\+\_\+close} (int output\+\_\+id)
\begin{DoxyCompactList}\small\item\em Close an output stream. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \hyperlink{output_8h_a3405da348d8cc528b921c8a1d8302be7}{opal\+\_\+output} (int output\+\_\+id, const char $\ast$format,...) \+\_\+\+\_\+opal\+\_\+attribute\+\_\+format\+\_\+\+\_\+(\+\_\+\+\_\+printf\+\_\+\+\_\+
\begin{DoxyCompactList}\small\item\em Main function to send output to a stream. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \\*
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \hyperlink{output_8h_a0864d696ef030700e849021731a358e0}{opal\+\_\+output\+\_\+verbose} (int verbose\+\_\+level, int output\+\_\+id, const char $\ast$format,...) \+\_\+\+\_\+opal\+\_\+attribute\+\_\+format\+\_\+\+\_\+(\+\_\+\+\_\+printf\+\_\+\+\_\+
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} output to a stream only if the passed verbosity level is high enough. \end{DoxyCompactList}\item 
\hypertarget{output_8h_ae81e0915b5e418ccee45f139f0d9ae4c}{O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \\*
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \\*
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \hyperlink{output_8h_ae81e0915b5e418ccee45f139f0d9ae4c}{opal\+\_\+output\+\_\+vverbose} (int verbose\+\_\+level, int output\+\_\+id, const char $\ast$format, va\+\_\+list ap) \+\_\+\+\_\+opal\+\_\+attribute\+\_\+format\+\_\+\+\_\+(\+\_\+\+\_\+printf\+\_\+\+\_\+}\label{output_8h_ae81e0915b5e418ccee45f139f0d9ae4c}

\begin{DoxyCompactList}\small\item\em Same as \hyperlink{output_8h_a0864d696ef030700e849021731a358e0}{opal\+\_\+output\+\_\+verbose()}, but takes a va\+\_\+list form of varargs. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \\*
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \\*
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \\*
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C char $\ast$ \hyperlink{output_8h_ab4bbae4ccb6bdad301ff3a1b85233710}{opal\+\_\+output\+\_\+string} (int verbose\+\_\+level, int output\+\_\+id, const char $\ast$format,...) \+\_\+\+\_\+opal\+\_\+attribute\+\_\+format\+\_\+\+\_\+(\+\_\+\+\_\+printf\+\_\+\+\_\+
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} output to a string if the verbosity level is high enough. \end{DoxyCompactList}\item 
\hypertarget{output_8h_ab83b1b077c49ba2b3da93a888be40165}{O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \\*
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \\*
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \\*
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C char \\*
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C char $\ast$ \hyperlink{output_8h_ab83b1b077c49ba2b3da93a888be40165}{opal\+\_\+output\+\_\+vstring} (int verbose\+\_\+level, int output\+\_\+id, const char $\ast$format, va\+\_\+list ap) \+\_\+\+\_\+opal\+\_\+attribute\+\_\+format\+\_\+\+\_\+(\+\_\+\+\_\+printf\+\_\+\+\_\+}\label{output_8h_ab83b1b077c49ba2b3da93a888be40165}

\begin{DoxyCompactList}\small\item\em Same as opal\+\_\+output\+\_\+string, but accepts a va\+\_\+list form of varargs. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \\*
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \\*
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \\*
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C char \\*
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C char \\*
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \hyperlink{output_8h_a894219815f1e803fad7e0adcf4ffdc70}{opal\+\_\+output\+\_\+set\+\_\+verbosity} (int output\+\_\+id, int level)
\begin{DoxyCompactList}\small\item\em Set the verbosity level for a stream. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{output_8h_ad355d720bb462429ffc9e4ab3a1f0fce}{opal\+\_\+output\+\_\+get\+\_\+verbosity} (int output\+\_\+id)
\begin{DoxyCompactList}\small\item\em Get the verbosity level for a stream. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \hyperlink{output_8h_aa1b7d1d0144982f4dc4cc6e36aee5da3}{opal\+\_\+output\+\_\+set\+\_\+output\+\_\+file\+\_\+info} (const char $\ast$dir, const char $\ast$prefix, char $\ast$$\ast$olddir, char $\ast$$\ast$oldprefix)
\begin{DoxyCompactList}\small\item\em Set characteristics for output files. \end{DoxyCompactList}\item 
O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C \hyperlink{output_8h_a2196df8508f9c43b000947a08606fb5c}{O\+B\+J\+\_\+\+C\+L\+A\+S\+S\+\_\+\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N} (\hyperlink{structopal__output__stream__t}{opal\+\_\+output\+\_\+stream\+\_\+t})
\begin{DoxyCompactList}\small\item\em Declare the class of this type. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\hypertarget{output_8h_a26acaa7bf2a26ac98cae44ec19aa48dd}{B\+E\+G\+I\+N\+\_\+\+C\+\_\+\+D\+E\+C\+L\+S O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C bool {\bfseries opal\+\_\+output\+\_\+redirected\+\_\+to\+\_\+syslog}}\label{output_8h_a26acaa7bf2a26ac98cae44ec19aa48dd}

\item 
\hypertarget{output_8h_add19c2bc2fc160e634291daece14cb3e}{O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int {\bfseries opal\+\_\+output\+\_\+redirected\+\_\+syslog\+\_\+pri}}\label{output_8h_add19c2bc2fc160e634291daece14cb3e}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
O\+P\+A\+L output stream facility. 

The O\+P\+A\+L output stream facility is used to send output from the O\+P\+A\+L libraries to output devices. It is meant to fully replace all forms of printf() (and friends). Output streams are opened via the \hyperlink{output_8h_a4d8b0bc841a63bf157029bf5437df599}{opal\+\_\+output\+\_\+open()} function call, and then sent output via \hyperlink{output_8h_a0864d696ef030700e849021731a358e0}{opal\+\_\+output\+\_\+verbose()}, \hyperlink{output_8h_a0899ff7a013288f7a8f7afc8fa9d8f9c}{O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T()}, and \hyperlink{output_8h_a3405da348d8cc528b921c8a1d8302be7}{opal\+\_\+output()}. Streams are closed with \hyperlink{output_8h_ab3ac30368e6a33edcfa7733c0b4574a0}{opal\+\_\+output\+\_\+close()}.

Streams can multiplex output to several kinds of outputs (one of each)\+:


\begin{DoxyItemize}
\item the syslog (if available)
\item standard output
\item standard error
\item file
\end{DoxyItemize}

Which outputs to use are specified during \hyperlink{output_8h_a4d8b0bc841a63bf157029bf5437df599}{opal\+\_\+output\+\_\+open()}.

W\+A\+R\+N\+I\+N\+G\+: When using \char`\"{}file\char`\"{} as an output destination, be aware that the file may not exist until the session directory for the process exists. This is at least part of the way through M\+P\+I\+\_\+\+I\+N\+I\+T (for example). Most M\+C\+A components and internals of Open M\+P\+I won't be affected by this, but some R\+T\+E / startup aspects of Open M\+P\+I will not be able to write to a file for output. See \hyperlink{output_8h_a3405da348d8cc528b921c8a1d8302be7}{opal\+\_\+output()} for details on what happens in these cases.

\hyperlink{output_8h_a4d8b0bc841a63bf157029bf5437df599}{opal\+\_\+output\+\_\+open()} returns an integer handle that is used in successive calls to \hyperlink{output_8h_a0899ff7a013288f7a8f7afc8fa9d8f9c}{O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T()} and \hyperlink{output_8h_a3405da348d8cc528b921c8a1d8302be7}{opal\+\_\+output()} to send output to the stream.

The default \char`\"{}verbose\char`\"{} stream is opened after invoking \hyperlink{output_8h_a9449315366609859b84865a5f8bcc5ed}{opal\+\_\+output\+\_\+init()} (and closed after invoking \hyperlink{output_8h_a0f0525457dddf695f0607c422ddd7c2c}{opal\+\_\+output\+\_\+finalize()}). This stream outputs to stderr only, and has a stream handle I\+D of 0.

It is erroneous to have one thread close a stream and have another try to write to it. Multiple threads writing to a single stream will be serialized in an unspecified order. 

\subsection{Macro Definition Documentation}
\hypertarget{output_8h_a0899ff7a013288f7a8f7afc8fa9d8f9c}{\index{output.\+h@{output.\+h}!O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T@{O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T}}
\index{O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T@{O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T}!output.\+h@{output.\+h}}
\subsubsection[{O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T}]{\setlength{\rightskip}{0pt plus 5cm}\#define O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T(
\begin{DoxyParamCaption}
\item[{}]{a}
\end{DoxyParamCaption}
)}}\label{output_8h_a0899ff7a013288f7a8f7afc8fa9d8f9c}


Main macro for use in sending debugging output to output streams; will be \char`\"{}compiled out\char`\"{} when O\+P\+A\+L is configured without --enable-\/debug. 

\begin{DoxySeeAlso}{See also}
\hyperlink{output_8h_a3405da348d8cc528b921c8a1d8302be7}{opal\+\_\+output()} 
\end{DoxySeeAlso}


Referenced by opal\+\_\+graph\+\_\+adjacent(), opal\+\_\+graph\+\_\+dijkstra(), opal\+\_\+graph\+\_\+get\+\_\+adjacent\+\_\+vertices(), opal\+\_\+graph\+\_\+spf(), opal\+\_\+progress\+\_\+event\+\_\+users\+\_\+decrement(), opal\+\_\+progress\+\_\+event\+\_\+users\+\_\+increment(), opal\+\_\+progress\+\_\+init(), opal\+\_\+progress\+\_\+set\+\_\+event\+\_\+flag(), opal\+\_\+progress\+\_\+set\+\_\+event\+\_\+poll\+\_\+rate(), and opal\+\_\+progress\+\_\+set\+\_\+yield\+\_\+when\+\_\+idle().

\hypertarget{output_8h_ac1802ce1863ea1add58d6b8d248f0597}{\index{output.\+h@{output.\+h}!O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T\+\_\+\+V\+E\+R\+B\+O\+S\+E@{O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T\+\_\+\+V\+E\+R\+B\+O\+S\+E}}
\index{O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T\+\_\+\+V\+E\+R\+B\+O\+S\+E@{O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T\+\_\+\+V\+E\+R\+B\+O\+S\+E}!output.\+h@{output.\+h}}
\subsubsection[{O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T\+\_\+\+V\+E\+R\+B\+O\+S\+E}]{\setlength{\rightskip}{0pt plus 5cm}\#define O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T\+\_\+\+V\+E\+R\+B\+O\+S\+E(
\begin{DoxyParamCaption}
\item[{}]{a}
\end{DoxyParamCaption}
)}}\label{output_8h_ac1802ce1863ea1add58d6b8d248f0597}


Macro for use in sending debugging output to the output streams. 

Will be \char`\"{}compiled out\char`\"{} when O\+P\+A\+L is configured without --enable-\/debug.

\begin{DoxySeeAlso}{See also}
\hyperlink{output_8h_a0864d696ef030700e849021731a358e0}{opal\+\_\+output\+\_\+verbose()} 
\end{DoxySeeAlso}


Referenced by mca\+\_\+oob\+\_\+tcp\+\_\+peer\+\_\+close(), mca\+\_\+pml\+\_\+csum\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+ack(), mca\+\_\+pml\+\_\+csum\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+fin(), mca\+\_\+pml\+\_\+csum\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+match(), mca\+\_\+pml\+\_\+csum\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+put(), mca\+\_\+pml\+\_\+csum\+\_\+recv\+\_\+request\+\_\+progress\+\_\+rndv(), mca\+\_\+pml\+\_\+csum\+\_\+send\+\_\+fin(), orte\+\_\+errmgr\+\_\+base\+\_\+set\+\_\+fault\+\_\+callback(), orte\+\_\+ess\+\_\+base\+\_\+orted\+\_\+setup(), orte\+\_\+filem\+\_\+base\+\_\+comm\+\_\+start(), orte\+\_\+odls\+\_\+base\+\_\+default\+\_\+signal\+\_\+local\+\_\+procs(), orte\+\_\+plm\+\_\+base\+\_\+orted\+\_\+exit(), orte\+\_\+plm\+\_\+submit\+\_\+launch(), orte\+\_\+ras\+\_\+base\+\_\+node\+\_\+insert(), orte\+\_\+rmaps\+\_\+base\+\_\+get\+\_\+target\+\_\+nodes(), orte\+\_\+rml\+\_\+base\+\_\+update\+\_\+contact\+\_\+info(), orte\+\_\+show\+\_\+help\+\_\+init(), and orte\+\_\+util\+\_\+add\+\_\+hostfile\+\_\+nodes().



\subsection{Function Documentation}
\hypertarget{output_8h_a2196df8508f9c43b000947a08606fb5c}{\index{output.\+h@{output.\+h}!O\+B\+J\+\_\+\+C\+L\+A\+S\+S\+\_\+\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N@{O\+B\+J\+\_\+\+C\+L\+A\+S\+S\+\_\+\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N}}
\index{O\+B\+J\+\_\+\+C\+L\+A\+S\+S\+\_\+\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N@{O\+B\+J\+\_\+\+C\+L\+A\+S\+S\+\_\+\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N}!output.\+h@{output.\+h}}
\subsubsection[{O\+B\+J\+\_\+\+C\+L\+A\+S\+S\+\_\+\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C O\+B\+J\+\_\+\+C\+L\+A\+S\+S\+\_\+\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N (
\begin{DoxyParamCaption}
\item[{{\bf opal\+\_\+output\+\_\+stream\+\_\+t}}]{}
\end{DoxyParamCaption}
)}}\label{output_8h_a2196df8508f9c43b000947a08606fb5c}


Declare the class of this type. 

Note that the constructor for this class is for convenience only -- it is {\itshape not} necessary to be invoked. If the constructor it used, it sets all values in the struct to be false / 0 (i.\+e., turning off all output). The intended usage is to invoke the constructor and then enable the output fields that you want. \hypertarget{output_8h_a3405da348d8cc528b921c8a1d8302be7}{\index{output.\+h@{output.\+h}!opal\+\_\+output@{opal\+\_\+output}}
\index{opal\+\_\+output@{opal\+\_\+output}!output.\+h@{output.\+h}}
\subsubsection[{opal\+\_\+output}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void opal\+\_\+output (
\begin{DoxyParamCaption}
\item[{int}]{output\+\_\+id, }
\item[{const char $\ast$}]{format, }
\item[{}]{...}
\end{DoxyParamCaption}
)}}\label{output_8h_a3405da348d8cc528b921c8a1d8302be7}


Main function to send output to a stream. 


\begin{DoxyParams}{Parameters}
{\em output\+\_\+id} & Stream id returned from \hyperlink{output_8h_a4d8b0bc841a63bf157029bf5437df599}{opal\+\_\+output\+\_\+open()}. \\
\hline
{\em format} & printf-\/style format string. \\
\hline
{\em varargs} & printf-\/style varargs list to fill the string specified by the format parameter.\\
\hline
\end{DoxyParams}
This is the main function to send output to custom streams (note that output to the default \char`\"{}verbose\char`\"{} stream is handled through \hyperlink{output_8h_a0864d696ef030700e849021731a358e0}{opal\+\_\+output\+\_\+verbose()} and opal\+\_\+output\+\_\+error()).

It is never necessary to send a trailing \char`\"{}\textbackslash{}n\char`\"{} in the strings to this function; some streams requires newlines, others do not -- this function will append newlines as necessary.

Verbosity levels are ignored in this function.

Note that for output streams that are directed to files, the files are stored under the process' session directory. If the session directory does not exist when \hyperlink{output_8h_a3405da348d8cc528b921c8a1d8302be7}{opal\+\_\+output()} is invoked, the output will be discarded! Once the session directory is created, \hyperlink{output_8h_a3405da348d8cc528b921c8a1d8302be7}{opal\+\_\+output()} will automatically create the file and writing to it. 

Referenced by bxor\+\_\+int(), bxor\+\_\+integer(), bxor\+\_\+long(), max\+\_\+double(), max\+\_\+double\+\_\+precision(), max\+\_\+float(), max\+\_\+real(), mca\+\_\+base\+\_\+param\+\_\+recache\+\_\+files(), mca\+\_\+bml\+\_\+base\+\_\+btl\+\_\+array\+\_\+get\+\_\+index(), mca\+\_\+bml\+\_\+base\+\_\+btl\+\_\+array\+\_\+get\+\_\+next(), mca\+\_\+bml\+\_\+base\+\_\+btl\+\_\+array\+\_\+insert(), mca\+\_\+btl\+\_\+elan\+\_\+component\+\_\+init(), mca\+\_\+btl\+\_\+gm\+\_\+component\+\_\+init(), mca\+\_\+btl\+\_\+mx\+\_\+component\+\_\+init(), mca\+\_\+btl\+\_\+mx\+\_\+component\+\_\+progress(), mca\+\_\+btl\+\_\+mx\+\_\+del\+\_\+procs(), mca\+\_\+btl\+\_\+mx\+\_\+prepare\+\_\+dst(), mca\+\_\+btl\+\_\+mx\+\_\+register(), mca\+\_\+btl\+\_\+mx\+\_\+send(), mca\+\_\+btl\+\_\+sm\+\_\+component\+\_\+progress(), mca\+\_\+btl\+\_\+smcuda\+\_\+component\+\_\+progress(), mca\+\_\+btl\+\_\+tcp\+\_\+component\+\_\+init(), mca\+\_\+mpool\+\_\+grdma\+\_\+finalize(), mca\+\_\+mpool\+\_\+rdma\+\_\+finalize(), mca\+\_\+mpool\+\_\+rgpusm\+\_\+deregister(), mca\+\_\+mpool\+\_\+rgpusm\+\_\+finalize(), mca\+\_\+mpool\+\_\+rgpusm\+\_\+find(), mca\+\_\+mpool\+\_\+rgpusm\+\_\+register(), mca\+\_\+oob\+\_\+tcp\+\_\+init(), mca\+\_\+oob\+\_\+tcp\+\_\+msg\+\_\+recv\+\_\+complete(), mca\+\_\+oob\+\_\+tcp\+\_\+msg\+\_\+recv\+\_\+handler(), mca\+\_\+oob\+\_\+tcp\+\_\+msg\+\_\+send\+\_\+handler(), mca\+\_\+oob\+\_\+tcp\+\_\+parse\+\_\+uri(), mca\+\_\+oob\+\_\+tcp\+\_\+peer\+\_\+accept(), mca\+\_\+oob\+\_\+tcp\+\_\+peer\+\_\+close(), mca\+\_\+oob\+\_\+tcp\+\_\+ping(), mca\+\_\+oob\+\_\+tcp\+\_\+resolve(), mca\+\_\+oob\+\_\+tcp\+\_\+set\+\_\+socket\+\_\+options(), mca\+\_\+pml\+\_\+bfo\+\_\+error\+\_\+pending\+\_\+packets(), mca\+\_\+pml\+\_\+bfo\+\_\+is\+\_\+duplicate\+\_\+msg(), mca\+\_\+pml\+\_\+bfo\+\_\+recv\+\_\+request\+\_\+recverrnotify(), mca\+\_\+pml\+\_\+bfo\+\_\+recv\+\_\+request\+\_\+rndvrestartack(), mca\+\_\+pml\+\_\+bfo\+\_\+recv\+\_\+request\+\_\+rndvrestartnack(), mca\+\_\+pml\+\_\+bfo\+\_\+repost\+\_\+match\+\_\+fragment(), mca\+\_\+pml\+\_\+bfo\+\_\+send\+\_\+request\+\_\+rndvrestartnotify(), mca\+\_\+pml\+\_\+bfo\+\_\+update\+\_\+eager\+\_\+bml\+\_\+btl\+\_\+recv\+\_\+ctl(), mca\+\_\+pml\+\_\+csum\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+ack(), mca\+\_\+pml\+\_\+csum\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+fin(), mca\+\_\+pml\+\_\+csum\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+frag(), mca\+\_\+pml\+\_\+csum\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+match(), mca\+\_\+pml\+\_\+csum\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+put(), mca\+\_\+pml\+\_\+csum\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+rndv(), mca\+\_\+pml\+\_\+csum\+\_\+recv\+\_\+request\+\_\+progress\+\_\+rndv(), ompi\+\_\+group\+\_\+peer\+\_\+lookup(), ompi\+\_\+mpi\+\_\+finalize(), ompi\+\_\+mpi\+\_\+init(), ompi\+\_\+wait\+\_\+for\+\_\+debugger(), opal\+\_\+cr\+\_\+init(), opal\+\_\+graph\+\_\+print(), opal\+\_\+hash\+\_\+table\+\_\+get\+\_\+value\+\_\+ptr(), opal\+\_\+hash\+\_\+table\+\_\+get\+\_\+value\+\_\+uint32(), opal\+\_\+hash\+\_\+table\+\_\+get\+\_\+value\+\_\+uint64(), opal\+\_\+hash\+\_\+table\+\_\+remove\+\_\+value\+\_\+ptr(), opal\+\_\+hash\+\_\+table\+\_\+remove\+\_\+value\+\_\+uint32(), opal\+\_\+hash\+\_\+table\+\_\+remove\+\_\+value\+\_\+uint64(), opal\+\_\+hash\+\_\+table\+\_\+set\+\_\+value\+\_\+ptr(), opal\+\_\+hash\+\_\+table\+\_\+set\+\_\+value\+\_\+uint32(), opal\+\_\+hash\+\_\+table\+\_\+set\+\_\+value\+\_\+uint64(), opal\+\_\+os\+\_\+dirpath\+\_\+create(), opal\+\_\+pointer\+\_\+array\+\_\+set\+\_\+item(), opal\+\_\+pointer\+\_\+array\+\_\+test\+\_\+and\+\_\+set\+\_\+item(), orte\+\_\+ess\+\_\+base\+\_\+orted\+\_\+setup(), orte\+\_\+notifier\+\_\+base\+\_\+open(), orte\+\_\+plm\+\_\+submit\+\_\+launch(), orte\+\_\+ras\+\_\+gridengine\+\_\+allocate(), orte\+\_\+ras\+\_\+gridengine\+\_\+finalize(), orte\+\_\+register\+\_\+params(), orte\+\_\+rmaps\+\_\+base\+\_\+get\+\_\+target\+\_\+nodes(), orte\+\_\+session\+\_\+dir(), orte\+\_\+session\+\_\+dir\+\_\+cleanup(), orte\+\_\+session\+\_\+dir\+\_\+finalize(), shmem\+\_\+posix\+\_\+shm\+\_\+open(), sum\+\_\+float(), sum\+\_\+int16\+\_\+t(), sum\+\_\+int32\+\_\+t(), and sum\+\_\+int64\+\_\+t().

\hypertarget{output_8h_ab3ac30368e6a33edcfa7733c0b4574a0}{\index{output.\+h@{output.\+h}!opal\+\_\+output\+\_\+close@{opal\+\_\+output\+\_\+close}}
\index{opal\+\_\+output\+\_\+close@{opal\+\_\+output\+\_\+close}!output.\+h@{output.\+h}}
\subsubsection[{opal\+\_\+output\+\_\+close}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void opal\+\_\+output\+\_\+close (
\begin{DoxyParamCaption}
\item[{int}]{output\+\_\+id}
\end{DoxyParamCaption}
)}}\label{output_8h_ab3ac30368e6a33edcfa7733c0b4574a0}


Close an output stream. 


\begin{DoxyParams}{Parameters}
{\em output\+\_\+id} & Handle of the stream to close.\\
\hline
\end{DoxyParams}
Close an output stream. No output will be sent to the stream after it is closed. Be aware that output handles tend to be re-\/used; it is possible that after a stream is closed, if another stream is opened, it will get the same handle value. 

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.



Referenced by opal\+\_\+malloc\+\_\+finalize(), opal\+\_\+output\+\_\+finalize(), orte\+\_\+ess\+\_\+base\+\_\+close(), and orte\+\_\+finalize().

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


Shut down the output stream system. 

Shut down the output stream system, including the default verbose stream. 

References opal\+\_\+output\+\_\+stream\+\_\+t\+::lds\+\_\+prefix, O\+B\+J\+\_\+\+D\+E\+S\+T\+R\+U\+C\+T, and opal\+\_\+output\+\_\+close().



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

\hypertarget{output_8h_ad355d720bb462429ffc9e4ab3a1f0fce}{\index{output.\+h@{output.\+h}!opal\+\_\+output\+\_\+get\+\_\+verbosity@{opal\+\_\+output\+\_\+get\+\_\+verbosity}}
\index{opal\+\_\+output\+\_\+get\+\_\+verbosity@{opal\+\_\+output\+\_\+get\+\_\+verbosity}!output.\+h@{output.\+h}}
\subsubsection[{opal\+\_\+output\+\_\+get\+\_\+verbosity}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int opal\+\_\+output\+\_\+get\+\_\+verbosity (
\begin{DoxyParamCaption}
\item[{int}]{output\+\_\+id}
\end{DoxyParamCaption}
)}}\label{output_8h_ad355d720bb462429ffc9e4ab3a1f0fce}


Get the verbosity level for a stream. 


\begin{DoxyParams}{Parameters}
{\em output\+\_\+id} & Stream id returned from \hyperlink{output_8h_a4d8b0bc841a63bf157029bf5437df599}{opal\+\_\+output\+\_\+open()} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Verbosity of stream 
\end{DoxyReturn}


Referenced by orte\+\_\+ess\+\_\+base\+\_\+orted\+\_\+setup(), and orte\+\_\+rmaps\+\_\+base\+\_\+get\+\_\+target\+\_\+nodes().

\hypertarget{output_8h_a9449315366609859b84865a5f8bcc5ed}{\index{output.\+h@{output.\+h}!opal\+\_\+output\+\_\+init@{opal\+\_\+output\+\_\+init}}
\index{opal\+\_\+output\+\_\+init@{opal\+\_\+output\+\_\+init}!output.\+h@{output.\+h}}
\subsubsection[{opal\+\_\+output\+\_\+init}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C bool opal\+\_\+output\+\_\+init (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}\label{output_8h_a9449315366609859b84865a5f8bcc5ed}


Initializes the output stream system and opens a default \char`\"{}verbose\char`\"{} stream. 


\begin{DoxyRetVals}{Return values}
{\em true} & Upon success. \\
\hline
{\em false} & Upon failure.\\
\hline
\end{DoxyRetVals}
This should be the first function invoked in the output subsystem. After this call, the default \char`\"{}verbose\char`\"{} stream is open and can be written to via calls to \hyperlink{output_8h_a0864d696ef030700e849021731a358e0}{opal\+\_\+output\+\_\+verbose()} and opal\+\_\+output\+\_\+error().

By definition, the default verbose stream has a handle I\+D of 0, and has a verbose level of 0. 

References opal\+\_\+output\+\_\+stream\+\_\+t\+::lds\+\_\+prefix, opal\+\_\+output\+\_\+stream\+\_\+t\+::lds\+\_\+syslog\+\_\+ident, opal\+\_\+output\+\_\+stream\+\_\+t\+::lds\+\_\+syslog\+\_\+priority, opal\+\_\+output\+\_\+stream\+\_\+t\+::lds\+\_\+want\+\_\+stderr, opal\+\_\+output\+\_\+stream\+\_\+t\+::lds\+\_\+want\+\_\+stdout, opal\+\_\+output\+\_\+stream\+\_\+t\+::lds\+\_\+want\+\_\+syslog, O\+B\+J\+\_\+\+C\+O\+N\+S\+T\+R\+U\+C\+T, and opal\+\_\+output\+\_\+open().



Referenced by opal\+\_\+init\+\_\+util(), and opal\+\_\+output\+\_\+switch().

\hypertarget{output_8h_a4d8b0bc841a63bf157029bf5437df599}{\index{output.\+h@{output.\+h}!opal\+\_\+output\+\_\+open@{opal\+\_\+output\+\_\+open}}
\index{opal\+\_\+output\+\_\+open@{opal\+\_\+output\+\_\+open}!output.\+h@{output.\+h}}
\subsubsection[{opal\+\_\+output\+\_\+open}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int opal\+\_\+output\+\_\+open (
\begin{DoxyParamCaption}
\item[{{\bf opal\+\_\+output\+\_\+stream\+\_\+t} $\ast$}]{lds}
\end{DoxyParamCaption}
)}}\label{output_8h_a4d8b0bc841a63bf157029bf5437df599}


Opens an output stream. 


\begin{DoxyParams}{Parameters}
{\em lds} & A pointer to \hyperlink{structopal__output__stream__t}{opal\+\_\+output\+\_\+stream\+\_\+t} describing what the characteristics of the output stream should be.\\
\hline
\end{DoxyParams}
This function opens an output stream and returns an integer handle. The caller is responsible for maintaining the handle and using it in successive calls to \hyperlink{output_8h_a0899ff7a013288f7a8f7afc8fa9d8f9c}{O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T()}, \hyperlink{output_8h_a3405da348d8cc528b921c8a1d8302be7}{opal\+\_\+output()}, \hyperlink{output_8h_a4f85c5f420b770c7da2488dc034b47c7}{opal\+\_\+output\+\_\+switch()}, and \hyperlink{output_8h_ab3ac30368e6a33edcfa7733c0b4574a0}{opal\+\_\+output\+\_\+close()}.

If lds is N\+U\+L\+L, the default descriptions will be used, meaning that output will only be sent to stderr.

It is safe to have multiple threads invoke this function simultaneously; their execution will be serialized in an unspecified manner.

Be sure to see \hyperlink{output_8h_a3405da348d8cc528b921c8a1d8302be7}{opal\+\_\+output()} for a description of what happens when open\+\_\+open() / \hyperlink{output_8h_a3405da348d8cc528b921c8a1d8302be7}{opal\+\_\+output()} is directed to send output to a file but the process session directory does not yet exist. 

Referenced by mca\+\_\+btl\+\_\+base\+\_\+open(), mca\+\_\+coll\+\_\+base\+\_\+open(), mca\+\_\+io\+\_\+base\+\_\+open(), mca\+\_\+oob\+\_\+base\+\_\+open(), ompi\+\_\+op\+\_\+base\+\_\+open(), ompi\+\_\+osc\+\_\+base\+\_\+open(), opal\+\_\+cr\+\_\+init(), opal\+\_\+malloc\+\_\+init(), opal\+\_\+output\+\_\+init(), opal\+\_\+progress\+\_\+init(), orte\+\_\+dt\+\_\+init(), orte\+\_\+errmgr\+\_\+base\+\_\+open(), orte\+\_\+ess\+\_\+base\+\_\+open(), orte\+\_\+grpcomm\+\_\+base\+\_\+open(), orte\+\_\+iof\+\_\+base\+\_\+open(), orte\+\_\+notifier\+\_\+base\+\_\+open(), orte\+\_\+odls\+\_\+base\+\_\+open(), orte\+\_\+plm\+\_\+base\+\_\+open(), orte\+\_\+ras\+\_\+base\+\_\+open(), orte\+\_\+ras\+\_\+gridengine\+\_\+open(), orte\+\_\+register\+\_\+params(), orte\+\_\+rmaps\+\_\+base\+\_\+open(), orte\+\_\+rml\+\_\+base\+\_\+open(), and orte\+\_\+sensor\+\_\+base\+\_\+open().

\hypertarget{output_8h_adf60d0a7b82aa92c8aee7bd344267e71}{\index{output.\+h@{output.\+h}!opal\+\_\+output\+\_\+reopen@{opal\+\_\+output\+\_\+reopen}}
\index{opal\+\_\+output\+\_\+reopen@{opal\+\_\+output\+\_\+reopen}!output.\+h@{output.\+h}}
\subsubsection[{opal\+\_\+output\+\_\+reopen}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int opal\+\_\+output\+\_\+reopen (
\begin{DoxyParamCaption}
\item[{int}]{output\+\_\+id, }
\item[{{\bf opal\+\_\+output\+\_\+stream\+\_\+t} $\ast$}]{lds}
\end{DoxyParamCaption}
)}}\label{output_8h_adf60d0a7b82aa92c8aee7bd344267e71}


Re-\/opens / redirects an output stream. 


\begin{DoxyParams}{Parameters}
{\em output\+\_\+id} & Stream handle to reopen \\
\hline
{\em lds} & A pointer to \hyperlink{structopal__output__stream__t}{opal\+\_\+output\+\_\+stream\+\_\+t} describing what the characteristics of the reopened output stream should be.\\
\hline
\end{DoxyParams}
This function redirects an existing stream into a new \mbox{[}set of\mbox{]} location\mbox{[}s\mbox{]}, as specified by the lds parameter. If the output\+\_\+id passed is invalid, this call is effectively the same as opening a new stream with a specific stream handle. \hypertarget{output_8h_aa1b7d1d0144982f4dc4cc6e36aee5da3}{\index{output.\+h@{output.\+h}!opal\+\_\+output\+\_\+set\+\_\+output\+\_\+file\+\_\+info@{opal\+\_\+output\+\_\+set\+\_\+output\+\_\+file\+\_\+info}}
\index{opal\+\_\+output\+\_\+set\+\_\+output\+\_\+file\+\_\+info@{opal\+\_\+output\+\_\+set\+\_\+output\+\_\+file\+\_\+info}!output.\+h@{output.\+h}}
\subsubsection[{opal\+\_\+output\+\_\+set\+\_\+output\+\_\+file\+\_\+info}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void opal\+\_\+output\+\_\+set\+\_\+output\+\_\+file\+\_\+info (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{dir, }
\item[{const char $\ast$}]{prefix, }
\item[{char $\ast$$\ast$}]{olddir, }
\item[{char $\ast$$\ast$}]{oldprefix}
\end{DoxyParamCaption}
)}}\label{output_8h_aa1b7d1d0144982f4dc4cc6e36aee5da3}


Set characteristics for output files. 


\begin{DoxyParams}{Parameters}
{\em dir} & Directory where output files will go \\
\hline
{\em olddir} & If non-\/\+N\+U\+L\+L, the directory where output files were previously opened \\
\hline
{\em prefix} & Prefix of files in the output directory \\
\hline
{\em oldprefix} & If non-\/\+N\+U\+L\+L, the old prefix\\
\hline
\end{DoxyParams}
This function controls the final filename used for all new output streams that request output files. Specifically, when \hyperlink{structopal__output__stream__t_a7b34d1a7cb6501de61ecd67cd1c5ef01}{opal\+\_\+output\+\_\+stream\+\_\+t\+::lds\+\_\+want\+\_\+file} is true, the output filename will be of the form \$dir/\$prefix\$suffix.

The default value for the output directory is whatever is specified in the T\+M\+P\+D\+I\+R environment variable if it exists, or \$\+H\+O\+M\+E if it does not. The default value for the prefix is \char`\"{}output-\/pid$<$pid$>$-\/\char`\"{} (where \char`\"{}$<$pid$>$\char`\"{} is replaced by the P\+I\+D of the current process).

If dir or prefix are N\+U\+L\+L, new values are not set. The strings represented by dir and prefix are copied into internal storage; it is safe to pass string constants or free() these values after \hyperlink{output_8h_aa1b7d1d0144982f4dc4cc6e36aee5da3}{opal\+\_\+output\+\_\+set\+\_\+output\+\_\+file\+\_\+info()} returns.

If olddir or oldprefix are not N\+U\+L\+L, copies of the old directory and prefix (respectively) are returned in these parameters. The caller is responsible for calling (free) on these values. This allows one to get the old values, output an output file in a specific directory and/or with a specific prefix, and then restore the old values.

Note that this function only affects the creation of {\itshape new} streams -- streams that have already started writing to output files are not affected (i.\+e., their output files are not moved to the new directory). More specifically, the opal\+\_\+output system only opens/creates output files lazily -- so calling this function affects both new streams {\itshape and} any stream that was previously opened but had not yet output anything. 

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

\hypertarget{output_8h_a894219815f1e803fad7e0adcf4ffdc70}{\index{output.\+h@{output.\+h}!opal\+\_\+output\+\_\+set\+\_\+verbosity@{opal\+\_\+output\+\_\+set\+\_\+verbosity}}
\index{opal\+\_\+output\+\_\+set\+\_\+verbosity@{opal\+\_\+output\+\_\+set\+\_\+verbosity}!output.\+h@{output.\+h}}
\subsubsection[{opal\+\_\+output\+\_\+set\+\_\+verbosity}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C char O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C char O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void opal\+\_\+output\+\_\+set\+\_\+verbosity (
\begin{DoxyParamCaption}
\item[{int}]{output\+\_\+id, }
\item[{int}]{level}
\end{DoxyParamCaption}
)}}\label{output_8h_a894219815f1e803fad7e0adcf4ffdc70}


Set the verbosity level for a stream. 


\begin{DoxyParams}{Parameters}
{\em output\+\_\+id} & Stream id returned from \hyperlink{output_8h_a4d8b0bc841a63bf157029bf5437df599}{opal\+\_\+output\+\_\+open()}. \\
\hline
{\em level} & New verbosity level\\
\hline
\end{DoxyParams}
This function sets the verbosity level on a given stream. It will be used for all future invocations of \hyperlink{output_8h_a0864d696ef030700e849021731a358e0}{opal\+\_\+output\+\_\+verbose()}. 

Referenced by mca\+\_\+btl\+\_\+base\+\_\+open(), opal\+\_\+cr\+\_\+init(), and orte\+\_\+dt\+\_\+init().

\hypertarget{output_8h_ab4bbae4ccb6bdad301ff3a1b85233710}{\index{output.\+h@{output.\+h}!opal\+\_\+output\+\_\+string@{opal\+\_\+output\+\_\+string}}
\index{opal\+\_\+output\+\_\+string@{opal\+\_\+output\+\_\+string}!output.\+h@{output.\+h}}
\subsubsection[{opal\+\_\+output\+\_\+string}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C char$\ast$ opal\+\_\+output\+\_\+string (
\begin{DoxyParamCaption}
\item[{int}]{verbose\+\_\+level, }
\item[{int}]{output\+\_\+id, }
\item[{const char $\ast$}]{format, }
\item[{}]{...}
\end{DoxyParamCaption}
)}}\label{output_8h_ab4bbae4ccb6bdad301ff3a1b85233710}


\hyperlink{structSend}{Send} output to a string if the verbosity level is high enough. 


\begin{DoxyParams}{Parameters}
{\em output\+\_\+id} & Stream id returned from \hyperlink{output_8h_a4d8b0bc841a63bf157029bf5437df599}{opal\+\_\+output\+\_\+open()}. \\
\hline
{\em level} & Target verbosity level. \\
\hline
{\em format} & printf-\/style format string. \\
\hline
{\em varargs} & printf-\/style varargs list to fill the string specified by the format parameter.\\
\hline
\end{DoxyParams}
Exactly the same as \hyperlink{output_8h_a0864d696ef030700e849021731a358e0}{opal\+\_\+output\+\_\+verbose()}, except the output it sent to a string instead of to the stream. If the verbose level is not high enough, N\+U\+L\+L is returned. The caller is responsible for free()'ing the returned string. \hypertarget{output_8h_a4f85c5f420b770c7da2488dc034b47c7}{\index{output.\+h@{output.\+h}!opal\+\_\+output\+\_\+switch@{opal\+\_\+output\+\_\+switch}}
\index{opal\+\_\+output\+\_\+switch@{opal\+\_\+output\+\_\+switch}!output.\+h@{output.\+h}}
\subsubsection[{opal\+\_\+output\+\_\+switch}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C bool opal\+\_\+output\+\_\+switch (
\begin{DoxyParamCaption}
\item[{int}]{output\+\_\+id, }
\item[{bool}]{enable}
\end{DoxyParamCaption}
)}}\label{output_8h_a4f85c5f420b770c7da2488dc034b47c7}


Enables and disables output streams. 


\begin{DoxyParams}{Parameters}
{\em output\+\_\+id} & Stream handle to switch \\
\hline
{\em enable} & Boolean indicating whether to enable the stream output or not.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The previous enable state of the stream (true == enabled, false == disabled).
\end{DoxyReturn}
The output of a stream can be temporarily disabled by passing an enable value to false, and later resumed by passing an enable value of true. This does not close the stream -- it simply tells the opal\+\_\+output subsystem to intercept and discard any output sent to the stream via \hyperlink{output_8h_a0899ff7a013288f7a8f7afc8fa9d8f9c}{O\+P\+A\+L\+\_\+\+O\+U\+T\+P\+U\+T()} or \hyperlink{output_8h_a3405da348d8cc528b921c8a1d8302be7}{opal\+\_\+output()} until the output is re-\/enabled. 

References opal\+\_\+output\+\_\+init().

\hypertarget{output_8h_a0864d696ef030700e849021731a358e0}{\index{output.\+h@{output.\+h}!opal\+\_\+output\+\_\+verbose@{opal\+\_\+output\+\_\+verbose}}
\index{opal\+\_\+output\+\_\+verbose@{opal\+\_\+output\+\_\+verbose}!output.\+h@{output.\+h}}
\subsubsection[{opal\+\_\+output\+\_\+verbose}]{\setlength{\rightskip}{0pt plus 5cm}O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void O\+P\+A\+L\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void opal\+\_\+output\+\_\+verbose (
\begin{DoxyParamCaption}
\item[{int}]{verbose\+\_\+level, }
\item[{int}]{output\+\_\+id, }
\item[{const char $\ast$}]{format, }
\item[{}]{...}
\end{DoxyParamCaption}
)}}\label{output_8h_a0864d696ef030700e849021731a358e0}


\hyperlink{structSend}{Send} output to a stream only if the passed verbosity level is high enough. 


\begin{DoxyParams}{Parameters}
{\em output\+\_\+id} & Stream id returned from \hyperlink{output_8h_a4d8b0bc841a63bf157029bf5437df599}{opal\+\_\+output\+\_\+open()}. \\
\hline
{\em level} & Target verbosity level. \\
\hline
{\em format} & printf-\/style format string. \\
\hline
{\em varargs} & printf-\/style varargs list to fill the string specified by the format parameter.\\
\hline
\end{DoxyParams}
Output is only sent to the stream if the current verbosity level is greater than or equal to the level parameter. This mechanism can be used to send \char`\"{}information\char`\"{} kinds of output to user applications, but only when the user has asked for a high enough verbosity level.

It is never necessary to send a trailing \char`\"{}\textbackslash{}n\char`\"{} in the strings to this function; some streams requires newlines, others do not -- this function will append newlines as necessary.

This function is really a convenience wrapper around checking the current verbosity level set on the stream, and if the passed level is less than or equal to the stream's verbosity level, this function will effectively invoke opal\+\_\+output to send the output to the stream.

\begin{DoxySeeAlso}{See also}
\hyperlink{output_8h_a894219815f1e803fad7e0adcf4ffdc70}{opal\+\_\+output\+\_\+set\+\_\+verbosity()} 
\end{DoxySeeAlso}


Referenced by btl\+\_\+openib\+\_\+handle\+\_\+failover\+\_\+control\+\_\+messages(), error\+\_\+out\+\_\+all\+\_\+pending\+\_\+frags(), mca\+\_\+btl\+\_\+base\+\_\+select(), mca\+\_\+btl\+\_\+openib\+\_\+endpoint\+\_\+notify(), mca\+\_\+btl\+\_\+openib\+\_\+handle\+\_\+endpoint\+\_\+error(), mca\+\_\+coll\+\_\+base\+\_\+comm\+\_\+select(), mca\+\_\+coll\+\_\+base\+\_\+find\+\_\+available(), mca\+\_\+io\+\_\+base\+\_\+delete(), mca\+\_\+io\+\_\+base\+\_\+file\+\_\+select(), mca\+\_\+mpool\+\_\+rgpusm\+\_\+register(), mca\+\_\+oob\+\_\+base\+\_\+init(), mca\+\_\+pml\+\_\+bfo\+\_\+check\+\_\+recv\+\_\+ctl\+\_\+completion\+\_\+status(), mca\+\_\+pml\+\_\+bfo\+\_\+completion\+\_\+sendreq\+\_\+has\+\_\+error(), mca\+\_\+pml\+\_\+bfo\+\_\+error\+\_\+pending\+\_\+packets(), mca\+\_\+pml\+\_\+bfo\+\_\+get\+\_\+request(), mca\+\_\+pml\+\_\+bfo\+\_\+is\+\_\+duplicate\+\_\+fin(), mca\+\_\+pml\+\_\+bfo\+\_\+is\+\_\+duplicate\+\_\+msg(), mca\+\_\+pml\+\_\+bfo\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+recverrnotify(), mca\+\_\+pml\+\_\+bfo\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+rndvrestartack(), mca\+\_\+pml\+\_\+bfo\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+rndvrestartnack(), mca\+\_\+pml\+\_\+bfo\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+rndvrestartnotify(), mca\+\_\+pml\+\_\+bfo\+\_\+recv\+\_\+request\+\_\+recverrnotify(), mca\+\_\+pml\+\_\+bfo\+\_\+recv\+\_\+request\+\_\+rndvrestartack(), mca\+\_\+pml\+\_\+bfo\+\_\+recv\+\_\+request\+\_\+rndvrestartnack(), mca\+\_\+pml\+\_\+bfo\+\_\+repost\+\_\+fin(), mca\+\_\+pml\+\_\+bfo\+\_\+repost\+\_\+match\+\_\+fragment(), mca\+\_\+pml\+\_\+bfo\+\_\+rndvrestartnotify\+\_\+completion(), mca\+\_\+pml\+\_\+bfo\+\_\+send\+\_\+request\+\_\+restart(), mca\+\_\+pml\+\_\+bfo\+\_\+send\+\_\+request\+\_\+rndvrestartnotify(), mca\+\_\+pml\+\_\+bfo\+\_\+update\+\_\+rndv\+\_\+fields(), ompi\+\_\+op\+\_\+base\+\_\+op\+\_\+select(), opal\+\_\+cr\+\_\+init(), orte\+\_\+ess\+\_\+base\+\_\+close(), orte\+\_\+notifier\+\_\+base\+\_\+select(), orte\+\_\+rml\+\_\+base\+\_\+select(), orte\+\_\+sensor\+\_\+base\+\_\+select(), and shmem\+\_\+posix\+\_\+shm\+\_\+open().

