Ngtcp2 学习笔记 (一)

本篇主要是一些比较基础的部分,代码量比较短小。

ngtcp2_str

字符串相关
ngtcp2_array 定长数组,有头指针及数组长度
ngtcp2_cpymem 内存拷贝
ngtcp2_encode_hex 将 uint_8 数据串编码为 16 进制字符串

ngtcp2_cid

cid 相关,标识一个 endpoint
ngtcp2_cid cid 结构体,定义在 ngtcp2.h 中,一个定长数组和长度组成
ngtcp2_cid_zero cid 长度置 0
ngtcp2_cid_init 初始化 cid, 从内存拷贝
ngtcp2_cid_eq 判断 cid 相等,内部 memcmp
ngtcp2_cid_empty 判断 cid 是否为空

ngtcp2_buf

buffer 相关
ngtcp2_buf buf 结构体,四个指针指向 buf 本身的起始 和 数据的起始
ngtcp2_buf_init 初始化 buffer, 不存在内存分配,单纯指针赋值
ngtcp2_buf_left 返回 buffer 剩余可写长度
ngtcp2_buf_len 返回 buffer 剩余未读长度

ngtcp2_mem

memeroy 操作相关,提供内存申请释放
ngtcp2_mem 定义在 ngtcp2.h 中,用户自定义 maclloc realloc calloc free 函数
ngtcp2_mem_default 获取默认的 ngtcp2_mem
ngtcp2_mem_malloc malloc 包装函数
ngtcp2_mem_free free 包装函数
ngtcp2_mem_free2 自定义 free 包装函数
ngtcp2_mem_calloc calloc 包装函数
ngtcp2_mem_realloc realloc 包装函数

ngtcp2_err

error 相关
ngtcp2_lib_error 定义在 ngtcp2.h
ngtcp2_transport_error 定义在 ngtcp2.h

ngtcp2_log

log 相关
ngtcp2_log 包含自定义输出函数,时间戳等

ngtcp2_range

表示一个左闭右开的区间
ngtcp2_range 包含左右两端
ngtcp2_range_init 初始化
ngtcp2_range_intersect 返回两个区间的交集
ngtcp2_range_len 返回区间长度
ngtcp2_range_eq 判断区间是否相等
ngtcp2_range_cut 从 a 中减去 b 区间,默认 b 包含于 a
ngtcp2_range_not_after 判断一个区间的右端小于等于另一个的右端

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.