libdatatypes 0.3.2
Abstract datatypes for C.
Loading...
Searching...
No Matches
queue.h File Reference

Generic queue. More...

#include "stack.h"

Go to the source code of this file.

Macros

#define queue_new(compare, free, pool)   stack_new(compare, free, pool)
 
#define queue_init(queue, compare, free, pool)   stack_init(queue, compare, free, pool)
 
#define queue_destroy(queue)   stack_destroy(queue)
 
#define queue_free(queue)   stack_free(queue)
 
#define queue_push(queue, data)   slist_append(queue, data)
 
#define queue_pop(queue, data)   stack_pop(queue, data)
 
#define queue_head(queue, data)   stack_head(queue, data)
 
#define queue_clear(queue)   stack_clear(queue)
 
#define queue_count(queue)   stack_count(queue)
 

Typedefs

typedef SList Queue
 Generic queue.
 
typedef SList QueueItem
 Holds queue item data & pointer to next element.
 

Detailed Description

Generic queue.

Author
Sebastian Fedrau sebas.nosp@m.tian.nosp@m..fedr.nosp@m.au@g.nosp@m.mail..nosp@m.com

Definition in file queue.h.

Macro Definition Documentation

◆ queue_clear

#define queue_clear (   queue)    stack_clear(queue)
Parameters
queuea Queue

Clears a queue.

Definition at line 104 of file queue.h.

◆ queue_count

#define queue_count (   queue)    stack_count(queue)
Parameters
queuea Queue
Returns
number of items

Gets the number of stored items.

Definition at line 112 of file queue.h.

◆ queue_destroy

#define queue_destroy (   queue)    stack_destroy(queue)
Parameters
queuea Queue

Destroys all items in the queue and the queue pointer.

Definition at line 64 of file queue.h.

◆ queue_free

#define queue_free (   queue)    stack_free(queue)
Parameters
queuea Queue

Destroys all items in the queue without freeing the queue pointer.

Definition at line 71 of file queue.h.

◆ queue_head

#define queue_head (   queue,
  data 
)    stack_head(queue, data)
Parameters
queuea Queue
datalocation to store data
Returns
true if queue is not empty

Gets first element from queue without removing it.

Definition at line 97 of file queue.h.

◆ queue_init

#define queue_init (   queue,
  compare,
  free,
  pool 
)    stack_init(queue, compare, free, pool)
Parameters
queuea Queue
comparefunction to compare item data
freefunction to free item data or NULL
poola user-defined memory pool for creating/destroying QueueItems or NULL

Initializes a Queue.

Definition at line 57 of file queue.h.

◆ queue_new

#define queue_new (   compare,
  free,
  pool 
)    stack_new(compare, free, pool)
Parameters
comparefunction to compare item data
freefunction to free item data or NULL
poola user-defined memory pool for creating/destroying QueueItems or NULL
Returns
a new Queue

Creates a new Queue.

Definition at line 47 of file queue.h.

◆ queue_pop

#define queue_pop (   queue,
  data 
)    stack_pop(queue, data)
Parameters
queuea Queue
datalocation to store data
Returns
true if queue is not empty

Pops data from the queue.

Definition at line 88 of file queue.h.

◆ queue_push

#define queue_push (   queue,
  data 
)    slist_append(queue, data)
Parameters
queuea Queue
datadata to push

Pushs data onto the queue.

Definition at line 79 of file queue.h.

Typedef Documentation

◆ Queue

Generic queue.

Definition at line 31 of file queue.h.

◆ QueueItem

Holds queue item data & pointer to next element.

Definition at line 37 of file queue.h.