| <!-- ##### SECTION Title ##### --> |
| Double-ended Queues |
| |
| <!-- ##### SECTION Short_Description ##### --> |
| double-ended queue data structure. |
| |
| <!-- ##### SECTION Long_Description ##### --> |
| <para> |
| The #GQueue structure and its associated functions provide a standard |
| queue data structure. Internally, #GQueue uses the same data structure as |
| #GList 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 #GQueue, use g_queue_new(). |
| </para> |
| <para> |
| To add elements, use g_queue_push_head(), g_queue_push_head_link(), |
| g_queue_push_tail() and g_queue_push_tail_link(). |
| </para> |
| <para> |
| To remove elements, use g_queue_pop_head() and g_queue_pop_tail(). |
| </para> |
| <para> |
| To free the entire queue, use g_queue_free(). |
| </para> |
| |
| <!-- ##### SECTION See_Also ##### --> |
| <para> |
| |
| </para> |
| |
| <!-- ##### SECTION Stability_Level ##### --> |
| |
| |
| <!-- ##### STRUCT GQueue ##### --> |
| <para> |
| Contains the public fields of a <link linkend="glib-queues">Queue</link>. |
| </para> |
| |
| @head: a pointer to the first element of the queue. |
| @tail: a pointer to the last element of the queue. |
| @length: the number of elements in the queue. |
| |
| <!-- ##### FUNCTION g_queue_new ##### --> |
| <para> |
| |
| </para> |
| |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_queue_free ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| |
| |
| <!-- ##### FUNCTION g_queue_is_empty ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_queue_get_length ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_queue_reverse ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| |
| |
| <!-- ##### FUNCTION g_queue_copy ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_queue_foreach ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @func: |
| @user_data: |
| |
| |
| <!-- ##### FUNCTION g_queue_find ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @data: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_queue_find_custom ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @data: |
| @func: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_queue_sort ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @compare_func: |
| @user_data: |
| |
| |
| <!-- ##### FUNCTION g_queue_push_head ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @data: |
| |
| |
| <!-- ##### FUNCTION g_queue_push_tail ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @data: |
| |
| |
| <!-- ##### FUNCTION g_queue_push_nth ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @data: |
| @n: |
| |
| |
| <!-- ##### FUNCTION g_queue_pop_head ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_queue_pop_tail ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_queue_pop_nth ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @n: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_queue_peek_head ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_queue_peek_tail ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_queue_peek_nth ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @n: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_queue_index ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @data: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_queue_remove ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @data: |
| |
| |
| <!-- ##### FUNCTION g_queue_remove_all ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @data: |
| |
| |
| <!-- ##### FUNCTION g_queue_insert_before ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @sibling: |
| @data: |
| |
| |
| <!-- ##### FUNCTION g_queue_insert_after ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @sibling: |
| @data: |
| |
| |
| <!-- ##### FUNCTION g_queue_insert_sorted ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @data: |
| @func: |
| @user_data: |
| |
| |
| <!-- ##### FUNCTION g_queue_push_head_link ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @link_: |
| |
| |
| <!-- ##### FUNCTION g_queue_push_tail_link ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @link_: |
| |
| |
| <!-- ##### FUNCTION g_queue_push_nth_link ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @n: |
| @link_: |
| |
| |
| <!-- ##### FUNCTION g_queue_pop_head_link ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_queue_pop_tail_link ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_queue_pop_nth_link ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @n: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_queue_peek_head_link ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_queue_peek_tail_link ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_queue_peek_nth_link ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @n: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_queue_link_index ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @link_: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_queue_unlink ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @link_: |
| |
| |
| <!-- ##### FUNCTION g_queue_delete_link ##### --> |
| <para> |
| |
| </para> |
| |
| @queue: |
| @link_: |
| |
| |