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