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