• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Summary: interface for all global variables of the library
3  * Description: all the global variables and thread handling for
4  *              those variables is handled by this module.
5  *
6  * The bottom of this file is automatically generated by build_glob.py
7  * based on the description file global.data
8  *
9  * Copy: See Copyright for the status of this software.
10  *
11  * Author: Gary Pennington <Gary.Pennington@uk.sun.com>, Daniel Veillard
12  */
13 
14 #ifndef __XML_GLOBALS_H
15 #define __XML_GLOBALS_H
16 
17 #include <libxml/xmlversion.h>
18 #include <libxml/parser.h>
19 #include <libxml/xmlerror.h>
20 #include <libxml/SAX.h>
21 #include <libxml/SAX2.h>
22 #include <libxml/xmlmemory.h>
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 XMLPUBFUN void XMLCALL xmlInitGlobals(void);
29 XMLPUBFUN void XMLCALL xmlCleanupGlobals(void);
30 
31 /**
32  * xmlParserInputBufferCreateFilenameFunc:
33  * @URI: the URI to read from
34  * @enc: the requested source encoding
35  *
36  * Signature for the function doing the lookup for a suitable input method
37  * corresponding to an URI.
38  *
39  * Returns the new xmlParserInputBufferPtr in case of success or NULL if no
40  *         method was found.
41  */
42 typedef xmlParserInputBufferPtr (*xmlParserInputBufferCreateFilenameFunc) (const char *URI, xmlCharEncoding enc);
43 
44 /**
45  * xmlOutputBufferCreateFilenameFunc:
46  * @URI: the URI to write to
47  * @enc: the requested target encoding
48  *
49  * Signature for the function doing the lookup for a suitable output method
50  * corresponding to an URI.
51  *
52  * Returns the new xmlOutputBufferPtr in case of success or NULL if no
53  *         method was found.
54  */
55 typedef xmlOutputBufferPtr (*xmlOutputBufferCreateFilenameFunc) (const char *URI, xmlCharEncodingHandlerPtr encoder, int compression);
56 
57 XMLPUBFUN xmlParserInputBufferCreateFilenameFunc
58 XMLCALL xmlParserInputBufferCreateFilenameDefault (xmlParserInputBufferCreateFilenameFunc func);
59 XMLPUBFUN xmlOutputBufferCreateFilenameFunc
60 XMLCALL xmlOutputBufferCreateFilenameDefault (xmlOutputBufferCreateFilenameFunc func);
61 
62 /*
63  * Externally global symbols which need to be protected for backwards
64  * compatibility support.
65  */
66 
67 #undef	docbDefaultSAXHandler
68 #undef	htmlDefaultSAXHandler
69 #undef	oldXMLWDcompatibility
70 #undef	xmlBufferAllocScheme
71 #undef	xmlDefaultBufferSize
72 #undef	xmlDefaultSAXHandler
73 #undef	xmlDefaultSAXLocator
74 #undef	xmlDoValidityCheckingDefaultValue
75 #undef	xmlFree
76 #undef	xmlGenericError
77 #undef	xmlStructuredError
78 #undef	xmlGenericErrorContext
79 #undef	xmlGetWarningsDefaultValue
80 #undef	xmlIndentTreeOutput
81 #undef  xmlTreeIndentString
82 #undef	xmlKeepBlanksDefaultValue
83 #undef	xmlLineNumbersDefaultValue
84 #undef	xmlLoadExtDtdDefaultValue
85 #undef	xmlMalloc
86 #undef	xmlMallocAtomic
87 #undef	xmlMemStrdup
88 #undef	xmlParserDebugEntities
89 #undef	xmlParserVersion
90 #undef	xmlPedanticParserDefaultValue
91 #undef	xmlRealloc
92 #undef	xmlSaveNoEmptyTags
93 #undef	xmlSubstituteEntitiesDefaultValue
94 #undef  xmlRegisterNodeDefaultValue
95 #undef  xmlDeregisterNodeDefaultValue
96 #undef  xmlLastError
97 #undef  xmlParserInputBufferCreateFilenameValue
98 #undef  xmlOutputBufferCreateFilenameValue
99 
100 /**
101  * xmlRegisterNodeFunc:
102  * @node: the current node
103  *
104  * Signature for the registration callback of a created node
105  */
106 typedef void (*xmlRegisterNodeFunc) (xmlNodePtr node);
107 /**
108  * xmlDeregisterNodeFunc:
109  * @node: the current node
110  *
111  * Signature for the deregistration callback of a discarded node
112  */
113 typedef void (*xmlDeregisterNodeFunc) (xmlNodePtr node);
114 
115 typedef struct _xmlGlobalState xmlGlobalState;
116 typedef xmlGlobalState *xmlGlobalStatePtr;
117 struct _xmlGlobalState
118 {
119 	const char *xmlParserVersion;
120 
121 	xmlSAXLocator xmlDefaultSAXLocator;
122 	xmlSAXHandlerV1 xmlDefaultSAXHandler;
123 	xmlSAXHandlerV1 docbDefaultSAXHandler;
124 	xmlSAXHandlerV1 htmlDefaultSAXHandler;
125 
126 	xmlFreeFunc xmlFree;
127 	xmlMallocFunc xmlMalloc;
128 	xmlStrdupFunc xmlMemStrdup;
129 	xmlReallocFunc xmlRealloc;
130 
131 	xmlGenericErrorFunc xmlGenericError;
132 	xmlStructuredErrorFunc xmlStructuredError;
133 	void *xmlGenericErrorContext;
134 
135 	int oldXMLWDcompatibility;
136 
137 	xmlBufferAllocationScheme xmlBufferAllocScheme;
138 	int xmlDefaultBufferSize;
139 
140 	int xmlSubstituteEntitiesDefaultValue;
141 	int xmlDoValidityCheckingDefaultValue;
142 	int xmlGetWarningsDefaultValue;
143 	int xmlKeepBlanksDefaultValue;
144 	int xmlLineNumbersDefaultValue;
145 	int xmlLoadExtDtdDefaultValue;
146 	int xmlParserDebugEntities;
147 	int xmlPedanticParserDefaultValue;
148 
149 	int xmlSaveNoEmptyTags;
150 	int xmlIndentTreeOutput;
151 	const char *xmlTreeIndentString;
152 
153 	xmlRegisterNodeFunc xmlRegisterNodeDefaultValue;
154 	xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue;
155 
156 	xmlMallocFunc xmlMallocAtomic;
157 	xmlError xmlLastError;
158 
159 	xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue;
160 	xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue;
161 };
162 
163 #ifdef __cplusplus
164 }
165 #endif
166 #include <libxml/threads.h>
167 #ifdef __cplusplus
168 extern "C" {
169 #endif
170 
171 XMLPUBFUN void XMLCALL	xmlInitializeGlobalState(xmlGlobalStatePtr gs);
172 
173 XMLPUBFUN void XMLCALL xmlThrDefSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler);
174 
175 XMLPUBFUN void XMLCALL xmlThrDefSetStructuredErrorFunc(void *ctx, xmlStructuredErrorFunc handler);
176 
177 XMLPUBFUN xmlRegisterNodeFunc XMLCALL xmlRegisterNodeDefault(xmlRegisterNodeFunc func);
178 XMLPUBFUN xmlRegisterNodeFunc XMLCALL xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func);
179 XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlDeregisterNodeDefault(xmlDeregisterNodeFunc func);
180 XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func);
181 
182 XMLPUBFUN xmlOutputBufferCreateFilenameFunc XMLCALL
183 	xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func);
184 XMLPUBFUN xmlParserInputBufferCreateFilenameFunc XMLCALL
185 	xmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc func);
186 
187 /** DOC_DISABLE */
188 /*
189  * In general the memory allocation entry points are not kept
190  * thread specific but this can be overridden by LIBXML_THREAD_ALLOC_ENABLED
191  *    - xmlMalloc
192  *    - xmlMallocAtomic
193  *    - xmlRealloc
194  *    - xmlMemStrdup
195  *    - xmlFree
196  */
197 
198 #ifdef LIBXML_THREAD_ALLOC_ENABLED
199 #ifdef LIBXML_THREAD_ENABLED
200 XMLPUBFUN  xmlMallocFunc * XMLCALL __xmlMalloc(void);
201 #define xmlMalloc \
202 (*(__xmlMalloc()))
203 #else
204 XMLPUBVAR xmlMallocFunc xmlMalloc;
205 #endif
206 
207 #ifdef LIBXML_THREAD_ENABLED
208 XMLPUBFUN  xmlMallocFunc * XMLCALL __xmlMallocAtomic(void);
209 #define xmlMallocAtomic \
210 (*(__xmlMallocAtomic()))
211 #else
212 XMLPUBVAR xmlMallocFunc xmlMallocAtomic;
213 #endif
214 
215 #ifdef LIBXML_THREAD_ENABLED
216 XMLPUBFUN  xmlReallocFunc * XMLCALL __xmlRealloc(void);
217 #define xmlRealloc \
218 (*(__xmlRealloc()))
219 #else
220 XMLPUBVAR xmlReallocFunc xmlRealloc;
221 #endif
222 
223 #ifdef LIBXML_THREAD_ENABLED
224 XMLPUBFUN  xmlFreeFunc * XMLCALL __xmlFree(void);
225 #define xmlFree \
226 (*(__xmlFree()))
227 #else
228 XMLPUBVAR xmlFreeFunc xmlFree;
229 #endif
230 
231 #ifdef LIBXML_THREAD_ENABLED
232 XMLPUBFUN  xmlStrdupFunc * XMLCALL __xmlMemStrdup(void);
233 #define xmlMemStrdup \
234 (*(__xmlMemStrdup()))
235 #else
236 XMLPUBVAR xmlStrdupFunc xmlMemStrdup;
237 #endif
238 
239 #else /* !LIBXML_THREAD_ALLOC_ENABLED */
240 XMLPUBVAR xmlMallocFunc xmlMalloc;
241 XMLPUBVAR xmlMallocFunc xmlMallocAtomic;
242 XMLPUBVAR xmlReallocFunc xmlRealloc;
243 XMLPUBVAR xmlFreeFunc xmlFree;
244 XMLPUBVAR xmlStrdupFunc xmlMemStrdup;
245 #endif /* LIBXML_THREAD_ALLOC_ENABLED */
246 
247 #ifdef LIBXML_DOCB_ENABLED
248 XMLPUBFUN  xmlSAXHandlerV1 * XMLCALL __docbDefaultSAXHandler(void);
249 #ifdef LIBXML_THREAD_ENABLED
250 #define docbDefaultSAXHandler \
251 (*(__docbDefaultSAXHandler()))
252 #else
253 XMLPUBVAR xmlSAXHandlerV1 docbDefaultSAXHandler;
254 #endif
255 #endif
256 
257 #ifdef LIBXML_HTML_ENABLED
258 XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __htmlDefaultSAXHandler(void);
259 #ifdef LIBXML_THREAD_ENABLED
260 #define htmlDefaultSAXHandler \
261 (*(__htmlDefaultSAXHandler()))
262 #else
263 XMLPUBVAR xmlSAXHandlerV1 htmlDefaultSAXHandler;
264 #endif
265 #endif
266 
267 XMLPUBFUN xmlError * XMLCALL __xmlLastError(void);
268 #ifdef LIBXML_THREAD_ENABLED
269 #define xmlLastError \
270 (*(__xmlLastError()))
271 #else
272 XMLPUBVAR xmlError xmlLastError;
273 #endif
274 
275 /*
276  * Everything starting from the line below is
277  * Automatically generated by build_glob.py.
278  * Do not modify the previous line.
279  */
280 
281 
282 XMLPUBFUN int * XMLCALL __oldXMLWDcompatibility(void);
283 #ifdef LIBXML_THREAD_ENABLED
284 #define oldXMLWDcompatibility \
285 (*(__oldXMLWDcompatibility()))
286 #else
287 XMLPUBVAR int oldXMLWDcompatibility;
288 #endif
289 
290 XMLPUBFUN xmlBufferAllocationScheme * XMLCALL __xmlBufferAllocScheme(void);
291 #ifdef LIBXML_THREAD_ENABLED
292 #define xmlBufferAllocScheme \
293 (*(__xmlBufferAllocScheme()))
294 #else
295 XMLPUBVAR xmlBufferAllocationScheme xmlBufferAllocScheme;
296 #endif
297 XMLPUBFUN xmlBufferAllocationScheme XMLCALL xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v);
298 
299 XMLPUBFUN int * XMLCALL __xmlDefaultBufferSize(void);
300 #ifdef LIBXML_THREAD_ENABLED
301 #define xmlDefaultBufferSize \
302 (*(__xmlDefaultBufferSize()))
303 #else
304 XMLPUBVAR int xmlDefaultBufferSize;
305 #endif
306 XMLPUBFUN int XMLCALL xmlThrDefDefaultBufferSize(int v);
307 
308 XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __xmlDefaultSAXHandler(void);
309 #ifdef LIBXML_THREAD_ENABLED
310 #define xmlDefaultSAXHandler \
311 (*(__xmlDefaultSAXHandler()))
312 #else
313 XMLPUBVAR xmlSAXHandlerV1 xmlDefaultSAXHandler;
314 #endif
315 
316 XMLPUBFUN xmlSAXLocator * XMLCALL __xmlDefaultSAXLocator(void);
317 #ifdef LIBXML_THREAD_ENABLED
318 #define xmlDefaultSAXLocator \
319 (*(__xmlDefaultSAXLocator()))
320 #else
321 XMLPUBVAR xmlSAXLocator xmlDefaultSAXLocator;
322 #endif
323 
324 XMLPUBFUN int * XMLCALL __xmlDoValidityCheckingDefaultValue(void);
325 #ifdef LIBXML_THREAD_ENABLED
326 #define xmlDoValidityCheckingDefaultValue \
327 (*(__xmlDoValidityCheckingDefaultValue()))
328 #else
329 XMLPUBVAR int xmlDoValidityCheckingDefaultValue;
330 #endif
331 XMLPUBFUN int XMLCALL xmlThrDefDoValidityCheckingDefaultValue(int v);
332 
333 XMLPUBFUN xmlGenericErrorFunc * XMLCALL __xmlGenericError(void);
334 #ifdef LIBXML_THREAD_ENABLED
335 #define xmlGenericError \
336 (*(__xmlGenericError()))
337 #else
338 XMLPUBVAR xmlGenericErrorFunc xmlGenericError;
339 #endif
340 
341 XMLPUBFUN xmlStructuredErrorFunc * XMLCALL __xmlStructuredError(void);
342 #ifdef LIBXML_THREAD_ENABLED
343 #define xmlStructuredError \
344 (*(__xmlStructuredError()))
345 #else
346 XMLPUBVAR xmlStructuredErrorFunc xmlStructuredError;
347 #endif
348 
349 XMLPUBFUN void * * XMLCALL __xmlGenericErrorContext(void);
350 #ifdef LIBXML_THREAD_ENABLED
351 #define xmlGenericErrorContext \
352 (*(__xmlGenericErrorContext()))
353 #else
354 XMLPUBVAR void * xmlGenericErrorContext;
355 #endif
356 
357 XMLPUBFUN int * XMLCALL __xmlGetWarningsDefaultValue(void);
358 #ifdef LIBXML_THREAD_ENABLED
359 #define xmlGetWarningsDefaultValue \
360 (*(__xmlGetWarningsDefaultValue()))
361 #else
362 XMLPUBVAR int xmlGetWarningsDefaultValue;
363 #endif
364 XMLPUBFUN int XMLCALL xmlThrDefGetWarningsDefaultValue(int v);
365 
366 XMLPUBFUN int * XMLCALL __xmlIndentTreeOutput(void);
367 #ifdef LIBXML_THREAD_ENABLED
368 #define xmlIndentTreeOutput \
369 (*(__xmlIndentTreeOutput()))
370 #else
371 XMLPUBVAR int xmlIndentTreeOutput;
372 #endif
373 XMLPUBFUN int XMLCALL xmlThrDefIndentTreeOutput(int v);
374 
375 XMLPUBFUN const char * * XMLCALL __xmlTreeIndentString(void);
376 #ifdef LIBXML_THREAD_ENABLED
377 #define xmlTreeIndentString \
378 (*(__xmlTreeIndentString()))
379 #else
380 XMLPUBVAR const char * xmlTreeIndentString;
381 #endif
382 XMLPUBFUN const char * XMLCALL xmlThrDefTreeIndentString(const char * v);
383 
384 XMLPUBFUN int * XMLCALL __xmlKeepBlanksDefaultValue(void);
385 #ifdef LIBXML_THREAD_ENABLED
386 #define xmlKeepBlanksDefaultValue \
387 (*(__xmlKeepBlanksDefaultValue()))
388 #else
389 XMLPUBVAR int xmlKeepBlanksDefaultValue;
390 #endif
391 XMLPUBFUN int XMLCALL xmlThrDefKeepBlanksDefaultValue(int v);
392 
393 XMLPUBFUN int * XMLCALL __xmlLineNumbersDefaultValue(void);
394 #ifdef LIBXML_THREAD_ENABLED
395 #define xmlLineNumbersDefaultValue \
396 (*(__xmlLineNumbersDefaultValue()))
397 #else
398 XMLPUBVAR int xmlLineNumbersDefaultValue;
399 #endif
400 XMLPUBFUN int XMLCALL xmlThrDefLineNumbersDefaultValue(int v);
401 
402 XMLPUBFUN int * XMLCALL __xmlLoadExtDtdDefaultValue(void);
403 #ifdef LIBXML_THREAD_ENABLED
404 #define xmlLoadExtDtdDefaultValue \
405 (*(__xmlLoadExtDtdDefaultValue()))
406 #else
407 XMLPUBVAR int xmlLoadExtDtdDefaultValue;
408 #endif
409 XMLPUBFUN int XMLCALL xmlThrDefLoadExtDtdDefaultValue(int v);
410 
411 XMLPUBFUN int * XMLCALL __xmlParserDebugEntities(void);
412 #ifdef LIBXML_THREAD_ENABLED
413 #define xmlParserDebugEntities \
414 (*(__xmlParserDebugEntities()))
415 #else
416 XMLPUBVAR int xmlParserDebugEntities;
417 #endif
418 XMLPUBFUN int XMLCALL xmlThrDefParserDebugEntities(int v);
419 
420 XMLPUBFUN const char * * XMLCALL __xmlParserVersion(void);
421 #ifdef LIBXML_THREAD_ENABLED
422 #define xmlParserVersion \
423 (*(__xmlParserVersion()))
424 #else
425 XMLPUBVAR const char * xmlParserVersion;
426 #endif
427 
428 XMLPUBFUN int * XMLCALL __xmlPedanticParserDefaultValue(void);
429 #ifdef LIBXML_THREAD_ENABLED
430 #define xmlPedanticParserDefaultValue \
431 (*(__xmlPedanticParserDefaultValue()))
432 #else
433 XMLPUBVAR int xmlPedanticParserDefaultValue;
434 #endif
435 XMLPUBFUN int XMLCALL xmlThrDefPedanticParserDefaultValue(int v);
436 
437 XMLPUBFUN int * XMLCALL __xmlSaveNoEmptyTags(void);
438 #ifdef LIBXML_THREAD_ENABLED
439 #define xmlSaveNoEmptyTags \
440 (*(__xmlSaveNoEmptyTags()))
441 #else
442 XMLPUBVAR int xmlSaveNoEmptyTags;
443 #endif
444 XMLPUBFUN int XMLCALL xmlThrDefSaveNoEmptyTags(int v);
445 
446 XMLPUBFUN int * XMLCALL __xmlSubstituteEntitiesDefaultValue(void);
447 #ifdef LIBXML_THREAD_ENABLED
448 #define xmlSubstituteEntitiesDefaultValue \
449 (*(__xmlSubstituteEntitiesDefaultValue()))
450 #else
451 XMLPUBVAR int xmlSubstituteEntitiesDefaultValue;
452 #endif
453 XMLPUBFUN int XMLCALL xmlThrDefSubstituteEntitiesDefaultValue(int v);
454 
455 XMLPUBFUN xmlRegisterNodeFunc * XMLCALL __xmlRegisterNodeDefaultValue(void);
456 #ifdef LIBXML_THREAD_ENABLED
457 #define xmlRegisterNodeDefaultValue \
458 (*(__xmlRegisterNodeDefaultValue()))
459 #else
460 XMLPUBVAR xmlRegisterNodeFunc xmlRegisterNodeDefaultValue;
461 #endif
462 
463 XMLPUBFUN xmlDeregisterNodeFunc * XMLCALL __xmlDeregisterNodeDefaultValue(void);
464 #ifdef LIBXML_THREAD_ENABLED
465 #define xmlDeregisterNodeDefaultValue \
466 (*(__xmlDeregisterNodeDefaultValue()))
467 #else
468 XMLPUBVAR xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue;
469 #endif
470 
471 XMLPUBFUN xmlParserInputBufferCreateFilenameFunc * XMLCALL __xmlParserInputBufferCreateFilenameValue(void);
472 #ifdef LIBXML_THREAD_ENABLED
473 #define xmlParserInputBufferCreateFilenameValue \
474 (*(__xmlParserInputBufferCreateFilenameValue()))
475 #else
476 XMLPUBVAR xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue;
477 #endif
478 
479 XMLPUBFUN xmlOutputBufferCreateFilenameFunc * XMLCALL __xmlOutputBufferCreateFilenameValue(void);
480 #ifdef LIBXML_THREAD_ENABLED
481 #define xmlOutputBufferCreateFilenameValue \
482 (*(__xmlOutputBufferCreateFilenameValue()))
483 #else
484 XMLPUBVAR xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue;
485 #endif
486 
487 #ifdef __cplusplus
488 }
489 #endif
490 
491 #endif /* __XML_GLOBALS_H */
492