/ libxml2 / include / libxml / xmlmodule.h
xmlmodule.h
 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__ */