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

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t