#include <glib.h>
Go to the source code of this file.
Classes | |
| struct | ObitErr |
| ObitErr Class structure. More... | |
| struct | ObitErrElem |
| ObitErr Stack Element structure. More... | |
Defines | |
| #define | OBITERRBUFSIZE 120 |
| Size of message buffer in characters. | |
| #define | Obit_log_error(err, errCode, format...) |
Macro to log error message adds errMsg/traceback to err for errors
| |
| #define | Obit_log_error_no_trace(err, errCode, format...) |
Macro to log error message without tracepacb Evaluates expression and if false, adds errMsg/traceback to err
| |
| #define | Obit_return_if_fail(expr, err, format...) |
| Macro to evaluate expression, log in err and return on failure. | |
| #define | Obit_retval_if_fail(expr, err, out, format...) |
| Macro to evaluate expression, log in err and return a value on failure. | |
| #define | Obit_traceback_msg(err, me, name) |
| Macro for traceback when an error in a called routine is encountered. | |
| #define | Obit_traceback_val(err, me, name, out) |
| Macro for traceback logging with a return value Writes traceback info and returns, optionally passing a value. | |
| #define | Obit_cfitsio_error(err) |
| Macro to dump cfitsio error stack to an ObitErr. | |
Enumerations | |
| enum | ObitErrCode { OBIT_None = 0, OBIT_InfoErr, OBIT_InfoWarn, OBIT_Traceback, OBIT_MildError, OBIT_Error, OBIT_StrongError, OBIT_Fatal } |
| enum for error codes. More... | |
Functions | |
| ObitErr * | newObitErr (void) |
| Public: Constructor. | |
| ObitErr * | ObitErrRef (ObitErr *in) |
| Public: Reference to object, update reference count. | |
| ObitErr * | ObitErrUnref (ObitErr *in) |
| Public: Unreference object, destroy if no more references. | |
| void | ObitErrClear (ObitErr *in) |
| Public: Clear error stack. | |
| void | ObitErrClearErr (ObitErr *in) |
| Public: Clear only error messages and status in stack. | |
| void | ObitErrPush (ObitErr *in, ObitErrCode errLevel, gchar *errMsg) |
| Public: Add entry in error stack. | |
| void | ObitErrPop (ObitErr *in, ObitErrCode *errLevel, gchar **errMsg) |
| Public: Pop last entry from top of stack. | |
| void | ObitErrLog (ObitErr *in) |
| Public: Write all entries in log file. | |
| gboolean | ObitErrIsA (ObitErr *in) |
| Public: Returns true if input is a ObitErr*. | |
This is an error stack class for obtaining tracebacks for error conditions. When an error is detected, it should be entered onto the ObitErr and the function returns. Each function with an ObitErr argument should check at the beginning to see if an error condition already exists (number > 0) and if so return. Any function calling a function which encounters an error should add its message to the stack and return. Numerous macroes assist with use of the ObitErr.
A number of macroes are defined to simplify managing the error stack. Implementation uses a glib GQueue.
|
|
Value: G_STMT_START{ \
while (fits_read_errmsg(err->buffer)) \
ObitErrPush (err, OBIT_Error, err->buffer); \
fits_clear_errmsg(); }G_STMT_END
Clears cfitsio error stack when done
|
|
|
Value: G_STMT_START{ \
g_snprintf (err->buffer, OBITERRBUFSIZE, format); \
ObitErrPush (err, errCode, err->buffer); \
if (errCode>OBIT_Traceback) { \
g_snprintf (err->buffer, OBITERRBUFSIZE, \
" This occured at file %s: line %d (%s)", \
__FILE__, __LINE__, __PRETTY_FUNCTION__); \
ObitErrPush (err, OBIT_Error, err->buffer); \
} \
}G_STMT_END
|
|
|
Value: G_STMT_START{ \
g_snprintf (err->buffer, OBITERRBUFSIZE, format); \
ObitErrPush (err, errCode, err->buffer); \
}G_STMT_END
|
|
|
Value: G_STMT_START{ \
if (expr) { } else { \
g_snprintf (err->buffer, OBITERRBUFSIZE, format); \
ObitErrPush (err, OBIT_Error, err->buffer); \
g_snprintf (err->buffer, OBITERRBUFSIZE, \
" Occured at file %s: line %d (%s)", \
__FILE__, __LINE__, __PRETTY_FUNCTION__); \
ObitErrPush (err, OBIT_Error, err->buffer); \
return; \
} }G_STMT_END
Evaluates expression and if false, adds errMsg to err log the location and then return (no return value). \ li expr = expression to evaluate
|
|
|
Value: G_STMT_START{ \
if (expr) { } else { \
g_snprintf (err->buffer, OBITERRBUFSIZE, format); \
ObitErrPush (err, OBIT_Error, err->buffer); \
g_snprintf (err->buffer, OBITERRBUFSIZE, \
" Occured at file %s: line %d (%s)", \
__FILE__, __LINE__, __PRETTY_FUNCTION__); \
ObitErrPush (err, OBIT_Error, err->buffer); \
return out; \
} }G_STMT_END
Evaluates expression and if false, adds errMsg to err log the location and then return, passing out if nonNULL.
|
|
|
Value: G_STMT_START{ \
g_snprintf (err->buffer, OBITERRBUFSIZE, \
"Traceback: routine %s: object %s", me, name); \
ObitErrPush (err, OBIT_Traceback, err->buffer); \
g_snprintf (err->buffer, OBITERRBUFSIZE, \
" Occured at file %s: line %d (%s)", \
__FILE__, __LINE__, __PRETTY_FUNCTION__); \
ObitErrPush (err, OBIT_Traceback, err->buffer); \
return; \
}G_STMT_END
Writes traceback info and returns (no return value).
|
|
|
Value: G_STMT_START{ \
g_snprintf (err->buffer, OBITERRBUFSIZE, \
"Traceback: routine %s: object %s", me, name); \
ObitErrPush (err, OBIT_Traceback, err->buffer); \
g_snprintf (err->buffer, OBITERRBUFSIZE, \
" at file %s: line %d (%s)", \
__FILE__, __LINE__, __PRETTY_FUNCTION__); \
ObitErrPush (err, OBIT_Traceback, err->buffer); \
return out; \
}G_STMT_END
|
|
|
Size of message buffer in characters.
|
|
|
enum for error codes. Should be coordinated with ObitErrorLevelString in ObitErr.c. |
|
|
Public: Constructor.
|
|
|
Public: Clear error stack.
|
|
|
Public: Clear only error messages and status in stack.
|
|
|
Public: Returns true if input is a ObitErr*.
|
|
|
Public: Write all entries in log file. Stack will be cleared when done
|
|
||||||||||||||||
|
Public: Pop last entry from top of stack. This item is then removed.
|
|
||||||||||||||||
|
Public: Add entry in error stack.
|
|
|
Public: Reference to object, update reference count. This function should always be used to copy pointers as this will ensure a proper reference count.
|
|
|
Public: Unreference object, destroy if no more references.
|
1.3.9.1