1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>Double-ended Queues</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
7 <link rel="home" href="index.html" title="GLib Reference Manual">
8 <link rel="up" href="glib-data-types.html" title="GLib Data Types">
9 <link rel="prev" href="glib-Singly-Linked-Lists.html" title="Singly-Linked Lists">
10 <link rel="next" href="glib-Sequences.html" title="Sequences">
11 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
17 <td><a accesskey="p" href="glib-Singly-Linked-Lists.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="glib-data-types.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20 <th width="100%" align="center">GLib Reference Manual</th>
21 <td><a accesskey="n" href="glib-Sequences.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#glib-Double-ended-Queues.synopsis" class="shortcut">Top</a>
26 <a href="#glib-Double-ended-Queues.description" class="shortcut">Description</a>
29 <div class="refentry">
30 <a name="glib-Double-ended-Queues"></a><div class="titlepage"></div>
31 <div class="refnamediv"><table width="100%"><tr>
33 <h2><span class="refentrytitle"><a name="glib-Double-ended-Queues.top_of_page"></a>Double-ended Queues</span></h2>
34 <p>Double-ended Queues — double-ended queue data structure</p>
36 <td valign="top" align="right"></td>
38 <div class="refsynopsisdiv">
39 <a name="glib-Double-ended-Queues.synopsis"></a><h2>Synopsis</h2>
40 <pre class="synopsis">
41 #include <glib.h>
43 struct <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue">GQueue</a>;
44 <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="returnvalue">GQueue</span></a> * <a class="link" href="glib-Double-ended-Queues.html#g-queue-new" title="g_queue_new ()">g_queue_new</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
45 <span class="returnvalue">void</span> <a class="link" href="glib-Double-ended-Queues.html#g-queue-free" title="g_queue_free ()">g_queue_free</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);
46 <span class="returnvalue">void</span> <a class="link" href="glib-Double-ended-Queues.html#g-queue-free-full" title="g_queue_free_full ()">g_queue_free_full</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
47 <em class="parameter"><code><a class="link" href="glib-Datasets.html#GDestroyNotify" title="GDestroyNotify ()"><span class="type">GDestroyNotify</span></a> free_func</code></em>);
48 #define <a class="link" href="glib-Double-ended-Queues.html#G-QUEUE-INIT:CAPS" title="G_QUEUE_INIT">G_QUEUE_INIT</a>
49 <span class="returnvalue">void</span> <a class="link" href="glib-Double-ended-Queues.html#g-queue-init" title="g_queue_init ()">g_queue_init</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);
50 <span class="returnvalue">void</span> <a class="link" href="glib-Double-ended-Queues.html#g-queue-clear" title="g_queue_clear ()">g_queue_clear</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);
51 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-Double-ended-Queues.html#g-queue-is-empty" title="g_queue_is_empty ()">g_queue_is_empty</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);
52 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> <a class="link" href="glib-Double-ended-Queues.html#g-queue-get-length" title="g_queue_get_length ()">g_queue_get_length</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);
53 <span class="returnvalue">void</span> <a class="link" href="glib-Double-ended-Queues.html#g-queue-reverse" title="g_queue_reverse ()">g_queue_reverse</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);
54 <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="returnvalue">GQueue</span></a> * <a class="link" href="glib-Double-ended-Queues.html#g-queue-copy" title="g_queue_copy ()">g_queue_copy</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);
55 <span class="returnvalue">void</span> <a class="link" href="glib-Double-ended-Queues.html#g-queue-foreach" title="g_queue_foreach ()">g_queue_foreach</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
56 <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GFunc" title="GFunc ()"><span class="type">GFunc</span></a> func</code></em>,
57 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
58 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="returnvalue">GList</span></a> * <a class="link" href="glib-Double-ended-Queues.html#g-queue-find" title="g_queue_find ()">g_queue_find</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
59 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="type">gconstpointer</span></a> data</code></em>);
60 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="returnvalue">GList</span></a> * <a class="link" href="glib-Double-ended-Queues.html#g-queue-find-custom" title="g_queue_find_custom ()">g_queue_find_custom</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
61 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="type">gconstpointer</span></a> data</code></em>,
62 <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GCompareFunc" title="GCompareFunc ()"><span class="type">GCompareFunc</span></a> func</code></em>);
63 <span class="returnvalue">void</span> <a class="link" href="glib-Double-ended-Queues.html#g-queue-sort" title="g_queue_sort ()">g_queue_sort</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
64 <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="type">GCompareDataFunc</span></a> compare_func</code></em>,
65 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
66 <span class="returnvalue">void</span> <a class="link" href="glib-Double-ended-Queues.html#g-queue-push-head" title="g_queue_push_head ()">g_queue_push_head</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
67 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>);
68 <span class="returnvalue">void</span> <a class="link" href="glib-Double-ended-Queues.html#g-queue-push-tail" title="g_queue_push_tail ()">g_queue_push_tail</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
69 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>);
70 <span class="returnvalue">void</span> <a class="link" href="glib-Double-ended-Queues.html#g-queue-push-nth" title="g_queue_push_nth ()">g_queue_push_nth</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
71 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>,
72 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> n</code></em>);
73 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> <a class="link" href="glib-Double-ended-Queues.html#g-queue-pop-head" title="g_queue_pop_head ()">g_queue_pop_head</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);
74 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> <a class="link" href="glib-Double-ended-Queues.html#g-queue-pop-tail" title="g_queue_pop_tail ()">g_queue_pop_tail</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);
75 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> <a class="link" href="glib-Double-ended-Queues.html#g-queue-pop-nth" title="g_queue_pop_nth ()">g_queue_pop_nth</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
76 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> n</code></em>);
77 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> <a class="link" href="glib-Double-ended-Queues.html#g-queue-peek-head" title="g_queue_peek_head ()">g_queue_peek_head</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);
78 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> <a class="link" href="glib-Double-ended-Queues.html#g-queue-peek-tail" title="g_queue_peek_tail ()">g_queue_peek_tail</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);
79 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> <a class="link" href="glib-Double-ended-Queues.html#g-queue-peek-nth" title="g_queue_peek_nth ()">g_queue_peek_nth</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
80 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> n</code></em>);
81 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> <a class="link" href="glib-Double-ended-Queues.html#g-queue-index" title="g_queue_index ()">g_queue_index</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
82 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="type">gconstpointer</span></a> data</code></em>);
83 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-Double-ended-Queues.html#g-queue-remove" title="g_queue_remove ()">g_queue_remove</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
84 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="type">gconstpointer</span></a> data</code></em>);
85 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> <a class="link" href="glib-Double-ended-Queues.html#g-queue-remove-all" title="g_queue_remove_all ()">g_queue_remove_all</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
86 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="type">gconstpointer</span></a> data</code></em>);
87 <span class="returnvalue">void</span> <a class="link" href="glib-Double-ended-Queues.html#g-queue-insert-before" title="g_queue_insert_before ()">g_queue_insert_before</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
88 <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> *sibling</code></em>,
89 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>);
90 <span class="returnvalue">void</span> <a class="link" href="glib-Double-ended-Queues.html#g-queue-insert-after" title="g_queue_insert_after ()">g_queue_insert_after</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
91 <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> *sibling</code></em>,
92 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>);
93 <span class="returnvalue">void</span> <a class="link" href="glib-Double-ended-Queues.html#g-queue-insert-sorted" title="g_queue_insert_sorted ()">g_queue_insert_sorted</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
94 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>,
95 <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="type">GCompareDataFunc</span></a> func</code></em>,
96 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
97 <span class="returnvalue">void</span> <a class="link" href="glib-Double-ended-Queues.html#g-queue-push-head-link" title="g_queue_push_head_link ()">g_queue_push_head_link</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
98 <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> *link_</code></em>);
99 <span class="returnvalue">void</span> <a class="link" href="glib-Double-ended-Queues.html#g-queue-push-tail-link" title="g_queue_push_tail_link ()">g_queue_push_tail_link</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
100 <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> *link_</code></em>);
101 <span class="returnvalue">void</span> <a class="link" href="glib-Double-ended-Queues.html#g-queue-push-nth-link" title="g_queue_push_nth_link ()">g_queue_push_nth_link</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
102 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> n</code></em>,
103 <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> *link_</code></em>);
104 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="returnvalue">GList</span></a> * <a class="link" href="glib-Double-ended-Queues.html#g-queue-pop-head-link" title="g_queue_pop_head_link ()">g_queue_pop_head_link</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);
105 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="returnvalue">GList</span></a> * <a class="link" href="glib-Double-ended-Queues.html#g-queue-pop-tail-link" title="g_queue_pop_tail_link ()">g_queue_pop_tail_link</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);
106 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="returnvalue">GList</span></a> * <a class="link" href="glib-Double-ended-Queues.html#g-queue-pop-nth-link" title="g_queue_pop_nth_link ()">g_queue_pop_nth_link</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
107 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> n</code></em>);
108 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="returnvalue">GList</span></a> * <a class="link" href="glib-Double-ended-Queues.html#g-queue-peek-head-link" title="g_queue_peek_head_link ()">g_queue_peek_head_link</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);
109 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="returnvalue">GList</span></a> * <a class="link" href="glib-Double-ended-Queues.html#g-queue-peek-tail-link" title="g_queue_peek_tail_link ()">g_queue_peek_tail_link</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);
110 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="returnvalue">GList</span></a> * <a class="link" href="glib-Double-ended-Queues.html#g-queue-peek-nth-link" title="g_queue_peek_nth_link ()">g_queue_peek_nth_link</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
111 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> n</code></em>);
112 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> <a class="link" href="glib-Double-ended-Queues.html#g-queue-link-index" title="g_queue_link_index ()">g_queue_link_index</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
113 <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> *link_</code></em>);
114 <span class="returnvalue">void</span> <a class="link" href="glib-Double-ended-Queues.html#g-queue-unlink" title="g_queue_unlink ()">g_queue_unlink</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
115 <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> *link_</code></em>);
116 <span class="returnvalue">void</span> <a class="link" href="glib-Double-ended-Queues.html#g-queue-delete-link" title="g_queue_delete_link ()">g_queue_delete_link</a> (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
117 <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> *link_</code></em>);
120 <div class="refsect1">
121 <a name="glib-Double-ended-Queues.description"></a><h2>Description</h2>
123 The <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> structure and its associated functions provide a standard
124 queue data structure. Internally, GQueue uses the same data structure
125 as <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> to store elements.
128 The data contained in each element can be either integer values, by
129 using one of the <a class="link" href="glib-Type-Conversion-Macros.html" title="Type Conversion Macros">Type
130 Conversion Macros</a>, or simply pointers to any type of data.
133 To create a new GQueue, use <a class="link" href="glib-Double-ended-Queues.html#g-queue-new" title="g_queue_new ()"><code class="function">g_queue_new()</code></a>.
136 To initialize a statically-allocated GQueue, use <a class="link" href="glib-Double-ended-Queues.html#G-QUEUE-INIT:CAPS" title="G_QUEUE_INIT"><span class="type">G_QUEUE_INIT</span></a> or
137 <a class="link" href="glib-Double-ended-Queues.html#g-queue-init" title="g_queue_init ()"><code class="function">g_queue_init()</code></a>.
140 To add elements, use <a class="link" href="glib-Double-ended-Queues.html#g-queue-push-head" title="g_queue_push_head ()"><code class="function">g_queue_push_head()</code></a>, <a class="link" href="glib-Double-ended-Queues.html#g-queue-push-head-link" title="g_queue_push_head_link ()"><code class="function">g_queue_push_head_link()</code></a>,
141 <a class="link" href="glib-Double-ended-Queues.html#g-queue-push-tail" title="g_queue_push_tail ()"><code class="function">g_queue_push_tail()</code></a> and <a class="link" href="glib-Double-ended-Queues.html#g-queue-push-tail-link" title="g_queue_push_tail_link ()"><code class="function">g_queue_push_tail_link()</code></a>.
144 To remove elements, use <a class="link" href="glib-Double-ended-Queues.html#g-queue-pop-head" title="g_queue_pop_head ()"><code class="function">g_queue_pop_head()</code></a> and <a class="link" href="glib-Double-ended-Queues.html#g-queue-pop-tail" title="g_queue_pop_tail ()"><code class="function">g_queue_pop_tail()</code></a>.
147 To free the entire queue, use <a class="link" href="glib-Double-ended-Queues.html#g-queue-free" title="g_queue_free ()"><code class="function">g_queue_free()</code></a>.
150 <div class="refsect1">
151 <a name="glib-Double-ended-Queues.details"></a><h2>Details</h2>
152 <div class="refsect2">
153 <a name="GQueue"></a><h3>struct GQueue</h3>
154 <pre class="programlisting">struct GQueue {
161 Contains the public fields of a
162 <a class="link" href="glib-Double-ended-Queues.html" title="Double-ended Queues">Queue</a>.
164 <div class="variablelist"><table border="0">
165 <col align="left" valign="top">
168 <td><p><span class="term"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GQueue.head"></a>head</code></em>;</span></p></td>
169 <td>a pointer to the first element of the queue</td>
172 <td><p><span class="term"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GQueue.tail"></a>tail</code></em>;</span></p></td>
173 <td>a pointer to the last element of the queue</td>
176 <td><p><span class="term"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GQueue.length"></a>length</code></em>;</span></p></td>
177 <td>the number of elements in the queue</td>
183 <div class="refsect2">
184 <a name="g-queue-new"></a><h3>g_queue_new ()</h3>
185 <pre class="programlisting"><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="returnvalue">GQueue</span></a> * g_queue_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
187 Creates a new <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>.
189 <div class="variablelist"><table border="0">
190 <col align="left" valign="top">
192 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
193 <td>a new <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>.</td>
198 <div class="refsect2">
199 <a name="g-queue-free"></a><h3>g_queue_free ()</h3>
200 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_free (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);</pre>
202 Frees the memory allocated for the <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>. Only call this function if
203 <em class="parameter"><code>queue</code></em> was created with <a class="link" href="glib-Double-ended-Queues.html#g-queue-new" title="g_queue_new ()"><code class="function">g_queue_new()</code></a>. If queue elements contain
204 dynamically-allocated memory, they should be freed first.
208 <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
209 <h3 class="title">Note</h3>
211 If queue elements contain dynamically-allocated memory,
212 you should either use <a class="link" href="glib-Double-ended-Queues.html#g-queue-free-full" title="g_queue_free_full ()"><code class="function">g_queue_free_full()</code></a> or free them manually
218 <div class="variablelist"><table border="0">
219 <col align="left" valign="top">
221 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
222 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>.</td>
227 <div class="refsect2">
228 <a name="g-queue-free-full"></a><h3>g_queue_free_full ()</h3>
229 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_free_full (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
230 <em class="parameter"><code><a class="link" href="glib-Datasets.html#GDestroyNotify" title="GDestroyNotify ()"><span class="type">GDestroyNotify</span></a> free_func</code></em>);</pre>
232 Convenience method, which frees all the memory used by a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>, and
233 calls the specified destroy function on every element's data.
235 <div class="variablelist"><table border="0">
236 <col align="left" valign="top">
239 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
240 <td>a pointer to a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
244 <td><p><span class="term"><em class="parameter"><code>free_func</code></em> :</span></p></td>
245 <td>the function to be called to free each element's data</td>
249 <p class="since">Since 2.32</p>
252 <div class="refsect2">
253 <a name="G-QUEUE-INIT:CAPS"></a><h3>G_QUEUE_INIT</h3>
254 <pre class="programlisting">#define G_QUEUE_INIT { NULL, NULL, 0 }
257 A statically-allocated <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> must be initialized with this
258 macro before it can be used. This macro can be used to initialize
259 a variable, but it cannot be assigned to a variable. In that case
260 you have to use <a class="link" href="glib-Double-ended-Queues.html#g-queue-init" title="g_queue_init ()"><code class="function">g_queue_init()</code></a>.
264 <div class="informalexample">
265 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
268 <td class="listing_lines" align="right"><pre>1</pre></td>
269 <td class="listing_code"><pre class="programlisting"><span class="usertype">GQueue</span><span class="normal"> my_queue </span><span class="symbol">=</span><span class="normal"> <a href="glib-Double-ended-Queues.html#G-QUEUE-INIT:CAPS">G_QUEUE_INIT</a></span><span class="symbol">;</span></pre></td>
277 <p class="since">Since 2.14</p>
280 <div class="refsect2">
281 <a name="g-queue-init"></a><h3>g_queue_init ()</h3>
282 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_init (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);</pre>
284 A statically-allocated <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> must be initialized with this function
285 before it can be used. Alternatively you can initialize it with
286 <a class="link" href="glib-Double-ended-Queues.html#G-QUEUE-INIT:CAPS" title="G_QUEUE_INIT"><span class="type">G_QUEUE_INIT</span></a>. It is not necessary to initialize queues created with
287 <a class="link" href="glib-Double-ended-Queues.html#g-queue-new" title="g_queue_new ()"><code class="function">g_queue_new()</code></a>.
289 <div class="variablelist"><table border="0">
290 <col align="left" valign="top">
292 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
293 <td>an uninitialized <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
297 <p class="since">Since 2.14</p>
300 <div class="refsect2">
301 <a name="g-queue-clear"></a><h3>g_queue_clear ()</h3>
302 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_clear (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);</pre>
304 Removes all the elements in <em class="parameter"><code>queue</code></em>. If queue elements contain
305 dynamically-allocated memory, they should be freed first.
307 <div class="variablelist"><table border="0">
308 <col align="left" valign="top">
310 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
311 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
315 <p class="since">Since 2.14</p>
318 <div class="refsect2">
319 <a name="g-queue-is-empty"></a><h3>g_queue_is_empty ()</h3>
320 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_queue_is_empty (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);</pre>
322 Returns <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the queue is empty.
324 <div class="variablelist"><table border="0">
325 <col align="left" valign="top">
328 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
329 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>.</td>
332 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
334 <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the queue is empty.</td>
340 <div class="refsect2">
341 <a name="g-queue-get-length"></a><h3>g_queue_get_length ()</h3>
342 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> g_queue_get_length (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);</pre>
344 Returns the number of items in <em class="parameter"><code>queue</code></em>.
346 <div class="variablelist"><table border="0">
347 <col align="left" valign="top">
350 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
351 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
355 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
356 <td>The number of items in <em class="parameter"><code>queue</code></em>.</td>
360 <p class="since">Since 2.4</p>
363 <div class="refsect2">
364 <a name="g-queue-reverse"></a><h3>g_queue_reverse ()</h3>
365 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_reverse (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);</pre>
367 Reverses the order of the items in <em class="parameter"><code>queue</code></em>.
369 <div class="variablelist"><table border="0">
370 <col align="left" valign="top">
372 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
373 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
377 <p class="since">Since 2.4</p>
380 <div class="refsect2">
381 <a name="g-queue-copy"></a><h3>g_queue_copy ()</h3>
382 <pre class="programlisting"><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="returnvalue">GQueue</span></a> * g_queue_copy (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);</pre>
384 Copies a <em class="parameter"><code>queue</code></em>. Note that is a shallow copy. If the elements in the
385 queue consist of pointers to data, the pointers are copied, but the
388 <div class="variablelist"><table border="0">
389 <col align="left" valign="top">
392 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
393 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
397 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
398 <td>A copy of <em class="parameter"><code>queue</code></em>
403 <p class="since">Since 2.4</p>
406 <div class="refsect2">
407 <a name="g-queue-foreach"></a><h3>g_queue_foreach ()</h3>
408 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_foreach (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
409 <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GFunc" title="GFunc ()"><span class="type">GFunc</span></a> func</code></em>,
410 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
412 Calls <em class="parameter"><code>func</code></em> for each element in the queue passing <em class="parameter"><code>user_data</code></em> to the
415 <div class="variablelist"><table border="0">
416 <col align="left" valign="top">
419 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
420 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
424 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
425 <td>the function to call for each element's data</td>
428 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
429 <td>user data to pass to <em class="parameter"><code>func</code></em>
434 <p class="since">Since 2.4</p>
437 <div class="refsect2">
438 <a name="g-queue-find"></a><h3>g_queue_find ()</h3>
439 <pre class="programlisting"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="returnvalue">GList</span></a> * g_queue_find (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
440 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="type">gconstpointer</span></a> data</code></em>);</pre>
442 Finds the first link in <em class="parameter"><code>queue</code></em> which contains <em class="parameter"><code>data</code></em>.
444 <div class="variablelist"><table border="0">
445 <col align="left" valign="top">
448 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
449 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
453 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
454 <td>data to find</td>
457 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
458 <td>The first link in <em class="parameter"><code>queue</code></em> which contains <em class="parameter"><code>data</code></em>.</td>
462 <p class="since">Since 2.4</p>
465 <div class="refsect2">
466 <a name="g-queue-find-custom"></a><h3>g_queue_find_custom ()</h3>
467 <pre class="programlisting"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="returnvalue">GList</span></a> * g_queue_find_custom (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
468 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="type">gconstpointer</span></a> data</code></em>,
469 <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GCompareFunc" title="GCompareFunc ()"><span class="type">GCompareFunc</span></a> func</code></em>);</pre>
471 Finds an element in a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>, using a supplied function to find the
472 desired element. It iterates over the queue, calling the given function
473 which should return 0 when the desired element is found. The function
474 takes two gconstpointer arguments, the <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> element's data as the
475 first argument and the given user data as the second argument.
477 <div class="variablelist"><table border="0">
478 <col align="left" valign="top">
481 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
482 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
486 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
487 <td>user data passed to <em class="parameter"><code>func</code></em>
491 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
492 <td>a <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareFunc" title="GCompareFunc ()"><span class="type">GCompareFunc</span></a> to call for each element. It should return 0
493 when the desired element is found</td>
496 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
497 <td>The found link, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if it wasn't found</td>
501 <p class="since">Since 2.4</p>
504 <div class="refsect2">
505 <a name="g-queue-sort"></a><h3>g_queue_sort ()</h3>
506 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_sort (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
507 <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="type">GCompareDataFunc</span></a> compare_func</code></em>,
508 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
510 Sorts <em class="parameter"><code>queue</code></em> using <em class="parameter"><code>compare_func</code></em>.
512 <div class="variablelist"><table border="0">
513 <col align="left" valign="top">
516 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
517 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
521 <td><p><span class="term"><em class="parameter"><code>compare_func</code></em> :</span></p></td>
522 <td>the <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="type">GCompareDataFunc</span></a> used to sort <em class="parameter"><code>queue</code></em>. This function
523 is passed two elements of the queue and should return 0 if they are
524 equal, a negative value if the first comes before the second, and
525 a positive value if the second comes before the first.</td>
528 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
529 <td>user data passed to <em class="parameter"><code>compare_func</code></em>
534 <p class="since">Since 2.4</p>
537 <div class="refsect2">
538 <a name="g-queue-push-head"></a><h3>g_queue_push_head ()</h3>
539 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_push_head (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
540 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
542 Adds a new element at the head of the queue.
544 <div class="variablelist"><table border="0">
545 <col align="left" valign="top">
548 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
549 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>.</td>
552 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
553 <td>the data for the new element.</td>
559 <div class="refsect2">
560 <a name="g-queue-push-tail"></a><h3>g_queue_push_tail ()</h3>
561 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_push_tail (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
562 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
564 Adds a new element at the tail of the queue.
566 <div class="variablelist"><table border="0">
567 <col align="left" valign="top">
570 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
571 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>.</td>
574 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
575 <td>the data for the new element.</td>
581 <div class="refsect2">
582 <a name="g-queue-push-nth"></a><h3>g_queue_push_nth ()</h3>
583 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_push_nth (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
584 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>,
585 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> n</code></em>);</pre>
587 Inserts a new element into <em class="parameter"><code>queue</code></em> at the given position
589 <div class="variablelist"><table border="0">
590 <col align="left" valign="top">
593 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
594 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
598 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
599 <td>the data for the new element</td>
602 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
603 <td>the position to insert the new element. If <em class="parameter"><code>n</code></em> is negative or
604 larger than the number of elements in the <em class="parameter"><code>queue</code></em>, the element is
605 added to the end of the queue.</td>
609 <p class="since">Since 2.4</p>
612 <div class="refsect2">
613 <a name="g-queue-pop-head"></a><h3>g_queue_pop_head ()</h3>
614 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> g_queue_pop_head (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);</pre>
616 Removes the first element of the queue.
618 <div class="variablelist"><table border="0">
619 <col align="left" valign="top">
622 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
623 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>.</td>
626 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
627 <td>the data of the first element in the queue, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if the queue
634 <div class="refsect2">
635 <a name="g-queue-pop-tail"></a><h3>g_queue_pop_tail ()</h3>
636 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> g_queue_pop_tail (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);</pre>
638 Removes the last element of the queue.
640 <div class="variablelist"><table border="0">
641 <col align="left" valign="top">
644 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
645 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>.</td>
648 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
649 <td>the data of the last element in the queue, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if the queue
656 <div class="refsect2">
657 <a name="g-queue-pop-nth"></a><h3>g_queue_pop_nth ()</h3>
658 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> g_queue_pop_nth (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
659 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> n</code></em>);</pre>
661 Removes the <em class="parameter"><code>n</code></em>'th element of <em class="parameter"><code>queue</code></em>.
663 <div class="variablelist"><table border="0">
664 <col align="left" valign="top">
667 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
668 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
672 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
673 <td>the position of the element.</td>
676 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
677 <td>the element's data, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if <em class="parameter"><code>n</code></em> is off the end of <em class="parameter"><code>queue</code></em>.</td>
681 <p class="since">Since 2.4</p>
684 <div class="refsect2">
685 <a name="g-queue-peek-head"></a><h3>g_queue_peek_head ()</h3>
686 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> g_queue_peek_head (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);</pre>
688 Returns the first element of the queue.
690 <div class="variablelist"><table border="0">
691 <col align="left" valign="top">
694 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
695 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>.</td>
698 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
699 <td>the data of the first element in the queue, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if the queue
706 <div class="refsect2">
707 <a name="g-queue-peek-tail"></a><h3>g_queue_peek_tail ()</h3>
708 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> g_queue_peek_tail (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);</pre>
710 Returns the last element of the queue.
712 <div class="variablelist"><table border="0">
713 <col align="left" valign="top">
716 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
717 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>.</td>
720 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
721 <td>the data of the last element in the queue, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if the queue
728 <div class="refsect2">
729 <a name="g-queue-peek-nth"></a><h3>g_queue_peek_nth ()</h3>
730 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> g_queue_peek_nth (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
731 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> n</code></em>);</pre>
733 Returns the <em class="parameter"><code>n</code></em>'th element of <em class="parameter"><code>queue</code></em>.
735 <div class="variablelist"><table border="0">
736 <col align="left" valign="top">
739 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
740 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
744 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
745 <td>the position of the element.</td>
748 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
749 <td>The data for the <em class="parameter"><code>n</code></em>'th element of <em class="parameter"><code>queue</code></em>, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if <em class="parameter"><code>n</code></em> is
750 off the end of <em class="parameter"><code>queue</code></em>.</td>
754 <p class="since">Since 2.4</p>
757 <div class="refsect2">
758 <a name="g-queue-index"></a><h3>g_queue_index ()</h3>
759 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> g_queue_index (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
760 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="type">gconstpointer</span></a> data</code></em>);</pre>
762 Returns the position of the first element in <em class="parameter"><code>queue</code></em> which contains <em class="parameter"><code>data</code></em>.
764 <div class="variablelist"><table border="0">
765 <col align="left" valign="top">
768 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
769 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
773 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
774 <td>the data to find.</td>
777 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
778 <td>The position of the first element in <em class="parameter"><code>queue</code></em> which contains <em class="parameter"><code>data</code></em>, or -1 if no element in <em class="parameter"><code>queue</code></em> contains <em class="parameter"><code>data</code></em>.</td>
782 <p class="since">Since 2.4</p>
785 <div class="refsect2">
786 <a name="g-queue-remove"></a><h3>g_queue_remove ()</h3>
787 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_queue_remove (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
788 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="type">gconstpointer</span></a> data</code></em>);</pre>
790 Removes the first element in <em class="parameter"><code>queue</code></em> that contains <em class="parameter"><code>data</code></em>.
792 <div class="variablelist"><table border="0">
793 <col align="left" valign="top">
796 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
797 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
801 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
802 <td>data to remove.</td>
805 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
807 <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <em class="parameter"><code>data</code></em> was found and removed from <em class="parameter"><code>queue</code></em>
812 <p class="since">Since 2.4</p>
815 <div class="refsect2">
816 <a name="g-queue-remove-all"></a><h3>g_queue_remove_all ()</h3>
817 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> g_queue_remove_all (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
818 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="type">gconstpointer</span></a> data</code></em>);</pre>
820 Remove all elements whose data equals <em class="parameter"><code>data</code></em> from <em class="parameter"><code>queue</code></em>.
822 <div class="variablelist"><table border="0">
823 <col align="left" valign="top">
826 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
827 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
831 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
832 <td>data to remove</td>
835 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
836 <td>the number of elements removed from <em class="parameter"><code>queue</code></em>
841 <p class="since">Since 2.4</p>
844 <div class="refsect2">
845 <a name="g-queue-insert-before"></a><h3>g_queue_insert_before ()</h3>
846 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_insert_before (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
847 <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> *sibling</code></em>,
848 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
850 Inserts <em class="parameter"><code>data</code></em> into <em class="parameter"><code>queue</code></em> before <em class="parameter"><code>sibling</code></em>.
853 <em class="parameter"><code>sibling</code></em> must be part of <em class="parameter"><code>queue</code></em>.
855 <div class="variablelist"><table border="0">
856 <col align="left" valign="top">
859 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
860 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
864 <td><p><span class="term"><em class="parameter"><code>sibling</code></em> :</span></p></td>
865 <td>a <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> link that <span class="emphasis"><em>must</em></span> be part of <em class="parameter"><code>queue</code></em>
869 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
870 <td>the data to insert</td>
874 <p class="since">Since 2.4</p>
877 <div class="refsect2">
878 <a name="g-queue-insert-after"></a><h3>g_queue_insert_after ()</h3>
879 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_insert_after (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
880 <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> *sibling</code></em>,
881 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
883 Inserts <em class="parameter"><code>data</code></em> into <em class="parameter"><code>queue</code></em> after <em class="parameter"><code>sibling</code></em>
886 <em class="parameter"><code>sibling</code></em> must be part of <em class="parameter"><code>queue</code></em>
888 <div class="variablelist"><table border="0">
889 <col align="left" valign="top">
892 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
893 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
897 <td><p><span class="term"><em class="parameter"><code>sibling</code></em> :</span></p></td>
898 <td>a <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> link that <span class="emphasis"><em>must</em></span> be part of <em class="parameter"><code>queue</code></em>
902 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
903 <td>the data to insert</td>
907 <p class="since">Since 2.4</p>
910 <div class="refsect2">
911 <a name="g-queue-insert-sorted"></a><h3>g_queue_insert_sorted ()</h3>
912 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_insert_sorted (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
913 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>,
914 <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="type">GCompareDataFunc</span></a> func</code></em>,
915 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
917 Inserts <em class="parameter"><code>data</code></em> into <em class="parameter"><code>queue</code></em> using <em class="parameter"><code>func</code></em> to determine the new position.
919 <div class="variablelist"><table border="0">
920 <col align="left" valign="top">
923 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
924 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
928 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
929 <td>the data to insert</td>
932 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
933 <td>the <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="type">GCompareDataFunc</span></a> used to compare elements in the queue. It is
934 called with two elements of the <em class="parameter"><code>queue</code></em> and <em class="parameter"><code>user_data</code></em>. It should
935 return 0 if the elements are equal, a negative value if the first
936 element comes before the second, and a positive value if the second
937 element comes before the first.</td>
940 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
941 <td>user data passed to <em class="parameter"><code>func</code></em>.</td>
945 <p class="since">Since 2.4</p>
948 <div class="refsect2">
949 <a name="g-queue-push-head-link"></a><h3>g_queue_push_head_link ()</h3>
950 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_push_head_link (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
951 <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> *link_</code></em>);</pre>
953 Adds a new element at the head of the queue.
955 <div class="variablelist"><table border="0">
956 <col align="left" valign="top">
959 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
960 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>.</td>
963 <td><p><span class="term"><em class="parameter"><code>link_</code></em> :</span></p></td>
964 <td>a single <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> element, <span class="emphasis"><em>not</em></span> a list with
965 more than one element.</td>
971 <div class="refsect2">
972 <a name="g-queue-push-tail-link"></a><h3>g_queue_push_tail_link ()</h3>
973 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_push_tail_link (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
974 <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> *link_</code></em>);</pre>
976 Adds a new element at the tail of the queue.
978 <div class="variablelist"><table border="0">
979 <col align="left" valign="top">
982 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
983 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>.</td>
986 <td><p><span class="term"><em class="parameter"><code>link_</code></em> :</span></p></td>
987 <td>a single <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> element, <span class="emphasis"><em>not</em></span> a list with
988 more than one element.</td>
994 <div class="refsect2">
995 <a name="g-queue-push-nth-link"></a><h3>g_queue_push_nth_link ()</h3>
996 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_push_nth_link (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
997 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> n</code></em>,
998 <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> *link_</code></em>);</pre>
1000 Inserts <em class="parameter"><code>link</code></em> into <em class="parameter"><code>queue</code></em> at the given position.
1002 <div class="variablelist"><table border="0">
1003 <col align="left" valign="top">
1006 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1007 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
1011 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
1012 <td>the position to insert the link. If this is negative or larger than
1013 the number of elements in <em class="parameter"><code>queue</code></em>, the link is added to the end of
1014 <em class="parameter"><code>queue</code></em>.</td>
1017 <td><p><span class="term"><em class="parameter"><code>link_</code></em> :</span></p></td>
1018 <td>the link to add to <em class="parameter"><code>queue</code></em>
1023 <p class="since">Since 2.4</p>
1026 <div class="refsect2">
1027 <a name="g-queue-pop-head-link"></a><h3>g_queue_pop_head_link ()</h3>
1028 <pre class="programlisting"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="returnvalue">GList</span></a> * g_queue_pop_head_link (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);</pre>
1030 Removes the first element of the queue.
1032 <div class="variablelist"><table border="0">
1033 <col align="left" valign="top">
1036 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1037 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>.</td>
1040 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1041 <td>the <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> element at the head of the queue, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if the queue
1048 <div class="refsect2">
1049 <a name="g-queue-pop-tail-link"></a><h3>g_queue_pop_tail_link ()</h3>
1050 <pre class="programlisting"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="returnvalue">GList</span></a> * g_queue_pop_tail_link (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);</pre>
1052 Removes the last element of the queue.
1054 <div class="variablelist"><table border="0">
1055 <col align="left" valign="top">
1058 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1059 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>.</td>
1062 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1063 <td>the <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> element at the tail of the queue, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if the queue
1070 <div class="refsect2">
1071 <a name="g-queue-pop-nth-link"></a><h3>g_queue_pop_nth_link ()</h3>
1072 <pre class="programlisting"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="returnvalue">GList</span></a> * g_queue_pop_nth_link (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
1073 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> n</code></em>);</pre>
1075 Removes and returns the link at the given position.
1077 <div class="variablelist"><table border="0">
1078 <col align="left" valign="top">
1081 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1082 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
1086 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
1087 <td>the link's position</td>
1090 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1091 <td>The <em class="parameter"><code>n</code></em>'th link, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if <em class="parameter"><code>n</code></em> is off the end of <em class="parameter"><code>queue</code></em>.</td>
1095 <p class="since">Since 2.4</p>
1098 <div class="refsect2">
1099 <a name="g-queue-peek-head-link"></a><h3>g_queue_peek_head_link ()</h3>
1100 <pre class="programlisting"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="returnvalue">GList</span></a> * g_queue_peek_head_link (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);</pre>
1102 Returns the first link in <em class="parameter"><code>queue</code></em>
1104 <div class="variablelist"><table border="0">
1105 <col align="left" valign="top">
1108 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1109 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
1113 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1114 <td>the first link in <em class="parameter"><code>queue</code></em>, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if <em class="parameter"><code>queue</code></em> is empty</td>
1118 <p class="since">Since 2.4</p>
1121 <div class="refsect2">
1122 <a name="g-queue-peek-tail-link"></a><h3>g_queue_peek_tail_link ()</h3>
1123 <pre class="programlisting"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="returnvalue">GList</span></a> * g_queue_peek_tail_link (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>);</pre>
1125 Returns the last link <em class="parameter"><code>queue</code></em>.
1127 <div class="variablelist"><table border="0">
1128 <col align="left" valign="top">
1131 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1132 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
1136 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1137 <td>the last link in <em class="parameter"><code>queue</code></em>, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if <em class="parameter"><code>queue</code></em> is empty</td>
1141 <p class="since">Since 2.4</p>
1144 <div class="refsect2">
1145 <a name="g-queue-peek-nth-link"></a><h3>g_queue_peek_nth_link ()</h3>
1146 <pre class="programlisting"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="returnvalue">GList</span></a> * g_queue_peek_nth_link (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
1147 <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> n</code></em>);</pre>
1149 Returns the link at the given position
1151 <div class="variablelist"><table border="0">
1152 <col align="left" valign="top">
1155 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1156 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
1160 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
1161 <td>the position of the link</td>
1164 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1165 <td>The link at the <em class="parameter"><code>n</code></em>'th position, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if <em class="parameter"><code>n</code></em> is off the
1166 end of the list</td>
1170 <p class="since">Since 2.4</p>
1173 <div class="refsect2">
1174 <a name="g-queue-link-index"></a><h3>g_queue_link_index ()</h3>
1175 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> g_queue_link_index (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
1176 <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> *link_</code></em>);</pre>
1178 Returns the position of <em class="parameter"><code>link_</code></em> in <em class="parameter"><code>queue</code></em>.
1180 <div class="variablelist"><table border="0">
1181 <col align="left" valign="top">
1184 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1185 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
1189 <td><p><span class="term"><em class="parameter"><code>link_</code></em> :</span></p></td>
1190 <td>A <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> link</td>
1193 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1194 <td>The position of <em class="parameter"><code>link_</code></em>, or -1 if the link is
1195 not part of <em class="parameter"><code>queue</code></em>
1200 <p class="since">Since 2.4</p>
1203 <div class="refsect2">
1204 <a name="g-queue-unlink"></a><h3>g_queue_unlink ()</h3>
1205 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_unlink (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
1206 <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> *link_</code></em>);</pre>
1208 Unlinks <em class="parameter"><code>link_</code></em> so that it will no longer be part of <em class="parameter"><code>queue</code></em>. The link is
1212 <em class="parameter"><code>link_</code></em> must be part of <em class="parameter"><code>queue</code></em>,
1214 <div class="variablelist"><table border="0">
1215 <col align="left" valign="top">
1218 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1219 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
1223 <td><p><span class="term"><em class="parameter"><code>link_</code></em> :</span></p></td>
1224 <td>a <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> link that <span class="emphasis"><em>must</em></span> be part of <em class="parameter"><code>queue</code></em>
1229 <p class="since">Since 2.4</p>
1232 <div class="refsect2">
1233 <a name="g-queue-delete-link"></a><h3>g_queue_delete_link ()</h3>
1234 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_delete_link (<em class="parameter"><code><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a> *queue</code></em>,
1235 <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> *link_</code></em>);</pre>
1237 Removes <em class="parameter"><code>link_</code></em> from <em class="parameter"><code>queue</code></em> and frees it.
1240 <em class="parameter"><code>link_</code></em> must be part of <em class="parameter"><code>queue</code></em>.
1242 <div class="variablelist"><table border="0">
1243 <col align="left" valign="top">
1246 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1247 <td>a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="struct GQueue"><span class="type">GQueue</span></a>
1251 <td><p><span class="term"><em class="parameter"><code>link_</code></em> :</span></p></td>
1252 <td>a <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="struct GList"><span class="type">GList</span></a> link that <span class="emphasis"><em>must</em></span> be part of <em class="parameter"><code>queue</code></em>
1257 <p class="since">Since 2.4</p>
1261 <div class="footer">
1263 Generated by GTK-Doc V1.18</div>