Blame gnulib-local/lib/libxml/xmlIO.in.h

Packit 5b56b6
/*
Packit 5b56b6
 * Summary: interface for the I/O interfaces used by the parser
Packit 5b56b6
 * Description: interface for the I/O interfaces used by the parser
Packit 5b56b6
 *
Packit 5b56b6
 * Copy: See Copyright for the status of this software.
Packit 5b56b6
 *
Packit 5b56b6
 * Author: Daniel Veillard
Packit 5b56b6
 */
Packit 5b56b6
Packit 5b56b6
#ifndef __XML_IO_H__
Packit 5b56b6
#define __XML_IO_H__
Packit 5b56b6
Packit 5b56b6
#include <stdio.h>
Packit 5b56b6
#include <libxml/xmlversion.h>
Packit 5b56b6
Packit 5b56b6
#ifdef __cplusplus
Packit 5b56b6
extern "C" {
Packit 5b56b6
#endif
Packit 5b56b6
Packit 5b56b6
/*
Packit 5b56b6
 * Those are the functions and datatypes for the parser input
Packit 5b56b6
 * I/O structures.
Packit 5b56b6
 */
Packit 5b56b6
Packit 5b56b6
/**
Packit 5b56b6
 * xmlInputMatchCallback:
Packit 5b56b6
 * @filename: the filename or URI
Packit 5b56b6
 *
Packit 5b56b6
 * Callback used in the I/O Input API to detect if the current handler
Packit 5b56b6
 * can provide input fonctionnalities for this resource.
Packit 5b56b6
 *
Packit 5b56b6
 * Returns 1 if yes and 0 if another Input module should be used
Packit 5b56b6
 */
Packit 5b56b6
typedef int (XMLCALL *xmlInputMatchCallback) (char const *filename);
Packit 5b56b6
/**
Packit 5b56b6
 * xmlInputOpenCallback:
Packit 5b56b6
 * @filename: the filename or URI
Packit 5b56b6
 *
Packit 5b56b6
 * Callback used in the I/O Input API to open the resource
Packit 5b56b6
 *
Packit 5b56b6
 * Returns an Input context or NULL in case or error
Packit 5b56b6
 */
Packit 5b56b6
typedef void * (XMLCALL *xmlInputOpenCallback) (char const *filename);
Packit 5b56b6
/**
Packit 5b56b6
 * xmlInputReadCallback:
Packit 5b56b6
 * @context:  an Input context
Packit 5b56b6
 * @buffer:  the buffer to store data read
Packit 5b56b6
 * @len:  the length of the buffer in bytes
Packit 5b56b6
 *
Packit 5b56b6
 * Callback used in the I/O Input API to read the resource
Packit 5b56b6
 *
Packit 5b56b6
 * Returns the number of bytes read or -1 in case of error
Packit 5b56b6
 */
Packit 5b56b6
typedef int (XMLCALL *xmlInputReadCallback) (void * context, char * buffer, int len);
Packit 5b56b6
/**
Packit 5b56b6
 * xmlInputCloseCallback:
Packit 5b56b6
 * @context:  an Input context
Packit 5b56b6
 *
Packit 5b56b6
 * Callback used in the I/O Input API to close the resource
Packit 5b56b6
 *
Packit 5b56b6
 * Returns 0 or -1 in case of error
Packit 5b56b6
 */
Packit 5b56b6
typedef int (XMLCALL *xmlInputCloseCallback) (void * context);
Packit 5b56b6
Packit 5b56b6
#ifdef LIBXML_OUTPUT_ENABLED
Packit 5b56b6
/*
Packit 5b56b6
 * Those are the functions and datatypes for the library output
Packit 5b56b6
 * I/O structures.
Packit 5b56b6
 */
Packit 5b56b6
Packit 5b56b6
/**
Packit 5b56b6
 * xmlOutputMatchCallback:
Packit 5b56b6
 * @filename: the filename or URI
Packit 5b56b6
 *
Packit 5b56b6
 * Callback used in the I/O Output API to detect if the current handler
Packit 5b56b6
 * can provide output fonctionnalities for this resource.
Packit 5b56b6
 *
Packit 5b56b6
 * Returns 1 if yes and 0 if another Output module should be used
Packit 5b56b6
 */
Packit 5b56b6
typedef int (XMLCALL *xmlOutputMatchCallback) (char const *filename);
Packit 5b56b6
/**
Packit 5b56b6
 * xmlOutputOpenCallback:
Packit 5b56b6
 * @filename: the filename or URI
Packit 5b56b6
 *
Packit 5b56b6
 * Callback used in the I/O Output API to open the resource
Packit 5b56b6
 *
Packit 5b56b6
 * Returns an Output context or NULL in case or error
Packit 5b56b6
 */
Packit 5b56b6
typedef void * (XMLCALL *xmlOutputOpenCallback) (char const *filename);
Packit 5b56b6
/**
Packit 5b56b6
 * xmlOutputWriteCallback:
Packit 5b56b6
 * @context:  an Output context
Packit 5b56b6
 * @buffer:  the buffer of data to write
Packit 5b56b6
 * @len:  the length of the buffer in bytes
Packit 5b56b6
 *
Packit 5b56b6
 * Callback used in the I/O Output API to write to the resource
Packit 5b56b6
 *
Packit 5b56b6
 * Returns the number of bytes written or -1 in case of error
Packit 5b56b6
 */
Packit 5b56b6
typedef int (XMLCALL *xmlOutputWriteCallback) (void * context, const char * buffer,
Packit 5b56b6
                                       int len);
Packit 5b56b6
/**
Packit 5b56b6
 * xmlOutputCloseCallback:
Packit 5b56b6
 * @context:  an Output context
Packit 5b56b6
 *
Packit 5b56b6
 * Callback used in the I/O Output API to close the resource
Packit 5b56b6
 *
Packit 5b56b6
 * Returns 0 or -1 in case of error
Packit 5b56b6
 */
Packit 5b56b6
typedef int (XMLCALL *xmlOutputCloseCallback) (void * context);
Packit 5b56b6
#endif /* LIBXML_OUTPUT_ENABLED */
Packit 5b56b6
Packit 5b56b6
#ifdef __cplusplus
Packit 5b56b6
}
Packit 5b56b6
#endif
Packit 5b56b6
Packit 5b56b6
#include <libxml/globals.h>
Packit 5b56b6
#include <libxml/tree.h>
Packit 5b56b6
#include <libxml/parser.h>
Packit 5b56b6
#include <libxml/encoding.h>
Packit 5b56b6
Packit 5b56b6
#ifdef __cplusplus
Packit 5b56b6
extern "C" {
Packit 5b56b6
#endif
Packit 5b56b6
struct _xmlParserInputBuffer {
Packit 5b56b6
    void*                  context;
Packit 5b56b6
    xmlInputReadCallback   readcallback;
Packit 5b56b6
    xmlInputCloseCallback  closecallback;
Packit 5b56b6
Packit 5b56b6
    xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */
Packit 5b56b6
Packit 5b56b6
    xmlBufPtr buffer;    /* Local buffer encoded in UTF-8 */
Packit 5b56b6
    xmlBufPtr raw;       /* if encoder != NULL buffer for raw input */
Packit 5b56b6
    int	compressed;	    /* -1=unknown, 0=not compressed, 1=compressed */
Packit 5b56b6
    int error;
Packit 5b56b6
    unsigned long rawconsumed;/* amount consumed from raw */
Packit 5b56b6
};
Packit 5b56b6
Packit 5b56b6
Packit 5b56b6
#ifdef LIBXML_OUTPUT_ENABLED
Packit 5b56b6
struct _xmlOutputBuffer {
Packit 5b56b6
    void*                   context;
Packit 5b56b6
    xmlOutputWriteCallback  writecallback;
Packit 5b56b6
    xmlOutputCloseCallback  closecallback;
Packit 5b56b6
Packit 5b56b6
    xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */
Packit 5b56b6
Packit 5b56b6
    xmlBufPtr buffer;    /* Local buffer encoded in UTF-8 or ISOLatin */
Packit 5b56b6
    xmlBufPtr conv;      /* if encoder != NULL buffer for output */
Packit 5b56b6
    int written;            /* total number of byte written */
Packit 5b56b6
    int error;
Packit 5b56b6
};
Packit 5b56b6
#endif /* LIBXML_OUTPUT_ENABLED */
Packit 5b56b6
Packit 5b56b6
/*
Packit 5b56b6
 * Interfaces for input
Packit 5b56b6
 */
Packit 5b56b6
XMLPUBFUN void XMLCALL
Packit 5b56b6
	xmlCleanupInputCallbacks		(void);
Packit 5b56b6
Packit 5b56b6
XMLPUBFUN int XMLCALL
Packit 5b56b6
	xmlPopInputCallbacks			(void);
Packit 5b56b6
Packit 5b56b6
XMLPUBFUN void XMLCALL
Packit 5b56b6
	xmlRegisterDefaultInputCallbacks	(void);
Packit 5b56b6
XMLPUBFUN xmlParserInputBufferPtr XMLCALL
Packit 5b56b6
	xmlAllocParserInputBuffer		(xmlCharEncoding enc);
Packit 5b56b6
Packit 5b56b6
XMLPUBFUN xmlParserInputBufferPtr XMLCALL
Packit 5b56b6
	xmlParserInputBufferCreateFilename	(const char *URI,
Packit 5b56b6
                                                 xmlCharEncoding enc);
Packit 5b56b6
XMLPUBFUN xmlParserInputBufferPtr XMLCALL
Packit 5b56b6
	xmlParserInputBufferCreateFile		(FILE *file,
Packit 5b56b6
                                                 xmlCharEncoding enc);
Packit 5b56b6
XMLPUBFUN xmlParserInputBufferPtr XMLCALL
Packit 5b56b6
	xmlParserInputBufferCreateFd		(int fd,
Packit 5b56b6
	                                         xmlCharEncoding enc);
Packit 5b56b6
XMLPUBFUN xmlParserInputBufferPtr XMLCALL
Packit 5b56b6
	xmlParserInputBufferCreateMem		(const char *mem, int size,
Packit 5b56b6
	                                         xmlCharEncoding enc);
Packit 5b56b6
XMLPUBFUN xmlParserInputBufferPtr XMLCALL
Packit 5b56b6
	xmlParserInputBufferCreateStatic	(const char *mem, int size,
Packit 5b56b6
	                                         xmlCharEncoding enc);
Packit 5b56b6
XMLPUBFUN xmlParserInputBufferPtr XMLCALL
Packit 5b56b6
	xmlParserInputBufferCreateIO		(xmlInputReadCallback   ioread,
Packit 5b56b6
						 xmlInputCloseCallback  ioclose,
Packit 5b56b6
						 void *ioctx,
Packit 5b56b6
	                                         xmlCharEncoding enc);
Packit 5b56b6
XMLPUBFUN int XMLCALL
Packit 5b56b6
	xmlParserInputBufferRead		(xmlParserInputBufferPtr in,
Packit 5b56b6
						 int len);
Packit 5b56b6
XMLPUBFUN int XMLCALL
Packit 5b56b6
	xmlParserInputBufferGrow		(xmlParserInputBufferPtr in,
Packit 5b56b6
						 int len);
Packit 5b56b6
XMLPUBFUN int XMLCALL
Packit 5b56b6
	xmlParserInputBufferPush		(xmlParserInputBufferPtr in,
Packit 5b56b6
						 int len,
Packit 5b56b6
						 const char *buf);
Packit 5b56b6
XMLPUBFUN void XMLCALL
Packit 5b56b6
	xmlFreeParserInputBuffer		(xmlParserInputBufferPtr in);
Packit 5b56b6
XMLPUBFUN char * XMLCALL
Packit 5b56b6
	xmlParserGetDirectory			(const char *filename);
Packit 5b56b6
Packit 5b56b6
XMLPUBFUN int XMLCALL
Packit 5b56b6
	xmlRegisterInputCallbacks		(xmlInputMatchCallback matchFunc,
Packit 5b56b6
						 xmlInputOpenCallback openFunc,
Packit 5b56b6
						 xmlInputReadCallback readFunc,
Packit 5b56b6
						 xmlInputCloseCallback closeFunc);
Packit 5b56b6
Packit 5b56b6
xmlParserInputBufferPtr
Packit 5b56b6
	__xmlParserInputBufferCreateFilename(const char *URI,
Packit 5b56b6
						xmlCharEncoding enc);
Packit 5b56b6
Packit 5b56b6
#ifdef LIBXML_OUTPUT_ENABLED
Packit 5b56b6
/*
Packit 5b56b6
 * Interfaces for output
Packit 5b56b6
 */
Packit 5b56b6
XMLPUBFUN void XMLCALL
Packit 5b56b6
	xmlCleanupOutputCallbacks		(void);
Packit 5b56b6
XMLPUBFUN void XMLCALL
Packit 5b56b6
	xmlRegisterDefaultOutputCallbacks(void);
Packit 5b56b6
XMLPUBFUN xmlOutputBufferPtr XMLCALL
Packit 5b56b6
	xmlAllocOutputBuffer		(xmlCharEncodingHandlerPtr encoder);
Packit 5b56b6
Packit 5b56b6
XMLPUBFUN xmlOutputBufferPtr XMLCALL
Packit 5b56b6
	xmlOutputBufferCreateFilename	(const char *URI,
Packit 5b56b6
					 xmlCharEncodingHandlerPtr encoder,
Packit 5b56b6
					 int compression);
Packit 5b56b6
Packit 5b56b6
XMLPUBFUN xmlOutputBufferPtr XMLCALL
Packit 5b56b6
	xmlOutputBufferCreateFile	(FILE *file,
Packit 5b56b6
					 xmlCharEncodingHandlerPtr encoder);
Packit 5b56b6
Packit 5b56b6
XMLPUBFUN xmlOutputBufferPtr XMLCALL
Packit 5b56b6
	xmlOutputBufferCreateBuffer	(xmlBufferPtr buffer,
Packit 5b56b6
					 xmlCharEncodingHandlerPtr encoder);
Packit 5b56b6
Packit 5b56b6
XMLPUBFUN xmlOutputBufferPtr XMLCALL
Packit 5b56b6
	xmlOutputBufferCreateFd		(int fd,
Packit 5b56b6
					 xmlCharEncodingHandlerPtr encoder);
Packit 5b56b6
Packit 5b56b6
XMLPUBFUN xmlOutputBufferPtr XMLCALL
Packit 5b56b6
	xmlOutputBufferCreateIO		(xmlOutputWriteCallback   iowrite,
Packit 5b56b6
					 xmlOutputCloseCallback  ioclose,
Packit 5b56b6
					 void *ioctx,
Packit 5b56b6
					 xmlCharEncodingHandlerPtr encoder);
Packit 5b56b6
Packit 5b56b6
/* Couple of APIs to get the output without digging into the buffers */
Packit 5b56b6
XMLPUBFUN const xmlChar * XMLCALL
Packit 5b56b6
        xmlOutputBufferGetContent       (xmlOutputBufferPtr out);
Packit 5b56b6
XMLPUBFUN size_t XMLCALL
Packit 5b56b6
        xmlOutputBufferGetSize          (xmlOutputBufferPtr out);
Packit 5b56b6
Packit 5b56b6
XMLPUBFUN int XMLCALL
Packit 5b56b6
	xmlOutputBufferWrite		(xmlOutputBufferPtr out,
Packit 5b56b6
					 int len,
Packit 5b56b6
					 const char *buf);
Packit 5b56b6
XMLPUBFUN int XMLCALL
Packit 5b56b6
	xmlOutputBufferWriteString	(xmlOutputBufferPtr out,
Packit 5b56b6
					 const char *str);
Packit 5b56b6
XMLPUBFUN int XMLCALL
Packit 5b56b6
	xmlOutputBufferWriteEscape	(xmlOutputBufferPtr out,
Packit 5b56b6
					 const xmlChar *str,
Packit 5b56b6
					 xmlCharEncodingOutputFunc escaping);
Packit 5b56b6
Packit 5b56b6
XMLPUBFUN int XMLCALL
Packit 5b56b6
	xmlOutputBufferFlush		(xmlOutputBufferPtr out);
Packit 5b56b6
XMLPUBFUN int XMLCALL
Packit 5b56b6
	xmlOutputBufferClose		(xmlOutputBufferPtr out);
Packit 5b56b6
Packit 5b56b6
XMLPUBFUN int XMLCALL
Packit 5b56b6
	xmlRegisterOutputCallbacks	(xmlOutputMatchCallback matchFunc,
Packit 5b56b6
					 xmlOutputOpenCallback openFunc,
Packit 5b56b6
					 xmlOutputWriteCallback writeFunc,
Packit 5b56b6
					 xmlOutputCloseCallback closeFunc);
Packit 5b56b6
Packit 5b56b6
xmlOutputBufferPtr
Packit 5b56b6
	__xmlOutputBufferCreateFilename(const char *URI,
Packit 5b56b6
                              xmlCharEncodingHandlerPtr encoder,
Packit 5b56b6
                              int compression);
Packit 5b56b6
Packit 5b56b6
#ifdef LIBXML_HTTP_ENABLED
Packit 5b56b6
/*  This function only exists if HTTP support built into the library  */
Packit 5b56b6
XMLPUBFUN void XMLCALL
Packit 5b56b6
	xmlRegisterHTTPPostCallbacks	(void );
Packit 5b56b6
#endif /* LIBXML_HTTP_ENABLED */
Packit 5b56b6
Packit 5b56b6
#endif /* LIBXML_OUTPUT_ENABLED */
Packit 5b56b6
Packit 5b56b6
XMLPUBFUN xmlParserInputPtr XMLCALL
Packit 5b56b6
	xmlCheckHTTPInput		(xmlParserCtxtPtr ctxt,
Packit 5b56b6
					 xmlParserInputPtr ret);
Packit 5b56b6
Packit 5b56b6
/*
Packit 5b56b6
 * A predefined entity loader disabling network accesses
Packit 5b56b6
 */
Packit 5b56b6
XMLPUBFUN xmlParserInputPtr XMLCALL
Packit 5b56b6
	xmlNoNetExternalEntityLoader	(const char *URL,
Packit 5b56b6
					 const char *ID,
Packit 5b56b6
					 xmlParserCtxtPtr ctxt);
Packit 5b56b6
Packit 5b56b6
/*
Packit 5b56b6
 * xmlNormalizeWindowsPath is obsolete, don't use it.
Packit 5b56b6
 * Check xmlCanonicPath in uri.h for a better alternative.
Packit 5b56b6
 */
Packit 5b56b6
XMLPUBFUN xmlChar * XMLCALL
Packit 5b56b6
	xmlNormalizeWindowsPath		(const xmlChar *path);
Packit 5b56b6
Packit 5b56b6
XMLPUBFUN int XMLCALL
Packit 5b56b6
	xmlCheckFilename		(const char *path);
Packit 5b56b6
/**
Packit 5b56b6
 * Default 'file://' protocol callbacks
Packit 5b56b6
 */
Packit 5b56b6
XMLPUBFUN int XMLCALL
Packit 5b56b6
	xmlFileMatch			(const char *filename);
Packit 5b56b6
XMLPUBFUN void * XMLCALL
Packit 5b56b6
	xmlFileOpen			(const char *filename);
Packit 5b56b6
XMLPUBFUN int XMLCALL
Packit 5b56b6
	xmlFileRead			(void * context,
Packit 5b56b6
					 char * buffer,
Packit 5b56b6
					 int len);
Packit 5b56b6
XMLPUBFUN int XMLCALL
Packit 5b56b6
	xmlFileClose			(void * context);
Packit 5b56b6
Packit 5b56b6
/**
Packit 5b56b6
 * Default 'http://' protocol callbacks
Packit 5b56b6
 */
Packit 5b56b6
#ifdef LIBXML_HTTP_ENABLED
Packit 5b56b6
XMLPUBFUN int XMLCALL
Packit 5b56b6
	xmlIOHTTPMatch			(const char *filename);
Packit 5b56b6
XMLPUBFUN void * XMLCALL
Packit 5b56b6
	xmlIOHTTPOpen			(const char *filename);
Packit 5b56b6
#ifdef LIBXML_OUTPUT_ENABLED
Packit 5b56b6
XMLPUBFUN void * XMLCALL
Packit 5b56b6
	xmlIOHTTPOpenW			(const char * post_uri,
Packit 5b56b6
					 int   compression );
Packit 5b56b6
#endif /* LIBXML_OUTPUT_ENABLED */
Packit 5b56b6
XMLPUBFUN int XMLCALL
Packit 5b56b6
	xmlIOHTTPRead			(void * context,
Packit 5b56b6
					 char * buffer,
Packit 5b56b6
					 int len);
Packit 5b56b6
XMLPUBFUN int XMLCALL
Packit 5b56b6
	xmlIOHTTPClose			(void * context);
Packit 5b56b6
#endif /* LIBXML_HTTP_ENABLED */
Packit 5b56b6
Packit 5b56b6
/**
Packit 5b56b6
 * Default 'ftp://' protocol callbacks
Packit 5b56b6
 */
Packit 5b56b6
#ifdef LIBXML_FTP_ENABLED
Packit 5b56b6
XMLPUBFUN int XMLCALL
Packit 5b56b6
	xmlIOFTPMatch			(const char *filename);
Packit 5b56b6
XMLPUBFUN void * XMLCALL
Packit 5b56b6
	xmlIOFTPOpen			(const char *filename);
Packit 5b56b6
XMLPUBFUN int XMLCALL
Packit 5b56b6
	xmlIOFTPRead			(void * context,
Packit 5b56b6
					 char * buffer,
Packit 5b56b6
					 int len);
Packit 5b56b6
XMLPUBFUN int XMLCALL
Packit 5b56b6
	xmlIOFTPClose			(void * context);
Packit 5b56b6
#endif /* LIBXML_FTP_ENABLED */
Packit 5b56b6
Packit 5b56b6
#ifdef __cplusplus
Packit 5b56b6
}
Packit 5b56b6
#endif
Packit 5b56b6
Packit 5b56b6
#endif /* __XML_IO_H__ */