ngl_server 1.0
基于 Actor 模型的 C++ 服务器框架
ngl::tools::varint_impl Struct Reference

Varint编码内部实现结构体 More...

Static Public Member Functions

static uint64_t zigzag64e (int64_t an)
 64位ZigZag编码
static int64_t zigzag64d (uint64_t an)
 64位ZigZag解码
static uint32_t zigzag32e (int32_t an)
 32位ZigZag编码
static int32_t zigzag32d (uint32_t an)
 32位ZigZag解码

Static Public Attributes

static constexpr int32_t g_64max = 10
 64位varint最大编码长度(字节数)
static constexpr int32_t g_32max = 5
 32位varint最大编码长度(字节数)

Detailed Description

Varint编码内部实现结构体

封装ZigZag编码/解码函数和varint长度常量

Note
仅作为内部实现细节,不对外暴露

Member Function Documentation

◆ zigzag32d()

int32_t ngl::tools::varint_impl::zigzag32d ( uint32_t an)
inlinestatic

32位ZigZag解码

将无符号32位整数解码为有符号32位整数 解码规则:(an >> 1) ^ -(an & 1)

Parameters
an待解码的无符号32位整数
Returns
解码后的有符号32位整数
See also
zigzag32e

◆ zigzag32e()

uint32_t ngl::tools::varint_impl::zigzag32e ( int32_t an)
inlinestatic

32位ZigZag编码

将有符号32位整数编码为无符号32位整数 编码规则:(an << 1) ^ (an >> 31)

Parameters
an待编码的有符号32位整数
Returns
编码后的无符号32位整数
Note
ZigZag编码使小负数(如-1, -2)编码后数值较小,从而减少varint编码长度
See also
zigzag32d

◆ zigzag64d()

int64_t ngl::tools::varint_impl::zigzag64d ( uint64_t an)
inlinestatic

64位ZigZag解码

将无符号64位整数解码为有符号64位整数 解码规则:(an >> 1) ^ -(an & 1)

Parameters
an待解码的无符号64位整数
Returns
解码后的有符号64位整数
See also
zigzag64e

◆ zigzag64e()

uint64_t ngl::tools::varint_impl::zigzag64e ( int64_t an)
inlinestatic

64位ZigZag编码

将有符号64位整数编码为无符号64位整数 编码规则:(an << 1) ^ (an >> 63)

Parameters
an待编码的有符号64位整数
Returns
编码后的无符号64位整数
Note
ZigZag编码使小负数(如-1, -2)编码后数值较小,从而减少varint编码长度
See also
zigzag64d

The documentation for this struct was generated from the following file: