Add the versioned/persistent GTree interface.
[dana/cg-glib.git] / glib / gtree.h
index 5b1a0f3..a801caf 100644 (file)
@@ -49,7 +49,7 @@ typedef gboolean (*GTraverseFunc) (gpointer  key,
                                    gpointer  value,
                                    gpointer  data);
 
-/* Balanced binary trees
+/* Persistent balanced binary trees
  */
 GTree*   g_tree_new             (GCompareFunc      key_compare_func);
 GTree*   g_tree_new_with_data   (GCompareDataFunc  key_compare_func,
@@ -83,11 +83,26 @@ gboolean g_tree_lookup_extended (GTree            *tree,
                                  gpointer         *value);
 gpointer g_tree_lookup_related  (GTree            *tree,
                                  gconstpointer     key,
-                                 GTreeSearchType   search_type,
-                                 guint             version);
+                                 GTreeSearchType   search_type);
+gpointer g_tree_lookup_v          (GTree            *tree,
+                                   guint             version,
+                                   gconstpointer     key);
+gboolean g_tree_lookup_extended_v (GTree            *tree,
+                                   guint             version,
+                                   gconstpointer     lookup_key,
+                                   gpointer         *orig_key,
+                                   gpointer         *value);
+gpointer g_tree_lookup_related_v (GTree            *tree,
+                                  guint             version,
+                                  gconstpointer     key,
+                                  GTreeSearchType   search_type);
 void     g_tree_foreach         (GTree            *tree,
                                  GTraverseFunc    func,
                                  gpointer         user_data);
+void     g_tree_foreach_v       (GTree            *tree,
+                                 guint             version,
+                                 GTraverseFunc    func,
+                                 gpointer         user_data);
 
 #ifndef G_DISABLE_DEPRECATED
 void     g_tree_traverse        (GTree            *tree,
@@ -103,7 +118,18 @@ gpointer g_tree_search_related  (GTree            *tree,
                                  GCompareFunc      search_func,
                                  gconstpointer     user_data,
                                  GTreeSearchType   search_type);
+gpointer g_tree_search_v        (GTree            *tree,
+                                 guint             version,
+                                 GCompareFunc      search_func,
+                                 gconstpointer     user_data);
+gpointer g_tree_search_related_v(GTree            *tree,
+                                 guint             version,
+                                 GCompareFunc      search_func,
+                                 gconstpointer     user_data,
+                                 GTreeSearchType   search_type);
 gint     g_tree_height          (GTree            *tree);
+gint     g_tree_height_v        (GTree            *tree,
+                                 guint             version);
 gint     g_tree_nnodes          (GTree            *tree);
 
 G_END_DECLS