aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a02813.html
diff options
context:
space:
mode:
authorneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
committerneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
commit0ea5fc66924303d1bf73ba283a383e2aadee02f2 (patch)
tree2568e71a7ccc44ec23b8bb3f0ff97fb6bf2ed709 /docs/doxygen/nel/a02813.html
downloadnevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz
nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip
Initial commit
Diffstat (limited to 'docs/doxygen/nel/a02813.html')
-rw-r--r--docs/doxygen/nel/a02813.html1977
1 files changed, 1977 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02813.html b/docs/doxygen/nel/a02813.html
new file mode 100644
index 00000000..ab275ff1
--- /dev/null
+++ b/docs/doxygen/nel/a02813.html
@@ -0,0 +1,1977 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>NeL: NLMISC::CLog class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.6 -->
+<div class="qindex"> <form class="search" action="search.php" method="get">
+<a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
+<h1>NLMISC::CLog Class Reference</h1><code>#include &lt;<a class="el" href="a05944.html">log.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for NLMISC::CLog:
+<p><center><img src="a02813.png" usemap="#NLMISC::CLog_map" border="0" alt=""></center>
+<map name="NLMISC::CLog_map">
+<area href="a02986.html" alt="NLNET::CNetLog" shape="rect" coords="0,56,107,80">
+</map>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+When <a class="el" href="a02813.html#NLNET_1_1CNetLoga5">display()</a> is called, the logger builds a string a sends it to its attached displayers. The positive filters, if any, are applied first, then the negative filters. See the nldebug/nlinfo... macros in <a class="el" href="a04199.html">debug.h</a>.<p>
+log_howto <p>
+<dl compact><dt><b><a class="el" href="todo.html#_todo000046">Todo:</a></b></dt><dd>cado: <a class="el" href="a02813.html#NLNET_1_1CNetLoga5">display()</a> and <a class="el" href="a02813.html#NLNET_1_1CNetLoga8">displayRaw()</a> should save the string and send it only when <a class="el" href="a02813.html#NLNET_1_1CNetLoga9">displayRawNL()</a> (or a flush()-style method) is called.</dd></dl>
+<dl compact><dt><b>Author:</b></dt><dd>Vianney Lecroart, Olivier Cado <p>
+Nevrax France </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>2001 </dd></dl>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05944.html#l00054">54</a> of file <a class="el" href="a05944.html">log.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Types</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLogw8">TLogType</a> { <br>
+&nbsp;&nbsp;<a class="el" href="a02813.html#NLNET_1_1CNetLogw8NLNET_1_1CNetLogw4">LOG_NO</a> = 0,
+<a class="el" href="a02813.html#NLNET_1_1CNetLogw8NLNET_1_1CNetLogw2">LOG_ERROR</a>,
+<a class="el" href="a02813.html#NLNET_1_1CNetLogw8NLNET_1_1CNetLogw7">LOG_WARNING</a>,
+<a class="el" href="a02813.html#NLNET_1_1CNetLogw8NLNET_1_1CNetLogw3">LOG_INFO</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02813.html#NLNET_1_1CNetLogw8NLNET_1_1CNetLogw1">LOG_DEBUG</a>,
+<a class="el" href="a02813.html#NLNET_1_1CNetLogw8NLNET_1_1CNetLogw5">LOG_STAT</a>,
+<a class="el" href="a02813.html#NLNET_1_1CNetLogw8NLNET_1_1CNetLogw0">LOG_ASSERT</a>,
+<a class="el" href="a02813.html#NLNET_1_1CNetLogw8NLNET_1_1CNetLogw6">LOG_UNKNOWN</a>
+<br>
+ }</td></tr>
+
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLoga0">addDisplayer</a> (<a class="el" href="a02526.html">IDisplayer</a> *displayer, bool bypassFilter=false)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLoga1">addNegativeFilter</a> (const char *filterstr)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds a negative filter. Tells the logger to discard the lines that contain filterstr. <a href="#NLNET_1_1CNetLoga1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLoga2">addPositiveFilter</a> (const char *filterstr)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds a positive filter. Tells the logger to log only the lines that contain filterstr. <a href="#NLNET_1_1CNetLoga2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLoga3">attached</a> (<a class="el" href="a02526.html">IDisplayer</a> *displayer) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the specified displayer is attached to the log object. <a href="#NLNET_1_1CNetLoga3"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLMISC_1_1CLoga4">CLog</a> (<a class="el" href="a02813.html#NLNET_1_1CNetLogw8">TLogType</a> logType=LOG_NO)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLoga5">display</a> (const char *<a class="el" href="a04223.html#a641">format</a>,...)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Display a string in decorated form to all attached displayers. Call <a class="el" href="a02813.html#NLNET_1_1CNetLoga19">setPosition()</a> before. Releases the mutex. <a href="#NLNET_1_1CNetLoga5"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLoga6">displayFilter</a> (<a class="el" href="a02813.html">CLog</a> &amp;log)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Displays the list of filter into a log. <a href="#NLNET_1_1CNetLoga6"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLoga7">displayNL</a> (const char *<a class="el" href="a04223.html#a641">format</a>,...)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Display a string in decorated and final new line form to all attached displayers. Call <a class="el" href="a02813.html#NLNET_1_1CNetLoga19">setPosition()</a> before. Releases the mutex. <a href="#NLNET_1_1CNetLoga7"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLoga8">displayRaw</a> (const char *<a class="el" href="a04223.html#a641">format</a>,...)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Display a string (and nothing more) to all attached displayers. Call <a class="el" href="a02813.html#NLNET_1_1CNetLoga19">setPosition()</a> before. Releases the mutex. <a href="#NLNET_1_1CNetLoga8"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLoga9">displayRawNL</a> (const char *<a class="el" href="a04223.html#a641">format</a>,...)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Display a string with a final new line to all attached displayers. Call <a class="el" href="a02813.html#NLNET_1_1CNetLoga19">setPosition()</a> before. Releases the mutex. <a href="#NLNET_1_1CNetLoga9"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLoga10">forceDisplayRaw</a> (const char *<a class="el" href="a04223.html#a641">format</a>,...)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02526.html">IDisplayer</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLoga11">getDisplayer</a> (const char *displayerName)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the first displayer selected by his name. <a href="#NLNET_1_1CNetLoga11"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLoga13">noDisplayer</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if no displayer is attached. <a href="#NLNET_1_1CNetLoga13"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLoga15">removeDisplayer</a> (const char *displayerName)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove a displayer using his name. <a href="#NLNET_1_1CNetLoga15"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLoga16">removeDisplayer</a> (<a class="el" href="a02526.html">IDisplayer</a> *displayer)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove a displayer. If the displayer doesn't work in a specific time, you could remove it. <a href="#NLNET_1_1CNetLoga16"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLoga17">removeFilter</a> (const char *filterstr=NULL)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes a filter by name (in both filters). <a href="#NLNET_1_1CNetLoga17"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLoga18">resetFilters</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset both filters. <a href="#NLNET_1_1CNetLoga18"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLoga19">setPosition</a> (<a class="el" href="a04558.html#a14">sint</a> <a class="el" href="a04560.html#a2">line</a>, char *fileName)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If !noDisplayer(), sets line and file parameters, and enters the mutex. If !noDisplayer(), don't forget to call display...() after, to release the mutex. <a href="#NLNET_1_1CNetLoga19"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Static Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLoge0">setDefaultProcessName</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find the process name if nobody call setProcessName before. <a href="#NLNET_1_1CNetLoge0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLoge1">setProcessName</a> (const std::string &amp;processName)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the name of the process. <a href="#NLNET_1_1CNetLoge1"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Protected Types</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::list&lt; <a class="el" href="a02526.html">IDisplayer</a> * &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLogx0">CDisplayers</a></td></tr>
+
+<tr><td colspan=2><br><h2>Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLogb0">displayRawString</a> (const char *str)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Display a Raw string to all attached displayers. <a href="#NLNET_1_1CNetLogb0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLogb1">displayString</a> (const char *str)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Display a string in decorated form to all attached displayers. <a href="#NLNET_1_1CNetLogb1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLogb2">passFilter</a> (const char *filter)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the string must be logged, according to the current filter. <a href="#NLNET_1_1CNetLogb2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLogb3">unsetPosition</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Symetric to <a class="el" href="a02813.html#NLNET_1_1CNetLoga19">setPosition()</a>. Automatically called by display...(). Do not call if <a class="el" href="a02813.html#NLNET_1_1CNetLoga13">noDisplayer()</a>. <a href="#NLNET_1_1CNetLogb3"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02813.html#NLNET_1_1CNetLogx0">CDisplayers</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLogp0">_BypassFilterDisplayers</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02813.html#NLNET_1_1CNetLogx0">CDisplayers</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLogp1">_Displayers</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLogp2">_FileName</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a14">sint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLogp3">_Line</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02813.html#NLNET_1_1CNetLogw8">TLogType</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLogp4">_LogType</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>CMutex&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLogp5">_Mutex</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::list&lt; std::string &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLogp6">_NegativeFilter</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">"Discard" filter <a href="#NLNET_1_1CNetLogp6"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::list&lt; std::string &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLogp7">_PositiveFilter</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">"Crop" filter <a href="#NLNET_1_1CNetLogp7"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLogp8">_PosSet</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02814.html">TDisplayInfo</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLogp9">TempArgs</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLogp10">TempString</a></td></tr>
+
+<tr><td colspan=2><br><h2>Static Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::string *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02813.html#NLNET_1_1CNetLogt0">_ProcessName</a> = NULL</td></tr>
+
+</table>
+<hr><h2>Member Typedef Documentation</h2>
+<a class="anchor" name="NLNET_1_1CNetLogx0" doxytag="NLMISC::CLog::CDisplayers" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef std::list&lt;<a class="el" href="a02526.html">IDisplayer</a> *&gt; <a class="el" href="a02813.html#NLNET_1_1CNetLogx0">NLMISC::CLog::CDisplayers</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05944.html#l00209">209</a> of file <a class="el" href="a05944.html">log.h</a>. </td>
+ </tr>
+</table>
+<hr><h2>Member Enumeration Documentation</h2>
+<a class="anchor" name="NLNET_1_1CNetLogw8" doxytag="NLMISC::CLog::TLogType" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> enum <a class="el" href="a02813.html#NLNET_1_1CNetLogw8">NLMISC::CLog::TLogType</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<dl compact><dt><b>Enumeration values: </b></dt><dd>
+<table border=0 cellspacing=2 cellpadding=0>
+<tr><td valign=top><em><a class="anchor" name="NLNET_1_1CNetLogw8NLNET_1_1CNetLogw4" doxytag="LOG_NO" ></a>LOG_NO</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLNET_1_1CNetLogw8NLNET_1_1CNetLogw2" doxytag="LOG_ERROR" ></a>LOG_ERROR</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLNET_1_1CNetLogw8NLNET_1_1CNetLogw7" doxytag="LOG_WARNING" ></a>LOG_WARNING</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLNET_1_1CNetLogw8NLNET_1_1CNetLogw3" doxytag="LOG_INFO" ></a>LOG_INFO</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLNET_1_1CNetLogw8NLNET_1_1CNetLogw1" doxytag="LOG_DEBUG" ></a>LOG_DEBUG</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLNET_1_1CNetLogw8NLNET_1_1CNetLogw5" doxytag="LOG_STAT" ></a>LOG_STAT</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLNET_1_1CNetLogw8NLNET_1_1CNetLogw0" doxytag="LOG_ASSERT" ></a>LOG_ASSERT</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLNET_1_1CNetLogw8NLNET_1_1CNetLogw6" doxytag="LOG_UNKNOWN" ></a>LOG_UNKNOWN</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05944.html#l00057">57</a> of file <a class="el" href="a05944.html">log.h</a>.
+<p>
+<div class="fragment"><pre>00057 { <a class="code" href="a02813.html#NLNET_1_1CNetLogw8NLNET_1_1CNetLogw4">LOG_NO</a>=0, <a class="code" href="a02813.html#NLNET_1_1CNetLogw8NLNET_1_1CNetLogw2">LOG_ERROR</a>, <a class="code" href="a02813.html#NLNET_1_1CNetLogw8NLNET_1_1CNetLogw7">LOG_WARNING</a>, <a class="code" href="a02813.html#NLNET_1_1CNetLogw8NLNET_1_1CNetLogw3">LOG_INFO</a>, <a class="code" href="a02813.html#NLNET_1_1CNetLogw8NLNET_1_1CNetLogw1">LOG_DEBUG</a>, <a class="code" href="a02813.html#NLNET_1_1CNetLogw8NLNET_1_1CNetLogw5">LOG_STAT</a>, <a class="code" href="a02813.html#NLNET_1_1CNetLogw8NLNET_1_1CNetLogw0">LOG_ASSERT</a>, <a class="code" href="a02813.html#NLNET_1_1CNetLogw8NLNET_1_1CNetLogw6">LOG_UNKNOWN</a> } <a class="code" href="a02813.html#NLNET_1_1CNetLogw8">TLogType</a>;
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NLMISC_1_1CLoga4" doxytag="NLMISC::CLog::CLog" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NLMISC::CLog::CLog </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02813.html#NLNET_1_1CNetLogw8">TLogType</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>logType</em> = LOG_NO </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05943.html#l00051">51</a> of file <a class="el" href="a05943.html">log.cpp</a>.
+<p>
+References <a class="el" href="a06756.html#l00100">LOG</a>, <a class="el" href="a06229.html#l02652">NLMISC::toString()</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00051 : <a class="code" href="a02813.html#NLNET_1_1CNetLogp4">_LogType</a> (logType), <a class="code" href="a02813.html#NLNET_1_1CNetLogp3">_Line</a>(-1), <a class="code" href="a02813.html#NLNET_1_1CNetLogp2">_FileName</a>(NULL), <a class="code" href="a02813.html#NLNET_1_1CNetLogp5">_Mutex</a>(<span class="stringliteral">"LOG"</span>+<a class="code" href="a05378.html#a244">toString</a>((<a class="code" href="a04558.html#a15">uint</a>)logType)), <a class="code" href="a02813.html#NLNET_1_1CNetLogp8">_PosSet</a>(<span class="keyword">false</span>)
+00052 {
+00053 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NLNET_1_1CNetLoga0" doxytag="NLMISC::CLog::addDisplayer" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CLog::addDisplayer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02526.html">IDisplayer</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>displayer</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>bypassFilter</em> = false</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Add a new displayer in the log. You have to create the displayer, remove it and delete it when you have finish with it. For example, in a 3dDisplayer, you can add the displayer when you want, and the displayer displays the string if the 3d screen is available and do nothing otherwise. In this case, if you want, you could leave the displayer all the time.
+<p>
+Definition at line <a class="el" href="a05943.html#l00115">115</a> of file <a class="el" href="a05943.html">log.cpp</a>.
+<p>
+References <a class="el" href="a05944.html#l00213">_BypassFilterDisplayers</a>, <a class="el" href="a05944.html#l00211">_Displayers</a>, and <a class="el" href="a05622.html#l00135">nlwarning</a>.
+<p>
+Referenced by <a class="el" href="a05621.html#l00154">NLMISC::initDebug2()</a>, <a class="el" href="a06364.html#l00419">NLNET::IService::main()</a>, <a class="el" href="a05391.html#l00386">NLNET::serviceGetView()</a>, and <a class="el" href="a05391.html#l00648">NLNET::updateAdmin()</a>.
+<p>
+<div class="fragment"><pre>00116 {
+00117 <span class="keywordflow">if</span> (displayer == NULL)
+00118 {
+00119 <span class="comment">// Can't nlwarning because recursive call</span>
+00120 printf (<span class="stringliteral">"Trying to add a NULL displayer\n"</span>);
+00121 <span class="keywordflow">return</span>;
+00122 }
+00123
+00124 <span class="keywordflow">if</span> (bypassFilter)
+00125 {
+00126 CDisplayers::iterator idi = std::find (<a class="code" href="a02813.html#NLNET_1_1CNetLogp0">_BypassFilterDisplayers</a>.begin (), <a class="code" href="a02813.html#NLNET_1_1CNetLogp0">_BypassFilterDisplayers</a>.end (), displayer);
+00127 <span class="keywordflow">if</span> (idi == <a class="code" href="a02813.html#NLNET_1_1CNetLogp0">_BypassFilterDisplayers</a>.end ())
+00128 {
+00129 <a class="code" href="a02813.html#NLNET_1_1CNetLogp0">_BypassFilterDisplayers</a>.push_back (displayer);
+00130 }
+00131 <span class="keywordflow">else</span>
+00132 {
+00133 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"LOG: Couldn't add the displayer, it was already added"</span>);
+00134 }
+00135 }
+00136 <span class="keywordflow">else</span>
+00137 {
+00138 CDisplayers::iterator idi = std::find (<a class="code" href="a02813.html#NLNET_1_1CNetLogp1">_Displayers</a>.begin (), <a class="code" href="a02813.html#NLNET_1_1CNetLogp1">_Displayers</a>.end (), displayer);
+00139 <span class="keywordflow">if</span> (idi == <a class="code" href="a02813.html#NLNET_1_1CNetLogp1">_Displayers</a>.end ())
+00140 {
+00141 <a class="code" href="a02813.html#NLNET_1_1CNetLogp1">_Displayers</a>.push_back (displayer);
+00142 }
+00143 <span class="keywordflow">else</span>
+00144 {
+00145 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"LOG: Couldn't add the displayer, it was already added"</span>);
+00146 }
+00147 }
+00148 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLoga1" doxytag="NLMISC::CLog::addNegativeFilter" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CLog::addNegativeFilter </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>filterstr</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Adds a negative filter. Tells the logger to discard the lines that contain filterstr.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05943.html#l00593">593</a> of file <a class="el" href="a05943.html">log.cpp</a>.
+<p>
+References <a class="el" href="a05944.html#l00220">_NegativeFilter</a>.
+<p>
+Referenced by <a class="el" href="a06364.html#l00361">NLNET::cbLogFilter()</a>, and <a class="el" href="a05621.html#l01046">NLMISC::NLMISC_COMMAND()</a>.
+<p>
+<div class="fragment"><pre>00594 {
+00595 <span class="comment">//displayNL ("CLog::addNegativeFilter('%s')", filterstr);</span>
+00596 <a class="code" href="a02813.html#NLNET_1_1CNetLogp6">_NegativeFilter</a>.push_back( filterstr );
+00597 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLoga2" doxytag="NLMISC::CLog::addPositiveFilter" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CLog::addPositiveFilter </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>filterstr</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Adds a positive filter. Tells the logger to log only the lines that contain filterstr.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05943.html#l00587">587</a> of file <a class="el" href="a05943.html">log.cpp</a>.
+<p>
+References <a class="el" href="a05944.html#l00223">_PositiveFilter</a>.
+<p>
+Referenced by <a class="el" href="a05621.html#l01039">NLMISC::NLMISC_COMMAND()</a>.
+<p>
+<div class="fragment"><pre>00588 {
+00589 <span class="comment">//displayNL ("CLog::addPositiveFilter('%s')", filterstr);</span>
+00590 <a class="code" href="a02813.html#NLNET_1_1CNetLogp7">_PositiveFilter</a>.push_back( filterstr );
+00591 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLoga3" doxytag="NLMISC::CLog::attached" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLMISC::CLog::attached </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02526.html">IDisplayer</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>displayer</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns true if the specified displayer is attached to the log object.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05943.html#l00235">235</a> of file <a class="el" href="a05943.html">log.cpp</a>.
+<p>
+References <a class="el" href="a05944.html#l00213">_BypassFilterDisplayers</a>, and <a class="el" href="a05944.html#l00211">_Displayers</a>.
+<p>
+<div class="fragment"><pre>00236 {
+00237 <span class="keywordflow">return</span> (find( <a class="code" href="a02813.html#NLNET_1_1CNetLogp1">_Displayers</a>.begin(), <a class="code" href="a02813.html#NLNET_1_1CNetLogp1">_Displayers</a>.end(), displayer ) != <a class="code" href="a02813.html#NLNET_1_1CNetLogp1">_Displayers</a>.end()) ||
+00238 (find( <a class="code" href="a02813.html#NLNET_1_1CNetLogp0">_BypassFilterDisplayers</a>.begin(), <a class="code" href="a02813.html#NLNET_1_1CNetLogp0">_BypassFilterDisplayers</a>.end(), displayer ) != <a class="code" href="a02813.html#NLNET_1_1CNetLogp0">_BypassFilterDisplayers</a>.end());
+00239 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLoga5" doxytag="NLMISC::CLog::display" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CLog::display </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>format</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>...&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Display a string in decorated form to all attached displayers. Call <a class="el" href="a02813.html#NLNET_1_1CNetLoga19">setPosition()</a> before. Releases the mutex.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05943.html#l00348">348</a> of file <a class="el" href="a05943.html">log.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l01016">format</a>, and <a class="el" href="a06465.html#l00070">NLMISC_CONVERT_VARGS</a>.
+<p>
+Referenced by <a class="el" href="a05508.html#l00540">NLMISC::CBufFIFO::display()</a>.
+<p>
+<div class="fragment"><pre>00350 {
+00351 <span class="keywordflow">if</span> ( <a class="code" href="a02813.html#NLNET_1_1CNetLoga13">noDisplayer</a>() )
+00352 {
+00353 <span class="keywordflow">return</span>;
+00354 }
+00355
+00356 <span class="keywordtype">char</span> *str;
+00357 <a class="code" href="a05042.html#a0">NLMISC_CONVERT_VARGS</a> (str, format, 256<span class="comment">/*NLMISC::MaxCStringSize*/</span>);
+00358
+00359 <a class="code" href="a02813.html#NLNET_1_1CNetLogb1">displayString</a> (str);
+00360 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLoga6" doxytag="NLMISC::CLog::displayFilter" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CLog::displayFilter </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02813.html">CLog</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>log</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Displays the list of filter into a log.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05943.html#l00572">572</a> of file <a class="el" href="a05943.html">log.cpp</a>.
+<p>
+References <a class="el" href="a05944.html#l00220">_NegativeFilter</a>, <a class="el" href="a05944.html#l00223">_PositiveFilter</a>, and <a class="el" href="a05943.html#l00323">displayNL()</a>.
+<p>
+Referenced by <a class="el" href="a05621.html#l01063">NLMISC::NLMISC_COMMAND()</a>.
+<p>
+<div class="fragment"><pre>00573 {
+00574 std::list&lt;std::string&gt;::iterator it;
+00575 log.displayNL (<span class="stringliteral">"Positive Filter(s):"</span>);
+00576 <span class="keywordflow">for</span> (it = <a class="code" href="a02813.html#NLNET_1_1CNetLogp7">_PositiveFilter</a>.begin (); it != <a class="code" href="a02813.html#NLNET_1_1CNetLogp7">_PositiveFilter</a>.end (); it++)
+00577 {
+00578 log.displayNL (<span class="stringliteral">"'%s'"</span>, (*it).c_str());
+00579 }
+00580 log.displayNL (<span class="stringliteral">"Negative Filter(s):"</span>);
+00581 <span class="keywordflow">for</span> (it = <a class="code" href="a02813.html#NLNET_1_1CNetLogp6">_NegativeFilter</a>.begin (); it != <a class="code" href="a02813.html#NLNET_1_1CNetLogp6">_NegativeFilter</a>.end (); it++)
+00582 {
+00583 log.displayNL (<span class="stringliteral">"'%s'"</span>, (*it).c_str());
+00584 }
+00585 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLoga7" doxytag="NLMISC::CLog::displayNL" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CLog::displayNL </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>format</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>...&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Display a string in decorated and final new line form to all attached displayers. Call <a class="el" href="a02813.html#NLNET_1_1CNetLoga19">setPosition()</a> before. Releases the mutex.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05943.html#l00323">323</a> of file <a class="el" href="a05943.html">log.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l01016">format</a>, and <a class="el" href="a06465.html#l00070">NLMISC_CONVERT_VARGS</a>.
+<p>
+Referenced by <a class="el" href="a06645.html#l01892">NLNET::createMessage()</a>, <a class="el" href="a06645.html#l01826">NLNET::CUnifiedNetwork::CUnifiedConnection::display()</a>, <a class="el" href="a05787.html#l00288">NLMISC::CHTimer::display()</a>, <a class="el" href="a05976.html#l00307">NLMISC::displayCallStack()</a>, <a class="el" href="a05943.html#l00572">displayFilter()</a>, <a class="el" href="a05787.html#l00472">NLMISC::CHTimer::displayHierarchical()</a>, <a class="el" href="a06645.html#l01599">NLNET::CUnifiedNetwork::displayInternalTables()</a>, <a class="el" href="a05508.html#l00528">NLMISC::CBufFIFO::displayStats()</a>, <a class="el" href="a05482.html#l00673">NLMISC::CBitMemStream::displayStream()</a>, <a class="el" href="a05512.html#l00695">NLNET::CBufServer::displayThreadStat()</a>, <a class="el" href="a05506.html#l00112">NLNET::CBufClient::displayThreadStat()</a>, <a class="el" href="a06666.html#l00304">NLMISC::CVariable&lt; std::string &gt;::execute()</a>, <a class="el" href="a06666.html#l00148">NLMISC::IVariable::execute()</a>, <a class="el" href="a05584.html#l00103">NLMISC::ICommand::execute()</a>, <a class="el" href="a05584.html#l00275">NLMISC::ICommand::expand()</a>, <a class="el" href="a05668.html#l00177">NLMISC::CEntityIdTranslator::isValidEntityName()</a>, and <a class="el" href="a06364.html#l00419">NLNET::IService::main()</a>.
+<p>
+<div class="fragment"><pre>00325 {
+00326 <span class="keywordflow">if</span> ( <a class="code" href="a02813.html#NLNET_1_1CNetLoga13">noDisplayer</a>() )
+00327 {
+00328 <span class="keywordflow">return</span>;
+00329 }
+00330
+00331 <span class="keywordtype">char</span> *str;
+00332 <a class="code" href="a05042.html#a0">NLMISC_CONVERT_VARGS</a> (str, format, 256<span class="comment">/*NLMISC::MaxCStringSize*/</span>);
+00333
+00334 <span class="keywordflow">if</span> (strlen(str)&lt;256<span class="comment">/*NLMISC::MaxCStringSize*/</span>-1)
+00335 strcat (str, <span class="stringliteral">"\n"</span>);
+00336 <span class="keywordflow">else</span>
+00337 str[256<span class="comment">/*NLMISC::MaxCStringSize*/</span>-2] = <span class="charliteral">'\n'</span>;
+00338
+00339 <a class="code" href="a02813.html#NLNET_1_1CNetLogb1">displayString</a> (str);
+00340 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLoga8" doxytag="NLMISC::CLog::displayRaw" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CLog::displayRaw </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>format</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>...&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Display a string (and nothing more) to all attached displayers. Call <a class="el" href="a02813.html#NLNET_1_1CNetLoga19">setPosition()</a> before. Releases the mutex.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05943.html#l00467">467</a> of file <a class="el" href="a05943.html">log.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l01016">format</a>, and <a class="el" href="a06465.html#l00070">NLMISC_CONVERT_VARGS</a>.
+<p>
+Referenced by <a class="el" href="a05391.html#l00310">NLNET::cleanRequest()</a>, and <a class="el" href="a05597.html#l00559">NLMISC::CConfigFile::display()</a>.
+<p>
+<div class="fragment"><pre>00469 {
+00470 <span class="keywordflow">if</span> ( <a class="code" href="a02813.html#NLNET_1_1CNetLoga13">noDisplayer</a>() )
+00471 {
+00472 <span class="keywordflow">return</span>;
+00473 }
+00474
+00475 <span class="keywordtype">char</span> *str;
+00476 <a class="code" href="a05042.html#a0">NLMISC_CONVERT_VARGS</a> (str, format, 256<span class="comment">/*NLMISC::MaxCStringSize*/</span>);
+00477
+00478 <a class="code" href="a02813.html#NLNET_1_1CNetLogb0">displayRawString</a>(str);
+00479 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLoga9" doxytag="NLMISC::CLog::displayRawNL" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CLog::displayRawNL </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>format</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>...&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Display a string with a final new line to all attached displayers. Call <a class="el" href="a02813.html#NLNET_1_1CNetLoga19">setPosition()</a> before. Releases the mutex.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05943.html#l00442">442</a> of file <a class="el" href="a05943.html">log.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l01016">format</a>, and <a class="el" href="a06465.html#l00070">NLMISC_CONVERT_VARGS</a>.
+<p>
+Referenced by <a class="el" href="a05391.html#l00310">NLNET::cleanRequest()</a>, <a class="el" href="a05787.html#l00857">NLMISC::CHTimer::CStats::display()</a>, <a class="el" href="a05787.html#l00288">NLMISC::CHTimer::display()</a>, <a class="el" href="a05597.html#l00559">NLMISC::CConfigFile::display()</a>, <a class="el" href="a05787.html#l00375">NLMISC::CHTimer::displayByExecutionPath()</a>, <a class="el" href="a05586.html#l00856">NLMISC::displayByteBits()</a>, <a class="el" href="a05586.html#l00882">NLMISC::displayDwordBits()</a>, <a class="el" href="a05787.html#l00472">NLMISC::CHTimer::displayHierarchical()</a>, <a class="el" href="a05787.html#l00556">NLMISC::CHTimer::displayHierarchicalByExecutionPathSorted()</a>, <a class="el" href="a05787.html#l00134">NLMISC::CHTimer::CNode::displayPath()</a>, <a class="el" href="a05482.html#l00673">NLMISC::CBitMemStream::displayStream()</a>, <a class="el" href="a05787.html#l00675">NLMISC::CHTimer::displaySummary()</a>, <a class="el" href="a06096.html#l00091">NLNET::CNetLog::input()</a>, and <a class="el" href="a06096.html#l00071">NLNET::CNetLog::output()</a>.
+<p>
+<div class="fragment"><pre>00444 {
+00445 <span class="keywordflow">if</span> ( <a class="code" href="a02813.html#NLNET_1_1CNetLoga13">noDisplayer</a>() )
+00446 {
+00447 <span class="keywordflow">return</span>;
+00448 }
+00449
+00450 <span class="keywordtype">char</span> *str;
+00451 <a class="code" href="a05042.html#a0">NLMISC_CONVERT_VARGS</a> (str, format, 256<span class="comment">/*NLMISC::MaxCStringSize*/</span>);
+00452
+00453 <span class="keywordflow">if</span> (strlen(str)&lt;256<span class="comment">/*NLMISC::MaxCStringSize*/</span>-1)
+00454 strcat (str, <span class="stringliteral">"\n"</span>);
+00455 <span class="keywordflow">else</span>
+00456 str[256<span class="comment">/*NLMISC::MaxCStringSize*/</span>-2] = <span class="charliteral">'\n'</span>;
+00457
+00458 <a class="code" href="a02813.html#NLNET_1_1CNetLogb0">displayRawString</a>(str);
+00459 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLogb0" doxytag="NLMISC::CLog::displayRawString" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CLog::displayRawString </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>str</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Display a Raw string to all attached displayers.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05943.html#l00362">362</a> of file <a class="el" href="a05943.html">log.cpp</a>.
+<p>
+References <a class="el" href="a05944.html#l00213">_BypassFilterDisplayers</a>, <a class="el" href="a05944.html#l00211">_Displayers</a>, <a class="el" href="a05944.html#l00071">NLMISC::CLog::TDisplayInfo::CallstackAndLog</a>, <a class="el" href="a05944.html#l00064">NLMISC::CLog::TDisplayInfo::Date</a>, <a class="el" href="a05944.html#l00068">NLMISC::CLog::TDisplayInfo::Filename</a>, <a class="el" href="a05621.html#l00836">NLMISC::getCallStackAndLog()</a>, <a class="el" href="a05944.html#l00069">NLMISC::CLog::TDisplayInfo::Line</a>, <a class="el" href="a02813.html#NLNET_1_1CNetLogw8NLNET_1_1CNetLogw0">LOG_ASSERT</a>, <a class="el" href="a02813.html#NLNET_1_1CNetLogw8NLNET_1_1CNetLogw2">LOG_ERROR</a>, <a class="el" href="a05944.html#l00065">NLMISC::CLog::TDisplayInfo::LogType</a>, <a class="el" href="a05943.html#l00517">passFilter()</a>, <a class="el" href="a05944.html#l00066">NLMISC::CLog::TDisplayInfo::ProcessName</a>, <a class="el" href="a05943.html#l00055">setDefaultProcessName()</a>, <a class="el" href="a05944.html#l00232">TempArgs</a>, <a class="el" href="a05944.html#l00231">TempString</a>, <a class="el" href="a05944.html#l00067">NLMISC::CLog::TDisplayInfo::ThreadId</a>, and <a class="el" href="a05943.html#l00101">unsetPosition()</a>.
+<p>
+<div class="fragment"><pre>00363 {
+00364 <span class="keyword">const</span> <span class="keywordtype">char</span> *disp = NULL;
+00365 TDisplayInfo localargs, *args = NULL;
+00366
+00367 <a class="code" href="a02813.html#NLNET_1_1CNetLoge0">setDefaultProcessName</a> ();
+00368
+00369 <span class="keywordflow">if</span>(strchr(str,<span class="charliteral">'\n'</span>) == NULL)
+00370 {
+00371 <span class="keywordflow">if</span> (<a class="code" href="a02813.html#NLNET_1_1CNetLogp10">TempString</a>.empty())
+00372 {
+00373 localargs.Date = 0;
+00374 localargs.LogType = CLog::LOG_NO;
+00375 localargs.ProcessName = <span class="stringliteral">""</span>;
+00376 localargs.ThreadId = 0;
+00377 localargs.Filename = NULL;
+00378 localargs.Line = -1;
+00379 localargs.CallstackAndLog = <span class="stringliteral">""</span>;
+00380
+00381 <a class="code" href="a02813.html#NLNET_1_1CNetLogp10">TempString</a> = str;
+00382 }
+00383 <span class="keywordflow">else</span>
+00384 {
+00385 <a class="code" href="a02813.html#NLNET_1_1CNetLogp10">TempString</a> += str;
+00386 }
+00387 <span class="keywordflow">return</span>;
+00388 }
+00389 <span class="keywordflow">else</span>
+00390 {
+00391 <span class="keywordflow">if</span> (<a class="code" href="a02813.html#NLNET_1_1CNetLogp10">TempString</a>.empty())
+00392 {
+00393 localargs.Date = 0;
+00394 localargs.LogType = CLog::LOG_NO;
+00395 localargs.ProcessName = <span class="stringliteral">""</span>;
+00396 localargs.ThreadId = 0;
+00397 localargs.Filename = NULL;
+00398 localargs.Line = -1;
+00399 localargs.CallstackAndLog = <span class="stringliteral">""</span>;
+00400
+00401 disp = str;
+00402 args = &amp;localargs;
+00403 }
+00404 <span class="keywordflow">else</span>
+00405 {
+00406 <a class="code" href="a02813.html#NLNET_1_1CNetLogp10">TempString</a> += str;
+00407 disp = <a class="code" href="a02813.html#NLNET_1_1CNetLogp10">TempString</a>.c_str();
+00408 args = &amp;<a class="code" href="a02813.html#NLNET_1_1CNetLogp9">TempArgs</a>;
+00409 }
+00410 }
+00411
+00412 <span class="comment">// send to all bypass filter displayers</span>
+00413 <span class="keywordflow">for</span> (CDisplayers::iterator idi=<a class="code" href="a02813.html#NLNET_1_1CNetLogp0">_BypassFilterDisplayers</a>.begin(); idi!=<a class="code" href="a02813.html#NLNET_1_1CNetLogp0">_BypassFilterDisplayers</a>.end(); idi++ )
+00414 {
+00415 (*idi)-&gt;display( *args, disp );
+00416 }
+00417
+00418 <span class="comment">// get the log at the last minute to be sure to have everything</span>
+00419 <span class="keywordflow">if</span>(args-&gt;LogType == <a class="code" href="a02813.html#NLNET_1_1CNetLogw8NLNET_1_1CNetLogw2">LOG_ERROR</a> || args-&gt;LogType == <a class="code" href="a02813.html#NLNET_1_1CNetLogw8NLNET_1_1CNetLogw0">LOG_ASSERT</a>)
+00420 {
+00421 <a class="code" href="a05378.html#a296">getCallStackAndLog</a> (args-&gt;CallstackAndLog, 4);
+00422 }
+00423
+00424 <span class="keywordflow">if</span> ( <a class="code" href="a02813.html#NLNET_1_1CNetLogb2">passFilter</a>( disp ) )
+00425 {
+00426 <span class="comment">// Send to the attached displayers</span>
+00427 <span class="keywordflow">for</span> ( CDisplayers::iterator idi=<a class="code" href="a02813.html#NLNET_1_1CNetLogp1">_Displayers</a>.begin(); idi!=<a class="code" href="a02813.html#NLNET_1_1CNetLogp1">_Displayers</a>.end(); idi++ )
+00428 {
+00429 (*idi)-&gt;display( *args, disp );
+00430 }
+00431 }
+00432 <a class="code" href="a02813.html#NLNET_1_1CNetLogp10">TempString</a> = <span class="stringliteral">""</span>;
+00433 <a class="code" href="a02813.html#NLNET_1_1CNetLogb3">unsetPosition</a>();
+00434 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLogb1" doxytag="NLMISC::CLog::displayString" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CLog::displayString </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>str</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Display a string in decorated form to all attached displayers.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05943.html#l00242">242</a> of file <a class="el" href="a05943.html">log.cpp</a>.
+<p>
+References <a class="el" href="a05944.html#l00213">_BypassFilterDisplayers</a>, <a class="el" href="a05944.html#l00211">_Displayers</a>, <a class="el" href="a05944.html#l00203">_LogType</a>, <a class="el" href="a05943.html#l00049">_ProcessName</a>, <a class="el" href="a05944.html#l00071">NLMISC::CLog::TDisplayInfo::CallstackAndLog</a>, <a class="el" href="a05944.html#l00064">NLMISC::CLog::TDisplayInfo::Date</a>, <a class="el" href="a05944.html#l00068">NLMISC::CLog::TDisplayInfo::Filename</a>, <a class="el" href="a05621.html#l00836">NLMISC::getCallStackAndLog()</a>, <a class="el" href="a05586.html#l00093">NLMISC::getThreadId()</a>, <a class="el" href="a05944.html#l00069">NLMISC::CLog::TDisplayInfo::Line</a>, <a class="el" href="a02813.html#NLNET_1_1CNetLogw8NLNET_1_1CNetLogw0">LOG_ASSERT</a>, <a class="el" href="a02813.html#NLNET_1_1CNetLogw8NLNET_1_1CNetLogw2">LOG_ERROR</a>, <a class="el" href="a05944.html#l00065">NLMISC::CLog::TDisplayInfo::LogType</a>, <a class="el" href="a05943.html#l00517">passFilter()</a>, <a class="el" href="a05944.html#l00066">NLMISC::CLog::TDisplayInfo::ProcessName</a>, <a class="el" href="a05943.html#l00055">setDefaultProcessName()</a>, <a class="el" href="a05944.html#l00232">TempArgs</a>, <a class="el" href="a05944.html#l00231">TempString</a>, <a class="el" href="a05944.html#l00067">NLMISC::CLog::TDisplayInfo::ThreadId</a>, and <a class="el" href="a05943.html#l00101">unsetPosition()</a>.
+<p>
+<div class="fragment"><pre>00243 {
+00244 <span class="keyword">const</span> <span class="keywordtype">char</span> *disp = NULL;
+00245 TDisplayInfo localargs, *args = NULL;
+00246
+00247 <a class="code" href="a02813.html#NLNET_1_1CNetLoge0">setDefaultProcessName</a> ();
+00248
+00249 <span class="keywordflow">if</span>(strchr(str,<span class="charliteral">'\n'</span>) == NULL)
+00250 {
+00251 <span class="keywordflow">if</span> (<a class="code" href="a02813.html#NLNET_1_1CNetLogp10">TempString</a>.empty())
+00252 {
+00253 time (&amp;<a class="code" href="a02813.html#NLNET_1_1CNetLogp9">TempArgs</a>.<a class="code" href="a02814.html#NLMISC_1_1CLog_1_1TDisplayInfoo1">Date</a>);
+00254 <a class="code" href="a02813.html#NLNET_1_1CNetLogp9">TempArgs</a>.<a class="code" href="a02814.html#NLMISC_1_1CLog_1_1TDisplayInfoo4">LogType</a> = <a class="code" href="a02813.html#NLNET_1_1CNetLogp4">_LogType</a>;
+00255 <a class="code" href="a02813.html#NLNET_1_1CNetLogp9">TempArgs</a>.<a class="code" href="a02814.html#NLMISC_1_1CLog_1_1TDisplayInfoo5">ProcessName</a> = *<a class="code" href="a02813.html#NLNET_1_1CNetLogt0">_ProcessName</a>;
+00256 <a class="code" href="a02813.html#NLNET_1_1CNetLogp9">TempArgs</a>.<a class="code" href="a02814.html#NLMISC_1_1CLog_1_1TDisplayInfoo6">ThreadId</a> = <a class="code" href="a05378.html#a257">getThreadId</a>();
+00257 <a class="code" href="a02813.html#NLNET_1_1CNetLogp9">TempArgs</a>.<a class="code" href="a02814.html#NLMISC_1_1CLog_1_1TDisplayInfoo2">Filename</a> = <a class="code" href="a02813.html#NLNET_1_1CNetLogp2">_FileName</a>;
+00258 <a class="code" href="a02813.html#NLNET_1_1CNetLogp9">TempArgs</a>.<a class="code" href="a02814.html#NLMISC_1_1CLog_1_1TDisplayInfoo3">Line</a> = <a class="code" href="a02813.html#NLNET_1_1CNetLogp3">_Line</a>;
+00259 <a class="code" href="a02813.html#NLNET_1_1CNetLogp9">TempArgs</a>.<a class="code" href="a02814.html#NLMISC_1_1CLog_1_1TDisplayInfoo0">CallstackAndLog</a> = <span class="stringliteral">""</span>;
+00260
+00261 <a class="code" href="a02813.html#NLNET_1_1CNetLogp10">TempString</a> = str;
+00262 }
+00263 <span class="keywordflow">else</span>
+00264 {
+00265 <a class="code" href="a02813.html#NLNET_1_1CNetLogp10">TempString</a> += str;
+00266 }
+00267 <span class="keywordflow">return</span>;
+00268 }
+00269 <span class="keywordflow">else</span>
+00270 {
+00271 <span class="keywordflow">if</span> (<a class="code" href="a02813.html#NLNET_1_1CNetLogp10">TempString</a>.empty())
+00272 {
+00273 time (&amp;localargs.Date);
+00274 localargs.LogType = <a class="code" href="a02813.html#NLNET_1_1CNetLogp4">_LogType</a>;
+00275 localargs.ProcessName = *<a class="code" href="a02813.html#NLNET_1_1CNetLogt0">_ProcessName</a>;
+00276 localargs.ThreadId = <a class="code" href="a05378.html#a257">getThreadId</a>();
+00277 localargs.Filename = <a class="code" href="a02813.html#NLNET_1_1CNetLogp2">_FileName</a>;
+00278 localargs.Line = <a class="code" href="a02813.html#NLNET_1_1CNetLogp3">_Line</a>;
+00279 localargs.CallstackAndLog = <span class="stringliteral">""</span>;
+00280
+00281 disp = str;
+00282 args = &amp;localargs;
+00283 }
+00284 <span class="keywordflow">else</span>
+00285 {
+00286 <a class="code" href="a02813.html#NLNET_1_1CNetLogp10">TempString</a> += str;
+00287 disp = <a class="code" href="a02813.html#NLNET_1_1CNetLogp10">TempString</a>.c_str();
+00288 args = &amp;<a class="code" href="a02813.html#NLNET_1_1CNetLogp9">TempArgs</a>;
+00289 }
+00290 }
+00291
+00292 <span class="comment">// send to all bypass filter displayers</span>
+00293 <span class="keywordflow">for</span> (CDisplayers::iterator idi=<a class="code" href="a02813.html#NLNET_1_1CNetLogp0">_BypassFilterDisplayers</a>.begin(); idi!=<a class="code" href="a02813.html#NLNET_1_1CNetLogp0">_BypassFilterDisplayers</a>.end(); idi++ )
+00294 {
+00295 (*idi)-&gt;display( *args, disp );
+00296 }
+00297
+00298 <span class="comment">// get the log at the last minute to be sure to have everything</span>
+00299 <span class="keywordflow">if</span>(args-&gt;LogType == <a class="code" href="a02813.html#NLNET_1_1CNetLogw8NLNET_1_1CNetLogw2">LOG_ERROR</a> || args-&gt;LogType == <a class="code" href="a02813.html#NLNET_1_1CNetLogw8NLNET_1_1CNetLogw0">LOG_ASSERT</a>)
+00300 {
+00301 <a class="code" href="a05378.html#a296">getCallStackAndLog</a> (args-&gt;CallstackAndLog, 4);
+00302 }
+00303
+00304 <span class="keywordflow">if</span> (<a class="code" href="a02813.html#NLNET_1_1CNetLogb2">passFilter</a> (disp))
+00305 {
+00306 <span class="comment">// Send to the attached displayers</span>
+00307 <span class="keywordflow">for</span> (CDisplayers::iterator idi=<a class="code" href="a02813.html#NLNET_1_1CNetLogp1">_Displayers</a>.begin(); idi!=<a class="code" href="a02813.html#NLNET_1_1CNetLogp1">_Displayers</a>.end(); idi++ )
+00308 {
+00309 (*idi)-&gt;display( *args, disp );
+00310 }
+00311 }
+00312 <a class="code" href="a02813.html#NLNET_1_1CNetLogp10">TempString</a> = <span class="stringliteral">""</span>;
+00313 <a class="code" href="a02813.html#NLNET_1_1CNetLogb3">unsetPosition</a>();
+00314 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLoga10" doxytag="NLMISC::CLog::forceDisplayRaw" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CLog::forceDisplayRaw </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>format</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>...&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Display a raw text to the normal displayer but without filtering It's used by the Memdisplayer (little hack to work)
+<p>
+Definition at line <a class="el" href="a05943.html#l00485">485</a> of file <a class="el" href="a05943.html">log.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l01016">format</a>, and <a class="el" href="a06465.html#l00070">NLMISC_CONVERT_VARGS</a>.
+<p>
+Referenced by <a class="el" href="a05976.html#l00399">NLMISC::CMemDisplayer::write()</a>.
+<p>
+<div class="fragment"><pre>00487 {
+00488 <span class="keywordflow">if</span> ( <a class="code" href="a02813.html#NLNET_1_1CNetLoga13">noDisplayer</a>() )
+00489 {
+00490 <span class="keywordflow">return</span>;
+00491 }
+00492
+00493 <span class="keywordtype">char</span> *str;
+00494 <a class="code" href="a05042.html#a0">NLMISC_CONVERT_VARGS</a> (str, format, 256<span class="comment">/*NLMISC::MaxCStringSize*/</span>);
+00495
+00496 TDisplayInfo args;
+00497 CDisplayers::iterator idi;
+00498
+00499 <span class="comment">// send to all bypass filter displayers</span>
+00500 <span class="keywordflow">for</span> (idi=<a class="code" href="a02813.html#NLNET_1_1CNetLogp0">_BypassFilterDisplayers</a>.begin(); idi!=<a class="code" href="a02813.html#NLNET_1_1CNetLogp0">_BypassFilterDisplayers</a>.end(); idi++ )
+00501 {
+00502 (*idi)-&gt;display( args, str );
+00503 }
+00504
+00505 <span class="comment">// Send to the attached displayers</span>
+00506 <span class="keywordflow">for</span> ( idi=<a class="code" href="a02813.html#NLNET_1_1CNetLogp1">_Displayers</a>.begin(); idi!=<a class="code" href="a02813.html#NLNET_1_1CNetLogp1">_Displayers</a>.end(); idi++ )
+00507 {
+00508 (*idi)-&gt;display( args, str );
+00509 }
+00510 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLoga11" doxytag="NLMISC::CLog::getDisplayer" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02526.html">IDisplayer</a> * NLMISC::CLog::getDisplayer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>displayerName</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the first displayer selected by his name.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05943.html#l00206">206</a> of file <a class="el" href="a05943.html">log.cpp</a>.
+<p>
+References <a class="el" href="a05944.html#l00213">_BypassFilterDisplayers</a>, <a class="el" href="a05944.html#l00211">_Displayers</a>, and <a class="el" href="a05622.html#l00135">nlwarning</a>.
+<p>
+<div class="fragment"><pre>00207 {
+00208 <span class="keywordflow">if</span> (displayerName == NULL || displayerName[0] == <span class="charliteral">'\0'</span>)
+00209 {
+00210 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"LOG: Trying to get an empty displayer name"</span>);
+00211 <span class="keywordflow">return</span> NULL;
+00212 }
+00213
+00214 CDisplayers::iterator idi;
+00215 <span class="keywordflow">for</span> (idi = <a class="code" href="a02813.html#NLNET_1_1CNetLogp1">_Displayers</a>.begin (); idi != <a class="code" href="a02813.html#NLNET_1_1CNetLogp1">_Displayers</a>.end (); idi++)
+00216 {
+00217 <span class="keywordflow">if</span> ((*idi)-&gt;DisplayerName == displayerName)
+00218 {
+00219 <span class="keywordflow">return</span> *idi;
+00220 }
+00221 }
+00222 <span class="keywordflow">for</span> (idi = <a class="code" href="a02813.html#NLNET_1_1CNetLogp0">_BypassFilterDisplayers</a>.begin (); idi != <a class="code" href="a02813.html#NLNET_1_1CNetLogp0">_BypassFilterDisplayers</a>.end (); idi++)
+00223 {
+00224 <span class="keywordflow">if</span> ((*idi)-&gt;DisplayerName == displayerName)
+00225 {
+00226 <span class="keywordflow">return</span> *idi;
+00227 }
+00228 }
+00229 <span class="keywordflow">return</span> NULL;
+00230 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLoga13" doxytag="NLMISC::CLog::noDisplayer" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLMISC::CLog::noDisplayer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns true if no displayer is attached.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05944.html#l00095">95</a> of file <a class="el" href="a05944.html">log.h</a>.
+<p>
+References <a class="el" href="a05944.html#l00213">_BypassFilterDisplayers</a>, and <a class="el" href="a05944.html#l00211">_Displayers</a>.
+<p>
+Referenced by <a class="el" href="a05943.html#l00089">setPosition()</a>, and <a class="el" href="a05943.html#l00101">unsetPosition()</a>.
+<p>
+<div class="fragment"><pre>00095 { <span class="keywordflow">return</span> <a class="code" href="a02813.html#NLNET_1_1CNetLogp1">_Displayers</a>.empty() &amp;&amp; <a class="code" href="a02813.html#NLNET_1_1CNetLogp0">_BypassFilterDisplayers</a>.empty(); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLogb2" doxytag="NLMISC::CLog::passFilter" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLMISC::CLog::passFilter </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>filter</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns true if the string must be logged, according to the current filter.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05943.html#l00517">517</a> of file <a class="el" href="a05943.html">log.cpp</a>.
+<p>
+References <a class="el" href="a05944.html#l00220">_NegativeFilter</a>, and <a class="el" href="a05944.html#l00223">_PositiveFilter</a>.
+<p>
+Referenced by <a class="el" href="a05943.html#l00362">displayRawString()</a>, and <a class="el" href="a05943.html#l00242">displayString()</a>.
+<p>
+<div class="fragment"><pre>00518 {
+00519 <span class="keywordtype">bool</span> yes = <a class="code" href="a02813.html#NLNET_1_1CNetLogp7">_PositiveFilter</a>.empty();
+00520
+00521 <span class="keywordtype">bool</span> found;
+00522 <a class="code" href="a03889.html">list&lt;string&gt;</a>::iterator ilf;
+00523
+00524 <span class="comment">// 1. Positive filter</span>
+00525 <span class="keywordflow">for</span> ( ilf=<a class="code" href="a02813.html#NLNET_1_1CNetLogp7">_PositiveFilter</a>.begin(); ilf!=<a class="code" href="a02813.html#NLNET_1_1CNetLogp7">_PositiveFilter</a>.end(); ++ilf )
+00526 {
+00527 found = ( strstr( filter, (*ilf).c_str() ) != NULL );
+00528 <span class="keywordflow">if</span> ( found )
+00529 {
+00530 yes = <span class="keyword">true</span>; <span class="comment">// positive filter passed (no need to check another one)</span>
+00531 <span class="keywordflow">break</span>;
+00532 }
+00533 <span class="comment">// else try the next one</span>
+00534 }
+00535 <span class="keywordflow">if</span> ( ! yes )
+00536 {
+00537 <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// positive filter not passed</span>
+00538 }
+00539
+00540 <span class="comment">// 2. Negative filter</span>
+00541 <span class="keywordflow">for</span> ( ilf=<a class="code" href="a02813.html#NLNET_1_1CNetLogp6">_NegativeFilter</a>.begin(); ilf!=<a class="code" href="a02813.html#NLNET_1_1CNetLogp6">_NegativeFilter</a>.end(); ++ilf )
+00542 {
+00543 found = ( strstr( filter, (*ilf).c_str() ) != NULL );
+00544 <span class="keywordflow">if</span> ( found )
+00545 {
+00546 <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// negative filter not passed (no need to check another one)</span>
+00547 }
+00548 }
+00549 <span class="keywordflow">return</span> <span class="keyword">true</span>; <span class="comment">// negative filter passed</span>
+00550 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLoga15" doxytag="NLMISC::CLog::removeDisplayer" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CLog::removeDisplayer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>displayerName</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Remove a displayer using his name.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05943.html#l00172">172</a> of file <a class="el" href="a05943.html">log.cpp</a>.
+<p>
+References <a class="el" href="a05944.html#l00213">_BypassFilterDisplayers</a>, <a class="el" href="a05944.html#l00211">_Displayers</a>, and <a class="el" href="a05622.html#l00135">nlwarning</a>.
+<p>
+<div class="fragment"><pre>00173 {
+00174 <span class="keywordflow">if</span> (displayerName == NULL || displayerName[0] == <span class="charliteral">'\0'</span>)
+00175 {
+00176 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"LOG: Trying to remove an empty displayer name"</span>);
+00177 <span class="keywordflow">return</span>;
+00178 }
+00179
+00180 CDisplayers::iterator idi;
+00181 <span class="keywordflow">for</span> (idi = <a class="code" href="a02813.html#NLNET_1_1CNetLogp1">_Displayers</a>.begin (); idi != <a class="code" href="a02813.html#NLNET_1_1CNetLogp1">_Displayers</a>.end ();)
+00182 {
+00183 <span class="keywordflow">if</span> ((*idi)-&gt;DisplayerName == displayerName)
+00184 {
+00185 idi = <a class="code" href="a02813.html#NLNET_1_1CNetLogp1">_Displayers</a>.erase (idi);
+00186 }
+00187 <span class="keywordflow">else</span>
+00188 {
+00189 idi++;
+00190 }
+00191 }
+00192
+00193 <span class="keywordflow">for</span> (idi = <a class="code" href="a02813.html#NLNET_1_1CNetLogp0">_BypassFilterDisplayers</a>.begin (); idi != <a class="code" href="a02813.html#NLNET_1_1CNetLogp0">_BypassFilterDisplayers</a>.end ();)
+00194 {
+00195 <span class="keywordflow">if</span> ((*idi)-&gt;DisplayerName == displayerName)
+00196 {
+00197 idi = <a class="code" href="a02813.html#NLNET_1_1CNetLogp0">_BypassFilterDisplayers</a>.erase (idi);
+00198 }
+00199 <span class="keywordflow">else</span>
+00200 {
+00201 idi++;
+00202 }
+00203 }
+00204 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLoga16" doxytag="NLMISC::CLog::removeDisplayer" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CLog::removeDisplayer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02526.html">IDisplayer</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>displayer</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Remove a displayer. If the displayer doesn't work in a specific time, you could remove it.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05943.html#l00150">150</a> of file <a class="el" href="a05943.html">log.cpp</a>.
+<p>
+References <a class="el" href="a05944.html#l00213">_BypassFilterDisplayers</a>, <a class="el" href="a05944.html#l00211">_Displayers</a>, and <a class="el" href="a05622.html#l00135">nlwarning</a>.
+<p>
+Referenced by <a class="el" href="a06364.html#l00419">NLNET::IService::main()</a>.
+<p>
+<div class="fragment"><pre>00151 {
+00152 <span class="keywordflow">if</span> (displayer == NULL)
+00153 {
+00154 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"LOG: Trying to remove a NULL displayer"</span>);
+00155 <span class="keywordflow">return</span>;
+00156 }
+00157
+00158 CDisplayers::iterator idi = std::find (<a class="code" href="a02813.html#NLNET_1_1CNetLogp1">_Displayers</a>.begin (), <a class="code" href="a02813.html#NLNET_1_1CNetLogp1">_Displayers</a>.end (), displayer);
+00159 <span class="keywordflow">if</span> (idi != <a class="code" href="a02813.html#NLNET_1_1CNetLogp1">_Displayers</a>.end ())
+00160 {
+00161 <a class="code" href="a02813.html#NLNET_1_1CNetLogp1">_Displayers</a>.erase (idi);
+00162 }
+00163
+00164 idi = std::find (<a class="code" href="a02813.html#NLNET_1_1CNetLogp0">_BypassFilterDisplayers</a>.begin (), <a class="code" href="a02813.html#NLNET_1_1CNetLogp0">_BypassFilterDisplayers</a>.end (), displayer);
+00165 <span class="keywordflow">if</span> (idi != <a class="code" href="a02813.html#NLNET_1_1CNetLogp0">_BypassFilterDisplayers</a>.end ())
+00166 {
+00167 <a class="code" href="a02813.html#NLNET_1_1CNetLogp0">_BypassFilterDisplayers</a>.erase (idi);
+00168 }
+00169
+00170 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLoga17" doxytag="NLMISC::CLog::removeFilter" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CLog::removeFilter </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>filterstr</em> = NULL </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Removes a filter by name (in both filters).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05943.html#l00556">556</a> of file <a class="el" href="a05943.html">log.cpp</a>.
+<p>
+References <a class="el" href="a05944.html#l00220">_NegativeFilter</a>, and <a class="el" href="a05944.html#l00223">_PositiveFilter</a>.
+<p>
+Referenced by <a class="el" href="a06364.html#l00361">NLNET::cbLogFilter()</a>, and <a class="el" href="a05621.html#l01053">NLMISC::NLMISC_COMMAND()</a>.
+<p>
+<div class="fragment"><pre>00557 {
+00558 <span class="keywordflow">if</span> (filterstr == NULL)
+00559 {
+00560 <a class="code" href="a02813.html#NLNET_1_1CNetLogp7">_PositiveFilter</a>.clear();
+00561 <a class="code" href="a02813.html#NLNET_1_1CNetLogp6">_NegativeFilter</a>.clear();
+00562 <span class="comment">//displayNL ("CLog::addNegativeFilter('%s')", filterstr);</span>
+00563 }
+00564 <span class="keywordflow">else</span>
+00565 {
+00566 <a class="code" href="a02813.html#NLNET_1_1CNetLogp7">_PositiveFilter</a>.remove( filterstr );
+00567 <a class="code" href="a02813.html#NLNET_1_1CNetLogp6">_NegativeFilter</a>.remove( filterstr );
+00568 <span class="comment">//displayNL ("CLog::removeFilter('%s')", filterstr);</span>
+00569 }
+00570 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLoga18" doxytag="NLMISC::CLog::resetFilters" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CLog::resetFilters </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Reset both filters.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05943.html#l00599">599</a> of file <a class="el" href="a05943.html">log.cpp</a>.
+<p>
+References <a class="el" href="a05944.html#l00220">_NegativeFilter</a>, and <a class="el" href="a05944.html#l00223">_PositiveFilter</a>.
+<p>
+Referenced by <a class="el" href="a05621.html#l01013">NLMISC::NLMISC_COMMAND()</a>.
+<p>
+<div class="fragment"><pre>00600 {
+00601 <span class="comment">//displayNL ("CLog::resetFilter()");</span>
+00602 <a class="code" href="a02813.html#NLNET_1_1CNetLogp7">_PositiveFilter</a>.clear();
+00603 <a class="code" href="a02813.html#NLNET_1_1CNetLogp6">_NegativeFilter</a>.clear();
+00604 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLoge0" doxytag="NLMISC::CLog::setDefaultProcessName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CLog::setDefaultProcessName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Find the process name if nobody call setProcessName before.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05943.html#l00055">55</a> of file <a class="el" href="a05943.html">log.cpp</a>.
+<p>
+References <a class="el" href="a05943.html#l00049">_ProcessName</a>.
+<p>
+Referenced by <a class="el" href="a05943.html#l00362">displayRawString()</a>, and <a class="el" href="a05943.html#l00242">displayString()</a>.
+<p>
+<div class="fragment"><pre>00056 {
+00057 <span class="keywordflow">if</span> (<a class="code" href="a02813.html#NLNET_1_1CNetLogt0">_ProcessName</a> == NULL)
+00058 {
+00059 <span class="preprocessor">#undef new</span>
+00060 <span class="preprocessor"></span> <a class="code" href="a02813.html#NLNET_1_1CNetLogt0">_ProcessName</a> = <span class="keyword">new</span> string;
+00061 <span class="preprocessor">#define new NL_NEW</span>
+00062 <span class="preprocessor"></span> }
+00063
+00064 <span class="preprocessor">#ifdef NL_OS_WINDOWS</span>
+00065 <span class="preprocessor"></span> <span class="keywordflow">if</span> ((*_ProcessName).empty())
+00066 {
+00067 <span class="keywordtype">char</span> name[1024];
+00068 GetModuleFileName (NULL, name, 1023);
+00069 (*_ProcessName) = CFile::getFilename(name);
+00070 }
+00071 <span class="preprocessor">#else</span>
+00072 <span class="preprocessor"></span> <span class="keywordflow">if</span> ((*_ProcessName).empty())
+00073 {
+00074 *<a class="code" href="a02813.html#NLNET_1_1CNetLogt0">_ProcessName</a> = <span class="stringliteral">"&lt;Unknown&gt;"</span>;
+00075 }
+00076 <span class="preprocessor">#endif</span>
+00077 <span class="preprocessor"></span>}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLoga19" doxytag="NLMISC::CLog::setPosition" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CLog::setPosition </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a14">sint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>line</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>fileName</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+If !noDisplayer(), sets line and file parameters, and enters the mutex. If !noDisplayer(), don't forget to call display...() after, to release the mutex.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05943.html#l00089">89</a> of file <a class="el" href="a05943.html">log.cpp</a>.
+<p>
+References <a class="el" href="a05944.html#l00217">_PosSet</a>, <a class="el" href="a05944.html#l00095">noDisplayer()</a>, and <a class="el" href="a05981.html#l00104">sint</a>.
+<p>
+<div class="fragment"><pre>00090 {
+00091 <span class="keywordflow">if</span> ( !<a class="code" href="a02813.html#NLNET_1_1CNetLoga13">noDisplayer</a>() )
+00092 {
+00093 <a class="code" href="a02813.html#NLNET_1_1CNetLogp5">_Mutex</a>.enter();
+00094 <a class="code" href="a02813.html#NLNET_1_1CNetLogp8">_PosSet</a>++;
+00095 <a class="code" href="a02813.html#NLNET_1_1CNetLogp3">_Line</a> = <a class="code" href="a05377.html#a3">line</a>;
+00096 <a class="code" href="a02813.html#NLNET_1_1CNetLogp2">_FileName</a> = <a class="code" href="a05377.html#a2">filename</a>;
+00097 }
+00098 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLoge1" doxytag="NLMISC::CLog::setProcessName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CLog::setProcessName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::string &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>processName</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the name of the process.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05943.html#l00079">79</a> of file <a class="el" href="a05943.html">log.cpp</a>.
+<p>
+References <a class="el" href="a05943.html#l00049">_ProcessName</a>.
+<p>
+Referenced by <a class="el" href="a06364.html#l00419">NLNET::IService::main()</a>.
+<p>
+<div class="fragment"><pre>00080 {
+00081 <span class="keywordflow">if</span> (<a class="code" href="a02813.html#NLNET_1_1CNetLogt0">_ProcessName</a> == NULL)
+00082 {
+00083 <a class="code" href="a02813.html#NLNET_1_1CNetLogt0">_ProcessName</a> = <span class="keyword">new</span> string;
+00084 }
+00085
+00086 *<a class="code" href="a02813.html#NLNET_1_1CNetLogt0">_ProcessName</a> = processName;
+00087 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLogb3" doxytag="NLMISC::CLog::unsetPosition" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CLog::unsetPosition </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Symetric to <a class="el" href="a02813.html#NLNET_1_1CNetLoga19">setPosition()</a>. Automatically called by display...(). Do not call if <a class="el" href="a02813.html#NLNET_1_1CNetLoga13">noDisplayer()</a>.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05943.html#l00101">101</a> of file <a class="el" href="a05943.html">log.cpp</a>.
+<p>
+References <a class="el" href="a05944.html#l00217">_PosSet</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a05944.html#l00095">noDisplayer()</a>.
+<p>
+Referenced by <a class="el" href="a05943.html#l00362">displayRawString()</a>, and <a class="el" href="a05943.html#l00242">displayString()</a>.
+<p>
+<div class="fragment"><pre>00102 {
+00103 <a class="code" href="a04199.html#a6">nlassert</a>( !<a class="code" href="a02813.html#NLNET_1_1CNetLoga13">noDisplayer</a>() );
+00104
+00105 <span class="keywordflow">if</span> ( <a class="code" href="a02813.html#NLNET_1_1CNetLogp8">_PosSet</a> &gt; 0 )
+00106 {
+00107 <a class="code" href="a02813.html#NLNET_1_1CNetLogp2">_FileName</a> = NULL;
+00108 <a class="code" href="a02813.html#NLNET_1_1CNetLogp3">_Line</a> = -1;
+00109 <a class="code" href="a02813.html#NLNET_1_1CNetLogp8">_PosSet</a>--;
+00110 <a class="code" href="a02813.html#NLNET_1_1CNetLogp5">_Mutex</a>.leave(); <span class="comment">// needs setPosition() to have been called</span>
+00111 }
+00112 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NLNET_1_1CNetLogp0" doxytag="NLMISC::CLog::_BypassFilterDisplayers" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02813.html#NLNET_1_1CNetLogx0">CDisplayers</a> <a class="el" href="a02813.html#NLNET_1_1CNetLogp0">NLMISC::CLog::_BypassFilterDisplayers</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05944.html#l00213">213</a> of file <a class="el" href="a05944.html">log.h</a>.
+<p>
+Referenced by <a class="el" href="a05943.html#l00115">addDisplayer()</a>, <a class="el" href="a05943.html#l00235">attached()</a>, <a class="el" href="a05943.html#l00362">displayRawString()</a>, <a class="el" href="a05943.html#l00242">displayString()</a>, <a class="el" href="a05943.html#l00206">getDisplayer()</a>, <a class="el" href="a05944.html#l00095">noDisplayer()</a>, and <a class="el" href="a05943.html#l00150">removeDisplayer()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLogp1" doxytag="NLMISC::CLog::_Displayers" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02813.html#NLNET_1_1CNetLogx0">CDisplayers</a> <a class="el" href="a02813.html#NLNET_1_1CNetLogp1">NLMISC::CLog::_Displayers</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05944.html#l00211">211</a> of file <a class="el" href="a05944.html">log.h</a>.
+<p>
+Referenced by <a class="el" href="a05943.html#l00115">addDisplayer()</a>, <a class="el" href="a05943.html#l00235">attached()</a>, <a class="el" href="a05943.html#l00362">displayRawString()</a>, <a class="el" href="a05943.html#l00242">displayString()</a>, <a class="el" href="a05943.html#l00206">getDisplayer()</a>, <a class="el" href="a05944.html#l00095">noDisplayer()</a>, and <a class="el" href="a05943.html#l00150">removeDisplayer()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLogp2" doxytag="NLMISC::CLog::_FileName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char* <a class="el" href="a02813.html#NLNET_1_1CNetLogp2">NLMISC::CLog::_FileName</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05944.html#l00207">207</a> of file <a class="el" href="a05944.html">log.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLogp3" doxytag="NLMISC::CLog::_Line" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a14">sint</a> <a class="el" href="a02813.html#NLNET_1_1CNetLogp3">NLMISC::CLog::_Line</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05944.html#l00206">206</a> of file <a class="el" href="a05944.html">log.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLogp4" doxytag="NLMISC::CLog::_LogType" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02813.html#NLNET_1_1CNetLogw8">TLogType</a> <a class="el" href="a02813.html#NLNET_1_1CNetLogp4">NLMISC::CLog::_LogType</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05944.html#l00203">203</a> of file <a class="el" href="a05944.html">log.h</a>.
+<p>
+Referenced by <a class="el" href="a05943.html#l00242">displayString()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLogp5" doxytag="NLMISC::CLog::_Mutex" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> CMutex <a class="el" href="a02813.html#NLNET_1_1CNetLogp5">NLMISC::CLog::_Mutex</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05944.html#l00215">215</a> of file <a class="el" href="a05944.html">log.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLogp6" doxytag="NLMISC::CLog::_NegativeFilter" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::list&lt;std::string&gt; <a class="el" href="a02813.html#NLNET_1_1CNetLogp6">NLMISC::CLog::_NegativeFilter</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+"Discard" filter
+<p>
+
+<p>
+Definition at line <a class="el" href="a05944.html#l00220">220</a> of file <a class="el" href="a05944.html">log.h</a>.
+<p>
+Referenced by <a class="el" href="a05943.html#l00593">addNegativeFilter()</a>, <a class="el" href="a05943.html#l00572">displayFilter()</a>, <a class="el" href="a05943.html#l00517">passFilter()</a>, <a class="el" href="a05943.html#l00556">removeFilter()</a>, and <a class="el" href="a05943.html#l00599">resetFilters()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLogp7" doxytag="NLMISC::CLog::_PositiveFilter" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::list&lt;std::string&gt; <a class="el" href="a02813.html#NLNET_1_1CNetLogp7">NLMISC::CLog::_PositiveFilter</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+"Crop" filter
+<p>
+
+<p>
+Definition at line <a class="el" href="a05944.html#l00223">223</a> of file <a class="el" href="a05944.html">log.h</a>.
+<p>
+Referenced by <a class="el" href="a05943.html#l00587">addPositiveFilter()</a>, <a class="el" href="a05943.html#l00572">displayFilter()</a>, <a class="el" href="a05943.html#l00517">passFilter()</a>, <a class="el" href="a05943.html#l00556">removeFilter()</a>, and <a class="el" href="a05943.html#l00599">resetFilters()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLogp8" doxytag="NLMISC::CLog::_PosSet" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a02813.html#NLNET_1_1CNetLogp8">NLMISC::CLog::_PosSet</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05944.html#l00217">217</a> of file <a class="el" href="a05944.html">log.h</a>.
+<p>
+Referenced by <a class="el" href="a05943.html#l00089">setPosition()</a>, and <a class="el" href="a05943.html#l00101">unsetPosition()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLogt0" doxytag="NLMISC::CLog::_ProcessName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> string * <a class="el" href="a02813.html#NLNET_1_1CNetLogt0">NLMISC::CLog::_ProcessName</a> = NULL<code> [static, protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05943.html#l00049">49</a> of file <a class="el" href="a05943.html">log.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05943.html#l00242">displayString()</a>, <a class="el" href="a05943.html#l00055">setDefaultProcessName()</a>, and <a class="el" href="a05943.html#l00079">setProcessName()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLogp9" doxytag="NLMISC::CLog::TempArgs" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02814.html">TDisplayInfo</a> <a class="el" href="a02813.html#NLNET_1_1CNetLogp9">NLMISC::CLog::TempArgs</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05944.html#l00232">232</a> of file <a class="el" href="a05944.html">log.h</a>.
+<p>
+Referenced by <a class="el" href="a05943.html#l00362">displayRawString()</a>, and <a class="el" href="a05943.html#l00242">displayString()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CNetLogp10" doxytag="NLMISC::CLog::TempString" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::string <a class="el" href="a02813.html#NLNET_1_1CNetLogp10">NLMISC::CLog::TempString</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05944.html#l00231">231</a> of file <a class="el" href="a05944.html">log.h</a>.
+<p>
+Referenced by <a class="el" href="a05943.html#l00362">displayRawString()</a>, and <a class="el" href="a05943.html#l00242">displayString()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a05944.html">log.h</a><li><a class="el" href="a05943.html">log.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 13:21:01 2004 for NeL by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0 >
+</a>1.3.6 </small></address>
+</body>
+</html>