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