<refentry id="glib-Double-ended-Queues">
<refmeta>
<refentrytitle>Double-ended Queues</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>GLIB Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>Double-ended Queues</refname><refpurpose>double-ended queue data structure.</refpurpose>
</refnamediv>

<refsynopsisdiv><title>Synopsis</title>

<synopsis>

#include &lt;glib.h&gt;


struct      <link linkend="GQueue">GQueue</link>;
<link linkend="GQueue">GQueue</link>*     <link linkend="g-queue-new">g_queue_new</link>                     (void);
<link linkend="void">void</link>        <link linkend="g-queue-free">g_queue_free</link>                    (<link linkend="GQueue">GQueue</link> *queue);
<link linkend="gboolean">gboolean</link>    <link linkend="g-queue-is-empty">g_queue_is_empty</link>                (<link linkend="GQueue">GQueue</link> *queue);
<link linkend="guint">guint</link>       <link linkend="g-queue-get-length">g_queue_get_length</link>              (<link linkend="GQueue">GQueue</link> *queue);
<link linkend="void">void</link>        <link linkend="g-queue-reverse">g_queue_reverse</link>                 (<link linkend="GQueue">GQueue</link> *queue);
<link linkend="GQueue">GQueue</link>*     <link linkend="g-queue-copy">g_queue_copy</link>                    (<link linkend="GQueue">GQueue</link> *queue);
<link linkend="void">void</link>        <link linkend="g-queue-foreach">g_queue_foreach</link>                 (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="GFunc">GFunc</link> func,
                                             <link linkend="gpointer">gpointer</link> user_data);
<link linkend="GList">GList</link>*      <link linkend="g-queue-find">g_queue_find</link>                    (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="gconstpointer">gconstpointer</link> data);
<link linkend="GList">GList</link>*      <link linkend="g-queue-find-custom">g_queue_find_custom</link>             (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="gconstpointer">gconstpointer</link> data,
                                             <link linkend="GCompareFunc">GCompareFunc</link> func);
<link linkend="void">void</link>        <link linkend="g-queue-sort">g_queue_sort</link>                    (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="GCompareDataFunc">GCompareDataFunc</link> compare_func,
                                             <link linkend="gpointer">gpointer</link> user_data);
<link linkend="void">void</link>        <link linkend="g-queue-push-head">g_queue_push_head</link>               (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="gpointer">gpointer</link> data);
<link linkend="void">void</link>        <link linkend="g-queue-push-tail">g_queue_push_tail</link>               (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="gpointer">gpointer</link> data);
<link linkend="void">void</link>        <link linkend="g-queue-push-nth">g_queue_push_nth</link>                (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="gpointer">gpointer</link> data,
                                             <link linkend="gint">gint</link> n);
<link linkend="gpointer">gpointer</link>    <link linkend="g-queue-pop-head">g_queue_pop_head</link>                (<link linkend="GQueue">GQueue</link> *queue);
<link linkend="gpointer">gpointer</link>    <link linkend="g-queue-pop-tail">g_queue_pop_tail</link>                (<link linkend="GQueue">GQueue</link> *queue);
<link linkend="gpointer">gpointer</link>    <link linkend="g-queue-pop-nth">g_queue_pop_nth</link>                 (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="guint">guint</link> n);
<link linkend="gpointer">gpointer</link>    <link linkend="g-queue-peek-head">g_queue_peek_head</link>               (<link linkend="GQueue">GQueue</link> *queue);
<link linkend="gpointer">gpointer</link>    <link linkend="g-queue-peek-tail">g_queue_peek_tail</link>               (<link linkend="GQueue">GQueue</link> *queue);
<link linkend="gpointer">gpointer</link>    <link linkend="g-queue-peek-nth">g_queue_peek_nth</link>                (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="guint">guint</link> n);
<link linkend="gint">gint</link>        <link linkend="g-queue-index">g_queue_index</link>                   (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="gconstpointer">gconstpointer</link> data);
<link linkend="void">void</link>        <link linkend="g-queue-remove">g_queue_remove</link>                  (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="gconstpointer">gconstpointer</link> data);
<link linkend="void">void</link>        <link linkend="g-queue-remove-all">g_queue_remove_all</link>              (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="gconstpointer">gconstpointer</link> data);
<link linkend="void">void</link>        <link linkend="g-queue-insert-before">g_queue_insert_before</link>           (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="GList">GList</link> *sibling,
                                             <link linkend="gpointer">gpointer</link> data);
<link linkend="void">void</link>        <link linkend="g-queue-insert-after">g_queue_insert_after</link>            (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="GList">GList</link> *sibling,
                                             <link linkend="gpointer">gpointer</link> data);
<link linkend="void">void</link>        <link linkend="g-queue-insert-sorted">g_queue_insert_sorted</link>           (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="gpointer">gpointer</link> data,
                                             <link linkend="GCompareDataFunc">GCompareDataFunc</link> func,
                                             <link linkend="gpointer">gpointer</link> user_data);
<link linkend="void">void</link>        <link linkend="g-queue-push-head-link">g_queue_push_head_link</link>          (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="GList">GList</link> *link_);
<link linkend="void">void</link>        <link linkend="g-queue-push-tail-link">g_queue_push_tail_link</link>          (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="GList">GList</link> *link_);
<link linkend="void">void</link>        <link linkend="g-queue-push-nth-link">g_queue_push_nth_link</link>           (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="gint">gint</link> n,
                                             <link linkend="GList">GList</link> *link_);
<link linkend="GList">GList</link>*      <link linkend="g-queue-pop-head-link">g_queue_pop_head_link</link>           (<link linkend="GQueue">GQueue</link> *queue);
<link linkend="GList">GList</link>*      <link linkend="g-queue-pop-tail-link">g_queue_pop_tail_link</link>           (<link linkend="GQueue">GQueue</link> *queue);
<link linkend="GList">GList</link>*      <link linkend="g-queue-pop-nth-link">g_queue_pop_nth_link</link>            (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="guint">guint</link> n);
<link linkend="GList">GList</link>*      <link linkend="g-queue-peek-head-link">g_queue_peek_head_link</link>          (<link linkend="GQueue">GQueue</link> *queue);
<link linkend="GList">GList</link>*      <link linkend="g-queue-peek-tail-link">g_queue_peek_tail_link</link>          (<link linkend="GQueue">GQueue</link> *queue);
<link linkend="GList">GList</link>*      <link linkend="g-queue-peek-nth-link">g_queue_peek_nth_link</link>           (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="guint">guint</link> n);
<link linkend="gint">gint</link>        <link linkend="g-queue-link-index">g_queue_link_index</link>              (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="GList">GList</link> *link_);
<link linkend="void">void</link>        <link linkend="g-queue-unlink">g_queue_unlink</link>                  (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="GList">GList</link> *link_);
<link linkend="void">void</link>        <link linkend="g-queue-delete-link">g_queue_delete_link</link>             (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="GList">GList</link> *link_);
</synopsis>
</refsynopsisdiv>









<refsect1>
<title>Description</title>
<para>
The <link linkend="GQueue"><type>GQueue</type></link> structure and its associated functions provide a standard
queue data structure. Internally, <link linkend="GQueue"><type>GQueue</type></link> uses the same data structure as 
<link linkend="GList"><type>GList</type></link> to store elements.  
</para>
<para>
The data contained in each element can be either integer values, by using one
of the
<link linkend="glib-Type-Conversion-Macros">Type Conversion Macros</link>,
or simply pointers to any type of data.
</para>
<para>
To create a new <link linkend="GQueue"><type>GQueue</type></link>, use <link linkend="g-queue-new"><function>g_queue_new()</function></link>.
</para>
<para>
To add elements, use <link linkend="g-queue-push-head"><function>g_queue_push_head()</function></link>, <link linkend="g-queue-push-head-link"><function>g_queue_push_head_link()</function></link>, 
<link linkend="g-queue-push-tail"><function>g_queue_push_tail()</function></link> and <link linkend="g-queue-push-tail-link"><function>g_queue_push_tail_link()</function></link>.
</para>
<para>
To remove elements, use <link linkend="g-queue-pop-head"><function>g_queue_pop_head()</function></link> and <link linkend="g-queue-pop-tail"><function>g_queue_pop_tail()</function></link>.
</para>
<para>
To free the entire queue, use <link linkend="g-queue-free"><function>g_queue_free()</function></link>.
</para>
</refsect1>

<refsect1>
<title>Details</title>
<refsect2>
<title><anchor id="GQueue"/>struct GQueue</title>
<indexterm><primary>GQueue</primary></indexterm><programlisting>struct GQueue {

  GList *head;
  GList *tail;
  guint  length;
};
</programlisting>
<para>
Contains the public fields of a <link linkend="glib-queues">Queue</link>.
</para><variablelist role="struct">
<varlistentry>
<term><link linkend="GList">GList</link> *<structfield>head</structfield></term>
<listitem><simpara>a pointer to the first element of the queue.
</simpara></listitem>
</varlistentry>
<varlistentry>
<term><link linkend="GList">GList</link> *<structfield>tail</structfield></term>
<listitem><simpara>a pointer to the last element of the queue.
</simpara></listitem>
</varlistentry>
<varlistentry>
<term><link linkend="guint">guint</link> <structfield>length</structfield></term>
<listitem><simpara>the number of elements in the queue.

</simpara></listitem>
</varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-queue-new"/>g_queue_new ()</title>
<indexterm><primary>g_queue_new</primary></indexterm><programlisting><link linkend="GQueue">GQueue</link>*     g_queue_new                     (void);</programlisting>
<para>
Creates a new <link linkend="GQueue"><type>GQueue</type></link>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a new <link linkend="GQueue"><type>GQueue</type></link>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-queue-free"/>g_queue_free ()</title>
<indexterm><primary>g_queue_free</primary></indexterm><programlisting><link linkend="void">void</link>        g_queue_free                    (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
<para>
Frees the memory allocated for the <link linkend="GQueue"><type>GQueue</type></link>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-queue-is-empty"/>g_queue_is_empty ()</title>
<indexterm><primary>g_queue_is_empty</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    g_queue_is_empty                (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
<para>
Returns <literal>TRUE</literal> if the queue is empty.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <literal>TRUE</literal> if the queue is empty.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-queue-get-length"/>g_queue_get_length ()</title>
<indexterm role="2.4"><primary>g_queue_get_length</primary></indexterm><programlisting><link linkend="guint">guint</link>       g_queue_get_length              (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
<para>
Returns the number of items in <parameter>queue</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The number of items in <parameter>queue</parameter>.

</simpara></listitem></varlistentry>
</variablelist><para>Since  2.4
</para></refsect2>
<refsect2>
<title><anchor id="g-queue-reverse"/>g_queue_reverse ()</title>
<indexterm role="2.4"><primary>g_queue_reverse</primary></indexterm><programlisting><link linkend="void">void</link>        g_queue_reverse                 (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
<para>
Reverses the order of the items in <parameter>queue</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
</simpara></listitem></varlistentry>
</variablelist><para>Since  2.4
</para></refsect2>
<refsect2>
<title><anchor id="g-queue-copy"/>g_queue_copy ()</title>
<indexterm role="2.4"><primary>g_queue_copy</primary></indexterm><programlisting><link linkend="GQueue">GQueue</link>*     g_queue_copy                    (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
<para>
Copies a <parameter>queue</parameter>. Note that is a shallow copy. If the elements in the
queue consist of pointers to data, the pointers are copied, but the
actual data is not.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> A copy of <parameter>queue</parameter>

</simpara></listitem></varlistentry>
</variablelist><para>Since  2.4
</para></refsect2>
<refsect2>
<title><anchor id="g-queue-foreach"/>g_queue_foreach ()</title>
<indexterm role="2.4"><primary>g_queue_foreach</primary></indexterm><programlisting><link linkend="void">void</link>        g_queue_foreach                 (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="GFunc">GFunc</link> func,
                                             <link linkend="gpointer">gpointer</link> user_data);</programlisting>
<para>
Calls <parameter>func</parameter> for each element in the queue passing <parameter>user_data</parameter> to the
function.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>func</parameter>&nbsp;:</term>
<listitem><simpara> the function to call for each element's data
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
<listitem><simpara> user data to pass to <parameter>func</parameter>
</simpara></listitem></varlistentry>
</variablelist><para>Since  2.4
</para></refsect2>
<refsect2>
<title><anchor id="g-queue-find"/>g_queue_find ()</title>
<indexterm role="2.4"><primary>g_queue_find</primary></indexterm><programlisting><link linkend="GList">GList</link>*      g_queue_find                    (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="gconstpointer">gconstpointer</link> data);</programlisting>
<para>
Finds the first link in <parameter>queue</parameter> which contains <parameter>data</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
<listitem><simpara> data to find
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The first link in <parameter>queue</parameter> which contains <parameter>data</parameter>.

</simpara></listitem></varlistentry>
</variablelist><para>Since  2.4
</para></refsect2>
<refsect2>
<title><anchor id="g-queue-find-custom"/>g_queue_find_custom ()</title>
<indexterm role="2.4"><primary>g_queue_find_custom</primary></indexterm><programlisting><link linkend="GList">GList</link>*      g_queue_find_custom             (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="gconstpointer">gconstpointer</link> data,
                                             <link linkend="GCompareFunc">GCompareFunc</link> func);</programlisting>
<para>
Finds an element in a <link linkend="GQueue"><type>GQueue</type></link>, using a supplied function to find the
desired element. It iterates over the queue, calling the given function
which should return 0 when the desired element is found. The function
takes two gconstpointer arguments, the <link linkend="GQueue"><type>GQueue</type></link> element's data and the
given user data.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
<listitem><simpara> user data passed to <parameter>func</parameter>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>func</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GCompareFunc"><type>GCompareFunc</type></link> to call for each element. It should return 0
when the desired element is found
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The found link, or <literal>NULL</literal> if it wasn't found

</simpara></listitem></varlistentry>
</variablelist><para>Since  2.4
</para></refsect2>
<refsect2>
<title><anchor id="g-queue-sort"/>g_queue_sort ()</title>
<indexterm role="2.4"><primary>g_queue_sort</primary></indexterm><programlisting><link linkend="void">void</link>        g_queue_sort                    (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="GCompareDataFunc">GCompareDataFunc</link> compare_func,
                                             <link linkend="gpointer">gpointer</link> user_data);</programlisting>
<para>
Sorts <parameter>queue</parameter> using <parameter>compare_func</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>compare_func</parameter>&nbsp;:</term>
<listitem><simpara> the <link linkend="GCompareDataFunc"><type>GCompareDataFunc</type></link> used to sort <parameter>queue</parameter>. This function
    is passed two elements of the queue and should return 0 if they are
    equal, a negative value if the first comes before the second, and
    a positive value if the second comes before the first.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
<listitem><simpara> user data passed to <parameter>compare_func</parameter>
</simpara></listitem></varlistentry>
</variablelist><para>Since  2.4
</para></refsect2>
<refsect2>
<title><anchor id="g-queue-push-head"/>g_queue_push_head ()</title>
<indexterm><primary>g_queue_push_head</primary></indexterm><programlisting><link linkend="void">void</link>        g_queue_push_head               (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="gpointer">gpointer</link> data);</programlisting>
<para>
Adds a new element at the head of the queue.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
<listitem><simpara> the data for the new element.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-queue-push-tail"/>g_queue_push_tail ()</title>
<indexterm><primary>g_queue_push_tail</primary></indexterm><programlisting><link linkend="void">void</link>        g_queue_push_tail               (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="gpointer">gpointer</link> data);</programlisting>
<para>
Adds a new element at the tail of the queue.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
<listitem><simpara> the data for the new element.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-queue-push-nth"/>g_queue_push_nth ()</title>
<indexterm role="2.4"><primary>g_queue_push_nth</primary></indexterm><programlisting><link linkend="void">void</link>        g_queue_push_nth                (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="gpointer">gpointer</link> data,
                                             <link linkend="gint">gint</link> n);</programlisting>
<para>
Inserts a new element into <parameter>queue</parameter> at the given position</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
<listitem><simpara> the data for the new element
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>n</parameter>&nbsp;:</term>
<listitem><simpara> the position to insert the new element. If <parameter>n</parameter> is negative or
    larger than the number of elements in the <parameter>queue</parameter>, the element is
    added to the end of the queue.
</simpara></listitem></varlistentry>
</variablelist><para>Since  2.4
</para></refsect2>
<refsect2>
<title><anchor id="g-queue-pop-head"/>g_queue_pop_head ()</title>
<indexterm><primary>g_queue_pop_head</primary></indexterm><programlisting><link linkend="gpointer">gpointer</link>    g_queue_pop_head                (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
<para>
Removes the first element of the queue.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the data of the first element in the queue, or <literal>NULL</literal> if the queue
  is empty.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-queue-pop-tail"/>g_queue_pop_tail ()</title>
<indexterm><primary>g_queue_pop_tail</primary></indexterm><programlisting><link linkend="gpointer">gpointer</link>    g_queue_pop_tail                (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
<para>
Removes the last element of the queue.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the data of the last element in the queue, or <literal>NULL</literal> if the queue
  is empty.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-queue-pop-nth"/>g_queue_pop_nth ()</title>
<indexterm role="2.4"><primary>g_queue_pop_nth</primary></indexterm><programlisting><link linkend="gpointer">gpointer</link>    g_queue_pop_nth                 (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="guint">guint</link> n);</programlisting>
<para>
Removes the <parameter>n</parameter>'th element of <parameter>queue</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>n</parameter>&nbsp;:</term>
<listitem><simpara> the position of the element.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the element's data, or <literal>NULL</literal> if <parameter>n</parameter> is off the end of <parameter>queue</parameter>.

</simpara></listitem></varlistentry>
</variablelist><para>Since  2.4
</para></refsect2>
<refsect2>
<title><anchor id="g-queue-peek-head"/>g_queue_peek_head ()</title>
<indexterm><primary>g_queue_peek_head</primary></indexterm><programlisting><link linkend="gpointer">gpointer</link>    g_queue_peek_head               (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
<para>
Returns the first element of the queue.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the data of the first element in the queue, or <literal>NULL</literal> if the queue
  is empty.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-queue-peek-tail"/>g_queue_peek_tail ()</title>
<indexterm><primary>g_queue_peek_tail</primary></indexterm><programlisting><link linkend="gpointer">gpointer</link>    g_queue_peek_tail               (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
<para>
Returns the last element of the queue.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the data of the last element in the queue, or <literal>NULL</literal> if the queue
  is empty.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-queue-peek-nth"/>g_queue_peek_nth ()</title>
<indexterm role="2.4"><primary>g_queue_peek_nth</primary></indexterm><programlisting><link linkend="gpointer">gpointer</link>    g_queue_peek_nth                (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="guint">guint</link> n);</programlisting>
<para>
Returns the <parameter>n</parameter>'th element of <parameter>queue</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>n</parameter>&nbsp;:</term>
<listitem><simpara> the position of the element.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The data for the <parameter>n</parameter>'th element of <parameter>queue</parameter>, or <literal>NULL</literal> if <parameter>n</parameter> is
  off the end of <parameter>queue</parameter>.

</simpara></listitem></varlistentry>
</variablelist><para>Since  2.4
</para></refsect2>
<refsect2>
<title><anchor id="g-queue-index"/>g_queue_index ()</title>
<indexterm role="2.4"><primary>g_queue_index</primary></indexterm><programlisting><link linkend="gint">gint</link>        g_queue_index                   (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="gconstpointer">gconstpointer</link> data);</programlisting>
<para>
Returns the position of the first element in <parameter>queue</parameter> which contains <parameter>data</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
<listitem><simpara> the data to find.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The position of the first element in <parameter>queue</parameter> which contains <parameter>data</parameter>, or -1 if no element in <parameter>queue</parameter> contains <parameter>data</parameter>.

</simpara></listitem></varlistentry>
</variablelist><para>Since  2.4
</para></refsect2>
<refsect2>
<title><anchor id="g-queue-remove"/>g_queue_remove ()</title>
<indexterm role="2.4"><primary>g_queue_remove</primary></indexterm><programlisting><link linkend="void">void</link>        g_queue_remove                  (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="gconstpointer">gconstpointer</link> data);</programlisting>
<para>
Removes the first element in <parameter>queue</parameter> that contains <parameter>data</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
<listitem><simpara> data to remove.
</simpara></listitem></varlistentry>
</variablelist><para>Since  2.4
</para></refsect2>
<refsect2>
<title><anchor id="g-queue-remove-all"/>g_queue_remove_all ()</title>
<indexterm role="2.4"><primary>g_queue_remove_all</primary></indexterm><programlisting><link linkend="void">void</link>        g_queue_remove_all              (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="gconstpointer">gconstpointer</link> data);</programlisting>
<para>
Remove all elemeents in <parameter>queue</parameter> which contains <parameter>data</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
<listitem><simpara> data to remove
</simpara></listitem></varlistentry>
</variablelist><para>Since  2.4
</para></refsect2>
<refsect2>
<title><anchor id="g-queue-insert-before"/>g_queue_insert_before ()</title>
<indexterm role="2.4"><primary>g_queue_insert_before</primary></indexterm><programlisting><link linkend="void">void</link>        g_queue_insert_before           (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="GList">GList</link> *sibling,
                                             <link linkend="gpointer">gpointer</link> data);</programlisting>
<para>
Inserts <parameter>data</parameter> into <parameter>queue</parameter> before <parameter>sibling</parameter>.
</para>
<para>
<parameter>sibling</parameter> must be part of <parameter>queue</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>sibling</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GList"><type>GList</type></link> link that <emphasis>must</emphasis> be part of <parameter>queue</parameter>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
<listitem><simpara> the data to insert
</simpara></listitem></varlistentry>
</variablelist><para>Since  2.4
</para></refsect2>
<refsect2>
<title><anchor id="g-queue-insert-after"/>g_queue_insert_after ()</title>
<indexterm role="2.4"><primary>g_queue_insert_after</primary></indexterm><programlisting><link linkend="void">void</link>        g_queue_insert_after            (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="GList">GList</link> *sibling,
                                             <link linkend="gpointer">gpointer</link> data);</programlisting>
<para>
Inserts <parameter>data</parameter> into <parameter>queue</parameter> after <parameter>sibling</parameter>
</para>
<para>
<parameter>sibling</parameter> must be part of <parameter>queue</parameter></para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>sibling</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GList"><type>GList</type></link> link that <emphasis>must</emphasis> be part of <parameter>queue</parameter>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
<listitem><simpara> the data to insert
</simpara></listitem></varlistentry>
</variablelist><para>Since  2.4
</para></refsect2>
<refsect2>
<title><anchor id="g-queue-insert-sorted"/>g_queue_insert_sorted ()</title>
<indexterm role="2.4"><primary>g_queue_insert_sorted</primary></indexterm><programlisting><link linkend="void">void</link>        g_queue_insert_sorted           (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="gpointer">gpointer</link> data,
                                             <link linkend="GCompareDataFunc">GCompareDataFunc</link> func,
                                             <link linkend="gpointer">gpointer</link> user_data);</programlisting>
<para>
Inserts <parameter>data</parameter> into <parameter>queue</parameter> using <parameter>func</parameter> to determine the new position.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
<listitem><simpara> the data to insert
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>func</parameter>&nbsp;:</term>
<listitem><simpara> the <link linkend="GCompareDataFunc"><type>GCompareDataFunc</type></link> used to compare elements in the queue. It is
    called with two elements of the <parameter>queue</parameter> and <parameter>user_data</parameter>. It should
    return 0 if the elements are equal, a negative value if the first
    element comes before the second, and a positive value if the second
    element comes after the first.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
<listitem><simpara> user data passed to <parameter>func</parameter>.
</simpara></listitem></varlistentry>
</variablelist><para>Since  2.4
</para></refsect2>
<refsect2>
<title><anchor id="g-queue-push-head-link"/>g_queue_push_head_link ()</title>
<indexterm><primary>g_queue_push_head_link</primary></indexterm><programlisting><link linkend="void">void</link>        g_queue_push_head_link          (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="GList">GList</link> *link_);</programlisting>
<para>
Adds a new element at the head of the queue.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>link_</parameter>&nbsp;:</term>
<listitem><simpara> a single <link linkend="GList"><type>GList</type></link> element, <emphasis>not</emphasis> a list with
    more than one element.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-queue-push-tail-link"/>g_queue_push_tail_link ()</title>
<indexterm><primary>g_queue_push_tail_link</primary></indexterm><programlisting><link linkend="void">void</link>        g_queue_push_tail_link          (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="GList">GList</link> *link_);</programlisting>
<para>
Adds a new element at the tail of the queue.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>link_</parameter>&nbsp;:</term>
<listitem><simpara> a single <link linkend="GList"><type>GList</type></link> element, <emphasis>not</emphasis> a list with
  more than one element.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-queue-push-nth-link"/>g_queue_push_nth_link ()</title>
<indexterm role="2.4"><primary>g_queue_push_nth_link</primary></indexterm><programlisting><link linkend="void">void</link>        g_queue_push_nth_link           (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="gint">gint</link> n,
                                             <link linkend="GList">GList</link> *link_);</programlisting>
<para>
Inserts <parameter>link</parameter> into <parameter>queue</parameter> at the given position.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>n</parameter>&nbsp;:</term>
<listitem><simpara> the position to insert the link. If this is negative or larger than
    the number of elements in <parameter>queue</parameter>, the link is added to the end of
    <parameter>queue</parameter>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>link_</parameter>&nbsp;:</term>
<listitem><simpara> the link to add to <parameter>queue</parameter>
</simpara></listitem></varlistentry>
</variablelist><para>Since  2.4
</para></refsect2>
<refsect2>
<title><anchor id="g-queue-pop-head-link"/>g_queue_pop_head_link ()</title>
<indexterm><primary>g_queue_pop_head_link</primary></indexterm><programlisting><link linkend="GList">GList</link>*      g_queue_pop_head_link           (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
<para>
Removes the first element of the queue.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the <link linkend="GList"><type>GList</type></link> element at the head of the queue, or <literal>NULL</literal> if the queue
  is empty.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-queue-pop-tail-link"/>g_queue_pop_tail_link ()</title>
<indexterm><primary>g_queue_pop_tail_link</primary></indexterm><programlisting><link linkend="GList">GList</link>*      g_queue_pop_tail_link           (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
<para>
Removes the last element of the queue.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the <link linkend="GList"><type>GList</type></link> element at the tail of the queue, or <literal>NULL</literal> if the queue
  is empty.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-queue-pop-nth-link"/>g_queue_pop_nth_link ()</title>
<indexterm role="2.4"><primary>g_queue_pop_nth_link</primary></indexterm><programlisting><link linkend="GList">GList</link>*      g_queue_pop_nth_link            (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="guint">guint</link> n);</programlisting>
<para>
Removes and returns the link at the given position.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>n</parameter>&nbsp;:</term>
<listitem><simpara> the link's position
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The <parameter>n</parameter>'th link, or <literal>NULL</literal> if <parameter>n</parameter> is off the end of <parameter>queue</parameter>.

</simpara></listitem></varlistentry>
</variablelist><para>Since  2.4
</para></refsect2>
<refsect2>
<title><anchor id="g-queue-peek-head-link"/>g_queue_peek_head_link ()</title>
<indexterm role="2.4"><primary>g_queue_peek_head_link</primary></indexterm><programlisting><link linkend="GList">GList</link>*      g_queue_peek_head_link          (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
<para>
Returns the first link in <parameter>queue</parameter></para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the first link in <parameter>queue</parameter>, or <literal>NULL</literal> if <parameter>queue</parameter> is empty

</simpara></listitem></varlistentry>
</variablelist><para>Since  2.4
</para></refsect2>
<refsect2>
<title><anchor id="g-queue-peek-tail-link"/>g_queue_peek_tail_link ()</title>
<indexterm role="2.4"><primary>g_queue_peek_tail_link</primary></indexterm><programlisting><link linkend="GList">GList</link>*      g_queue_peek_tail_link          (<link linkend="GQueue">GQueue</link> *queue);</programlisting>
<para>
Returns the last link <parameter>queue</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the last link in <parameter>queue</parameter>, or <literal>NULL</literal> if <parameter>queue</parameter> is empty

</simpara></listitem></varlistentry>
</variablelist><para>Since  2.4
</para></refsect2>
<refsect2>
<title><anchor id="g-queue-peek-nth-link"/>g_queue_peek_nth_link ()</title>
<indexterm role="2.4"><primary>g_queue_peek_nth_link</primary></indexterm><programlisting><link linkend="GList">GList</link>*      g_queue_peek_nth_link           (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="guint">guint</link> n);</programlisting>
<para>
Returns the link at the given position</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>n</parameter>&nbsp;:</term>
<listitem><simpara> the position of the link
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The link at the <parameter>n</parameter>'th position, or <literal>NULL</literal> if <parameter>n</parameter> is off the
end of the list

</simpara></listitem></varlistentry>
</variablelist><para>Since  2.4
</para></refsect2>
<refsect2>
<title><anchor id="g-queue-link-index"/>g_queue_link_index ()</title>
<indexterm role="2.4"><primary>g_queue_link_index</primary></indexterm><programlisting><link linkend="gint">gint</link>        g_queue_link_index              (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="GList">GList</link> *link_);</programlisting>
<para>
Returns the position of <parameter>link_</parameter> in <parameter>queue</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="Gqueue"><type>Gqueue</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>link_</parameter>&nbsp;:</term>
<listitem><simpara> A <link linkend="GList"><type>GList</type></link> link
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The position of <parameter>link_</parameter>, or -1 if the link is
not part of <parameter>queue</parameter>

</simpara></listitem></varlistentry>
</variablelist><para>Since  2.4
</para></refsect2>
<refsect2>
<title><anchor id="g-queue-unlink"/>g_queue_unlink ()</title>
<indexterm role="2.4"><primary>g_queue_unlink</primary></indexterm><programlisting><link linkend="void">void</link>        g_queue_unlink                  (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="GList">GList</link> *link_);</programlisting>
<para>
Unlinks <parameter>link_</parameter> so that it will no longer be part of <parameter>queue</parameter>. The link is
not freed.
</para>
<para>
<parameter>link_</parameter> must be part of <parameter>queue</parameter>,</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>link_</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GList"><type>GList</type></link> link that <emphasis>must</emphasis> be part of <parameter>queue</parameter>
</simpara></listitem></varlistentry>
</variablelist><para>Since  2.4
</para></refsect2>
<refsect2>
<title><anchor id="g-queue-delete-link"/>g_queue_delete_link ()</title>
<indexterm role="2.4"><primary>g_queue_delete_link</primary></indexterm><programlisting><link linkend="void">void</link>        g_queue_delete_link             (<link linkend="GQueue">GQueue</link> *queue,
                                             <link linkend="GList">GList</link> *link_);</programlisting>
<para>
Removes <parameter>link_</parameter> from <parameter>queue</parameter> and frees it.
</para>
<para>
<parameter>link_</parameter> must be part of <parameter>queue</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>queue</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GQueue"><type>GQueue</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>link_</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GList"><type>GList</type></link> link that <emphasis>must</emphasis> be part of <parameter>queue</parameter>
</simpara></listitem></varlistentry>
</variablelist><para>Since  2.4
</para></refsect2>

</refsect1>




</refentry>
