#ifndef TCQ_H
#define TCQ_H
#include "tc_types.h"
typedef struct {
TC_STRUCT *queue;
int size;
int _len;
int _rlen;
int start, end;
int rend;
int allFull;
} TC_QUEUE_STRUCT;
extern int tcqCreate(TC_QUEUE_STRUCT * const tcq, int _size,
TC_STRUCT * const tcSpace);
extern int tcqDelete(TC_QUEUE_STRUCT * const tcq);
extern int tcqInit(TC_QUEUE_STRUCT * const tcq);
extern int tcqPut(TC_QUEUE_STRUCT * const tcq, TC_STRUCT const * const tc);
extern int tcqPopBack(TC_QUEUE_STRUCT * const tcq);
extern int tcqPop(TC_QUEUE_STRUCT * const tcq);
extern int tcqRemove(TC_QUEUE_STRUCT * const tcq, int n);
extern int tcqBackStep(TC_QUEUE_STRUCT * const tcq);
extern int tcqLen(TC_QUEUE_STRUCT const * const tcq);
extern TC_STRUCT * tcqItem(TC_QUEUE_STRUCT const * const tcq, int n);
extern TC_STRUCT * tcqLast(TC_QUEUE_STRUCT const * const tcq);
extern int tcqFull(TC_QUEUE_STRUCT const * const tcq);
#endif