ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ/** * @file * * @brief string dictionary * * dictionary of reusable strings, just used to avoid allocation * and freeing operations. * * @copyright See Copyright for the status of this software. * * @author Daniel Veillard */ #ifndef __XML_DICT_H__ #define __XML_DICT_H__ #include #include #include #ifdef __cplusplus extern "C" { #endif /** * Dictionary (pool for interned strings) */ typedef struct _xmlDict xmlDict; typedef xmlDict *xmlDictPtr; /* * Initializer */ XML_DEPRECATED XMLPUBFUN int xmlInitializeDict(void); /* * Constructor and destructor. */ XMLPUBFUN xmlDict * xmlDictCreate (void); XMLPUBFUN size_t xmlDictSetLimit (xmlDict *dict, size_t limit); XMLPUBFUN size_t xmlDictGetUsage (xmlDict *dict); XMLPUBFUN xmlDict * xmlDictCreateSub(xmlDict *sub); XMLPUBFUN int xmlDictReference(xmlDict *dict); XMLPUBFUN void xmlDictFree (xmlDict *dict); /* * Lookup of entry in the dictionary. */ XMLPUBFUN const xmlChar * xmlDictLookup (xmlDict *dict, const xmlChar *name, int len); XMLPUBFUN const xmlChar * xmlDictExists (xmlDict *dict, const xmlChar *name, int len); XMLPUBFUN const xmlChar * xmlDictQLookup (xmlDict *dict, const xmlChar *prefix, const xmlChar *name); XMLPUBFUN int xmlDictOwns (xmlDict *dict, const xmlChar *str); XMLPUBFUN int xmlDictSize (xmlDict *dict); /* * Cleanup function */ XML_DEPRECATED XMLPUBFUN void xmlDictCleanup (void); #ifdef __cplusplus } #endif #endif /* ! __XML_DICT_H__ */