00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef COIN_SODEBUGERROR_H
00021
#define COIN_SODEBUGERROR_H
00022
00023
#include <Inventor/errors/SoError.h>
00024
00025
00026
00027
#if defined(ERROR)
00028
#define SODEBUGERROR_STORE_ERROR_DEF ERROR
00029
#undef ERROR
00030
#endif
00031
00032
00033 class COIN_DLL_API SoDebugError :
public SoError {
00034
typedef SoError inherited;
00035
00036
public:
00037 enum Severity { ERROR, WARNING, INFO };
00038
00039
static void setHandlerCallback(SoErrorCB *
const function,
00040
void *
const data);
00041
static SoErrorCB *
getHandlerCallback(
void);
00042
static void *
getHandlerData(
void);
00043
00044
static SoType getClassTypeId(
void);
00045
virtual SoType getTypeId(
void) const;
00046
00047 SoDebugError::Severity getSeverity(
void) const;
00048
00049 static
void post(const
char * const source, const
char * const format, ...);
00050 static
void postWarning(const
char * const source, const
char * const format, ...);
00051 static
void postInfo(const
char * const source, const
char * const format, ...);
00052
00053 static
void initClass(
void);
00054
00055 protected:
00056 virtual SoErrorCB * getHandler(
void * & data) const;
00057
00058 private:
00059 static
SoType classTypeId;
00060 static SoErrorCB * callback;
00061 static
void * callbackData;
00062 Severity severity;
00063 };
00064
00065
00066 #if defined(SODEBUGERROR_STORE_ERROR_DEF)
00067 #define ERROR SODEBUGERROR_STORE_ERROR_DEF
00068 #undef SODEBUGERROR_STORE_ERROR_DEF
00069 #endif
00070
00071 #endif