📄 classptrace.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>PTrace class Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.2.18 --><center><a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="namespaces.html">Namespace List</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> </center><hr><h1>PTrace Class Reference</h1><code>#include <<a class="el" href="object_8h-source.html">object.h</a>></code><p><a href="classPTrace-members.html">List of all members.</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 nowrap align=right valign=top>enum </td><td valign=bottom><a class="el" href="classPTrace.html#s10">Options</a> { <br> <a class="el" href="classPTrace.html#s10s0">Blocks</a> = 1, <a class="el" href="classPTrace.html#s10s1">DateAndTime</a> = 2, <a class="el" href="classPTrace.html#s10s2">Timestamp</a> = 4, <a class="el" href="classPTrace.html#s10s3">Thread</a> = 8, <br> <a class="el" href="classPTrace.html#s10s4">TraceLevel</a> = 16, <a class="el" href="classPTrace.html#s10s5">FileAndLine</a> = 32, <a class="el" href="classPTrace.html#s10s6">ThreadAddress</a> = 64, <a class="el" href="classPTrace.html#s10s7">AppendToFile</a> = 128, <br> <a class="el" href="classPTrace.html#s10s8">GMTTime</a> = 256, <a class="el" href="classPTrace.html#s10s9">SystemLogStream</a> = 32768<br> }</td></tr><tr><td> </td><td><font size=-1><em>Options for trace output.</em> <a href="#s10">More...</a><em></em></font><br><br></td></tr><tr><td colspan=2><br><h2>Static Public Methods</h2></td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classPTrace.html#d0">Initialise</a> (unsigned level, const char *filename=NULL, unsigned options=Timestamp|Thread|Blocks)</td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classPTrace.html#d1">SetOptions</a> (unsigned options)</td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classPTrace.html#d2">ClearOptions</a> (unsigned options)</td></tr><tr><td nowrap align=right valign=top>unsigned </td><td valign=bottom><a class="el" href="classPTrace.html#d3">GetOptions</a> ()</td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classPTrace.html#d4">SetLevel</a> (unsigned level)</td></tr><tr><td nowrap align=right valign=top>unsigned </td><td valign=bottom><a class="el" href="classPTrace.html#d5">GetLevel</a> ()</td></tr><tr><td nowrap align=right valign=top>BOOL </td><td valign=bottom><a class="el" href="classPTrace.html#d6">CanTrace</a> (unsigned level)</td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classPTrace.html#d7">SetStream</a> (ostream *out)</td></tr><tr><td nowrap align=right valign=top>ostream & </td><td valign=bottom><a class="el" href="classPTrace.html#d8">Begin</a> (unsigned level, const char *fileName, int lineNum)</td></tr><tr><td nowrap align=right valign=top>ostream & </td><td valign=bottom><a class="el" href="classPTrace.html#d9">End</a> (ostream &strm)</td></tr></table><hr><a name="_details"></a><h2>Detailed Description</h2>Class to encapsulate tracing functions. This class does not require any instances and is only being used as a method of grouping functions together in a name space. <p><hr><h2>Member Enumeration Documentation</h2><a name="s10" doxytag="PTrace::Options"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> enum PTrace::Options </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Options for trace output.<p><dl compact><dt><b>Enumeration values: </b></dt><dd><table border=0 cellspacing=2 cellpadding=0><tr><td valign=top><em><a name="s10s0" doxytag="Blocks"></a><em>Blocks</em></em> </td><td>Include <a class="el" href="classPTrace_1_1Block.html">PTrace::Block</a> constructs in output If this is bit is clear, all <a class="el" href="classPTrace_1_1Block.html">PTrace::Block</a> output is inhibited regardless of the trace level. If set, the <a class="el" href="classPTrace_1_1Block.html">PTrace::Block</a> may occur provided the trace level is greater than zero. </td></tr><tr><td valign=top><em><a name="s10s1" doxytag="DateAndTime"></a><em>DateAndTime</em></em> </td><td>Include date and time in all output.</td></tr><tr><td valign=top><em><a name="s10s2" doxytag="Timestamp"></a><em>Timestamp</em></em> </td><td>Include (millisecond) timestamp in all output.</td></tr><tr><td valign=top><em><a name="s10s3" doxytag="Thread"></a><em>Thread</em></em> </td><td>Include identifier for thread trace is made from in all output.</td></tr><tr><td valign=top><em><a name="s10s4" doxytag="TraceLevel"></a><em>TraceLevel</em></em> </td><td>Include trace level in all output.</td></tr><tr><td valign=top><em><a name="s10s5" doxytag="FileAndLine"></a><em>FileAndLine</em></em> </td><td>Include the file and line for the trace call in all output.</td></tr><tr><td valign=top><em><a name="s10s6" doxytag="ThreadAddress"></a><em>ThreadAddress</em></em> </td><td>Include thread object pointer address in all trace output.</td></tr><tr><td valign=top><em><a name="s10s7" doxytag="AppendToFile"></a><em>AppendToFile</em></em> </td><td>Append to log file rather than resetting every time.</td></tr><tr><td valign=top><em><a name="s10s8" doxytag="GMTTime"></a><em>GMTTime</em></em> </td><td>SystemLog flag for tracing within a <a class="el" href="classPServiceProcess.html">PServiceProcess</a> application. Must be set in conjection with SetStream(new PSystemLog). </td></tr><tr><td valign=top><em><a name="s10s9" doxytag="SystemLogStream"></a><em>SystemLogStream</em></em> </td><td>Output timestamps in GMT time rather than local time </td></tr></table></dl> </td> </tr></table><hr><h2>Member Function Documentation</h2><a name="d8" doxytag="PTrace::Begin"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> ostream& PTrace::Begin </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">unsigned </td> <td class="mdname" nowrap> <em>level</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>fileName</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>lineNum</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"><code> [static]</code></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Begin a trace output. If the trace stream output is used outside of the provided macros, it should be noted that a mutex is obtained on the call to PBeginTrace# which will prevent any other threads from using the trace stream until the PEndTrace# function is called.<p>So a typical usage would be: \begin{verbatim} ostream & s = PTrace::Begin(3, __FILE__, __LINE__); s << "hello"; if (want_there) s << " there"; s << '!' << <a class="el" href="classPTrace.html#d9">PTrace::End()</a>; \end{verbatim} <dl compact><dt><b>Parameters: </b></dt><dd><table border=0 cellspacing=2 cellpadding=0><tr><td valign=top><em>fileName</em> </td><td>Log level for output </td></tr><tr><td valign=top><em>lineNum</em> </td><td>Filename of source file being traced Line number of source file being traced. </td></tr></table></dl> </td> </tr></table><a name="d6" doxytag="PTrace::CanTrace"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> BOOL PTrace::CanTrace </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">unsigned </td> <td class="mdname1" valign="top" nowrap> <em>level</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap><code> [static]</code></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Determine if the level may cause trace output. This checks against the current global trace level set by PSetTraceLevel# for if the trace output may be emitted. This is used by the PTRACE macro. <dl compact><dt><b>Parameters: </b></dt><dd><table border=0 cellspacing=2 cellpadding=0><tr><td valign=top><em>level</em> </td><td>Trace level to check </td></tr></table></dl> </td> </tr></table><a name="d2" doxytag="PTrace::ClearOptions"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void PTrace::ClearOptions </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">unsigned </td> <td class="mdname1" valign="top" nowrap> <em>options</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap><code> [static]</code></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Clear the trace options. The <a class="el" href="object_8h.html#a16">PTRACE()</a>, <a class="el" href="object_8h.html#a14">PTRACE_BLOCK()</a> and <a class="el" href="object_8h.html#a15">PTRACE_LINE()</a> macros output trace text that may contain assorted values. These are defined by the Options enum.<p>Note this function AND's the complement of the bits included in the options parameter. <dl compact><dt><b>Parameters: </b></dt><dd><table border=0 cellspacing=2 cellpadding=0><tr><td valign=top><em>options</em> </td><td>New level for trace </td></tr></table></dl> </td> </tr></table><a name="d9" doxytag="PTrace::End"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> ostream& PTrace::End </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">ostream & </td> <td class="mdname1" valign="top" nowrap> <em>strm</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap><code> [static]</code></td> </tr> </table> </td> </tr>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -