\hypertarget{EDM_8c}{
\section{EDM.c File Reference}
\label{EDM_8c}\index{EDM.c@{EDM.c}}
}
Event Diagnostic Message services, implementation. 

{\tt \#include $<$stdio.h$>$}\par
{\tt \#include $<$stdarg.h$>$}\par
{\tt \#include \char`\"{}EFC/EDM.h\char`\"{}}\par


Include dependency graph for EDM.c:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=102pt]{EDM_8c__incl}
\end{center}
\end{figure}
\subsection*{Functions}
\begin{CompactItemize}
\item 
int \hyperlink{EDM_8c_a0}{EDM\_\-x\-Printf} (\hyperlink{EDM_8h_a8}{EDM\_\-level} message\_\-level, \hyperlink{EDM_8h_a8}{EDM\_\-level} print\_\-level, const char $\ast$format,...)
\begin{CompactList}\small\item\em Prints the message if {\em message\_\-level\/} is $>$= {\em print\_\-level\/}. \item\end{CompactList}\item 
int \hyperlink{EDM_8c_a1}{EDM\_\-debug\-Printf} (\hyperlink{EDM_8h_a8}{EDM\_\-level} print\_\-level, const char $\ast$format,...)
\begin{CompactList}\small\item\em Prints the message if {\em EDM\_\-K\_\-DEBUG\/} is $>$= {\em print\_\-level\/}. \item\end{CompactList}\item 
int \hyperlink{EDM_8c_a2}{EDM\_\-info\-Printf} (\hyperlink{EDM_8h_a8}{EDM\_\-level} print\_\-level, const char $\ast$format,...)
\begin{CompactList}\small\item\em Prints the message if {\em EDM\_\-K\_\-INFO\/} is $>$= {\em print\_\-level\/}. \item\end{CompactList}\item 
int \hyperlink{EDM_8c_a3}{EDM\_\-warning\-Printf} (\hyperlink{EDM_8h_a8}{EDM\_\-level} print\_\-level, const char $\ast$format,...)
\begin{CompactList}\small\item\em Prints the message if {\em EDM\_\-K\_\-WARNING\/} is $>$= {\em print\_\-level\/}. \item\end{CompactList}\item 
int \hyperlink{EDM_8c_a4}{EDM\_\-error\-Printf} (\hyperlink{EDM_8h_a8}{EDM\_\-level} print\_\-level, const char $\ast$format,...)
\begin{CompactList}\small\item\em Prints the message if {\em EDM\_\-K\_\-ERROR\/} is $>$= {\em print\_\-level\/}. \item\end{CompactList}\item 
int \hyperlink{EDM_8c_a5}{EDM\_\-fatal\-Printf} (\hyperlink{EDM_8h_a8}{EDM\_\-level} print\_\-level, const char $\ast$format,...)
\begin{CompactList}\small\item\em Prints the message if {\em EDM\_\-K\_\-ERROR\/} is $>$= {\em print\_\-level\/}. \item\end{CompactList}\item 
int \hyperlink{EDM_8c_a6}{EDM\_\-printf} (const char $\ast$format,...)
\begin{CompactList}\small\item\em Unconditional print. \item\end{CompactList}\end{CompactItemize}


\subsection{Detailed Description}
Event Diagnostic Message services, implementation. 

\begin{Desc}
\item[Author:]JJRussell - \href{mailto:russell@slac.stanford.edu}{\tt russell@slac.stanford.edu}\end{Desc}


\footnotesize\begin{verbatim} CVS $Id: EDM.c,v 1.2 2005/11/22 02:32:08 russell Exp $
\end{verbatim}
\normalsize


The facility allows one to embed {\em printf\/} style statements in the program.

\subsection{Function Documentation}
\hypertarget{EDM_8c_a1}{
\index{EDM.c@{EDM.c}!EDM_debugPrintf@{EDM\_\-debugPrintf}}
\index{EDM_debugPrintf@{EDM\_\-debugPrintf}!EDM.c@{EDM.c}}
\subsubsection[EDM\_\-debugPrintf]{\setlength{\rightskip}{0pt plus 5cm}int EDM\_\-debug\-Printf (\hyperlink{EDM_8h_a8}{EDM\_\-level} {\em print\_\-level}, const char $\ast$ {\em format},  {\em ...})}}
\label{EDM_8c_a1}


Prints the message if {\em EDM\_\-K\_\-DEBUG\/} is $>$= {\em print\_\-level\/}. 

\begin{Desc}
\item[Returns:]The value of the resulting printf. If the result is 0, except in very pathology situations, it means the routine was not called because the message level is below the print level\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em print\_\-level}]The print level, one of the enumeration EDM\_\-level. This is generally a more global number controlling which level of messages get printed.\item[{\em format}]The printf format statement\item[{\em ...}]The printf format arguments\end{description}
\end{Desc}
This is just a convenience routine for calling EDM\_\-x\-Printf with a message level of EDM\_\-K\_\-DEBUG.

In general the caller should use the macro EDM\_\-DEBUGPRINTF to access this routine. This macro can be compiled to a NOP when the code writer wishes to configure the same piece of code with and without the EDM facility as an active component.\hypertarget{EDM_8c_a4}{
\index{EDM.c@{EDM.c}!EDM_errorPrintf@{EDM\_\-errorPrintf}}
\index{EDM_errorPrintf@{EDM\_\-errorPrintf}!EDM.c@{EDM.c}}
\subsubsection[EDM\_\-errorPrintf]{\setlength{\rightskip}{0pt plus 5cm}int EDM\_\-error\-Printf (\hyperlink{EDM_8h_a8}{EDM\_\-level} {\em print\_\-level}, const char $\ast$ {\em format},  {\em ...})}}
\label{EDM_8c_a4}


Prints the message if {\em EDM\_\-K\_\-ERROR\/} is $>$= {\em print\_\-level\/}. 

\begin{Desc}
\item[Returns:]The value of the resulting printf. If the result is 0, except in very pathology situations, it means the routine was not called because the message level is below the print level\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em print\_\-level}]The print level, one of the enumeration EDM\_\-level. This is generally a more global number controlling which level of messages get printed.\item[{\em format}]The printf format statement\item[{\em ...}]The printf format arguments\end{description}
\end{Desc}
This is just a convenience routine for calling EDM\_\-x\-Printf with a message level of EDM\_\-K\_\-ERROR.

In general the caller should use the macro EDM\_\-ERRORPRINTF to access this routine. This macro can be compiled to a NOP when the code writer wishes to configure the same piece of code with and without the EDM facility as an active component.\hypertarget{EDM_8c_a5}{
\index{EDM.c@{EDM.c}!EDM_fatalPrintf@{EDM\_\-fatalPrintf}}
\index{EDM_fatalPrintf@{EDM\_\-fatalPrintf}!EDM.c@{EDM.c}}
\subsubsection[EDM\_\-fatalPrintf]{\setlength{\rightskip}{0pt plus 5cm}int EDM\_\-fatal\-Printf (\hyperlink{EDM_8h_a8}{EDM\_\-level} {\em print\_\-level}, const char $\ast$ {\em format},  {\em ...})}}
\label{EDM_8c_a5}


Prints the message if {\em EDM\_\-K\_\-ERROR\/} is $>$= {\em print\_\-level\/}. 

\begin{Desc}
\item[Returns:]The value of the resulting printf. If the result is 0, except in very pathology situations, it means the routine was not called because the message level is below the print level\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em print\_\-level}]The print level, one of the enumeration EDM\_\-level. This is generally a more global number controlling which level of messages get printed.\item[{\em format}]The printf format statement\item[{\em ...}]The printf format arguments\end{description}
\end{Desc}
This is just a convenience routine for calling EDM\_\-x\-Printf with a message level of EDM\_\-K\_\-FATAL.

In general the caller should use the macro EDM\_\-FATALPRINTF to access this routine. This macro can be compiled to a NOP when the code writer wishes to configure the same piece of code with and without the EDM facility as an active component.\hypertarget{EDM_8c_a2}{
\index{EDM.c@{EDM.c}!EDM_infoPrintf@{EDM\_\-infoPrintf}}
\index{EDM_infoPrintf@{EDM\_\-infoPrintf}!EDM.c@{EDM.c}}
\subsubsection[EDM\_\-infoPrintf]{\setlength{\rightskip}{0pt plus 5cm}int EDM\_\-info\-Printf (\hyperlink{EDM_8h_a8}{EDM\_\-level} {\em print\_\-level}, const char $\ast$ {\em format},  {\em ...})}}
\label{EDM_8c_a2}


Prints the message if {\em EDM\_\-K\_\-INFO\/} is $>$= {\em print\_\-level\/}. 

\begin{Desc}
\item[Returns:]The value of the resulting printf. If the result is 0, except in very pathology situations, it means the routine was not called because the message level is below the print level\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em print\_\-level}]The print level, one of the enumeration EDM\_\-level. This is generally a more global number controlling which level of messages get printed.\item[{\em format}]The printf format statement\item[{\em ...}]The printf format arguments\end{description}
\end{Desc}
This is just a convenience routine for calling EDM\_\-x\-Printf with a message level of EDM\_\-K\_\-INFO.

In general the caller should use the macro EDM\_\-INFOPRINTF to access this routine. This macro can be compiled to a NOP when the code writer wishes to configure the same piece of code with and without the EDM facility as an active component.\hypertarget{EDM_8c_a6}{
\index{EDM.c@{EDM.c}!EDM_printf@{EDM\_\-printf}}
\index{EDM_printf@{EDM\_\-printf}!EDM.c@{EDM.c}}
\subsubsection[EDM\_\-printf]{\setlength{\rightskip}{0pt plus 5cm}int EDM\_\-printf (const char $\ast$ {\em format},  {\em ...})}}
\label{EDM_8c_a6}


Unconditional print. 

\begin{Desc}
\item[Returns:]The value of the resulting printf. If the result is 0, except in very pathology situations, it means the routine was not called because the message level is below the print level\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em format}]The printf format statement\item[{\em ...}]The printf format arguments\end{description}
\end{Desc}
In general the caller should use the macro EDM\_\-PRINTF to access this routine. This macro can be compiled to a NOP when the code writer wishes to configure the same piece of code with and without the EDM facility as an active component.\hypertarget{EDM_8c_a3}{
\index{EDM.c@{EDM.c}!EDM_warningPrintf@{EDM\_\-warningPrintf}}
\index{EDM_warningPrintf@{EDM\_\-warningPrintf}!EDM.c@{EDM.c}}
\subsubsection[EDM\_\-warningPrintf]{\setlength{\rightskip}{0pt plus 5cm}int EDM\_\-warning\-Printf (\hyperlink{EDM_8h_a8}{EDM\_\-level} {\em print\_\-level}, const char $\ast$ {\em format},  {\em ...})}}
\label{EDM_8c_a3}


Prints the message if {\em EDM\_\-K\_\-WARNING\/} is $>$= {\em print\_\-level\/}. 

\begin{Desc}
\item[Returns:]The value of the resulting printf. If the result is 0, except in very pathology situations, it means the routine was not called because the message level is below the print level\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em print\_\-level}]The print level, one of the enumeration EDM\_\-level. This is generally a more global number controlling which level of messages get printed.\item[{\em format}]The printf format statement\item[{\em ...}]The printf format arguments\end{description}
\end{Desc}
This is just a convenience routine for calling EDM\_\-x\-Printf with a message level of EDM\_\-K\_\-WARNING.

In general the caller should use the macro EDM\_\-WARNINGPRINTF to access this routine. This macro can be compiled to a NOP when the code writer wishes to configure the same piece of code with and without the EDM facility as an active component.\hypertarget{EDM_8c_a0}{
\index{EDM.c@{EDM.c}!EDM_xPrintf@{EDM\_\-xPrintf}}
\index{EDM_xPrintf@{EDM\_\-xPrintf}!EDM.c@{EDM.c}}
\subsubsection[EDM\_\-xPrintf]{\setlength{\rightskip}{0pt plus 5cm}int EDM\_\-x\-Printf (\hyperlink{EDM_8h_a8}{EDM\_\-level} {\em message\_\-level}, \hyperlink{EDM_8h_a8}{EDM\_\-level} {\em print\_\-level}, const char $\ast$ {\em format},  {\em ...})}}
\label{EDM_8c_a0}


Prints the message if {\em message\_\-level\/} is $>$= {\em print\_\-level\/}. 

\begin{Desc}
\item[Returns:]The value of the resulting printf. If the result is 0, except in very pathology situations, it means the routine was not called because the message level is below the print level\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em message\_\-level}]The message level, one of the enumeration EDM\_\-level. This is number is generally associated with a particular message\item[{\em print\_\-level}]The print level, one of the enumeration EDM\_\-level. This is generally a more global number controlling which level of messages get printed.\item[{\em format}]The printf format statement\item[{\em ...}]The printf format arguments\end{description}
\end{Desc}
In general the caller should use the macro EDM\_\-XPRINTF to access this routine. This macro can be compiled to a NOP when the code writer wishes to configure the same piece of code with and without the EDM facility as an active component