1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> 3<title>pvlogger.h Source File</title> 4<link href="doxygen.css" rel="stylesheet" type="text/css"> 5</head><body> 6<!-- Generated by Doxygen 1.2.18 --> 7<center> 8<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> 9<hr><h1>pvlogger.h</h1><a href="pvlogger_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 1000009 <span class="preprocessor">#ifndef PVLOGGER_H_INCLUDED</span> 1100010 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_H_INCLUDED</span> 1200011 <span class="preprocessor"></span> 1300012 <span class="preprocessor">#ifndef OSCL_BASE_H_INCLUDED</span> 1400013 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__base_8h.html">oscl_base.h</a>"</span> 1500014 <span class="preprocessor">#endif</span> 1600015 <span class="preprocessor"></span> 1700016 <span class="preprocessor">#ifndef OSCL_VECTOR_H_INCLUDED</span> 1800017 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__vector_8h.html">oscl_vector.h</a>"</span> 1900018 <span class="preprocessor">#endif</span> 2000019 <span class="preprocessor"></span> 2100020 <span class="preprocessor">#ifndef OSCL_DEFALLOC_H_INCLUDED</span> 2200021 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__defalloc_8h.html">oscl_defalloc.h</a>"</span> 2300022 <span class="preprocessor">#endif</span> 2400023 <span class="preprocessor"></span> 2500024 <span class="preprocessor">#ifndef OSCL_SHARED_PTR_H</span> 2600025 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__shared__ptr_8h.html">oscl_shared_ptr.h</a>"</span> 2700026 <span class="preprocessor">#endif</span> 2800027 <span class="preprocessor"></span> 2900028 <span class="preprocessor">#ifndef OSCL_BASE_ALLOC_H_INCLUDED</span> 3000029 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__base__alloc_8h.html">oscl_base_alloc.h</a>"</span> 3100030 <span class="preprocessor">#endif</span> 3200031 <span class="preprocessor"></span> 3300032 34<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; 3500034 3600035 3700036 3800038 <span class="comment">// The instrumentation layer allows groups</span> 3900039 <span class="comment">// of messages to be compiled in or out of</span> 4000040 <span class="comment">// the code based on a build-time parameter.</span> 4100042 <span class="comment"></span> 42<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> 4300056 <span class="preprocessor"></span> 44<a name="l00063"></a><a class="code" href="pvlogger_8h.html#a1">00063</a> <span class="preprocessor">#define PVLOGMSG_INST_PROF 1</span> 4500064 <span class="preprocessor"></span> 46<a name="l00074"></a><a class="code" href="pvlogger_8h.html#a2">00074</a> <span class="preprocessor">#define PVLOGMSG_INST_HLDBG 2</span> 4700075 <span class="preprocessor"></span> 48<a name="l00085"></a><a class="code" href="pvlogger_8h.html#a3">00085</a> <span class="preprocessor">#define PVLOGMSG_INST_MLDBG 3</span> 4900086 <span class="preprocessor"></span> 50<a name="l00096"></a><a class="code" href="pvlogger_8h.html#a4">00096</a> <span class="preprocessor">#define PVLOGMSG_INST_LLDBG 4</span> 5100097 <span class="preprocessor"></span> 5200098 <span class="comment">/*</span> 5300099 <span class="comment">** Default logger instrumentation level. To override this</span> 5400100 <span class="comment">** setting, define PVLOGGER_INST_LEVEL in the osclconfig.h file.</span> 5500101 <span class="comment">** Possible values and the resulting intrumentation:</span> 5600102 <span class="comment">**</span> 5700103 <span class="comment">** PVLOGGER_INST_LEVEL 0 : No logging. All logging statements compiled out.</span> 5800104 <span class="comment">** PVLOGGER_INST_LEVEL 1 : Release level only.</span> 5900105 <span class="comment">** PVLOGGER_INST_LEVEL 2 : Release level + profile level</span> 6000106 <span class="comment">** PVLOGGER_INST_LEVEL 3 : Release level + profile level + high-level debug</span> 6100107 <span class="comment">** PVLOGGER_INST_LEVEL 4 : Release level + profile level + high-level debug + mid-level debug</span> 6200108 <span class="comment">** PVLOGGER_INST_LEVEL 5 & above : Release level + profile level + high-level debug</span> 6300109 <span class="comment">** + mid-level debug + low-level debug</span> 6400110 <span class="comment">*/</span> 6500111 <span class="preprocessor">#ifndef PVLOGGER_INST_LEVEL</span> 6600112 <span class="preprocessor"></span><span class="preprocessor">#if defined(NDEBUG)</span> 6700113 <span class="preprocessor"></span><span class="comment">/* Release mode-- No logging */</span> 6800114 <span class="preprocessor">#define PVLOGGER_INST_LEVEL 0</span> 6900115 <span class="preprocessor"></span><span class="preprocessor">#else</span> 7000116 <span class="preprocessor"></span><span class="comment">/* Debug mode-- Complete logging */</span> 71<a name="l00117"></a><a class="code" href="pvlogger_8h.html#a5">00117</a> <span class="preprocessor">#define PVLOGGER_INST_LEVEL 5</span> 7200118 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 7300119 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 7400120 <span class="preprocessor"></span> 7500121 7600122 <span class="preprocessor">#if (PVLOGGER_INST_LEVEL<1)</span> 7700123 <span class="preprocessor"></span> 7800124 <span class="comment">/*</span> 7900125 <span class="comment">** Disable and compile-out all logging</span> 8000126 <span class="comment">*/</span> 8100127 <span class="preprocessor">#define PVLOGGER_LOGMSG(IL, LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span> 8200128 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_V(IL, LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span> 8300129 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN(IL, LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span> 8400130 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_V(IL, LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span> 8500131 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOG_USE_ONLY(x)</span> 8600132 <span class="preprocessor"></span> 8700133 <span class="preprocessor">#else //PVLOGGER_INST_LEVEL</span> 8800134 <span class="preprocessor"></span> 8900135 <span class="comment">/*</span> 9000136 <span class="comment">** Internal use macros that make the logging calls to PVLogger.</span> 9100137 <span class="comment">*/</span> 92<a name="l00138"></a><a class="code" href="pvlogger_8h.html#a6">00138</a> <span class="preprocessor">#define _PVLOGGER_LOGMSG(LOGGER, LEVEL, MESSAGE)\</span> 9300139 <span class="preprocessor">{\</span> 9400140 <span class="preprocessor"> if (LOGGER)\</span> 9500141 <span class="preprocessor"> {\</span> 9600142 <span class="preprocessor"> if (LOGGER->IsActive(LEVEL))\</span> 9700143 <span class="preprocessor"> {\</span> 9800144 <span class="preprocessor"> LOGGER->LogMsgString MESSAGE;\</span> 9900145 <span class="preprocessor"> }\</span> 10000146 <span class="preprocessor"> }\</span> 10100147 <span class="preprocessor">}</span> 10200148 <span class="preprocessor"></span> 103<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> 10400150 <span class="preprocessor">{\</span> 10500151 <span class="preprocessor"> if (LOGGER)\</span> 10600152 <span class="preprocessor"> {\</span> 10700153 <span class="preprocessor"> if (LOGGER->IsActive(LEVEL))\</span> 10800154 <span class="preprocessor"> {\</span> 10900155 <span class="preprocessor"> LOGGER->LogMsgStringV MESSAGE;\</span> 11000156 <span class="preprocessor"> }\</span> 11100157 <span class="preprocessor"> }\</span> 11200158 <span class="preprocessor">}</span> 11300159 <span class="preprocessor"></span> 114<a name="l00160"></a><a class="code" href="pvlogger_8h.html#a8">00160</a> <span class="preprocessor">#define _PVLOGGER_LOGBIN(LOGGER, LEVEL, MESSAGE) \</span> 11500161 <span class="preprocessor">{\</span> 11600162 <span class="preprocessor"> if (LOGGER)\</span> 11700163 <span class="preprocessor"> {\</span> 11800164 <span class="preprocessor"> if (LOGGER->IsActive(LEVEL))\</span> 11900165 <span class="preprocessor"> {\</span> 12000166 <span class="preprocessor"> LOGGER->LogMsgBuffers MESSAGE;\</span> 12100167 <span class="preprocessor"> }\</span> 12200168 <span class="preprocessor"> }\</span> 12300169 <span class="preprocessor">}</span> 12400170 <span class="preprocessor"></span> 125<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> 12600172 <span class="preprocessor">{\</span> 12700173 <span class="preprocessor"> if (LOGGER)\</span> 12800174 <span class="preprocessor"> {\</span> 12900175 <span class="preprocessor"> if (LOGGER->IsActive(LEVEL))\</span> 13000176 <span class="preprocessor"> {\</span> 13100177 <span class="preprocessor"> LOGGER->LogMsgBuffersV MESSAGE;\</span> 13200178 <span class="preprocessor"> }\</span> 13300179 <span class="preprocessor"> }\</span> 13400180 <span class="preprocessor">}</span> 13500181 <span class="preprocessor"></span> 13600182 <span class="comment">/*</span> 13700183 <span class="comment">** In case some compilers cannot support the instrumentation-level macros,</span> 13800184 <span class="comment">** they can be disabled by defining PVLOGGER_INST_LEVEL_SUPPORT to 0</span> 13900185 <span class="comment">** in their osclconfig.h. If instrumentation level is not supported, then</span> 14000186 <span class="comment">** all instrumentation levels will be compiled in.</span> 14100187 <span class="comment">**</span> 14200188 <span class="comment">** If PVLOGGER_INST_LEVEL_SUPPORT is not defined, the default is set here to allow</span> 14300189 <span class="comment">** compile-time instrumentation level support.</span> 14400190 <span class="comment">*/</span> 14500191 <span class="preprocessor">#ifndef PVLOGGER_INST_LEVEL_SUPPORT</span> 146<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> 14700193 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 14800194 <span class="preprocessor"></span> 14900195 <span class="preprocessor">#if !(PVLOGGER_INST_LEVEL_SUPPORT)</span> 15000196 <span class="preprocessor"></span> 15100197 <span class="comment">/*</span> 15200198 <span class="comment">** A set of logging macros that ignore the instrumentation level.</span> 15300199 <span class="comment">** All instrumentation levels will be compiled in.</span> 15400200 <span class="comment">*/</span> 15500201 <span class="preprocessor">#define PVLOGGER_LOGMSG(IL, LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGMSG(LOGGER, LEVEL, MESSAGE)</span> 15600202 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_V(IL, LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGMSG_V(LOGGER, LEVEL, MESSAGE)</span> 15700203 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN(IL, LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGBIN(LOGGER, LEVEL, MESSAGE)</span> 15800204 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_V(IL, LOGGER, LEVEL, MESSAGE) _PVLOGGER_LOGBIN_V(LOGGER, LEVEL, MESSAGE)</span> 15900205 <span class="preprocessor"></span> 16000206 <span class="preprocessor">#else //PVLOGGER_INST_LEVEL_SUPPORT</span> 16100207 <span class="preprocessor"></span> 16200208 <span class="comment">/*</span> 16300209 <span class="comment">** This set of macros compiles the logging statements in or out based on the instrumtation</span> 16400210 <span class="comment">** level.</span> 16500211 <span class="comment">*/</span> 16600212 16700213 <span class="preprocessor">#if (PVLOGGER_INST_LEVEL > PVLOGMSG_INST_REL)</span> 168<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> 169<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> 170<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> 171<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> 17200218 <span class="preprocessor"></span><span class="preprocessor">#else</span> 17300219 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_PVLOGMSG_INST_REL(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span> 17400220 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_V_PVLOGMSG_INST_REL(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span> 17500221 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_PVLOGMSG_INST_REL(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span> 17600222 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_V_PVLOGMSG_INST_REL(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span> 17700223 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 17800224 <span class="preprocessor"></span> 17900225 <span class="preprocessor">#if (PVLOGGER_INST_LEVEL > PVLOGMSG_INST_PROF)</span> 180<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> 181<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> 182<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> 183<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> 18400230 <span class="preprocessor"></span><span class="preprocessor">#else</span> 18500231 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_PVLOGMSG_INST_PROF(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span> 18600232 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_V_PVLOGMSG_INST_PROF(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span> 18700233 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_PVLOGMSG_INST_PROF(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span> 18800234 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_V_PVLOGMSG_INST_PROF(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span> 18900235 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 19000236 <span class="preprocessor"></span> 19100237 <span class="preprocessor">#if (PVLOGGER_INST_LEVEL > PVLOGMSG_INST_HLDBG)</span> 192<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> 193<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> 194<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> 195<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> 19600242 <span class="preprocessor"></span><span class="preprocessor">#else</span> 19700243 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_PVLOGMSG_INST_HLDBG(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span> 19800244 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_V_PVLOGMSG_INST_HLDBG(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span> 19900245 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_PVLOGMSG_INST_HLDBG(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span> 20000246 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_V_PVLOGMSG_INST_HLDBG(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span> 20100247 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 20200248 <span class="preprocessor"></span> 20300249 <span class="preprocessor">#if (PVLOGGER_INST_LEVEL > PVLOGMSG_INST_MLDBG)</span> 204<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> 205<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> 206<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> 207<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> 20800254 <span class="preprocessor"></span><span class="preprocessor">#else</span> 20900255 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_PVLOGMSG_INST_MLDBG(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span> 21000256 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_V_PVLOGMSG_INST_MLDBG(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span> 21100257 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_PVLOGMSG_INST_MLDBG(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span> 21200258 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_V_PVLOGMSG_V_INST_MLDBG(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span> 21300259 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 21400260 <span class="preprocessor"></span> 21500261 <span class="preprocessor">#if (PVLOGGER_INST_LEVEL > PVLOGMSG_INST_LLDBG)</span> 216<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> 217<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> 218<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> 219<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> 22000266 <span class="preprocessor"></span><span class="preprocessor">#else</span> 22100267 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_PVLOGMSG_INST_LLDBG(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span> 22200268 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGMSG_V_PVLOGMSG_INST_LLDBG(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span> 22300269 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_PVLOGMSG_INST_LLDBG(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span> 22400270 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_LOGBIN_V_PVLOGMSG_INST_LLDBG(LOGGER, LEVEL, MESSAGE) OSCL_UNUSED_ARG(LOGGER);</span> 22500271 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 22600272 <span class="preprocessor"></span> 22700273 228<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> 229<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> 23000290 <span class="preprocessor"></span> 231<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> 232<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> 23300312 <span class="preprocessor"></span> 23400313 <span class="preprocessor">#endif //PVLOGGER_INST_LEVEL_SUPPORT</span> 23500314 <span class="preprocessor"></span> 236<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> 23700324 <span class="preprocessor"></span> 23800325 <span class="preprocessor">#endif // PVLOGGER_INST_LEVEL</span> 23900326 <span class="preprocessor"></span> 24000331 <span class="preprocessor">#ifndef PVLOGGER_ENABLE</span> 24100332 <span class="preprocessor"></span><span class="preprocessor">#if (PVLOGGER_INST_LEVEL<1)</span> 24200333 <span class="preprocessor"></span><span class="preprocessor">#define PVLOGGER_ENABLE 0</span> 24300334 <span class="preprocessor"></span><span class="preprocessor">#else</span> 244<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> 24500336 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 24600337 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 24700338 <span class="preprocessor"></span> 24800350 <span class="keyword">class </span><a class="code" href="classPVLoggerAppender.html">PVLoggerAppender</a>; 24900351 <span class="keyword">class </span><a class="code" href="classPVLoggerFilter.html">PVLoggerFilter</a>; 250<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> 25100353 { 25200354 <span class="keyword">public</span>: 25300355 254<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>; 255<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>; 256<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>; 257<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>; 25800360 25900369 OSCL_IMPORT_REF <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classPVLogger.html#d0">Init</a>(); 26000370 26100371 26200379 OSCL_IMPORT_REF <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classPVLogger.html#d1">Cleanup</a>(); 26300380 26400401 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); 26500402 266<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) 26700411 { 26800412 <span class="preprocessor">#if(PVLOGGER_ENABLE)</span> 26900413 <span class="preprocessor"></span> _level = level; 27000414 <span class="preprocessor">#else</span> 27100415 <span class="preprocessor"></span> <a class="code" href="group__osclbase.html#a89">OSCL_UNUSED_ARG</a>(level); 27200416 <span class="preprocessor">#endif</span> 27300417 <span class="preprocessor"></span> } 27400418 27500427 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); 27600428 277<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>() 27800437 { 27900438 <span class="preprocessor">#if(PVLOGGER_ENABLE)</span> 28000439 <span class="preprocessor"></span> <span class="keywordflow">return</span>(_level); 28100440 <span class="preprocessor">#else</span> 28200441 <span class="preprocessor"></span> <span class="keywordflow">return</span> 0; 28300442 <span class="preprocessor">#endif</span> 28400443 <span class="preprocessor"></span> } 28500444 286<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>() 28700450 { 28800451 <span class="preprocessor">#if(PVLOGGER_ENABLE)</span> 28900452 <span class="preprocessor"></span> _oAppenderInheritance = <span class="keyword">false</span>; 29000453 <span class="preprocessor">#endif</span> 29100454 <span class="preprocessor"></span> } 29200455 293<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) 29400468 { 29500469 <span class="preprocessor">#if(PVLOGGER_ENABLE)</span> 29600470 <span class="preprocessor"></span> _pOwnAppenderVec.<a class="code" href="classOscl__Vector.html#a5">push_back</a>(appender); 29700471 <span class="preprocessor">#else</span> 29800472 <span class="preprocessor"></span> <a class="code" href="group__osclbase.html#a89">OSCL_UNUSED_ARG</a>(appender); 29900473 <span class="preprocessor">#endif</span> 30000474 <span class="preprocessor"></span> } 30100475 302<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) 30300486 { 30400487 <span class="preprocessor">#if(PVLOGGER_ENABLE)</span> 30500488 <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>(); 30600489 it != _pOwnAppenderVec.<a class="code" href="classOscl__Vector.html#a18">end</a>(); 30700490 it++) 30800491 { 30900492 <span class="keywordflow">if</span> ((*it).GetRep() == appender.<a class="code" href="classOsclSharedPtr.html#a7">GetRep</a>()) 31000493 { 31100494 _pOwnAppenderVec.<a class="code" href="classOscl__Vector.html#a19">erase</a>(it); 31200495 <span class="keywordflow">break</span>; 31300496 } 31400497 } 31500498 <span class="preprocessor">#else</span> 31600499 <span class="preprocessor"></span> <a class="code" href="group__osclbase.html#a89">OSCL_UNUSED_ARG</a>(appender); 31700500 <span class="preprocessor">#endif</span> 31800501 <span class="preprocessor"></span> } 31900502 320<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) 32100515 { 32200516 <span class="preprocessor">#if(PVLOGGER_ENABLE)</span> 32300517 <span class="preprocessor"></span> _pMsgFilterVec.<a class="code" href="classOscl__Vector.html#a5">push_back</a>(filter); 32400518 <span class="preprocessor">#else</span> 32500519 <span class="preprocessor"></span> <a class="code" href="group__osclbase.html#a89">OSCL_UNUSED_ARG</a>(filter); 32600520 <span class="preprocessor">#endif</span> 32700521 <span class="preprocessor"></span> }; 32800522 329<a name="l00526"></a><a class="code" href="classPVLogger.html#a7">00526</a> uint32 <a class="code" href="classPVLogger.html#a7">GetNumAppenders</a>() 33000527 { 33100528 <span class="preprocessor">#if(PVLOGGER_ENABLE)</span> 33200529 <span class="preprocessor"></span> <span class="keywordflow">return</span>(_pOwnAppenderVec.<a class="code" href="classOscl__Vector__Base.html#a0">size</a>()); 33300530 <span class="preprocessor">#else</span> 33400531 <span class="preprocessor"></span> <span class="keywordflow">return</span> 0; 33500532 <span class="preprocessor">#endif</span> 33600533 <span class="preprocessor"></span> } 33700534 33800546 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); 33900547 34000561 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); 34100562 34200576 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); 34300577 34400591 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, ...); 34500592 34600606 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, ...); 34700607 34800618 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); 34900619 350<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>() 35100621 { 35200622 <span class="preprocessor">#if(PVLOGGER_ENABLE)</span> 35300623 <span class="preprocessor"></span> _tagAllocator.<a class="code" href="classOscl__TAlloc.html#a5">deallocate</a>(_tag); 35400624 <span class="preprocessor">#endif</span> 35500625 <span class="preprocessor"></span> } 35600626 35700627 <span class="preprocessor">#if(PVLOGGER_ENABLE)</span> 35800628 <span class="preprocessor"></span> <span class="keyword">protected</span>: 359<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>; 360<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) 36100631 { 36200632 _parentLogger = parentLogger; 36300633 } 364<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>() 36500635 { 36600636 <span class="keywordflow">return</span>(_parentLogger); 36700637 } 36800638 36900639 <span class="keyword">private</span>: 37000640 <a class="code" href="classPVLogger.html#s2">filter_status_type</a> FilterMsg(<a class="code" href="classPVLogger.html#s1">message_id_type</a> msgID); 37100641 <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); 37200642 <span class="keywordtype">void</span> LogMsg(<a class="code" href="classPVLogger.html#s1">message_id_type</a> msgID, int32 numPairs, va_list arguments); 37300643 37400644 <span class="keywordtype">char</span>* _tag; 37500645 <a class="code" href="classPVLogger.html#s0">log_level_type</a> _level; 37600646 <a class="code" href="classPVLogger.html#s0">log_level_type</a> _lastMsgLevel; 37700647 <span class="keywordtype">bool</span> _oAppenderInheritance; 37800648 37900649 <a class="code" href="classPVLogger.html">PVLogger</a> *_parentLogger; 38000650 <a class="code" href="classOscl__TAlloc.html">Oscl_TAlloc<char, alloc_type></a> _tagAllocator; 38100651 38200652 <a class="code" href="classOscl__Vector.html">Oscl_Vector<OsclSharedPtr<PVLoggerFilter></a>, alloc_type> _pMsgFilterVec; 38300653 <a class="code" href="classOscl__Vector.html">Oscl_Vector<OsclSharedPtr<PVLoggerAppender></a>, alloc_type> _pOwnAppenderVec; 38400654 <span class="preprocessor">#endif //PVLOGGER_ENABLE</span> 38500655 <span class="preprocessor"></span>}; 38600656 38700658 <span class="comment">// log message levels</span> 38800660 <span class="comment"></span> 389<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; 390<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; 391<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; 392<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; 393<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; 394<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; 395<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; 396<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; 397<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; 39800697 39900699 <span class="comment">// do not use these levels</span> 40000700 <span class="comment">// for backward compatibility only</span> 401<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> 402<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>; 403<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>; 404<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>; 40500706 40600707 <span class="preprocessor">#endif // PVLOGGER_H_INCLUDED</span> 407</pre></div><hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small> 408<address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small> 409</small></address> 410</body> 411</html> 412