seg-database-c/inc/queue.h
2026-07-10 17:53:18 +08:00

40 lines
791 B
C

#ifndef _QUEUE_H_
#define _QUEUE_H_
typedef struct
{
int* (*function)(void*, void*);
void *arg;
void *device;
}task_t;
typedef struct
{
task_t* task; //任务
int head; //队列头
int tail; //队列尾
int length; //队列长度
int capacity; //队列总容量
int status; //句柄状态
}queue_t;
/*初始化队列*/
queue_t* queue_init(int capacity);
/*销毁队列*/
void queue_destory(queue_t* queue);
/*清空队列*/
void queue_clear(queue_t* queue);
/*获取队列长度*/
int queue_getlength(queue_t* queue);
/*入队*/
int queue_enqueue(queue_t* queue, int* (*function)(void* arg, void *device), void *arg, void *device);
/*出队*/
int queue_dequeue(queue_t* queue, int* (*function)(void* arg, void *device), void *arg, void *device);
#endif