Globus Error API.
More...
#include "globus_object.h"
#include "globus_module.h"
#include <stdarg.h>
Go to the source code of this file.
|
globus_module_descriptor_t * | globus_error_get_source (globus_object_t *error) |
|
void | globus_error_set_source (globus_object_t *error, globus_module_descriptor_t *source_module) |
|
globus_object_t * | globus_error_get_cause (globus_object_t *error) |
|
void | globus_error_set_cause (globus_object_t *error, globus_object_t *causal_error) |
|
int | globus_error_get_type (globus_object_t *error) |
|
void | globus_error_set_type (globus_object_t *error, const int type) |
|
char * | globus_error_get_short_desc (globus_object_t *error) |
|
void | globus_error_set_short_desc (globus_object_t *error, const char *short_desc_format,...) |
|
char * | globus_error_get_long_desc (globus_object_t *error) |
|
void | globus_error_set_long_desc (globus_object_t *error, const char *long_desc_format,...) |
|
globus_bool_t | globus_error_match (globus_object_t *error, globus_module_descriptor_t *module, int type) |
|
char * | globus_error_print_chain (globus_object_t *error) |
|
char * | globus_error_print_friendly (globus_object_t *error) |
|
globus_object_t * | globus_error_construct_multiple (globus_module_descriptor_t *base_source, int type, const char *fmt,...) |
|
void | globus_error_mutliple_add_chain (globus_object_t *multiple_error, globus_object_t *chain, const char *fmt,...) |
|
globus_object_t * | globus_error_multiple_remove_chain (globus_object_t *multiple_error) |
|
typedef char*(* globus_error_print_friendly_t)(globus_object_t *error, const globus_object_type_t *type) |
If registered with a module's descriptor, this handler will be called on behalf of globus_error_print_friendly()
- Parameters
-
error | The error chain that originated from this module. The top error object in the chain will be one created by this module and have a type of 'type'; The remaining objects are the same as the cause chain used at creation time. The user can use globus_error_get_type(error) to get the error code (for GLOBUS_ERROR_TYPE_GLOBUS objects) |
type | The error object type for the top object in the error chain (e.g. GLOBUS_ERROR_TYPE_GLOBUS, GLOBUS_ERROR_TYPE_ERRNO) |
- Returns
- The function should return a newly allocated string with a friendly error message explaining the error in more detail. This string should be considered the only message a user will see. If the module has nothing nice to say, it should return NULL so the next module in the error chain can be tried.
If you think a friendly error from causes beneath you should be included, you may use globus_error_print_friendly(globus_error_get_cause(error)) within this handler to append to your message.
Multiple error type stuff Construct a container object for multiple error chains. Useful when an application tries many things (and each fails) before finally giving up;
Use globus_error_mutliple_add_chain() to add error objects/chains to this object.
- Parameters
-
base_source | Pointer to the originating module. |
type | The error type. We may reserve part of this namespace for common errors. Errors not in this space are assumed to be local to the originating module. globus_error_match() will match against this type, but not of the contained chains. |
fmt | a printf style format string describing the multiple errors |
- Returns
- The resulting error object. It is the user's responsibility to eventually free this object using globus_object_free(). A globus_result_t may be obtained by calling globus_error_put() on this object.
globus_object_t* globus_error_multiple_remove_chain |
( |
globus_object_t * |
multiple_error | ) |
|
Remove an error chain from a multiple error object.
- Parameters
-
- Returns
- The removed error chain, or NULL if none found.
void globus_error_mutliple_add_chain |
( |
globus_object_t * |
multiple_error, |
|
|
globus_object_t * |
chain, |
|
|
const char * |
fmt, |
|
|
|
... |
|
) |
| |
Add an error chain to a multiple error object.
- Parameters
-
multiple_error | The error to add the chain to. Must have been created with globus_error_construct_multiple() |
chain | The chain to add to this error. This error object assumes control over 'chain''s memory after this call. |
fmt | a printf style format string describing this chain |
- Returns
- void