acl  3.5.3.0
acl_fifo.h 文件参考
#include "acl_define.h"
#include "acl_slice.h"
#include "acl_iterator.h"
+ acl_fifo.h 的引用(Include)关系图:
+ 此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

struct  ACL_FIFO_INFO
 
struct  ACL_FIFO_ITER
 
struct  ACL_FIFO
 

宏定义

#define acl_fifo_push   acl_fifo_push_back
 
#define acl_fifo_push_info   acl_fifo_push_info_back
 
#define acl_fifo_pop   acl_fifo_pop_front
 
#define ACL_FIFO_ITER_VALUE(iter)   ((iter).ptr->data)
 
#define acl_fifo_iter_value   ACL_FIFO_ITER_VALUE
 
#define ACL_FIFO_FOREACH(iter, fifo_ptr)   for ((iter).ptr = (fifo_ptr)->head; (iter).ptr; (iter).ptr = (iter).ptr->next)
 
#define acl_fifo_foreach   ACL_FIFO_FOREACH
 
#define ACL_FIFO_FOREACH_REVERSE(iter, fifo_ptr)   for ((iter).ptr = (fifo_ptr)->tail; (iter).ptr; (iter).ptr = (iter).ptr->prev)
 
#define acl_fifo_foreach_reverse   ACL_FIFO_FOREACH_REVERSE
 

类型定义

typedef struct ACL_FIFO_INFO ACL_FIFO_INFO
 
typedef struct ACL_FIFO_ITER ACL_FIFO_ITER
 
typedef struct ACL_FIFO ACL_FIFO
 

函数

ACL_API void acl_fifo_init (ACL_FIFO *fifo)
 
ACL_API ACL_FIFOacl_fifo_new (void)
 
ACL_API ACL_FIFOacl_fifo_new1 (ACL_SLICE_POOL *slice)
 
ACL_API int acl_fifo_delete (ACL_FIFO *fifo, const void *data)
 
ACL_API void acl_fifo_delete_info (ACL_FIFO *fifo, ACL_FIFO_INFO *info)
 
ACL_API void acl_fifo_free (ACL_FIFO *fifo, void(*free_fn)(void *))
 
ACL_API void acl_fifo_free2 (ACL_FIFO *fifo, void(*free_fn)(ACL_FIFO_INFO *))
 
ACL_API ACL_FIFO_INFOacl_fifo_push_back (ACL_FIFO *fifo, void *data)
 
ACL_API void acl_fifo_push_info_back (ACL_FIFO *fifo, ACL_FIFO_INFO *info)
 
ACL_API ACL_FIFO_INFOacl_fifo_push_front (ACL_FIFO *fifo, void *data)
 
ACL_API void * acl_fifo_pop_front (ACL_FIFO *fifo)
 
ACL_API ACL_FIFO_INFOacl_fifo_pop_info (ACL_FIFO *fifo)
 
ACL_API void * acl_fifo_pop_back (ACL_FIFO *fifo)
 
ACL_API void * acl_fifo_head (ACL_FIFO *fifo)
 
ACL_API ACL_FIFO_INFOacl_fifo_head_info (ACL_FIFO *fifo)
 
ACL_API void * acl_fifo_tail (ACL_FIFO *fifo)
 
ACL_API ACL_FIFO_INFOacl_fifo_tail_info (ACL_FIFO *fifo)
 
ACL_API int acl_fifo_size (ACL_FIFO *fifo)
 

宏定义说明

◆ ACL_FIFO_FOREACH

#define ACL_FIFO_FOREACH (   iter,
  fifo_ptr 
)    for ((iter).ptr = (fifo_ptr)->head; (iter).ptr; (iter).ptr = (iter).ptr->next)

在文件 acl_fifo.h205 行定义.

◆ acl_fifo_foreach

#define acl_fifo_foreach   ACL_FIFO_FOREACH

在文件 acl_fifo.h207 行定义.

◆ ACL_FIFO_FOREACH_REVERSE

#define ACL_FIFO_FOREACH_REVERSE (   iter,
  fifo_ptr 
)    for ((iter).ptr = (fifo_ptr)->tail; (iter).ptr; (iter).ptr = (iter).ptr->prev)

在文件 acl_fifo.h239 行定义.

◆ acl_fifo_foreach_reverse

#define acl_fifo_foreach_reverse   ACL_FIFO_FOREACH_REVERSE

在文件 acl_fifo.h241 行定义.

◆ ACL_FIFO_ITER_VALUE

#define ACL_FIFO_ITER_VALUE (   iter)    ((iter).ptr->data)

获得当前 iter 所包含的对象地址

参数
iter{ACL_FIFO_ITER}

在文件 acl_fifo.h158 行定义.

◆ acl_fifo_iter_value

#define acl_fifo_iter_value   ACL_FIFO_ITER_VALUE

在文件 acl_fifo.h159 行定义.

◆ acl_fifo_pop

#define acl_fifo_pop   acl_fifo_pop_front

在文件 acl_fifo.h119 行定义.

◆ acl_fifo_push

#define acl_fifo_push   acl_fifo_push_back

在文件 acl_fifo.h108 行定义.

◆ acl_fifo_push_info

#define acl_fifo_push_info   acl_fifo_push_info_back

在文件 acl_fifo.h110 行定义.

类型定义说明

◆ ACL_FIFO

typedef struct ACL_FIFO ACL_FIFO

在文件 acl_fifo.h14 行定义.

◆ ACL_FIFO_INFO

typedef struct ACL_FIFO_INFO ACL_FIFO_INFO

在文件 acl_fifo.h12 行定义.

◆ ACL_FIFO_ITER

typedef struct ACL_FIFO_ITER ACL_FIFO_ITER

在文件 acl_fifo.h13 行定义.

函数说明

◆ acl_fifo_delete()

ACL_API int acl_fifo_delete ( ACL_FIFO fifo,
const void *  data 
)

从队列中删除与所给值相同的对象

参数
fifo{ACL_FIFO*}
data{const void*}
示例
F:/download/acl/help/include/acl/stdlib/acl_fifo.h.

◆ acl_fifo_delete_info()

ACL_API void acl_fifo_delete_info ( ACL_FIFO fifo,
ACL_FIFO_INFO info 
)

◆ acl_fifo_free()

ACL_API void acl_fifo_free ( ACL_FIFO fifo,
void(*)(void *)  free_fn 
)

释放以堆分配的队列对象

参数
fifo{ACL_FIFO*}
free_fn{void (*)(void*)}, 如果该函数指针不为空则 用来释放队列中动态分配的对象
示例
F:/download/acl/help/include/acl/stdlib/acl_fifo.h.

◆ acl_fifo_free2()

ACL_API void acl_fifo_free2 ( ACL_FIFO fifo,
void(*)(ACL_FIFO_INFO *)  free_fn 
)

◆ acl_fifo_head()

ACL_API void* acl_fifo_head ( ACL_FIFO fifo)

返回队列中头部的动态对象

参数
fifo{ACL_FIFO*}
返回
{void*}, 如果为空,则表示队列为空
示例
F:/download/acl/help/include/acl/stdlib/acl_fifo.h.

◆ acl_fifo_head_info()

ACL_API ACL_FIFO_INFO* acl_fifo_head_info ( ACL_FIFO fifo)

◆ acl_fifo_init()

ACL_API void acl_fifo_init ( ACL_FIFO fifo)

◆ acl_fifo_new()

ACL_API ACL_FIFO* acl_fifo_new ( void  )

从内存堆中分配一个队列对象

返回
{ACL_FIFO*}
示例
F:/download/acl/help/include/acl/stdlib/acl_fifo.h.

◆ acl_fifo_new1()

ACL_API ACL_FIFO* acl_fifo_new1 ( ACL_SLICE_POOL slice)

从内存堆中分配一个队列对象并传内存池对象做为分配器

参数
slice{ACL_SLICE_POOL*}
返回
{ACL_FIFO*}
示例
F:/download/acl/help/include/acl/stdlib/acl_fifo.h.

◆ acl_fifo_pop_back()

ACL_API void* acl_fifo_pop_back ( ACL_FIFO fifo)

从队列中以后进先出方式弹出一个动态对象, 同时该对象从队列中删除

参数
fifo{ACL_FIFO*}
返回
{void*}, 如果为空,则表示队列为空
示例
F:/download/acl/help/include/acl/stdlib/acl_fifo.h.

◆ acl_fifo_pop_front()

ACL_API void* acl_fifo_pop_front ( ACL_FIFO fifo)

从队列中以先进先出方式弹出一个动态对象, 同时将该对象从队列中删除

参数
fifo{ACL_FIFO*}
返回
{void*}, 如果为空,则表示队列为空
示例
F:/download/acl/help/include/acl/stdlib/acl_fifo.h.

◆ acl_fifo_pop_info()

ACL_API ACL_FIFO_INFO* acl_fifo_pop_info ( ACL_FIFO fifo)

◆ acl_fifo_push_back()

ACL_API ACL_FIFO_INFO* acl_fifo_push_back ( ACL_FIFO fifo,
void *  data 
)

向队列中添加一个动态堆对象

参数
fifo{ACL_FIFO*}
data{void*} 动态对象
返回
{ACL_FIFO_INFO*} 如果 data 非空则返回队列中的新添加对象, 否则返回 NULL
示例
F:/download/acl/help/include/acl/stdlib/acl_fifo.h.

◆ acl_fifo_push_front()

ACL_API ACL_FIFO_INFO* acl_fifo_push_front ( ACL_FIFO fifo,
void *  data 
)

◆ acl_fifo_push_info_back()

ACL_API void acl_fifo_push_info_back ( ACL_FIFO fifo,
ACL_FIFO_INFO info 
)

◆ acl_fifo_size()

ACL_API int acl_fifo_size ( ACL_FIFO fifo)

返回队列中动态对象的总个数

参数
fifo{ACL_FIFO*}
返回
{int}, >= 0
示例
F:/download/acl/help/include/acl/stdlib/acl_fifo.h.

◆ acl_fifo_tail()

ACL_API void* acl_fifo_tail ( ACL_FIFO fifo)

返回队列中尾部的动态对象

参数
fifo{ACL_FIFO*}
返回
{void*}, 如果为空,则表示队列为空
示例
F:/download/acl/help/include/acl/stdlib/acl_fifo.h.

◆ acl_fifo_tail_info()

ACL_API ACL_FIFO_INFO* acl_fifo_tail_info ( ACL_FIFO fifo)