GstAtomicQueue

GstAtomicQueue — An atomic queue implementation

Synopsis

#include <gst/gst.h>

                    GstAtomicQueue;
GstAtomicQueue *    gst_atomic_queue_new                (guint initial_size);
void                gst_atomic_queue_ref                (GstAtomicQueue *queue);
void                gst_atomic_queue_unref              (GstAtomicQueue *queue);
void                gst_atomic_queue_push               (GstAtomicQueue *queue,
                                                         gpointer data);
gpointer            gst_atomic_queue_peek               (GstAtomicQueue *queue);
gpointer            gst_atomic_queue_pop                (GstAtomicQueue *queue);
guint               gst_atomic_queue_length             (GstAtomicQueue *queue);

Description

The GstAtomicQueue object implements a queue that can be used from multiple threads without performing any blocking operations.

Details

GstAtomicQueue

typedef struct _GstAtomicQueue GstAtomicQueue;

Opaque atomic data queue.

Use the acessor functions to get the stored values.


gst_atomic_queue_new ()

GstAtomicQueue *    gst_atomic_queue_new                (guint initial_size);

Create a new atomic queue instance. initial_size will be rounded up to the nearest power of 2 and used as the initial size of the queue.

initial_size :

initial queue size

Returns :

a new GstAtomicQueue

gst_atomic_queue_ref ()

void                gst_atomic_queue_ref                (GstAtomicQueue *queue);

Increase the refcount of queue.

queue :

a GstAtomicQueue

gst_atomic_queue_unref ()

void                gst_atomic_queue_unref              (GstAtomicQueue *queue);

Unref queue and free the memory when the refcount reaches 0.

queue :

a GstAtomicQueue

gst_atomic_queue_push ()

void                gst_atomic_queue_push               (GstAtomicQueue *queue,
                                                         gpointer data);

Append data to the tail of the queue.

queue :

a GstAtomicQueue

data :

the data

gst_atomic_queue_peek ()

gpointer            gst_atomic_queue_peek               (GstAtomicQueue *queue);

Peek the head element of the queue without removing it from the queue.

queue :

a GstAtomicQueue

Returns :

the head element of queue or NULL when the queue is empty. [transfer none]

gst_atomic_queue_pop ()

gpointer            gst_atomic_queue_pop                (GstAtomicQueue *queue);

Get the head element of the queue.

queue :

a GstAtomicQueue

Returns :

the head element of queue or NULL when the queue is empty. [transfer full]

gst_atomic_queue_length ()

guint               gst_atomic_queue_length             (GstAtomicQueue *queue);

Get the amount of items in the queue.

queue :

a GstAtomicQueue

Returns :

the number of elements in the queue.