From 7ddf686201d052e7c55d622dddd62b7e2ede880d Mon Sep 17 00:00:00 2001 From: Jack Sangdahl <0x6A73@pm.me> Date: Tue, 2 Apr 2024 23:09:33 -0600 Subject: pa6 --- pa6_threaded_resolver/array.h | 62 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 pa6_threaded_resolver/array.h (limited to 'pa6_threaded_resolver/array.h') diff --git a/pa6_threaded_resolver/array.h b/pa6_threaded_resolver/array.h new file mode 100644 index 0000000..adceca8 --- /dev/null +++ b/pa6_threaded_resolver/array.h @@ -0,0 +1,62 @@ +// Jack Sangdahl +// CSCI3753 SP24 +// PA6 Threaded Resolver +#include +#include +#include + +typedef struct { + void *value; +} node; + +typedef struct { + node *data; + int size; + int maxsize; + int front; + int back; +} queue; + +/** + * @brief initialise the queue + * @param q + * @param size + * @return int + */ +int queue_init(queue *q, int size); + +/** + * @brief return size of queue + * @param q + * @return int + */ +int queue_size(queue *q); + +/** + * @brief return true if que size is + * greater than ARRAY_SIZE. false otherwise + * @param q + * @return bool + */ +bool queue_full(queue *q); + +/** + * @brief add element to fifo queue. block when full + * @param q + * @param val + * @return int + */ +int queue_push(queue *q, void *val); + +/** + * @brief return top element of queue in fifo order + * return null pointer if queue empty + * @param q + */ +void *queue_pop(queue *q); + +/** + * @brief free queue's resources + * @param q + */ +void queue_free(queue *q); -- cgit v1.2.3