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