version 1.25, 2006/06/20 16:51:31
|
version 1.27.4.1, 2007/04/04 11:04:44
|
|
|
// | // |
//============================================================================== | //============================================================================== |
// | // |
// Author: Sushma Fernandes, Hewlett-Packard Company (sushma_fernandes@hp.com) |
|
// |
|
// Modified By: Jenny Yu, Hewlett-Packard Company (jenny_yu@hp.com) |
|
// Amit K Arora, IBM (amita@in.ibm.com) for PEP#101 |
|
// Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com) |
|
// David Dillard, Symantec Corp. (david_dillard@symantec.com) |
|
// |
|
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
| |
#ifndef Pegasus_Tracer_h | #ifndef Pegasus_Tracer_h |
|
|
static const Uint32 LEVEL3; | static const Uint32 LEVEL3; |
static const Uint32 LEVEL4; | static const Uint32 LEVEL4; |
| |
/** Traces the specified number of bytes in a given buffer |
|
@param traceComponent component being traced |
|
@param level trace level of the trace message |
|
@param data buffer to be traced |
|
@param size number of bytes to be traced |
|
*/ |
|
static void traceBuffer( |
|
const Uint32 traceComponent, |
|
const Uint32 level, |
|
const char* data, |
|
const Uint32 size); |
|
|
|
/** Traces the specified number of bytes in a given buffer |
|
Overloaded to include the filename and the line number |
|
of trace origin. |
|
@param fileName filename of the trace originator |
|
@param lineNum line number of the trace originator |
|
@param traceComponent component being traced |
|
@param level trace level of the trace message |
|
@param data buffer to be traced |
|
@param size size of the buffer |
|
*/ |
|
static void traceBuffer( |
|
const char* fileName, |
|
const Uint32 lineNum, |
|
const Uint32 traceComponent, |
|
const Uint32 level, |
|
const char* data, |
|
const Uint32 size); |
|
|
|
/** Traces the given message | /** Traces the given message |
@param traceComponent component being traced | @param traceComponent component being traced |
@param level trace level of the trace message | @param level trace level of the trace message |
|
|
@param level trace level of the trace message | @param level trace level of the trace message |
@param string the string to be traced | @param string the string to be traced |
*/ | */ |
static void trace( |
static void traceString( |
const char* fileName, | const char* fileName, |
const Uint32 lineNum, | const Uint32 lineNum, |
const Uint32 traceComponent, | const Uint32 traceComponent, |
const Uint32 level, | const Uint32 level, |
const String& string); | const String& string); |
| |
/** Traces the given string. |
/** Traces the given character string. |
|
Overloaded to include the filename |
|
and line number of trace origin. |
@param fileName filename of the trace originator | @param fileName filename of the trace originator |
@param lineNum line number of the trace originator | @param lineNum line number of the trace originator |
@param traceComponent component being traced | @param traceComponent component being traced |
@param level trace level of the trace message | @param level trace level of the trace message |
@param string the string to be traced |
@param cstring the character string to be traced |
*/ | */ |
static void trace( |
static void traceCString( |
|
const char* fileName, |
|
const Uint32 lineNum, |
const Uint32 traceComponent, | const Uint32 traceComponent, |
const Uint32 level, | const Uint32 level, |
const String& string); |
const char* cstring); |
| |
/** Traces the message in the given CIMException object. The message | /** Traces the message in the given CIMException object. The message |
written to the trace file will include the source filename and | written to the trace file will include the source filename and |
|
|
static void traceCIMException( | static void traceCIMException( |
const Uint32 traceComponent, | const Uint32 traceComponent, |
const Uint32 level, | const Uint32 level, |
CIMException cimException); |
const CIMException& cimException); |
| |
/** Set the trace file to the given file | /** Set the trace file to the given file |
@param traceFile full path of the trace file | @param traceFile full path of the trace file |
|
|
| |
/** Traces method entry. | /** Traces method entry. |
@param token TracerToken | @param token TracerToken |
@param traceComponent component being traced |
|
@param methodName method being traced |
|
*/ |
|
static void traceEnter( |
|
TracerToken& token, |
|
Uint32 component, |
|
const char* method); |
|
|
|
/** Traces method exit. |
|
@param token TracerToken containing component and method |
|
*/ |
|
static void traceExit( |
|
TracerToken& token); |
|
|
|
/** Traces method entry. |
|
@param token TracerToken |
|
@param fileName filename of the trace originator | @param fileName filename of the trace originator |
@param lineNum line number of the trace originator | @param lineNum line number of the trace originator |
@param traceComponent component being traced | @param traceComponent component being traced |
|
|
| |
// Traces the given message | // Traces the given message |
// @param traceComponent component being traced | // @param traceComponent component being traced |
// @param level level of the trace message |
|
// @param *fmt printf style format string | // @param *fmt printf style format string |
// @param argList variable argument list | // @param argList variable argument list |
static void _trace( | static void _trace( |
const Uint32 traceComponent, | const Uint32 traceComponent, |
const Uint32 level, |
|
const char* fmt, | const char* fmt, |
va_list argList); | va_list argList); |
| |
// Traces the given message. Overloaded to include the file name and the | // Traces the given message. Overloaded to include the file name and the |
// line number as one of the parameters. | // line number as one of the parameters. |
// @param traceComponent component being traced | // @param traceComponent component being traced |
// @param level level of the trace message |
|
// @param message message header (file name:line number) | // @param message message header (file name:line number) |
// @param *fmt printf style format string | // @param *fmt printf style format string |
// @param argList variable argument list | // @param argList variable argument list |
|
|
const char* fileName, | const char* fileName, |
const Uint32 lineNum, | const Uint32 lineNum, |
const Uint32 traceComponent, | const Uint32 traceComponent, |
const Uint32 level, |
|
const char* fmt, | const char* fmt, |
va_list argList); | va_list argList); |
| |
// Traces the specified number of bytes in a given buffer |
// Traces a given character string. Overloaded to include the filename |
// @param traceComponent component being traced |
|
// @param level trace level of the trace message |
|
// @param data buffer to be traced |
|
// @param size number of bytes to be traced |
|
static void _traceBuffer( |
|
const Uint32 traceComponent, |
|
const Uint32 level, |
|
const char* data, |
|
const Uint32 size); |
|
|
|
// Traces the specified number of bytes in a given buffer |
|
// Overloaded to include the filename and the line number |
|
// of trace origin. |
|
// @param fileName filename of the trace originator |
|
// @param lineNum line number of the trace originator |
|
// @param traceComponent component being traced |
|
// @param level trace level of the trace message |
|
// @param data buffer to be traced |
|
// @param size size of the buffer |
|
static void _traceBuffer( |
|
const char* fileName, |
|
const Uint32 lineNum, |
|
const Uint32 traceComponent, |
|
const Uint32 level, |
|
const char* data, |
|
const Uint32 size); |
|
|
|
// Traces the given string. |
|
// @param traceComponent component being traced |
|
// @param level trace level of the trace message |
|
// @param string the string to be traced |
|
// |
|
static void _traceString( |
|
const Uint32 traceComponent, |
|
const Uint32 level, |
|
const String& string); |
|
|
|
// Traces a given string. Overloaded to include the filename |
|
// and line number of trace origin. | // and line number of trace origin. |
// @param fileName filename of the trace originator | // @param fileName filename of the trace originator |
// @param lineNum line number of the trace originator | // @param lineNum line number of the trace originator |
// @param traceComponent component being traced | // @param traceComponent component being traced |
// @param level trace level of the trace message |
// @param cstring the character string to be traced |
// @param string the string to be traced |
|
// | // |
static void _traceString( |
static void _traceCString( |
const char* fileName, | const char* fileName, |
const Uint32 lineNum, | const Uint32 lineNum, |
const Uint32 traceComponent, | const Uint32 traceComponent, |
const Uint32 level, |
const char* cstring); |
const String& string); |
|
| |
// Traces the message in the given CIMException object. The message | // Traces the message in the given CIMException object. The message |
// to be written to the trace file will include the source filename and | // to be written to the trace file will include the source filename and |
// line number of the CIMException originator. | // line number of the CIMException originator. |
// @param traceComponent component being traced | // @param traceComponent component being traced |
// @param level trace level of the trace message |
|
// @param CIMException the CIMException to be traced. | // @param CIMException the CIMException to be traced. |
// | // |
static void _traceCIMException( | static void _traceCIMException( |
const Uint32 traceComponent, | const Uint32 traceComponent, |
const Uint32 level, |
const CIMException& cimException); |
CIMException cimException); |
|
| |
// Called by all the trace interfaces to log message to the |
// Called by all the trace interfaces to log message |
// trace file |
// consisting of a single character string to the trace file |
// @param fileName filename of the trace originator |
// @param traceComponent component being traced |
// @param lineNum line number of the trace originator |
// @param cstring the string to be traced |
|
static void _traceCString( |
|
const Uint32 traceComponent, |
|
const char* message, |
|
const char* cstring); |
|
|
|
// Called by all the trace interfaces to log message |
|
// with variable number of arguments to the trace file |
// @param traceComponent component being traced | // @param traceComponent component being traced |
// @param *fmt printf style format string | // @param *fmt printf style format string |
// @param argList variable argument list | // @param argList variable argument list |
|
|
const char* fmt, | const char* fmt, |
va_list argList); | va_list argList); |
| |
// Traces method enter |
// Traces method enter/exit |
// @param fileName filename of the trace originator | // @param fileName filename of the trace originator |
// @param lineNum line number of the trace originator | // @param lineNum line number of the trace originator |
// @param traceComponent component being traced | // @param traceComponent component being traced |
// @param *fmt printf style format string |
// @param method name of the method |
// @param ... variable argument list |
static void _traceMethod( |
static void _traceEnter( |
|
const char* fileName, | const char* fileName, |
const Uint32 lineNum, | const Uint32 lineNum, |
const Uint32 traceComponent, | const Uint32 traceComponent, |
const char* fmt, |
const char* methodEntryExit, |
...); |
const char* method); |
|
|
// Traces method exit |
|
// @param fileName filename of the trace originator |
|
// @param traceComponent component being traced |
|
// @param *fmt printf style format string |
|
// @param ... variable argument list |
|
static void _traceExit( |
|
const char* fileName, |
|
const Uint32 lineNum, |
|
const Uint32 traceComponent, |
|
const char* fmt, |
|
...); |
|
| |
// Tracer constructor | // Tracer constructor |
// Constructor is private to prevent construction of Tracer objects | // Constructor is private to prevent construction of Tracer objects |
|
|
| |
#ifdef PEGASUS_REMOVE_TRACE | #ifdef PEGASUS_REMOVE_TRACE |
| |
inline void Tracer::traceBuffer( |
|
const char* fileName, |
|
const Uint32 lineNum, |
|
const Uint32 traceComponent, |
|
const Uint32 level, |
|
const char* data, |
|
const Uint32 size) |
|
{ |
|
// empty function |
|
} |
|
|
|
inline void Tracer::traceBuffer( |
|
const Uint32 traceComponent, |
|
const Uint32 level, |
|
const char* data, |
|
const Uint32 size) |
|
{ |
|
// empty function |
|
} |
|
|
|
inline void Tracer::trace( | inline void Tracer::trace( |
const Uint32 traceComponent, | const Uint32 traceComponent, |
const Uint32 level, | const Uint32 level, |
|
|
// empty function | // empty function |
} | } |
| |
inline void Tracer::trace( |
inline void Tracer::traceString( |
const char* fileName, | const char* fileName, |
const Uint32 lineNum, | const Uint32 lineNum, |
const Uint32 traceComponent, | const Uint32 traceComponent, |
|
|
// empty function | // empty function |
} | } |
| |
inline void Tracer::trace( |
inline void Tracer::traceCString( |
|
const char* fileName, |
|
const Uint32 lineNum, |
const Uint32 traceComponent, | const Uint32 traceComponent, |
const Uint32 level, | const Uint32 level, |
const String& string) |
const char* cstring) |
{ | { |
// empty function | // empty function |
} | } |
|
|
inline void Tracer::traceCIMException( | inline void Tracer::traceCIMException( |
const Uint32 traceComponent, | const Uint32 traceComponent, |
const Uint32 level, | const Uint32 level, |
CIMException cimException) |
const CIMException& cimException) |
{ | { |
// empty function | // empty function |
} | } |
|
|
return 0; | return 0; |
} | } |
| |
|
inline Uint32 Tracer::setTraceLevel(const Uint32 level) |
|
{ |
|
// empty function |
|
return 0; |
|
} |
|
|
|
inline void Tracer::setTraceComponents(const String& traceComponents) |
|
{ |
|
// empty function |
|
} |
|
|
#endif /* PEGASUS_REMOVE_TRACE */ | #endif /* PEGASUS_REMOVE_TRACE */ |
| |
//============================================================================== | //============================================================================== |
|
|
# define PEG_METHOD_EXIT() | # define PEG_METHOD_EXIT() |
# define PEG_TRACE_STRING(comp,level,string) | # define PEG_TRACE_STRING(comp,level,string) |
# define PEG_TRACE(VAR_ARGS) | # define PEG_TRACE(VAR_ARGS) |
|
# define PEG_TRACE_CSTRING(comp,level,chars) |
| |
#else /* PEGASUS_REMOVE_TRACE */ | #else /* PEGASUS_REMOVE_TRACE */ |
| |
# define PEG_METHOD_ENTER(comp, meth) \ | # define PEG_METHOD_ENTER(comp, meth) \ |
TracerToken __tracerToken; \ | TracerToken __tracerToken; \ |
Tracer::traceEnter(__tracerToken PEGASUS_COMMA_FILE_LINE, comp, meth); |
do \ |
|
{ \ |
|
if (Tracer::isTraceOn()) \ |
|
Tracer::traceEnter(__tracerToken PEGASUS_COMMA_FILE_LINE, comp, meth); \ |
|
} \ |
|
while (0) |
| |
# define PEG_METHOD_EXIT() \ | # define PEG_METHOD_EXIT() \ |
Tracer::traceExit(__tracerToken PEGASUS_COMMA_FILE_LINE) |
do \ |
|
{ \ |
|
if (Tracer::isTraceOn()) \ |
|
Tracer::traceExit(__tracerToken PEGASUS_COMMA_FILE_LINE); \ |
|
} \ |
|
while (0) |
| |
// Macro for Trace String. the do construct allows this to appear | // Macro for Trace String. the do construct allows this to appear |
// as a single statement. | // as a single statement. |
# define PEG_TRACE_STRING(comp, level, string) \ | # define PEG_TRACE_STRING(comp, level, string) \ |
do \ | do \ |
{ \ | { \ |
Tracer::trace(PEGASUS_FILE_LINE_COMMA comp, level, string); \ |
if (Tracer::isTraceOn()) \ |
|
Tracer::traceString(PEGASUS_FILE_LINE_COMMA comp, level, string); \ |
|
} \ |
|
while (0) |
|
|
|
// Macro to trace character lists. the do construct allows this to appear |
|
// as a single statement. |
|
# define PEG_TRACE_CSTRING(comp, level, chars) \ |
|
do \ |
|
{ \ |
|
if (Tracer::isTraceOn()) \ |
|
Tracer::traceCString(PEGASUS_FILE_LINE_COMMA comp, level, chars); \ |
} \ | } \ |
while (0) | while (0) |
| |
// Macro for Trace variable number of arguments with format string. The trace test |
// Macro for Trace variable number of arguments with format string. The trace |
// is included becase of the possible cost of preparing the variable |
// test is included becase of the possible cost of preparing the variable |
// number of arguments on each call. The d construct allows this to be | // number of arguments on each call. The d construct allows this to be |
// treated as a single statement. | // treated as a single statement. |
# define PEG_TRACE(VAR_ARGS) \ | # define PEG_TRACE(VAR_ARGS) \ |