libxml2 Reference Manual |
---|
xmlmodule
xmlmodule - dynamic module loading
basic API for dynamic module loading, used by libexslt added in 2.6.17
Author(s): Joel W. Reed
Synopsis
typedef struct _xmlModule xmlModule; typedef xmlModule * xmlModulePtr; typedef enum xmlModuleOption; int xmlModuleFree (xmlModulePtr module); int xmlModuleSymbol (xmlModulePtr module,
const char * name,
void ** symbol); xmlModulePtr xmlModuleOpen (const char * name,
int options); int xmlModuleClose (xmlModulePtr module);
Description
Details
Structure xmlModule
struct _xmlModule { The content of this structure is not made public by the API. } xmlModule;
Enum xmlModuleOption
enum xmlModuleOption { XML_MODULE_LAZY = 1 /* lazy binding */ XML_MODULE_LOCAL = 2 /* local binding */ };
xmlModuleClose ()
int xmlModuleClose (xmlModulePtr module)
The close operations unload the associated module and free the data associated to the module.
module: | the module handle |
Returns: | 0 in case of success, -1 in case of argument error and -2 if the module could not be closed/unloaded. |
xmlModuleFree ()
int xmlModuleFree (xmlModulePtr module)
The free operations free the data associated to the module but does not unload the associated shared library which may still be in use.
module: | the module handle |
Returns: | 0 in case of success, -1 in case of argument error |
xmlModuleOpen ()
xmlModulePtr xmlModuleOpen (const char * name,
int options)
Opens a module/shared library given its name or path NOTE: that due to portability issues, behaviour can only be guaranteed with @name using ASCII. We cannot guarantee that an UTF-8 string would work, which is why name is a const char * and not a const xmlChar * . TODO: options are not yet implemented.
name: | the module name |
options: | a set of xmlModuleOption |
Returns: | a handle for the module or NULL in case of error |
xmlModuleSymbol ()
int xmlModuleSymbol (xmlModulePtr module,
const char * name,
void ** symbol)
Lookup for a symbol address in the given module NOTE: that due to portability issues, behaviour can only be guaranteed with @name using ASCII. We cannot guarantee that an UTF-8 string would work, which is why name is a const char * and not a const xmlChar * .
module: | the module |
name: | the name of the symbol |
symbol: | the resulting symbol address |
Returns: | 0 if the symbol was found, or -1 in case of error |