## GstQueueArray

GstQueueArray — Array based queue object

## Functions

GstQueueArray * | gst_queue_array_new ()
void | gst_queue_array_free ()
guint | gst_queue_array_get_length ()
gpointer | gst_queue_array_pop_head ()
gpointer | gst_queue_array_peek_head ()
void | gst_queue_array_push_tail ()
gboolean | gst_queue_array_is_empty ()
gpointer | gst_queue_array_drop_element ()
guint | gst_queue_array_find ()

## Types and Values

| GstQueueArray

## Object Hierarchy

## Includes

    #include <gst/base/gstqueuearray.h>

## Description

GstQueueArray is an object that provides standard queue functionality based on an array instead of linked lists. This reduces the overhead caused by memory managment by a large factor.

## Functions

### gst_queue_array_new ()

    GstQueueArray *
    gst_queue_array_new (guint initial_size);

Allocates a new GstQueueArray object with an initial queue size of `initial_size` .

#### Parameters

initial_size | Initial size of the new queue |

#### Returns

a new GstQueueArray object

Since 1.2.0

### gst_queue_array_free ()

    void
    gst_queue_array_free (GstQueueArray *array);

Frees queue `array` and all memory associated to it.

#### Parameters

array | a GstQueueArray object |

Since 1.2.0

### gst_queue_array_get_length ()

    guint
    gst_queue_array_get_length (GstQueueArray *array);

Returns the length of the queue `array`

#### Parameters

array | a GstQueueArray object |

#### Returns

the length of the queue `array` .

Since 1.2.0

### gst_queue_array_pop_head ()

    gpointer
    gst_queue_array_pop_head (GstQueueArray *array);

Returns and head of the queue `array` and does not remove it from the queue.

#### Parameters

array | a GstQueueArray object |

#### Returns

The head of the queue

Since 1.2.0

### gst_queue_array_peek_head ()

    gpointer
    gst_queue_array_peek_head (GstQueueArray *array);

### gst_queue_array_push_tail ()

    void
    gst_queue_array_push_tail (GstQueueArray *array,
                               gpointer data);

Pushes `data` to the tail of the queue `array` .

#### Parameters

array | a GstQueueArray object |
data | object to push |

Since 1.2.0

### gst_queue_array_is_empty ()

    gboolean
    gst_queue_array_is_empty (GstQueueArray *array);

Checks if the queue `array` is empty.

#### Parameters

array | a GstQueueArray object |

#### Returns

`TRUE` if the queue `array` is empty

Since 1.2.0

### gst_queue_array_drop_element ()

    gpointer
    gst_queue_array_drop_element (GstQueueArray *array,
                                  guint idx);

Drops the queue element at position `idx` from queue `array` .

#### Parameters

array | a GstQueueArray object |
idx | index to drop |

#### Returns

the dropped element

Since 1.2.0

### gst_queue_array_find ()

    guint
    gst_queue_array_find (GstQueueArray *array,
                          GCompareFunc func,
                          gpointer data);

Finds an element in the queue `array` , either by comparing every element with `func` or by looking up `data` if no compare function `func` is provided, and returning the index of the found element.

Note that the index is not 0-based, but an internal index number with a random offset. The index can be used in connection with `gst_queue_array_drop_element()`. FIXME: return index 0-based and make `_drop_element()` take a 0-based index.

#### Parameters

array | a GstQueueArray object |
func | comparison function, or `NULL` to find `data` by value. | [allow-none]
data | data for comparison function |

#### Returns

Index of the found element or -1 if nothing was found.

Since 1.2.0

## Types and Values

### GstQueueArray

    typedef struct _GstQueueArray GstQueueArray;