ReactOS  0.4.15-dev-3453-gff89651
xmlIO.h
Go to the documentation of this file.
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 
34 typedef int (XMLCALL *xmlInputMatchCallback) (char const *filename);
43 typedef void * (XMLCALL *xmlInputOpenCallback) (char const *filename);
54 typedef int (XMLCALL *xmlInputReadCallback) (void * context, char * buffer, int len);
64 
65 #ifdef LIBXML_OUTPUT_ENABLED
66 /*
67  * Those are the functions and datatypes for the library output
68  * I/O structures.
69  */
70 
80 typedef int (XMLCALL *xmlOutputMatchCallback) (char const *filename);
89 typedef void * (XMLCALL *xmlOutputOpenCallback) (char const *filename);
100 typedef int (XMLCALL *xmlOutputWriteCallback) (void * context, const char * buffer,
101  int len);
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
126  void* context;
129 
130  xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */
131 
132  xmlBufPtr buffer; /* Local buffer encoded in UTF-8 */
133  xmlBufPtr 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  xmlBufPtr buffer; /* Local buffer encoded in UTF-8 or ISOLatin */
149  xmlBufPtr 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
160 
161 XMLPUBFUN int XMLCALL
162  xmlPopInputCallbacks (void);
163 
164 XMLPUBFUN void XMLCALL
168 
170  xmlParserInputBufferCreateFilename (const char *URI,
171  xmlCharEncoding enc);
174  xmlCharEncoding enc);
177  xmlCharEncoding enc);
179  xmlParserInputBufferCreateMem (const char *mem, int size,
180  xmlCharEncoding enc);
182  xmlParserInputBufferCreateStatic (const char *mem, int size,
183  xmlCharEncoding enc);
186  xmlInputCloseCallback ioclose,
187  void *ioctx,
188  xmlCharEncoding enc);
189 XMLPUBFUN int XMLCALL
191  int len);
192 XMLPUBFUN int XMLCALL
194  int len);
195 XMLPUBFUN int XMLCALL
197  int len,
198  const char *buf);
199 XMLPUBFUN void XMLCALL
201 XMLPUBFUN char * XMLCALL
202  xmlParserGetDirectory (const char *filename);
203 
204 XMLPUBFUN int XMLCALL
206  xmlInputOpenCallback openFunc,
207  xmlInputReadCallback readFunc,
208  xmlInputCloseCallback closeFunc);
209 
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 int XMLCALL
221  xmlPopOutputCallbacks (void);
222 XMLPUBFUN void XMLCALL
223  xmlRegisterDefaultOutputCallbacks(void);
225  xmlAllocOutputBuffer (xmlCharEncodingHandlerPtr encoder);
226 
228  xmlOutputBufferCreateFilename (const char *URI,
230  int compression);
231 
233  xmlOutputBufferCreateFile (FILE *file,
234  xmlCharEncodingHandlerPtr encoder);
235 
237  xmlOutputBufferCreateBuffer (xmlBufferPtr buffer,
238  xmlCharEncodingHandlerPtr encoder);
239 
241  xmlOutputBufferCreateFd (int fd,
242  xmlCharEncodingHandlerPtr encoder);
243 
245  xmlOutputBufferCreateIO (xmlOutputWriteCallback iowrite,
246  xmlOutputCloseCallback ioclose,
247  void *ioctx,
248  xmlCharEncodingHandlerPtr encoder);
249 
250 /* Couple of APIs to get the output without digging into the buffers */
251 XMLPUBFUN const xmlChar * XMLCALL
252  xmlOutputBufferGetContent (xmlOutputBufferPtr out);
253 XMLPUBFUN size_t XMLCALL
254  xmlOutputBufferGetSize (xmlOutputBufferPtr out);
255 
256 XMLPUBFUN int XMLCALL
257  xmlOutputBufferWrite (xmlOutputBufferPtr out,
258  int len,
259  const char *buf);
260 XMLPUBFUN int XMLCALL
261  xmlOutputBufferWriteString (xmlOutputBufferPtr out,
262  const char *str);
263 XMLPUBFUN int XMLCALL
264  xmlOutputBufferWriteEscape (xmlOutputBufferPtr out,
265  const xmlChar *str,
266  xmlCharEncodingOutputFunc escaping);
267 
268 XMLPUBFUN int XMLCALL
269  xmlOutputBufferFlush (xmlOutputBufferPtr out);
270 XMLPUBFUN int XMLCALL
271  xmlOutputBufferClose (xmlOutputBufferPtr out);
272 
273 XMLPUBFUN int XMLCALL
274  xmlRegisterOutputCallbacks (xmlOutputMatchCallback matchFunc,
275  xmlOutputOpenCallback openFunc,
276  xmlOutputWriteCallback writeFunc,
277  xmlOutputCloseCallback closeFunc);
278 
280  __xmlOutputBufferCreateFilename(const char *URI,
282  int compression);
283 
284 #ifdef LIBXML_HTTP_ENABLED
285 /* This function only exists if HTTP support built into the library */
286 XMLPUBFUN void XMLCALL
287  xmlRegisterHTTPPostCallbacks (void );
288 #endif /* LIBXML_HTTP_ENABLED */
289 
290 #endif /* LIBXML_OUTPUT_ENABLED */
291 
295 
296 /*
297  * A predefined entity loader disabling network accesses
298  */
300  xmlNoNetExternalEntityLoader (const char *URL,
301  const char *ID,
302  xmlParserCtxtPtr ctxt);
303 
304 /*
305  * xmlNormalizeWindowsPath is obsolete, don't use it.
306  * Check xmlCanonicPath in uri.h for a better alternative.
307  */
310 
311 XMLPUBFUN int XMLCALL
312  xmlCheckFilename (const char *path);
316 XMLPUBFUN int XMLCALL
317  xmlFileMatch (const char *filename);
318 XMLPUBFUN void * XMLCALL
319  xmlFileOpen (const char *filename);
320 XMLPUBFUN int XMLCALL
321  xmlFileRead (void * context,
322  char * buffer,
323  int len);
324 XMLPUBFUN int XMLCALL
325  xmlFileClose (void * context);
326 
330 #ifdef LIBXML_HTTP_ENABLED
331 XMLPUBFUN int XMLCALL
332  xmlIOHTTPMatch (const char *filename);
333 XMLPUBFUN void * XMLCALL
334  xmlIOHTTPOpen (const char *filename);
335 #ifdef LIBXML_OUTPUT_ENABLED
336 XMLPUBFUN void * XMLCALL
337  xmlIOHTTPOpenW (const char * post_uri,
338  int compression );
339 #endif /* LIBXML_OUTPUT_ENABLED */
340 XMLPUBFUN int XMLCALL
341  xmlIOHTTPRead (void * context,
342  char * buffer,
343  int len);
344 XMLPUBFUN int XMLCALL
345  xmlIOHTTPClose (void * context);
346 #endif /* LIBXML_HTTP_ENABLED */
347 
351 #ifdef LIBXML_FTP_ENABLED
352 XMLPUBFUN int XMLCALL
353  xmlIOFTPMatch (const char *filename);
354 XMLPUBFUN void * XMLCALL
355  xmlIOFTPOpen (const char *filename);
356 XMLPUBFUN int XMLCALL
357  xmlIOFTPRead (void * context,
358  char * buffer,
359  int len);
360 XMLPUBFUN int XMLCALL
361  xmlIOFTPClose (void * context);
362 #endif /* LIBXML_FTP_ENABLED */
363 
364 #ifdef __cplusplus
365 }
366 #endif
367 
368 #endif /* __XML_IO_H__ */
XMLPUBFUN xmlParserInputBufferPtr XMLCALL xmlParserInputBufferCreateStatic(const char *mem, int size, xmlCharEncoding enc)
XMLPUBFUN void XMLCALL xmlCleanupInputCallbacks(void)
void *(XMLCALL * xmlInputOpenCallback)(char const *filename)
Definition: xmlIO.h:43
unsigned long rawconsumed
Definition: xmlIO.h:136
#define error(str)
Definition: mkdosfs.c:1605
Definition: http.c:7251
XMLPUBFUN int XMLCALL xmlCheckFilename(const char *path)
XMLPUBFUN void XMLCALL xmlRegisterDefaultInputCallbacks(void)
XMLPUBFUN char *XMLCALL xmlParserGetDirectory(const char *filename)
XMLPUBFUN int XMLCALL xmlParserInputBufferPush(xmlParserInputBufferPtr in, int len, const char *buf)
XMLPUBFUN void XMLCALL xmlFreeParserInputBuffer(xmlParserInputBufferPtr in)
GLuint buffer
Definition: glext.h:5915
static int fd
Definition: io.c:51
xmlCharEncoding
Definition: encoding.h:58
#define XMLPUBFUN
Definition: xmlexports.h:61
XMLPUBFUN int XMLCALL xmlFileMatch(const char *filename)
const char * filename
Definition: ioapi.h:135
xmlInputReadCallback readcallback
Definition: xmlIO.h:127
XMLPUBFUN xmlParserInputBufferPtr XMLCALL xmlParserInputBufferCreateMem(const char *mem, int size, xmlCharEncoding enc)
Definition: buf.c:43
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
XMLPUBFUN xmlParserInputBufferPtr XMLCALL xmlParserInputBufferCreateIO(xmlInputReadCallback ioread, xmlInputCloseCallback ioclose, void *ioctx, xmlCharEncoding enc)
XMLPUBFUN xmlParserInputBufferPtr XMLCALL xmlParserInputBufferCreateFile(FILE *file, xmlCharEncoding enc)
xmlOutputBuffer * xmlOutputBufferPtr
Definition: tree.h:32
int(* xmlCharEncodingOutputFunc)(unsigned char *out, int *outlen, const unsigned char *in, int *inlen)
Definition: encoding.h:123
XMLPUBFUN int XMLCALL xmlFileClose(void *context)
const WCHAR * str
XMLPUBFUN int XMLCALL xmlPopInputCallbacks(void)
XMLPUBFUN xmlParserInputBufferPtr XMLCALL xmlAllocParserInputBuffer(xmlCharEncoding enc)
int(XMLCALL * xmlInputCloseCallback)(void *context)
Definition: xmlIO.h:63
XMLPUBFUN xmlChar *XMLCALL xmlNormalizeWindowsPath(const xmlChar *path)
GLsizeiptr size
Definition: glext.h:5919
xmlBufPtr raw
Definition: xmlIO.h:133
xmlInputCloseCallback closecallback
Definition: xmlIO.h:128
XMLPUBFUN int XMLCALL xmlFileRead(void *context, char *buffer, int len)
xmlBufPtr buffer
Definition: xmlIO.h:132
static FILE * out
Definition: regtests2xml.c:44
_In_opt_ PVOID _In_ ULONG _In_ PVOID context
Definition: wdfdriver.h:113
int(XMLCALL * xmlInputReadCallback)(void *context, char *buffer, int len)
Definition: xmlIO.h:54
XMLPUBFUN xmlParserInputBufferPtr XMLCALL xmlParserInputBufferCreateFilename(const char *URI, xmlCharEncoding enc)
int ret
_In_ fcb _In_ chunk _In_ uint64_t _In_ uint64_t _In_ bool _In_opt_ void _In_opt_ PIRP _In_ LIST_ENTRY _In_ uint8_t compression
Definition: btrfs_drv.h:1357
unsigned char xmlChar
Definition: xmlstring.h:28
GLenum GLsizei len
Definition: glext.h:6722
#define ID
Definition: ruserpass.c:36
XMLPUBFUN xmlParserInputPtr XMLCALL xmlCheckHTTPInput(xmlParserCtxtPtr ctxt, xmlParserInputPtr ret)
xmlCharEncodingHandlerPtr encoder
Definition: xmlIO.h:130
XMLPUBFUN xmlParserInputPtr XMLCALL xmlNoNetExternalEntityLoader(const char *URL, const char *ID, xmlParserCtxtPtr ctxt)
XMLPUBFUN xmlParserInputBufferPtr XMLCALL xmlParserInputBufferCreateFd(int fd, xmlCharEncoding enc)
GLuint in
Definition: glext.h:9616
xmlParserInputBufferPtr __xmlParserInputBufferCreateFilename(const char *URI, xmlCharEncoding enc)
XMLPUBFUN int XMLCALL xmlParserInputBufferRead(xmlParserInputBufferPtr in, int len)
XMLPUBFUN void *XMLCALL xmlFileOpen(const char *filename)
int(XMLCALL * xmlInputMatchCallback)(char const *filename)
Definition: xmlIO.h:34
#define XMLCALL
Definition: mem.c:156
XMLPUBFUN int XMLCALL xmlParserInputBufferGrow(xmlParserInputBufferPtr in, int len)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
Definition: fci.c:126
XMLPUBFUN int XMLCALL xmlRegisterInputCallbacks(xmlInputMatchCallback matchFunc, xmlInputOpenCallback openFunc, xmlInputReadCallback readFunc, xmlInputCloseCallback closeFunc)