• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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