Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
hhhrrrttt222111
GitHub Repository: hhhrrrttt222111/Dorkify
Path: blob/master/venv/Lib/site-packages/lxml/includes/libxml/xmlIO.h
811 views
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
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
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
/* Couple of APIs to get the output without digging into the buffers */
249
XMLPUBFUN const xmlChar * XMLCALL
250
xmlOutputBufferGetContent (xmlOutputBufferPtr out);
251
XMLPUBFUN size_t XMLCALL
252
xmlOutputBufferGetSize (xmlOutputBufferPtr out);
253
254
XMLPUBFUN int XMLCALL
255
xmlOutputBufferWrite (xmlOutputBufferPtr out,
256
int len,
257
const char *buf);
258
XMLPUBFUN int XMLCALL
259
xmlOutputBufferWriteString (xmlOutputBufferPtr out,
260
const char *str);
261
XMLPUBFUN int XMLCALL
262
xmlOutputBufferWriteEscape (xmlOutputBufferPtr out,
263
const xmlChar *str,
264
xmlCharEncodingOutputFunc escaping);
265
266
XMLPUBFUN int XMLCALL
267
xmlOutputBufferFlush (xmlOutputBufferPtr out);
268
XMLPUBFUN int XMLCALL
269
xmlOutputBufferClose (xmlOutputBufferPtr out);
270
271
XMLPUBFUN int XMLCALL
272
xmlRegisterOutputCallbacks (xmlOutputMatchCallback matchFunc,
273
xmlOutputOpenCallback openFunc,
274
xmlOutputWriteCallback writeFunc,
275
xmlOutputCloseCallback closeFunc);
276
277
xmlOutputBufferPtr
278
__xmlOutputBufferCreateFilename(const char *URI,
279
xmlCharEncodingHandlerPtr encoder,
280
int compression);
281
282
#ifdef LIBXML_HTTP_ENABLED
283
/* This function only exists if HTTP support built into the library */
284
XMLPUBFUN void XMLCALL
285
xmlRegisterHTTPPostCallbacks (void );
286
#endif /* LIBXML_HTTP_ENABLED */
287
288
#endif /* LIBXML_OUTPUT_ENABLED */
289
290
XMLPUBFUN xmlParserInputPtr XMLCALL
291
xmlCheckHTTPInput (xmlParserCtxtPtr ctxt,
292
xmlParserInputPtr ret);
293
294
/*
295
* A predefined entity loader disabling network accesses
296
*/
297
XMLPUBFUN xmlParserInputPtr XMLCALL
298
xmlNoNetExternalEntityLoader (const char *URL,
299
const char *ID,
300
xmlParserCtxtPtr ctxt);
301
302
/*
303
* xmlNormalizeWindowsPath is obsolete, don't use it.
304
* Check xmlCanonicPath in uri.h for a better alternative.
305
*/
306
XMLPUBFUN xmlChar * XMLCALL
307
xmlNormalizeWindowsPath (const xmlChar *path);
308
309
XMLPUBFUN int XMLCALL
310
xmlCheckFilename (const char *path);
311
/**
312
* Default 'file://' protocol callbacks
313
*/
314
XMLPUBFUN int XMLCALL
315
xmlFileMatch (const char *filename);
316
XMLPUBFUN void * XMLCALL
317
xmlFileOpen (const char *filename);
318
XMLPUBFUN int XMLCALL
319
xmlFileRead (void * context,
320
char * buffer,
321
int len);
322
XMLPUBFUN int XMLCALL
323
xmlFileClose (void * context);
324
325
/**
326
* Default 'http://' protocol callbacks
327
*/
328
#ifdef LIBXML_HTTP_ENABLED
329
XMLPUBFUN int XMLCALL
330
xmlIOHTTPMatch (const char *filename);
331
XMLPUBFUN void * XMLCALL
332
xmlIOHTTPOpen (const char *filename);
333
#ifdef LIBXML_OUTPUT_ENABLED
334
XMLPUBFUN void * XMLCALL
335
xmlIOHTTPOpenW (const char * post_uri,
336
int compression );
337
#endif /* LIBXML_OUTPUT_ENABLED */
338
XMLPUBFUN int XMLCALL
339
xmlIOHTTPRead (void * context,
340
char * buffer,
341
int len);
342
XMLPUBFUN int XMLCALL
343
xmlIOHTTPClose (void * context);
344
#endif /* LIBXML_HTTP_ENABLED */
345
346
/**
347
* Default 'ftp://' protocol callbacks
348
*/
349
#ifdef LIBXML_FTP_ENABLED
350
XMLPUBFUN int XMLCALL
351
xmlIOFTPMatch (const char *filename);
352
XMLPUBFUN void * XMLCALL
353
xmlIOFTPOpen (const char *filename);
354
XMLPUBFUN int XMLCALL
355
xmlIOFTPRead (void * context,
356
char * buffer,
357
int len);
358
XMLPUBFUN int XMLCALL
359
xmlIOFTPClose (void * context);
360
#endif /* LIBXML_FTP_ENABLED */
361
362
#ifdef __cplusplus
363
}
364
#endif
365
366
#endif /* __XML_IO_H__ */
367
368