File indexing completed on 2026-05-06 08:41:19
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027 #ifndef __G_TREE_H__
0028 #define __G_TREE_H__
0029
0030 #if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
0031 #error "Only <glib.h> can be included directly."
0032 #endif
0033
0034 #include <glib/gnode.h>
0035
0036 G_BEGIN_DECLS
0037
0038 #undef G_TREE_DEBUG
0039
0040 typedef struct _GTree GTree;
0041
0042
0043
0044
0045
0046
0047
0048
0049 typedef struct _GTreeNode GTreeNode;
0050
0051 typedef gboolean (*GTraverseFunc) (gpointer key,
0052 gpointer value,
0053 gpointer data);
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068 typedef gboolean (*GTraverseNodeFunc) (GTreeNode *node,
0069 gpointer data);
0070
0071
0072
0073 GLIB_AVAILABLE_IN_ALL
0074 GTree* g_tree_new (GCompareFunc key_compare_func);
0075 GLIB_AVAILABLE_IN_ALL
0076 GTree* g_tree_new_with_data (GCompareDataFunc key_compare_func,
0077 gpointer key_compare_data);
0078 GLIB_AVAILABLE_IN_ALL
0079 GTree* g_tree_new_full (GCompareDataFunc key_compare_func,
0080 gpointer key_compare_data,
0081 GDestroyNotify key_destroy_func,
0082 GDestroyNotify value_destroy_func);
0083 GLIB_AVAILABLE_IN_2_68
0084 GTreeNode *g_tree_node_first (GTree *tree);
0085 GLIB_AVAILABLE_IN_2_68
0086 GTreeNode *g_tree_node_last (GTree *tree);
0087 GLIB_AVAILABLE_IN_2_68
0088 GTreeNode *g_tree_node_previous (GTreeNode *node);
0089 GLIB_AVAILABLE_IN_2_68
0090 GTreeNode *g_tree_node_next (GTreeNode *node);
0091 GLIB_AVAILABLE_IN_ALL
0092 GTree* g_tree_ref (GTree *tree);
0093 GLIB_AVAILABLE_IN_ALL
0094 void g_tree_unref (GTree *tree);
0095 GLIB_AVAILABLE_IN_ALL
0096 void g_tree_destroy (GTree *tree);
0097 GLIB_AVAILABLE_IN_2_68
0098 GTreeNode *g_tree_insert_node (GTree *tree,
0099 gpointer key,
0100 gpointer value);
0101 GLIB_AVAILABLE_IN_ALL
0102 void g_tree_insert (GTree *tree,
0103 gpointer key,
0104 gpointer value);
0105 GLIB_AVAILABLE_IN_2_68
0106 GTreeNode *g_tree_replace_node (GTree *tree,
0107 gpointer key,
0108 gpointer value);
0109 GLIB_AVAILABLE_IN_ALL
0110 void g_tree_replace (GTree *tree,
0111 gpointer key,
0112 gpointer value);
0113 GLIB_AVAILABLE_IN_ALL
0114 gboolean g_tree_remove (GTree *tree,
0115 gconstpointer key);
0116
0117 GLIB_AVAILABLE_IN_2_70
0118 void g_tree_remove_all (GTree *tree);
0119
0120 GLIB_AVAILABLE_IN_ALL
0121 gboolean g_tree_steal (GTree *tree,
0122 gconstpointer key);
0123 GLIB_AVAILABLE_IN_2_68
0124 gpointer g_tree_node_key (GTreeNode *node);
0125 GLIB_AVAILABLE_IN_2_68
0126 gpointer g_tree_node_value (GTreeNode *node);
0127 GLIB_AVAILABLE_IN_2_68
0128 GTreeNode *g_tree_lookup_node (GTree *tree,
0129 gconstpointer key);
0130 GLIB_AVAILABLE_IN_ALL
0131 gpointer g_tree_lookup (GTree *tree,
0132 gconstpointer key);
0133 GLIB_AVAILABLE_IN_ALL
0134 gboolean g_tree_lookup_extended (GTree *tree,
0135 gconstpointer lookup_key,
0136 gpointer *orig_key,
0137 gpointer *value);
0138 GLIB_AVAILABLE_IN_ALL
0139 void g_tree_foreach (GTree *tree,
0140 GTraverseFunc func,
0141 gpointer user_data);
0142 GLIB_AVAILABLE_IN_2_68
0143 void g_tree_foreach_node (GTree *tree,
0144 GTraverseNodeFunc func,
0145 gpointer user_data);
0146
0147 GLIB_DEPRECATED
0148 void g_tree_traverse (GTree *tree,
0149 GTraverseFunc traverse_func,
0150 GTraverseType traverse_type,
0151 gpointer user_data);
0152
0153 GLIB_AVAILABLE_IN_2_68
0154 GTreeNode *g_tree_search_node (GTree *tree,
0155 GCompareFunc search_func,
0156 gconstpointer user_data);
0157 GLIB_AVAILABLE_IN_ALL
0158 gpointer g_tree_search (GTree *tree,
0159 GCompareFunc search_func,
0160 gconstpointer user_data);
0161 GLIB_AVAILABLE_IN_2_68
0162 GTreeNode *g_tree_lower_bound (GTree *tree,
0163 gconstpointer key);
0164 GLIB_AVAILABLE_IN_2_68
0165 GTreeNode *g_tree_upper_bound (GTree *tree,
0166 gconstpointer key);
0167 GLIB_AVAILABLE_IN_ALL
0168 gint g_tree_height (GTree *tree);
0169 GLIB_AVAILABLE_IN_ALL
0170 gint g_tree_nnodes (GTree *tree);
0171
0172 #ifdef G_TREE_DEBUG
0173
0174 #ifndef __GTK_DOC_IGNORE__
0175 void g_tree_dump (GTree *tree);
0176 #endif
0177 #endif
0178
0179 G_END_DECLS
0180
0181 #endif