1 /* 2 * Summary: dynamic module loading 3 * Description: basic API for dynamic module loading, used by 4 * libexslt added in 2.6.17 5 * 6 * Copy: See Copyright for the status of this software. 7 * 8 * Author: Joel W. Reed 9 */ 10 11 #ifndef __XML_MODULE_H__ 12 #define __XML_MODULE_H__ 13 14 #include <libxml/xmlversion.h> 15 16 #ifdef LIBXML_MODULES_ENABLED 17 18 #ifdef __cplusplus 19 extern "C" { 20 #endif 21 22 /** 23 * xmlModulePtr: 24 * 25 * A handle to a dynamically loaded module 26 */ 27 typedef struct _xmlModule xmlModule; 28 typedef xmlModule *xmlModulePtr; 29 30 /** 31 * xmlModuleOption: 32 * 33 * enumeration of options that can be passed down to xmlModuleOpen() 34 */ 35 typedef enum { 36 XML_MODULE_LAZY = 1, /* lazy binding */ 37 XML_MODULE_LOCAL= 2 /* local binding */ 38 } xmlModuleOption; 39 40 XMLPUBFUN xmlModulePtr XMLCALL xmlModuleOpen (const char *filename, 41 int options); 42 43 XMLPUBFUN int XMLCALL xmlModuleSymbol (xmlModulePtr module, 44 const char* name, 45 void **result); 46 47 XMLPUBFUN int XMLCALL xmlModuleClose (xmlModulePtr module); 48 49 XMLPUBFUN int XMLCALL xmlModuleFree (xmlModulePtr module); 50 51 #ifdef __cplusplus 52 } 53 #endif 54 55 #endif /* LIBXML_MODULES_ENABLED */ 56 57 #endif /*__XML_MODULE_H__ */ 58