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