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