Annotation of embedaddon/libxml2/include/libxml/xmlIO.h, revision 1.1.1.2

1.1       misho       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:  *
1.1.1.2 ! misho      29:  * Callback used in the I/O Input API to detect if the current handler
1.1       misho      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:  *
1.1.1.2 ! misho      75:  * Callback used in the I/O Output API to detect if the current handler
1.1       misho      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;
1.1.1.2 ! misho     129: 
1.1       misho     130:     xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */
1.1.1.2 ! misho     131: 
        !           132:     xmlBufPtr buffer;    /* Local buffer encoded in UTF-8 */
        !           133:     xmlBufPtr raw;       /* if encoder != NULL buffer for raw input */
1.1       misho     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;
1.1.1.2 ! misho     145: 
1.1       misho     146:     xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */
1.1.1.2 ! misho     147: 
        !           148:     xmlBufPtr buffer;    /* Local buffer encoded in UTF-8 or ISOLatin */
        !           149:     xmlBufPtr conv;      /* if encoder != NULL buffer for output */
1.1       misho     150:     int written;            /* total number of byte written */
                    151:     int error;
                    152: };
                    153: #endif /* LIBXML_OUTPUT_ENABLED */
                    154: 
                    155: /*
                    156:  * Interfaces for input
                    157:  */
1.1.1.2 ! misho     158: XMLPUBFUN void XMLCALL
1.1       misho     159:        xmlCleanupInputCallbacks                (void);
                    160: 
                    161: XMLPUBFUN int XMLCALL
                    162:        xmlPopInputCallbacks                    (void);
                    163: 
1.1.1.2 ! misho     164: XMLPUBFUN void XMLCALL
1.1       misho     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);
1.1.1.2 ! misho     189: XMLPUBFUN int XMLCALL
1.1       misho     190:        xmlParserInputBufferRead                (xmlParserInputBufferPtr in,
                    191:                                                 int len);
1.1.1.2 ! misho     192: XMLPUBFUN int XMLCALL
1.1       misho     193:        xmlParserInputBufferGrow                (xmlParserInputBufferPtr in,
                    194:                                                 int len);
1.1.1.2 ! misho     195: XMLPUBFUN int XMLCALL
1.1       misho     196:        xmlParserInputBufferPush                (xmlParserInputBufferPtr in,
                    197:                                                 int len,
                    198:                                                 const char *buf);
1.1.1.2 ! misho     199: XMLPUBFUN void XMLCALL
1.1       misho     200:        xmlFreeParserInputBuffer                (xmlParserInputBufferPtr in);
1.1.1.2 ! misho     201: XMLPUBFUN char * XMLCALL
1.1       misho     202:        xmlParserGetDirectory                   (const char *filename);
                    203: 
1.1.1.2 ! misho     204: XMLPUBFUN int XMLCALL
1.1       misho     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:  */
1.1.1.2 ! misho     218: XMLPUBFUN void XMLCALL
1.1       misho     219:        xmlCleanupOutputCallbacks               (void);
1.1.1.2 ! misho     220: XMLPUBFUN void XMLCALL
1.1       misho     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: 
1.1.1.2 ! misho     248: /* Couple of APIs to get the output without digging into the buffers */
        !           249: XMLPUBFUN const xmlChar * XMLCALL
        !           250:         xmlOutputBufferGetContent       (xmlOutputBufferPtr out);
        !           251: XMLPUBFUN size_t XMLCALL
        !           252:         xmlOutputBufferGetSize          (xmlOutputBufferPtr out);
        !           253: 
        !           254: XMLPUBFUN int XMLCALL
1.1       misho     255:        xmlOutputBufferWrite            (xmlOutputBufferPtr out,
                    256:                                         int len,
                    257:                                         const char *buf);
1.1.1.2 ! misho     258: XMLPUBFUN int XMLCALL
1.1       misho     259:        xmlOutputBufferWriteString      (xmlOutputBufferPtr out,
                    260:                                         const char *str);
1.1.1.2 ! misho     261: XMLPUBFUN int XMLCALL
1.1       misho     262:        xmlOutputBufferWriteEscape      (xmlOutputBufferPtr out,
                    263:                                         const xmlChar *str,
                    264:                                         xmlCharEncodingOutputFunc escaping);
                    265: 
1.1.1.2 ! misho     266: XMLPUBFUN int XMLCALL
1.1       misho     267:        xmlOutputBufferFlush            (xmlOutputBufferPtr out);
1.1.1.2 ! misho     268: XMLPUBFUN int XMLCALL
1.1       misho     269:        xmlOutputBufferClose            (xmlOutputBufferPtr out);
                    270: 
1.1.1.2 ! misho     271: XMLPUBFUN int XMLCALL
1.1       misho     272:        xmlRegisterOutputCallbacks      (xmlOutputMatchCallback matchFunc,
                    273:                                         xmlOutputOpenCallback openFunc,
                    274:                                         xmlOutputWriteCallback writeFunc,
                    275:                                         xmlOutputCloseCallback closeFunc);
                    276: 
                    277: xmlOutputBufferPtr
                    278:        __xmlOutputBufferCreateFilename(const char *URI,
                    279:                               xmlCharEncodingHandlerPtr encoder,
                    280:                               int compression);
                    281: 
                    282: #ifdef LIBXML_HTTP_ENABLED
                    283: /*  This function only exists if HTTP support built into the library  */
1.1.1.2 ! misho     284: XMLPUBFUN void XMLCALL
1.1       misho     285:        xmlRegisterHTTPPostCallbacks    (void );
                    286: #endif /* LIBXML_HTTP_ENABLED */
1.1.1.2 ! misho     287: 
1.1       misho     288: #endif /* LIBXML_OUTPUT_ENABLED */
                    289: 
                    290: XMLPUBFUN xmlParserInputPtr XMLCALL
                    291:        xmlCheckHTTPInput               (xmlParserCtxtPtr ctxt,
                    292:                                         xmlParserInputPtr ret);
                    293: 
                    294: /*
                    295:  * A predefined entity loader disabling network accesses
                    296:  */
1.1.1.2 ! misho     297: XMLPUBFUN xmlParserInputPtr XMLCALL
1.1       misho     298:        xmlNoNetExternalEntityLoader    (const char *URL,
                    299:                                         const char *ID,
                    300:                                         xmlParserCtxtPtr ctxt);
                    301: 
1.1.1.2 ! misho     302: /*
        !           303:  * xmlNormalizeWindowsPath is obsolete, don't use it.
1.1       misho     304:  * Check xmlCanonicPath in uri.h for a better alternative.
                    305:  */
1.1.1.2 ! misho     306: XMLPUBFUN xmlChar * XMLCALL
1.1       misho     307:        xmlNormalizeWindowsPath         (const xmlChar *path);
                    308: 
1.1.1.2 ! misho     309: XMLPUBFUN int XMLCALL
1.1       misho     310:        xmlCheckFilename                (const char *path);
                    311: /**
1.1.1.2 ! misho     312:  * Default 'file://' protocol callbacks
1.1       misho     313:  */
1.1.1.2 ! misho     314: XMLPUBFUN int XMLCALL
        !           315:        xmlFileMatch                    (const char *filename);
        !           316: XMLPUBFUN void * XMLCALL
        !           317:        xmlFileOpen                     (const char *filename);
        !           318: XMLPUBFUN int XMLCALL
        !           319:        xmlFileRead                     (void * context,
        !           320:                                         char * buffer,
1.1       misho     321:                                         int len);
1.1.1.2 ! misho     322: XMLPUBFUN int XMLCALL
        !           323:        xmlFileClose                    (void * context);
1.1       misho     324: 
                    325: /**
1.1.1.2 ! misho     326:  * Default 'http://' protocol callbacks
1.1       misho     327:  */
                    328: #ifdef LIBXML_HTTP_ENABLED
1.1.1.2 ! misho     329: XMLPUBFUN int XMLCALL
        !           330:        xmlIOHTTPMatch                  (const char *filename);
        !           331: XMLPUBFUN void * XMLCALL
        !           332:        xmlIOHTTPOpen                   (const char *filename);
1.1       misho     333: #ifdef LIBXML_OUTPUT_ENABLED
1.1.1.2 ! misho     334: XMLPUBFUN void * XMLCALL
1.1       misho     335:        xmlIOHTTPOpenW                  (const char * post_uri,
                    336:                                         int   compression );
                    337: #endif /* LIBXML_OUTPUT_ENABLED */
1.1.1.2 ! misho     338: XMLPUBFUN int XMLCALL
        !           339:        xmlIOHTTPRead                   (void * context,
        !           340:                                         char * buffer,
1.1       misho     341:                                         int len);
1.1.1.2 ! misho     342: XMLPUBFUN int XMLCALL
        !           343:        xmlIOHTTPClose                  (void * context);
1.1       misho     344: #endif /* LIBXML_HTTP_ENABLED */
                    345: 
                    346: /**
1.1.1.2 ! misho     347:  * Default 'ftp://' protocol callbacks
1.1       misho     348:  */
1.1.1.2 ! misho     349: #ifdef LIBXML_FTP_ENABLED
        !           350: XMLPUBFUN int XMLCALL
        !           351:        xmlIOFTPMatch                   (const char *filename);
        !           352: XMLPUBFUN void * XMLCALL
        !           353:        xmlIOFTPOpen                    (const char *filename);
        !           354: XMLPUBFUN int XMLCALL
        !           355:        xmlIOFTPRead                    (void * context,
        !           356:                                         char * buffer,
1.1       misho     357:                                         int len);
1.1.1.2 ! misho     358: XMLPUBFUN int XMLCALL
        !           359:        xmlIOFTPClose                   (void * context);
1.1       misho     360: #endif /* LIBXML_FTP_ENABLED */
                    361: 
                    362: #ifdef __cplusplus
                    363: }
                    364: #endif
                    365: 
                    366: #endif /* __XML_IO_H__ */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>