(file) Return to Tracer.h CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Common

Diff for /pegasus/src/Pegasus/Common/Tracer.h between version 1.1.2.1 and 1.10

version 1.1.2.1, 2001/07/31 23:57:08 version 1.10, 2002/06/03 19:32:35
Line 1 
Line 1 
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
 // //
 // Copyright (c) 2000, 2001 BMC Software, Hewlett-Packard Company, IBM,  // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,
 // The Open Group, Tivoli Systems // The Open Group, Tivoli Systems
 // //
 // Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
Line 23 
Line 23 
 // //
 // Author: Sushma Fernandes, Hewlett-Packard Company (sushma_fernandes@hp.com) // Author: Sushma Fernandes, Hewlett-Packard Company (sushma_fernandes@hp.com)
 // //
 // Modified By:  // Modified By: Jenny Yu, Hewlett-Packard Company (jenny_yu@hp.com)
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
Line 31 
Line 31 
 #define Pegasus_Tracer_h #define Pegasus_Tracer_h
  
 #include <stdarg.h> #include <stdarg.h>
 #include <fstream.h>  #include <fstream>
 #include <Pegasus/Common/String.h> #include <Pegasus/Common/String.h>
 #include <Pegasus/Common/System.h> #include <Pegasus/Common/System.h>
 #include <Pegasus/Common/Logger.h> #include <Pegasus/Common/Logger.h>
   #include <Pegasus/Common/Exception.h>
 #include <Pegasus/Common/TraceComponents.h> #include <Pegasus/Common/TraceComponents.h>
 #include <Pegasus/Common/TraceFileHandler.h> #include <Pegasus/Common/TraceFileHandler.h>
  
   
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
 /** Tracer implements tracing of messages to a defined file /** Tracer implements tracing of messages to a defined file
Line 66 
Line 66 
  
     #ifdef PEGASUS_REMOVE_TRACE     #ifdef PEGASUS_REMOVE_TRACE
  
           inline static void traceBuffer(
               const char*  fileName,
               const Uint32 lineNum,
               const Uint32 traceComponent,
               const Uint32 traceLevel,
               const char*  data,
               const Uint32 size)
           {
               // empty function
           }
           inline static void traceBuffer(
               const Uint32 traceComponent,
               const Uint32 traceLevel,
               const char* data,
               const Uint32 size)
           {
               // empty function
           }
   
         inline static void trace(         inline static void trace(
             const Uint32 traceComponent,             const Uint32 traceComponent,
             const Uint32 traceLevel,             const Uint32 traceLevel,
Line 86 
Line 105 
             // empty function             // empty function
         }         }
  
           inline static void trace(
               const char*   fileName,
               const Uint32  lineNum,
               const Uint32  traceComponent,
               const Uint32  traceLevel,
               const String& traceString)
           {
               // empty function
           }
   
           inline static void traceCIMException(
               const Uint32  traceComponent,
               const Uint32  traceLevel,
               CIMException  cimException)
           {
               // empty function
           }
   
           static Uint32 setTraceFile(const char* traceFile)
           {
               // empty function
               return 0;
           }
   
           static Uint32 setTraceLevel(const Uint32 traceLevel)
           {
               // empty function
               return 0;
           }
   
           static void setTraceComponents(
             const String traceComponents)
           {
                 // empty function
           }
   
   
     #else     #else
           /** Traces the specified number of bytes in a given buffer
               @param    traceComponent  component being traced
               @param    traceLevel      trace level of the trace message
               @param    data            buffer to be traced
               @param    size            number of bytes to be traced
            */
           inline static void traceBuffer(
               const Uint32 traceComponent,
               const Uint32 traceLevel,
               const char*  data,
               const Uint32 size)
           {
               _traceBuffer( traceComponent, traceLevel, data, 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    traceLevel      trace level of the trace message
               @param    data            buffer to be traced
               @param    size            size of the buffer
            */
           inline static void traceBuffer(
               const char*  fileName,
               const Uint32 lineNum,
               const Uint32 traceComponent,
               const Uint32 traceLevel,
               const char*  data,
               const Uint32 size)
           {
               _traceBuffer( fileName, lineNum,
                             traceComponent, traceLevel, data, size );
           }
   
  
         /** Traces the given message         /** Traces the given message
             @param    traceComponent  component being traced             @param    traceComponent  component being traced
Line 131 
Line 224 
             va_end(argList);             va_end(argList);
         }         }
  
           /** Traces the given string.  Overloaded to include the filename
               and 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    traceLevel      trace level of the trace message
               @param    traceString     the string to be traced
            */
           inline static void trace(
               const char*   fileName,
               const Uint32  lineNum,
               const Uint32  traceComponent,
               const Uint32  traceLevel,
               const String& traceString)
           {
               _traceString( fileName, lineNum, traceComponent, traceLevel,
                             traceString );
           }
   
           /** Traces the message in the given CIMException object.  The message
               written to the trace file will include the source filename and
               line number of the CIMException originator.
               @param    traceComponent  component being traced
               @param    traceLevel      trace level of the trace message
               @param    CIMException    the CIMException to be traced.
            */
           inline static void traceCIMException(
               const Uint32  traceComponent,
               const Uint32  traceLevel,
               CIMException  cimException)
           {
               _traceCIMException( traceComponent, traceLevel, cimException );
           }
   
           /** Set the trace file to the given file
               @param    traceFile       full path of the trace file
               @return   0               if the filepath is valid
                         1               if an error occurs while opening the file
                                         in append mode
           */
           static Uint32 setTraceFile(const char* traceFile);
   
           /** Set the trace level to the given level
               @param    traceLevel      trace level to be set
               @return   0               if trace level is valid
                         1               if trace level is invalid
           */
           static Uint32 setTraceLevel(const Uint32 traceLevel);
   
           /** Set components to be traced
               @param    traceComponents list of components to be traced,
                         components should be separated by ','
           */
           static void setTraceComponents(
              const String traceComponents);
   
     #endif     #endif
  
     // End of PEGASUS_REMOVE_TRACE     // End of PEGASUS_REMOVE_TRACE
Line 148 
Line 297 
         const char* methodName)         const char* methodName)
     {     {
         _traceEnter( fileName, lineNum, traceComponent, "%s %s",         _traceEnter( fileName, lineNum, traceComponent, "%s %s",
             _FUNC_ENTER_MSG, methodName);              _METHOD_ENTER_MSG, methodName);
     }     }
  
     /** Traces method exit.     /** Traces method exit.
Line 164 
Line 313 
         const char* methodName)         const char* methodName)
     {     {
         _traceExit( fileName, lineNum, traceComponent, "%s %s",         _traceExit( fileName, lineNum, traceComponent, "%s %s",
             _FUNC_EXIT_MSG, methodName);              _METHOD_EXIT_MSG, methodName);
     }     }
  
     /** Set the trace file to the given file      /** Validates the File Path for the trace File
         @param    traceFile       full path of the trace file          @param    filePath full path of the file
         @return   0               if the filepath is valid          @return   1        if the file path is valid
                   1               if an error occurs while opening the file in                    0        if the file path is invalid
                                   append mode       */
      */      static Boolean isValidFileName(const char* filePath);
     static Uint32 setTraceFile(const char* traceFile);  
       /** Validates the trace components
     /** Set the trace level to the given level          @param    traceComponents   comma separated list of trace components
         @param    traceLevel      trace level to be set          @return   1        if the components are valid
         @return   0               if trace level is valid                    0        if one or more components are invalid
                   1               if trace level is invalid       */
      */      static Boolean isValidComponents(const String traceComponents);
     static Uint32 setTraceLevel(const Uint32 traceLevel);  
       /** Validates the trace components
    /** Set components to be traced          @param    traceComponents   comma separated list of trace components
        @param    traceComponents list of components to be traced, components          @param    invalidComponents comma separated list of invalid components
                  should be separated by ','          @return   1        if the components are valid
     */                    0        if one or more components are invalid
     static void setTraceComponents(String traceComponents);       */
       static Boolean isValidComponents(
           const String traceComponents,
           String& invalidComponents);
  
 private: private:
  
     static const char   _COMPONENT_SEPARATOR;     static const char   _COMPONENT_SEPARATOR;
     static const Uint32 _NUM_COMPONENTS;     static const Uint32 _NUM_COMPONENTS;
       static const Uint32 _STRLEN_MAX_UNSIGNED_INT;
       static const Uint32 _STRLEN_MAX_PID_TID;
       static const Boolean _SUCCESS;
       static const Boolean _FAILURE;
     Boolean*            _traceComponentMask;     Boolean*            _traceComponentMask;
     Uint32              _traceLevelMask;     Uint32              _traceLevelMask;
     TraceFileHandler*   _traceHandler;     TraceFileHandler*   _traceHandler;
     static Tracer*      _tracerInstance;     static Tracer*      _tracerInstance;
  
     // Message Strings for fucntion Entry and Exit      // Message Strings for function Entry and Exit
     static const char _FUNC_ENTER_MSG[];      static const char _METHOD_ENTER_MSG[];
     static const char _FUNC_EXIT_MSG[];      static const char _METHOD_EXIT_MSG[];
  
     // Message Strings for Logger     // Message Strings for Logger
     static const char _LOG_MSG1[];      static const char _LOG_MSG[];
     static const char _LOG_MSG2[];  
  
     // Checks if trace is enabled for the given component and trace level     // Checks if trace is enabled for the given component and trace level
     // @param    traceComponent  component being traced     // @param    traceComponent  component being traced
Line 240 
Line 395 
         const char* fmt,         const char* fmt,
         va_list argList);         va_list argList);
  
       //  Traces the specified number of bytes in a given buffer
       //  @param    traceComponent  component being traced
       //  @param    traceLevel      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 traceLevel,
           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    traceLevel      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 traceLevel,
           const char*  data,
           const Uint32 size);
   
       //  Traces the given string.
       //  @param    traceComponent  component being traced
       //  @param    traceLevel      trace level of the trace message
       //  @param    traceString     the string to be traced
       //
       static void _traceString(
           const Uint32  traceComponent,
           const Uint32  traceLevel,
           const String& traceString);
   
       //  Traces a given string.  Overloaded to include the filename
       //  and 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    traceLevel      trace level of the trace message
       //  @param    traceString     the string to be traced
       //
       static void _traceString(
           const char*   fileName,
           const Uint32  lineNum,
           const Uint32  traceComponent,
           const Uint32  traceLevel,
           const String& traceString);
   
       //  Traces the message in the given CIMException object.  The message
       //  to be written to the trace file will include the source filename and
       //  line number of the CIMException originator.
       //  @param    traceComponent  component being traced
       //  @param    traceLevel      trace level of the trace message
       //  @param    CIMException    the CIMException to be traced.
       //
       static void _traceCIMException(
           const Uint32  traceComponent,
           const Uint32  traceLevel,
           CIMException  cimException);
   
     // Called by all the trace interfaces to log message to the     // Called by all the trace interfaces to log message to the
     // trace file     // trace file
     // @param    fileName        filename of the trace originator     // @param    fileName        filename of the trace originator
Line 291 
Line 511 
     static Tracer* _getInstance();     static Tracer* _getInstance();
 }; };
  
 // Define the macros for method entry/exit  // Define the macros for method entry/exit, and tracing a given string
 #ifdef PEGASUS_REMOVE_TRACE #ifdef PEGASUS_REMOVE_TRACE
     #define PEG_FUNC_ENTER(traceComponent,methodName)      #define PEG_METHOD_ENTER(traceComponent,methodName)
     #define PEG_FUNC_EXIT(traceComponent,methodName)      #define PEG_METHOD_EXIT()
       #define PEG_TRACE_STRING(traceComponent,traceLevel,traceString)
 #else #else
     /** Macro for tracing method entry     /** Macro for tracing method entry
         @param    traceComponent  component being traced         @param    traceComponent  component being traced
         @param    methodName      name of the method         @param    methodName      name of the method
      */      */
     #define PEG_FUNC_ENTER(traceComponent,methodName) \      #define PEG_METHOD_ENTER(traceComponent,methodName) \
         Tracer::traceEnter(__FILE__, __LINE__,traceComponent,methodName)          const char *PEG_METHOD_NAME = methodName; \
           const Uint32 PEG_TRACE_COMPONENT = traceComponent; \
           Tracer::traceEnter(__FILE__,__LINE__,PEG_TRACE_COMPONENT,PEG_METHOD_NAME)
  
     /** Macro for tracing method exit     /** Macro for tracing method exit
        */
       #define PEG_METHOD_EXIT() \
           Tracer::traceExit(__FILE__,__LINE__,PEG_TRACE_COMPONENT,PEG_METHOD_NAME)
   
       /** Macro for tracing a string
         @param    traceComponent  component being traced         @param    traceComponent  component being traced
         @param    methodName      name of the method          @param    traceLevel      trace level of the trace message
           @param    traceString     the string to be traced
      */      */
     #define PEG_FUNC_EXIT(traceComponent,methodName) \      #define PEG_TRACE_STRING(traceComponent,traceLevel,traceString) \
         Tracer::traceExit(__FILE__,__LINE__,traceComponent,methodName)          Tracer::trace(__FILE__, __LINE__,traceComponent,traceLevel,traceString)
   
 #endif #endif
  
 PEGASUS_NAMESPACE_END PEGASUS_NAMESPACE_END
   
 #endif /* Pegasus_Tracer_h */ #endif /* Pegasus_Tracer_h */


Legend:
Removed from v.1.1.2.1  
changed lines
  Added in v.1.10

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2