Globus error api.
#include 'globus_object.h'
#include 'globus_module.h'
#include <stdarg.h>
#define GLOBUS_ERROR_TYPE_GLOBUS
typedef char *(* globus_error_print_friendly_t )(globus_object_t *error, const globus_object_type_t *type)
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)
Globus Error API.
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.
Remove an error chain from a multiple error object.
Parameters:
multiple_error The error from which to remove a chain. Must have been created with globus_error_construct_multiple()
Returns:
The removed error chain, or NULL if none found.
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
Generated automatically by Doxygen for globus_common from the source code.