~ubuntu-branches/ubuntu/utopic/glib2.0/utopic

« back to all changes in this revision

Viewing changes to docs/reference/glib/xml/queue.xml

Tags: upstream-2.12.12
ImportĀ upstreamĀ versionĀ 2.12.12

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<refentry id="glib-Double-ended-Queues">
 
2
<refmeta>
 
3
<refentrytitle role="top_of_page">Double-ended Queues</refentrytitle>
 
4
<manvolnum>3</manvolnum>
 
5
<refmiscinfo>GLIB Library</refmiscinfo>
 
6
</refmeta>
 
7
 
 
8
<refnamediv>
 
9
<refname>Double-ended Queues</refname>
 
10
<refpurpose>double-ended queue data structure.</refpurpose>
 
11
<!--[<xref linkend="desc" endterm="desc.title"/>]-->
 
12
</refnamediv>
 
13
 
 
14
<refsynopsisdiv role="synopsis">
 
15
<title role="synopsis.title">Synopsis</title>
 
16
 
 
17
<synopsis>
 
18
 
 
19
#include &lt;glib.h&gt;
 
20
 
 
21
 
 
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_);
 
92
</synopsis>
 
93
</refsynopsisdiv>
 
94
 
 
95
 
 
96
 
 
97
 
 
98
 
 
99
 
 
100
 
 
101
 
 
102
 
 
103
<refsect1 role="desc">
 
104
<title role="desc.title">Description</title>
 
105
<para>
 
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.  
 
109
</para>
 
110
<para>
 
111
The data contained in each element can be either integer values, by using one
 
112
of the
 
113
<link linkend="glib-Type-Conversion-Macros">Type Conversion Macros</link>,
 
114
or simply pointers to any type of data.
 
115
</para>
 
116
<para>
 
117
To create a new <link linkend="GQueue"><type>GQueue</type></link>, use <link linkend="g-queue-new"><function>g_queue_new()</function></link>.
 
118
</para>
 
119
<para>
 
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>.
 
122
</para>
 
123
<para>
 
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>.
 
125
</para>
 
126
<para>
 
127
To free the entire queue, use <link linkend="g-queue-free"><function>g_queue_free()</function></link>.
 
128
</para>
 
129
</refsect1>
 
130
 
 
131
<refsect1 role="details">
 
132
<title role="details.title">Details</title>
 
133
<refsect2>
 
134
<title><anchor id="GQueue" role="struct"/>GQueue</title>
 
135
<indexterm><primary>GQueue</primary></indexterm><programlisting>typedef struct {
 
136
  GList *head;
 
137
  GList *tail;
 
138
  guint  length;
 
139
} GQueue;
 
140
</programlisting>
 
141
<para>
 
142
Contains the public fields of a <link linkend="glib-queues">Queue</link>.
 
143
</para><variablelist role="struct">
 
144
<varlistentry>
 
145
<term><link linkend="GList">GList</link>&nbsp;*<structfield>head</structfield>;</term>
 
146
<listitem><simpara>a pointer to the first element of the queue.
 
147
</simpara></listitem>
 
148
</varlistentry>
 
149
<varlistentry>
 
150
<term><link linkend="GList">GList</link>&nbsp;*<structfield>tail</structfield>;</term>
 
151
<listitem><simpara>a pointer to the last element of the queue.
 
152
</simpara></listitem>
 
153
</varlistentry>
 
154
<varlistentry>
 
155
<term><link linkend="guint">guint</link>&nbsp;<structfield>length</structfield>;</term>
 
156
<listitem><simpara>the number of elements in the queue.
 
157
 
 
158
</simpara></listitem>
 
159
</varlistentry>
 
160
</variablelist></refsect2>
 
161
<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>
 
164
<para>
 
165
Creates a new <link linkend="GQueue"><type>GQueue</type></link>.</para>
 
166
<para>
 
167
 
 
168
</para><variablelist role="params">
 
169
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> a new <link linkend="GQueue"><type>GQueue</type></link>.
 
170
</simpara></listitem></varlistentry>
 
171
</variablelist></refsect2>
 
172
<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>
 
175
<para>
 
176
Frees the memory allocated for the <link linkend="GQueue"><type>GQueue</type></link>.</para>
 
177
<para>
 
178
 
 
179
</para><variablelist role="params">
 
180
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
181
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
 
182
</simpara></listitem></varlistentry>
 
183
</variablelist></refsect2>
 
184
<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>
 
187
<para>
 
188
Returns <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the queue is empty.</para>
 
189
<para>
 
190
 
 
191
</para><variablelist role="params">
 
192
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
193
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
 
194
</simpara></listitem></varlistentry>
 
195
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the queue is empty.
 
196
</simpara></listitem></varlistentry>
 
197
</variablelist></refsect2>
 
198
<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>
 
201
<para>
 
202
Returns the number of items in <parameter>queue</parameter>.</para>
 
203
<para>
 
204
 
 
205
</para><variablelist role="params">
 
206
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
207
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
 
208
</simpara></listitem></varlistentry>
 
209
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> The number of items in <parameter>queue</parameter>.
 
210
 
 
211
</simpara></listitem></varlistentry>
 
212
</variablelist><para role="since">Since  2.4
 
213
</para></refsect2>
 
214
<refsect2>
 
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>
 
217
<para>
 
218
Reverses the order of the items in <parameter>queue</parameter>.</para>
 
219
<para>
 
220
 
 
221
</para><variablelist role="params">
 
222
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
223
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
 
224
</simpara></listitem></varlistentry>
 
225
</variablelist><para role="since">Since  2.4
 
226
</para></refsect2>
 
227
<refsect2>
 
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>
 
230
<para>
 
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>
 
234
<para>
 
235
 
 
236
</para><variablelist role="params">
 
237
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
238
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
 
239
</simpara></listitem></varlistentry>
 
240
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> A copy of <parameter>queue</parameter>
 
241
 
 
242
</simpara></listitem></varlistentry>
 
243
</variablelist><para role="since">Since  2.4
 
244
</para></refsect2>
 
245
<refsect2>
 
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>
 
250
<para>
 
251
Calls <parameter>func</parameter> for each element in the queue passing <parameter>user_data</parameter> to the
 
252
function.</para>
 
253
<para>
 
254
 
 
255
</para><variablelist role="params">
 
256
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
257
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
 
258
</simpara></listitem></varlistentry>
 
259
<varlistentry><term><parameter>func</parameter>&nbsp;:</term>
 
260
<listitem><simpara> the function to call for each element's data
 
261
</simpara></listitem></varlistentry>
 
262
<varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
 
263
<listitem><simpara> user data to pass to <parameter>func</parameter>
 
264
</simpara></listitem></varlistentry>
 
265
</variablelist><para role="since">Since  2.4
 
266
</para></refsect2>
 
267
<refsect2>
 
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>
 
271
<para>
 
272
Finds the first link in <parameter>queue</parameter> which contains <parameter>data</parameter>.</para>
 
273
<para>
 
274
 
 
275
</para><variablelist role="params">
 
276
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
277
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
 
278
</simpara></listitem></varlistentry>
 
279
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
 
280
<listitem><simpara> data to find
 
281
</simpara></listitem></varlistentry>
 
282
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> The first link in <parameter>queue</parameter> which contains <parameter>data</parameter>.
 
283
 
 
284
</simpara></listitem></varlistentry>
 
285
</variablelist><para role="since">Since  2.4
 
286
</para></refsect2>
 
287
<refsect2>
 
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>
 
292
<para>
 
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>
 
298
<para>
 
299
 
 
300
</para><variablelist role="params">
 
301
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
302
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
 
303
</simpara></listitem></varlistentry>
 
304
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
 
305
<listitem><simpara> user data passed to <parameter>func</parameter>
 
306
</simpara></listitem></varlistentry>
 
307
<varlistentry><term><parameter>func</parameter>&nbsp;:</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>&nbsp;:</term><listitem><simpara> The found link, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if it wasn't found
 
312
 
 
313
</simpara></listitem></varlistentry>
 
314
</variablelist><para role="since">Since  2.4
 
315
</para></refsect2>
 
316
<refsect2>
 
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>
 
321
<para>
 
322
Sorts <parameter>queue</parameter> using <parameter>compare_func</parameter>.</para>
 
323
<para>
 
324
 
 
325
</para><variablelist role="params">
 
326
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
327
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
 
328
</simpara></listitem></varlistentry>
 
329
<varlistentry><term><parameter>compare_func</parameter>&nbsp;:</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>&nbsp;:</term>
 
336
<listitem><simpara> user data passed to <parameter>compare_func</parameter>
 
337
</simpara></listitem></varlistentry>
 
338
</variablelist><para role="since">Since  2.4
 
339
</para></refsect2>
 
340
<refsect2>
 
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>
 
344
<para>
 
345
Adds a new element at the head of the queue.</para>
 
346
<para>
 
347
 
 
348
</para><variablelist role="params">
 
349
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
350
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
 
351
</simpara></listitem></varlistentry>
 
352
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
 
353
<listitem><simpara> the data for the new element.
 
354
</simpara></listitem></varlistentry>
 
355
</variablelist></refsect2>
 
356
<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>
 
360
<para>
 
361
Adds a new element at the tail of the queue.</para>
 
362
<para>
 
363
 
 
364
</para><variablelist role="params">
 
365
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
366
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
 
367
</simpara></listitem></varlistentry>
 
368
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
 
369
<listitem><simpara> the data for the new element.
 
370
</simpara></listitem></varlistentry>
 
371
</variablelist></refsect2>
 
372
<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>
 
377
<para>
 
378
Inserts a new element into <parameter>queue</parameter> at the given position</para>
 
379
<para>
 
380
 
 
381
</para><variablelist role="params">
 
382
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
383
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
 
384
</simpara></listitem></varlistentry>
 
385
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
 
386
<listitem><simpara> the data for the new element
 
387
</simpara></listitem></varlistentry>
 
388
<varlistentry><term><parameter>n</parameter>&nbsp;:</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
 
394
</para></refsect2>
 
395
<refsect2>
 
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>
 
398
<para>
 
399
Removes the first element of the queue.</para>
 
400
<para>
 
401
 
 
402
</para><variablelist role="params">
 
403
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
404
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
 
405
</simpara></listitem></varlistentry>
 
406
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> the data of the first element in the queue, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the queue
 
407
  is empty.
 
408
</simpara></listitem></varlistentry>
 
409
</variablelist></refsect2>
 
410
<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>
 
413
<para>
 
414
Removes the last element of the queue.</para>
 
415
<para>
 
416
 
 
417
</para><variablelist role="params">
 
418
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
419
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
 
420
</simpara></listitem></varlistentry>
 
421
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> the data of the last element in the queue, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the queue
 
422
  is empty.
 
423
</simpara></listitem></varlistentry>
 
424
</variablelist></refsect2>
 
425
<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>
 
429
<para>
 
430
Removes the <parameter>n</parameter>'th element of <parameter>queue</parameter>.</para>
 
431
<para>
 
432
 
 
433
</para><variablelist role="params">
 
434
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
435
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
 
436
</simpara></listitem></varlistentry>
 
437
<varlistentry><term><parameter>n</parameter>&nbsp;:</term>
 
438
<listitem><simpara> the position of the element.
 
439
</simpara></listitem></varlistentry>
 
440
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</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>.
 
441
 
 
442
</simpara></listitem></varlistentry>
 
443
</variablelist><para role="since">Since  2.4
 
444
</para></refsect2>
 
445
<refsect2>
 
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>
 
448
<para>
 
449
Returns the first element of the queue.</para>
 
450
<para>
 
451
 
 
452
</para><variablelist role="params">
 
453
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
454
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
 
455
</simpara></listitem></varlistentry>
 
456
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> the data of the first element in the queue, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the queue
 
457
  is empty.
 
458
</simpara></listitem></varlistentry>
 
459
</variablelist></refsect2>
 
460
<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>
 
463
<para>
 
464
Returns the last element of the queue.</para>
 
465
<para>
 
466
 
 
467
</para><variablelist role="params">
 
468
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
469
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
 
470
</simpara></listitem></varlistentry>
 
471
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> the data of the last element in the queue, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the queue
 
472
  is empty.
 
473
</simpara></listitem></varlistentry>
 
474
</variablelist></refsect2>
 
475
<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>
 
479
<para>
 
480
Returns the <parameter>n</parameter>'th element of <parameter>queue</parameter>.</para>
 
481
<para>
 
482
 
 
483
</para><variablelist role="params">
 
484
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
485
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
 
486
</simpara></listitem></varlistentry>
 
487
<varlistentry><term><parameter>n</parameter>&nbsp;:</term>
 
488
<listitem><simpara> the position of the element.
 
489
</simpara></listitem></varlistentry>
 
490
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</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>.
 
492
 
 
493
</simpara></listitem></varlistentry>
 
494
</variablelist><para role="since">Since  2.4
 
495
</para></refsect2>
 
496
<refsect2>
 
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>
 
500
<para>
 
501
Returns the position of the first element in <parameter>queue</parameter> which contains <parameter>data</parameter>.</para>
 
502
<para>
 
503
 
 
504
</para><variablelist role="params">
 
505
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
506
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
 
507
</simpara></listitem></varlistentry>
 
508
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
 
509
<listitem><simpara> the data to find.
 
510
</simpara></listitem></varlistentry>
 
511
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</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>.
 
512
 
 
513
</simpara></listitem></varlistentry>
 
514
</variablelist><para role="since">Since  2.4
 
515
</para></refsect2>
 
516
<refsect2>
 
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>
 
520
<para>
 
521
Removes the first element in <parameter>queue</parameter> that contains <parameter>data</parameter>.</para>
 
522
<para>
 
523
 
 
524
</para><variablelist role="params">
 
525
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
526
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
 
527
</simpara></listitem></varlistentry>
 
528
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
 
529
<listitem><simpara> data to remove.
 
530
</simpara></listitem></varlistentry>
 
531
</variablelist><para role="since">Since  2.4
 
532
</para></refsect2>
 
533
<refsect2>
 
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>
 
537
<para>
 
538
Remove all elemeents in <parameter>queue</parameter> which contains <parameter>data</parameter>.</para>
 
539
<para>
 
540
 
 
541
</para><variablelist role="params">
 
542
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
543
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
 
544
</simpara></listitem></varlistentry>
 
545
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
 
546
<listitem><simpara> data to remove
 
547
</simpara></listitem></varlistentry>
 
548
</variablelist><para role="since">Since  2.4
 
549
</para></refsect2>
 
550
<refsect2>
 
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>
 
555
<para>
 
556
Inserts <parameter>data</parameter> into <parameter>queue</parameter> before <parameter>sibling</parameter>.
 
557
</para>
 
558
<para>
 
559
<parameter>sibling</parameter> must be part of <parameter>queue</parameter>.</para>
 
560
<para>
 
561
 
 
562
</para><variablelist role="params">
 
563
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
564
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
 
565
</simpara></listitem></varlistentry>
 
566
<varlistentry><term><parameter>sibling</parameter>&nbsp;:</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>&nbsp;:</term>
 
570
<listitem><simpara> the data to insert
 
571
</simpara></listitem></varlistentry>
 
572
</variablelist><para role="since">Since  2.4
 
573
</para></refsect2>
 
574
<refsect2>
 
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>
 
579
<para>
 
580
Inserts <parameter>data</parameter> into <parameter>queue</parameter> after <parameter>sibling</parameter>
 
581
</para>
 
582
<para>
 
583
<parameter>sibling</parameter> must be part of <parameter>queue</parameter></para>
 
584
<para>
 
585
 
 
586
</para><variablelist role="params">
 
587
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
588
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
 
589
</simpara></listitem></varlistentry>
 
590
<varlistentry><term><parameter>sibling</parameter>&nbsp;:</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>&nbsp;:</term>
 
594
<listitem><simpara> the data to insert
 
595
</simpara></listitem></varlistentry>
 
596
</variablelist><para role="since">Since  2.4
 
597
</para></refsect2>
 
598
<refsect2>
 
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>
 
604
<para>
 
605
Inserts <parameter>data</parameter> into <parameter>queue</parameter> using <parameter>func</parameter> to determine the new position.</para>
 
606
<para>
 
607
 
 
608
</para><variablelist role="params">
 
609
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
610
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
 
611
</simpara></listitem></varlistentry>
 
612
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
 
613
<listitem><simpara> the data to insert
 
614
</simpara></listitem></varlistentry>
 
615
<varlistentry><term><parameter>func</parameter>&nbsp;:</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>&nbsp;:</term>
 
623
<listitem><simpara> user data passed to <parameter>func</parameter>.
 
624
</simpara></listitem></varlistentry>
 
625
</variablelist><para role="since">Since  2.4
 
626
</para></refsect2>
 
627
<refsect2>
 
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>
 
631
<para>
 
632
Adds a new element at the head of the queue.</para>
 
633
<para>
 
634
 
 
635
</para><variablelist role="params">
 
636
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
637
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
 
638
</simpara></listitem></varlistentry>
 
639
<varlistentry><term><parameter>link_</parameter>&nbsp;:</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>
 
644
<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>
 
648
<para>
 
649
Adds a new element at the tail of the queue.</para>
 
650
<para>
 
651
 
 
652
</para><variablelist role="params">
 
653
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
654
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
 
655
</simpara></listitem></varlistentry>
 
656
<varlistentry><term><parameter>link_</parameter>&nbsp;:</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>
 
661
<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>
 
666
<para>
 
667
Inserts <parameter>link</parameter> into <parameter>queue</parameter> at the given position.</para>
 
668
<para>
 
669
 
 
670
</para><variablelist role="params">
 
671
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
672
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
 
673
</simpara></listitem></varlistentry>
 
674
<varlistentry><term><parameter>n</parameter>&nbsp;:</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>&nbsp;:</term>
 
680
<listitem><simpara> the link to add to <parameter>queue</parameter>
 
681
</simpara></listitem></varlistentry>
 
682
</variablelist><para role="since">Since  2.4
 
683
</para></refsect2>
 
684
<refsect2>
 
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>
 
687
<para>
 
688
Removes the first element of the queue.</para>
 
689
<para>
 
690
 
 
691
</para><variablelist role="params">
 
692
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
693
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
 
694
</simpara></listitem></varlistentry>
 
695
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</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
 
696
  is empty.
 
697
</simpara></listitem></varlistentry>
 
698
</variablelist></refsect2>
 
699
<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>
 
702
<para>
 
703
Removes the last element of the queue.</para>
 
704
<para>
 
705
 
 
706
</para><variablelist role="params">
 
707
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
708
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
 
709
</simpara></listitem></varlistentry>
 
710
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</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
 
711
  is empty.
 
712
</simpara></listitem></varlistentry>
 
713
</variablelist></refsect2>
 
714
<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>
 
718
<para>
 
719
Removes and returns the link at the given position.</para>
 
720
<para>
 
721
 
 
722
</para><variablelist role="params">
 
723
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
724
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
 
725
</simpara></listitem></varlistentry>
 
726
<varlistentry><term><parameter>n</parameter>&nbsp;:</term>
 
727
<listitem><simpara> the link's position
 
728
</simpara></listitem></varlistentry>
 
729
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</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>.
 
730
 
 
731
</simpara></listitem></varlistentry>
 
732
</variablelist><para role="since">Since  2.4
 
733
</para></refsect2>
 
734
<refsect2>
 
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>
 
737
<para>
 
738
Returns the first link in <parameter>queue</parameter></para>
 
739
<para>
 
740
 
 
741
</para><variablelist role="params">
 
742
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
743
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
 
744
</simpara></listitem></varlistentry>
 
745
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</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
 
746
 
 
747
</simpara></listitem></varlistentry>
 
748
</variablelist><para role="since">Since  2.4
 
749
</para></refsect2>
 
750
<refsect2>
 
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>
 
753
<para>
 
754
Returns the last link <parameter>queue</parameter>.</para>
 
755
<para>
 
756
 
 
757
</para><variablelist role="params">
 
758
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
759
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
 
760
</simpara></listitem></varlistentry>
 
761
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</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
 
762
 
 
763
</simpara></listitem></varlistentry>
 
764
</variablelist><para role="since">Since  2.4
 
765
</para></refsect2>
 
766
<refsect2>
 
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>
 
770
<para>
 
771
Returns the link at the given position</para>
 
772
<para>
 
773
 
 
774
</para><variablelist role="params">
 
775
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
776
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
 
777
</simpara></listitem></varlistentry>
 
778
<varlistentry><term><parameter>n</parameter>&nbsp;:</term>
 
779
<listitem><simpara> the position of the link
 
780
</simpara></listitem></varlistentry>
 
781
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</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
 
782
end of the list
 
783
 
 
784
</simpara></listitem></varlistentry>
 
785
</variablelist><para role="since">Since  2.4
 
786
</para></refsect2>
 
787
<refsect2>
 
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>
 
791
<para>
 
792
Returns the position of <parameter>link_</parameter> in <parameter>queue</parameter>.</para>
 
793
<para>
 
794
 
 
795
</para><variablelist role="params">
 
796
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
797
<listitem><simpara> a <link linkend="Gqueue"><type>Gqueue</type></link>
 
798
</simpara></listitem></varlistentry>
 
799
<varlistentry><term><parameter>link_</parameter>&nbsp;:</term>
 
800
<listitem><simpara> A <link linkend="GList"><type>GList</type></link> link
 
801
</simpara></listitem></varlistentry>
 
802
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> The position of <parameter>link_</parameter>, or -1 if the link is
 
803
not part of <parameter>queue</parameter>
 
804
 
 
805
</simpara></listitem></varlistentry>
 
806
</variablelist><para role="since">Since  2.4
 
807
</para></refsect2>
 
808
<refsect2>
 
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>
 
812
<para>
 
813
Unlinks <parameter>link_</parameter> so that it will no longer be part of <parameter>queue</parameter>. The link is
 
814
not freed.
 
815
</para>
 
816
<para>
 
817
<parameter>link_</parameter> must be part of <parameter>queue</parameter>,</para>
 
818
<para>
 
819
 
 
820
</para><variablelist role="params">
 
821
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
822
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
 
823
</simpara></listitem></varlistentry>
 
824
<varlistentry><term><parameter>link_</parameter>&nbsp;:</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
 
828
</para></refsect2>
 
829
<refsect2>
 
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>
 
833
<para>
 
834
Removes <parameter>link_</parameter> from <parameter>queue</parameter> and frees it.
 
835
</para>
 
836
<para>
 
837
<parameter>link_</parameter> must be part of <parameter>queue</parameter>.</para>
 
838
<para>
 
839
 
 
840
</para><variablelist role="params">
 
841
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
 
842
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
 
843
</simpara></listitem></varlistentry>
 
844
<varlistentry><term><parameter>link_</parameter>&nbsp;:</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
 
848
</para></refsect2>
 
849
 
 
850
</refsect1>
 
851
 
 
852
 
 
853
 
 
854
 
 
855
</refentry>