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__ */