ngl_server 1.0
基于 Actor 模型的 C++ 服务器框架
ngl::nsp_instance< T > Class Template Reference

NSP实例管理模板,为每个Actor维护一个单例辅助对象。 More...

#include <nsp.h>

Static Public Member Functions

static T * nclient (i64_actorid aactorid, bool adump)
 查找指定Actor的辅助对象实例。
static T * init (i64_actorid aactorid, std::shared_ptr< T > &athis)
 注册指定Actor的辅助对象实例。
static void exit (i64_actorid aactorid)
 移除指定Actor的辅助对象实例。
template<typename TDerived, typename ... TMESSAGES>
static void register_handle ()
 注册消息处理器,将指定协议消息转发到对应Actor的辅助对象。

Detailed Description

template<typename T>
class ngl::nsp_instance< T >

NSP实例管理模板,为每个Actor维护一个单例辅助对象。

用于管理NSP读/写/服务器辅助对象的生命周期。每个Actor ID对应一个实例, 支持线程安全的创建、查找和销毁操作。消息处理器通过register_handle()注册, 将协议消息转发到对应Actor的辅助对象实例。

Template Parameters
T辅助对象类型(如nsp_read、nsp_write、nsp_server)

Member Function Documentation

◆ exit()

template<typename T>
void ngl::nsp_instance< T >::exit ( i64_actorid aactorid)
inlinestatic

移除指定Actor的辅助对象实例。

Parameters
aactoridActor全局唯一标识符

◆ init()

template<typename T>
T * ngl::nsp_instance< T >::init ( i64_actorid aactorid,
std::shared_ptr< T > & athis )
inlinestatic

注册指定Actor的辅助对象实例。

Parameters
aactoridActor全局唯一标识符
athis辅助对象的shared_ptr
Returns
T* 注册后的辅助对象指针;已存在时触发断言

◆ nclient()

template<typename T>
T * ngl::nsp_instance< T >::nclient ( i64_actorid aactorid,
bool adump )
inlinestatic

查找指定Actor的辅助对象实例。

Parameters
aactoridActor全局唯一标识符
adump找不到实例时是否触发断言(调试用)
Returns
T* 辅助对象指针,不存在时返回nullptr

◆ register_handle()

template<typename T>
template<typename TDerived, typename ... TMESSAGES>
void ngl::nsp_instance< T >::register_handle ( )
inlinestatic

注册消息处理器,将指定协议消息转发到对应Actor的辅助对象。

Template Parameters
TDerived派生Actor类型
TMESSAGES要注册的协议消息类型列表
Note
每个具体NSP辅助类型仅注册一次,退出后的延迟数据包会被容忍并直接丢弃

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