<!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> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Data Structures</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Data Fields</a> <a class="qindex" href="globals.html">Globals</a> </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 & 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<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->IsActive(LEVEL))\</span> 00143 <span class="preprocessor"> {\</span> 00144 <span class="preprocessor"> LOGGER->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->IsActive(LEVEL))\</span> 00154 <span class="preprocessor"> {\</span> 00155 <span class="preprocessor"> LOGGER->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->IsActive(LEVEL))\</span> 00165 <span class="preprocessor"> {\</span> 00166 <span class="preprocessor"> LOGGER->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->IsActive(LEVEL))\</span> 00176 <span class="preprocessor"> {\</span> 00177 <span class="preprocessor"> LOGGER->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 > 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 > 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 > 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 > 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 > 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<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<PVLoggerAppender></a> &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<PVLoggerAppender></a> &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<OsclSharedPtr<PVLoggerAppender></a>, alloc_type>::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<PVLoggerFilter></a> &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<char, alloc_type></a> _tagAllocator; 00651 00652 <a class="code" href="classOscl__Vector.html">Oscl_Vector<OsclSharedPtr<PVLoggerFilter></a>, alloc_type> _pMsgFilterVec; 00653 <a class="code" href="classOscl__Vector.html">Oscl_Vector<OsclSharedPtr<PVLoggerAppender></a>, alloc_type> _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>