wbuffer_t

概述

Write Buffer。用于数据打包。

示例:

  1. uint8_t buff[128];
  2. wbuffer_t wbuffer;
  3. rbuffer_t rbuffer;
  4. const char* str = NULL;
  5. wbuffer_init(&wbuffer, buff, sizeof(buff));
  6. wbuffer_write_string(&wbuffer, "hello awtk");
  7. rbuffer_init(&rbuffer, wbuffer.data, wbuffer.cursor);
  8. rbuffer_read_string(&rbuffer, &str);
  1. wbuffer_t wbuffer;
  2. wbuffer_init_extendable(&wbuffer);
  3. wbuffer_write_string(&wbuffer, "hello awtk");
  4. wbuffer_deinit(&wbuffer);

如果初始化为extendable,则最后需要调用wbuffer_deinit释放资源。


函数

函数名称 说明
wbuffer_deinit 释放资源。
wbuffer_init 初始wbuffer对象。
wbuffer_init_extendable 初始wbuffer对象,自动扩展buffer,使用完成后需要调用wbuffer_deinit释放资源。
wbuffer_skip 跳过指定的长度。
wbuffer_write_binary 写入指定长度的二进制数据。
wbuffer_write_float 写入float数据。
wbuffer_write_string 写入字符串。
wbuffer_write_uint16 写入uint16数据。
wbuffer_write_uint32 写入uint32数据。
wbuffer_write_uint8 写入uint8数据。

属性

属性名称 类型 说明
capacity uint32_t 缓存区最大容量。
cursor uint32_t 当前写入位置。
data uint8_t* 缓存区。
extendable bool_t 容量是否可扩展。

wbuffer_deinit 函数


  • 函数功能:

释放资源。

  • 函数原型:
  1. ret_t wbuffer_deinit (wbuffer_t* wbuffer);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
wbuffer wbuffer_t* wbuffer对象。

wbuffer_init 函数


  • 函数功能:

初始wbuffer对象。

  • 函数原型:
  1. wbuffer_t* wbuffer_init (wbuffer_t* wbuffer, uint8_t* data, uint16_t capacity);
  • 参数说明:
参数 类型 说明
返回值 wbuffer_t* wbuffer对象本身。
wbuffer wbuffer_t* wbuffer对象。
data uint8_t* 缓冲区。
capacity uint16_t 缓冲区的容量。

wbuffer_init_extendable 函数


  • 函数功能:

初始wbuffer对象,自动扩展buffer,使用完成后需要调用wbuffer_deinit释放资源。

  • 函数原型:
  1. wbuffer_t* wbuffer_init_extendable (wbuffer_t* wbuffer);
  • 参数说明:
参数 类型 说明
返回值 wbuffer_t* wbuffer对象本身。
wbuffer wbuffer_t* wbuffer对象。

wbuffer_skip 函数


  • 函数功能:

跳过指定的长度。

  • 函数原型:
  1. ret_t wbuffer_skip (wbuffer_t* wbuffer, int32_t delta);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
wbuffer wbuffer_t* wbuffer对象。
delta int32_t 跳过的偏移量,正数往前负数往回跳。

wbuffer_write_binary 函数


  • 函数功能:

写入指定长度的二进制数据。

  • 函数原型:
  1. ret_t wbuffer_write_binary (wbuffer_t* wbuffer, void* data, uint32_t size);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
wbuffer wbuffer_t* wbuffer对象。
data void* 写入的数据。
size uint32_t 写入的数据长度。

wbuffer_write_float 函数


  • 函数功能:

写入float数据。

  • 函数原型:
  1. ret_t wbuffer_write_float (wbuffer_t* wbuffer, float_t value);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
wbuffer wbuffer_t* wbuffer对象。
value float_t 写入的数据。

wbuffer_write_string 函数


  • 函数功能:

写入字符串。

  • 函数原型:
  1. ret_t wbuffer_write_string (wbuffer_t* wbuffer, char* data);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
wbuffer wbuffer_t* wbuffer对象。
data char* 写入的字符串。

wbuffer_write_uint16 函数


  • 函数功能:

写入uint16数据。

  • 函数原型:
  1. ret_t wbuffer_write_uint16 (wbuffer_t* wbuffer, uint16_t value);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
wbuffer wbuffer_t* wbuffer对象。
value uint16_t 写入的数据。

wbuffer_write_uint32 函数


  • 函数功能:

写入uint32数据。

  • 函数原型:
  1. ret_t wbuffer_write_uint32 (wbuffer_t* wbuffer, uint32_t value);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
wbuffer wbuffer_t* wbuffer对象。
value uint32_t 写入的数据。

wbuffer_write_uint8 函数


  • 函数功能:

写入uint8数据。

  • 函数原型:
  1. ret_t wbuffer_write_uint8 (wbuffer_t* wbuffer, uint8_t value);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
wbuffer wbuffer_t* wbuffer对象。
value uint8_t 写入的数据。

capacity 属性


缓存区最大容量。

  • 类型:uint32_t
特性 是否支持
可直接读取
可直接修改

cursor 属性


当前写入位置。

  • 类型:uint32_t
特性 是否支持
可直接读取
可直接修改

data 属性


缓存区。

  • 类型:uint8_t*
特性 是否支持
可直接读取
可直接修改

extendable 属性


容量是否可扩展。

  • 类型:bool_t
特性 是否支持
可直接读取
可直接修改