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
19extern "C" {
20#endif
21
22/**
23 * xmlModulePtr:
24 *
25 * A handle to a dynamically loaded module
26 */
27typedef struct _xmlModule xmlModule;
28typedef xmlModule *xmlModulePtr;
29
30/**
31 * xmlModuleOption:
32 *
33 * enumeration of options that can be passed down to xmlModuleOpen()
34 */
35typedef enum {
36    XML_MODULE_LAZY = 1,	/* lazy binding */
37    XML_MODULE_LOCAL= 2		/* local binding */
38} xmlModuleOption;
39
40XMLPUBFUN xmlModulePtr XMLCALL xmlModuleOpen	(const char *filename,
41						 int options);
42
43XMLPUBFUN int XMLCALL xmlModuleSymbol		(xmlModulePtr module,
44						 const char* name,
45						 void **result);
46
47XMLPUBFUN int XMLCALL xmlModuleClose		(xmlModulePtr module);
48
49XMLPUBFUN 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