#include "globus_object.h"
#include "globus_module.h"
#include <stdarg.h>
Go to the source code of this file.
Defines | |
#define | GLOBUS_ERROR_TYPE_GLOBUS |
Typedefs | |
typedef char *(*) | globus_error_print_friendly_t (globus_object_t *error, const globus_object_type_t *type) |
Functions | |
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()
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) |
globus_object_t* globus_error_construct_multiple | ( | globus_module_descriptor_t * | base_source, | |
int | type, | |||
const char * | fmt, | |||
... | ||||
) |
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.
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 |
globus_object_t* globus_error_multiple_remove_chain | ( | globus_object_t * | multiple_error | ) |
Remove an error chain from a multiple error object.
multiple_error | The error from which to remove a chain. Must have been created with globus_error_construct_multiple() |
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.
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 |