globus_error_generic.h(3)

πŸ’– globus_error_generic.h(3) πŸ’–

Okay bestie, welcome to the Library Functions Manual page for globus_error_generic.h β€” it’s giving Globus Error API, and it’s lowkey iconic. 🫢


🌸 NAME 🌸

globus_error_generic.h β€” Globus Error API.

✨ SYNOPSIS ✨

First, include the things, exactly like this:

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

πŸŽ€ 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_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)

πŸ’œ Detailed Description πŸ’œ

Globus Error API.

That’s the whole detailed description, and honestly? Minimalist queen behavior. ✨

🌈 Typedef Documentation 🌈

🧚 globus_error_print_friendly_t 🧚

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.

πŸ”₯ Function Documentation πŸ”₯

πŸ‘‘ globus_error_construct_multiple πŸ‘‘

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_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_error_multiple_remove_chain 🫢

globus_object_t * globus_error_multiple_remove_chain (globus_object_t
    *multiple_error)

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.

πŸ’€ globus_error_mutliple_add_chain πŸ’€

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.

Yes, the spelling mutliple is exactly how it appears in the original β€” keep it, bestie. πŸ’…

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

🌸 Author 🌸

Generated automatically by Doxygen for globus_common from the source code.


That’s the whole page, bestie! Source/version vibes: globus_common, Version 18.15, and the page is globus_error_generic.h(3). Mwah! πŸ’‹

πŸ“¦ where this page comes from