#ifndef ARC_STD_QUEUE_H_ #define ARC_STD_QUEUE_H_ #ifdef __cplusplus extern "C" { #endif #include /** * @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_