(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.6 and 1.17

version 1.1.2.6, 2001/10/24 20:44:37 version 1.17, 2005/01/19 23:48:05
Line 1 
Line 1 
 //%/////////////////////////////////////////////////////////////////////////////  //%2004////////////////////////////////////////////////////////////////////////
 // //
 // Copyright (c) 2000, 2001 BMC Software, Hewlett-Packard Company, IBM,  // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
 // The Open Group, Tivoli Systems  // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
   // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
   // IBM Corp.; EMC Corporation, The Open Group.
   // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
   // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
 // //
 // 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
 // of this software and associated documentation files (the "Software"), to // of this software and associated documentation files (the "Software"), to
Line 23 
Line 27 
 // //
 // 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)
   //              Amit K Arora, IBM (amita@in.ibm.com) for PEP#101
   //              Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
Line 35 
Line 41 
 #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/InternalException.h>
 #include <Pegasus/Common/TraceComponents.h> #include <Pegasus/Common/TraceComponents.h>
 #include <Pegasus/Common/TraceFileHandler.h> #include <Pegasus/Common/TraceFileHandler.h>
   #include <Pegasus/Common/Linkage.h>
   #include <Pegasus/Common/AutoPtr.h>
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
Line 105 
Line 113 
             // 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)         static Uint32 setTraceFile(const char* traceFile)
         {         {
             // empty function             // empty function
Line 117 
Line 143 
             return 0;             return 0;
         }         }
  
         static void setTraceComponents(String traceComponents)          static void setTraceComponents(
             const String& traceComponents)
         {         {
             // empty function             // empty function
         }         }
Line 205 
Line 232 
             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         /** Set the trace file to the given file
             @param    traceFile       full path of the trace file             @param    traceFile       full path of the trace file
             @return   0               if the filepath is valid             @return   0               if the filepath is valid
                       1               if an error occurs while opening the file                        1               if the traceFile is an empty string or
                                         if an error occurs while opening the file
                                       in append mode                                       in append mode
         */         */
         static Uint32 setTraceFile(const char* traceFile);         static Uint32 setTraceFile(const char* traceFile);
Line 224 
Line 286 
             @param    traceComponents list of components to be traced,             @param    traceComponents list of components to be traced,
                       components should be separated by ','                       components should be separated by ','
         */         */
         static void setTraceComponents(String traceComponents);          static void setTraceComponents(
              const String& traceComponents);
  
     #endif     #endif
  
Line 243 
Line 306 
         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 259 
Line 322 
         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);
     }     }
  
     /** Validates the File Path for the trace File     /** Validates the File Path for the trace File
Line 267 
Line 330 
         @return   1        if the file path is valid         @return   1        if the file path is valid
                   0        if the file path is invalid                   0        if the file path is invalid
      */      */
     static Boolean isValid(const char* filePath);      static Boolean isValidFileName(const char* filePath);
   
  
       /** Validates the trace components
           @param    traceComponents   comma separated list of trace components
           @return   1        if the components are valid
                     0        if one or more components are invalid
        */
       static Boolean isValidComponents(const String& traceComponents);
   
       /** Validates the trace components
           @param    traceComponents   comma separated list of trace components
           @param    invalidComponents comma separated list of invalid components
           @return   1        if the components are valid
                     0        if one or more components are invalid
        */
       static Boolean isValidComponents(
           const String& traceComponents,
           String& invalidComponents);
   
       /** Specify the name of the module being traced.  If non-empty, this
           value is used as an extension to the name of the trace file.
           @param    moduleName   Name of the module being traced.
        */
       static void setModuleName(const String& moduleName);
  
 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_UNSIGNED_INT;
     Boolean*            _traceComponentMask;      static const Uint32 _STRLEN_MAX_PID_TID;
       static const Boolean _SUCCESS;
       static const Boolean _FAILURE;
       AutoArrayPtr<Boolean> _traceComponentMask;
     Uint32              _traceLevelMask;     Uint32              _traceLevelMask;
     TraceFileHandler*   _traceHandler;      AutoPtr<TraceFileHandler> _traceHandler;
       String              _moduleName;
     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[];  
     static const char _LOG_MSG3[];  
  
     // 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 353 
Line 439 
         const char*  data,         const char*  data,
         const Uint32 size);         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 364 
Line 487 
         const Uint32 traceComponent,         const Uint32 traceComponent,
         const char* message,         const char* message,
         const char* fmt,         const char* fmt,
         va_list argList=0);          va_list argList);
  
     // Traces method enter     // Traces method enter
     // @param    fileName        filename of the trace originator     // @param    fileName        filename of the trace originator
Line 404 
Line 527 
     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


Legend:
Removed from v.1.1.2.6  
changed lines
  Added in v.1.17

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2