blob: 9ccd689be2f271758b0bd6e42c54d53c6230076a [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>pvlogger.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.2.18 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>pvlogger.h</h1><a href="pvlogger_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001
00009 <span class="preprocessor">#ifndef PVLOGGER_H_INCLUDED</span>
00010 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_H_INCLUDED</span>
00011 <span class="preprocessor"></span>
00012 <span class="preprocessor">#ifndef OSCL_BASE_H_INCLUDED</span>
00013 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__base_8h.html">oscl_base.h</a>"</span>
00014 <span class="preprocessor">#endif</span>
00015 <span class="preprocessor"></span>
00016 <span class="preprocessor">#ifndef OSCL_VECTOR_H_INCLUDED</span>
00017 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__vector_8h.html">oscl_vector.h</a>"</span>
00018 <span class="preprocessor">#endif</span>
00019 <span class="preprocessor"></span>
00020 <span class="preprocessor">#ifndef OSCL_DEFALLOC_H_INCLUDED</span>
00021 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__defalloc_8h.html">oscl_defalloc.h</a>"</span>
00022 <span class="preprocessor">#endif</span>
00023 <span class="preprocessor"></span>
00024 <span class="preprocessor">#ifndef OSCL_SHARED_PTR_H</span>
00025 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__shared__ptr_8h.html">oscl_shared_ptr.h</a>"</span>
00026 <span class="preprocessor">#endif</span>
00027 <span class="preprocessor"></span>
00028 <span class="preprocessor">#ifndef OSCL_BASE_ALLOC_H_INCLUDED</span>
00029 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__base__alloc_8h.html">oscl_base_alloc.h</a>"</span>
00030 <span class="preprocessor">#endif</span>
00031 <span class="preprocessor"></span>
00032
<a name="l00033"></a><a class="code" href="pvlogger_8h.html#a37">00033</a> <span class="keyword">const</span> int32 <a class="code" href="pvlogger_8h.html#a37">PVLOGGER_LEVEL_UNINTIALIZED</a> = -1;
00034
00035
00036
00038 <span class="comment">// The instrumentation layer allows groups</span>
00039 <span class="comment">// of messages to be compiled in or out of</span>
00040 <span class="comment">// the code based on a build-time parameter.</span>
00042 <span class="comment"></span>
<a name="l00055"></a><a class="code" href="pvlogger_8h.html#a0">00055</a> <span class="comment"></span><span class="preprocessor">#define PVLOGMSG_INST_REL 0</span>
00056 <span class="preprocessor"></span>
<a name="l00063"></a><a class="code" href="pvlogger_8h.html#a1">00063</a> <span class="preprocessor">#define PVLOGMSG_INST_PROF 1</span>
00064 <span class="preprocessor"></span>
<a name="l00074"></a><a class="code" href="pvlogger_8h.html#a2">00074</a> <span class="preprocessor">#define PVLOGMSG_INST_HLDBG 2</span>
00075 <span class="preprocessor"></span>
<a name="l00085"></a><a class="code" href="pvlogger_8h.html#a3">00085</a> <span class="preprocessor">#define PVLOGMSG_INST_MLDBG 3</span>
00086 <span class="preprocessor"></span>
<a name="l00096"></a><a class="code" href="pvlogger_8h.html#a4">00096</a> <span class="preprocessor">#define PVLOGMSG_INST_LLDBG 4</span>
00097 <span class="preprocessor"></span>
00098 <span class="comment">/*</span>
00099 <span class="comment">** Default logger instrumentation level. To override this</span>
00100 <span class="comment">** setting, define PVLOGGER_INST_LEVEL in the osclconfig.h file.</span>
00101 <span class="comment">** Possible values and the resulting intrumentation:</span>
00102 <span class="comment">**</span>
00103 <span class="comment">** PVLOGGER_INST_LEVEL 0 : No logging. All logging statements compiled out.</span>
00104 <span class="comment">** PVLOGGER_INST_LEVEL 1 : Release level only.</span>
00105 <span class="comment">** PVLOGGER_INST_LEVEL 2 : Release level + profile level</span>
00106 <span class="comment">** PVLOGGER_INST_LEVEL 3 : Release level + profile level + high-level debug</span>
00107 <span class="comment">** PVLOGGER_INST_LEVEL 4 : Release level + profile level + high-level debug + mid-level debug</span>
00108 <span class="comment">** PVLOGGER_INST_LEVEL 5 &amp; above : Release level + profile level + high-level debug</span>
00109 <span class="comment">** + mid-level debug + low-level debug</span>
00110 <span class="comment">*/</span>
00111 <span class="preprocessor">#ifndef PVLOGGER_INST_LEVEL</span>
00112 <span class="preprocessor"></span><span class="preprocessor">#if defined(NDEBUG)</span>
00113 <span class="preprocessor"></span><span class="comment">/* Release mode-- No logging */</span>
00114 <span class="preprocessor">#define PVLOGGER_INST_LEVEL 0</span>
00115 <span class="preprocessor"></span><span class="preprocessor">#else</span>
00116 <span class="preprocessor"></span><span class="comment">/* Debug mode-- Complete logging */</span>
<a name="l00117"></a><a class="code" href="pvlogger_8h.html#a5">00117</a> <span class="preprocessor">#define PVLOGGER_INST_LEVEL 5</span>
00118 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00119 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00120 <span class="preprocessor"></span>
00121
00122 <span class="preprocessor">#if (PVLOGGER_INST_LEVEL&lt;1)</span>
00123 <span class="preprocessor"></span>
00124 <span class="comment">/*</span>
00125 <span class="comment">** Disable and compile-out all logging</span>
00126 <span class="comment">*/</span>
00127 <span class="preprocessor">#define PVLOGGER_LOGMSG(IL, LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span>
00128 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_V(IL, LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span>
00129 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN(IL, LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span>
00130 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_V(IL, LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span>
00131 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOG_USE_ONLY(x)</span>
00132 <span class="preprocessor"></span>
00133 <span class="preprocessor">#else //PVLOGGER_INST_LEVEL</span>
00134 <span class="preprocessor"></span>
00135 <span class="comment">/*</span>
00136 <span class="comment">** Internal use macros that make the logging calls to PVLogger.</span>
00137 <span class="comment">*/</span>
<a name="l00138"></a><a class="code" href="pvlogger_8h.html#a6">00138</a> <span class="preprocessor">#define _PVLOGGER_LOGMSG(LOGGER, LEVEL, MESSAGE)\</span>
00139 <span class="preprocessor">{\</span>
00140 <span class="preprocessor"> if (LOGGER)\</span>
00141 <span class="preprocessor"> {\</span>
00142 <span class="preprocessor"> if (LOGGER-&gt;IsActive(LEVEL))\</span>
00143 <span class="preprocessor"> {\</span>
00144 <span class="preprocessor"> LOGGER-&gt;LogMsgString MESSAGE;\</span>
00145 <span class="preprocessor"> }\</span>
00146 <span class="preprocessor"> }\</span>
00147 <span class="preprocessor">}</span>
00148 <span class="preprocessor"></span>
<a name="l00149"></a><a class="code" href="pvlogger_8h.html#a7">00149</a> <span class="preprocessor">#define _PVLOGGER_LOGMSG_V(LOGGER, LEVEL, MESSAGE)\</span>
00150 <span class="preprocessor">{\</span>
00151 <span class="preprocessor"> if (LOGGER)\</span>
00152 <span class="preprocessor"> {\</span>
00153 <span class="preprocessor"> if (LOGGER-&gt;IsActive(LEVEL))\</span>
00154 <span class="preprocessor"> {\</span>
00155 <span class="preprocessor"> LOGGER-&gt;LogMsgStringV MESSAGE;\</span>
00156 <span class="preprocessor"> }\</span>
00157 <span class="preprocessor"> }\</span>
00158 <span class="preprocessor">}</span>
00159 <span class="preprocessor"></span>
<a name="l00160"></a><a class="code" href="pvlogger_8h.html#a8">00160</a> <span class="preprocessor">#define _PVLOGGER_LOGBIN(LOGGER, LEVEL, MESSAGE) \</span>
00161 <span class="preprocessor">{\</span>
00162 <span class="preprocessor"> if (LOGGER)\</span>
00163 <span class="preprocessor"> {\</span>
00164 <span class="preprocessor"> if (LOGGER-&gt;IsActive(LEVEL))\</span>
00165 <span class="preprocessor"> {\</span>
00166 <span class="preprocessor"> LOGGER-&gt;LogMsgBuffers MESSAGE;\</span>
00167 <span class="preprocessor"> }\</span>
00168 <span class="preprocessor"> }\</span>
00169 <span class="preprocessor">}</span>
00170 <span class="preprocessor"></span>
<a name="l00171"></a><a class="code" href="pvlogger_8h.html#a9">00171</a> <span class="preprocessor">#define _PVLOGGER_LOGBIN_V(LOGGER, LEVEL, MESSAGE) \</span>
00172 <span class="preprocessor">{\</span>
00173 <span class="preprocessor"> if (LOGGER)\</span>
00174 <span class="preprocessor"> {\</span>
00175 <span class="preprocessor"> if (LOGGER-&gt;IsActive(LEVEL))\</span>
00176 <span class="preprocessor"> {\</span>
00177 <span class="preprocessor"> LOGGER-&gt;LogMsgBuffersV MESSAGE;\</span>
00178 <span class="preprocessor"> }\</span>
00179 <span class="preprocessor"> }\</span>
00180 <span class="preprocessor">}</span>
00181 <span class="preprocessor"></span>
00182 <span class="comment">/*</span>
00183 <span class="comment">** In case some compilers cannot support the instrumentation-level macros,</span>
00184 <span class="comment">** they can be disabled by defining PVLOGGER_INST_LEVEL_SUPPORT to 0</span>
00185 <span class="comment">** in their osclconfig.h. If instrumentation level is not supported, then</span>
00186 <span class="comment">** all instrumentation levels will be compiled in.</span>
00187 <span class="comment">**</span>
00188 <span class="comment">** If PVLOGGER_INST_LEVEL_SUPPORT is not defined, the default is set here to allow</span>
00189 <span class="comment">** compile-time instrumentation level support.</span>
00190 <span class="comment">*/</span>
00191 <span class="preprocessor">#ifndef PVLOGGER_INST_LEVEL_SUPPORT</span>
<a name="l00192"></a><a class="code" href="pvlogger_8h.html#a10">00192</a> <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_INST_LEVEL_SUPPORT 1</span>
00193 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00194 <span class="preprocessor"></span>
00195 <span class="preprocessor">#if !(PVLOGGER_INST_LEVEL_SUPPORT)</span>
00196 <span class="preprocessor"></span>
00197 <span class="comment">/*</span>
00198 <span class="comment">** A set of logging macros that ignore the instrumentation level.</span>
00199 <span class="comment">** All instrumentation levels will be compiled in.</span>
00200 <span class="comment">*/</span>
00201 <span class="preprocessor">#define PVLOGGER_LOGMSG(IL, LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGMSG(LOGGER, LEVEL, MESSAGE)</span>
00202 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_V(IL, LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGMSG_V(LOGGER, LEVEL, MESSAGE)</span>
00203 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN(IL, LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGBIN(LOGGER, LEVEL, MESSAGE)</span>
00204 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_V(IL, LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGBIN_V(LOGGER, LEVEL, MESSAGE)</span>
00205 <span class="preprocessor"></span>
00206 <span class="preprocessor">#else //PVLOGGER_INST_LEVEL_SUPPORT</span>
00207 <span class="preprocessor"></span>
00208 <span class="comment">/*</span>
00209 <span class="comment">** This set of macros compiles the logging statements in or out based on the instrumtation</span>
00210 <span class="comment">** level.</span>
00211 <span class="comment">*/</span>
00212
00213 <span class="preprocessor">#if (PVLOGGER_INST_LEVEL &gt; PVLOGMSG_INST_REL)</span>
<a name="l00214"></a><a class="code" href="pvlogger_8h.html#a11">00214</a> <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_PVLOGMSG_INST_REL(LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGMSG(LOGGER, LEVEL, MESSAGE)</span>
<a name="l00215"></a><a class="code" href="pvlogger_8h.html#a12">00215</a> <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_V_PVLOGMSG_INST_REL(LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGMSG_V(LOGGER, LEVEL, MESSAGE)</span>
<a name="l00216"></a><a class="code" href="pvlogger_8h.html#a13">00216</a> <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_PVLOGMSG_INST_REL(LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGBIN(LOGGER, LEVEL, MESSAGE)</span>
<a name="l00217"></a><a class="code" href="pvlogger_8h.html#a14">00217</a> <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_V_PVLOGMSG_INST_REL(LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGBIN_V(LOGGER, LEVEL, MESSAGE)</span>
00218 <span class="preprocessor"></span><span class="preprocessor">#else</span>
00219 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_PVLOGMSG_INST_REL(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span>
00220 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_V_PVLOGMSG_INST_REL(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span>
00221 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_PVLOGMSG_INST_REL(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span>
00222 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_V_PVLOGMSG_INST_REL(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span>
00223 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00224 <span class="preprocessor"></span>
00225 <span class="preprocessor">#if (PVLOGGER_INST_LEVEL &gt; PVLOGMSG_INST_PROF)</span>
<a name="l00226"></a><a class="code" href="pvlogger_8h.html#a15">00226</a> <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_PVLOGMSG_INST_PROF(LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGMSG(LOGGER, LEVEL, MESSAGE)</span>
<a name="l00227"></a><a class="code" href="pvlogger_8h.html#a16">00227</a> <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_V_PVLOGMSG_INST_PROF(LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGMSG_V(LOGGER, LEVEL, MESSAGE)</span>
<a name="l00228"></a><a class="code" href="pvlogger_8h.html#a17">00228</a> <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_PVLOGMSG_INST_PROF(LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGBIN(LOGGER, LEVEL, MESSAGE)</span>
<a name="l00229"></a><a class="code" href="pvlogger_8h.html#a18">00229</a> <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_V_PVLOGMSG_INST_PROF(LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGBIN_V(LOGGER, LEVEL, MESSAGE)</span>
00230 <span class="preprocessor"></span><span class="preprocessor">#else</span>
00231 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_PVLOGMSG_INST_PROF(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span>
00232 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_V_PVLOGMSG_INST_PROF(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span>
00233 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_PVLOGMSG_INST_PROF(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span>
00234 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_V_PVLOGMSG_INST_PROF(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span>
00235 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00236 <span class="preprocessor"></span>
00237 <span class="preprocessor">#if (PVLOGGER_INST_LEVEL &gt; PVLOGMSG_INST_HLDBG)</span>
<a name="l00238"></a><a class="code" href="pvlogger_8h.html#a19">00238</a> <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_PVLOGMSG_INST_HLDBG(LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGMSG(LOGGER, LEVEL, MESSAGE)</span>
<a name="l00239"></a><a class="code" href="pvlogger_8h.html#a20">00239</a> <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_V_PVLOGMSG_INST_HLDBG(LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGMSG_V(LOGGER, LEVEL, MESSAGE)</span>
<a name="l00240"></a><a class="code" href="pvlogger_8h.html#a21">00240</a> <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_PVLOGMSG_INST_HLDBG(LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGBIN(LOGGER, LEVEL, MESSAGE)</span>
<a name="l00241"></a><a class="code" href="pvlogger_8h.html#a22">00241</a> <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_V_PVLOGMSG_INST_HLDBG(LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGBIN_V(LOGGER, LEVEL, MESSAGE)</span>
00242 <span class="preprocessor"></span><span class="preprocessor">#else</span>
00243 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_PVLOGMSG_INST_HLDBG(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span>
00244 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_V_PVLOGMSG_INST_HLDBG(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span>
00245 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_PVLOGMSG_INST_HLDBG(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span>
00246 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_V_PVLOGMSG_INST_HLDBG(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span>
00247 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00248 <span class="preprocessor"></span>
00249 <span class="preprocessor">#if (PVLOGGER_INST_LEVEL &gt; PVLOGMSG_INST_MLDBG)</span>
<a name="l00250"></a><a class="code" href="pvlogger_8h.html#a23">00250</a> <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_PVLOGMSG_INST_MLDBG(LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGMSG(LOGGER, LEVEL, MESSAGE)</span>
<a name="l00251"></a><a class="code" href="pvlogger_8h.html#a24">00251</a> <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_V_PVLOGMSG_INST_MLDBG(LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGMSG_V(LOGGER, LEVEL, MESSAGE)</span>
<a name="l00252"></a><a class="code" href="pvlogger_8h.html#a25">00252</a> <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_PVLOGMSG_INST_MLDBG(LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGBIN(LOGGER, LEVEL, MESSAGE)</span>
<a name="l00253"></a><a class="code" href="pvlogger_8h.html#a26">00253</a> <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_V_PVLOGMSG_V_INST_MLDBG(LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGBIN_V(LOGGER, LEVEL, MESSAGE)</span>
00254 <span class="preprocessor"></span><span class="preprocessor">#else</span>
00255 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_PVLOGMSG_INST_MLDBG(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span>
00256 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_V_PVLOGMSG_INST_MLDBG(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span>
00257 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_PVLOGMSG_INST_MLDBG(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span>
00258 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_V_PVLOGMSG_V_INST_MLDBG(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span>
00259 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00260 <span class="preprocessor"></span>
00261 <span class="preprocessor">#if (PVLOGGER_INST_LEVEL &gt; PVLOGMSG_INST_LLDBG)</span>
<a name="l00262"></a><a class="code" href="pvlogger_8h.html#a27">00262</a> <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_PVLOGMSG_INST_LLDBG(LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGMSG(LOGGER, LEVEL, MESSAGE)</span>
<a name="l00263"></a><a class="code" href="pvlogger_8h.html#a28">00263</a> <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_V_PVLOGMSG_INST_LLDBG(LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGMSG_V(LOGGER, LEVEL, MESSAGE)</span>
<a name="l00264"></a><a class="code" href="pvlogger_8h.html#a29">00264</a> <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_PVLOGMSG_INST_LLDBG(LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGBIN(LOGGER, LEVEL, MESSAGE)</span>
<a name="l00265"></a><a class="code" href="pvlogger_8h.html#a30">00265</a> <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_V_PVLOGMSG_INST_LLDBG(LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGBIN_V(LOGGER, LEVEL, MESSAGE)</span>
00266 <span class="preprocessor"></span><span class="preprocessor">#else</span>
00267 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_PVLOGMSG_INST_LLDBG(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span>
00268 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_V_PVLOGMSG_INST_LLDBG(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span>
00269 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_PVLOGMSG_INST_LLDBG(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span>
00270 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_V_PVLOGMSG_INST_LLDBG(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span>
00271 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00272 <span class="preprocessor"></span>
00273
<a name="l00288"></a><a class="code" href="pvlogger_8h.html#a31">00288</a> <span class="preprocessor">#define PVLOGGER_LOGMSG(IL, LOGGER, LEVEL, MESSAGE) PVLOGGER_LOGMSG_ ## IL (LOGGER, LEVEL, MESSAGE)</span>
<a name="l00289"></a><a class="code" href="pvlogger_8h.html#a32">00289</a> <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_V(IL, LOGGER, LEVEL, MESSAGE) PVLOGGER_LOGMSG_V_ ## IL (LOGGER, LEVEL, MESSAGE)</span>
00290 <span class="preprocessor"></span>
<a name="l00310"></a><a class="code" href="pvlogger_8h.html#a33">00310</a> <span class="preprocessor">#define PVLOGGER_LOGBIN(IL, LOGGER, LEVEL, MESSAGE) PVLOGGER_LOGBIN_ ## IL (LOGGER, LEVEL, MESSAGE)</span>
<a name="l00311"></a><a class="code" href="pvlogger_8h.html#a34">00311</a> <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_V(IL, LOGGER, LEVEL, MESSAGE) PVLOGGER_LOGBIN_V_ ## IL (LOGGER, LEVEL, MESSAGE)</span>
00312 <span class="preprocessor"></span>
00313 <span class="preprocessor">#endif //PVLOGGER_INST_LEVEL_SUPPORT</span>
00314 <span class="preprocessor"></span>
<a name="l00323"></a><a class="code" href="pvlogger_8h.html#a35">00323</a> <span class="preprocessor">#define PVLOGGER_LOG_USE_ONLY(x) x</span>
00324 <span class="preprocessor"></span>
00325 <span class="preprocessor">#endif // PVLOGGER_INST_LEVEL</span>
00326 <span class="preprocessor"></span>
00331 <span class="preprocessor">#ifndef PVLOGGER_ENABLE</span>
00332 <span class="preprocessor"></span><span class="preprocessor">#if (PVLOGGER_INST_LEVEL&lt;1)</span>
00333 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_ENABLE 0</span>
00334 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00335"></a><a class="code" href="pvlogger_8h.html#a36">00335</a> <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_ENABLE 1</span>
00336 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00337 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00338 <span class="preprocessor"></span>
00350 <span class="keyword">class </span><a class="code" href="classPVLoggerAppender.html">PVLoggerAppender</a>;
00351 <span class="keyword">class </span><a class="code" href="classPVLoggerFilter.html">PVLoggerFilter</a>;
<a name="l00352"></a><a class="code" href="classPVLogger.html">00352</a> <span class="keyword">class </span><a class="code" href="classPVLogger.html">PVLogger</a>
00353 {
00354 <span class="keyword">public</span>:
00355
<a name="l00356"></a><a class="code" href="classPVLogger.html#s0">00356</a> <span class="keyword">typedef</span> int32 <a class="code" href="classPVLogger.html#s0">log_level_type</a>;
<a name="l00357"></a><a class="code" href="classPVLogger.html#s1">00357</a> <span class="keyword">typedef</span> int32 <a class="code" href="classPVLogger.html#s1">message_id_type</a>;
<a name="l00358"></a><a class="code" href="classPVLogger.html#s2">00358</a> <span class="keyword">typedef</span> int32 <a class="code" href="classPVLogger.html#s2">filter_status_type</a>;
<a name="l00359"></a><a class="code" href="classPVLogger.html#s3">00359</a> <span class="keyword">typedef</span> <a class="code" href="class__OsclBasicAllocator.html">_OsclBasicAllocator</a> <a class="code" href="class__OsclBasicAllocator.html">alloc_type</a>;
00360
00369 OSCL_IMPORT_REF <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classPVLogger.html#d0">Init</a>();
00370
00371
00379 OSCL_IMPORT_REF <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classPVLogger.html#d1">Cleanup</a>();
00380
00401 OSCL_IMPORT_REF <span class="keyword">static</span> <a class="code" href="classPVLogger.html">PVLogger</a> *<a class="code" href="classPVLogger.html#d2">GetLoggerObject</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* inputTag);
00402
<a name="l00410"></a><a class="code" href="classPVLogger.html#a0">00410</a> <span class="keywordtype">void</span> <a class="code" href="classPVLogger.html#a0">SetLogLevel</a>(<a class="code" href="classPVLogger.html#s0">log_level_type</a> level)
00411 {
00412 <span class="preprocessor">#if(PVLOGGER_ENABLE)</span>
00413 <span class="preprocessor"></span> _level = level;
00414 <span class="preprocessor">#else</span>
00415 <span class="preprocessor"></span> <a class="code" href="group__osclbase.html#a89">OSCL_UNUSED_ARG</a>(level);
00416 <span class="preprocessor">#endif</span>
00417 <span class="preprocessor"></span> }
00418
00427 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classPVLogger.html#a1">SetLogLevelAndPropagate</a>(<a class="code" href="classPVLogger.html#s0">log_level_type</a> level);
00428
<a name="l00436"></a><a class="code" href="classPVLogger.html#a2">00436</a> <a class="code" href="classPVLogger.html#s0">log_level_type</a> <a class="code" href="classPVLogger.html#a2">GetLogLevel</a>()
00437 {
00438 <span class="preprocessor">#if(PVLOGGER_ENABLE)</span>
00439 <span class="preprocessor"></span> <span class="keywordflow">return</span>(_level);
00440 <span class="preprocessor">#else</span>
00441 <span class="preprocessor"></span> <span class="keywordflow">return</span> 0;
00442 <span class="preprocessor">#endif</span>
00443 <span class="preprocessor"></span> }
00444
<a name="l00449"></a><a class="code" href="classPVLogger.html#a3">00449</a> <span class="keywordtype">void</span> <a class="code" href="classPVLogger.html#a3">DisableAppenderInheritance</a>()
00450 {
00451 <span class="preprocessor">#if(PVLOGGER_ENABLE)</span>
00452 <span class="preprocessor"></span> _oAppenderInheritance = <span class="keyword">false</span>;
00453 <span class="preprocessor">#endif</span>
00454 <span class="preprocessor"></span> }
00455
<a name="l00467"></a><a class="code" href="classPVLogger.html#a4">00467</a> <span class="keywordtype">void</span> <a class="code" href="classPVLogger.html#a4">AddAppender</a>(<a class="code" href="classOsclSharedPtr.html">OsclSharedPtr&lt;PVLoggerAppender&gt;</a> &amp;appender)
00468 {
00469 <span class="preprocessor">#if(PVLOGGER_ENABLE)</span>
00470 <span class="preprocessor"></span> _pOwnAppenderVec.<a class="code" href="classOscl__Vector.html#a5">push_back</a>(appender);
00471 <span class="preprocessor">#else</span>
00472 <span class="preprocessor"></span> <a class="code" href="group__osclbase.html#a89">OSCL_UNUSED_ARG</a>(appender);
00473 <span class="preprocessor">#endif</span>
00474 <span class="preprocessor"></span> }
00475
<a name="l00485"></a><a class="code" href="classPVLogger.html#a5">00485</a> <span class="keywordtype">void</span> <a class="code" href="classPVLogger.html#a5">RemoveAppender</a>(<a class="code" href="classOsclSharedPtr.html">OsclSharedPtr&lt;PVLoggerAppender&gt;</a> &amp;appender)
00486 {
00487 <span class="preprocessor">#if(PVLOGGER_ENABLE)</span>
00488 <span class="preprocessor"></span> <span class="keywordflow">for</span> (<a class="code" href="classOscl__Vector.html">Oscl_Vector&lt;OsclSharedPtr&lt;PVLoggerAppender&gt;</a>, alloc_type&gt;::iterator it = _pOwnAppenderVec.<a class="code" href="classOscl__Vector.html#a17">begin</a>();
00489 it != _pOwnAppenderVec.<a class="code" href="classOscl__Vector.html#a18">end</a>();
00490 it++)
00491 {
00492 <span class="keywordflow">if</span> ((*it).GetRep() == appender.<a class="code" href="classOsclSharedPtr.html#a7">GetRep</a>())
00493 {
00494 _pOwnAppenderVec.<a class="code" href="classOscl__Vector.html#a19">erase</a>(it);
00495 <span class="keywordflow">break</span>;
00496 }
00497 }
00498 <span class="preprocessor">#else</span>
00499 <span class="preprocessor"></span> <a class="code" href="group__osclbase.html#a89">OSCL_UNUSED_ARG</a>(appender);
00500 <span class="preprocessor">#endif</span>
00501 <span class="preprocessor"></span> }
00502
<a name="l00514"></a><a class="code" href="classPVLogger.html#a6">00514</a> <span class="keywordtype">void</span> <a class="code" href="classPVLogger.html#a6">AddFilter</a>(<a class="code" href="classOsclSharedPtr.html">OsclSharedPtr&lt;PVLoggerFilter&gt;</a> &amp;filter)
00515 {
00516 <span class="preprocessor">#if(PVLOGGER_ENABLE)</span>
00517 <span class="preprocessor"></span> _pMsgFilterVec.<a class="code" href="classOscl__Vector.html#a5">push_back</a>(filter);
00518 <span class="preprocessor">#else</span>
00519 <span class="preprocessor"></span> <a class="code" href="group__osclbase.html#a89">OSCL_UNUSED_ARG</a>(filter);
00520 <span class="preprocessor">#endif</span>
00521 <span class="preprocessor"></span> };
00522
<a name="l00526"></a><a class="code" href="classPVLogger.html#a7">00526</a> uint32 <a class="code" href="classPVLogger.html#a7">GetNumAppenders</a>()
00527 {
00528 <span class="preprocessor">#if(PVLOGGER_ENABLE)</span>
00529 <span class="preprocessor"></span> <span class="keywordflow">return</span>(_pOwnAppenderVec.<a class="code" href="classOscl__Vector__Base.html#a0">size</a>());
00530 <span class="preprocessor">#else</span>
00531 <span class="preprocessor"></span> <span class="keywordflow">return</span> 0;
00532 <span class="preprocessor">#endif</span>
00533 <span class="preprocessor"></span> }
00534
00546 OSCL_IMPORT_REF <span class="keywordtype">bool</span> <a class="code" href="classPVLogger.html#a8">IsActive</a>(<a class="code" href="classPVLogger.html#s0">log_level_type</a> level);
00547
00561 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classPVLogger.html#a9">LogMsgStringV</a>(<a class="code" href="classPVLogger.html#s1">message_id_type</a> msgID, <span class="keyword">const</span> <span class="keywordtype">char</span> * fmt, va_list arguments);
00562
00576 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classPVLogger.html#a10">LogMsgBuffersV</a>(<a class="code" href="classPVLogger.html#s1">message_id_type</a> msgID, int32 numPairs, va_list arguments);
00577
00591 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classPVLogger.html#a11">LogMsgString</a>(<a class="code" href="classPVLogger.html#s1">message_id_type</a> msgID, <span class="keyword">const</span> <span class="keywordtype">char</span> * fmt, ...);
00592
00606 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classPVLogger.html#a12">LogMsgBuffers</a>(<a class="code" href="classPVLogger.html#s1">message_id_type</a> msgID, int32 numPairs, ...);
00607
00618 OSCL_IMPORT_REF <a class="code" href="classPVLogger.html#a13">PVLogger</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* inputTag, <a class="code" href="classPVLogger.html#s0">log_level_type</a> level, <span class="keywordtype">bool</span> oAppenderInheritance);
00619
<a name="l00620"></a><a class="code" href="classPVLogger.html#a14">00620</a> <span class="keyword">virtual</span> <a class="code" href="classPVLogger.html#a14">~PVLogger</a>()
00621 {
00622 <span class="preprocessor">#if(PVLOGGER_ENABLE)</span>
00623 <span class="preprocessor"></span> _tagAllocator.<a class="code" href="classOscl__TAlloc.html#a5">deallocate</a>(_tag);
00624 <span class="preprocessor">#endif</span>
00625 <span class="preprocessor"></span> }
00626
00627 <span class="preprocessor">#if(PVLOGGER_ENABLE)</span>
00628 <span class="preprocessor"></span> <span class="keyword">protected</span>:
<a name="l00629"></a><a class="code" href="classPVLogger.html#l0">00629</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classPVLoggerRegistry.html">PVLoggerRegistry</a>;
<a name="l00630"></a><a class="code" href="classPVLogger.html#b0">00630</a> <span class="keywordtype">void</span> <a class="code" href="classPVLogger.html#b0">SetParent</a>(<a class="code" href="classPVLogger.html">PVLogger</a> *parentLogger)
00631 {
00632 _parentLogger = parentLogger;
00633 }
<a name="l00634"></a><a class="code" href="classPVLogger.html#b1">00634</a> <a class="code" href="classPVLogger.html">PVLogger</a> *<a class="code" href="classPVLogger.html#b1">GetParent</a>()
00635 {
00636 <span class="keywordflow">return</span>(_parentLogger);
00637 }
00638
00639 <span class="keyword">private</span>:
00640 <a class="code" href="classPVLogger.html#s2">filter_status_type</a> FilterMsg(<a class="code" href="classPVLogger.html#s1">message_id_type</a> msgID);
00641 <span class="keywordtype">void</span> LogMsg(<a class="code" href="classPVLogger.html#s1">message_id_type</a> msgID, <span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, va_list arguments);
00642 <span class="keywordtype">void</span> LogMsg(<a class="code" href="classPVLogger.html#s1">message_id_type</a> msgID, int32 numPairs, va_list arguments);
00643
00644 <span class="keywordtype">char</span>* _tag;
00645 <a class="code" href="classPVLogger.html#s0">log_level_type</a> _level;
00646 <a class="code" href="classPVLogger.html#s0">log_level_type</a> _lastMsgLevel;
00647 <span class="keywordtype">bool</span> _oAppenderInheritance;
00648
00649 <a class="code" href="classPVLogger.html">PVLogger</a> *_parentLogger;
00650 <a class="code" href="classOscl__TAlloc.html">Oscl_TAlloc&lt;char, alloc_type&gt;</a> _tagAllocator;
00651
00652 <a class="code" href="classOscl__Vector.html">Oscl_Vector&lt;OsclSharedPtr&lt;PVLoggerFilter&gt;</a>, alloc_type&gt; _pMsgFilterVec;
00653 <a class="code" href="classOscl__Vector.html">Oscl_Vector&lt;OsclSharedPtr&lt;PVLoggerAppender&gt;</a>, alloc_type&gt; _pOwnAppenderVec;
00654 <span class="preprocessor">#endif //PVLOGGER_ENABLE</span>
00655 <span class="preprocessor"></span>};
00656
00658 <span class="comment">// log message levels</span>
00660 <span class="comment"></span>
<a name="l00664"></a><a class="code" href="pvlogger_8h.html#a38">00664</a> <span class="comment"></span><span class="keyword">const</span> <a class="code" href="classPVLogger.html#s0">PVLogger::log_level_type</a> <a class="code" href="pvlogger_8h.html#a38">PVLOGMSG_EMERG</a> = 0;
<a name="l00668"></a><a class="code" href="pvlogger_8h.html#a39">00668</a> <span class="keyword">const</span> <a class="code" href="classPVLogger.html#s0">PVLogger::log_level_type</a> <a class="code" href="pvlogger_8h.html#a39">PVLOGMSG_ALERT</a> = 1;
<a name="l00672"></a><a class="code" href="pvlogger_8h.html#a40">00672</a> <span class="keyword">const</span> <a class="code" href="classPVLogger.html#s0">PVLogger::log_level_type</a> <a class="code" href="pvlogger_8h.html#a40">PVLOGMSG_CRIT</a> = 2;
<a name="l00676"></a><a class="code" href="pvlogger_8h.html#a41">00676</a> <span class="keyword">const</span> <a class="code" href="classPVLogger.html#s0">PVLogger::log_level_type</a> <a class="code" href="pvlogger_8h.html#a41">PVLOGMSG_ERR</a> = 3;
<a name="l00680"></a><a class="code" href="pvlogger_8h.html#a42">00680</a> <span class="keyword">const</span> <a class="code" href="classPVLogger.html#s0">PVLogger::log_level_type</a> <a class="code" href="pvlogger_8h.html#a42">PVLOGMSG_WARNING</a> = 4;
<a name="l00684"></a><a class="code" href="pvlogger_8h.html#a43">00684</a> <span class="keyword">const</span> <a class="code" href="classPVLogger.html#s0">PVLogger::log_level_type</a> <a class="code" href="pvlogger_8h.html#a43">PVLOGMSG_NOTICE</a> = 5;
<a name="l00688"></a><a class="code" href="pvlogger_8h.html#a44">00688</a> <span class="keyword">const</span> <a class="code" href="classPVLogger.html#s0">PVLogger::log_level_type</a> <a class="code" href="pvlogger_8h.html#a44">PVLOGMSG_INFO</a> = 6;
<a name="l00692"></a><a class="code" href="pvlogger_8h.html#a45">00692</a> <span class="keyword">const</span> <a class="code" href="classPVLogger.html#s0">PVLogger::log_level_type</a> <a class="code" href="pvlogger_8h.html#a45">PVLOGMSG_STACK_TRACE</a> = 7;
<a name="l00696"></a><a class="code" href="pvlogger_8h.html#a46">00696</a> <span class="keyword">const</span> <a class="code" href="classPVLogger.html#s0">PVLogger::log_level_type</a> <a class="code" href="pvlogger_8h.html#a46">PVLOGMSG_DEBUG</a> = 8;
00697
00699 <span class="comment">// do not use these levels</span>
00700 <span class="comment">// for backward compatibility only</span>
<a name="l00702"></a><a class="code" href="pvlogger_8h.html#a47">00702</a> <span class="comment">const PVLogger::log_level_type PVLOGMSG_FATAL_ERROR = PVLOGMSG_EMERG;</span>
<a name="l00703"></a><a class="code" href="pvlogger_8h.html#a48">00703</a> <span class="keyword">const</span> <a class="code" href="classPVLogger.html#s0">PVLogger::log_level_type</a> <a class="code" href="pvlogger_8h.html#a48">PVLOGMSG_NONFATAL_ERROR</a> = <a class="code" href="pvlogger_8h.html#a41">PVLOGMSG_ERR</a>;
<a name="l00704"></a><a class="code" href="pvlogger_8h.html#a49">00704</a> <span class="keyword">const</span> <a class="code" href="classPVLogger.html#s0">PVLogger::log_level_type</a> <a class="code" href="pvlogger_8h.html#a49">PVLOGMSG_STATISTIC</a> = <a class="code" href="pvlogger_8h.html#a44">PVLOGMSG_INFO</a>;
<a name="l00705"></a><a class="code" href="pvlogger_8h.html#a50">00705</a> <span class="keyword">const</span> <a class="code" href="classPVLogger.html#s0">PVLogger::log_level_type</a> <a class="code" href="pvlogger_8h.html#a50">PVLOGMSG_VERBOSE</a> = <a class="code" href="pvlogger_8h.html#a46">PVLOGMSG_DEBUG</a>;
00706
00707 <span class="preprocessor">#endif // PVLOGGER_H_INCLUDED</span>
</pre></div><hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small>
<address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small>
</small></address>
</body>
</html>