|
|
- /*
- * 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 __cplusplus
- extern "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 __cplusplus
- extern "C" {
- #endif
- struct _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_ENABLED
- struct _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_ENABLED
- XMLPUBFUN int XMLCALL
- xmlIOHTTPMatch (const char *filename);
- XMLPUBFUN void * XMLCALL
- xmlIOHTTPOpen (const char *filename);
- #ifdef LIBXML_OUTPUT_ENABLED
- XMLPUBFUN 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_ENABLED
- XMLPUBFUN 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__ */
|