globus_extension.h(3)
π NAME π
globus_extension.h β Globus Extension Modules. That's the whole thing bestie, it's a header for extension modules, and yes it's part of the Library Functions Manual section of your man pages. π«Ά
π¦ SYNOPSIS π¦
okay so first you gotta pull in the headers, no cap:
#include 'globus_common_include.h'
#include 'globus_module.h'
#include 'globus_hashtable.h'
πΈ Macros
#define GlobusExtensionDefineModule(name)
β¨ Functions
int globus_extension_activate (const char *extension_name)
void * globus_extension_lookup (globus_extension_handle_t *handle,
globus_extension_registry_t *registry, void *symbol)
int globus_extension_register_builtin (const char *extension_name,
globus_module_descriptor_t *module_descriptor)
π Detailed Description π
Globus Extension Modules. Literally what it says on the tin. The whole file is about extension modules, and that's the vibe. π
π Macro Definition Documentation π
#define GlobusExtensionDefineModule( name)
Value, periodt:
globus_module_descriptor_t name##_module
Declare your module with the following, bestie. It's giving very straightforward:
Ex: GlobusExtensionDefineModule(my_module) = { "my_module", globus_l_my_module_activate, globus_l_my_module_deactivate, NULL, NULL, &local_version };
π Function Documentation π
int globus_extension_activate (const char * extension_name)
This one loads the shared library libextension_name_flavor.so from $GLOBUS_LOCATION/lib (or other location in LD_LIBRARY_PATH) and activates the module defined within. slay. β¨
heads up: In the future, a configuration file will be supported allowing arbitrary extension names to be mapped to a specific library name. Not now tho. π°οΈ
Also, when builtin (compiled in) extensions are supported, this will activate those directly without needing to load the library. Future vibes only. π
Search order, in order, no skipping:
- extension_name in mappings hash XXX not implemented
- mapped name in builtin hash XXX not implemented
- mapped name in dll hash XXX not implemented
- load mapped name XXX not implemented
- mapped name in dll hash XXX not implemented
- mapped name in builtin hash XXX not implemented
- extension_name in builtin hash
- extension_name in dll hash
- load library if(strchr(extension_name, '/'))
- concatenate / + dirname(extension_name) + /lib + basename(extension_name) + _<flavor>.so to $GLOBUS_LOCATION/lib and each search path in mappings file XXX not implemented (eg, for extension_name == wsrf/services/CounterService, load $GLOBUS_LOCATION/lib/wsrf/services/libCounterService_gcc32dbg.so)
- lib + basename(entension_name) + _flavor.so subject to LD_LIBRARY_PATH else
- load libextension_name_build_flavor subject to LD_LIBRARY_PATH
void * globus_extension_lookup (globus_extension_handle_t * handle, globus_extension_registry_t * registry, void * symbol)
Get the datum associated with symbol in this registry. π
bestie this one is important: You MUST callglobus_extension_release()when you are done using the data. thelookup()andrelease()calls handle the reference counting that prevents an extension from being unloaded while things it provides are being used. Do NOT callrelease()until you are done accessing the data from * thelookup()call.
release() could potentially block as a result of module deactivation and unloading. ensuring that globus_extension_deactivate() is not called with outstanding references will prevent that. π
symbol is a char * by default. the key can be changed by calling globus_extension_registry_set_hashing() before it is accessed. π§
int globus_extension_register_builtin (const char * extension_name, globus_module_descriptor_t * module_descriptor)
hopefully in the future, these functions will only be needed by generated code. manifesting that for us fr fr. π
π Author π
Generated automatically by Doxygen for globus_common from the source code. iconic behaviour honestly. π
and that's a wrap, bestie π this was globus_extension.h(3), brought to you by globus_common, Version 18.15. go forth and activate some modules, you absolute legend πβ¨
π¦ where this page comes from
- fedora 44: globus-common-doc 18.15-2.fc44 Β· Apache-2.0
- ubuntu resolute: libglobus-common-doc 18.15-1 Β· Apache-2.0
- ubuntu stonking: libglobus-common-doc 18.15-2 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms