ngl_server 1.0
基于 Actor 模型的 C++ 服务器框架
ngl::tools::cmd< TAG, TKEY, ARG > Class Template Reference

命令分发器类。 More...

#include <tools_cmd.h>

Static Public Member Functions

static bool empty ()
 检查命令表是否为空。
static bool function (const TKEY &akey, ARG... arg)
 执行指定键对应的函数。
static std::function< void(ARG...)> & add (const TKEY &akey)
 注册或获取指定键的回调函数引用。

Detailed Description

template<typename TAG, typename TKEY, typename ... ARG>
class ngl::tools::cmd< TAG, TKEY, ARG >

命令分发器类。

基于键值的函数注册与执行框架。通过模板参数区分不同的命令域, 支持将键值映射到回调函数,并通过键值查找执行对应函数。

Template Parameters
TAG命令域标签,用于生成不同的命令分发器类型
TKEY键类型,用于查找注册的函数
ARG回调函数的参数类型列表
Note
禁止实例化,所有方法均为静态方法。
通过不同的TAG模板参数可创建多个独立的命令域。
// 定义命令域
using console_cmd = cmd<struct ConsoleTag, std::string, int>;
// 注册命令
console_cmd::add("start") = [](int val) { ... };
// 执行命令
console_cmd::function("start", 42);

Member Function Documentation

◆ add()

template<typename TAG, typename TKEY, typename ... ARG>
std::function< void(ARG...)> & ngl::tools::cmd< TAG, TKEY, ARG >::add ( const TKEY & akey)
inlinestatic

注册或获取指定键的回调函数引用。

Parameters
akey命令键
Returns
std::function<void(ARG...)>& 回调函数引用,可直接赋值

◆ empty()

template<typename TAG, typename TKEY, typename ... ARG>
bool ngl::tools::cmd< TAG, TKEY, ARG >::empty ( )
inlinestatic

检查命令表是否为空。

Returns
true 无已注册命令
false 有已注册命令

◆ function()

template<typename TAG, typename TKEY, typename ... ARG>
bool ngl::tools::cmd< TAG, TKEY, ARG >::function ( const TKEY & akey,
ARG... arg )
inlinestatic

执行指定键对应的函数。

Parameters
akey要执行的命令键
arg传递给回调函数的参数
Returns
true 命令存在并已执行
false 命令不存在

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