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

Actor就绪状态检查器。 More...

#include <actor_base.h>

Public Member Functions

bool is_ready ()
 检查所有就绪条件是否满足。
std::optional< int32_t > hightlevel_ready ()
 获取最高优先级的就绪状态。
template<typename ... ARGS>
void set_ready (const std::string &akey, const std::function< bool()> &afun, e_hightlevel ahightlevel)
 注册就绪条件。

Detailed Description

Actor就绪状态检查器。

用于组合三种就绪状态:"数据库加载完成"、"NSP同步完成"、"自定义条件满足"。 将这些状态转换为位标志,使用is_ready()判断是否所有必需状态都已就绪。

使用场景:

  • 在向Actor分发消息前,检查Actor是否准备好处理消息
  • 确保关键数据加载完成后再处理业务逻辑
  • 支持自定义就绪条件,满足复杂业务需求

使用示例:

// 注册就绪条件
ready.set_ready("db_loaded", [](){ return db_loaded; }, e_hightlevel_db);
ready.set_ready<nproto::SomeType>("nsp_sync", [](){ return nsp_synced; }, e_hightlevel_nsp);
// 检查就绪状态
if (ready.is_ready()) {
// 处理消息
}

Member Function Documentation

◆ hightlevel_ready()

std::optional< int32_t > ngl::nready::hightlevel_ready ( )

获取最高优先级的就绪状态。

Returns
std::optional<int32_t> 最高优先级就绪状态,如果没有就绪条件则返回空

◆ is_ready()

bool ngl::nready::is_ready ( )

检查所有就绪条件是否满足。

检查所有就绪条件是否满足

Returns
bool 所有就绪条件是否满足
Return values
true所有注册的就绪检查函数均返回true
false存在未就绪的条件

◆ set_ready()

template<typename ... ARGS>
void ngl::nready::set_ready ( const std::string & akey,
const std::function< bool()> & afun,
e_hightlevel ahightlevel )
inline

注册就绪条件。

Template Parameters
ARGS可选的协议类型参数,用于设置高优先级值
Parameters
akey就绪条件名称
afun就绪检查函数
ahightlevel就绪条件优先级
Note
如果提供了ARGS参数,会自动设置协议类型的高优先级值

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