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 // !COIN_SODEBUGERROR_H