1
<refentry id="glib-Double-ended-Queues">
3
<refentrytitle role="top_of_page">Double-ended Queues</refentrytitle>
4
<manvolnum>3</manvolnum>
5
<refmiscinfo>GLIB Library</refmiscinfo>
9
<refname>Double-ended Queues</refname>
10
<refpurpose>double-ended queue data structure.</refpurpose>
11
<!--[<xref linkend="desc" endterm="desc.title"/>]-->
14
<refsynopsisdiv role="synopsis">
15
<title role="synopsis.title">Synopsis</title>
19
#include <glib.h>
22
<link linkend="GQueue">GQueue</link>;
23
<link linkend="GQueue">GQueue</link>* <link linkend="g-queue-new">g_queue_new</link> (void);
24
<link linkend="void">void</link> <link linkend="g-queue-free">g_queue_free</link> (<link linkend="GQueue">GQueue</link> *queue);
25
<link linkend="gboolean">gboolean</link> <link linkend="g-queue-is-empty">g_queue_is_empty</link> (<link linkend="GQueue">GQueue</link> *queue);
26
<link linkend="guint">guint</link> <link linkend="g-queue-get-length">g_queue_get_length</link> (<link linkend="GQueue">GQueue</link> *queue);
27
<link linkend="void">void</link> <link linkend="g-queue-reverse">g_queue_reverse</link> (<link linkend="GQueue">GQueue</link> *queue);
28
<link linkend="GQueue">GQueue</link>* <link linkend="g-queue-copy">g_queue_copy</link> (<link linkend="GQueue">GQueue</link> *queue);
29
<link linkend="void">void</link> <link linkend="g-queue-foreach">g_queue_foreach</link> (<link linkend="GQueue">GQueue</link> *queue,
30
<link linkend="GFunc">GFunc</link> func,
31
<link linkend="gpointer">gpointer</link> user_data);
32
<link linkend="GList">GList</link>* <link linkend="g-queue-find">g_queue_find</link> (<link linkend="GQueue">GQueue</link> *queue,
33
<link linkend="gconstpointer">gconstpointer</link> data);
34
<link linkend="GList">GList</link>* <link linkend="g-queue-find-custom">g_queue_find_custom</link> (<link linkend="GQueue">GQueue</link> *queue,
35
<link linkend="gconstpointer">gconstpointer</link> data,
36
<link linkend="GCompareFunc">GCompareFunc</link> func);
37
<link linkend="void">void</link> <link linkend="g-queue-sort">g_queue_sort</link> (<link linkend="GQueue">GQueue</link> *queue,
38
<link linkend="GCompareDataFunc">GCompareDataFunc</link> compare_func,
39
<link linkend="gpointer">gpointer</link> user_data);
40
<link linkend="void">void</link> <link linkend="g-queue-push-head">g_queue_push_head</link> (<link linkend="GQueue">GQueue</link> *queue,
41
<link linkend="gpointer">gpointer</link> data);
42
<link linkend="void">void</link> <link linkend="g-queue-push-tail">g_queue_push_tail</link> (<link linkend="GQueue">GQueue</link> *queue,
43
<link linkend="gpointer">gpointer</link> data);
44
<link linkend="void">void</link> <link linkend="g-queue-push-nth">g_queue_push_nth</link> (<link linkend="GQueue">GQueue</link> *queue,
45
<link linkend="gpointer">gpointer</link> data,
46
<link linkend="gint">gint</link> n);
47
<link linkend="gpointer">gpointer</link> <link linkend="g-queue-pop-head">g_queue_pop_head</link> (<link linkend="GQueue">GQueue</link> *queue);
48
<link linkend="gpointer">gpointer</link> <link linkend="g-queue-pop-tail">g_queue_pop_tail</link> (<link linkend="GQueue">GQueue</link> *queue);
49
<link linkend="gpointer">gpointer</link> <link linkend="g-queue-pop-nth">g_queue_pop_nth</link> (<link linkend="GQueue">GQueue</link> *queue,
50
<link linkend="guint">guint</link> n);
51
<link linkend="gpointer">gpointer</link> <link linkend="g-queue-peek-head">g_queue_peek_head</link> (<link linkend="GQueue">GQueue</link> *queue);
52
<link linkend="gpointer">gpointer</link> <link linkend="g-queue-peek-tail">g_queue_peek_tail</link> (<link linkend="GQueue">GQueue</link> *queue);
53
<link linkend="gpointer">gpointer</link> <link linkend="g-queue-peek-nth">g_queue_peek_nth</link> (<link linkend="GQueue">GQueue</link> *queue,
54
<link linkend="guint">guint</link> n);
55
<link linkend="gint">gint</link> <link linkend="g-queue-index">g_queue_index</link> (<link linkend="GQueue">GQueue</link> *queue,
56
<link linkend="gconstpointer">gconstpointer</link> data);
57
<link linkend="void">void</link> <link linkend="g-queue-remove">g_queue_remove</link> (<link linkend="GQueue">GQueue</link> *queue,
58
<link linkend="gconstpointer">gconstpointer</link> data);
59
<link linkend="void">void</link> <link linkend="g-queue-remove-all">g_queue_remove_all</link> (<link linkend="GQueue">GQueue</link> *queue,
60
<link linkend="gconstpointer">gconstpointer</link> data);
61
<link linkend="void">void</link> <link linkend="g-queue-insert-before">g_queue_insert_before</link> (<link linkend="GQueue">GQueue</link> *queue,
62
<link linkend="GList">GList</link> *sibling,
63
<link linkend="gpointer">gpointer</link> data);
64
<link linkend="void">void</link> <link linkend="g-queue-insert-after">g_queue_insert_after</link> (<link linkend="GQueue">GQueue</link> *queue,
65
<link linkend="GList">GList</link> *sibling,
66
<link linkend="gpointer">gpointer</link> data);
67
<link linkend="void">void</link> <link linkend="g-queue-insert-sorted">g_queue_insert_sorted</link> (<link linkend="GQueue">GQueue</link> *queue,
68
<link linkend="gpointer">gpointer</link> data,
69
<link linkend="GCompareDataFunc">GCompareDataFunc</link> func,
70
<link linkend="gpointer">gpointer</link> user_data);
71
<link linkend="void">void</link> <link linkend="g-queue-push-head-link">g_queue_push_head_link</link> (<link linkend="GQueue">GQueue</link> *queue,
72
<link linkend="GList">GList</link> *link_);
73
<link linkend="void">void</link> <link linkend="g-queue-push-tail-link">g_queue_push_tail_link</link> (<link linkend="GQueue">GQueue</link> *queue,
74
<link linkend="GList">GList</link> *link_);
75
<link linkend="void">void</link> <link linkend="g-queue-push-nth-link">g_queue_push_nth_link</link> (<link linkend="GQueue">GQueue</link> *queue,
76
<link linkend="gint">gint</link> n,
77
<link linkend="GList">GList</link> *link_);
78
<link linkend="GList">GList</link>* <link linkend="g-queue-pop-head-link">g_queue_pop_head_link</link> (<link linkend="GQueue">GQueue</link> *queue);
79
<link linkend="GList">GList</link>* <link linkend="g-queue-pop-tail-link">g_queue_pop_tail_link</link> (<link linkend="GQueue">GQueue</link> *queue);
80
<link linkend="GList">GList</link>* <link linkend="g-queue-pop-nth-link">g_queue_pop_nth_link</link> (<link linkend="GQueue">GQueue</link> *queue,
81
<link linkend="guint">guint</link> n);
82
<link linkend="GList">GList</link>* <link linkend="g-queue-peek-head-link">g_queue_peek_head_link</link> (<link linkend="GQueue">GQueue</link> *queue);
83
<link linkend="GList">GList</link>* <link linkend="g-queue-peek-tail-link">g_queue_peek_tail_link</link> (<link linkend="GQueue">GQueue</link> *queue);
84
<link linkend="GList">GList</link>* <link linkend="g-queue-peek-nth-link">g_queue_peek_nth_link</link> (<link linkend="GQueue">GQueue</link> *queue,
85
<link linkend="guint">guint</link> n);
86
<link linkend="gint">gint</link> <link linkend="g-queue-link-index">g_queue_link_index</link> (<link linkend="GQueue">GQueue</link> *queue,
87
<link linkend="GList">GList</link> *link_);
88
<link linkend="void">void</link> <link linkend="g-queue-unlink">g_queue_unlink</link> (<link linkend="GQueue">GQueue</link> *queue,
89
<link linkend="GList">GList</link> *link_);
90
<link linkend="void">void</link> <link linkend="g-queue-delete-link">g_queue_delete_link</link> (<link linkend="GQueue">GQueue</link> *queue,
91
<link linkend="GList">GList</link> *link_);
103
<refsect1 role="desc">
104
<title role="desc.title">Description</title>
106
The <link linkend="GQueue"><type>GQueue</type></link> structure and its associated functions provide a standard
107
queue data structure. Internally, <link linkend="GQueue"><type>GQueue</type></link> uses the same data structure as
108
<link linkend="GList"><type>GList</type></link> to store elements.
111
The data contained in each element can be either integer values, by using one
113
<link linkend="glib-Type-Conversion-Macros">Type Conversion Macros</link>,
114
or simply pointers to any type of data.
117
To create a new <link linkend="GQueue"><type>GQueue</type></link>, use <link linkend="g-queue-new"><function>g_queue_new()</function></link>.
120
To add elements, use <link linkend="g-queue-push-head"><function>g_queue_push_head()</function></link>, <link linkend="g-queue-push-head-link"><function>g_queue_push_head_link()</function></link>,
121
<link linkend="g-queue-push-tail"><function>g_queue_push_tail()</function></link> and <link linkend="g-queue-push-tail-link"><function>g_queue_push_tail_link()</function></link>.
124
To remove elements, use <link linkend="g-queue-pop-head"><function>g_queue_pop_head()</function></link> and <link linkend="g-queue-pop-tail"><function>g_queue_pop_tail()</function></link>.
127
To free the entire queue, use <link linkend="g-queue-free"><function>g_queue_free()</function></link>.
131
<refsect1 role="details">
132
<title role="details.title">Details</title>
134
<title><anchor id="GQueue" role="struct"/>GQueue</title>
135
<indexterm><primary>GQueue</primary></indexterm><programlisting>typedef struct {
142
Contains the public fields of a <link linkend="glib-queues">Queue</link>.
143
</para><variablelist role="struct">
145
<term><link linkend="GList">GList</link> *<structfield>head</structfield>;</term>
146
<listitem><simpara>a pointer to the first element of the queue.
147
</simpara></listitem>
150
<term><link linkend="GList">GList</link> *<structfield>tail</structfield>;</term>
151
<listitem><simpara>a pointer to the last element of the queue.
152
</simpara></listitem>
155
<term><link linkend="guint">guint</link> <structfield>length</structfield>;</term>
156
<listitem><simpara>the number of elements in the queue.
158
</simpara></listitem>
160
</variablelist></refsect2>
162
<title><anchor id="g-queue-new" role="function"/>g_queue_new ()</title>
163
<indexterm><primary>g_queue_new</primary></indexterm><programlisting><link linkend="GQueue">GQueue</link>* g_queue_new (void);</programlisting>
165
Creates a new <link linkend="GQueue"><type>GQueue</type></link>.</para>
168
</para><variablelist role="params">
169
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a new <link linkend="GQueue"><type>GQueue</type></link>.
170
</simpara></listitem></varlistentry>
171
</variablelist></refsect2>
173
<title><anchor id="g-queue-free" role="function"/>g_queue_free ()</title>
174
<indexterm><primary>g_queue_free</primary></indexterm><programlisting><link linkend="void">void</link> g_queue_free (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
176
Frees the memory allocated for the <link linkend="GQueue"><type>GQueue</type></link>.</para>
179
</para><variablelist role="params">
180
<varlistentry><term><parameter>queue</parameter> :</term>
181
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
182
</simpara></listitem></varlistentry>
183
</variablelist></refsect2>
185
<title><anchor id="g-queue-is-empty" role="function"/>g_queue_is_empty ()</title>
186
<indexterm><primary>g_queue_is_empty</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> g_queue_is_empty (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
188
Returns <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the queue is empty.</para>
191
</para><variablelist role="params">
192
<varlistentry><term><parameter>queue</parameter> :</term>
193
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
194
</simpara></listitem></varlistentry>
195
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the queue is empty.
196
</simpara></listitem></varlistentry>
197
</variablelist></refsect2>
199
<title><anchor id="g-queue-get-length" role="function" condition="since:2.4"/>g_queue_get_length ()</title>
200
<indexterm role="2.4"><primary>g_queue_get_length</primary></indexterm><programlisting><link linkend="guint">guint</link> g_queue_get_length (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
202
Returns the number of items in <parameter>queue</parameter>.</para>
205
</para><variablelist role="params">
206
<varlistentry><term><parameter>queue</parameter> :</term>
207
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
208
</simpara></listitem></varlistentry>
209
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The number of items in <parameter>queue</parameter>.
211
</simpara></listitem></varlistentry>
212
</variablelist><para role="since">Since 2.4
215
<title><anchor id="g-queue-reverse" role="function" condition="since:2.4"/>g_queue_reverse ()</title>
216
<indexterm role="2.4"><primary>g_queue_reverse</primary></indexterm><programlisting><link linkend="void">void</link> g_queue_reverse (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
218
Reverses the order of the items in <parameter>queue</parameter>.</para>
221
</para><variablelist role="params">
222
<varlistentry><term><parameter>queue</parameter> :</term>
223
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
224
</simpara></listitem></varlistentry>
225
</variablelist><para role="since">Since 2.4
228
<title><anchor id="g-queue-copy" role="function" condition="since:2.4"/>g_queue_copy ()</title>
229
<indexterm role="2.4"><primary>g_queue_copy</primary></indexterm><programlisting><link linkend="GQueue">GQueue</link>* g_queue_copy (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
231
Copies a <parameter>queue</parameter>. Note that is a shallow copy. If the elements in the
232
queue consist of pointers to data, the pointers are copied, but the
233
actual data is not.</para>
236
</para><variablelist role="params">
237
<varlistentry><term><parameter>queue</parameter> :</term>
238
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
239
</simpara></listitem></varlistentry>
240
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> A copy of <parameter>queue</parameter>
242
</simpara></listitem></varlistentry>
243
</variablelist><para role="since">Since 2.4
246
<title><anchor id="g-queue-foreach" role="function" condition="since:2.4"/>g_queue_foreach ()</title>
247
<indexterm role="2.4"><primary>g_queue_foreach</primary></indexterm><programlisting><link linkend="void">void</link> g_queue_foreach (<link linkend="GQueue">GQueue</link> *queue,
248
<link linkend="GFunc">GFunc</link> func,
249
<link linkend="gpointer">gpointer</link> user_data);</programlisting>
251
Calls <parameter>func</parameter> for each element in the queue passing <parameter>user_data</parameter> to the
255
</para><variablelist role="params">
256
<varlistentry><term><parameter>queue</parameter> :</term>
257
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
258
</simpara></listitem></varlistentry>
259
<varlistentry><term><parameter>func</parameter> :</term>
260
<listitem><simpara> the function to call for each element's data
261
</simpara></listitem></varlistentry>
262
<varlistentry><term><parameter>user_data</parameter> :</term>
263
<listitem><simpara> user data to pass to <parameter>func</parameter>
264
</simpara></listitem></varlistentry>
265
</variablelist><para role="since">Since 2.4
268
<title><anchor id="g-queue-find" role="function" condition="since:2.4"/>g_queue_find ()</title>
269
<indexterm role="2.4"><primary>g_queue_find</primary></indexterm><programlisting><link linkend="GList">GList</link>* g_queue_find (<link linkend="GQueue">GQueue</link> *queue,
270
<link linkend="gconstpointer">gconstpointer</link> data);</programlisting>
272
Finds the first link in <parameter>queue</parameter> which contains <parameter>data</parameter>.</para>
275
</para><variablelist role="params">
276
<varlistentry><term><parameter>queue</parameter> :</term>
277
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
278
</simpara></listitem></varlistentry>
279
<varlistentry><term><parameter>data</parameter> :</term>
280
<listitem><simpara> data to find
281
</simpara></listitem></varlistentry>
282
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The first link in <parameter>queue</parameter> which contains <parameter>data</parameter>.
284
</simpara></listitem></varlistentry>
285
</variablelist><para role="since">Since 2.4
288
<title><anchor id="g-queue-find-custom" role="function" condition="since:2.4"/>g_queue_find_custom ()</title>
289
<indexterm role="2.4"><primary>g_queue_find_custom</primary></indexterm><programlisting><link linkend="GList">GList</link>* g_queue_find_custom (<link linkend="GQueue">GQueue</link> *queue,
290
<link linkend="gconstpointer">gconstpointer</link> data,
291
<link linkend="GCompareFunc">GCompareFunc</link> func);</programlisting>
293
Finds an element in a <link linkend="GQueue"><type>GQueue</type></link>, using a supplied function to find the
294
desired element. It iterates over the queue, calling the given function
295
which should return 0 when the desired element is found. The function
296
takes two gconstpointer arguments, the <link linkend="GQueue"><type>GQueue</type></link> element's data as the
297
first argument and the given user data as the second argument.</para>
300
</para><variablelist role="params">
301
<varlistentry><term><parameter>queue</parameter> :</term>
302
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
303
</simpara></listitem></varlistentry>
304
<varlistentry><term><parameter>data</parameter> :</term>
305
<listitem><simpara> user data passed to <parameter>func</parameter>
306
</simpara></listitem></varlistentry>
307
<varlistentry><term><parameter>func</parameter> :</term>
308
<listitem><simpara> a <link linkend="GCompareFunc"><type>GCompareFunc</type></link> to call for each element. It should return 0
309
when the desired element is found
310
</simpara></listitem></varlistentry>
311
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The found link, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if it wasn't found
313
</simpara></listitem></varlistentry>
314
</variablelist><para role="since">Since 2.4
317
<title><anchor id="g-queue-sort" role="function" condition="since:2.4"/>g_queue_sort ()</title>
318
<indexterm role="2.4"><primary>g_queue_sort</primary></indexterm><programlisting><link linkend="void">void</link> g_queue_sort (<link linkend="GQueue">GQueue</link> *queue,
319
<link linkend="GCompareDataFunc">GCompareDataFunc</link> compare_func,
320
<link linkend="gpointer">gpointer</link> user_data);</programlisting>
322
Sorts <parameter>queue</parameter> using <parameter>compare_func</parameter>.</para>
325
</para><variablelist role="params">
326
<varlistentry><term><parameter>queue</parameter> :</term>
327
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
328
</simpara></listitem></varlistentry>
329
<varlistentry><term><parameter>compare_func</parameter> :</term>
330
<listitem><simpara> the <link linkend="GCompareDataFunc"><type>GCompareDataFunc</type></link> used to sort <parameter>queue</parameter>. This function
331
is passed two elements of the queue and should return 0 if they are
332
equal, a negative value if the first comes before the second, and
333
a positive value if the second comes before the first.
334
</simpara></listitem></varlistentry>
335
<varlistentry><term><parameter>user_data</parameter> :</term>
336
<listitem><simpara> user data passed to <parameter>compare_func</parameter>
337
</simpara></listitem></varlistentry>
338
</variablelist><para role="since">Since 2.4
341
<title><anchor id="g-queue-push-head" role="function"/>g_queue_push_head ()</title>
342
<indexterm><primary>g_queue_push_head</primary></indexterm><programlisting><link linkend="void">void</link> g_queue_push_head (<link linkend="GQueue">GQueue</link> *queue,
343
<link linkend="gpointer">gpointer</link> data);</programlisting>
345
Adds a new element at the head of the queue.</para>
348
</para><variablelist role="params">
349
<varlistentry><term><parameter>queue</parameter> :</term>
350
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
351
</simpara></listitem></varlistentry>
352
<varlistentry><term><parameter>data</parameter> :</term>
353
<listitem><simpara> the data for the new element.
354
</simpara></listitem></varlistentry>
355
</variablelist></refsect2>
357
<title><anchor id="g-queue-push-tail" role="function"/>g_queue_push_tail ()</title>
358
<indexterm><primary>g_queue_push_tail</primary></indexterm><programlisting><link linkend="void">void</link> g_queue_push_tail (<link linkend="GQueue">GQueue</link> *queue,
359
<link linkend="gpointer">gpointer</link> data);</programlisting>
361
Adds a new element at the tail of the queue.</para>
364
</para><variablelist role="params">
365
<varlistentry><term><parameter>queue</parameter> :</term>
366
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
367
</simpara></listitem></varlistentry>
368
<varlistentry><term><parameter>data</parameter> :</term>
369
<listitem><simpara> the data for the new element.
370
</simpara></listitem></varlistentry>
371
</variablelist></refsect2>
373
<title><anchor id="g-queue-push-nth" role="function" condition="since:2.4"/>g_queue_push_nth ()</title>
374
<indexterm role="2.4"><primary>g_queue_push_nth</primary></indexterm><programlisting><link linkend="void">void</link> g_queue_push_nth (<link linkend="GQueue">GQueue</link> *queue,
375
<link linkend="gpointer">gpointer</link> data,
376
<link linkend="gint">gint</link> n);</programlisting>
378
Inserts a new element into <parameter>queue</parameter> at the given position</para>
381
</para><variablelist role="params">
382
<varlistentry><term><parameter>queue</parameter> :</term>
383
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
384
</simpara></listitem></varlistentry>
385
<varlistentry><term><parameter>data</parameter> :</term>
386
<listitem><simpara> the data for the new element
387
</simpara></listitem></varlistentry>
388
<varlistentry><term><parameter>n</parameter> :</term>
389
<listitem><simpara> the position to insert the new element. If <parameter>n</parameter> is negative or
390
larger than the number of elements in the <parameter>queue</parameter>, the element is
391
added to the end of the queue.
392
</simpara></listitem></varlistentry>
393
</variablelist><para role="since">Since 2.4
396
<title><anchor id="g-queue-pop-head" role="function"/>g_queue_pop_head ()</title>
397
<indexterm><primary>g_queue_pop_head</primary></indexterm><programlisting><link linkend="gpointer">gpointer</link> g_queue_pop_head (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
399
Removes the first element of the queue.</para>
402
</para><variablelist role="params">
403
<varlistentry><term><parameter>queue</parameter> :</term>
404
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
405
</simpara></listitem></varlistentry>
406
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the data of the first element in the queue, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the queue
408
</simpara></listitem></varlistentry>
409
</variablelist></refsect2>
411
<title><anchor id="g-queue-pop-tail" role="function"/>g_queue_pop_tail ()</title>
412
<indexterm><primary>g_queue_pop_tail</primary></indexterm><programlisting><link linkend="gpointer">gpointer</link> g_queue_pop_tail (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
414
Removes the last element of the queue.</para>
417
</para><variablelist role="params">
418
<varlistentry><term><parameter>queue</parameter> :</term>
419
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
420
</simpara></listitem></varlistentry>
421
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the data of the last element in the queue, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the queue
423
</simpara></listitem></varlistentry>
424
</variablelist></refsect2>
426
<title><anchor id="g-queue-pop-nth" role="function" condition="since:2.4"/>g_queue_pop_nth ()</title>
427
<indexterm role="2.4"><primary>g_queue_pop_nth</primary></indexterm><programlisting><link linkend="gpointer">gpointer</link> g_queue_pop_nth (<link linkend="GQueue">GQueue</link> *queue,
428
<link linkend="guint">guint</link> n);</programlisting>
430
Removes the <parameter>n</parameter>'th element of <parameter>queue</parameter>.</para>
433
</para><variablelist role="params">
434
<varlistentry><term><parameter>queue</parameter> :</term>
435
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
436
</simpara></listitem></varlistentry>
437
<varlistentry><term><parameter>n</parameter> :</term>
438
<listitem><simpara> the position of the element.
439
</simpara></listitem></varlistentry>
440
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the element's data, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if <parameter>n</parameter> is off the end of <parameter>queue</parameter>.
442
</simpara></listitem></varlistentry>
443
</variablelist><para role="since">Since 2.4
446
<title><anchor id="g-queue-peek-head" role="function"/>g_queue_peek_head ()</title>
447
<indexterm><primary>g_queue_peek_head</primary></indexterm><programlisting><link linkend="gpointer">gpointer</link> g_queue_peek_head (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
449
Returns the first element of the queue.</para>
452
</para><variablelist role="params">
453
<varlistentry><term><parameter>queue</parameter> :</term>
454
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
455
</simpara></listitem></varlistentry>
456
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the data of the first element in the queue, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the queue
458
</simpara></listitem></varlistentry>
459
</variablelist></refsect2>
461
<title><anchor id="g-queue-peek-tail" role="function"/>g_queue_peek_tail ()</title>
462
<indexterm><primary>g_queue_peek_tail</primary></indexterm><programlisting><link linkend="gpointer">gpointer</link> g_queue_peek_tail (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
464
Returns the last element of the queue.</para>
467
</para><variablelist role="params">
468
<varlistentry><term><parameter>queue</parameter> :</term>
469
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
470
</simpara></listitem></varlistentry>
471
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the data of the last element in the queue, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the queue
473
</simpara></listitem></varlistentry>
474
</variablelist></refsect2>
476
<title><anchor id="g-queue-peek-nth" role="function" condition="since:2.4"/>g_queue_peek_nth ()</title>
477
<indexterm role="2.4"><primary>g_queue_peek_nth</primary></indexterm><programlisting><link linkend="gpointer">gpointer</link> g_queue_peek_nth (<link linkend="GQueue">GQueue</link> *queue,
478
<link linkend="guint">guint</link> n);</programlisting>
480
Returns the <parameter>n</parameter>'th element of <parameter>queue</parameter>.</para>
483
</para><variablelist role="params">
484
<varlistentry><term><parameter>queue</parameter> :</term>
485
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
486
</simpara></listitem></varlistentry>
487
<varlistentry><term><parameter>n</parameter> :</term>
488
<listitem><simpara> the position of the element.
489
</simpara></listitem></varlistentry>
490
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The data for the <parameter>n</parameter>'th element of <parameter>queue</parameter>, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if <parameter>n</parameter> is
491
off the end of <parameter>queue</parameter>.
493
</simpara></listitem></varlistentry>
494
</variablelist><para role="since">Since 2.4
497
<title><anchor id="g-queue-index" role="function" condition="since:2.4"/>g_queue_index ()</title>
498
<indexterm role="2.4"><primary>g_queue_index</primary></indexterm><programlisting><link linkend="gint">gint</link> g_queue_index (<link linkend="GQueue">GQueue</link> *queue,
499
<link linkend="gconstpointer">gconstpointer</link> data);</programlisting>
501
Returns the position of the first element in <parameter>queue</parameter> which contains <parameter>data</parameter>.</para>
504
</para><variablelist role="params">
505
<varlistentry><term><parameter>queue</parameter> :</term>
506
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
507
</simpara></listitem></varlistentry>
508
<varlistentry><term><parameter>data</parameter> :</term>
509
<listitem><simpara> the data to find.
510
</simpara></listitem></varlistentry>
511
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The position of the first element in <parameter>queue</parameter> which contains <parameter>data</parameter>, or -1 if no element in <parameter>queue</parameter> contains <parameter>data</parameter>.
513
</simpara></listitem></varlistentry>
514
</variablelist><para role="since">Since 2.4
517
<title><anchor id="g-queue-remove" role="function" condition="since:2.4"/>g_queue_remove ()</title>
518
<indexterm role="2.4"><primary>g_queue_remove</primary></indexterm><programlisting><link linkend="void">void</link> g_queue_remove (<link linkend="GQueue">GQueue</link> *queue,
519
<link linkend="gconstpointer">gconstpointer</link> data);</programlisting>
521
Removes the first element in <parameter>queue</parameter> that contains <parameter>data</parameter>.</para>
524
</para><variablelist role="params">
525
<varlistentry><term><parameter>queue</parameter> :</term>
526
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
527
</simpara></listitem></varlistentry>
528
<varlistentry><term><parameter>data</parameter> :</term>
529
<listitem><simpara> data to remove.
530
</simpara></listitem></varlistentry>
531
</variablelist><para role="since">Since 2.4
534
<title><anchor id="g-queue-remove-all" role="function" condition="since:2.4"/>g_queue_remove_all ()</title>
535
<indexterm role="2.4"><primary>g_queue_remove_all</primary></indexterm><programlisting><link linkend="void">void</link> g_queue_remove_all (<link linkend="GQueue">GQueue</link> *queue,
536
<link linkend="gconstpointer">gconstpointer</link> data);</programlisting>
538
Remove all elemeents in <parameter>queue</parameter> which contains <parameter>data</parameter>.</para>
541
</para><variablelist role="params">
542
<varlistentry><term><parameter>queue</parameter> :</term>
543
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
544
</simpara></listitem></varlistentry>
545
<varlistentry><term><parameter>data</parameter> :</term>
546
<listitem><simpara> data to remove
547
</simpara></listitem></varlistentry>
548
</variablelist><para role="since">Since 2.4
551
<title><anchor id="g-queue-insert-before" role="function" condition="since:2.4"/>g_queue_insert_before ()</title>
552
<indexterm role="2.4"><primary>g_queue_insert_before</primary></indexterm><programlisting><link linkend="void">void</link> g_queue_insert_before (<link linkend="GQueue">GQueue</link> *queue,
553
<link linkend="GList">GList</link> *sibling,
554
<link linkend="gpointer">gpointer</link> data);</programlisting>
556
Inserts <parameter>data</parameter> into <parameter>queue</parameter> before <parameter>sibling</parameter>.
559
<parameter>sibling</parameter> must be part of <parameter>queue</parameter>.</para>
562
</para><variablelist role="params">
563
<varlistentry><term><parameter>queue</parameter> :</term>
564
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
565
</simpara></listitem></varlistentry>
566
<varlistentry><term><parameter>sibling</parameter> :</term>
567
<listitem><simpara> a <link linkend="GList"><type>GList</type></link> link that <emphasis>must</emphasis> be part of <parameter>queue</parameter>
568
</simpara></listitem></varlistentry>
569
<varlistentry><term><parameter>data</parameter> :</term>
570
<listitem><simpara> the data to insert
571
</simpara></listitem></varlistentry>
572
</variablelist><para role="since">Since 2.4
575
<title><anchor id="g-queue-insert-after" role="function" condition="since:2.4"/>g_queue_insert_after ()</title>
576
<indexterm role="2.4"><primary>g_queue_insert_after</primary></indexterm><programlisting><link linkend="void">void</link> g_queue_insert_after (<link linkend="GQueue">GQueue</link> *queue,
577
<link linkend="GList">GList</link> *sibling,
578
<link linkend="gpointer">gpointer</link> data);</programlisting>
580
Inserts <parameter>data</parameter> into <parameter>queue</parameter> after <parameter>sibling</parameter>
583
<parameter>sibling</parameter> must be part of <parameter>queue</parameter></para>
586
</para><variablelist role="params">
587
<varlistentry><term><parameter>queue</parameter> :</term>
588
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
589
</simpara></listitem></varlistentry>
590
<varlistentry><term><parameter>sibling</parameter> :</term>
591
<listitem><simpara> a <link linkend="GList"><type>GList</type></link> link that <emphasis>must</emphasis> be part of <parameter>queue</parameter>
592
</simpara></listitem></varlistentry>
593
<varlistentry><term><parameter>data</parameter> :</term>
594
<listitem><simpara> the data to insert
595
</simpara></listitem></varlistentry>
596
</variablelist><para role="since">Since 2.4
599
<title><anchor id="g-queue-insert-sorted" role="function" condition="since:2.4"/>g_queue_insert_sorted ()</title>
600
<indexterm role="2.4"><primary>g_queue_insert_sorted</primary></indexterm><programlisting><link linkend="void">void</link> g_queue_insert_sorted (<link linkend="GQueue">GQueue</link> *queue,
601
<link linkend="gpointer">gpointer</link> data,
602
<link linkend="GCompareDataFunc">GCompareDataFunc</link> func,
603
<link linkend="gpointer">gpointer</link> user_data);</programlisting>
605
Inserts <parameter>data</parameter> into <parameter>queue</parameter> using <parameter>func</parameter> to determine the new position.</para>
608
</para><variablelist role="params">
609
<varlistentry><term><parameter>queue</parameter> :</term>
610
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
611
</simpara></listitem></varlistentry>
612
<varlistentry><term><parameter>data</parameter> :</term>
613
<listitem><simpara> the data to insert
614
</simpara></listitem></varlistentry>
615
<varlistentry><term><parameter>func</parameter> :</term>
616
<listitem><simpara> the <link linkend="GCompareDataFunc"><type>GCompareDataFunc</type></link> used to compare elements in the queue. It is
617
called with two elements of the <parameter>queue</parameter> and <parameter>user_data</parameter>. It should
618
return 0 if the elements are equal, a negative value if the first
619
element comes before the second, and a positive value if the second
620
element comes before the first.
621
</simpara></listitem></varlistentry>
622
<varlistentry><term><parameter>user_data</parameter> :</term>
623
<listitem><simpara> user data passed to <parameter>func</parameter>.
624
</simpara></listitem></varlistentry>
625
</variablelist><para role="since">Since 2.4
628
<title><anchor id="g-queue-push-head-link" role="function"/>g_queue_push_head_link ()</title>
629
<indexterm><primary>g_queue_push_head_link</primary></indexterm><programlisting><link linkend="void">void</link> g_queue_push_head_link (<link linkend="GQueue">GQueue</link> *queue,
630
<link linkend="GList">GList</link> *link_);</programlisting>
632
Adds a new element at the head of the queue.</para>
635
</para><variablelist role="params">
636
<varlistentry><term><parameter>queue</parameter> :</term>
637
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
638
</simpara></listitem></varlistentry>
639
<varlistentry><term><parameter>link_</parameter> :</term>
640
<listitem><simpara> a single <link linkend="GList"><type>GList</type></link> element, <emphasis>not</emphasis> a list with
641
more than one element.
642
</simpara></listitem></varlistentry>
643
</variablelist></refsect2>
645
<title><anchor id="g-queue-push-tail-link" role="function"/>g_queue_push_tail_link ()</title>
646
<indexterm><primary>g_queue_push_tail_link</primary></indexterm><programlisting><link linkend="void">void</link> g_queue_push_tail_link (<link linkend="GQueue">GQueue</link> *queue,
647
<link linkend="GList">GList</link> *link_);</programlisting>
649
Adds a new element at the tail of the queue.</para>
652
</para><variablelist role="params">
653
<varlistentry><term><parameter>queue</parameter> :</term>
654
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
655
</simpara></listitem></varlistentry>
656
<varlistentry><term><parameter>link_</parameter> :</term>
657
<listitem><simpara> a single <link linkend="GList"><type>GList</type></link> element, <emphasis>not</emphasis> a list with
658
more than one element.
659
</simpara></listitem></varlistentry>
660
</variablelist></refsect2>
662
<title><anchor id="g-queue-push-nth-link" role="function" condition="since:2.4"/>g_queue_push_nth_link ()</title>
663
<indexterm role="2.4"><primary>g_queue_push_nth_link</primary></indexterm><programlisting><link linkend="void">void</link> g_queue_push_nth_link (<link linkend="GQueue">GQueue</link> *queue,
664
<link linkend="gint">gint</link> n,
665
<link linkend="GList">GList</link> *link_);</programlisting>
667
Inserts <parameter>link</parameter> into <parameter>queue</parameter> at the given position.</para>
670
</para><variablelist role="params">
671
<varlistentry><term><parameter>queue</parameter> :</term>
672
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
673
</simpara></listitem></varlistentry>
674
<varlistentry><term><parameter>n</parameter> :</term>
675
<listitem><simpara> the position to insert the link. If this is negative or larger than
676
the number of elements in <parameter>queue</parameter>, the link is added to the end of
677
<parameter>queue</parameter>.
678
</simpara></listitem></varlistentry>
679
<varlistentry><term><parameter>link_</parameter> :</term>
680
<listitem><simpara> the link to add to <parameter>queue</parameter>
681
</simpara></listitem></varlistentry>
682
</variablelist><para role="since">Since 2.4
685
<title><anchor id="g-queue-pop-head-link" role="function"/>g_queue_pop_head_link ()</title>
686
<indexterm><primary>g_queue_pop_head_link</primary></indexterm><programlisting><link linkend="GList">GList</link>* g_queue_pop_head_link (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
688
Removes the first element of the queue.</para>
691
</para><variablelist role="params">
692
<varlistentry><term><parameter>queue</parameter> :</term>
693
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
694
</simpara></listitem></varlistentry>
695
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the <link linkend="GList"><type>GList</type></link> element at the head of the queue, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the queue
697
</simpara></listitem></varlistentry>
698
</variablelist></refsect2>
700
<title><anchor id="g-queue-pop-tail-link" role="function"/>g_queue_pop_tail_link ()</title>
701
<indexterm><primary>g_queue_pop_tail_link</primary></indexterm><programlisting><link linkend="GList">GList</link>* g_queue_pop_tail_link (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
703
Removes the last element of the queue.</para>
706
</para><variablelist role="params">
707
<varlistentry><term><parameter>queue</parameter> :</term>
708
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
709
</simpara></listitem></varlistentry>
710
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the <link linkend="GList"><type>GList</type></link> element at the tail of the queue, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the queue
712
</simpara></listitem></varlistentry>
713
</variablelist></refsect2>
715
<title><anchor id="g-queue-pop-nth-link" role="function" condition="since:2.4"/>g_queue_pop_nth_link ()</title>
716
<indexterm role="2.4"><primary>g_queue_pop_nth_link</primary></indexterm><programlisting><link linkend="GList">GList</link>* g_queue_pop_nth_link (<link linkend="GQueue">GQueue</link> *queue,
717
<link linkend="guint">guint</link> n);</programlisting>
719
Removes and returns the link at the given position.</para>
722
</para><variablelist role="params">
723
<varlistentry><term><parameter>queue</parameter> :</term>
724
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
725
</simpara></listitem></varlistentry>
726
<varlistentry><term><parameter>n</parameter> :</term>
727
<listitem><simpara> the link's position
728
</simpara></listitem></varlistentry>
729
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The <parameter>n</parameter>'th link, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if <parameter>n</parameter> is off the end of <parameter>queue</parameter>.
731
</simpara></listitem></varlistentry>
732
</variablelist><para role="since">Since 2.4
735
<title><anchor id="g-queue-peek-head-link" role="function" condition="since:2.4"/>g_queue_peek_head_link ()</title>
736
<indexterm role="2.4"><primary>g_queue_peek_head_link</primary></indexterm><programlisting><link linkend="GList">GList</link>* g_queue_peek_head_link (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
738
Returns the first link in <parameter>queue</parameter></para>
741
</para><variablelist role="params">
742
<varlistentry><term><parameter>queue</parameter> :</term>
743
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
744
</simpara></listitem></varlistentry>
745
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the first link in <parameter>queue</parameter>, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if <parameter>queue</parameter> is empty
747
</simpara></listitem></varlistentry>
748
</variablelist><para role="since">Since 2.4
751
<title><anchor id="g-queue-peek-tail-link" role="function" condition="since:2.4"/>g_queue_peek_tail_link ()</title>
752
<indexterm role="2.4"><primary>g_queue_peek_tail_link</primary></indexterm><programlisting><link linkend="GList">GList</link>* g_queue_peek_tail_link (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
754
Returns the last link <parameter>queue</parameter>.</para>
757
</para><variablelist role="params">
758
<varlistentry><term><parameter>queue</parameter> :</term>
759
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
760
</simpara></listitem></varlistentry>
761
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the last link in <parameter>queue</parameter>, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if <parameter>queue</parameter> is empty
763
</simpara></listitem></varlistentry>
764
</variablelist><para role="since">Since 2.4
767
<title><anchor id="g-queue-peek-nth-link" role="function" condition="since:2.4"/>g_queue_peek_nth_link ()</title>
768
<indexterm role="2.4"><primary>g_queue_peek_nth_link</primary></indexterm><programlisting><link linkend="GList">GList</link>* g_queue_peek_nth_link (<link linkend="GQueue">GQueue</link> *queue,
769
<link linkend="guint">guint</link> n);</programlisting>
771
Returns the link at the given position</para>
774
</para><variablelist role="params">
775
<varlistentry><term><parameter>queue</parameter> :</term>
776
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
777
</simpara></listitem></varlistentry>
778
<varlistentry><term><parameter>n</parameter> :</term>
779
<listitem><simpara> the position of the link
780
</simpara></listitem></varlistentry>
781
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The link at the <parameter>n</parameter>'th position, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if <parameter>n</parameter> is off the
784
</simpara></listitem></varlistentry>
785
</variablelist><para role="since">Since 2.4
788
<title><anchor id="g-queue-link-index" role="function" condition="since:2.4"/>g_queue_link_index ()</title>
789
<indexterm role="2.4"><primary>g_queue_link_index</primary></indexterm><programlisting><link linkend="gint">gint</link> g_queue_link_index (<link linkend="GQueue">GQueue</link> *queue,
790
<link linkend="GList">GList</link> *link_);</programlisting>
792
Returns the position of <parameter>link_</parameter> in <parameter>queue</parameter>.</para>
795
</para><variablelist role="params">
796
<varlistentry><term><parameter>queue</parameter> :</term>
797
<listitem><simpara> a <link linkend="Gqueue"><type>Gqueue</type></link>
798
</simpara></listitem></varlistentry>
799
<varlistentry><term><parameter>link_</parameter> :</term>
800
<listitem><simpara> A <link linkend="GList"><type>GList</type></link> link
801
</simpara></listitem></varlistentry>
802
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The position of <parameter>link_</parameter>, or -1 if the link is
803
not part of <parameter>queue</parameter>
805
</simpara></listitem></varlistentry>
806
</variablelist><para role="since">Since 2.4
809
<title><anchor id="g-queue-unlink" role="function" condition="since:2.4"/>g_queue_unlink ()</title>
810
<indexterm role="2.4"><primary>g_queue_unlink</primary></indexterm><programlisting><link linkend="void">void</link> g_queue_unlink (<link linkend="GQueue">GQueue</link> *queue,
811
<link linkend="GList">GList</link> *link_);</programlisting>
813
Unlinks <parameter>link_</parameter> so that it will no longer be part of <parameter>queue</parameter>. The link is
817
<parameter>link_</parameter> must be part of <parameter>queue</parameter>,</para>
820
</para><variablelist role="params">
821
<varlistentry><term><parameter>queue</parameter> :</term>
822
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
823
</simpara></listitem></varlistentry>
824
<varlistentry><term><parameter>link_</parameter> :</term>
825
<listitem><simpara> a <link linkend="GList"><type>GList</type></link> link that <emphasis>must</emphasis> be part of <parameter>queue</parameter>
826
</simpara></listitem></varlistentry>
827
</variablelist><para role="since">Since 2.4
830
<title><anchor id="g-queue-delete-link" role="function" condition="since:2.4"/>g_queue_delete_link ()</title>
831
<indexterm role="2.4"><primary>g_queue_delete_link</primary></indexterm><programlisting><link linkend="void">void</link> g_queue_delete_link (<link linkend="GQueue">GQueue</link> *queue,
832
<link linkend="GList">GList</link> *link_);</programlisting>
834
Removes <parameter>link_</parameter> from <parameter>queue</parameter> and frees it.
837
<parameter>link_</parameter> must be part of <parameter>queue</parameter>.</para>
840
</para><variablelist role="params">
841
<varlistentry><term><parameter>queue</parameter> :</term>
842
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
843
</simpara></listitem></varlistentry>
844
<varlistentry><term><parameter>link_</parameter> :</term>
845
<listitem><simpara> a <link linkend="GList"><type>GList</type></link> link that <emphasis>must</emphasis> be part of <parameter>queue</parameter>
846
</simpara></listitem></varlistentry>
847
</variablelist><para role="since">Since 2.4