Github User Fetcher 1.0.0
C Application with Server and GUI
Loading...
Searching...
No Matches
gtree.h
Go to the documentation of this file.
1/* GLIB - Library of useful routines for C programming
2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
3 *
4 * SPDX-License-Identifier: LGPL-2.1-or-later
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, see <http://www.gnu.org/licenses/>.
18 */
19
20/*
21 * Modified by the GLib Team and others 1997-2000. See the AUTHORS
22 * file for a list of people on the GLib Team. See the ChangeLog
23 * files for a list of changes. These files are distributed with
24 * GLib at ftp://ftp.gtk.org/pub/gtk/.
25 */
26
27#ifndef __G_TREE_H__
28#define __G_TREE_H__
29
30#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
31#error "Only <glib.h> can be included directly."
32#endif
33
34#include <glib/gnode.h>
35
37
38#undef G_TREE_DEBUG
39
40typedef struct _GTree GTree;
41
42/**
43 * GTreeNode:
44 *
45 * An opaque type which identifies a specific node in a #GTree.
46 *
47 * Since: 2.68
48 */
49typedef struct _GTreeNode GTreeNode;
50
53 gpointer data);
54
55/**
56 * GTraverseNodeFunc:
57 * @node: a #GTreeNode
58 * @data: user data passed to g_tree_foreach_node()
59 *
60 * Specifies the type of function passed to g_tree_foreach_node(). It is
61 * passed each node, together with the @user_data parameter passed to
62 * g_tree_foreach_node(). If the function returns %TRUE, the traversal is
63 * stopped.
64 *
65 * Returns: %TRUE to stop the traversal
66 * Since: 2.68
67 */
69 gpointer data);
70
71/* Balanced binary trees
72 */
74GTree* g_tree_new (GCompareFunc key_compare_func);
77 gpointer key_compare_data);
80 gpointer key_compare_data,
81 GDestroyNotify key_destroy_func,
82 GDestroyNotify value_destroy_func);
94void g_tree_unref (GTree *tree);
96void g_tree_destroy (GTree *tree);
99 gpointer key,
103 gpointer key,
107 gpointer key,
111 gpointer key,
115 gconstpointer key);
116
119
122 gconstpointer key);
129 gconstpointer key);
132 gconstpointer key);
135 gconstpointer lookup_key,
136 gpointer *orig_key,
137 gpointer *value);
140 GTraverseFunc func,
141 gpointer user_data);
145 gpointer user_data);
146
149 GTraverseFunc traverse_func,
150 GTraverseType traverse_type,
151 gpointer user_data);
152
155 GCompareFunc search_func,
156 gconstpointer user_data);
159 GCompareFunc search_func,
160 gconstpointer user_data);
163 gconstpointer key);
166 gconstpointer key);
171
172#ifdef G_TREE_DEBUG
173/*< private >*/
174#ifndef __GTK_DOC_IGNORE__
175void g_tree_dump (GTree *tree);
176#endif /* !__GTK_DOC_IGNORE__ */
177#endif /* G_TREE_DEBUG */
178
180
181#endif /* __G_TREE_H__ */
#define GLIB_AVAILABLE_IN_2_68
#define GLIB_AVAILABLE_IN_2_70
#define GLIB_AVAILABLE_IN_ALL
#define GLIB_DEPRECATED
#define G_END_DECLS
Definition gmacros.h:910
#define G_BEGIN_DECLS
Definition gmacros.h:909
GTraverseType
Definition gnode.h:53
GLIB_AVAILABLE_IN_2_68 GTreeNode * g_tree_upper_bound(GTree *tree, gconstpointer key)
gboolean(* GTraverseFunc)(gpointer key, gpointer value, gpointer data)
Definition gtree.h:51
GLIB_AVAILABLE_IN_ALL void g_tree_insert(GTree *tree, gpointer key, gpointer value)
GLIB_AVAILABLE_IN_ALL gint g_tree_nnodes(GTree *tree)
GLIB_AVAILABLE_IN_2_68 GTreeNode * g_tree_search_node(GTree *tree, GCompareFunc search_func, gconstpointer user_data)
GLIB_AVAILABLE_IN_2_70 void g_tree_remove_all(GTree *tree)
GLIB_AVAILABLE_IN_ALL gboolean g_tree_remove(GTree *tree, gconstpointer key)
GLIB_AVAILABLE_IN_ALL gpointer g_tree_search(GTree *tree, GCompareFunc search_func, gconstpointer user_data)
GLIB_AVAILABLE_IN_2_68 GTreeNode * g_tree_node_next(GTreeNode *node)
GLIB_AVAILABLE_IN_2_68 GTreeNode * g_tree_node_first(GTree *tree)
GLIB_AVAILABLE_IN_ALL gboolean g_tree_steal(GTree *tree, gconstpointer key)
GLIB_AVAILABLE_IN_2_68 GTreeNode * g_tree_insert_node(GTree *tree, gpointer key, gpointer value)
GLIB_AVAILABLE_IN_ALL GTree * g_tree_ref(GTree *tree)
GLIB_AVAILABLE_IN_ALL gint g_tree_height(GTree *tree)
GLIB_AVAILABLE_IN_2_68 GTreeNode * g_tree_replace_node(GTree *tree, gpointer key, gpointer value)
GLIB_AVAILABLE_IN_2_68 gpointer g_tree_node_key(GTreeNode *node)
GLIB_AVAILABLE_IN_2_68 GTreeNode * g_tree_node_last(GTree *tree)
GLIB_AVAILABLE_IN_ALL GTree * g_tree_new_with_data(GCompareDataFunc key_compare_func, gpointer key_compare_data)
GLIB_AVAILABLE_IN_2_68 gpointer g_tree_node_value(GTreeNode *node)
GLIB_AVAILABLE_IN_ALL void g_tree_destroy(GTree *tree)
GLIB_AVAILABLE_IN_2_68 GTreeNode * g_tree_lower_bound(GTree *tree, gconstpointer key)
GLIB_AVAILABLE_IN_ALL void g_tree_unref(GTree *tree)
struct _GTreeNode GTreeNode
Definition gtree.h:49
GLIB_AVAILABLE_IN_2_68 GTreeNode * g_tree_lookup_node(GTree *tree, gconstpointer key)
typedefG_BEGIN_DECLS struct _GTree GTree
Definition gtree.h:40
gboolean(* GTraverseNodeFunc)(GTreeNode *node, gpointer data)
Definition gtree.h:68
GLIB_AVAILABLE_IN_ALL gpointer g_tree_lookup(GTree *tree, gconstpointer key)
GLIB_AVAILABLE_IN_2_68 void g_tree_foreach_node(GTree *tree, GTraverseNodeFunc func, gpointer user_data)
GLIB_AVAILABLE_IN_ALL GTree * g_tree_new(GCompareFunc key_compare_func)
GLIB_DEPRECATED void g_tree_traverse(GTree *tree, GTraverseFunc traverse_func, GTraverseType traverse_type, gpointer user_data)
GLIB_AVAILABLE_IN_2_68 GTreeNode * g_tree_node_previous(GTreeNode *node)
GLIB_AVAILABLE_IN_ALL void g_tree_replace(GTree *tree, gpointer key, gpointer value)
GLIB_AVAILABLE_IN_ALL gboolean g_tree_lookup_extended(GTree *tree, gconstpointer lookup_key, gpointer *orig_key, gpointer *value)
GLIB_AVAILABLE_IN_ALL void g_tree_foreach(GTree *tree, GTraverseFunc func, gpointer user_data)
GLIB_AVAILABLE_IN_ALL GTree * g_tree_new_full(GCompareDataFunc key_compare_func, gpointer key_compare_data, GDestroyNotify key_destroy_func, GDestroyNotify value_destroy_func)
gint gboolean
Definition gtypes.h:56
void * gpointer
Definition gtypes.h:109
gint(* GCompareFunc)(gconstpointer a, gconstpointer b)
Definition gtypes.h:112
int gint
Definition gtypes.h:55
const void * gconstpointer
Definition gtypes.h:110
void(* GDestroyNotify)(gpointer data)
Definition gtypes.h:140
gint(* GCompareDataFunc)(gconstpointer a, gconstpointer b, gpointer user_data)
Definition gtypes.h:114
int value
Definition lsqlite3.c:2155