Home | History | Annotate | Download | only in libxml
      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