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

脚本管理器,提供后端无关的工厂和分发辅助函数。 More...

#include <nscript.h>

Public Types

using script_ptr = std::unique_ptr<nscript_obj>
 脚本对象智能指针类型。

Static Public Member Functions

static script_ptr make (enscript atype, const char *asubdirectory, const char *ascript)
 后端无关的工厂方法,创建并初始化脚本实例。
template<typename T>
static bool init_sysdata (enscript atype, nscript_obj *anscript, const T &asys)
 将系统数据推送到脚本运行时。
template<typename T>
static bool data_push (enscript atype, nscript_obj *anscript, const char *aname, const char *asource, const T &adata, bool aedit)
 通知脚本层一行数据库记录已创建/更新。
static bool db_loadfinish (enscript atype, nscript_obj *anscript)
 通知脚本层初始数据库加载已完成。
template<typename T>
static bool handle (enscript atype, nscript_obj *anscript, const char *aname, const T &adata)
 将一个Actor消息分发到脚本层。
static bool data_del (enscript atype, nscript_obj *anscript, const char *aname, int64_t adataid)
 通知脚本层一行已被删除。
template<typename T>
static bool data_checkout (enscript atype, nscript_obj *anscript, const char *aname, i64_actorid adataid, T &adata)
 从脚本层拉取可能已编辑的单行。
template<typename T>
static bool data_checkout (enscript atype, nscript_obj *anscript, const char *aname, std::map< int64_t, T > &adata)
 从脚本层拉取一个表的所有已编辑行。
static bool data_checkdel (enscript atype, nscript_obj *anscript, const char *aname, int64_t adataid)
 检查一行是否在脚本状态中标记为已删除。
static bool data_checkdel (enscript atype, nscript_obj *anscript, const char *aname, std::vector< int64_t > &adelids)
 收集在脚本状态中标记为已删除的行。

Detailed Description

脚本管理器,提供后端无关的工厂和分发辅助函数。

该类是Actor模块与脚本引擎之间的统一接口层,负责:

  • 创建脚本实例(工厂方法)
  • 将操作分发到正确的脚本后端
  • 处理类型转换和空指针检查

Member Function Documentation

◆ data_checkdel() [1/2]

bool ngl::nscript_manage::data_checkdel ( enscript atype,
nscript_obj * anscript,
const char * aname,
int64_t adataid )
inlinestatic

检查一行是否在脚本状态中标记为已删除。

Parameters
atype脚本引擎类型
anscript脚本对象指针
aname表名
adataid数据ID
Returns
bool 该行是否被标记为已删除

◆ data_checkdel() [2/2]

bool ngl::nscript_manage::data_checkdel ( enscript atype,
nscript_obj * anscript,
const char * aname,
std::vector< int64_t > & adelids )
inlinestatic

收集在脚本状态中标记为已删除的行。

Parameters
atype脚本引擎类型
anscript脚本对象指针
aname表名
adataid输出参数,收集已删除的数据ID列表
Returns
bool 操作是否成功

◆ data_checkout() [1/2]

template<typename T>
bool ngl::nscript_manage::data_checkout ( enscript atype,
nscript_obj * anscript,
const char * aname,
i64_actorid adataid,
T & adata )
inlinestatic

从脚本层拉取可能已编辑的单行。

Template Parameters
T数据类型
Parameters
atype脚本引擎类型
anscript脚本对象指针
aname表名
adataid数据ID
adata输出参数,接收编辑后的数据
Returns
bool 操作是否成功

◆ data_checkout() [2/2]

template<typename T>
bool ngl::nscript_manage::data_checkout ( enscript atype,
nscript_obj * anscript,
const char * aname,
std::map< int64_t, T > & adata )
inlinestatic

从脚本层拉取一个表的所有已编辑行。

Template Parameters
T数据类型
Parameters
atype脚本引擎类型
anscript脚本对象指针
aname表名
adata输出参数,接收ID->数据的映射
Returns
bool 操作是否成功

◆ data_del()

bool ngl::nscript_manage::data_del ( enscript atype,
nscript_obj * anscript,
const char * aname,
int64_t adataid )
inlinestatic

通知脚本层一行已被删除。

Parameters
atype脚本引擎类型
anscript脚本对象指针
aname表名
adataid数据ID
Returns
bool 操作是否成功

◆ data_push()

template<typename T>
bool ngl::nscript_manage::data_push ( enscript atype,
nscript_obj * anscript,
const char * aname,
const char * asource,
const T & adata,
bool aedit )
inlinestatic

通知脚本层一行数据库记录已创建/更新。

Template Parameters
T数据类型
Parameters
atype脚本引擎类型
anscript脚本对象指针
aname表名
asource数据来源标识
adata数据内容
aedit是否为编辑操作
Returns
bool 操作是否成功

◆ db_loadfinish()

bool ngl::nscript_manage::db_loadfinish ( enscript atype,
nscript_obj * anscript )
inlinestatic

通知脚本层初始数据库加载已完成。

Parameters
atype脚本引擎类型
anscript脚本对象指针
Returns
bool 操作是否成功

◆ handle()

template<typename T>
bool ngl::nscript_manage::handle ( enscript atype,
nscript_obj * anscript,
const char * aname,
const T & adata )
inlinestatic

将一个Actor消息分发到脚本层。

Template Parameters
T消息数据类型
Parameters
atype脚本引擎类型
anscript脚本对象指针
aname消息名称
adata消息数据
Returns
bool 操作是否成功

◆ init_sysdata()

template<typename T>
bool ngl::nscript_manage::init_sysdata ( enscript atype,
nscript_obj * anscript,
const T & asys )
inlinestatic

将系统数据推送到脚本运行时。

Template Parameters
T系统数据类型
Parameters
atype脚本引擎类型
anscript脚本对象指针
asys系统数据
Returns
bool 操作是否成功

◆ make()

script_ptr ngl::nscript_manage::make ( enscript atype,
const char * asubdirectory,
const char * ascript )
inlinestatic

后端无关的工厂方法,创建并初始化脚本实例。

Parameters
atype脚本引擎类型
asubdirectory脚本子目录
ascript脚本文件名
Returns
script_ptr 脚本实例指针,创建失败返回nullptr

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