<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.5"/> <title>oRTP: include/ortp/logging.h File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">oRTP  <span id="projectnumber">0.22.0</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.5 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_c54cf482d11bde8df616114128d61669.html">ortp</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#define-members">Macros</a> | <a href="#typedef-members">Typedefs</a> | <a href="#enum-members">Enumerations</a> | <a href="#func-members">Functions</a> | <a href="#var-members">Variables</a> </div> <div class="headertitle"> <div class="title">logging.h File Reference</div> </div> </div><!--header--> <div class="contents"> <p>Logging API. <a href="#details">More...</a></p> <div class="textblock"><code>#include <ortp/port.h></code><br/> </div> <p><a href="logging_8h_source.html">Go to the source code of this file.</a></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> Macros</h2></td></tr> <tr class="memitem:a1a233a1f9c4efa4476b25d6829551e5e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1a233a1f9c4efa4476b25d6829551e5e"></a> #define </td><td class="memItemRight" valign="bottom"><b>ortp_log_level_enabled</b>(level)   (ortp_get_log_level_mask() & (level))</td></tr> <tr class="separator:a1a233a1f9c4efa4476b25d6829551e5e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a504f7e404e099905bca5498b88ee5f5c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><b>ortp_logv</b>(level, fmt, args)</td></tr> <tr class="separator:a504f7e404e099905bca5498b88ee5f5c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af885559332da80916395dd53c4f27879"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af885559332da80916395dd53c4f27879"></a> #define </td><td class="memItemRight" valign="bottom"><b>CHECK_FORMAT_ARGS</b>(m, n)</td></tr> <tr class="separator:af885559332da80916395dd53c4f27879"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a38c6b17390bcc5c146b0b33d9326875d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a38c6b17390bcc5c146b0b33d9326875d"></a> #define </td><td class="memItemRight" valign="bottom"><b>ortp_debug</b>(...)</td></tr> <tr class="separator:a38c6b17390bcc5c146b0b33d9326875d"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr class="memitem:a6fadafbc3fc1ee34f2fa50286e911a65"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6fadafbc3fc1ee34f2fa50286e911a65"></a> typedef void(* </td><td class="memItemRight" valign="bottom"><b>OrtpLogFunc</b> )(OrtpLogLevel lev, const char *fmt, va_list args)</td></tr> <tr class="separator:a6fadafbc3fc1ee34f2fa50286e911a65"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a> Enumerations</h2></td></tr> <tr class="memitem:acd0bdaefa1dabacf185dddb3eb637450"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><b>OrtpLogLevel</b> { <br/>   <b>ORTP_DEBUG</b> =1, <b>ORTP_MESSAGE</b> =1<<1, <b>ORTP_WARNING</b> =1<<2, <b>ORTP_ERROR</b> =1<<3, <br/>   <b>ORTP_FATAL</b> =1<<4, <b>ORTP_TRACE</b> =1<<5, <b>ORTP_LOGLEV_END</b> =1<<6 <br/> }</td></tr> <tr class="separator:acd0bdaefa1dabacf185dddb3eb637450"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:afde13134028bef4938dfafb72f5df600"><td class="memItemLeft" align="right" valign="top">ORTP_PUBLIC void </td><td class="memItemRight" valign="bottom"><a class="el" href="logging_8h.html#afde13134028bef4938dfafb72f5df600">ortp_set_log_file</a> (FILE *file)</td></tr> <tr class="separator:afde13134028bef4938dfafb72f5df600"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a198c5af3e36951e7b22e3a907500beb9"><td class="memItemLeft" align="right" valign="top">ORTP_PUBLIC void </td><td class="memItemRight" valign="bottom"><a class="el" href="logging_8h.html#a198c5af3e36951e7b22e3a907500beb9">ortp_set_log_handler</a> (OrtpLogFunc func)</td></tr> <tr class="separator:a198c5af3e36951e7b22e3a907500beb9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afb7c656b49eaf064291f55e6179f8d1a"><td class="memItemLeft" align="right" valign="top">ORTP_PUBLIC void </td><td class="memItemRight" valign="bottom"><a class="el" href="logging_8h.html#afb7c656b49eaf064291f55e6179f8d1a">ortp_set_log_level_mask</a> (int levelmask)</td></tr> <tr class="separator:afb7c656b49eaf064291f55e6179f8d1a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a36b088e752a0dbaec1a17bda98d35678"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a36b088e752a0dbaec1a17bda98d35678"></a> ORTP_PUBLIC int </td><td class="memItemRight" valign="bottom"><b>ortp_get_log_level_mask</b> (void)</td></tr> <tr class="separator:a36b088e752a0dbaec1a17bda98d35678"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2de1a310dd937fc1129454dd8d176f02"><td class="memItemLeft" align="right" valign="top">static void const char </td><td class="memItemRight" valign="bottom"><b>va_start</b> (args, fmt)</td></tr> <tr class="separator:a2de1a310dd937fc1129454dd8d176f02"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2d21dc04cffc429b875dc44702ff5041"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2d21dc04cffc429b875dc44702ff5041"></a>  </td><td class="memItemRight" valign="bottom"><b>ortp_logv</b> (lev, fmt, args)</td></tr> <tr class="separator:a2d21dc04cffc429b875dc44702ff5041"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a36af1f79dd6adf0809c21e76535034d5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a36af1f79dd6adf0809c21e76535034d5"></a>  </td><td class="memItemRight" valign="bottom"><b>va_end</b> (args)</td></tr> <tr class="separator:a36af1f79dd6adf0809c21e76535034d5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3f715dcc939a11db77c723e11a12f843"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f715dcc939a11db77c723e11a12f843"></a>  </td><td class="memItemRight" valign="bottom"><b>ortp_logv</b> (ORTP_MESSAGE, fmt, args)</td></tr> <tr class="separator:a3f715dcc939a11db77c723e11a12f843"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a685b2ea46fb6c68e86706d6ae9a49784"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a685b2ea46fb6c68e86706d6ae9a49784"></a>  </td><td class="memItemRight" valign="bottom"><b>ortp_logv</b> (ORTP_WARNING, fmt, args)</td></tr> <tr class="separator:a685b2ea46fb6c68e86706d6ae9a49784"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a44b00573ab54babdc0905e3af7cb12b2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a44b00573ab54babdc0905e3af7cb12b2"></a>  </td><td class="memItemRight" valign="bottom"><b>ortp_logv</b> (ORTP_ERROR, fmt, args)</td></tr> <tr class="separator:a44b00573ab54babdc0905e3af7cb12b2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5395010863fcfc965560cd1b85adc3f5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5395010863fcfc965560cd1b85adc3f5"></a>  </td><td class="memItemRight" valign="bottom"><b>ortp_logv</b> (ORTP_FATAL, fmt, args)</td></tr> <tr class="separator:a5395010863fcfc965560cd1b85adc3f5"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a> Variables</h2></td></tr> <tr class="memitem:ac1a072df641d808083d2551c785c830a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac1a072df641d808083d2551c785c830a"></a> ORTP_VAR_PUBLIC OrtpLogFunc </td><td class="memItemRight" valign="bottom"><b>ortp_logv_out</b></td></tr> <tr class="separator:ac1a072df641d808083d2551c785c830a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:adf68afc8085d4aeb4c638870f9bae8a4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adf68afc8085d4aeb4c638870f9bae8a4"></a> static void const char * </td><td class="memItemRight" valign="bottom"><b>fmt</b></td></tr> <tr class="separator:adf68afc8085d4aeb4c638870f9bae8a4"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>Logging API. </p> </div><h2 class="groupheader">Macro Definition Documentation</h2> <a class="anchor" id="a504f7e404e099905bca5498b88ee5f5c"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ortp_logv</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">level, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">fmt, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">args </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <b>Value:</b><div class="fragment"><div class="line">{\</div> <div class="line"> if (ortp_logv_out!=NULL && ortp_log_level_enabled(level)) \</div> <div class="line"> ortp_logv_out(level,fmt,args);\</div> <div class="line"> if ((level)==ORTP_FATAL) abort();\</div> <div class="line">}while(0)</div> </div><!-- fragment --> </div> </div> <h2 class="groupheader">Function Documentation</h2> <a class="anchor" id="afde13134028bef4938dfafb72f5df600"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">ORTP_PUBLIC void ortp_set_log_file </td> <td>(</td> <td class="paramtype">FILE * </td> <td class="paramname"><em>file</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">file</td><td>a FILE pointer where to output the ortp logs. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a198c5af3e36951e7b22e3a907500beb9"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">ORTP_PUBLIC void ortp_set_log_handler </td> <td>(</td> <td class="paramtype">OrtpLogFunc </td> <td class="paramname"><em>func</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">func,:</td><td>your logging function, compatible with the OrtpLogFunc prototype. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="afb7c656b49eaf064291f55e6179f8d1a"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">ORTP_PUBLIC void ortp_set_log_level_mask </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>levelmask</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>@ param levelmask a mask of ORTP_DEBUG, ORTP_MESSAGE, ORTP_WARNING, ORTP_ERROR ORTP_FATAL . </p> </div> </div> <a class="anchor" id="a2de1a310dd937fc1129454dd8d176f02"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void va_start </td> <td>(</td> <td class="paramtype">args </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">fmt </td> <td class="paramname"> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <b>Initial value:</b><div class="fragment"><div class="line">{</div> <div class="line"> va_list args</div> </div><!-- fragment --> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Sat Oct 19 2013 07:09:42 for oRTP by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.5 </small></address> </body> </html>