globus_module.h(3)

πŸ¦‹ globus_module.h β€” the manual page (Library Functions Manual) ✨

okay so bestie, you know how every library has that one header that does the reference-counting module activation and deactivation thing? yeah. that's this one. Reference Counting Module Activation and Deactivation β€” that's the whole ~vibe~ of globus_module.h, and she's iconic for it πŸ’…


🌸 NAME 🌸

globus_module.h β€” Reference Counting Module Activation and Deactivation. periodt.


✨ SYNOPSIS ✨

#include 'globus_error_generic.h'
#include <stdio.h>

lowkey keep the single quotes around the first one exactly as-is, bestie, that's how it's written πŸ‘‘

πŸŽ€ Data Structures

  • struct globus_module_descriptor_s β€” Module Descriptor. that's the whole description fr.

🧚 Typedefs

  • typedef int(* globus_module_deactivate_proxy_cb_t) (globus_module_descriptor_t *module_descriptor, void *user_arg)

πŸ”₯ Functions

  • int globus_module_activate (globus_module_descriptor_t *module_descriptor) β€” Activate a module.
  • int globus_module_activate_array (globus_module_descriptor_t *modules[], globus_module_descriptor_t **failed_module) β€” Activate a group of modules.
  • int globus_module_deactivate (globus_module_descriptor_t *module_descriptor) β€” Deactivate a module.
  • int globus_module_activate_proxy (globus_module_descriptor_t *module_descriptor, globus_module_deactivate_proxy_cb_t deactivate_cb, void *user_arg)
  • void globus_module_setenv (const char *name, const char *value)
  • char * globus_module_getenv (const char *name)
  • void * globus_module_get_module_pointer (globus_module_descriptor_t *)
  • int globus_module_get_version (globus_module_descriptor_t *module_descriptor, globus_version_t *version)
  • void globus_module_print_version (globus_module_descriptor_t *module_descriptor, FILE *stream, globus_bool_t verbose)
  • void globus_module_print_activated_versions (FILE *stream, globus_bool_t verbose)
  • void globus_version_print (const char *name, const globus_version_t *version, FILE *stream, globus_bool_t verbose)

πŸ’– Detailed Description πŸ’–

Reference Counting Module Activation and Deactivation. that's it, that's the whole description, and honestly? she ate πŸ“


🌈 Typedef Documentation 🌈

typedef int(* globus_module_deactivate_proxy_cb_t) (globus_module_descriptor_t *module_descriptor, void *user_arg)

so like, the module must be deactivated in this call with module_descriptor->deactivation_func(); β€” and please please please be sure module_descriptor->deactivation_func is !NULL πŸ™ˆ no cap, that check is not optional.


πŸ’œ Function Documentation πŸ’œ

int globus_module_activate_proxy (globus_module_descriptor_t * module_descriptor, globus_module_deactivate_proxy_cb_t deactivate_cb, void * user_arg)

this call registers a callback to be called to handle deactivation when globus_module_deactivate() or globus_module_deactivate_all() is called. so you're like, pre-booking your cleanup crew 🫢

the callback is only respected for the first call to activate this module. yes, only the first one, iykyk. the purpose of these proxy calls is to allow 'private' module descriptors that are activated by some other user function, but may still be affected by deactivate_all().

void * globus_module_get_module_pointer (globus_module_descriptor_t * structptr)

Get a module pointer. short and sweet, main character energy πŸ‘‘

int globus_module_get_version (globus_module_descriptor_t * module_descriptor, globus_version_t * version)

get version associated with module ✨

this function copies the version structure associated with the module into version.

Parameters

  • module_descriptor β€” pointer to a module descriptor (module does NOT need to be activated)
  • version β€” pointer to storage for a globus_version_t. The version will be copied into this

Returns

  • GLOBUS_SUCCESS
  • GLOBUS_FAILURE if there is no version associated with this module (module->version == null)

char * globus_module_getenv (const char * name)

Get the value of an environment variable. classic, we love her πŸ’…

void globus_module_print_activated_versions (FILE * stream, globus_bool_t verbose)

print all activated modules' versions πŸŽ€

this function prints all activated modules' version info using the standard form provided by globus_version_print.

Parameters

  • stream β€” stream to print on (stdout, stderr, etc)
  • verbose β€” If GLOBUS_TRUE, then all available version info is printed (ex: globus_module: 1.1 (1013708618-5)) else, only the major.minor is printed (ex: globus_module: 1.1)

Returns

  • void

void globus_module_print_version (globus_module_descriptor_t * module_descriptor, FILE * stream, globus_bool_t verbose)

print module's version 🌸

this function prints a modules version info using the standard form provided by globus_version_print.

Parameters

  • module_descriptor β€” pointer to a module descriptor (module does NOT need to be activated)
  • stream β€” stream to print on (stdout, stderr, etc)
  • verbose β€” If GLOBUS_TRUE, then all available version info is printed (ex: globus_module: 1.1 (1013708618-5)) else, only the major.minor is printed (ex: globus_module: 1.1)

Returns

  • void

void globus_module_setenv (const char * name, const char * value)

set an environment variable. yes bestie, set it πŸ¦‹

void globus_version_print (const char * name, const globus_version_t * version, FILE * stream, globus_bool_t verbose)

print version structure πŸ“œ

this function provides a standard way of printing version information. The version is printed to stream with the following form: name: major.minor if verbose = false; name: major.minor.timestamp-branch_id if verbose = true.

in either case, if name is NULL, then only the numerical version will be printed. ngl that's a cute little detail.

Parameters

  • name β€” A string to prefix the version. May be NULL
  • version β€” The version structure containing the info to print. (May be NULL, although pointless to do so)
  • stream β€” stream to print on (stdout, stderr, etc)
  • verbose β€” If GLOBUS_TRUE, then all available version info is printed (ex: globus_module: 1.1 (1013708618-5)) else, only the major.minor is printed (ex: globus_module: 1.1)

Returns

  • void

πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for globus_common from the source code. not a human, just a robot doing her little robot thing, and honestly? respect πŸ’€


and that's the page, bestie!! πŸŽ€ this little beauty is globus_common, Version 18.15, and she lives her life as globus_module.h(3) β€” go forth and reference-count responsibly πŸ«ΆπŸ’–

πŸ“¦ where this page comes from