• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Summary: string dictionary
3  * Description: dictionary of reusable strings, just used to avoid allocation
4  *         and freeing operations.
5  *
6  * Copy: See Copyright for the status of this software.
7  *
8  * Author: Daniel Veillard
9  */
10 
11 #ifndef __XML_DICT_H__
12 #define __XML_DICT_H__
13 
14 #ifdef __cplusplus
15 #define __XML_EXTERNC	extern "C"
16 #else
17 #define __XML_EXTERNC
18 #endif
19 
20 /*
21  * The dictionary.
22  */
23 __XML_EXTERNC typedef struct _xmlDict xmlDict;
24 __XML_EXTERNC typedef xmlDict *xmlDictPtr;
25 
26 #include <limits.h>
27 #include <libxml/xmlversion.h>
28 #include <libxml/tree.h>
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
34 /*
35  * Initializer
36  */
37 XMLPUBFUN int XMLCALL  xmlInitializeDict(void);
38 
39 /*
40  * Constructor and destructor.
41  */
42 XMLPUBFUN xmlDictPtr XMLCALL
43 			xmlDictCreate	(void);
44 XMLPUBFUN size_t XMLCALL
45 			xmlDictSetLimit	(xmlDictPtr dict,
46                                          size_t limit);
47 XMLPUBFUN size_t XMLCALL
48 			xmlDictGetUsage (xmlDictPtr dict);
49 XMLPUBFUN xmlDictPtr XMLCALL
50 			xmlDictCreateSub(xmlDictPtr sub);
51 XMLPUBFUN int XMLCALL
52 			xmlDictReference(xmlDictPtr dict);
53 XMLPUBFUN void XMLCALL
54 			xmlDictFree	(xmlDictPtr dict);
55 
56 /*
57  * Lookup of entry in the dictionary.
58  */
59 XMLPUBFUN const xmlChar * XMLCALL
60 			xmlDictLookup	(xmlDictPtr dict,
61 		                         const xmlChar *name,
62 		                         int len);
63 XMLPUBFUN const xmlChar * XMLCALL
64 			xmlDictExists	(xmlDictPtr dict,
65 		                         const xmlChar *name,
66 		                         int len);
67 XMLPUBFUN const xmlChar * XMLCALL
68 			xmlDictQLookup	(xmlDictPtr dict,
69 		                         const xmlChar *prefix,
70 		                         const xmlChar *name);
71 XMLPUBFUN int XMLCALL
72 			xmlDictOwns	(xmlDictPtr dict,
73 					 const xmlChar *str);
74 XMLPUBFUN int XMLCALL
75 			xmlDictSize	(xmlDictPtr dict);
76 
77 /*
78  * Cleanup function
79  */
80 XMLPUBFUN void XMLCALL
81                         xmlDictCleanup  (void);
82 
83 #ifdef __cplusplus
84 }
85 #endif
86 #endif /* ! __XML_DICT_H__ */
87