/cvmfs/atlas.cern.ch/repo/sw/ASG/AnalysisBase/2.4.28/CxxUtils/CxxUtils/libcalg/queue.h File Reference

Double-ended queue. More...

Go to the source code of this file.

Defines

#define QUEUE_NULL   ((void *) 0)

Typedefs

typedef struct _Queue Queue
typedef void * QueueValue

Functions

Queuequeue_new (void)
void queue_free (Queue *queue)
int queue_push_head (Queue *queue, QueueValue data)
QueueValue queue_pop_head (Queue *queue)
QueueValue queue_peek_head (Queue *queue)
int queue_push_tail (Queue *queue, QueueValue data)
QueueValue queue_pop_tail (Queue *queue)
QueueValue queue_peek_tail (Queue *queue)
int queue_is_empty (Queue *queue)

Detailed Description

Double-ended queue.

A double ended queue stores a list of values in order. New values can be added and removed from either end of the queue.

To create a new queue, use queue_new. To destroy a queue, use queue_free.

To add values to a queue, use queue_push_head and queue_push_tail.

To read values from the ends of a queue, use queue_pop_head and queue_pop_tail. To examine the ends without removing values from the queue, use queue_peek_head and queue_peek_tail.


Define Documentation

#define QUEUE_NULL   ((void *) 0)

A null QueueValue.


Typedef Documentation

typedef struct _Queue Queue

A double-ended queue.

typedef void* QueueValue

A value stored in a Queue.


Function Documentation

void queue_free ( Queue queue  ) 

Destroy a queue.

Parameters:
queue The queue to destroy.
int queue_is_empty ( Queue queue  ) 

Query if any values are currently in a queue.

Parameters:
queue The queue.
Returns:
Zero if the queue is not empty, non-zero if the queue is empty.
Queue* queue_new ( void   ) 

Create a new double-ended queue.

Returns:
A new queue, or NULL if it was not possible to allocate the memory.
QueueValue queue_peek_head ( Queue queue  ) 

Read value from the head of a queue, without removing it from the queue.

Parameters:
queue The queue.
Returns:
Value at the head of the queue, or QUEUE_NULL if the queue is empty.
QueueValue queue_peek_tail ( Queue queue  ) 

Read a value from the tail of a queue, without removing it from the queue.

Parameters:
queue The queue.
Returns:
Value at the tail of the queue, or QUEUE_NULL if the queue is empty.
QueueValue queue_pop_head ( Queue queue  ) 

Remove a value from the head of a queue.

Parameters:
queue The queue.
Returns:
Value that was at the head of the queue, or QUEUE_NULL if the queue is empty.
QueueValue queue_pop_tail ( Queue queue  ) 

Remove a value from the tail of a queue.

Parameters:
queue The queue.
Returns:
Value that was at the head of the queue, or QUEUE_NULL if the queue is empty.
int queue_push_head ( Queue queue,
QueueValue  data 
)

Add a value to the head of a queue.

Parameters:
queue The queue.
data The value to add.
Returns:
Non-zero if the value was added successfully, or zero if it was not possible to allocate the memory for the new entry.
int queue_push_tail ( Queue queue,
QueueValue  data 
)

Add a value to the tail of a queue.

Parameters:
queue The queue.
data The value to add.
Returns:
Non-zero if the value was added successfully, or zero if it was not possible to allocate the memory for the new entry.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 15 Apr 2017 for RootCore Packages by  doxygen 1.6.1