Grid Community Toolkit  6.2.1629922860 (tag: v6.2.20210826)
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Typedefs | Functions
globus_error_generic.h File Reference

Globus Error API. More...

#include "globus_object.h"
#include "globus_module.h"
#include <stdarg.h>

Go to the source code of this file.

Macros

#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_tglobus_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)
 

Detailed Description

Globus Error API.

Typedef Documentation

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
errorThe 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)
typeThe 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.

Function Documentation

globus_object_t* globus_error_construct_multiple ( globus_module_descriptor_t base_source,
int  type,
const char *  fmt,
  ... 
)

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_sourcePointer to the originating module.
typeThe 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.
fmta 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
multiple_errorThe 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.
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_errorThe error to add the chain to. Must have been created with globus_error_construct_multiple()
chainThe chain to add to this error. This error object assumes control over 'chain''s memory after this call.
fmta printf style format string describing this chain
Returns
void