acl  3.5.3.0
acl_aqueue.h 文件参考
+ acl_aqueue.h 的引用(Include)关系图:
+ 此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

宏定义

#define ACL_AQUEUE_ERR_UNKNOWN   -1
 
#define ACL_AQUEUE_OK   0
 
#define ACL_AQUEUE_ERR_LOCK   1
 
#define ACL_AQUEUE_ERR_UNLOCK   2
 
#define ACL_AQUEUE_ERR_TIMEOUT   3
 
#define ACL_AQUEUE_ERR_COND_WAIT   4
 
#define ACL_AQUEUE_ERR_COND_SIGNALE   5
 

类型定义

typedef struct ACL_AQUEUE_ITEM ACL_AQUEUE_ITEM
 
typedef struct ACL_AQUEUE ACL_AQUEUE
 
typedef void(* ACL_AQUEUE_FREE_FN) (void *)
 

函数

ACL_API ACL_AQUEUEacl_aqueue_new (void)
 
ACL_API void acl_aqueue_check_owner (ACL_AQUEUE *queue, char flag)
 
ACL_API void acl_aqueue_set_owner (ACL_AQUEUE *queue, unsigned int owner)
 
ACL_API void acl_aqueue_free (ACL_AQUEUE *queue, ACL_AQUEUE_FREE_FN free_fn)
 
ACL_API void * acl_aqueue_pop (ACL_AQUEUE *queue)
 
ACL_API void * acl_aqueue_pop_timedwait (ACL_AQUEUE *queue, int tmo_sec, int tmo_usec)
 
ACL_API int acl_aqueue_push (ACL_AQUEUE *queue, void *data)
 
ACL_API int acl_aqueue_last_error (const ACL_AQUEUE *queue)
 
ACL_API void acl_aqueue_set_quit (ACL_AQUEUE *queue)
 
ACL_API int acl_aqueue_qlen (ACL_AQUEUE *queue)
 

宏定义说明

◆ ACL_AQUEUE_ERR_COND_SIGNALE

#define ACL_AQUEUE_ERR_COND_SIGNALE   5

在文件 acl_aqueue.h17 行定义.

◆ ACL_AQUEUE_ERR_COND_WAIT

#define ACL_AQUEUE_ERR_COND_WAIT   4

在文件 acl_aqueue.h16 行定义.

◆ ACL_AQUEUE_ERR_LOCK

#define ACL_AQUEUE_ERR_LOCK   1

在文件 acl_aqueue.h13 行定义.

◆ ACL_AQUEUE_ERR_TIMEOUT

#define ACL_AQUEUE_ERR_TIMEOUT   3

在文件 acl_aqueue.h15 行定义.

◆ ACL_AQUEUE_ERR_UNKNOWN

#define ACL_AQUEUE_ERR_UNKNOWN   -1

在文件 acl_aqueue.h11 行定义.

◆ ACL_AQUEUE_ERR_UNLOCK

#define ACL_AQUEUE_ERR_UNLOCK   2

在文件 acl_aqueue.h14 行定义.

◆ ACL_AQUEUE_OK

#define ACL_AQUEUE_OK   0

在文件 acl_aqueue.h12 行定义.

类型定义说明

◆ ACL_AQUEUE

typedef struct ACL_AQUEUE ACL_AQUEUE

在文件 acl_aqueue.h20 行定义.

◆ ACL_AQUEUE_FREE_FN

typedef void(* ACL_AQUEUE_FREE_FN) (void *)

在文件 acl_aqueue.h22 行定义.

◆ ACL_AQUEUE_ITEM

在文件 acl_aqueue.h19 行定义.

函数说明

◆ acl_aqueue_check_owner()

ACL_API void acl_aqueue_check_owner ( ACL_AQUEUE queue,
char  flag 
)

设置是否严格检查队列的所有者,默认为否,需要进行该检查的有 acl_aqueue_free

参数
queueACL_AQUEUE 结构指针
flag是与否

◆ acl_aqueue_free()

ACL_API void acl_aqueue_free ( ACL_AQUEUE queue,
ACL_AQUEUE_FREE_FN  free_fn 
)

释放队列对象句柄

参数
queueACL_AQUEUE 结构指针
free_fn当释放队列时, 如果该函数不为空, 则内部通过此函数将队列中的 用户注册的数据队列进行释放

◆ acl_aqueue_last_error()

ACL_API int acl_aqueue_last_error ( const ACL_AQUEUE queue)

获得上一次队列操作的错误号, define as: ACL_AQUEUE_XXX

参数
queueACL_AQUEUE 结构指针
返回
错误号

◆ acl_aqueue_new()

ACL_API ACL_AQUEUE* acl_aqueue_new ( void  )

产生一个新队列对象句柄

返回
ACL_AQUEUE 结构指针

◆ acl_aqueue_pop()

ACL_API void* acl_aqueue_pop ( ACL_AQUEUE queue)

从队列中提取一个元素, 不带超时, 一直等到有元素可用或出错

参数
queueACL_AQUEUE 结构指针
返回
用户通过 acl_aqueue_push 加入的元素指针

◆ acl_aqueue_pop_timedwait()

ACL_API void* acl_aqueue_pop_timedwait ( ACL_AQUEUE queue,
int  tmo_sec,
int  tmo_usec 
)

从队列中提取一个元素, 带超时, 一直等到有元素可用或超时或出错

参数
queueACL_AQUEUE 结构指针
tmo_sec从队列中提取元素的超时时间, 单位为秒
tmo_usec从队列中提取元素的超时时间, 单位为微秒
返回
用户通过 acl_aqueue_push 加入的元素指针

◆ acl_aqueue_push()

ACL_API int acl_aqueue_push ( ACL_AQUEUE queue,
void *  data 
)

向队列中添加一个元素

参数
queueACL_AQUEUE 结构指针
data用户的数据指针
返回
{int} 添加队列元素是否成功, 0: ok; < 0: error

◆ acl_aqueue_qlen()

ACL_API int acl_aqueue_qlen ( ACL_AQUEUE queue)

获得当前队列中队列元素的个数

参数
queue{ACL_AQUEUE*}
返回
{int} 队列中元素个数,< 0 表示出错

◆ acl_aqueue_set_owner()

ACL_API void acl_aqueue_set_owner ( ACL_AQUEUE queue,
unsigned int  owner 
)

设置队列的所有者, 只有所有者才有权释放队列, 即调用 acl_aqueue_free()

参数
queueACL_AQUEUE 结构指针
owner由线程号标识的所有者的ID号

◆ acl_aqueue_set_quit()

ACL_API void acl_aqueue_set_quit ( ACL_AQUEUE queue)

设置队列为退出状态

参数
queueACL_AQUEUE 结构指针