Imported Upstream version 2.9.4
[platform/upstream/libxml2.git] / include / libxml / dict.h
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__ */