s_ring_buffer库是一个采用MIT License协议开源的、小巧的、纯C语言的、ring_buffer实现,读写锁分离设计,核心实现代码平台无关(抽出了平台相关的适配层), 可以方便的进行移植、使用。

仓库地址:https://github.com/smallerxuan/s_ring_buffer.git

s_ring_buffer用户接口

s_ring_buffer包含如下用户接口:`

1、构造器接口 s_ring_buffer_constructor()

2、析构器接口 s_ring_buffer_destructor()

3、清除接口 s_ring_buffer_clear()

4、元素写入接口s_ring_buffer_write_elements()

5、元素读取接口 s_ring_buffer_read_elements()

6、容量获取接口 s_ring_buffer_cap_get()

7、可读元素数量获取接口 s_ring_buffer_could_read_num_get()

7、可写元素数量获取接口 s_ring_buffer_could_write_num_get()

s_ring_buffer的移植、适配

s_ring_buffer源码中的 s_ring_buffer_platform.h、s_ring_buffer_platform.c文件包含了s_ring_buffer的平台相关 数据类型、宏、抽象接口,主要包括:

  1. 内存操作相关宏:

s_ring_buff_malloc、s_ring_buff_free、s_ring_buff_memcpy

2、休眠相关宏 s_ring_buff_sleep

3、锁类型定义 s_ring_buffer_lock_t

4、锁操作相关接口:

   s_ring_buffer_lock()、s_ring_buffer_trylock()、s_ring_buffer_unlock()

用户在移植、适配时,只需要对上述内容进行适配、实现,便能方便的在任意平台使用。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐