ngl_server 1.0
基于 Actor 模型的 C++ 服务器框架
nactortype.h File Reference

Actor类型枚举(ENUM_ACTOR)和单例/动态分类辅助函数。 More...

#include "actor/generated/pb/db.pb.h"
#include "tools/serialize/ndefine.h"
#include "actor/tab/csvtable.h"
#include "tools/log/nlog.h"
#include <cstdint>
#include <string>
#include <map>

Classes

class  ngl::enum_actor
 用于从单例/系统范围分配的Actor种类的辅助类。 More...
class  ngl::type_enum< T, ENUMT >
 将C++类型绑定到枚举值的模板类。 More...

Typedefs

template<typename TACTOR>
using ngl::nactor_type = type_enum<TACTOR, ENUM_ACTOR>
 将Actor类绑定到ENUM_ACTOR枚举值的类型别名。

Enumerations

enum  ngl::ENUM_ACTOR {
  ngl::ACTOR_NONE = -1 , ngl::ACTOR_ROLE = 1 , ngl::ACTOR_ROBOT = 2 , ngl::ACTOR_LOG = 3 ,
  ngl::ACTOR_EXAMPLE_GUESS_NUMBER = 4 , ngl::ACTOR_TESTAI = 5 , ngl::ACTOR_SIGNLE_START = 1000 , ngl::ACTOR_SERVER = ACTOR_SIGNLE_START ,
  ngl::ACTOR_CLIENT = 1001 , ngl::ACTOR_LOGIN = 1002 , ngl::ACTOR_GATEWAY = 1003 , ngl::ACTOR_GATEWAY_C2G = 1004 ,
  ngl::ACTOR_GATEWAY_G2C = 1005 , ngl::ACTOR_CREATE = 1006 , ngl::ACTOR_ROLE_MANAGE = 1007 , ngl::ACTOR_KCP = 1008 ,
  ngl::ACTOR_ROBOT_MANAGE = 1009 , ngl::ACTOR_CSVSERVER = 1010 , ngl::ACTOR_CSVCLIENT = 1011 , ngl::ACTOR_NOTICE = 1012 ,
  ngl::ACTOR_GM = 1013 , ngl::ACTOR_GMCLIENT = 1014 , ngl::ACTOR_MAIL = 1015 , ngl::ACTOR_CHAT = 1016 ,
  ngl::ACTOR_RANKLIST = 1017 , ngl::ACTOR_ACTIVITY_MANAGE = 1018 , ngl::ACTOR_BRIEF = 1019 , ngl::ACTOR_KEYVALUE = 1020 ,
  ngl::ACTOR_FAMILY = 1021 , ngl::ACTOR_FRIENDS = 1022 , ngl::ACTOR_EXAMPLE_MATCH = 1023 , ngl::ACTOR_EXAMPLE_MANAGE = 1024 ,
  ngl::ACTOR_TESTLUA = 1025 , ngl::ACTOR_TESTLUA2 = 1026 , ngl::ACTOR_DEMO01 = 1027 , ngl::ACTOR_DEMO01_MANAGER = 1028 ,
  ACTOR_DEMO03 = 1029 , ACTOR_DEMO03_MANAGER = 1030 , ngl::ACTOR_EVENTS = 10000 , ngl::ACTOR_EVENTS_MAX_COUNT = ACTOR_EVENTS + 1000 ,
  ngl::ACTOR_DB = 20000 , ngl::ACTOR_SIGNLE_FINISH = static_cast<int>(ACTOR_DB) + static_cast<int>(pbdb::ENUM_DB_COUNT) , ngl::ACTOR_COUNT = ACTOR_SIGNLE_FINISH
}
 全局Actor类型注册表。 More...

Functions

ENUM_ACTOR ngl::db_enum (pbdb::ENUM_DB TDBTAB_TYPE)
 将数据库表枚举映射到对应的数据库Actor类型。
void ngl::auto_actor ()
 将所有Actor类绑定到对应的枚举值。
void ngl::tprotocol_customs ()
 注册自定义协议ID。
void ngl::tprotocol_forward_pb ()
 注册生成的转发协议封装。
void ngl::event_register ()
 注册Actor生命周期和事件处理器。

Variables

template<typename T, typename ENUMT>
ENUMT ngl::type_enum< T, ENUMT >::m_type = type_enum<T, ENUMT>::enum_null()

Detailed Description

Actor类型枚举(ENUM_ACTOR)和单例/动态分类辅助函数。

Typedef Documentation

◆ nactor_type

template<typename TACTOR>
using ngl::nactor_type = type_enum<TACTOR, ENUM_ACTOR>

将Actor类绑定到ENUM_ACTOR枚举值的类型别名。

Template Parameters
TACTORActor类型

Enumeration Type Documentation

◆ ENUM_ACTOR

全局Actor类型注册表。

值被序列化到路由、nguid标识符和协议元数据中,因此数值ID是稳定的。 范围划分:

  • [0, 999]:动态Actor(角色、机器人等)
  • [1000, 9999]:单例/系统Actor
  • [10000, 10999]:事件Actor
  • [20000, ...]:数据库Actor
Enumerator
ACTOR_NONE 

无效/未初始化的Actor类型。

ACTOR_ROLE 

核心长生命周期Actor,通常每个逻辑拥有者存在一个。

ACTOR_ROBOT 

每个机器人/测试客户端一个Actor。

ACTOR_LOG 

日志Actor。

ACTOR_EXAMPLE_GUESS_NUMBER 

示例游戏玩法Actor(猜数字)。

ACTOR_TESTAI 

测试AI行为树Actor。

ACTOR_SIGNLE_START 

单例Actor范围起始标记。

ACTOR_SERVER 

服务端地址/路由管理器。

ACTOR_CLIENT 

客户端地址/路由管理器。

ACTOR_LOGIN 

登录协调器。

ACTOR_GATEWAY 

网关Actor。

ACTOR_GATEWAY_C2G 

网关 [客户端]->[游戏服] 方向转发。

ACTOR_GATEWAY_G2C 

网关 [游戏服]->[客户端] 方向转发。

ACTOR_CREATE 

指定[服务器]创建[Actor]的协调器。

ACTOR_ROLE_MANAGE 

负责创建actor_role的管理器。

ACTOR_KCP 

KCP协议Actor。

ACTOR_ROBOT_MANAGE 

管理机器人的Actor。

ACTOR_CSVSERVER 

CSV服务器Actor。

ACTOR_CSVCLIENT 

CSV客户端Actor。

ACTOR_NOTICE 

公告Actor。

ACTOR_GM 

GM管理Actor(世界服)。

ACTOR_GMCLIENT 

GM客户端Actor(世界服本服)。

ACTOR_MAIL 

邮件Actor。

ACTOR_CHAT 

聊天Actor。

ACTOR_RANKLIST 

排行榜Actor。

ACTOR_ACTIVITY_MANAGE 

活动管理Actor。

ACTOR_BRIEF 

简要摘要信息Actor。

ACTOR_KEYVALUE 

共享键值对Actor。

ACTOR_FAMILY 

公会Actor。

ACTOR_FRIENDS 

好友Actor。

ACTOR_EXAMPLE_MATCH 

示例匹配Actor。

ACTOR_EXAMPLE_MANAGE 

示例Actor管理器。

ACTOR_TESTLUA 

测试Lua脚本Actor。

ACTOR_TESTLUA2 

测试Lua脚本Actor2。

ACTOR_DEMO01 

Demo01位置同步与AOI Actor。

ACTOR_DEMO01_MANAGER 

Demo01多地图实例管理器。

ACTOR_EVENTS 

事件Actor范围起始。

ACTOR_EVENTS_MAX_COUNT 

事件Actor上限(最多1000个事件类型)。

ACTOR_DB 

数据库Actor范围起始。

ACTOR_SIGNLE_FINISH 

单例Actor范围结束标记(数据库Actor结束)。

ACTOR_COUNT 

Actor类型总数上限。

Function Documentation

◆ auto_actor()

void ngl::auto_actor ( )

将所有Actor类绑定到对应的枚举值。

Note
在系统启动时调用,注册所有Actor类型映射

◆ db_enum()

ENUM_ACTOR ngl::db_enum ( pbdb::ENUM_DB TDBTAB_TYPE)
inline

将数据库表枚举映射到对应的数据库Actor类型。

Parameters
TDBTAB_TYPE数据库表枚举值
Returns
ENUM_ACTOR 对应的数据库Actor类型

◆ event_register()

void ngl::event_register ( )

注册Actor生命周期和事件处理器。

Note
在系统启动时调用,注册所有Actor的事件回调

◆ tprotocol_customs()

void ngl::tprotocol_customs ( )

注册自定义协议ID。

Note
在系统启动时调用,注册非protobuf生成的协议

◆ tprotocol_forward_pb()

void ngl::tprotocol_forward_pb ( )

注册生成的转发协议封装。

Note
在系统启动时调用,注册protobuf生成的转发协议