31 #ifndef CPL_ERROR_H_INCLUDED
32 #define CPL_ERROR_H_INCLUDED
57 void CPL_DLL CPLError(CPLErr eErrClass,
int err_no,
const char *fmt, ...) CPL_PRINT_FUNC_FORMAT (3, 4);
58 void CPL_DLL CPLErrorV(CPLErr,
int, const
char *, va_list );
59 void CPL_DLL CPLEmergencyError( const
char * );
60 void CPL_DLL CPL_STDCALL CPLErrorReset(
void );
61 int CPL_DLL CPL_STDCALL CPLGetLastErrorNo(
void );
62 CPLErr CPL_DLL CPL_STDCALL CPLGetLastErrorType(
void );
63 const
char CPL_DLL * CPL_STDCALL CPLGetLastErrorMsg(
void );
64 void CPL_DLL * CPL_STDCALL CPLGetErrorHandlerUserData(
void);
66 typedef
void (CPL_STDCALL *CPLErrorHandler)(CPLErr,
int, const
char*);
68 void CPL_DLL CPL_STDCALL CPLLoggingErrorHandler( CPLErr,
int, const
char * );
69 void CPL_DLL CPL_STDCALL CPLDefaultErrorHandler( CPLErr,
int, const
char * );
70 void CPL_DLL CPL_STDCALL CPLQuietErrorHandler( CPLErr,
int, const
char * );
71 void CPLTurnFailureIntoWarning(
int bOn );
73 CPLErrorHandler CPL_DLL CPL_STDCALL CPLSetErrorHandler(CPLErrorHandler);
74 CPLErrorHandler CPL_DLL CPL_STDCALL CPLSetErrorHandlerEx(CPLErrorHandler,
void*);
75 void CPL_DLL CPL_STDCALL CPLPushErrorHandler( CPLErrorHandler );
76 void CPL_DLL CPL_STDCALL CPLPushErrorHandlerEx( CPLErrorHandler,
void* );
77 void CPL_DLL CPL_STDCALL CPLPopErrorHandler(
void);
79 void CPL_DLL CPL_STDCALL CPLDebug( const
char *, const
char *, ... ) CPL_PRINT_FUNC_FORMAT (2, 3);
80 void CPL_DLL CPL_STDCALL _CPLAssert( const
char *, const
char *,
int );
83 # define CPLAssert(expr) ((expr) ? (void)(0) : _CPLAssert(#expr,__FILE__,__LINE__))
85 # define CPLAssert(expr)
94 # define VALIDATE_POINTER_ERR CE_Fatal
96 # define VALIDATE_POINTER_ERR CE_Failure
99 #define VALIDATE_POINTER0(ptr, func) \
100 do { if( NULL == ptr ) \
102 CPLErr const ret = VALIDATE_POINTER_ERR; \
103 CPLError( ret, CPLE_ObjectNull, \
104 "Pointer \'%s\' is NULL in \'%s\'.\n", #ptr, (func)); \
107 #define VALIDATE_POINTER1(ptr, func, rc) \
108 do { if( NULL == ptr ) \
110 CPLErr const ret = VALIDATE_POINTER_ERR; \
111 CPLError( ret, CPLE_ObjectNull, \
112 "Pointer \'%s\' is NULL in \'%s\'.\n", #ptr, (func)); \
113 return (rc); }} while(0)
120 #define CPLE_AppDefined 1
121 #define CPLE_OutOfMemory 2
122 #define CPLE_FileIO 3
123 #define CPLE_OpenFailed 4
124 #define CPLE_IllegalArg 5
125 #define CPLE_NotSupported 6
126 #define CPLE_AssertionFailed 7
127 #define CPLE_NoWriteAccess 8
128 #define CPLE_UserInterrupt 9
129 #define CPLE_ObjectNull 10