LTKCPP-- LLRP Toolkit C Plus Plus Library
xmlIO.h
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);
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 
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
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);
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 
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 
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__ */