blob: 8f4a56035b8797e775f521b25029483139336135 [file] [log] [blame]
Daniel Veillardce1648b2005-01-04 15:10:22 +00001/*
2 * Summary: dynamic module loading
3 * Description: basic API for dynamic module loading, used by
Daniel Veillardf6b71bd2005-01-04 17:50:14 +00004 * libexslt added in 2.6.17
Daniel Veillardce1648b2005-01-04 15:10:22 +00005 *
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
Daniel Veillard48df9612005-01-04 21:50:05 +000030/**
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;
Daniel Veillardce1648b2005-01-04 15:10:22 +000039
Daniel Veillard48df9612005-01-04 21:50:05 +000040XMLPUBFUN xmlModulePtr XMLCALL xmlModuleOpen (const char *filename,
41 int options);
Daniel Veillardce1648b2005-01-04 15:10:22 +000042
Daniel Veillard48df9612005-01-04 21:50:05 +000043XMLPUBFUN int XMLCALL xmlModuleSymbol (xmlModulePtr module,
44 const char* name,
45 void **result);
Daniel Veillardce1648b2005-01-04 15:10:22 +000046
Daniel Veillard48df9612005-01-04 21:50:05 +000047XMLPUBFUN int XMLCALL xmlModuleClose (xmlModulePtr module);
Daniel Veillardce1648b2005-01-04 15:10:22 +000048
Daniel Veillard48df9612005-01-04 21:50:05 +000049XMLPUBFUN int XMLCALL xmlModuleFree (xmlModulePtr module);
Daniel Veillardce1648b2005-01-04 15:10:22 +000050
51#ifdef __cplusplus
52}
53#endif
54
55#endif /* LIBXML_MODULES_ENABLED */
56
57#endif /*__XML_MODULE_H__ */