Initial commit
[platform/upstream/glib2.0.git] / docs / reference / glib / html / glib-Double-ended-Queues.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>Double-ended Queues</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
7 <link rel="home" href="index.html" title="GLib Reference Manual">
8 <link rel="up" href="glib-data-types.html" title="GLib Data Types">
9 <link rel="prev" href="glib-Singly-Linked-Lists.html" title="Singly-Linked Lists">
10 <link rel="next" href="glib-Sequences.html" title="Sequences">
11 <meta name="generator" content="GTK-Doc V1.13 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 <link rel="chapter" href="glib.html" title="GLib Overview">
14 <link rel="chapter" href="glib-fundamentals.html" title="GLib Fundamentals">
15 <link rel="chapter" href="glib-core.html" title="GLib Core Application Support">
16 <link rel="chapter" href="glib-utilities.html" title="GLib Utilities">
17 <link rel="chapter" href="glib-data-types.html" title="GLib Data Types">
18 <link rel="chapter" href="tools.html" title="GLib Tools">
19 <link rel="index" href="api-index-full.html" title="Index">
20 <link rel="index" href="api-index-deprecated.html" title="Index of deprecated symbols">
21 <link rel="index" href="api-index-2-2.html" title="Index of new symbols in 2.2">
22 <link rel="index" href="api-index-2-4.html" title="Index of new symbols in 2.4">
23 <link rel="index" href="api-index-2-6.html" title="Index of new symbols in 2.6">
24 <link rel="index" href="api-index-2-8.html" title="Index of new symbols in 2.8">
25 <link rel="index" href="api-index-2-10.html" title="Index of new symbols in 2.10">
26 <link rel="index" href="api-index-2-12.html" title="Index of new symbols in 2.12">
27 <link rel="index" href="api-index-2-14.html" title="Index of new symbols in 2.14">
28 <link rel="index" href="api-index-2-16.html" title="Index of new symbols in 2.16">
29 <link rel="index" href="api-index-2-18.html" title="Index of new symbols in 2.18">
30 <link rel="index" href="api-index-2-20.html" title="Index of new symbols in 2.20">
31 <link rel="index" href="api-index-2-22.html" title="Index of new symbols in 2.22">
32 <link rel="index" href="api-index-2-24.html" title="Index of new symbols in 2.24">
33 </head>
34 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
35 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
36 <tr valign="middle">
37 <td><a accesskey="p" href="glib-Singly-Linked-Lists.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
38 <td><a accesskey="u" href="glib-data-types.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
39 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
40 <th width="100%" align="center">GLib Reference Manual</th>
41 <td><a accesskey="n" href="glib-Sequences.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
42 </tr>
43 <tr><td colspan="5" class="shortcuts">
44 <a href="#glib-Double-ended-Queues.synopsis" class="shortcut">Top</a>
45                    | 
46                   <a href="#glib-Double-ended-Queues.description" class="shortcut">Description</a>
47 </td></tr>
48 </table>
49 <div class="refentry" title="Double-ended Queues">
50 <a name="glib-Double-ended-Queues"></a><div class="titlepage"></div>
51 <div class="refnamediv"><table width="100%"><tr>
52 <td valign="top">
53 <h2><span class="refentrytitle"><a name="glib-Double-ended-Queues.top_of_page"></a>Double-ended Queues</span></h2>
54 <p>Double-ended Queues — double-ended queue data structure</p>
55 </td>
56 <td valign="top" align="right"></td>
57 </tr></table></div>
58 <div class="refsynopsisdiv" title="Synopsis">
59 <a name="glib-Double-ended-Queues.synopsis"></a><h2>Synopsis</h2>
60 <pre class="synopsis">
61 #include &lt;glib.h&gt;
62
63                     <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue">GQueue</a>;
64 <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a>*             <a class="link" href="glib-Double-ended-Queues.html#g-queue-new" title="g_queue_new ()">g_queue_new</a>                         (void);
65 <span class="returnvalue">void</span>                <a class="link" href="glib-Double-ended-Queues.html#g-queue-free" title="g_queue_free ()">g_queue_free</a>                        (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
66 #define             <a class="link" href="glib-Double-ended-Queues.html#G-QUEUE-INIT:CAPS" title="G_QUEUE_INIT">G_QUEUE_INIT</a>
67 <span class="returnvalue">void</span>                <a class="link" href="glib-Double-ended-Queues.html#g-queue-init" title="g_queue_init ()">g_queue_init</a>                        (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
68 <span class="returnvalue">void</span>                <a class="link" href="glib-Double-ended-Queues.html#g-queue-clear" title="g_queue_clear ()">g_queue_clear</a>                       (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
69 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Double-ended-Queues.html#g-queue-is-empty" title="g_queue_is_empty ()">g_queue_is_empty</a>                    (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
70 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a>               <a class="link" href="glib-Double-ended-Queues.html#g-queue-get-length" title="g_queue_get_length ()">g_queue_get_length</a>                  (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
71 <span class="returnvalue">void</span>                <a class="link" href="glib-Double-ended-Queues.html#g-queue-reverse" title="g_queue_reverse ()">g_queue_reverse</a>                     (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
72 <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *            <a class="link" href="glib-Double-ended-Queues.html#g-queue-copy" title="g_queue_copy ()">g_queue_copy</a>                        (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
73 <span class="returnvalue">void</span>                <a class="link" href="glib-Double-ended-Queues.html#g-queue-foreach" title="g_queue_foreach ()">g_queue_foreach</a>                     (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
74                                                          <a class="link" href="glib-Doubly-Linked-Lists.html#GFunc" title="GFunc ()"><span class="returnvalue">GFunc</span></a> func,
75                                                          <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> user_data);
76 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="glib-Double-ended-Queues.html#g-queue-find" title="g_queue_find ()">g_queue_find</a>                        (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
77                                                          <a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="returnvalue">gconstpointer</span></a> data);
78 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="glib-Double-ended-Queues.html#g-queue-find-custom" title="g_queue_find_custom ()">g_queue_find_custom</a>                 (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
79                                                          <a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="returnvalue">gconstpointer</span></a> data,
80                                                          <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareFunc" title="GCompareFunc ()"><span class="returnvalue">GCompareFunc</span></a> func);
81 <span class="returnvalue">void</span>                <a class="link" href="glib-Double-ended-Queues.html#g-queue-sort" title="g_queue_sort ()">g_queue_sort</a>                        (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
82                                                          <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="returnvalue">GCompareDataFunc</span></a> compare_func,
83                                                          <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> user_data);
84 <span class="returnvalue">void</span>                <a class="link" href="glib-Double-ended-Queues.html#g-queue-push-head" title="g_queue_push_head ()">g_queue_push_head</a>                   (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
85                                                          <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);
86 <span class="returnvalue">void</span>                <a class="link" href="glib-Double-ended-Queues.html#g-queue-push-tail" title="g_queue_push_tail ()">g_queue_push_tail</a>                   (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
87                                                          <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);
88 <span class="returnvalue">void</span>                <a class="link" href="glib-Double-ended-Queues.html#g-queue-push-nth" title="g_queue_push_nth ()">g_queue_push_nth</a>                    (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
89                                                          <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data,
90                                                          <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> n);
91 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a>            <a class="link" href="glib-Double-ended-Queues.html#g-queue-pop-head" title="g_queue_pop_head ()">g_queue_pop_head</a>                    (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
92 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a>            <a class="link" href="glib-Double-ended-Queues.html#g-queue-pop-tail" title="g_queue_pop_tail ()">g_queue_pop_tail</a>                    (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
93 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a>            <a class="link" href="glib-Double-ended-Queues.html#g-queue-pop-nth" title="g_queue_pop_nth ()">g_queue_pop_nth</a>                     (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
94                                                          <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> n);
95 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a>            <a class="link" href="glib-Double-ended-Queues.html#g-queue-peek-head" title="g_queue_peek_head ()">g_queue_peek_head</a>                   (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
96 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a>            <a class="link" href="glib-Double-ended-Queues.html#g-queue-peek-tail" title="g_queue_peek_tail ()">g_queue_peek_tail</a>                   (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
97 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a>            <a class="link" href="glib-Double-ended-Queues.html#g-queue-peek-nth" title="g_queue_peek_nth ()">g_queue_peek_nth</a>                    (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
98                                                          <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> n);
99 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a>                <a class="link" href="glib-Double-ended-Queues.html#g-queue-index" title="g_queue_index ()">g_queue_index</a>                       (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
100                                                          <a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="returnvalue">gconstpointer</span></a> data);
101 <span class="returnvalue">void</span>                <a class="link" href="glib-Double-ended-Queues.html#g-queue-remove" title="g_queue_remove ()">g_queue_remove</a>                      (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
102                                                          <a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="returnvalue">gconstpointer</span></a> data);
103 <span class="returnvalue">void</span>                <a class="link" href="glib-Double-ended-Queues.html#g-queue-remove-all" title="g_queue_remove_all ()">g_queue_remove_all</a>                  (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
104                                                          <a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="returnvalue">gconstpointer</span></a> data);
105 <span class="returnvalue">void</span>                <a class="link" href="glib-Double-ended-Queues.html#g-queue-insert-before" title="g_queue_insert_before ()">g_queue_insert_before</a>               (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
106                                                          <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *sibling,
107                                                          <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);
108 <span class="returnvalue">void</span>                <a class="link" href="glib-Double-ended-Queues.html#g-queue-insert-after" title="g_queue_insert_after ()">g_queue_insert_after</a>                (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
109                                                          <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *sibling,
110                                                          <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);
111 <span class="returnvalue">void</span>                <a class="link" href="glib-Double-ended-Queues.html#g-queue-insert-sorted" title="g_queue_insert_sorted ()">g_queue_insert_sorted</a>               (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
112                                                          <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data,
113                                                          <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="returnvalue">GCompareDataFunc</span></a> func,
114                                                          <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> user_data);
115 <span class="returnvalue">void</span>                <a class="link" href="glib-Double-ended-Queues.html#g-queue-push-head-link" title="g_queue_push_head_link ()">g_queue_push_head_link</a>              (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
116                                                          <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *link_);
117 <span class="returnvalue">void</span>                <a class="link" href="glib-Double-ended-Queues.html#g-queue-push-tail-link" title="g_queue_push_tail_link ()">g_queue_push_tail_link</a>              (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
118                                                          <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *link_);
119 <span class="returnvalue">void</span>                <a class="link" href="glib-Double-ended-Queues.html#g-queue-push-nth-link" title="g_queue_push_nth_link ()">g_queue_push_nth_link</a>               (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
120                                                          <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> n,
121                                                          <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *link_);
122 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a>*              <a class="link" href="glib-Double-ended-Queues.html#g-queue-pop-head-link" title="g_queue_pop_head_link ()">g_queue_pop_head_link</a>               (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
123 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a>*              <a class="link" href="glib-Double-ended-Queues.html#g-queue-pop-tail-link" title="g_queue_pop_tail_link ()">g_queue_pop_tail_link</a>               (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
124 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a>*              <a class="link" href="glib-Double-ended-Queues.html#g-queue-pop-nth-link" title="g_queue_pop_nth_link ()">g_queue_pop_nth_link</a>                (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
125                                                          <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> n);
126 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a>*              <a class="link" href="glib-Double-ended-Queues.html#g-queue-peek-head-link" title="g_queue_peek_head_link ()">g_queue_peek_head_link</a>              (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
127 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a>*              <a class="link" href="glib-Double-ended-Queues.html#g-queue-peek-tail-link" title="g_queue_peek_tail_link ()">g_queue_peek_tail_link</a>              (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);
128 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a>*              <a class="link" href="glib-Double-ended-Queues.html#g-queue-peek-nth-link" title="g_queue_peek_nth_link ()">g_queue_peek_nth_link</a>               (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
129                                                          <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> n);
130 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a>                <a class="link" href="glib-Double-ended-Queues.html#g-queue-link-index" title="g_queue_link_index ()">g_queue_link_index</a>                  (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
131                                                          <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *link_);
132 <span class="returnvalue">void</span>                <a class="link" href="glib-Double-ended-Queues.html#g-queue-unlink" title="g_queue_unlink ()">g_queue_unlink</a>                      (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
133                                                          <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *link_);
134 <span class="returnvalue">void</span>                <a class="link" href="glib-Double-ended-Queues.html#g-queue-delete-link" title="g_queue_delete_link ()">g_queue_delete_link</a>                 (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
135                                                          <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *link_);
136 </pre>
137 </div>
138 <div class="refsect1" title="Description">
139 <a name="glib-Double-ended-Queues.description"></a><h2>Description</h2>
140 <p>
141 The <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a> structure and its associated functions provide a standard
142 queue data structure. Internally, <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a> uses the same data structure as
143 <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="type">GList</span></a> to store elements.
144 </p>
145 <p>
146 The data contained in each element can be either integer values, by using one
147 of the
148 <a class="link" href="glib-Type-Conversion-Macros.html" title="Type Conversion Macros">Type Conversion Macros</a>,
149 or simply pointers to any type of data.
150 </p>
151 <p>
152 To create a new <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>, use <a class="link" href="glib-Double-ended-Queues.html#g-queue-new" title="g_queue_new ()"><code class="function">g_queue_new()</code></a>.
153 </p>
154 <p>
155 To initialize a statically-allocated <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>, use <a class="link" href="glib-Double-ended-Queues.html#G-QUEUE-INIT:CAPS" title="G_QUEUE_INIT"><span class="type">G_QUEUE_INIT</span></a> or
156 <a class="link" href="glib-Double-ended-Queues.html#g-queue-init" title="g_queue_init ()"><code class="function">g_queue_init()</code></a>.
157 </p>
158 <p>
159 To add elements, use <a class="link" href="glib-Double-ended-Queues.html#g-queue-push-head" title="g_queue_push_head ()"><code class="function">g_queue_push_head()</code></a>, <a class="link" href="glib-Double-ended-Queues.html#g-queue-push-head-link" title="g_queue_push_head_link ()"><code class="function">g_queue_push_head_link()</code></a>,
160 <a class="link" href="glib-Double-ended-Queues.html#g-queue-push-tail" title="g_queue_push_tail ()"><code class="function">g_queue_push_tail()</code></a> and <a class="link" href="glib-Double-ended-Queues.html#g-queue-push-tail-link" title="g_queue_push_tail_link ()"><code class="function">g_queue_push_tail_link()</code></a>.
161 </p>
162 <p>
163 To remove elements, use <a class="link" href="glib-Double-ended-Queues.html#g-queue-pop-head" title="g_queue_pop_head ()"><code class="function">g_queue_pop_head()</code></a> and <a class="link" href="glib-Double-ended-Queues.html#g-queue-pop-tail" title="g_queue_pop_tail ()"><code class="function">g_queue_pop_tail()</code></a>.
164 </p>
165 <p>
166 To free the entire queue, use <a class="link" href="glib-Double-ended-Queues.html#g-queue-free" title="g_queue_free ()"><code class="function">g_queue_free()</code></a>.
167 </p>
168 </div>
169 <div class="refsect1" title="Details">
170 <a name="glib-Double-ended-Queues.details"></a><h2>Details</h2>
171 <div class="refsect2" title="GQueue">
172 <a name="GQueue"></a><h3>GQueue</h3>
173 <pre class="programlisting">typedef struct {
174   GList *head;
175   GList *tail;
176   guint  length;
177 } GQueue;
178 </pre>
179 <p>
180 Contains the public fields of a Queue.
181 </p>
182 <div class="variablelist"><table border="0">
183 <col align="left" valign="top">
184 <tbody>
185 <tr>
186 <td><p><span class="term"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GQueue.head"></a>head</code></em>;</span></p></td>
187 <td>a pointer to the first element of the queue.
188 </td>
189 </tr>
190 <tr>
191 <td><p><span class="term"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GQueue.tail"></a>tail</code></em>;</span></p></td>
192 <td>a pointer to the last element of the queue.
193 </td>
194 </tr>
195 <tr>
196 <td><p><span class="term"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GQueue.length"></a>length</code></em>;</span></p></td>
197 <td>the number of elements in the queue.
198 </td>
199 </tr>
200 </tbody>
201 </table></div>
202 </div>
203 <hr>
204 <div class="refsect2" title="g_queue_new ()">
205 <a name="g-queue-new"></a><h3>g_queue_new ()</h3>
206 <pre class="programlisting"><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a>*             g_queue_new                         (void);</pre>
207 <p>
208 Creates a new <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.</p>
209 <div class="variablelist"><table border="0">
210 <col align="left" valign="top">
211 <tbody><tr>
212 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
213 <td> a new <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
214 </td>
215 </tr></tbody>
216 </table></div>
217 </div>
218 <hr>
219 <div class="refsect2" title="g_queue_free ()">
220 <a name="g-queue-free"></a><h3>g_queue_free ()</h3>
221 <pre class="programlisting"><span class="returnvalue">void</span>                g_queue_free                        (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
222 <p>
223 Frees the memory allocated for the <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>. Only call this function if
224 <em class="parameter"><code>queue</code></em> was created with <a class="link" href="glib-Double-ended-Queues.html#g-queue-new" title="g_queue_new ()"><code class="function">g_queue_new()</code></a>. If queue elements contain
225 dynamically-allocated memory, they should be freed first.</p>
226 <div class="variablelist"><table border="0">
227 <col align="left" valign="top">
228 <tbody><tr>
229 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
230 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
231 </td>
232 </tr></tbody>
233 </table></div>
234 </div>
235 <hr>
236 <div class="refsect2" title="G_QUEUE_INIT">
237 <a name="G-QUEUE-INIT:CAPS"></a><h3>G_QUEUE_INIT</h3>
238 <pre class="programlisting">#define G_QUEUE_INIT { NULL, NULL, 0 }
239 </pre>
240 <p>
241 A statically-allocated <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a> must be initialized with this macro before it
242 can be used.  This macro can be used to initialize a variable, but it cannot
243 be assigned to a variable.  In that case you have to use <a class="link" href="glib-Double-ended-Queues.html#g-queue-init" title="g_queue_init ()"><code class="function">g_queue_init()</code></a>.
244 </p>
245 <div class="informalexample"><pre class="programlisting">
246 GQueue my_queue = G_QUEUE_INIT;
247 </pre></div>
248 <p class="since">Since 2.14</p>
249 </div>
250 <hr>
251 <div class="refsect2" title="g_queue_init ()">
252 <a name="g-queue-init"></a><h3>g_queue_init ()</h3>
253 <pre class="programlisting"><span class="returnvalue">void</span>                g_queue_init                        (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
254 <p>
255 A statically-allocated <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a> must be initialized with this function
256 before it can be used. Alternatively you can initialize it with
257 <a class="link" href="glib-Double-ended-Queues.html#G-QUEUE-INIT:CAPS" title="G_QUEUE_INIT"><span class="type">G_QUEUE_INIT</span></a>. It is not necessary to initialize queues created with
258 <a class="link" href="glib-Double-ended-Queues.html#g-queue-new" title="g_queue_new ()"><code class="function">g_queue_new()</code></a>.</p>
259 <div class="variablelist"><table border="0">
260 <col align="left" valign="top">
261 <tbody><tr>
262 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
263 <td> an uninitialized <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
264 </td>
265 </tr></tbody>
266 </table></div>
267 <p class="since">Since 2.14</p>
268 </div>
269 <hr>
270 <div class="refsect2" title="g_queue_clear ()">
271 <a name="g-queue-clear"></a><h3>g_queue_clear ()</h3>
272 <pre class="programlisting"><span class="returnvalue">void</span>                g_queue_clear                       (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
273 <p>
274 Removes all the elements in <em class="parameter"><code>queue</code></em>. If queue elements contain
275 dynamically-allocated memory, they should be freed first.</p>
276 <div class="variablelist"><table border="0">
277 <col align="left" valign="top">
278 <tbody><tr>
279 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
280 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
281 </td>
282 </tr></tbody>
283 </table></div>
284 <p class="since">Since 2.14</p>
285 </div>
286 <hr>
287 <div class="refsect2" title="g_queue_is_empty ()">
288 <a name="g-queue-is-empty"></a><h3>g_queue_is_empty ()</h3>
289 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_queue_is_empty                    (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
290 <p>
291 Returns <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the queue is empty.</p>
292 <div class="variablelist"><table border="0">
293 <col align="left" valign="top">
294 <tbody>
295 <tr>
296 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
297 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
298 </td>
299 </tr>
300 <tr>
301 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
302 <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the queue is empty.
303 </td>
304 </tr>
305 </tbody>
306 </table></div>
307 </div>
308 <hr>
309 <div class="refsect2" title="g_queue_get_length ()">
310 <a name="g-queue-get-length"></a><h3>g_queue_get_length ()</h3>
311 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a>               g_queue_get_length                  (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
312 <p>
313 Returns the number of items in <em class="parameter"><code>queue</code></em>.</p>
314 <div class="variablelist"><table border="0">
315 <col align="left" valign="top">
316 <tbody>
317 <tr>
318 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
319 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
320 </td>
321 </tr>
322 <tr>
323 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
324 <td> The number of items in <em class="parameter"><code>queue</code></em>.
325
326 </td>
327 </tr>
328 </tbody>
329 </table></div>
330 <p class="since">Since 2.4</p>
331 </div>
332 <hr>
333 <div class="refsect2" title="g_queue_reverse ()">
334 <a name="g-queue-reverse"></a><h3>g_queue_reverse ()</h3>
335 <pre class="programlisting"><span class="returnvalue">void</span>                g_queue_reverse                     (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
336 <p>
337 Reverses the order of the items in <em class="parameter"><code>queue</code></em>.</p>
338 <div class="variablelist"><table border="0">
339 <col align="left" valign="top">
340 <tbody><tr>
341 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
342 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
343 </td>
344 </tr></tbody>
345 </table></div>
346 <p class="since">Since 2.4</p>
347 </div>
348 <hr>
349 <div class="refsect2" title="g_queue_copy ()">
350 <a name="g-queue-copy"></a><h3>g_queue_copy ()</h3>
351 <pre class="programlisting"><a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *            g_queue_copy                        (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
352 <p>
353 Copies a <em class="parameter"><code>queue</code></em>. Note that is a shallow copy. If the elements in the
354 queue consist of pointers to data, the pointers are copied, but the
355 actual data is not.</p>
356 <div class="variablelist"><table border="0">
357 <col align="left" valign="top">
358 <tbody>
359 <tr>
360 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
361 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
362 </td>
363 </tr>
364 <tr>
365 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
366 <td> A copy of <em class="parameter"><code>queue</code></em>
367
368 </td>
369 </tr>
370 </tbody>
371 </table></div>
372 <p class="since">Since 2.4</p>
373 </div>
374 <hr>
375 <div class="refsect2" title="g_queue_foreach ()">
376 <a name="g-queue-foreach"></a><h3>g_queue_foreach ()</h3>
377 <pre class="programlisting"><span class="returnvalue">void</span>                g_queue_foreach                     (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
378                                                          <a class="link" href="glib-Doubly-Linked-Lists.html#GFunc" title="GFunc ()"><span class="returnvalue">GFunc</span></a> func,
379                                                          <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> user_data);</pre>
380 <p>
381 Calls <em class="parameter"><code>func</code></em> for each element in the queue passing <em class="parameter"><code>user_data</code></em> to the
382 function.</p>
383 <div class="variablelist"><table border="0">
384 <col align="left" valign="top">
385 <tbody>
386 <tr>
387 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
388 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
389 </td>
390 </tr>
391 <tr>
392 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
393 <td> the function to call for each element's data
394 </td>
395 </tr>
396 <tr>
397 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
398 <td> user data to pass to <em class="parameter"><code>func</code></em>
399 </td>
400 </tr>
401 </tbody>
402 </table></div>
403 <p class="since">Since 2.4</p>
404 </div>
405 <hr>
406 <div class="refsect2" title="g_queue_find ()">
407 <a name="g-queue-find"></a><h3>g_queue_find ()</h3>
408 <pre class="programlisting"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *             g_queue_find                        (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
409                                                          <a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="returnvalue">gconstpointer</span></a> data);</pre>
410 <p>
411 Finds the first link in <em class="parameter"><code>queue</code></em> which contains <em class="parameter"><code>data</code></em>.</p>
412 <div class="variablelist"><table border="0">
413 <col align="left" valign="top">
414 <tbody>
415 <tr>
416 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
417 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
418 </td>
419 </tr>
420 <tr>
421 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
422 <td> data to find
423 </td>
424 </tr>
425 <tr>
426 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
427 <td> The first link in <em class="parameter"><code>queue</code></em> which contains <em class="parameter"><code>data</code></em>.
428
429 </td>
430 </tr>
431 </tbody>
432 </table></div>
433 <p class="since">Since 2.4</p>
434 </div>
435 <hr>
436 <div class="refsect2" title="g_queue_find_custom ()">
437 <a name="g-queue-find-custom"></a><h3>g_queue_find_custom ()</h3>
438 <pre class="programlisting"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *             g_queue_find_custom                 (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
439                                                          <a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="returnvalue">gconstpointer</span></a> data,
440                                                          <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareFunc" title="GCompareFunc ()"><span class="returnvalue">GCompareFunc</span></a> func);</pre>
441 <p>
442 Finds an element in a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>, using a supplied function to find the
443 desired element. It iterates over the queue, calling the given function
444 which should return 0 when the desired element is found. The function
445 takes two gconstpointer arguments, the <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a> element's data as the
446 first argument and the given user data as the second argument.</p>
447 <div class="variablelist"><table border="0">
448 <col align="left" valign="top">
449 <tbody>
450 <tr>
451 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
452 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
453 </td>
454 </tr>
455 <tr>
456 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
457 <td> user data passed to <em class="parameter"><code>func</code></em>
458 </td>
459 </tr>
460 <tr>
461 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
462 <td> a <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareFunc" title="GCompareFunc ()"><span class="type">GCompareFunc</span></a> to call for each element. It should return 0
463 when the desired element is found
464 </td>
465 </tr>
466 <tr>
467 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
468 <td> The found link, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if it wasn't found
469
470 </td>
471 </tr>
472 </tbody>
473 </table></div>
474 <p class="since">Since 2.4</p>
475 </div>
476 <hr>
477 <div class="refsect2" title="g_queue_sort ()">
478 <a name="g-queue-sort"></a><h3>g_queue_sort ()</h3>
479 <pre class="programlisting"><span class="returnvalue">void</span>                g_queue_sort                        (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
480                                                          <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="returnvalue">GCompareDataFunc</span></a> compare_func,
481                                                          <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> user_data);</pre>
482 <p>
483 Sorts <em class="parameter"><code>queue</code></em> using <em class="parameter"><code>compare_func</code></em>.</p>
484 <div class="variablelist"><table border="0">
485 <col align="left" valign="top">
486 <tbody>
487 <tr>
488 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
489 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
490 </td>
491 </tr>
492 <tr>
493 <td><p><span class="term"><em class="parameter"><code>compare_func</code></em> :</span></p></td>
494 <td> the <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="type">GCompareDataFunc</span></a> used to sort <em class="parameter"><code>queue</code></em>. This function
495     is passed two elements of the queue and should return 0 if they are
496     equal, a negative value if the first comes before the second, and
497     a positive value if the second comes before the first.
498 </td>
499 </tr>
500 <tr>
501 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
502 <td> user data passed to <em class="parameter"><code>compare_func</code></em>
503 </td>
504 </tr>
505 </tbody>
506 </table></div>
507 <p class="since">Since 2.4</p>
508 </div>
509 <hr>
510 <div class="refsect2" title="g_queue_push_head ()">
511 <a name="g-queue-push-head"></a><h3>g_queue_push_head ()</h3>
512 <pre class="programlisting"><span class="returnvalue">void</span>                g_queue_push_head                   (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
513                                                          <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);</pre>
514 <p>
515 Adds a new element at the head of the queue.</p>
516 <div class="variablelist"><table border="0">
517 <col align="left" valign="top">
518 <tbody>
519 <tr>
520 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
521 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
522 </td>
523 </tr>
524 <tr>
525 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
526 <td> the data for the new element.
527 </td>
528 </tr>
529 </tbody>
530 </table></div>
531 </div>
532 <hr>
533 <div class="refsect2" title="g_queue_push_tail ()">
534 <a name="g-queue-push-tail"></a><h3>g_queue_push_tail ()</h3>
535 <pre class="programlisting"><span class="returnvalue">void</span>                g_queue_push_tail                   (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
536                                                          <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);</pre>
537 <p>
538 Adds a new element at the tail of the queue.</p>
539 <div class="variablelist"><table border="0">
540 <col align="left" valign="top">
541 <tbody>
542 <tr>
543 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
544 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
545 </td>
546 </tr>
547 <tr>
548 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
549 <td> the data for the new element.
550 </td>
551 </tr>
552 </tbody>
553 </table></div>
554 </div>
555 <hr>
556 <div class="refsect2" title="g_queue_push_nth ()">
557 <a name="g-queue-push-nth"></a><h3>g_queue_push_nth ()</h3>
558 <pre class="programlisting"><span class="returnvalue">void</span>                g_queue_push_nth                    (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
559                                                          <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data,
560                                                          <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> n);</pre>
561 <p>
562 Inserts a new element into <em class="parameter"><code>queue</code></em> at the given position</p>
563 <div class="variablelist"><table border="0">
564 <col align="left" valign="top">
565 <tbody>
566 <tr>
567 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
568 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
569 </td>
570 </tr>
571 <tr>
572 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
573 <td> the data for the new element
574 </td>
575 </tr>
576 <tr>
577 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
578 <td> the position to insert the new element. If <em class="parameter"><code>n</code></em> is negative or
579     larger than the number of elements in the <em class="parameter"><code>queue</code></em>, the element is
580     added to the end of the queue.
581 </td>
582 </tr>
583 </tbody>
584 </table></div>
585 <p class="since">Since 2.4</p>
586 </div>
587 <hr>
588 <div class="refsect2" title="g_queue_pop_head ()">
589 <a name="g-queue-pop-head"></a><h3>g_queue_pop_head ()</h3>
590 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a>            g_queue_pop_head                    (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
591 <p>
592 Removes the first element of the queue.</p>
593 <div class="variablelist"><table border="0">
594 <col align="left" valign="top">
595 <tbody>
596 <tr>
597 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
598 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
599 </td>
600 </tr>
601 <tr>
602 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
603 <td> the data of the first element in the queue, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if the queue
604   is empty.
605 </td>
606 </tr>
607 </tbody>
608 </table></div>
609 </div>
610 <hr>
611 <div class="refsect2" title="g_queue_pop_tail ()">
612 <a name="g-queue-pop-tail"></a><h3>g_queue_pop_tail ()</h3>
613 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a>            g_queue_pop_tail                    (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
614 <p>
615 Removes the last element of the queue.</p>
616 <div class="variablelist"><table border="0">
617 <col align="left" valign="top">
618 <tbody>
619 <tr>
620 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
621 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
622 </td>
623 </tr>
624 <tr>
625 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
626 <td> the data of the last element in the queue, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if the queue
627   is empty.
628 </td>
629 </tr>
630 </tbody>
631 </table></div>
632 </div>
633 <hr>
634 <div class="refsect2" title="g_queue_pop_nth ()">
635 <a name="g-queue-pop-nth"></a><h3>g_queue_pop_nth ()</h3>
636 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a>            g_queue_pop_nth                     (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
637                                                          <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> n);</pre>
638 <p>
639 Removes the <em class="parameter"><code>n</code></em>'th element of <em class="parameter"><code>queue</code></em>.</p>
640 <div class="variablelist"><table border="0">
641 <col align="left" valign="top">
642 <tbody>
643 <tr>
644 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
645 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
646 </td>
647 </tr>
648 <tr>
649 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
650 <td> the position of the element.
651 </td>
652 </tr>
653 <tr>
654 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
655 <td> the element's data, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if <em class="parameter"><code>n</code></em> is off the end of <em class="parameter"><code>queue</code></em>.
656
657 </td>
658 </tr>
659 </tbody>
660 </table></div>
661 <p class="since">Since 2.4</p>
662 </div>
663 <hr>
664 <div class="refsect2" title="g_queue_peek_head ()">
665 <a name="g-queue-peek-head"></a><h3>g_queue_peek_head ()</h3>
666 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a>            g_queue_peek_head                   (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
667 <p>
668 Returns the first element of the queue.</p>
669 <div class="variablelist"><table border="0">
670 <col align="left" valign="top">
671 <tbody>
672 <tr>
673 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
674 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
675 </td>
676 </tr>
677 <tr>
678 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
679 <td> the data of the first element in the queue, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if the queue
680   is empty.
681 </td>
682 </tr>
683 </tbody>
684 </table></div>
685 </div>
686 <hr>
687 <div class="refsect2" title="g_queue_peek_tail ()">
688 <a name="g-queue-peek-tail"></a><h3>g_queue_peek_tail ()</h3>
689 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a>            g_queue_peek_tail                   (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
690 <p>
691 Returns the last element of the queue.</p>
692 <div class="variablelist"><table border="0">
693 <col align="left" valign="top">
694 <tbody>
695 <tr>
696 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
697 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
698 </td>
699 </tr>
700 <tr>
701 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
702 <td> the data of the last element in the queue, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if the queue
703   is empty.
704 </td>
705 </tr>
706 </tbody>
707 </table></div>
708 </div>
709 <hr>
710 <div class="refsect2" title="g_queue_peek_nth ()">
711 <a name="g-queue-peek-nth"></a><h3>g_queue_peek_nth ()</h3>
712 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a>            g_queue_peek_nth                    (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
713                                                          <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> n);</pre>
714 <p>
715 Returns the <em class="parameter"><code>n</code></em>'th element of <em class="parameter"><code>queue</code></em>.</p>
716 <div class="variablelist"><table border="0">
717 <col align="left" valign="top">
718 <tbody>
719 <tr>
720 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
721 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
722 </td>
723 </tr>
724 <tr>
725 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
726 <td> the position of the element.
727 </td>
728 </tr>
729 <tr>
730 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
731 <td> The data for the <em class="parameter"><code>n</code></em>'th element of <em class="parameter"><code>queue</code></em>, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if <em class="parameter"><code>n</code></em> is
732   off the end of <em class="parameter"><code>queue</code></em>.
733
734 </td>
735 </tr>
736 </tbody>
737 </table></div>
738 <p class="since">Since 2.4</p>
739 </div>
740 <hr>
741 <div class="refsect2" title="g_queue_index ()">
742 <a name="g-queue-index"></a><h3>g_queue_index ()</h3>
743 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a>                g_queue_index                       (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
744                                                          <a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="returnvalue">gconstpointer</span></a> data);</pre>
745 <p>
746 Returns the position of the first element in <em class="parameter"><code>queue</code></em> which contains <em class="parameter"><code>data</code></em>.</p>
747 <div class="variablelist"><table border="0">
748 <col align="left" valign="top">
749 <tbody>
750 <tr>
751 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
752 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
753 </td>
754 </tr>
755 <tr>
756 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
757 <td> the data to find.
758 </td>
759 </tr>
760 <tr>
761 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
762 <td> The position of the first element in <em class="parameter"><code>queue</code></em> which contains <em class="parameter"><code>data</code></em>, or -1 if no element in <em class="parameter"><code>queue</code></em> contains <em class="parameter"><code>data</code></em>.
763
764 </td>
765 </tr>
766 </tbody>
767 </table></div>
768 <p class="since">Since 2.4</p>
769 </div>
770 <hr>
771 <div class="refsect2" title="g_queue_remove ()">
772 <a name="g-queue-remove"></a><h3>g_queue_remove ()</h3>
773 <pre class="programlisting"><span class="returnvalue">void</span>                g_queue_remove                      (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
774                                                          <a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="returnvalue">gconstpointer</span></a> data);</pre>
775 <p>
776 Removes the first element in <em class="parameter"><code>queue</code></em> that contains <em class="parameter"><code>data</code></em>.</p>
777 <div class="variablelist"><table border="0">
778 <col align="left" valign="top">
779 <tbody>
780 <tr>
781 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
782 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
783 </td>
784 </tr>
785 <tr>
786 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
787 <td> data to remove.
788 </td>
789 </tr>
790 </tbody>
791 </table></div>
792 <p class="since">Since 2.4</p>
793 </div>
794 <hr>
795 <div class="refsect2" title="g_queue_remove_all ()">
796 <a name="g-queue-remove-all"></a><h3>g_queue_remove_all ()</h3>
797 <pre class="programlisting"><span class="returnvalue">void</span>                g_queue_remove_all                  (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
798                                                          <a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="returnvalue">gconstpointer</span></a> data);</pre>
799 <p>
800 Remove all elemeents in <em class="parameter"><code>queue</code></em> which contains <em class="parameter"><code>data</code></em>.</p>
801 <div class="variablelist"><table border="0">
802 <col align="left" valign="top">
803 <tbody>
804 <tr>
805 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
806 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
807 </td>
808 </tr>
809 <tr>
810 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
811 <td> data to remove
812 </td>
813 </tr>
814 </tbody>
815 </table></div>
816 <p class="since">Since 2.4</p>
817 </div>
818 <hr>
819 <div class="refsect2" title="g_queue_insert_before ()">
820 <a name="g-queue-insert-before"></a><h3>g_queue_insert_before ()</h3>
821 <pre class="programlisting"><span class="returnvalue">void</span>                g_queue_insert_before               (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
822                                                          <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *sibling,
823                                                          <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);</pre>
824 <p>
825 Inserts <em class="parameter"><code>data</code></em> into <em class="parameter"><code>queue</code></em> before <em class="parameter"><code>sibling</code></em>.
826 </p>
827 <p>
828 <em class="parameter"><code>sibling</code></em> must be part of <em class="parameter"><code>queue</code></em>.</p>
829 <div class="variablelist"><table border="0">
830 <col align="left" valign="top">
831 <tbody>
832 <tr>
833 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
834 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
835 </td>
836 </tr>
837 <tr>
838 <td><p><span class="term"><em class="parameter"><code>sibling</code></em> :</span></p></td>
839 <td> a <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="type">GList</span></a> link that <span class="emphasis"><em>must</em></span> be part of <em class="parameter"><code>queue</code></em>
840 </td>
841 </tr>
842 <tr>
843 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
844 <td> the data to insert
845 </td>
846 </tr>
847 </tbody>
848 </table></div>
849 <p class="since">Since 2.4</p>
850 </div>
851 <hr>
852 <div class="refsect2" title="g_queue_insert_after ()">
853 <a name="g-queue-insert-after"></a><h3>g_queue_insert_after ()</h3>
854 <pre class="programlisting"><span class="returnvalue">void</span>                g_queue_insert_after                (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
855                                                          <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *sibling,
856                                                          <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);</pre>
857 <p>
858 Inserts <em class="parameter"><code>data</code></em> into <em class="parameter"><code>queue</code></em> after <em class="parameter"><code>sibling</code></em>
859 </p>
860 <p>
861 <em class="parameter"><code>sibling</code></em> must be part of <em class="parameter"><code>queue</code></em></p>
862 <div class="variablelist"><table border="0">
863 <col align="left" valign="top">
864 <tbody>
865 <tr>
866 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
867 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
868 </td>
869 </tr>
870 <tr>
871 <td><p><span class="term"><em class="parameter"><code>sibling</code></em> :</span></p></td>
872 <td> a <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="type">GList</span></a> link that <span class="emphasis"><em>must</em></span> be part of <em class="parameter"><code>queue</code></em>
873 </td>
874 </tr>
875 <tr>
876 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
877 <td> the data to insert
878 </td>
879 </tr>
880 </tbody>
881 </table></div>
882 <p class="since">Since 2.4</p>
883 </div>
884 <hr>
885 <div class="refsect2" title="g_queue_insert_sorted ()">
886 <a name="g-queue-insert-sorted"></a><h3>g_queue_insert_sorted ()</h3>
887 <pre class="programlisting"><span class="returnvalue">void</span>                g_queue_insert_sorted               (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
888                                                          <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data,
889                                                          <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="returnvalue">GCompareDataFunc</span></a> func,
890                                                          <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> user_data);</pre>
891 <p>
892 Inserts <em class="parameter"><code>data</code></em> into <em class="parameter"><code>queue</code></em> using <em class="parameter"><code>func</code></em> to determine the new position.</p>
893 <div class="variablelist"><table border="0">
894 <col align="left" valign="top">
895 <tbody>
896 <tr>
897 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
898 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
899 </td>
900 </tr>
901 <tr>
902 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
903 <td> the data to insert
904 </td>
905 </tr>
906 <tr>
907 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
908 <td> the <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="type">GCompareDataFunc</span></a> used to compare elements in the queue. It is
909     called with two elements of the <em class="parameter"><code>queue</code></em> and <em class="parameter"><code>user_data</code></em>. It should
910     return 0 if the elements are equal, a negative value if the first
911     element comes before the second, and a positive value if the second
912     element comes before the first.
913 </td>
914 </tr>
915 <tr>
916 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
917 <td> user data passed to <em class="parameter"><code>func</code></em>.
918 </td>
919 </tr>
920 </tbody>
921 </table></div>
922 <p class="since">Since 2.4</p>
923 </div>
924 <hr>
925 <div class="refsect2" title="g_queue_push_head_link ()">
926 <a name="g-queue-push-head-link"></a><h3>g_queue_push_head_link ()</h3>
927 <pre class="programlisting"><span class="returnvalue">void</span>                g_queue_push_head_link              (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
928                                                          <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *link_);</pre>
929 <p>
930 Adds a new element at the head of the queue.</p>
931 <div class="variablelist"><table border="0">
932 <col align="left" valign="top">
933 <tbody>
934 <tr>
935 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
936 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
937 </td>
938 </tr>
939 <tr>
940 <td><p><span class="term"><em class="parameter"><code>link_</code></em> :</span></p></td>
941 <td> a single <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="type">GList</span></a> element, <span class="emphasis"><em>not</em></span> a list with
942     more than one element.
943 </td>
944 </tr>
945 </tbody>
946 </table></div>
947 </div>
948 <hr>
949 <div class="refsect2" title="g_queue_push_tail_link ()">
950 <a name="g-queue-push-tail-link"></a><h3>g_queue_push_tail_link ()</h3>
951 <pre class="programlisting"><span class="returnvalue">void</span>                g_queue_push_tail_link              (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
952                                                          <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *link_);</pre>
953 <p>
954 Adds a new element at the tail of the queue.</p>
955 <div class="variablelist"><table border="0">
956 <col align="left" valign="top">
957 <tbody>
958 <tr>
959 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
960 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
961 </td>
962 </tr>
963 <tr>
964 <td><p><span class="term"><em class="parameter"><code>link_</code></em> :</span></p></td>
965 <td> a single <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="type">GList</span></a> element, <span class="emphasis"><em>not</em></span> a list with
966   more than one element.
967 </td>
968 </tr>
969 </tbody>
970 </table></div>
971 </div>
972 <hr>
973 <div class="refsect2" title="g_queue_push_nth_link ()">
974 <a name="g-queue-push-nth-link"></a><h3>g_queue_push_nth_link ()</h3>
975 <pre class="programlisting"><span class="returnvalue">void</span>                g_queue_push_nth_link               (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
976                                                          <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> n,
977                                                          <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *link_);</pre>
978 <p>
979 Inserts <em class="parameter"><code>link</code></em> into <em class="parameter"><code>queue</code></em> at the given position.</p>
980 <div class="variablelist"><table border="0">
981 <col align="left" valign="top">
982 <tbody>
983 <tr>
984 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
985 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
986 </td>
987 </tr>
988 <tr>
989 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
990 <td> the position to insert the link. If this is negative or larger than
991     the number of elements in <em class="parameter"><code>queue</code></em>, the link is added to the end of
992     <em class="parameter"><code>queue</code></em>.
993 </td>
994 </tr>
995 <tr>
996 <td><p><span class="term"><em class="parameter"><code>link_</code></em> :</span></p></td>
997 <td> the link to add to <em class="parameter"><code>queue</code></em>
998 </td>
999 </tr>
1000 </tbody>
1001 </table></div>
1002 <p class="since">Since 2.4</p>
1003 </div>
1004 <hr>
1005 <div class="refsect2" title="g_queue_pop_head_link ()">
1006 <a name="g-queue-pop-head-link"></a><h3>g_queue_pop_head_link ()</h3>
1007 <pre class="programlisting"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a>*              g_queue_pop_head_link               (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
1008 <p>
1009 Removes the first element of the queue.</p>
1010 <div class="variablelist"><table border="0">
1011 <col align="left" valign="top">
1012 <tbody>
1013 <tr>
1014 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1015 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
1016 </td>
1017 </tr>
1018 <tr>
1019 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1020 <td> the <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="type">GList</span></a> element at the head of the queue, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if the queue
1021   is empty.
1022 </td>
1023 </tr>
1024 </tbody>
1025 </table></div>
1026 </div>
1027 <hr>
1028 <div class="refsect2" title="g_queue_pop_tail_link ()">
1029 <a name="g-queue-pop-tail-link"></a><h3>g_queue_pop_tail_link ()</h3>
1030 <pre class="programlisting"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a>*              g_queue_pop_tail_link               (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
1031 <p>
1032 Removes the last element of the queue.</p>
1033 <div class="variablelist"><table border="0">
1034 <col align="left" valign="top">
1035 <tbody>
1036 <tr>
1037 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1038 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>.
1039 </td>
1040 </tr>
1041 <tr>
1042 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1043 <td> the <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="type">GList</span></a> element at the tail of the queue, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if the queue
1044   is empty.
1045 </td>
1046 </tr>
1047 </tbody>
1048 </table></div>
1049 </div>
1050 <hr>
1051 <div class="refsect2" title="g_queue_pop_nth_link ()">
1052 <a name="g-queue-pop-nth-link"></a><h3>g_queue_pop_nth_link ()</h3>
1053 <pre class="programlisting"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a>*              g_queue_pop_nth_link                (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
1054                                                          <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> n);</pre>
1055 <p>
1056 Removes and returns the link at the given position.</p>
1057 <div class="variablelist"><table border="0">
1058 <col align="left" valign="top">
1059 <tbody>
1060 <tr>
1061 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1062 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
1063 </td>
1064 </tr>
1065 <tr>
1066 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
1067 <td> the link's position
1068 </td>
1069 </tr>
1070 <tr>
1071 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1072 <td> The <em class="parameter"><code>n</code></em>'th link, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if <em class="parameter"><code>n</code></em> is off the end of <em class="parameter"><code>queue</code></em>.
1073
1074 </td>
1075 </tr>
1076 </tbody>
1077 </table></div>
1078 <p class="since">Since 2.4</p>
1079 </div>
1080 <hr>
1081 <div class="refsect2" title="g_queue_peek_head_link ()">
1082 <a name="g-queue-peek-head-link"></a><h3>g_queue_peek_head_link ()</h3>
1083 <pre class="programlisting"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a>*              g_queue_peek_head_link              (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
1084 <p>
1085 Returns the first link in <em class="parameter"><code>queue</code></em></p>
1086 <div class="variablelist"><table border="0">
1087 <col align="left" valign="top">
1088 <tbody>
1089 <tr>
1090 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1091 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
1092 </td>
1093 </tr>
1094 <tr>
1095 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1096 <td> the first link in <em class="parameter"><code>queue</code></em>, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if <em class="parameter"><code>queue</code></em> is empty
1097
1098 </td>
1099 </tr>
1100 </tbody>
1101 </table></div>
1102 <p class="since">Since 2.4</p>
1103 </div>
1104 <hr>
1105 <div class="refsect2" title="g_queue_peek_tail_link ()">
1106 <a name="g-queue-peek-tail-link"></a><h3>g_queue_peek_tail_link ()</h3>
1107 <pre class="programlisting"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a>*              g_queue_peek_tail_link              (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue);</pre>
1108 <p>
1109 Returns the last link <em class="parameter"><code>queue</code></em>.</p>
1110 <div class="variablelist"><table border="0">
1111 <col align="left" valign="top">
1112 <tbody>
1113 <tr>
1114 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1115 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
1116 </td>
1117 </tr>
1118 <tr>
1119 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1120 <td> the last link in <em class="parameter"><code>queue</code></em>, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if <em class="parameter"><code>queue</code></em> is empty
1121
1122 </td>
1123 </tr>
1124 </tbody>
1125 </table></div>
1126 <p class="since">Since 2.4</p>
1127 </div>
1128 <hr>
1129 <div class="refsect2" title="g_queue_peek_nth_link ()">
1130 <a name="g-queue-peek-nth-link"></a><h3>g_queue_peek_nth_link ()</h3>
1131 <pre class="programlisting"><a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a>*              g_queue_peek_nth_link               (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
1132                                                          <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> n);</pre>
1133 <p>
1134 Returns the link at the given position</p>
1135 <div class="variablelist"><table border="0">
1136 <col align="left" valign="top">
1137 <tbody>
1138 <tr>
1139 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1140 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
1141 </td>
1142 </tr>
1143 <tr>
1144 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
1145 <td> the position of the link
1146 </td>
1147 </tr>
1148 <tr>
1149 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1150 <td> The link at the <em class="parameter"><code>n</code></em>'th position, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if <em class="parameter"><code>n</code></em> is off the
1151 end of the list
1152
1153 </td>
1154 </tr>
1155 </tbody>
1156 </table></div>
1157 <p class="since">Since 2.4</p>
1158 </div>
1159 <hr>
1160 <div class="refsect2" title="g_queue_link_index ()">
1161 <a name="g-queue-link-index"></a><h3>g_queue_link_index ()</h3>
1162 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a>                g_queue_link_index                  (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
1163                                                          <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *link_);</pre>
1164 <p>
1165 Returns the position of <em class="parameter"><code>link_</code></em> in <em class="parameter"><code>queue</code></em>.</p>
1166 <div class="variablelist"><table border="0">
1167 <col align="left" valign="top">
1168 <tbody>
1169 <tr>
1170 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1171 <td> a <span class="type">Gqueue</span>
1172 </td>
1173 </tr>
1174 <tr>
1175 <td><p><span class="term"><em class="parameter"><code>link_</code></em> :</span></p></td>
1176 <td> A <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="type">GList</span></a> link
1177 </td>
1178 </tr>
1179 <tr>
1180 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1181 <td> The position of <em class="parameter"><code>link_</code></em>, or -1 if the link is
1182 not part of <em class="parameter"><code>queue</code></em>
1183
1184 </td>
1185 </tr>
1186 </tbody>
1187 </table></div>
1188 <p class="since">Since 2.4</p>
1189 </div>
1190 <hr>
1191 <div class="refsect2" title="g_queue_unlink ()">
1192 <a name="g-queue-unlink"></a><h3>g_queue_unlink ()</h3>
1193 <pre class="programlisting"><span class="returnvalue">void</span>                g_queue_unlink                      (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
1194                                                          <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *link_);</pre>
1195 <p>
1196 Unlinks <em class="parameter"><code>link_</code></em> so that it will no longer be part of <em class="parameter"><code>queue</code></em>. The link is
1197 not freed.
1198 </p>
1199 <p>
1200 <em class="parameter"><code>link_</code></em> must be part of <em class="parameter"><code>queue</code></em>,</p>
1201 <div class="variablelist"><table border="0">
1202 <col align="left" valign="top">
1203 <tbody>
1204 <tr>
1205 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1206 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
1207 </td>
1208 </tr>
1209 <tr>
1210 <td><p><span class="term"><em class="parameter"><code>link_</code></em> :</span></p></td>
1211 <td> a <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="type">GList</span></a> link that <span class="emphasis"><em>must</em></span> be part of <em class="parameter"><code>queue</code></em>
1212 </td>
1213 </tr>
1214 </tbody>
1215 </table></div>
1216 <p class="since">Since 2.4</p>
1217 </div>
1218 <hr>
1219 <div class="refsect2" title="g_queue_delete_link ()">
1220 <a name="g-queue-delete-link"></a><h3>g_queue_delete_link ()</h3>
1221 <pre class="programlisting"><span class="returnvalue">void</span>                g_queue_delete_link                 (<a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="returnvalue">GQueue</span></a> *queue,
1222                                                          <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="returnvalue">GList</span></a> *link_);</pre>
1223 <p>
1224 Removes <em class="parameter"><code>link_</code></em> from <em class="parameter"><code>queue</code></em> and frees it.
1225 </p>
1226 <p>
1227 <em class="parameter"><code>link_</code></em> must be part of <em class="parameter"><code>queue</code></em>.</p>
1228 <div class="variablelist"><table border="0">
1229 <col align="left" valign="top">
1230 <tbody>
1231 <tr>
1232 <td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
1233 <td> a <a class="link" href="glib-Double-ended-Queues.html#GQueue" title="GQueue"><span class="type">GQueue</span></a>
1234 </td>
1235 </tr>
1236 <tr>
1237 <td><p><span class="term"><em class="parameter"><code>link_</code></em> :</span></p></td>
1238 <td> a <a class="link" href="glib-Doubly-Linked-Lists.html#GList" title="GList"><span class="type">GList</span></a> link that <span class="emphasis"><em>must</em></span> be part of <em class="parameter"><code>queue</code></em>
1239 </td>
1240 </tr>
1241 </tbody>
1242 </table></div>
1243 <p class="since">Since 2.4</p>
1244 </div>
1245 </div>
1246 </div>
1247 <div class="footer">
1248 <hr>
1249           Generated by GTK-Doc V1.13</div>
1250 </body>
1251 </html>