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