|
ngl_server 1.0
基于 Actor 模型的 C++ 服务器框架
|
序列化宏、类型别名和协议ID定义。 More...
#include "tools/script/lua/serialize_lua.h"#include "tools/serialize/nserialize.h"#include "tools/tab/json/njson.h"#include "lua.hpp"#include <atomic>#include <string>#include <tuple>#include <array>Macros | |
| #define | DEF_PROTOCOL(...) |
| 定义协议结构体的序列化方法。 | |
| #define | DEF_RCSV(...) |
| 定义CSV读取方法。 | |
| #define | DEF_WCSV(...) |
| 定义CSV写入方法。 | |
| #define | NUMARGS(...) |
| 计算可变参数宏的参数个数。 | |
| #define | DEF_PARMNAME_(ISMG, ...) |
| 定义参数名称数组。 | |
| #define | DEF_PARMNAME(...) |
| 定义参数名称数组(去除"m_"前缀)。 | |
| #define | DEF_JSONFUNCTION_SPECIAL(...) |
| 定义JSON序列化方法(特殊版本)。 | |
| #define | DEF_JSONFUNCTION(...) |
| 定义JSON序列化方法。 | |
| #define | DEF_NLUA_FUNCTION(...) |
| 定义Lua绑定方法。 | |
| #define | DEF_NLUA_SPECIAL_FUNCTION(KEYS, ...) |
| 定义Lua绑定方法(特殊版本)。 | |
| #define | DPROTOCOL(NAME, ...) |
| 定义完整的协议结构体。 | |
序列化宏、类型别名和协议ID定义。
包含用于简化序列化、JSON、Lua绑定和协议定义的宏。 这些宏提供了统一的接口,用于自动生成序列化/反序列化代码。
| #define DEF_JSONFUNCTION | ( | ... | ) |
定义JSON序列化方法。
为结构体自动生成json_pop和json_push方法,用于JSON序列化/反序列化。 使用parms()方法获取参数名称。
| ... | 要序列化的成员变量列表 |
| #define DEF_JSONFUNCTION_SPECIAL | ( | ... | ) |
定义JSON序列化方法(特殊版本)。
为结构体自动生成json_pop和json_push方法,用于JSON序列化/反序列化。 不使用parms()方法,直接传递参数。
| ... | 要序列化的成员变量列表 |
| #define DEF_NLUA_FUNCTION | ( | ... | ) |
定义Lua绑定方法。
为结构体自动生成nlua_push和nlua_pop方法,用于Lua绑定。 使用parms()方法获取参数名称。
| ... | 要绑定的成员变量列表 |
| #define DEF_NLUA_SPECIAL_FUNCTION | ( | KEYS, | |
| ... ) |
定义Lua绑定方法(特殊版本)。
为结构体自动生成nlua_push和nlua_pop方法,用于Lua绑定。 使用自定义的KEYS参数名称。
| KEYS | 参数名称列表 |
| ... | 要绑定的成员变量列表 |
| #define DEF_PARMNAME | ( | ... | ) |
定义参数名称数组(去除"m_"前缀)。
为结构体自动生成parms()方法,返回成员变量名称数组,自动去除"m_"前缀。
| ... | 成员变量列表 |
| #define DEF_PARMNAME_ | ( | ISMG, | |
| ... ) |
定义参数名称数组。
为结构体自动生成parms()方法,返回成员变量名称数组。 支持去除"m_"前缀(当ISMG为true时)。
| ISMG | 是否去除"m_"前缀 |
| ... | 成员变量列表 |
| #define DEF_PROTOCOL | ( | ... | ) |
定义协议结构体的序列化方法。
为协议结构体自动生成push_format、pop_format和bytes_format方法。 这些方法使用nserialize引擎进行序列化/反序列化操作。
| ... | 要序列化的成员变量列表 |
| #define DEF_RCSV | ( | ... | ) |
定义CSV读取方法。
为结构体自动生成readcsv方法,用于从CSV文件读取数据。
| ... | 要读取的成员变量列表 |
| #define DEF_WCSV | ( | ... | ) |
定义CSV写入方法。
为结构体自动生成writecsv方法,用于将数据写入CSV文件。
| ... | 要写入的成员变量列表 |
| #define DPROTOCOL | ( | NAME, | |
| ... ) |
定义完整的协议结构体。
为协议结构体自动生成所有必要的序列化方法,包括:
| NAME | 协议名称(未使用,仅为可读性) |
| ... | 要序列化的成员变量列表 |
| #define NUMARGS | ( | ... | ) |
计算可变参数宏的参数个数。
使用模板元编程技术,在编译期计算可变参数的数量。
| ... | 可变参数列表 |