12345678910111213141516171819202122232425 |
- #ifndef CORE_QUEUE_H
- #define CORE_QUEUE_H
- #include "core/Types.h"
- struct QueueT {
- size_t writeIndex;
- size_t readIndex;
- size_t length;
- size_t capacity;
- size_t dataSize;
- void* data;
- };
- typedef struct QueueT Queue;
- void initQueue(Queue* r, size_t capacity, size_t dataSize);
- void destroyQueue(Queue* r);
- void pushQueueData(Queue* r, const void* data);
- #define pushQueueType(l, type, ...) pushQueueData(l, &(type){__VA_ARGS__})
- void* getQueueIndex(const Queue* r, size_t index);
- #define getTypedQueueIndex(r, index, type) (*(type*)getQueueIndex(r, index))
- void clearQueue(Queue* r);
- void popQueueData(Queue* r);
- #endif
|