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 xmlStructuredErrorContext
80: #undef xmlGetWarningsDefaultValue
81: #undef xmlIndentTreeOutput
82: #undef xmlTreeIndentString
83: #undef xmlKeepBlanksDefaultValue
84: #undef xmlLineNumbersDefaultValue
85: #undef xmlLoadExtDtdDefaultValue
86: #undef xmlMalloc
87: #undef xmlMallocAtomic
88: #undef xmlMemStrdup
89: #undef xmlParserDebugEntities
90: #undef xmlParserVersion
91: #undef xmlPedanticParserDefaultValue
92: #undef xmlRealloc
93: #undef xmlSaveNoEmptyTags
94: #undef xmlSubstituteEntitiesDefaultValue
95: #undef xmlRegisterNodeDefaultValue
96: #undef xmlDeregisterNodeDefaultValue
97: #undef xmlLastError
98: #undef xmlParserInputBufferCreateFilenameValue
99: #undef xmlOutputBufferCreateFilenameValue
100:
101: /**
102: * xmlRegisterNodeFunc:
103: * @node: the current node
104: *
105: * Signature for the registration callback of a created node
106: */
107: typedef void (*xmlRegisterNodeFunc) (xmlNodePtr node);
108: /**
109: * xmlDeregisterNodeFunc:
110: * @node: the current node
111: *
112: * Signature for the deregistration callback of a discarded node
113: */
114: typedef void (*xmlDeregisterNodeFunc) (xmlNodePtr node);
115:
116: typedef struct _xmlGlobalState xmlGlobalState;
117: typedef xmlGlobalState *xmlGlobalStatePtr;
118: struct _xmlGlobalState
119: {
120: const char *xmlParserVersion;
121:
122: xmlSAXLocator xmlDefaultSAXLocator;
123: xmlSAXHandlerV1 xmlDefaultSAXHandler;
124: xmlSAXHandlerV1 docbDefaultSAXHandler;
125: xmlSAXHandlerV1 htmlDefaultSAXHandler;
126:
127: xmlFreeFunc xmlFree;
128: xmlMallocFunc xmlMalloc;
129: xmlStrdupFunc xmlMemStrdup;
130: xmlReallocFunc xmlRealloc;
131:
132: xmlGenericErrorFunc xmlGenericError;
133: xmlStructuredErrorFunc xmlStructuredError;
134: void *xmlGenericErrorContext;
135:
136: int oldXMLWDcompatibility;
137:
138: xmlBufferAllocationScheme xmlBufferAllocScheme;
139: int xmlDefaultBufferSize;
140:
141: int xmlSubstituteEntitiesDefaultValue;
142: int xmlDoValidityCheckingDefaultValue;
143: int xmlGetWarningsDefaultValue;
144: int xmlKeepBlanksDefaultValue;
145: int xmlLineNumbersDefaultValue;
146: int xmlLoadExtDtdDefaultValue;
147: int xmlParserDebugEntities;
148: int xmlPedanticParserDefaultValue;
149:
150: int xmlSaveNoEmptyTags;
151: int xmlIndentTreeOutput;
152: const char *xmlTreeIndentString;
153:
154: xmlRegisterNodeFunc xmlRegisterNodeDefaultValue;
155: xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue;
156:
157: xmlMallocFunc xmlMallocAtomic;
158: xmlError xmlLastError;
159:
160: xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue;
161: xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue;
162:
163: void *xmlStructuredErrorContext;
164: };
165:
166: #ifdef __cplusplus
167: }
168: #endif
169: #include <libxml/threads.h>
170: #ifdef __cplusplus
171: extern "C" {
172: #endif
173:
174: XMLPUBFUN void XMLCALL xmlInitializeGlobalState(xmlGlobalStatePtr gs);
175:
176: XMLPUBFUN void XMLCALL xmlThrDefSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler);
177:
178: XMLPUBFUN void XMLCALL xmlThrDefSetStructuredErrorFunc(void *ctx, xmlStructuredErrorFunc handler);
179:
180: XMLPUBFUN xmlRegisterNodeFunc XMLCALL xmlRegisterNodeDefault(xmlRegisterNodeFunc func);
181: XMLPUBFUN xmlRegisterNodeFunc XMLCALL xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func);
182: XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlDeregisterNodeDefault(xmlDeregisterNodeFunc func);
183: XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func);
184:
185: XMLPUBFUN xmlOutputBufferCreateFilenameFunc XMLCALL
186: xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func);
187: XMLPUBFUN xmlParserInputBufferCreateFilenameFunc XMLCALL
188: xmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc func);
189:
190: /** DOC_DISABLE */
191: /*
192: * In general the memory allocation entry points are not kept
193: * thread specific but this can be overridden by LIBXML_THREAD_ALLOC_ENABLED
194: * - xmlMalloc
195: * - xmlMallocAtomic
196: * - xmlRealloc
197: * - xmlMemStrdup
198: * - xmlFree
199: */
200:
201: #ifdef LIBXML_THREAD_ALLOC_ENABLED
202: #ifdef LIBXML_THREAD_ENABLED
203: XMLPUBFUN xmlMallocFunc * XMLCALL __xmlMalloc(void);
204: #define xmlMalloc \
205: (*(__xmlMalloc()))
206: #else
207: XMLPUBVAR xmlMallocFunc xmlMalloc;
208: #endif
209:
210: #ifdef LIBXML_THREAD_ENABLED
211: XMLPUBFUN xmlMallocFunc * XMLCALL __xmlMallocAtomic(void);
212: #define xmlMallocAtomic \
213: (*(__xmlMallocAtomic()))
214: #else
215: XMLPUBVAR xmlMallocFunc xmlMallocAtomic;
216: #endif
217:
218: #ifdef LIBXML_THREAD_ENABLED
219: XMLPUBFUN xmlReallocFunc * XMLCALL __xmlRealloc(void);
220: #define xmlRealloc \
221: (*(__xmlRealloc()))
222: #else
223: XMLPUBVAR xmlReallocFunc xmlRealloc;
224: #endif
225:
226: #ifdef LIBXML_THREAD_ENABLED
227: XMLPUBFUN xmlFreeFunc * XMLCALL __xmlFree(void);
228: #define xmlFree \
229: (*(__xmlFree()))
230: #else
231: XMLPUBVAR xmlFreeFunc xmlFree;
232: #endif
233:
234: #ifdef LIBXML_THREAD_ENABLED
235: XMLPUBFUN xmlStrdupFunc * XMLCALL __xmlMemStrdup(void);
236: #define xmlMemStrdup \
237: (*(__xmlMemStrdup()))
238: #else
239: XMLPUBVAR xmlStrdupFunc xmlMemStrdup;
240: #endif
241:
242: #else /* !LIBXML_THREAD_ALLOC_ENABLED */
243: XMLPUBVAR xmlMallocFunc xmlMalloc;
244: XMLPUBVAR xmlMallocFunc xmlMallocAtomic;
245: XMLPUBVAR xmlReallocFunc xmlRealloc;
246: XMLPUBVAR xmlFreeFunc xmlFree;
247: XMLPUBVAR xmlStrdupFunc xmlMemStrdup;
248: #endif /* LIBXML_THREAD_ALLOC_ENABLED */
249:
250: #ifdef LIBXML_DOCB_ENABLED
251: XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __docbDefaultSAXHandler(void);
252: #ifdef LIBXML_THREAD_ENABLED
253: #define docbDefaultSAXHandler \
254: (*(__docbDefaultSAXHandler()))
255: #else
256: XMLPUBVAR xmlSAXHandlerV1 docbDefaultSAXHandler;
257: #endif
258: #endif
259:
260: #ifdef LIBXML_HTML_ENABLED
261: XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __htmlDefaultSAXHandler(void);
262: #ifdef LIBXML_THREAD_ENABLED
263: #define htmlDefaultSAXHandler \
264: (*(__htmlDefaultSAXHandler()))
265: #else
266: XMLPUBVAR xmlSAXHandlerV1 htmlDefaultSAXHandler;
267: #endif
268: #endif
269:
270: XMLPUBFUN xmlError * XMLCALL __xmlLastError(void);
271: #ifdef LIBXML_THREAD_ENABLED
272: #define xmlLastError \
273: (*(__xmlLastError()))
274: #else
275: XMLPUBVAR xmlError xmlLastError;
276: #endif
277:
278: /*
279: * Everything starting from the line below is
280: * Automatically generated by build_glob.py.
281: * Do not modify the previous line.
282: */
283:
284:
285: XMLPUBFUN int * XMLCALL __oldXMLWDcompatibility(void);
286: #ifdef LIBXML_THREAD_ENABLED
287: #define oldXMLWDcompatibility \
288: (*(__oldXMLWDcompatibility()))
289: #else
290: XMLPUBVAR int oldXMLWDcompatibility;
291: #endif
292:
293: XMLPUBFUN xmlBufferAllocationScheme * XMLCALL __xmlBufferAllocScheme(void);
294: #ifdef LIBXML_THREAD_ENABLED
295: #define xmlBufferAllocScheme \
296: (*(__xmlBufferAllocScheme()))
297: #else
298: XMLPUBVAR xmlBufferAllocationScheme xmlBufferAllocScheme;
299: #endif
300: XMLPUBFUN xmlBufferAllocationScheme XMLCALL xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v);
301:
302: XMLPUBFUN int * XMLCALL __xmlDefaultBufferSize(void);
303: #ifdef LIBXML_THREAD_ENABLED
304: #define xmlDefaultBufferSize \
305: (*(__xmlDefaultBufferSize()))
306: #else
307: XMLPUBVAR int xmlDefaultBufferSize;
308: #endif
309: XMLPUBFUN int XMLCALL xmlThrDefDefaultBufferSize(int v);
310:
311: XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __xmlDefaultSAXHandler(void);
312: #ifdef LIBXML_THREAD_ENABLED
313: #define xmlDefaultSAXHandler \
314: (*(__xmlDefaultSAXHandler()))
315: #else
316: XMLPUBVAR xmlSAXHandlerV1 xmlDefaultSAXHandler;
317: #endif
318:
319: XMLPUBFUN xmlSAXLocator * XMLCALL __xmlDefaultSAXLocator(void);
320: #ifdef LIBXML_THREAD_ENABLED
321: #define xmlDefaultSAXLocator \
322: (*(__xmlDefaultSAXLocator()))
323: #else
324: XMLPUBVAR xmlSAXLocator xmlDefaultSAXLocator;
325: #endif
326:
327: XMLPUBFUN int * XMLCALL __xmlDoValidityCheckingDefaultValue(void);
328: #ifdef LIBXML_THREAD_ENABLED
329: #define xmlDoValidityCheckingDefaultValue \
330: (*(__xmlDoValidityCheckingDefaultValue()))
331: #else
332: XMLPUBVAR int xmlDoValidityCheckingDefaultValue;
333: #endif
334: XMLPUBFUN int XMLCALL xmlThrDefDoValidityCheckingDefaultValue(int v);
335:
336: XMLPUBFUN xmlGenericErrorFunc * XMLCALL __xmlGenericError(void);
337: #ifdef LIBXML_THREAD_ENABLED
338: #define xmlGenericError \
339: (*(__xmlGenericError()))
340: #else
341: XMLPUBVAR xmlGenericErrorFunc xmlGenericError;
342: #endif
343:
344: XMLPUBFUN xmlStructuredErrorFunc * XMLCALL __xmlStructuredError(void);
345: #ifdef LIBXML_THREAD_ENABLED
346: #define xmlStructuredError \
347: (*(__xmlStructuredError()))
348: #else
349: XMLPUBVAR xmlStructuredErrorFunc xmlStructuredError;
350: #endif
351:
352: XMLPUBFUN void * * XMLCALL __xmlGenericErrorContext(void);
353: #ifdef LIBXML_THREAD_ENABLED
354: #define xmlGenericErrorContext \
355: (*(__xmlGenericErrorContext()))
356: #else
357: XMLPUBVAR void * xmlGenericErrorContext;
358: #endif
359:
360: XMLPUBFUN void * * XMLCALL __xmlStructuredErrorContext(void);
361: #ifdef LIBXML_THREAD_ENABLED
362: #define xmlStructuredErrorContext \
363: (*(__xmlStructuredErrorContext()))
364: #else
365: XMLPUBVAR void * xmlStructuredErrorContext;
366: #endif
367:
368: XMLPUBFUN int * XMLCALL __xmlGetWarningsDefaultValue(void);
369: #ifdef LIBXML_THREAD_ENABLED
370: #define xmlGetWarningsDefaultValue \
371: (*(__xmlGetWarningsDefaultValue()))
372: #else
373: XMLPUBVAR int xmlGetWarningsDefaultValue;
374: #endif
375: XMLPUBFUN int XMLCALL xmlThrDefGetWarningsDefaultValue(int v);
376:
377: XMLPUBFUN int * XMLCALL __xmlIndentTreeOutput(void);
378: #ifdef LIBXML_THREAD_ENABLED
379: #define xmlIndentTreeOutput \
380: (*(__xmlIndentTreeOutput()))
381: #else
382: XMLPUBVAR int xmlIndentTreeOutput;
383: #endif
384: XMLPUBFUN int XMLCALL xmlThrDefIndentTreeOutput(int v);
385:
386: XMLPUBFUN const char * * XMLCALL __xmlTreeIndentString(void);
387: #ifdef LIBXML_THREAD_ENABLED
388: #define xmlTreeIndentString \
389: (*(__xmlTreeIndentString()))
390: #else
391: XMLPUBVAR const char * xmlTreeIndentString;
392: #endif
393: XMLPUBFUN const char * XMLCALL xmlThrDefTreeIndentString(const char * v);
394:
395: XMLPUBFUN int * XMLCALL __xmlKeepBlanksDefaultValue(void);
396: #ifdef LIBXML_THREAD_ENABLED
397: #define xmlKeepBlanksDefaultValue \
398: (*(__xmlKeepBlanksDefaultValue()))
399: #else
400: XMLPUBVAR int xmlKeepBlanksDefaultValue;
401: #endif
402: XMLPUBFUN int XMLCALL xmlThrDefKeepBlanksDefaultValue(int v);
403:
404: XMLPUBFUN int * XMLCALL __xmlLineNumbersDefaultValue(void);
405: #ifdef LIBXML_THREAD_ENABLED
406: #define xmlLineNumbersDefaultValue \
407: (*(__xmlLineNumbersDefaultValue()))
408: #else
409: XMLPUBVAR int xmlLineNumbersDefaultValue;
410: #endif
411: XMLPUBFUN int XMLCALL xmlThrDefLineNumbersDefaultValue(int v);
412:
413: XMLPUBFUN int * XMLCALL __xmlLoadExtDtdDefaultValue(void);
414: #ifdef LIBXML_THREAD_ENABLED
415: #define xmlLoadExtDtdDefaultValue \
416: (*(__xmlLoadExtDtdDefaultValue()))
417: #else
418: XMLPUBVAR int xmlLoadExtDtdDefaultValue;
419: #endif
420: XMLPUBFUN int XMLCALL xmlThrDefLoadExtDtdDefaultValue(int v);
421:
422: XMLPUBFUN int * XMLCALL __xmlParserDebugEntities(void);
423: #ifdef LIBXML_THREAD_ENABLED
424: #define xmlParserDebugEntities \
425: (*(__xmlParserDebugEntities()))
426: #else
427: XMLPUBVAR int xmlParserDebugEntities;
428: #endif
429: XMLPUBFUN int XMLCALL xmlThrDefParserDebugEntities(int v);
430:
431: XMLPUBFUN const char * * XMLCALL __xmlParserVersion(void);
432: #ifdef LIBXML_THREAD_ENABLED
433: #define xmlParserVersion \
434: (*(__xmlParserVersion()))
435: #else
436: XMLPUBVAR const char * xmlParserVersion;
437: #endif
438:
439: XMLPUBFUN int * XMLCALL __xmlPedanticParserDefaultValue(void);
440: #ifdef LIBXML_THREAD_ENABLED
441: #define xmlPedanticParserDefaultValue \
442: (*(__xmlPedanticParserDefaultValue()))
443: #else
444: XMLPUBVAR int xmlPedanticParserDefaultValue;
445: #endif
446: XMLPUBFUN int XMLCALL xmlThrDefPedanticParserDefaultValue(int v);
447:
448: XMLPUBFUN int * XMLCALL __xmlSaveNoEmptyTags(void);
449: #ifdef LIBXML_THREAD_ENABLED
450: #define xmlSaveNoEmptyTags \
451: (*(__xmlSaveNoEmptyTags()))
452: #else
453: XMLPUBVAR int xmlSaveNoEmptyTags;
454: #endif
455: XMLPUBFUN int XMLCALL xmlThrDefSaveNoEmptyTags(int v);
456:
457: XMLPUBFUN int * XMLCALL __xmlSubstituteEntitiesDefaultValue(void);
458: #ifdef LIBXML_THREAD_ENABLED
459: #define xmlSubstituteEntitiesDefaultValue \
460: (*(__xmlSubstituteEntitiesDefaultValue()))
461: #else
462: XMLPUBVAR int xmlSubstituteEntitiesDefaultValue;
463: #endif
464: XMLPUBFUN int XMLCALL xmlThrDefSubstituteEntitiesDefaultValue(int v);
465:
466: XMLPUBFUN xmlRegisterNodeFunc * XMLCALL __xmlRegisterNodeDefaultValue(void);
467: #ifdef LIBXML_THREAD_ENABLED
468: #define xmlRegisterNodeDefaultValue \
469: (*(__xmlRegisterNodeDefaultValue()))
470: #else
471: XMLPUBVAR xmlRegisterNodeFunc xmlRegisterNodeDefaultValue;
472: #endif
473:
474: XMLPUBFUN xmlDeregisterNodeFunc * XMLCALL __xmlDeregisterNodeDefaultValue(void);
475: #ifdef LIBXML_THREAD_ENABLED
476: #define xmlDeregisterNodeDefaultValue \
477: (*(__xmlDeregisterNodeDefaultValue()))
478: #else
479: XMLPUBVAR xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue;
480: #endif
481:
482: XMLPUBFUN xmlParserInputBufferCreateFilenameFunc * XMLCALL __xmlParserInputBufferCreateFilenameValue(void);
483: #ifdef LIBXML_THREAD_ENABLED
484: #define xmlParserInputBufferCreateFilenameValue \
485: (*(__xmlParserInputBufferCreateFilenameValue()))
486: #else
487: XMLPUBVAR xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue;
488: #endif
489:
490: XMLPUBFUN xmlOutputBufferCreateFilenameFunc * XMLCALL __xmlOutputBufferCreateFilenameValue(void);
491: #ifdef LIBXML_THREAD_ENABLED
492: #define xmlOutputBufferCreateFilenameValue \
493: (*(__xmlOutputBufferCreateFilenameValue()))
494: #else
495: XMLPUBVAR xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue;
496: #endif
497:
498: #ifdef __cplusplus
499: }
500: #endif
501:
502: #endif /* __XML_GLOBALS_H */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>