imgtools/imgcheck/libxml/xmlIO.h
changeset 0 044383f39525
equal deleted inserted replaced
-1:000000000000 0:044383f39525
       
     1 /*
       
     2  * Summary: interface for the I/O interfaces used by the parser
       
     3  * Description: interface for the I/O interfaces used by the parser
       
     4  *
       
     5  * Copy: See Copyright for the status of this software.
       
     6  *
       
     7  * Author: Daniel Veillard
       
     8  */
       
     9 
       
    10 #ifndef __XML_IO_H__
       
    11 #define __XML_IO_H__
       
    12 
       
    13 #include <stdio.h>
       
    14 #include <libxml/xmlversion.h>
       
    15 
       
    16 #ifdef __cplusplus
       
    17 extern "C" {
       
    18 #endif
       
    19 
       
    20 /*
       
    21  * Those are the functions and datatypes for the parser input
       
    22  * I/O structures.
       
    23  */
       
    24 
       
    25 /**
       
    26  * xmlInputMatchCallback:
       
    27  * @filename: the filename or URI
       
    28  *
       
    29  * Callback used in the I/O Input API to detect if the current handler 
       
    30  * can provide input fonctionnalities for this resource.
       
    31  *
       
    32  * Returns 1 if yes and 0 if another Input module should be used
       
    33  */
       
    34 typedef int (XMLCALL *xmlInputMatchCallback) (char const *filename);
       
    35 /**
       
    36  * xmlInputOpenCallback:
       
    37  * @filename: the filename or URI
       
    38  *
       
    39  * Callback used in the I/O Input API to open the resource
       
    40  *
       
    41  * Returns an Input context or NULL in case or error
       
    42  */
       
    43 typedef void * (XMLCALL *xmlInputOpenCallback) (char const *filename);
       
    44 /**
       
    45  * xmlInputReadCallback:
       
    46  * @context:  an Input context
       
    47  * @buffer:  the buffer to store data read
       
    48  * @len:  the length of the buffer in bytes
       
    49  *
       
    50  * Callback used in the I/O Input API to read the resource
       
    51  *
       
    52  * Returns the number of bytes read or -1 in case of error
       
    53  */
       
    54 typedef int (XMLCALL *xmlInputReadCallback) (void * context, char * buffer, int len);
       
    55 /**
       
    56  * xmlInputCloseCallback:
       
    57  * @context:  an Input context
       
    58  *
       
    59  * Callback used in the I/O Input API to close the resource
       
    60  *
       
    61  * Returns 0 or -1 in case of error
       
    62  */
       
    63 typedef int (XMLCALL *xmlInputCloseCallback) (void * context);
       
    64 
       
    65 #ifdef LIBXML_OUTPUT_ENABLED
       
    66 /*
       
    67  * Those are the functions and datatypes for the library output
       
    68  * I/O structures.
       
    69  */
       
    70 
       
    71 /**
       
    72  * xmlOutputMatchCallback:
       
    73  * @filename: the filename or URI
       
    74  *
       
    75  * Callback used in the I/O Output API to detect if the current handler 
       
    76  * can provide output fonctionnalities for this resource.
       
    77  *
       
    78  * Returns 1 if yes and 0 if another Output module should be used
       
    79  */
       
    80 typedef int (XMLCALL *xmlOutputMatchCallback) (char const *filename);
       
    81 /**
       
    82  * xmlOutputOpenCallback:
       
    83  * @filename: the filename or URI
       
    84  *
       
    85  * Callback used in the I/O Output API to open the resource
       
    86  *
       
    87  * Returns an Output context or NULL in case or error
       
    88  */
       
    89 typedef void * (XMLCALL *xmlOutputOpenCallback) (char const *filename);
       
    90 /**
       
    91  * xmlOutputWriteCallback:
       
    92  * @context:  an Output context
       
    93  * @buffer:  the buffer of data to write
       
    94  * @len:  the length of the buffer in bytes
       
    95  *
       
    96  * Callback used in the I/O Output API to write to the resource
       
    97  *
       
    98  * Returns the number of bytes written or -1 in case of error
       
    99  */
       
   100 typedef int (XMLCALL *xmlOutputWriteCallback) (void * context, const char * buffer,
       
   101                                        int len);
       
   102 /**
       
   103  * xmlOutputCloseCallback:
       
   104  * @context:  an Output context
       
   105  *
       
   106  * Callback used in the I/O Output API to close the resource
       
   107  *
       
   108  * Returns 0 or -1 in case of error
       
   109  */
       
   110 typedef int (XMLCALL *xmlOutputCloseCallback) (void * context);
       
   111 #endif /* LIBXML_OUTPUT_ENABLED */
       
   112 
       
   113 #ifdef __cplusplus
       
   114 }
       
   115 #endif
       
   116 
       
   117 #include <libxml/globals.h>
       
   118 #include <libxml/tree.h>
       
   119 #include <libxml/parser.h>
       
   120 #include <libxml/encoding.h>
       
   121 
       
   122 #ifdef __cplusplus
       
   123 extern "C" {
       
   124 #endif
       
   125 struct _xmlParserInputBuffer {
       
   126     void*                  context;
       
   127     xmlInputReadCallback   readcallback;
       
   128     xmlInputCloseCallback  closecallback;
       
   129     
       
   130     xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */
       
   131     
       
   132     xmlBufferPtr buffer;    /* Local buffer encoded in UTF-8 */
       
   133     xmlBufferPtr raw;       /* if encoder != NULL buffer for raw input */
       
   134     int	compressed;	    /* -1=unknown, 0=not compressed, 1=compressed */
       
   135     int error;
       
   136     unsigned long rawconsumed;/* amount consumed from raw */
       
   137 };
       
   138 
       
   139 
       
   140 #ifdef LIBXML_OUTPUT_ENABLED
       
   141 struct _xmlOutputBuffer {
       
   142     void*                   context;
       
   143     xmlOutputWriteCallback  writecallback;
       
   144     xmlOutputCloseCallback  closecallback;
       
   145     
       
   146     xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */
       
   147     
       
   148     xmlBufferPtr buffer;    /* Local buffer encoded in UTF-8 or ISOLatin */
       
   149     xmlBufferPtr conv;      /* if encoder != NULL buffer for output */
       
   150     int written;            /* total number of byte written */
       
   151     int error;
       
   152 };
       
   153 #endif /* LIBXML_OUTPUT_ENABLED */
       
   154 
       
   155 /*
       
   156  * Interfaces for input
       
   157  */
       
   158 XMLPUBFUN void XMLCALL	
       
   159 	xmlCleanupInputCallbacks		(void);
       
   160 
       
   161 XMLPUBFUN int XMLCALL
       
   162 	xmlPopInputCallbacks			(void);
       
   163 
       
   164 XMLPUBFUN void XMLCALL	
       
   165 	xmlRegisterDefaultInputCallbacks	(void);
       
   166 XMLPUBFUN xmlParserInputBufferPtr XMLCALL
       
   167 	xmlAllocParserInputBuffer		(xmlCharEncoding enc);
       
   168 
       
   169 XMLPUBFUN xmlParserInputBufferPtr XMLCALL
       
   170 	xmlParserInputBufferCreateFilename	(const char *URI,
       
   171                                                  xmlCharEncoding enc);
       
   172 XMLPUBFUN xmlParserInputBufferPtr XMLCALL
       
   173 	xmlParserInputBufferCreateFile		(FILE *file,
       
   174                                                  xmlCharEncoding enc);
       
   175 XMLPUBFUN xmlParserInputBufferPtr XMLCALL
       
   176 	xmlParserInputBufferCreateFd		(int fd,
       
   177 	                                         xmlCharEncoding enc);
       
   178 XMLPUBFUN xmlParserInputBufferPtr XMLCALL
       
   179 	xmlParserInputBufferCreateMem		(const char *mem, int size,
       
   180 	                                         xmlCharEncoding enc);
       
   181 XMLPUBFUN xmlParserInputBufferPtr XMLCALL
       
   182 	xmlParserInputBufferCreateStatic	(const char *mem, int size,
       
   183 	                                         xmlCharEncoding enc);
       
   184 XMLPUBFUN xmlParserInputBufferPtr XMLCALL
       
   185 	xmlParserInputBufferCreateIO		(xmlInputReadCallback   ioread,
       
   186 						 xmlInputCloseCallback  ioclose,
       
   187 						 void *ioctx,
       
   188 	                                         xmlCharEncoding enc);
       
   189 XMLPUBFUN int XMLCALL	
       
   190 	xmlParserInputBufferRead		(xmlParserInputBufferPtr in,
       
   191 						 int len);
       
   192 XMLPUBFUN int XMLCALL	
       
   193 	xmlParserInputBufferGrow		(xmlParserInputBufferPtr in,
       
   194 						 int len);
       
   195 XMLPUBFUN int XMLCALL	
       
   196 	xmlParserInputBufferPush		(xmlParserInputBufferPtr in,
       
   197 						 int len,
       
   198 						 const char *buf);
       
   199 XMLPUBFUN void XMLCALL	
       
   200 	xmlFreeParserInputBuffer		(xmlParserInputBufferPtr in);
       
   201 XMLPUBFUN char * XMLCALL	
       
   202 	xmlParserGetDirectory			(const char *filename);
       
   203 
       
   204 XMLPUBFUN int XMLCALL     
       
   205 	xmlRegisterInputCallbacks		(xmlInputMatchCallback matchFunc,
       
   206 						 xmlInputOpenCallback openFunc,
       
   207 						 xmlInputReadCallback readFunc,
       
   208 						 xmlInputCloseCallback closeFunc);
       
   209 
       
   210 xmlParserInputBufferPtr
       
   211 	__xmlParserInputBufferCreateFilename(const char *URI,
       
   212 										xmlCharEncoding enc);
       
   213 
       
   214 #ifdef LIBXML_OUTPUT_ENABLED
       
   215 /*
       
   216  * Interfaces for output
       
   217  */
       
   218 XMLPUBFUN void XMLCALL	
       
   219 	xmlCleanupOutputCallbacks		(void);
       
   220 XMLPUBFUN void XMLCALL	
       
   221 	xmlRegisterDefaultOutputCallbacks(void);
       
   222 XMLPUBFUN xmlOutputBufferPtr XMLCALL
       
   223 	xmlAllocOutputBuffer		(xmlCharEncodingHandlerPtr encoder);
       
   224 
       
   225 XMLPUBFUN xmlOutputBufferPtr XMLCALL
       
   226 	xmlOutputBufferCreateFilename	(const char *URI,
       
   227 					 xmlCharEncodingHandlerPtr encoder,
       
   228 					 int compression);
       
   229 
       
   230 XMLPUBFUN xmlOutputBufferPtr XMLCALL
       
   231 	xmlOutputBufferCreateFile	(FILE *file,
       
   232 					 xmlCharEncodingHandlerPtr encoder);
       
   233 
       
   234 XMLPUBFUN xmlOutputBufferPtr XMLCALL
       
   235 	xmlOutputBufferCreateBuffer	(xmlBufferPtr buffer,
       
   236 					 xmlCharEncodingHandlerPtr encoder);
       
   237 
       
   238 XMLPUBFUN xmlOutputBufferPtr XMLCALL
       
   239 	xmlOutputBufferCreateFd		(int fd,
       
   240 					 xmlCharEncodingHandlerPtr encoder);
       
   241 
       
   242 XMLPUBFUN xmlOutputBufferPtr XMLCALL
       
   243 	xmlOutputBufferCreateIO		(xmlOutputWriteCallback   iowrite,
       
   244 					 xmlOutputCloseCallback  ioclose,
       
   245 					 void *ioctx,
       
   246 					 xmlCharEncodingHandlerPtr encoder);
       
   247 
       
   248 XMLPUBFUN int XMLCALL	
       
   249 	xmlOutputBufferWrite		(xmlOutputBufferPtr out,
       
   250 					 int len,
       
   251 					 const char *buf);
       
   252 XMLPUBFUN int XMLCALL	
       
   253 	xmlOutputBufferWriteString	(xmlOutputBufferPtr out,
       
   254 					 const char *str);
       
   255 XMLPUBFUN int XMLCALL	
       
   256 	xmlOutputBufferWriteEscape	(xmlOutputBufferPtr out,
       
   257 					 const xmlChar *str,
       
   258 					 xmlCharEncodingOutputFunc escaping);
       
   259 
       
   260 XMLPUBFUN int XMLCALL	
       
   261 	xmlOutputBufferFlush		(xmlOutputBufferPtr out);
       
   262 XMLPUBFUN int XMLCALL	
       
   263 	xmlOutputBufferClose		(xmlOutputBufferPtr out);
       
   264 
       
   265 XMLPUBFUN int XMLCALL     
       
   266 	xmlRegisterOutputCallbacks	(xmlOutputMatchCallback matchFunc,
       
   267 					 xmlOutputOpenCallback openFunc,
       
   268 					 xmlOutputWriteCallback writeFunc,
       
   269 					 xmlOutputCloseCallback closeFunc);
       
   270 
       
   271 xmlOutputBufferPtr
       
   272 	__xmlOutputBufferCreateFilename(const char *URI,
       
   273                               xmlCharEncodingHandlerPtr encoder,
       
   274                               int compression);
       
   275 
       
   276 #ifdef LIBXML_HTTP_ENABLED
       
   277 /*  This function only exists if HTTP support built into the library  */
       
   278 XMLPUBFUN void XMLCALL	
       
   279 	xmlRegisterHTTPPostCallbacks	(void );
       
   280 #endif /* LIBXML_HTTP_ENABLED */
       
   281 	
       
   282 #endif /* LIBXML_OUTPUT_ENABLED */
       
   283 
       
   284 XMLPUBFUN xmlParserInputPtr XMLCALL
       
   285 	xmlCheckHTTPInput		(xmlParserCtxtPtr ctxt,
       
   286 					 xmlParserInputPtr ret);
       
   287 
       
   288 /*
       
   289  * A predefined entity loader disabling network accesses
       
   290  */
       
   291 XMLPUBFUN xmlParserInputPtr XMLCALL 
       
   292 	xmlNoNetExternalEntityLoader	(const char *URL,
       
   293 					 const char *ID,
       
   294 					 xmlParserCtxtPtr ctxt);
       
   295 
       
   296 /* 
       
   297  * xmlNormalizeWindowsPath is obsolete, don't use it. 
       
   298  * Check xmlCanonicPath in uri.h for a better alternative.
       
   299  */
       
   300 XMLPUBFUN xmlChar * XMLCALL 
       
   301 	xmlNormalizeWindowsPath		(const xmlChar *path);
       
   302 
       
   303 XMLPUBFUN int XMLCALL	
       
   304 	xmlCheckFilename		(const char *path);
       
   305 /**
       
   306  * Default 'file://' protocol callbacks 
       
   307  */
       
   308 XMLPUBFUN int XMLCALL	
       
   309 	xmlFileMatch 			(const char *filename);
       
   310 XMLPUBFUN void * XMLCALL	
       
   311 	xmlFileOpen 			(const char *filename);
       
   312 XMLPUBFUN int XMLCALL	
       
   313 	xmlFileRead 			(void * context, 
       
   314 					 char * buffer, 
       
   315 					 int len);
       
   316 XMLPUBFUN int XMLCALL	
       
   317 	xmlFileClose 			(void * context);
       
   318 
       
   319 /**
       
   320  * Default 'http://' protocol callbacks 
       
   321  */
       
   322 #ifdef LIBXML_HTTP_ENABLED
       
   323 XMLPUBFUN int XMLCALL	
       
   324 	xmlIOHTTPMatch 			(const char *filename);
       
   325 XMLPUBFUN void * XMLCALL	
       
   326 	xmlIOHTTPOpen 			(const char *filename);
       
   327 #ifdef LIBXML_OUTPUT_ENABLED
       
   328 XMLPUBFUN void * XMLCALL	
       
   329 	xmlIOHTTPOpenW			(const char * post_uri,
       
   330 					 int   compression );
       
   331 #endif /* LIBXML_OUTPUT_ENABLED */
       
   332 XMLPUBFUN int XMLCALL 	
       
   333 	xmlIOHTTPRead			(void * context, 
       
   334 					 char * buffer, 
       
   335 					 int len);
       
   336 XMLPUBFUN int XMLCALL	
       
   337 	xmlIOHTTPClose 			(void * context);
       
   338 #endif /* LIBXML_HTTP_ENABLED */
       
   339 
       
   340 /**
       
   341  * Default 'ftp://' protocol callbacks 
       
   342  */
       
   343 #ifdef LIBXML_FTP_ENABLED 
       
   344 XMLPUBFUN int XMLCALL	
       
   345 	xmlIOFTPMatch 			(const char *filename);
       
   346 XMLPUBFUN void * XMLCALL	
       
   347 	xmlIOFTPOpen 			(const char *filename);
       
   348 XMLPUBFUN int XMLCALL 	
       
   349 	xmlIOFTPRead			(void * context, 
       
   350 					 char * buffer, 
       
   351 					 int len);
       
   352 XMLPUBFUN int XMLCALL 	
       
   353 	xmlIOFTPClose 			(void * context);
       
   354 #endif /* LIBXML_FTP_ENABLED */
       
   355 
       
   356 #ifdef __cplusplus
       
   357 }
       
   358 #endif
       
   359 
       
   360 #endif /* __XML_IO_H__ */