xml/libxml2libs/inc/libxml2/libxml2_dict.h
changeset 0 e35f40988205
child 25 417699dc19c9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xml/libxml2libs/inc/libxml2/libxml2_dict.h	Thu Dec 17 09:29:21 2009 +0200
@@ -0,0 +1,107 @@
+/*
+ * Summary: string dictionnary
+ * Description: dictionary of reusable strings, just used to avoid allocation
+ *         and freeing operations.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ * Portion Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. 
+ */
+
+/** @file
+@publishedAll
+@released
+*/
+
+#ifndef XML_DICT_H
+#define XML_DICT_H
+
+#include "libxml2_xmlstring.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _xmlDictStrings xmlDictStrings;
+typedef xmlDictStrings* xmlDictStringsPtr;
+
+struct _xmlDictStrings {
+    xmlDictStringsPtr next;
+    xmlChar* free;
+    xmlChar* end;
+    int size;
+    int nbStrings;
+    xmlChar array[1];
+};
+
+/*
+ * An entry in the dictionnary
+ */
+typedef struct _xmlDictEntry xmlDictEntry;
+typedef xmlDictEntry* xmlDictEntryPtr;
+struct _xmlDictEntry {
+    xmlDictEntryPtr next;
+    const xmlChar* name;
+    int len;
+    int valid;
+};
+/*
+ * The dictionnary.
+ */
+typedef struct _xmlDict xmlDict;
+typedef xmlDict* xmlDictPtr;
+
+/*
+ * The entire dictionnary
+ */
+struct _xmlDict {
+    int ref_counter;
+
+    xmlDictEntryPtr dict;
+    int size;
+    int nbElems;
+    xmlDictStringsPtr strings;
+
+    xmlDictPtr      subdict;
+};
+
+/*
+ * Constructor and destructor.
+ */
+XMLPUBFUN xmlDictPtr XMLCALL
+                        xmlDictCreate   (void);
+
+XMLPUBFUN xmlDictPtr XMLCALL xmlDictCreateSub(xmlDictPtr sub);
+
+XMLPUBFUN int XMLCALL
+                        xmlDictReference(xmlDictPtr dict);
+XMLPUBFUN void XMLCALL
+                        xmlDictFree     (xmlDictPtr dict);
+
+/*
+ * Lookup of entry in the dictionnary.
+ */
+XMLPUBFUN const xmlChar* XMLCALL
+                        xmlDictLookup   (xmlDictPtr dict,
+                                         const xmlChar *name,
+                                         int len);
+
+XMLPUBFUN const xmlChar * XMLCALL
+                        xmlDictQLookup  (xmlDictPtr dict,
+                                         const xmlChar *prefix,
+                                         const xmlChar *name);
+
+#ifndef XMLENGINE_EXCLUDE_UNUSED
+XMLPUBFUN int XMLCALL
+                        xmlDictSize     (xmlDictPtr dict);
+#endif /* ifndef XMLENGINE_EXCLUDE_UNUSED */
+
+XMLPUBFUN int XMLCALL
+                        xmlDictOwns     (xmlDictPtr dict,
+                                         const xmlChar *str);
+#ifdef __cplusplus
+}
+#endif
+#endif /* XML_DICT_H */
+