zeroSquitto – Rev 1

Subversion Repositories:
Rev:
/*************************************************************************/
/* Queue structure definition.                                           */
/*************************************************************************/
typedef struct {
  int size;
  char **store;
  int head, tail;
} Queue;

/*************************************************************************/
/* Queue operations.                                                     */
/*************************************************************************/
extern Queue *queueCreate(int size);
extern void queueEnqueue(Queue *q, char *e);
extern char *queueDequeue(Queue *q);
extern Queue *queueClear(Queue *q);
extern void queuePrint(Queue *q);
extern char *queueInlinePrint(Queue *q);

/*************************************************************************/
/* Queue macros.                                                         */
/*************************************************************************/
/* Determines if the queue is empty. */
#define queueIsEmpty(q) (q->tail == q->head)
/* Returns the size of the allocated queue. */
#define queueSize(q) q->size
/* Returns the number of items in the queue. */
#define queueCount(q) q->tail - q->head