Annotation of embedaddon/libxml2/include/libxml/xmlIO.h, revision 1.1
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: *
! 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__ */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>