ngl_server 1.0
基于 Actor 模型的 C++ 服务器框架
ngl::udp_cmd Class Reference

KCP控制命令类。 More...

#include <udp_cmd.h>

Public Types

enum  ecmd {
  ecmd_connect , ecmd_connect_ret , ecmd_ping , ecmd_close ,
  ecmd_close_ret , ecmd_minlen = sizeof("ecmd*") - 1
}
 KCP控制命令枚举。 More...
using ecmd_callback = std::function<void(asio_kcp*, std::shared_ptr<kcp_endpoint>&, const std::string&)>
 命令回调函数类型。
using handle_cmd = tools::cmd<udp_cmd, ecmd, asio_kcp*, std::shared_ptr<kcp_endpoint>&, const std::string&>
 命令处理器类型。

Static Public Member Functions

static bool run_cmd (asio_kcp *ap, std::shared_ptr< kcp_endpoint > &apstruct, const char *abuf, int32_t alen)
 解析并分发在KCP流中传输的内置控制命令。
static void register_fun (ecmd anum, const ecmd_callback &afun)
 注册命令回调函数。
static bool sendcmd (asio_kcp *akcp, i32_sessionid asession, ecmd acmd, const char *ajson)
 序列化并发送一个内置控制命令。

Detailed Description

KCP控制命令类。

定义和管理KCP协议的控制命令,包括握手、关闭等操作。 主要功能包括:

  • 定义KCP控制命令类型枚举
  • 提供命令的解析和分发功能
  • 支持命令回调函数的注册
  • 提供命令的序列化和发送功能
Note
该类不可实例化,所有方法都是静态的。
使用tools::cmd模板实现命令的注册和分发。

Member Typedef Documentation

◆ ecmd_callback

using ngl::udp_cmd::ecmd_callback = std::function<void(asio_kcp*, std::shared_ptr<kcp_endpoint>&, const std::string&)>

命令回调函数类型。

Parameters
asio_kcp*KCP传输实例指针
std::shared_ptr<kcp_endpoint>&KCP端点共享指针引用
conststd::string& 命令参数JSON字符串

Member Enumeration Documentation

◆ ecmd

KCP控制命令枚举。

Enumerator
ecmd_connect 

KCP逻辑握手请求

ecmd_connect_ret 

KCP逻辑握手确认

ecmd_ping 

保留的ping命令

ecmd_close 

逻辑关闭请求

ecmd_close_ret 

逻辑关闭确认

ecmd_minlen 

命令最小长度

Member Function Documentation

◆ register_fun()

void ngl::udp_cmd::register_fun ( ecmd anum,
const ecmd_callback & afun )
static

注册命令回调函数。

Parameters
anum命令类型
afun回调函数

◆ run_cmd()

bool ngl::udp_cmd::run_cmd ( asio_kcp * ap,
std::shared_ptr< kcp_endpoint > & apstruct,
const char * abuf,
int32_t alen )
static

解析并分发在KCP流中传输的内置控制命令。

Parameters
apKCP传输实例指针
apstructKCP端点共享指针引用
abuf命令数据缓冲区
alen数据长度
Returns
解析成功返回true,否则返回false

◆ sendcmd()

bool ngl::udp_cmd::sendcmd ( asio_kcp * akcp,
i32_sessionid asession,
udp_cmd::ecmd acmd,
const char * ajson )
static

序列化并发送一个内置控制命令。

Parameters
akcpKCP传输实例指针
asession目标会话ID
acmd命令类型
ajson命令参数JSON字符串
Returns
发送成功返回true,否则返回false

The documentation for this class was generated from the following files: