1 /*
2  * Summary: string dictionnary
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 #include <limits.h>
15 #include <libxml/xmlversion.h>
16 #include <libxml/tree.h>
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22 /*
23  * The dictionnary.
24  */
25 typedef struct _xmlDict xmlDict;
26 typedef xmlDict *xmlDictPtr;
27 
28 /*
29  * Initializer
30  */
31 XMLPUBFUN int XMLCALL  xmlInitializeDict(void);
32 
33 /*
34  * Constructor and destructor.
35  */
36 XMLPUBFUN xmlDictPtr XMLCALL
37 			xmlDictCreate	(void);
38 XMLPUBFUN size_t XMLCALL
39 			xmlDictSetLimit	(xmlDictPtr dict,
40                                          size_t limit);
41 XMLPUBFUN size_t XMLCALL
42 			xmlDictGetUsage (xmlDictPtr dict);
43 XMLPUBFUN xmlDictPtr XMLCALL
44 			xmlDictCreateSub(xmlDictPtr sub);
45 XMLPUBFUN int XMLCALL
46 			xmlDictReference(xmlDictPtr dict);
47 XMLPUBFUN void XMLCALL
48 			xmlDictFree	(xmlDictPtr dict);
49 
50 /*
51  * Lookup of entry in the dictionnary.
52  */
53 XMLPUBFUN const xmlChar * XMLCALL
54 			xmlDictLookup	(xmlDictPtr dict,
55 		                         const xmlChar *name,
56 		                         int len);
57 XMLPUBFUN const xmlChar * XMLCALL
58 			xmlDictExists	(xmlDictPtr dict,
59 		                         const xmlChar *name,
60 		                         int len);
61 XMLPUBFUN const xmlChar * XMLCALL
62 			xmlDictQLookup	(xmlDictPtr dict,
63 		                         const xmlChar *prefix,
64 		                         const xmlChar *name);
65 XMLPUBFUN int XMLCALL
66 			xmlDictOwns	(xmlDictPtr dict,
67 					 const xmlChar *str);
68 XMLPUBFUN int XMLCALL
69 			xmlDictSize	(xmlDictPtr dict);
70 
71 /*
72  * Cleanup function
73  */
74 XMLPUBFUN void XMLCALL
75                         xmlDictCleanup  (void);
76 
77 #ifdef __cplusplus
78 }
79 #endif
80 #endif /* ! __XML_DICT_H__ */
81