Eneboo - Documentación para desarrolladores
src/libdigidoc/libxml2/include/libxml/xmlIO.h
Ir a la documentación de este archivo.
00001 /*
00002  * Summary: interface for the I/O interfaces used by the parser
00003  * Description: interface for the I/O interfaces used by the parser
00004  *
00005  * Copy: See Copyright for the status of this software.
00006  *
00007  * Author: Daniel Veillard
00008  */
00009 
00010 #ifndef __XML_IO_H__
00011 #define __XML_IO_H__
00012 
00013 #include <stdio.h>
00014 #include <libxml/xmlversion.h>
00015 
00016 #ifdef __cplusplus
00017 extern "C" {
00018 #endif
00019 
00020 /*
00021  * Those are the functions and datatypes for the parser input
00022  * I/O structures.
00023  */
00024 
00034 typedef int (XMLCALL *xmlInputMatchCallback) (char const *filename);
00043 typedef void * (XMLCALL *xmlInputOpenCallback) (char const *filename);
00054 typedef int (XMLCALL *xmlInputReadCallback) (void * context, char * buffer, int len);
00063 typedef int (XMLCALL *xmlInputCloseCallback) (void * context);
00064 
00065 #ifdef LIBXML_OUTPUT_ENABLED
00066 /*
00067  * Those are the functions and datatypes for the library output
00068  * I/O structures.
00069  */
00070 
00080 typedef int (XMLCALL *xmlOutputMatchCallback) (char const *filename);
00089 typedef void * (XMLCALL *xmlOutputOpenCallback) (char const *filename);
00100 typedef int (XMLCALL *xmlOutputWriteCallback) (void * context, const char * buffer,
00101                                        int len);
00110 typedef int (XMLCALL *xmlOutputCloseCallback) (void * context);
00111 #endif /* LIBXML_OUTPUT_ENABLED */
00112 
00113 #ifdef __cplusplus
00114 }
00115 #endif
00116 
00117 #include <libxml/globals.h>
00118 #include <libxml/tree.h>
00119 #include <libxml/parser.h>
00120 #include <libxml/encoding.h>
00121 
00122 #ifdef __cplusplus
00123 extern "C" {
00124 #endif
00125 struct _xmlParserInputBuffer {
00126     void*                  context;
00127     xmlInputReadCallback   readcallback;
00128     xmlInputCloseCallback  closecallback;
00129     
00130     xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */
00131     
00132     xmlBufferPtr buffer;    /* Local buffer encoded in UTF-8 */
00133     xmlBufferPtr raw;       /* if encoder != NULL buffer for raw input */
00134     int compressed;         /* -1=unknown, 0=not compressed, 1=compressed */
00135     int error;
00136     unsigned long rawconsumed;/* amount consumed from raw */
00137 };
00138 
00139 
00140 #ifdef LIBXML_OUTPUT_ENABLED
00141 struct _xmlOutputBuffer {
00142     void*                   context;
00143     xmlOutputWriteCallback  writecallback;
00144     xmlOutputCloseCallback  closecallback;
00145     
00146     xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */
00147     
00148     xmlBufferPtr buffer;    /* Local buffer encoded in UTF-8 or ISOLatin */
00149     xmlBufferPtr conv;      /* if encoder != NULL buffer for output */
00150     int written;            /* total number of byte written */
00151     int error;
00152 };
00153 #endif /* LIBXML_OUTPUT_ENABLED */
00154 
00155 /*
00156  * Interfaces for input
00157  */
00158 XMLPUBFUN void XMLCALL  
00159         xmlCleanupInputCallbacks                (void);
00160 
00161 XMLPUBFUN int XMLCALL
00162         xmlPopInputCallbacks                    (void);
00163 
00164 XMLPUBFUN void XMLCALL  
00165         xmlRegisterDefaultInputCallbacks        (void);
00166 XMLPUBFUN xmlParserInputBufferPtr XMLCALL
00167         xmlAllocParserInputBuffer               (xmlCharEncoding enc);
00168 
00169 XMLPUBFUN xmlParserInputBufferPtr XMLCALL
00170         xmlParserInputBufferCreateFilename      (const char *URI,
00171                                                  xmlCharEncoding enc);
00172 XMLPUBFUN xmlParserInputBufferPtr XMLCALL
00173         xmlParserInputBufferCreateFile          (FILE *file,
00174                                                  xmlCharEncoding enc);
00175 XMLPUBFUN xmlParserInputBufferPtr XMLCALL
00176         xmlParserInputBufferCreateFd            (int fd,
00177                                                  xmlCharEncoding enc);
00178 XMLPUBFUN xmlParserInputBufferPtr XMLCALL
00179         xmlParserInputBufferCreateMem           (const char *mem, int size,
00180                                                  xmlCharEncoding enc);
00181 XMLPUBFUN xmlParserInputBufferPtr XMLCALL
00182         xmlParserInputBufferCreateStatic        (const char *mem, int size,
00183                                                  xmlCharEncoding enc);
00184 XMLPUBFUN xmlParserInputBufferPtr XMLCALL
00185         xmlParserInputBufferCreateIO            (xmlInputReadCallback   ioread,
00186                                                  xmlInputCloseCallback  ioclose,
00187                                                  void *ioctx,
00188                                                  xmlCharEncoding enc);
00189 XMLPUBFUN int XMLCALL   
00190         xmlParserInputBufferRead                (xmlParserInputBufferPtr in,
00191                                                  int len);
00192 XMLPUBFUN int XMLCALL   
00193         xmlParserInputBufferGrow                (xmlParserInputBufferPtr in,
00194                                                  int len);
00195 XMLPUBFUN int XMLCALL   
00196         xmlParserInputBufferPush                (xmlParserInputBufferPtr in,
00197                                                  int len,
00198                                                  const char *buf);
00199 XMLPUBFUN void XMLCALL  
00200         xmlFreeParserInputBuffer                (xmlParserInputBufferPtr in);
00201 XMLPUBFUN char * XMLCALL        
00202         xmlParserGetDirectory                   (const char *filename);
00203 
00204 XMLPUBFUN int XMLCALL     
00205         xmlRegisterInputCallbacks               (xmlInputMatchCallback matchFunc,
00206                                                  xmlInputOpenCallback openFunc,
00207                                                  xmlInputReadCallback readFunc,
00208                                                  xmlInputCloseCallback closeFunc);
00209 
00210 xmlParserInputBufferPtr
00211         __xmlParserInputBufferCreateFilename(const char *URI,
00212                                                                                 xmlCharEncoding enc);
00213 
00214 #ifdef LIBXML_OUTPUT_ENABLED
00215 /*
00216  * Interfaces for output
00217  */
00218 XMLPUBFUN void XMLCALL  
00219         xmlCleanupOutputCallbacks               (void);
00220 XMLPUBFUN void XMLCALL  
00221         xmlRegisterDefaultOutputCallbacks(void);
00222 XMLPUBFUN xmlOutputBufferPtr XMLCALL
00223         xmlAllocOutputBuffer            (xmlCharEncodingHandlerPtr encoder);
00224 
00225 XMLPUBFUN xmlOutputBufferPtr XMLCALL
00226         xmlOutputBufferCreateFilename   (const char *URI,
00227                                          xmlCharEncodingHandlerPtr encoder,
00228                                          int compression);
00229 
00230 XMLPUBFUN xmlOutputBufferPtr XMLCALL
00231         xmlOutputBufferCreateFile       (FILE *file,
00232                                          xmlCharEncodingHandlerPtr encoder);
00233 
00234 XMLPUBFUN xmlOutputBufferPtr XMLCALL
00235         xmlOutputBufferCreateBuffer     (xmlBufferPtr buffer,
00236                                          xmlCharEncodingHandlerPtr encoder);
00237 
00238 XMLPUBFUN xmlOutputBufferPtr XMLCALL
00239         xmlOutputBufferCreateFd         (int fd,
00240                                          xmlCharEncodingHandlerPtr encoder);
00241 
00242 XMLPUBFUN xmlOutputBufferPtr XMLCALL
00243         xmlOutputBufferCreateIO         (xmlOutputWriteCallback   iowrite,
00244                                          xmlOutputCloseCallback  ioclose,
00245                                          void *ioctx,
00246                                          xmlCharEncodingHandlerPtr encoder);
00247 
00248 XMLPUBFUN int XMLCALL   
00249         xmlOutputBufferWrite            (xmlOutputBufferPtr out,
00250                                          int len,
00251                                          const char *buf);
00252 XMLPUBFUN int XMLCALL   
00253         xmlOutputBufferWriteString      (xmlOutputBufferPtr out,
00254                                          const char *str);
00255 XMLPUBFUN int XMLCALL   
00256         xmlOutputBufferWriteEscape      (xmlOutputBufferPtr out,
00257                                          const xmlChar *str,
00258                                          xmlCharEncodingOutputFunc escaping);
00259 
00260 XMLPUBFUN int XMLCALL   
00261         xmlOutputBufferFlush            (xmlOutputBufferPtr out);
00262 XMLPUBFUN int XMLCALL   
00263         xmlOutputBufferClose            (xmlOutputBufferPtr out);
00264 
00265 XMLPUBFUN int XMLCALL     
00266         xmlRegisterOutputCallbacks      (xmlOutputMatchCallback matchFunc,
00267                                          xmlOutputOpenCallback openFunc,
00268                                          xmlOutputWriteCallback writeFunc,
00269                                          xmlOutputCloseCallback closeFunc);
00270 
00271 xmlOutputBufferPtr
00272         __xmlOutputBufferCreateFilename(const char *URI,
00273                               xmlCharEncodingHandlerPtr encoder,
00274                               int compression);
00275 
00276 #ifdef LIBXML_HTTP_ENABLED
00277 /*  This function only exists if HTTP support built into the library  */
00278 XMLPUBFUN void XMLCALL  
00279         xmlRegisterHTTPPostCallbacks    (void );
00280 #endif /* LIBXML_HTTP_ENABLED */
00281         
00282 #endif /* LIBXML_OUTPUT_ENABLED */
00283 
00284 XMLPUBFUN xmlParserInputPtr XMLCALL
00285         xmlCheckHTTPInput               (xmlParserCtxtPtr ctxt,
00286                                          xmlParserInputPtr ret);
00287 
00288 /*
00289  * A predefined entity loader disabling network accesses
00290  */
00291 XMLPUBFUN xmlParserInputPtr XMLCALL 
00292         xmlNoNetExternalEntityLoader    (const char *URL,
00293                                          const char *ID,
00294                                          xmlParserCtxtPtr ctxt);
00295 
00296 /* 
00297  * xmlNormalizeWindowsPath is obsolete, don't use it. 
00298  * Check xmlCanonicPath in uri.h for a better alternative.
00299  */
00300 XMLPUBFUN xmlChar * XMLCALL 
00301         xmlNormalizeWindowsPath         (const xmlChar *path);
00302 
00303 XMLPUBFUN int XMLCALL   
00304         xmlCheckFilename                (const char *path);
00308 XMLPUBFUN int XMLCALL   
00309         xmlFileMatch                    (const char *filename);
00310 XMLPUBFUN void * XMLCALL        
00311         xmlFileOpen                     (const char *filename);
00312 XMLPUBFUN int XMLCALL   
00313         xmlFileRead                     (void * context, 
00314                                          char * buffer, 
00315                                          int len);
00316 XMLPUBFUN int XMLCALL   
00317         xmlFileClose                    (void * context);
00318 
00322 #ifdef LIBXML_HTTP_ENABLED
00323 XMLPUBFUN int XMLCALL   
00324         xmlIOHTTPMatch                  (const char *filename);
00325 XMLPUBFUN void * XMLCALL        
00326         xmlIOHTTPOpen                   (const char *filename);
00327 #ifdef LIBXML_OUTPUT_ENABLED
00328 XMLPUBFUN void * XMLCALL        
00329         xmlIOHTTPOpenW                  (const char * post_uri,
00330                                          int   compression );
00331 #endif /* LIBXML_OUTPUT_ENABLED */
00332 XMLPUBFUN int XMLCALL   
00333         xmlIOHTTPRead                   (void * context, 
00334                                          char * buffer, 
00335                                          int len);
00336 XMLPUBFUN int XMLCALL   
00337         xmlIOHTTPClose                  (void * context);
00338 #endif /* LIBXML_HTTP_ENABLED */
00339 
00343 #ifdef LIBXML_FTP_ENABLED 
00344 XMLPUBFUN int XMLCALL   
00345         xmlIOFTPMatch                   (const char *filename);
00346 XMLPUBFUN void * XMLCALL        
00347         xmlIOFTPOpen                    (const char *filename);
00348 XMLPUBFUN int XMLCALL   
00349         xmlIOFTPRead                    (void * context, 
00350                                          char * buffer, 
00351                                          int len);
00352 XMLPUBFUN int XMLCALL   
00353         xmlIOFTPClose                   (void * context);
00354 #endif /* LIBXML_FTP_ENABLED */
00355 
00356 #ifdef __cplusplus
00357 }
00358 #endif
00359 
00360 #endif /* __XML_IO_H__ */
 Todo Clases Namespaces Archivos Funciones Variables 'typedefs' Enumeraciones Valores de enumeraciones Propiedades Amigas 'defines'