Github User Fetcher 1.0.0
C Application with Server and GUI
Loading...
Searching...
No Matches
gqueue.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_QUEUE_H__
28#define __G_QUEUE_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/glist.h>
35
37
38typedef struct _GQueue GQueue;
39
40/**
41 * GQueue:
42 * @head: a pointer to the first element of the queue
43 * @tail: a pointer to the last element of the queue
44 * @length: the number of elements in the queue
45 *
46 * Contains the public fields of a
47 * [Queue][glib-Double-ended-Queues].
48 */
55
56/**
57 * G_QUEUE_INIT:
58 *
59 * A statically-allocated #GQueue must be initialized with this
60 * macro before it can be used. This macro can be used to initialize
61 * a variable, but it cannot be assigned to a variable. In that case
62 * you have to use g_queue_init().
63 *
64 * |[
65 * GQueue my_queue = G_QUEUE_INIT;
66 * ]|
67 *
68 * Since: 2.14
69 */
70#define G_QUEUE_INIT { NULL, NULL, 0 }
71
72/* Queues
73 */
77void g_queue_free (GQueue *queue);
80 GDestroyNotify free_func);
82void g_queue_init (GQueue *queue);
84void g_queue_clear (GQueue *queue);
89 GDestroyNotify free_func);
93void g_queue_reverse (GQueue *queue);
98 GFunc func,
99 gpointer user_data);
102 gconstpointer data);
105 gconstpointer data,
106 GCompareFunc func);
108void g_queue_sort (GQueue *queue,
109 GCompareDataFunc compare_func,
110 gpointer user_data);
111
114 gpointer data);
117 gpointer data);
120 gpointer data,
121 gint n);
128 guint n);
135 guint n);
138 gconstpointer data);
141 gconstpointer data);
144 gconstpointer data);
147 GList *sibling,
148 gpointer data);
151 (GQueue *queue,
152 GList *sibling,
153 GList *link_);
156 GList *sibling,
157 gpointer data);
160 (GQueue *queue,
161 GList *sibling,
162 GList *link_);
165 gpointer data,
166 GCompareDataFunc func,
167 gpointer user_data);
168
171 GList *link_);
174 GList *link_);
177 gint n,
178 GList *link_);
185 guint n);
192 guint n);
195 GList *link_);
198 GList *link_);
201 GList *link_);
202
204
205#endif /* __G_QUEUE_H__ */
#define GLIB_AVAILABLE_IN_2_60
#define GLIB_AVAILABLE_IN_ALL
#define GLIB_AVAILABLE_IN_2_62
typedefG_BEGIN_DECLS struct _GList GList
Definition glist.h:39
#define G_END_DECLS
Definition gmacros.h:910
#define G_BEGIN_DECLS
Definition gmacros.h:909
GLIB_AVAILABLE_IN_ALL void g_queue_foreach(GQueue *queue, GFunc func, gpointer user_data)
GLIB_AVAILABLE_IN_ALL void g_queue_init(GQueue *queue)
GLIB_AVAILABLE_IN_ALL void g_queue_free(GQueue *queue)
GLIB_AVAILABLE_IN_ALL guint g_queue_remove_all(GQueue *queue, gconstpointer data)
GLIB_AVAILABLE_IN_ALL void g_queue_unlink(GQueue *queue, GList *link_)
GLIB_AVAILABLE_IN_ALL gpointer g_queue_pop_head(GQueue *queue)
GLIB_AVAILABLE_IN_ALL gpointer g_queue_peek_tail(GQueue *queue)
GLIB_AVAILABLE_IN_ALL GList * g_queue_pop_nth_link(GQueue *queue, guint n)
GLIB_AVAILABLE_IN_ALL GList * g_queue_peek_tail_link(GQueue *queue)
typedefG_BEGIN_DECLS struct _GQueue GQueue
Definition gqueue.h:38
GLIB_AVAILABLE_IN_ALL gint g_queue_link_index(GQueue *queue, GList *link_)
GLIB_AVAILABLE_IN_ALL GList * g_queue_find_custom(GQueue *queue, gconstpointer data, GCompareFunc func)
GLIB_AVAILABLE_IN_ALL void g_queue_sort(GQueue *queue, GCompareDataFunc compare_func, gpointer user_data)
GLIB_AVAILABLE_IN_ALL gint g_queue_index(GQueue *queue, gconstpointer data)
GLIB_AVAILABLE_IN_ALL void g_queue_reverse(GQueue *queue)
GLIB_AVAILABLE_IN_ALL gpointer g_queue_peek_head(GQueue *queue)
GLIB_AVAILABLE_IN_ALL void g_queue_insert_before(GQueue *queue, GList *sibling, gpointer data)
GLIB_AVAILABLE_IN_ALL GList * g_queue_find(GQueue *queue, gconstpointer data)
GLIB_AVAILABLE_IN_ALL gpointer g_queue_pop_tail(GQueue *queue)
GLIB_AVAILABLE_IN_ALL GList * g_queue_peek_nth_link(GQueue *queue, guint n)
GLIB_AVAILABLE_IN_ALL gboolean g_queue_is_empty(GQueue *queue)
GLIB_AVAILABLE_IN_ALL guint g_queue_get_length(GQueue *queue)
GLIB_AVAILABLE_IN_ALL GList * g_queue_peek_head_link(GQueue *queue)
GLIB_AVAILABLE_IN_ALL GList * g_queue_pop_head_link(GQueue *queue)
GLIB_AVAILABLE_IN_ALL void g_queue_free_full(GQueue *queue, GDestroyNotify free_func)
GLIB_AVAILABLE_IN_ALL void g_queue_clear(GQueue *queue)
GLIB_AVAILABLE_IN_2_60 void g_queue_clear_full(GQueue *queue, GDestroyNotify free_func)
GLIB_AVAILABLE_IN_ALL void g_queue_insert_after(GQueue *queue, GList *sibling, gpointer data)
GLIB_AVAILABLE_IN_ALL void g_queue_push_tail_link(GQueue *queue, GList *link_)
GLIB_AVAILABLE_IN_ALL GQueue * g_queue_copy(GQueue *queue)
GLIB_AVAILABLE_IN_2_62 void g_queue_insert_before_link(GQueue *queue, GList *sibling, GList *link_)
GLIB_AVAILABLE_IN_ALL gpointer g_queue_peek_nth(GQueue *queue, guint n)
GLIB_AVAILABLE_IN_ALL void g_queue_push_nth(GQueue *queue, gpointer data, gint n)
GLIB_AVAILABLE_IN_ALL void g_queue_push_head(GQueue *queue, gpointer data)
GLIB_AVAILABLE_IN_ALL void g_queue_push_head_link(GQueue *queue, GList *link_)
GLIB_AVAILABLE_IN_ALL void g_queue_push_tail(GQueue *queue, gpointer data)
GLIB_AVAILABLE_IN_ALL void g_queue_delete_link(GQueue *queue, GList *link_)
GLIB_AVAILABLE_IN_2_62 void g_queue_insert_after_link(GQueue *queue, GList *sibling, GList *link_)
GLIB_AVAILABLE_IN_ALL GQueue * g_queue_new(void)
GLIB_AVAILABLE_IN_ALL void g_queue_push_nth_link(GQueue *queue, gint n, GList *link_)
GLIB_AVAILABLE_IN_ALL void g_queue_insert_sorted(GQueue *queue, gpointer data, GCompareDataFunc func, gpointer user_data)
GLIB_AVAILABLE_IN_ALL GList * g_queue_pop_tail_link(GQueue *queue)
GLIB_AVAILABLE_IN_ALL gboolean g_queue_remove(GQueue *queue, gconstpointer data)
GLIB_AVAILABLE_IN_ALL gpointer g_queue_pop_nth(GQueue *queue, guint n)
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(* GFunc)(gpointer data, gpointer user_data)
Definition gtypes.h:141
void(* GDestroyNotify)(gpointer data)
Definition gtypes.h:140
unsigned int guint
Definition gtypes.h:61
gint(* GCompareDataFunc)(gconstpointer a, gconstpointer b, gpointer user_data)
Definition gtypes.h:114
guint length
Definition gqueue.h:53
GList * tail
Definition gqueue.h:52
GList * head
Definition gqueue.h:51