/*
 * tclxml-libxml2Decls.h --
 *
 *      Declarations of functions in the platform independent public TCLXML/libxml2 API.
 *
 */

#ifndef _TCLXMLLIBXML2DECLS
#define _TCLXMLLIBXML2DECLS

/*
 * WARNING: The contents of this file is automatically generated by the
 * genStubs.tcl script. Any modifications to the function declarations
 * below should be made in the tcllibxml2.decls script.
 */

#include "docObj.h"
#include <libxml/xmlerror.h>

/* !BEGIN!: Do not edit below this line. */

/*
 * Exported function declarations:
 */

/* 0 */
EXTERN int		Tclxml_libxml2_Init _ANSI_ARGS_((Tcl_Interp * interp));
/* Slot 1 is reserved */
/* 2 */
EXTERN int		TclXML_libxml2_InitDocObj _ANSI_ARGS_((
				Tcl_Interp * interp));
/* 3 */
EXTERN Tcl_Obj *	TclXML_libxml2_NewDocObj _ANSI_ARGS_((
				Tcl_Interp * interp));
/* 4 */
EXTERN Tcl_Obj *	TclXML_libxml2_CreateObjFromDoc _ANSI_ARGS_((
				xmlDocPtr docPtr));
/* 5 */
EXTERN int		TclXML_libxml2_GetDocFromObj _ANSI_ARGS_((
				Tcl_Interp * interp, Tcl_Obj * objPtr, 
				xmlDocPtr * docPtr));
/* 6 */
EXTERN int		TclXML_libxml2_GetTclDocFromObj _ANSI_ARGS_((
				Tcl_Interp * interp, Tcl_Obj * objPtr, 
				TclXML_libxml2_Document ** tDocPtrPtr));
/* 7 */
EXTERN int		TclXML_libxml2_GetTclDocFromNode _ANSI_ARGS_((
				Tcl_Interp * interp, xmlNodePtr nodePtr, 
				TclXML_libxml2_Document ** tDocPtrPtr));
/* 8 */
EXTERN void		TclXML_libxml2_DestroyDocument _ANSI_ARGS_((
				TclXML_libxml2_Document * tDocPtr));
/* 9 */
EXTERN void		TclXML_libxml2_DocKeep _ANSI_ARGS_((Tcl_Obj * objPtr, 
				TclXML_libxml2_DocumentHandling keep));
/* 10 */
EXTERN void		TclXML_libxml2_ErrorHandler _ANSI_ARGS_((void * ctx, 
				xmlErrorPtr error));
/* 11 */
EXTERN void		TclXML_libxml2_ResetError _ANSI_ARGS_((
				Tcl_Interp * interp));
/* 12 */
EXTERN Tcl_Obj *	TclXML_libxml2_GetErrorObj _ANSI_ARGS_((
				Tcl_Interp * interp));
/* 13 */
EXTERN void		TclXML_libxml2_SetErrorNodeFunc _ANSI_ARGS_((
				Tcl_Interp * interp, 
				TclXML_ErrorNodeHandlerProc * proc));
/* 14 */
EXTERN int		TclXML_libxml2_GetTclDocFromDoc _ANSI_ARGS_((
				Tcl_Interp * interp, xmlDocPtr docPtr, 
				TclXML_libxml2_Document ** tDocPtrPtr));
/* 15 */
EXTERN Tcl_Obj *	TclXML_libxml2_GetBaseURIFromDoc _ANSI_ARGS_((
				xmlDocPtr docPtr));
/* 16 */
EXTERN int		TclXML_libxml2_SetBaseURI _ANSI_ARGS_((
							       Tcl_Interp * interp,
							       xmlDocPtr docPtr,
							       Tcl_Obj * uriObj));

typedef struct Tclxml_libxml2Stubs {
    int magic;
    struct Tclxml_libxml2StubHooks *hooks;

    int (*tclxml_libxml2_Init) _ANSI_ARGS_((Tcl_Interp * interp)); /* 0 */
    void *reserved1;
    int (*tclXML_libxml2_InitDocObj) _ANSI_ARGS_((Tcl_Interp * interp)); /* 2 */
    Tcl_Obj * (*tclXML_libxml2_NewDocObj) _ANSI_ARGS_((Tcl_Interp * interp)); /* 3 */
    Tcl_Obj * (*tclXML_libxml2_CreateObjFromDoc) _ANSI_ARGS_((xmlDocPtr docPtr)); /* 4 */
    int (*tclXML_libxml2_GetDocFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, xmlDocPtr * docPtr)); /* 5 */
    int (*tclXML_libxml2_GetTclDocFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, TclXML_libxml2_Document ** tDocPtrPtr)); /* 6 */
    int (*tclXML_libxml2_GetTclDocFromNode) _ANSI_ARGS_((Tcl_Interp * interp, xmlNodePtr nodePtr, TclXML_libxml2_Document ** tDocPtrPtr)); /* 7 */
    void (*tclXML_libxml2_DestroyDocument) _ANSI_ARGS_((TclXML_libxml2_Document * tDocPtr)); /* 8 */
    void (*tclXML_libxml2_DocKeep) _ANSI_ARGS_((Tcl_Obj * objPtr, TclXML_libxml2_DocumentHandling keep)); /* 9 */
    void (*tclXML_libxml2_ErrorHandler) _ANSI_ARGS_((void * ctx, xmlErrorPtr error)); /* 10 */
    void (*tclXML_libxml2_ResetError) _ANSI_ARGS_((Tcl_Interp * interp)); /* 11 */
    Tcl_Obj * (*tclXML_libxml2_GetErrorObj) _ANSI_ARGS_((Tcl_Interp * interp)); /* 12 */
    void (*tclXML_libxml2_SetErrorNodeFunc) _ANSI_ARGS_((Tcl_Interp * interp, TclXML_ErrorNodeHandlerProc * proc)); /* 13 */
} Tclxml_libxml2Stubs;

#ifdef __cplusplus
extern "C" {
#endif
extern Tclxml_libxml2Stubs *tclxml_libxml2StubsPtr;
#ifdef __cplusplus
}
#endif

#if defined(USE_TCLXML_LIBXML2_STUBS) && !defined(USE_TCLXML_LIBXML2_STUB_PROCS)

/*
 * Inline function declarations:
 */

#ifndef Tclxml_libxml2_Init
#define Tclxml_libxml2_Init \
	(tclxml_libxml2StubsPtr->tclxml_libxml2_Init) /* 0 */
#endif
/* Slot 1 is reserved */
#ifndef TclXML_libxml2_InitDocObj
#define TclXML_libxml2_InitDocObj \
	(tclxml_libxml2StubsPtr->tclXML_libxml2_InitDocObj) /* 2 */
#endif
#ifndef TclXML_libxml2_NewDocObj
#define TclXML_libxml2_NewDocObj \
	(tclxml_libxml2StubsPtr->tclXML_libxml2_NewDocObj) /* 3 */
#endif
#ifndef TclXML_libxml2_CreateObjFromDoc
#define TclXML_libxml2_CreateObjFromDoc \
	(tclxml_libxml2StubsPtr->tclXML_libxml2_CreateObjFromDoc) /* 4 */
#endif
#ifndef TclXML_libxml2_GetDocFromObj
#define TclXML_libxml2_GetDocFromObj \
	(tclxml_libxml2StubsPtr->tclXML_libxml2_GetDocFromObj) /* 5 */
#endif
#ifndef TclXML_libxml2_GetTclDocFromObj
#define TclXML_libxml2_GetTclDocFromObj \
	(tclxml_libxml2StubsPtr->tclXML_libxml2_GetTclDocFromObj) /* 6 */
#endif
#ifndef TclXML_libxml2_GetTclDocFromNode
#define TclXML_libxml2_GetTclDocFromNode \
	(tclxml_libxml2StubsPtr->tclXML_libxml2_GetTclDocFromNode) /* 7 */
#endif
#ifndef TclXML_libxml2_DestroyDocument
#define TclXML_libxml2_DestroyDocument \
	(tclxml_libxml2StubsPtr->tclXML_libxml2_DestroyDocument) /* 8 */
#endif
#ifndef TclXML_libxml2_DocKeep
#define TclXML_libxml2_DocKeep \
	(tclxml_libxml2StubsPtr->tclXML_libxml2_DocKeep) /* 9 */
#endif
#ifndef TclXML_libxml2_ErrorHandler
#define TclXML_libxml2_ErrorHandler \
	(tclxml_libxml2StubsPtr->tclXML_libxml2_ErrorHandler) /* 10 */
#endif
#ifndef TclXML_libxml2_ResetError
#define TclXML_libxml2_ResetError \
	(tclxml_libxml2StubsPtr->tclXML_libxml2_ResetError) /* 11 */
#endif
#ifndef TclXML_libxml2_GetErrorObj
#define TclXML_libxml2_GetErrorObj \
	(tclxml_libxml2StubsPtr->tclXML_libxml2_GetErrorObj) /* 12 */
#endif
#ifndef TclXML_libxml2_SetErrorNodeFunc
#define TclXML_libxml2_SetErrorNodeFunc \
	(tclxml_libxml2StubsPtr->tclXML_libxml2_SetErrorNodeFunc) /* 13 */
#endif

#endif /* defined(USE_TCLXML_LIBXML2_STUBS) && !defined(USE_TCLXML_LIBXML2_STUB_PROCS) */

/* !END!: Do not edit above this line. */

#endif /* _TCLXMLLLIBXML2DECLS */

