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.75.2">
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.13 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 <link rel="chapter" href="glib.html" title="GLib Overview">
14 <link rel="chapter" href="glib-fundamentals.html" title="GLib Fundamentals">
15 <link rel="chapter" href="glib-core.html" title="GLib Core Application Support">
16 <link rel="chapter" href="glib-utilities.html" title="GLib Utilities">
17 <link rel="chapter" href="glib-data-types.html" title="GLib Data Types">
18 <link rel="chapter" href="tools.html" title="GLib Tools">
19 <link rel="index" href="api-index-full.html" title="Index">
20 <link rel="index" href="api-index-deprecated.html" title="Index of deprecated symbols">
21 <link rel="index" href="api-index-2-2.html" title="Index of new symbols in 2.2">
22 <link rel="index" href="api-index-2-4.html" title="Index of new symbols in 2.4">
23 <link rel="index" href="api-index-2-6.html" title="Index of new symbols in 2.6">
24 <link rel="index" href="api-index-2-8.html" title="Index of new symbols in 2.8">
25 <link rel="index" href="api-index-2-10.html" title="Index of new symbols in 2.10">
26 <link rel="index" href="api-index-2-12.html" title="Index of new symbols in 2.12">
27 <link rel="index" href="api-index-2-14.html" title="Index of new symbols in 2.14">
28 <link rel="index" href="api-index-2-16.html" title="Index of new symbols in 2.16">
29 <link rel="index" href="api-index-2-18.html" title="Index of new symbols in 2.18">
30 <link rel="index" href="api-index-2-20.html" title="Index of new symbols in 2.20">
31 <link rel="index" href="api-index-2-22.html" title="Index of new symbols in 2.22">
32 <link rel="index" href="api-index-2-24.html" title="Index of new symbols in 2.24">
34 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
35 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
37 <td><a accesskey="p" href="glib-Singly-Linked-Lists.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
38 <td><a accesskey="u" href="glib-data-types.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
39 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
40 <th width="100%" align="center">GLib Reference Manual</th>
41 <td><a accesskey="n" href="glib-Sequences.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
43 <tr><td colspan="5" class="shortcuts">
44 <a href="#glib-Double-ended-Queues.synopsis" class="shortcut">Top</a>
46 <a href="#glib-Double-ended-Queues.description" class="shortcut">Description</a>
49 <div class="refentry" title="Double-ended Queues">
50 <a name="glib-Double-ended-Queues"></a><div class="titlepage"></div>
51 <div class="refnamediv"><table width="100%"><tr>
53 <h2><span class="refentrytitle"><a name="glib-Double-ended-Queues.top_of_page"></a>Double-ended Queues</span></h2>
54 <p>Double-ended Queues — double-ended queue data structure</p>
56 <td valign="top" align="right"></td>
58 <div class="refsynopsisdiv" title="Synopsis">
59 <a name="glib-Double-ended-Queues.synopsis"></a><h2>Synopsis</h2>
60 <pre class="synopsis">
61 #include <glib.h>
63 <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue">GQueue</a>;
64 <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="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> (void);
65 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
66 #define <a class="link" href="glib-Double-ended-Queues.html#G-QUEUE-INIT:CAPS" title="G_QUEUE_INIT">G_QUEUE_INIT</a>
67 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
68 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
69 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
70 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
71 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
72 <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
73 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
74 <a class="link" href="glib-Doubly-Linked-Lists.html#GFunc" title="GFunc ()"><span class="returnvalue">GFunc</span></a> func,
75 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> user_data);
76 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
77 <a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="returnvalue">gconstpointer</span></a> data);
78 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
79 <a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="returnvalue">gconstpointer</span></a> data,
80 <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareFunc" title="GCompareFunc ()"><span class="returnvalue">GCompareFunc</span></a> func);
81 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
82 <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="returnvalue">GCompareDataFunc</span></a> compare_func,
83 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> user_data);
84 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
85 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);
86 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
87 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);
88 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
89 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data,
90 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> n);
91 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
92 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
93 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
94 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> n);
95 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
96 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
97 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
98 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> n);
99 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
100 <a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="returnvalue">gconstpointer</span></a> data);
101 <span class="returnvalue">void</span> <a class="link" href="glib-Double-ended-Queues.html#g-queue-remove" title="g_queue_remove ()">g_queue_remove</a> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
102 <a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="returnvalue">gconstpointer</span></a> data);
103 <span class="returnvalue">void</span> <a class="link" href="glib-Double-ended-Queues.html#g-queue-remove-all" title="g_queue_remove_all ()">g_queue_remove_all</a> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
104 <a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="returnvalue">gconstpointer</span></a> data);
105 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
106 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *sibling,
107 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);
108 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
109 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *sibling,
110 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);
111 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
112 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data,
113 <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="returnvalue">GCompareDataFunc</span></a> func,
114 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> user_data);
115 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
116 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *link_);
117 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
118 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *link_);
119 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
120 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> n,
121 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *link_);
122 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
123 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
124 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
125 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> n);
126 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
127 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
128 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
129 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> n);
130 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
131 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *link_);
132 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
133 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *link_);
134 <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> (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
135 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *link_);
138 <div class="refsect1" title="Description">
139 <a name="glib-Double-ended-Queues.description"></a><h2>Description</h2>
141 The <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a> structure and its associated functions provide a standard
142 queue data structure. Internally, <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a> uses the same data structure as
143 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="type">GList</span></a> to store elements.
146 The data contained in each element can be either integer values, by using one
148 <a class="link" href="glib-Type-Conversion-Macros.html" title="Type Conversion Macros">Type Conversion Macros</a>,
149 or simply pointers to any type of data.
152 To create a new <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>, 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>.
155 To initialize a statically-allocated <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>, 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
156 <a class="link" href="glib-Double-ended-Queues.html#g-queue-init" title="g_queue_init ()"><code class="function">g_queue_init()</code></a>.
159 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>,
160 <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>.
163 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>.
166 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>.
169 <div class="refsect1" title="Details">
170 <a name="glib-Double-ended-Queues.details"></a><h2>Details</h2>
171 <div class="refsect2" title="GQueue">
172 <a name="GQueue"></a><h3>GQueue</h3>
173 <pre class="programlisting">typedef struct {
180 Contains the public fields of a Queue.
182 <div class="variablelist"><table border="0">
183 <col align="left" valign="top">
186 <td><p><span class="term"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GQueue.head"></a>head</code></em>;</span></p></td>
187 <td>a pointer to the first element of the queue.
191 <td><p><span class="term"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GQueue.tail"></a>tail</code></em>;</span></p></td>
192 <td>a pointer to the last element of the queue.
196 <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>
197 <td>the number of elements in the queue.
204 <div class="refsect2" title="g_queue_new ()">
205 <a name="g-queue-new"></a><h3>g_queue_new ()</h3>
206 <pre class="programlisting"><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a>* g_queue_new (void);</pre>
208 Creates a new <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.</p>
209 <div class="variablelist"><table border="0">
210 <col align="left" valign="top">
212 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
213 <td> a new <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
219 <div class="refsect2" title="g_queue_free ()">
220 <a name="g-queue-free"></a><h3>g_queue_free ()</h3>
221 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_free (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
223 Frees the memory allocated for the <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>. Only call this function if
224 <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
225 dynamically-allocated memory, they should be freed first.</p>
226 <div class="variablelist"><table border="0">
227 <col align="left" valign="top">
229 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
230 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
236 <div class="refsect2" title="G_QUEUE_INIT">
237 <a name="G-QUEUE-INIT:CAPS"></a><h3>G_QUEUE_INIT</h3>
238 <pre class="programlisting">#define G_QUEUE_INIT { NULL, NULL, 0 }
241 A statically-allocated <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a> must be initialized with this macro before it
242 can be used. This macro can be used to initialize a variable, but it cannot
243 be assigned to a variable. In that case 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>.
245 <div class="informalexample"><pre class="programlisting">
246 GQueue my_queue = G_QUEUE_INIT;
248 <p class="since">Since 2.14</p>
251 <div class="refsect2" title="g_queue_init ()">
252 <a name="g-queue-init"></a><h3>g_queue_init ()</h3>
253 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_init (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
255 A statically-allocated <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a> must be initialized with this function
256 before it can be used. Alternatively you can initialize it with
257 <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
258 <a class="link" href="glib-Double-ended-Queues.html#g-queue-new" title="g_queue_new ()"><code class="function">g_queue_new()</code></a>.</p>
259 <div class="variablelist"><table border="0">
260 <col align="left" valign="top">
262 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
263 <td> an uninitialized <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
267 <p class="since">Since 2.14</p>
270 <div class="refsect2" title="g_queue_clear ()">
271 <a name="g-queue-clear"></a><h3>g_queue_clear ()</h3>
272 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_clear (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
274 Removes all the elements in <em class="parameter"><code>queue</code></em>. If queue elements contain
275 dynamically-allocated memory, they should be freed first.</p>
276 <div class="variablelist"><table border="0">
277 <col align="left" valign="top">
279 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
280 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
284 <p class="since">Since 2.14</p>
287 <div class="refsect2" title="g_queue_is_empty ()">
288 <a name="g-queue-is-empty"></a><h3>g_queue_is_empty ()</h3>
289 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_queue_is_empty (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
291 Returns <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the queue is empty.</p>
292 <div class="variablelist"><table border="0">
293 <col align="left" valign="top">
296 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
297 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
301 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
302 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the queue is empty.
309 <div class="refsect2" title="g_queue_get_length ()">
310 <a name="g-queue-get-length"></a><h3>g_queue_get_length ()</h3>
311 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> g_queue_get_length (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
313 Returns the number of items in <em class="parameter"><code>queue</code></em>.</p>
314 <div class="variablelist"><table border="0">
315 <col align="left" valign="top">
318 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
319 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
323 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
324 <td> The number of items in <em class="parameter"><code>queue</code></em>.
330 <p class="since">Since 2.4</p>
333 <div class="refsect2" title="g_queue_reverse ()">
334 <a name="g-queue-reverse"></a><h3>g_queue_reverse ()</h3>
335 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_reverse (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
337 Reverses the order of the items in <em class="parameter"><code>queue</code></em>.</p>
338 <div class="variablelist"><table border="0">
339 <col align="left" valign="top">
341 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
342 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
346 <p class="since">Since 2.4</p>
349 <div class="refsect2" title="g_queue_copy ()">
350 <a name="g-queue-copy"></a><h3>g_queue_copy ()</h3>
351 <pre class="programlisting"><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> * g_queue_copy (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
353 Copies a <em class="parameter"><code>queue</code></em>. Note that is a shallow copy. If the elements in the
354 queue consist of pointers to data, the pointers are copied, but the
355 actual data is not.</p>
356 <div class="variablelist"><table border="0">
357 <col align="left" valign="top">
360 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
361 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
365 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
366 <td> A copy of <em class="parameter"><code>queue</code></em>
372 <p class="since">Since 2.4</p>
375 <div class="refsect2" title="g_queue_foreach ()">
376 <a name="g-queue-foreach"></a><h3>g_queue_foreach ()</h3>
377 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_foreach (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
378 <a class="link" href="glib-Doubly-Linked-Lists.html#GFunc" title="GFunc ()"><span class="returnvalue">GFunc</span></a> func,
379 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> user_data);</pre>
381 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
383 <div class="variablelist"><table border="0">
384 <col align="left" valign="top">
387 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
388 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
392 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
393 <td> the function to call for each element's data
397 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
398 <td> user data to pass to <em class="parameter"><code>func</code></em>
403 <p class="since">Since 2.4</p>
406 <div class="refsect2" title="g_queue_find ()">
407 <a name="g-queue-find"></a><h3>g_queue_find ()</h3>
408 <pre class="programlisting"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> * g_queue_find (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
409 <a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="returnvalue">gconstpointer</span></a> data);</pre>
411 Finds the first link in <em class="parameter"><code>queue</code></em> which contains <em class="parameter"><code>data</code></em>.</p>
412 <div class="variablelist"><table border="0">
413 <col align="left" valign="top">
416 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
417 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
421 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
426 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
427 <td> The first link in <em class="parameter"><code>queue</code></em> which contains <em class="parameter"><code>data</code></em>.
433 <p class="since">Since 2.4</p>
436 <div class="refsect2" title="g_queue_find_custom ()">
437 <a name="g-queue-find-custom"></a><h3>g_queue_find_custom ()</h3>
438 <pre class="programlisting"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> * g_queue_find_custom (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
439 <a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="returnvalue">gconstpointer</span></a> data,
440 <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareFunc" title="GCompareFunc ()"><span class="returnvalue">GCompareFunc</span></a> func);</pre>
442 Finds an element in a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>, using a supplied function to find the
443 desired element. It iterates over the queue, calling the given function
444 which should return 0 when the desired element is found. The function
445 takes two gconstpointer arguments, the <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a> element's data as the
446 first argument and the given user data as the second argument.</p>
447 <div class="variablelist"><table border="0">
448 <col align="left" valign="top">
451 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
452 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
456 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
457 <td> user data passed to <em class="parameter"><code>func</code></em>
461 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
462 <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
463 when the desired element is found
467 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
468 <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
474 <p class="since">Since 2.4</p>
477 <div class="refsect2" title="g_queue_sort ()">
478 <a name="g-queue-sort"></a><h3>g_queue_sort ()</h3>
479 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_sort (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
480 <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="returnvalue">GCompareDataFunc</span></a> compare_func,
481 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> user_data);</pre>
483 Sorts <em class="parameter"><code>queue</code></em> using <em class="parameter"><code>compare_func</code></em>.</p>
484 <div class="variablelist"><table border="0">
485 <col align="left" valign="top">
488 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
489 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
493 <td><p><span class="term"><em class="parameter"><code>compare_func</code></em> :</span></p></td>
494 <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
495 is passed two elements of the queue and should return 0 if they are
496 equal, a negative value if the first comes before the second, and
497 a positive value if the second comes before the first.
501 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
502 <td> user data passed to <em class="parameter"><code>compare_func</code></em>
507 <p class="since">Since 2.4</p>
510 <div class="refsect2" title="g_queue_push_head ()">
511 <a name="g-queue-push-head"></a><h3>g_queue_push_head ()</h3>
512 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_push_head (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
513 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);</pre>
515 Adds a new element at the head of the queue.</p>
516 <div class="variablelist"><table border="0">
517 <col align="left" valign="top">
520 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
521 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
525 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
526 <td> the data for the new element.
533 <div class="refsect2" title="g_queue_push_tail ()">
534 <a name="g-queue-push-tail"></a><h3>g_queue_push_tail ()</h3>
535 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_push_tail (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
536 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);</pre>
538 Adds a new element at the tail of the queue.</p>
539 <div class="variablelist"><table border="0">
540 <col align="left" valign="top">
543 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
544 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
548 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
549 <td> the data for the new element.
556 <div class="refsect2" title="g_queue_push_nth ()">
557 <a name="g-queue-push-nth"></a><h3>g_queue_push_nth ()</h3>
558 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_push_nth (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
559 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data,
560 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> n);</pre>
562 Inserts a new element into <em class="parameter"><code>queue</code></em> at the given position</p>
563 <div class="variablelist"><table border="0">
564 <col align="left" valign="top">
567 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
568 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
572 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
573 <td> the data for the new element
577 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
578 <td> the position to insert the new element. If <em class="parameter"><code>n</code></em> is negative or
579 larger than the number of elements in the <em class="parameter"><code>queue</code></em>, the element is
580 added to the end of the queue.
585 <p class="since">Since 2.4</p>
588 <div class="refsect2" title="g_queue_pop_head ()">
589 <a name="g-queue-pop-head"></a><h3>g_queue_pop_head ()</h3>
590 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> g_queue_pop_head (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
592 Removes the first element of the queue.</p>
593 <div class="variablelist"><table border="0">
594 <col align="left" valign="top">
597 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
598 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
602 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
603 <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
611 <div class="refsect2" title="g_queue_pop_tail ()">
612 <a name="g-queue-pop-tail"></a><h3>g_queue_pop_tail ()</h3>
613 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> g_queue_pop_tail (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
615 Removes the last element of the queue.</p>
616 <div class="variablelist"><table border="0">
617 <col align="left" valign="top">
620 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
621 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
625 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
626 <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
634 <div class="refsect2" title="g_queue_pop_nth ()">
635 <a name="g-queue-pop-nth"></a><h3>g_queue_pop_nth ()</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_nth (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
637 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> n);</pre>
639 Removes the <em class="parameter"><code>n</code></em>'th element of <em class="parameter"><code>queue</code></em>.</p>
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="GQueue"><span class="type">GQueue</span></a>
649 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
650 <td> the position of the element.
654 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
655 <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>.
661 <p class="since">Since 2.4</p>
664 <div class="refsect2" title="g_queue_peek_head ()">
665 <a name="g-queue-peek-head"></a><h3>g_queue_peek_head ()</h3>
666 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> g_queue_peek_head (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
668 Returns the first element of the queue.</p>
669 <div class="variablelist"><table border="0">
670 <col align="left" valign="top">
673 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
674 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
678 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
679 <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
687 <div class="refsect2" title="g_queue_peek_tail ()">
688 <a name="g-queue-peek-tail"></a><h3>g_queue_peek_tail ()</h3>
689 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> g_queue_peek_tail (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
691 Returns the last element of the queue.</p>
692 <div class="variablelist"><table border="0">
693 <col align="left" valign="top">
696 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
697 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
701 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
702 <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
710 <div class="refsect2" title="g_queue_peek_nth ()">
711 <a name="g-queue-peek-nth"></a><h3>g_queue_peek_nth ()</h3>
712 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> g_queue_peek_nth (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
713 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> n);</pre>
715 Returns the <em class="parameter"><code>n</code></em>'th element of <em class="parameter"><code>queue</code></em>.</p>
716 <div class="variablelist"><table border="0">
717 <col align="left" valign="top">
720 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
721 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
725 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
726 <td> the position of the element.
730 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
731 <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
732 off the end of <em class="parameter"><code>queue</code></em>.
738 <p class="since">Since 2.4</p>
741 <div class="refsect2" title="g_queue_index ()">
742 <a name="g-queue-index"></a><h3>g_queue_index ()</h3>
743 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> g_queue_index (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
744 <a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="returnvalue">gconstpointer</span></a> data);</pre>
746 Returns the position of the first element in <em class="parameter"><code>queue</code></em> which contains <em class="parameter"><code>data</code></em>.</p>
747 <div class="variablelist"><table border="0">
748 <col align="left" valign="top">
751 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
752 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
756 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
757 <td> the data to find.
761 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
762 <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>.
768 <p class="since">Since 2.4</p>
771 <div class="refsect2" title="g_queue_remove ()">
772 <a name="g-queue-remove"></a><h3>g_queue_remove ()</h3>
773 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_remove (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
774 <a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="returnvalue">gconstpointer</span></a> data);</pre>
776 Removes the first element in <em class="parameter"><code>queue</code></em> that contains <em class="parameter"><code>data</code></em>.</p>
777 <div class="variablelist"><table border="0">
778 <col align="left" valign="top">
781 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
782 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
786 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
792 <p class="since">Since 2.4</p>
795 <div class="refsect2" title="g_queue_remove_all ()">
796 <a name="g-queue-remove-all"></a><h3>g_queue_remove_all ()</h3>
797 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_remove_all (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
798 <a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="returnvalue">gconstpointer</span></a> data);</pre>
800 Remove all elemeents in <em class="parameter"><code>queue</code></em> which contains <em class="parameter"><code>data</code></em>.</p>
801 <div class="variablelist"><table border="0">
802 <col align="left" valign="top">
805 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
806 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
810 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
816 <p class="since">Since 2.4</p>
819 <div class="refsect2" title="g_queue_insert_before ()">
820 <a name="g-queue-insert-before"></a><h3>g_queue_insert_before ()</h3>
821 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_insert_before (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
822 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *sibling,
823 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);</pre>
825 Inserts <em class="parameter"><code>data</code></em> into <em class="parameter"><code>queue</code></em> before <em class="parameter"><code>sibling</code></em>.
828 <em class="parameter"><code>sibling</code></em> must be part of <em class="parameter"><code>queue</code></em>.</p>
829 <div class="variablelist"><table border="0">
830 <col align="left" valign="top">
833 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
834 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
838 <td><p><span class="term"><em class="parameter"><code>sibling</code></em> :</span></p></td>
839 <td> a <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="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>
843 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
844 <td> the data to insert
849 <p class="since">Since 2.4</p>
852 <div class="refsect2" title="g_queue_insert_after ()">
853 <a name="g-queue-insert-after"></a><h3>g_queue_insert_after ()</h3>
854 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_insert_after (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
855 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *sibling,
856 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);</pre>
858 Inserts <em class="parameter"><code>data</code></em> into <em class="parameter"><code>queue</code></em> after <em class="parameter"><code>sibling</code></em>
861 <em class="parameter"><code>sibling</code></em> must be part of <em class="parameter"><code>queue</code></em></p>
862 <div class="variablelist"><table border="0">
863 <col align="left" valign="top">
866 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
867 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
871 <td><p><span class="term"><em class="parameter"><code>sibling</code></em> :</span></p></td>
872 <td> a <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="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>
876 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
877 <td> the data to insert
882 <p class="since">Since 2.4</p>
885 <div class="refsect2" title="g_queue_insert_sorted ()">
886 <a name="g-queue-insert-sorted"></a><h3>g_queue_insert_sorted ()</h3>
887 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_insert_sorted (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
888 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data,
889 <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="returnvalue">GCompareDataFunc</span></a> func,
890 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> user_data);</pre>
892 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.</p>
893 <div class="variablelist"><table border="0">
894 <col align="left" valign="top">
897 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
898 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
902 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
903 <td> the data to insert
907 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
908 <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
909 called with two elements of the <em class="parameter"><code>queue</code></em> and <em class="parameter"><code>user_data</code></em>. It should
910 return 0 if the elements are equal, a negative value if the first
911 element comes before the second, and a positive value if the second
912 element comes before the first.
916 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
917 <td> user data passed to <em class="parameter"><code>func</code></em>.
922 <p class="since">Since 2.4</p>
925 <div class="refsect2" title="g_queue_push_head_link ()">
926 <a name="g-queue-push-head-link"></a><h3>g_queue_push_head_link ()</h3>
927 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_push_head_link (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
928 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *link_);</pre>
930 Adds a new element at the head of the queue.</p>
931 <div class="variablelist"><table border="0">
932 <col align="left" valign="top">
935 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
936 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
940 <td><p><span class="term"><em class="parameter"><code>link_</code></em> :</span></p></td>
941 <td> a single <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="type">GList</span></a> element, <span class="emphasis"><em>not</em></span> a list with
942 more than one element.
949 <div class="refsect2" title="g_queue_push_tail_link ()">
950 <a name="g-queue-push-tail-link"></a><h3>g_queue_push_tail_link ()</h3>
951 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_push_tail_link (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
952 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *link_);</pre>
954 Adds a new element at the tail of the queue.</p>
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="GQueue"><span class="type">GQueue</span></a>.
964 <td><p><span class="term"><em class="parameter"><code>link_</code></em> :</span></p></td>
965 <td> a single <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="type">GList</span></a> element, <span class="emphasis"><em>not</em></span> a list with
966 more than one element.
973 <div class="refsect2" title="g_queue_push_nth_link ()">
974 <a name="g-queue-push-nth-link"></a><h3>g_queue_push_nth_link ()</h3>
975 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_push_nth_link (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
976 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> n,
977 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *link_);</pre>
979 Inserts <em class="parameter"><code>link</code></em> into <em class="parameter"><code>queue</code></em> at the given position.</p>
980 <div class="variablelist"><table border="0">
981 <col align="left" valign="top">
984 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
985 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
989 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
990 <td> the position to insert the link. If this is negative or larger than
991 the number of elements in <em class="parameter"><code>queue</code></em>, the link is added to the end of
992 <em class="parameter"><code>queue</code></em>.
996 <td><p><span class="term"><em class="parameter"><code>link_</code></em> :</span></p></td>
997 <td> the link to add to <em class="parameter"><code>queue</code></em>
1002 <p class="since">Since 2.4</p>
1005 <div class="refsect2" title="g_queue_pop_head_link ()">
1006 <a name="g-queue-pop-head-link"></a><h3>g_queue_pop_head_link ()</h3>
1007 <pre class="programlisting"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a>* g_queue_pop_head_link (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
1009 Removes the first element of the queue.</p>
1010 <div class="variablelist"><table border="0">
1011 <col align="left" valign="top">
1014 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1015 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
1019 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1020 <td> the <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="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
1028 <div class="refsect2" title="g_queue_pop_tail_link ()">
1029 <a name="g-queue-pop-tail-link"></a><h3>g_queue_pop_tail_link ()</h3>
1030 <pre class="programlisting"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a>* g_queue_pop_tail_link (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
1032 Removes the last element of the queue.</p>
1033 <div class="variablelist"><table border="0">
1034 <col align="left" valign="top">
1037 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1038 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
1042 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1043 <td> the <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="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
1051 <div class="refsect2" title="g_queue_pop_nth_link ()">
1052 <a name="g-queue-pop-nth-link"></a><h3>g_queue_pop_nth_link ()</h3>
1053 <pre class="programlisting"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a>* g_queue_pop_nth_link (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
1054 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> n);</pre>
1056 Removes and returns the link at the given position.</p>
1057 <div class="variablelist"><table border="0">
1058 <col align="left" valign="top">
1061 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1062 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
1066 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
1067 <td> the link's position
1071 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1072 <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>.
1078 <p class="since">Since 2.4</p>
1081 <div class="refsect2" title="g_queue_peek_head_link ()">
1082 <a name="g-queue-peek-head-link"></a><h3>g_queue_peek_head_link ()</h3>
1083 <pre class="programlisting"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a>* g_queue_peek_head_link (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
1085 Returns the first link in <em class="parameter"><code>queue</code></em></p>
1086 <div class="variablelist"><table border="0">
1087 <col align="left" valign="top">
1090 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1091 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
1095 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1096 <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
1102 <p class="since">Since 2.4</p>
1105 <div class="refsect2" title="g_queue_peek_tail_link ()">
1106 <a name="g-queue-peek-tail-link"></a><h3>g_queue_peek_tail_link ()</h3>
1107 <pre class="programlisting"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a>* g_queue_peek_tail_link (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
1109 Returns the last link <em class="parameter"><code>queue</code></em>.</p>
1110 <div class="variablelist"><table border="0">
1111 <col align="left" valign="top">
1114 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1115 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
1119 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1120 <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
1126 <p class="since">Since 2.4</p>
1129 <div class="refsect2" title="g_queue_peek_nth_link ()">
1130 <a name="g-queue-peek-nth-link"></a><h3>g_queue_peek_nth_link ()</h3>
1131 <pre class="programlisting"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a>* g_queue_peek_nth_link (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
1132 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> n);</pre>
1134 Returns the link at the given position</p>
1135 <div class="variablelist"><table border="0">
1136 <col align="left" valign="top">
1139 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1140 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
1144 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
1145 <td> the position of the link
1149 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1150 <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
1157 <p class="since">Since 2.4</p>
1160 <div class="refsect2" title="g_queue_link_index ()">
1161 <a name="g-queue-link-index"></a><h3>g_queue_link_index ()</h3>
1162 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> g_queue_link_index (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
1163 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *link_);</pre>
1165 Returns the position of <em class="parameter"><code>link_</code></em> in <em class="parameter"><code>queue</code></em>.</p>
1166 <div class="variablelist"><table border="0">
1167 <col align="left" valign="top">
1170 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1171 <td> a <span class="type">Gqueue</span>
1175 <td><p><span class="term"><em class="parameter"><code>link_</code></em> :</span></p></td>
1176 <td> A <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="type">GList</span></a> link
1180 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1181 <td> The position of <em class="parameter"><code>link_</code></em>, or -1 if the link is
1182 not part of <em class="parameter"><code>queue</code></em>
1188 <p class="since">Since 2.4</p>
1191 <div class="refsect2" title="g_queue_unlink ()">
1192 <a name="g-queue-unlink"></a><h3>g_queue_unlink ()</h3>
1193 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_unlink (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
1194 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *link_);</pre>
1196 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
1200 <em class="parameter"><code>link_</code></em> must be part of <em class="parameter"><code>queue</code></em>,</p>
1201 <div class="variablelist"><table border="0">
1202 <col align="left" valign="top">
1205 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1206 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
1210 <td><p><span class="term"><em class="parameter"><code>link_</code></em> :</span></p></td>
1211 <td> a <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="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>
1216 <p class="since">Since 2.4</p>
1219 <div class="refsect2" title="g_queue_delete_link ()">
1220 <a name="g-queue-delete-link"></a><h3>g_queue_delete_link ()</h3>
1221 <pre class="programlisting"><span class="returnvalue">void</span> g_queue_delete_link (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
1222 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *link_);</pre>
1224 Removes <em class="parameter"><code>link_</code></em> from <em class="parameter"><code>queue</code></em> and frees it.
1227 <em class="parameter"><code>link_</code></em> must be part of <em class="parameter"><code>queue</code></em>.</p>
1228 <div class="variablelist"><table border="0">
1229 <col align="left" valign="top">
1232 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1233 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
1237 <td><p><span class="term"><em class="parameter"><code>link_</code></em> :</span></p></td>
1238 <td> a <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="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>
1243 <p class="since">Since 2.4</p>
1247 <div class="footer">
1249 Generated by GTK-Doc V1.13</div>