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

  1 r.kieninger 1.1 //%2006////////////////////////////////////////////////////////////////////////
  2                 //
  3                 // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
  4                 // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
  5                 // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
  6                 // IBM Corp.; EMC Corporation, The Open Group.
  7                 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
  8                 // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
  9                 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 10                 // EMC Corporation; VERITAS Software Corporation; The Open Group.
 11                 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 12                 // EMC Corporation; Symantec Corporation; The Open Group.
 13                 //
 14                 // Permission is hereby granted, free of charge, to any person obtaining a copy
 15                 // of this software and associated documentation files (the "Software"), to
 16                 // deal in the Software without restriction, including without limitation the
 17                 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 18                 // sell copies of the Software, and to permit persons to whom the Software is
 19                 // furnished to do so, subject to the following conditions:
 20                 // 
 21                 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 22 r.kieninger 1.1 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
 23                 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 24                 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 25                 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 26                 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 27                 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 28                 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 29                 //
 30                 //==============================================================================
 31                 //
 32                 //%/////////////////////////////////////////////////////////////////////////////
 33                 
 34                 
 35                 #ifndef Pegasus_TraceHandler_h
 36                 #define Pegasus_TraceHandler_h
 37                 
 38                 #include <cstdarg>
 39                 #include <cstdio>
 40                 #include <Pegasus/Common/String.h>
 41                 #include <Pegasus/Common/Linkage.h>
 42                 
 43 r.kieninger 1.1 PEGASUS_NAMESPACE_BEGIN
 44                 
 45                 /** TraceHandler is an abstract base class for all kinds of trace handlers.
 46                  */
 47                 
 48                 class PEGASUS_COMMON_LINKAGE TraceHandler
 49                 {
 50                 public:
 51                 
 52                     /** Writes message with format string to the tracing facility
 53                         @param    message  message to be written
 54 thilo.boehm 1.2         @param    msgLen   lenght of message without terminating '\0'
 55 r.kieninger 1.1         @param    fmt      printf style format string
 56                         @param    argList  variable argument list
 57                      */
 58                     virtual void handleMessage(const char* message,
 59 thilo.boehm 1.2                                Uint32 msgLen,
 60 r.kieninger 1.1                                const char* fmt,
 61                                                va_list argList) = 0;
 62                 
 63                     /** Writes simple message to the tracing facility.
 64                         @param    message  message to be written
 65 thilo.boehm 1.2         @param    msgLen   lenght of message without terminating '\0'
 66 r.kieninger 1.1      */
 67 thilo.boehm 1.2     virtual void handleMessage(const char* message,
 68                                                Uint32 msgLen) = 0;
 69 r.kieninger 1.1 
 70                 
 71                     /** Sets and prepares the destination (e.g. traceFileName) for the
 72                         trace handler.
 73                         @param    destination tracer destination, e.g. file
 74                         @return   0           if the function is successful
 75                                   1           if an error occurs
 76                      */
 77                     virtual Uint32 setMessageDestination(const char* destination) {return 0;};
 78                 
 79                     /** Validates the File Path for the trace File
 80                         @param    filePath full path of the file
 81                         @return   1        if the file path is valid
 82                                   0        if the file path is invalid
 83                      */
 84                     virtual Boolean isValidMessageDestination(const char* destination) 
 85                         {return true;};
 86                     
 87 thilo.boehm 1.2     /** Flushes the trace
 88                      */
 89                     virtual void flushTrace() {return;};
 90                     
 91 r.kieninger 1.1     TraceHandler() {};
 92                 
 93                     virtual ~TraceHandler() {};
 94                 
 95                     
 96                 };
 97                 
 98                 PEGASUS_NAMESPACE_END
 99                 
100                 #endif /* Pegasus_TraceHandler_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2