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

序列化工具结构体,提供统一的序列化接口。 More...

#include <nserialize.h>

Static Public Member Functions

template<typename ... ARGS>
static bool push (serialize_push *aser, const ARGS &... aargs)
 序列化多个数据到缓冲区。
template<typename ... ARGS>
static bool pop (serialize_pop *aser, ARGS &... aargs)
 从缓冲区反序列化多个数据。
template<typename ... ARGS>
static void bytes (serialize_byte *aser, const ARGS &... aargs)
 计算多个数据的序列化字节大小。

Detailed Description

序列化工具结构体,提供统一的序列化接口。

该结构体提供了统一的序列化/反序列化接口,支持:

  • 多参数序列化
  • 自动类型推导
  • 错误处理和回滚
  • 字节大小计算

使用示例:

// 序列化多个数据
serialize_push ser(buffer, sizeof(buffer));
nserialize::push(&ser, data1, data2, data3);
// 反序列化多个数据
serialize_pop deser(buffer, sizeof(buffer));
nserialize::pop(&deser, data1, data2, data3);
// 计算字节大小
serialize_byte byte_counter;
nserialize::bytes(&byte_counter, data1, data2, data3);
size_t total_size = byte_counter.pos();

Member Function Documentation

◆ bytes()

template<typename ... ARGS>
void ngl::ser::nserialize::bytes ( serialize_byte * aser,
const ARGS &... aargs )
inlinestatic

计算多个数据的序列化字节大小。

Template Parameters
ARGS数据类型包
Parameters
aser字节计数器指针
aargs要计算的数据

◆ pop()

template<typename ... ARGS>
bool ngl::ser::nserialize::pop ( serialize_pop * aser,
ARGS &... aargs )
inlinestatic

从缓冲区反序列化多个数据。

Template Parameters
ARGS数据类型包
Parameters
aser反序列化器指针
aargs要反序列化的数据引用
Returns
bool 反序列化是否成功

◆ push()

template<typename ... ARGS>
bool ngl::ser::nserialize::push ( serialize_push * aser,
const ARGS &... aargs )
inlinestatic

序列化多个数据到缓冲区。

Template Parameters
ARGS数据类型包
Parameters
aser序列化器指针
aargs要序列化的数据
Returns
bool 序列化是否成功
Note
如果序列化失败,会自动回滚到初始位置

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