脚本管理器,提供后端无关的工厂和分发辅助函数。
More...
#include <nscript.h>
|
|
using | script_ptr = std::unique_ptr<nscript_obj> |
| | 脚本对象智能指针类型。
|
|
| 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) |
| | 收集在脚本状态中标记为已删除的行。
|
脚本管理器,提供后端无关的工厂和分发辅助函数。
该类是Actor模块与脚本引擎之间的统一接口层,负责:
- 创建脚本实例(工厂方法)
- 将操作分发到正确的脚本后端
- 处理类型转换和空指针检查
◆ 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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:
- E:/GitHub/ngl_server/public/cpp/actor/actor_base/core/nscript.h