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

Public Member Functions

void updata (const gateway_socket &ainfo)
 更新网关会话信息
bool updata_socket (i16_area aarea, i32_actordataid aactordataid, i32_socket asocket)
 更新指定会话的 Socket 句柄
std::map< i16_area, std::map< i32_actordataid, gateway_socket > > & info ()
 获取会话信息映射的引用
void remove_socket (i32_socket asocket)
 通过 Socket 句柄移除关联
void remove_actorid (i64_actorid aactorid)
 通过 Actor ID 移除会话
gateway_socketget (i16_area aarea, i32_actordataid aroleid)
 通过区域和角色 ID 获取会话信息
gateway_socketget (i32_socket asocket)
 通过 Socket 句柄获取会话信息
int64_t gatewayid (i64_actorid aid)
 获取角色所在的网关 ID
void foreach (const std::function< void(gateway_socket *)> &afun)
 遍历所有会话并执行回调
void updata (const np_actor_gatewayinfo_updata &adata)
 批量更新网关会话信息

Member Function Documentation

◆ foreach()

void ngl::gateway_info::foreach ( const std::function< void(gateway_socket *)> & afun)

遍历所有会话并执行回调

Parameters
afun回调函数,参数为每个会话的指针

◆ gatewayid()

int64_t ngl::gateway_info::gatewayid ( i64_actorid aid)

获取角色所在的网关 ID

Parameters
aid角色 Actor ID
Returns
网关 ID,未找到返回 -1

◆ get() [1/2]

gateway_socket * ngl::gateway_info::get ( i16_area aarea,
i32_actordataid aroleid )

通过区域和角色 ID 获取会话信息

Parameters
aarea区域 ID
aroleid角色数据 ID
Returns
会话指针,未找到返回 nullptr

◆ get() [2/2]

gateway_socket * ngl::gateway_info::get ( i32_socket asocket)

通过 Socket 句柄获取会话信息

Parameters
asocketSocket 句柄
Returns
会话指针,未找到返回 nullptr

◆ remove_actorid()

void ngl::gateway_info::remove_actorid ( i64_actorid aactorid)

通过 Actor ID 移除会话

Parameters
aactorid角色 Actor ID

从会话映射和反向索引中完全移除该角色的会话信息。

◆ remove_socket()

void ngl::gateway_info::remove_socket ( i32_socket asocket)

通过 Socket 句柄移除关联

Parameters
asocketSocket 句柄

从反向索引中移除,并清除会话中的 Socket 引用。

◆ updata() [1/2]

void ngl::gateway_info::updata ( const gateway_socket & ainfo)

更新网关会话信息

Parameters
ainfo新的网关 Socket 信息

若已存在同区域同角色的会话且 Socket 不同,先关闭旧连接。 更新会话数据并建立 Socket 反向索引。

◆ updata() [2/2]

void ngl::gateway_info::updata ( const np_actor_gatewayinfo_updata & adata)

批量更新网关会话信息

Parameters
adata更新数据,包含待删除的 Socket/Actor ID 和待添加的会话

◆ updata_socket()

bool ngl::gateway_info::updata_socket ( i16_area aarea,
i32_actordataid aactordataid,
i32_socket asocket )

更新指定会话的 Socket 句柄

Parameters
aarea区域 ID
aactordataid角色数据 ID
asocket新的 Socket 句柄
Returns
true 更新成功,false 会话不存在

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