archeus/include/arc/std/queue.h
2025-03-28 04:30:45 -06:00

57 lines
983 B
C

#ifndef ARC_STD_QUEUE_H_
#define ARC_STD_QUEUE_H_
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
/**
* @brief a queue type
*/
typedef struct ARC_Queue ARC_Queue;
/**
* @brief creates ARC_Queue type
*
* @param queue ARC_Queue to initialize
*/
void ARC_Queue_Create(ARC_Queue **queue);
/**
* @brief destroyes ARC_Queue type
*/
void ARC_Queue_Destroy(ARC_Queue *queue);
/**
* @brief pushes value to end of queue
*
* @param queue ARC_Queue to push to
* @param data data that is being pushed
*/
void ARC_Queue_Push(ARC_Queue *queue, void *data);
/**
* @brief pops the front off of the ARC_Queue
*
* @param queue ARC_Queue to remove from
*
* @return the poped data from the queue as a void *
*/
void *ARC_Queue_Pop(ARC_Queue *queue);
/**
* @brief gets size of queue
*
* @param vector ARC_Queue to get size from
*
* @return the queues size
*/
uint32_t ARC_Queue_Size(ARC_Queue *queue);
#ifdef __cplusplus
}
#endif
#endif // !ARC_STD_QUEUE_H_