Annotation of embedaddon/libxml2/include/libxml/xmlIO.h, revision 1.1.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>