|
ngl_server 1.0
基于 Actor 模型的 C++ 服务器框架
|
模板化的数据库模块类。 More...
#include <ndb_modular.h>
Public Member Functions | |
| ndbclient< ENUM, TDATA, TACTOR > * | dbclient () |
| 返回类型化的数据库客户端指针。 | |
| void | foreach (const std::function< void(const data_modified< TDATA > &)> &afun) |
| 遍历此模块拥有的每个已加载行。 | |
| data_modified< TDATA > * | find (const std::function< bool(const data_modified< TDATA > &)> &afun) |
| 查找第一个匹配自定义谓词的行。 | |
| std::map< nguid, data_modified< TDATA > > & | data () |
| 将完整的已加载数据集作为映射暴露。 | |
| const std::map< nguid, data_modified< TDATA > > & | data () const |
| 将完整的已加载数据集作为只读映射暴露。 | |
| std::map< nguid, data_modified< TDATA > > & | foreach_data () |
| 返回用于遍历的数据映射。 | |
| data_modified< TDATA > & | get () |
| 返回绑定到拥有者Actor ID的行。 | |
| data_modified< TDATA > * | find (nguid aid) |
| 通过Actor GUID查找特定行。 | |
| data_modified< TDATA > & | get (nguid aid) |
| 按Actor GUID获取或惰性创建一行。 | |
| void | erase (nguid aid) |
| 标记一行待删除。 | |
| data_modified< TDATA > * | db () |
| 当此模块绑定到单个Actor ID时返回主行。 | |
| TACTOR * | nactor () |
| 类型化访问拥有者Actor。 | |
| void | clear () |
| 删除此模块当前跟踪的所有行。 | |
| void | init_data () final |
| 从ndb_component到派生initdata()实现的适配钩子。 | |
| virtual void | initdata ()=0 |
| 子类必须实现的数据初始化钩子。 | |
| ndbclient< ENUM, TDATA, TACTOR > * | get_actor_dbclient () |
| 返回类型化的数据库客户端指针。 | |
| data_modified< TDATA > & | add (i64_actorid aid, const TDATA &adbtab) |
| 添加或更新一行数据。 | |
| void | remove (i64_actorid aid) |
| 删除指定ID的数据行。 | |
| Public Member Functions inherited from ngl::ndb_component | |
| virtual | ~ndb_component ()=default |
| 虚析构函数。 | |
| void | set (actor_base *aactor) |
| 将此组件附加到其宿主Actor并注册数据库生命周期回调。 | |
| actor_base * | get_actor () |
| 返回宿主Actor。 | |
| i64_actorid | get_actorid () const |
| 返回当前与此组件关联的Actor ID。 | |
| pbdb::ENUM_DB | type () const |
| 返回此组件服务的数据库枚举。 | |
| actor_base * | actorbase () |
| get_actor()的便捷别名。 | |
| void | set_actorid (i64_actorid aactorid) |
| 覆盖用作数据库查找键的Actor ID。 | |
| virtual void | related_actorid () |
| 默认Actor ID绑定:使用拥有者Actor的GUID。 | |
| void | init () |
| 完成Actor/dbclient绑定并将dbclient注册到actor_base。 | |
| void | create () |
| 为当前Actor ID创建初始数据库记录。 | |
| void | create (const nguid &aid) |
| 为指定Actor ID创建初始数据库记录。 | |
| ndbclient_base * | dbclientbase () |
| 返回原始dbclient指针。 | |
Protected Member Functions | |
| ndb_modular () | |
| 构造函数,初始化数据库组件。 | |
| virtual | ~ndb_modular ()=default |
| 虚析构函数。 | |
| Protected Member Functions inherited from ngl::ndb_component | |
| ndb_component (pbdb::ENUM_DB aenum) | |
| 构造函数,指定数据库类型。 | |
| void | set_dbclient (ndbclient_base *andbclient) |
| 绑定此组件使用的具体dbclient。 | |
| ndbclient_base * | get_dbclient () |
| 访问已绑定的dbclient,不改变所有权。 | |
模板化的数据库模块类。
为特定数据类型提供类型安全的数据库操作。 继承自ndb_component,提供具体的数据操作方法。
| ENUM | 数据库枚举标识符 |
| TDATA | 数据行类型 |
| TACTOR | 拥有者Actor类型 |
|
inline |
添加或更新一行数据。
| aid | Actor ID |
| adbtab | 数据内容 |
|
inline |
将完整的已加载数据集作为映射暴露。
|
inline |
将完整的已加载数据集作为只读映射暴露。
|
inline |
当此模块绑定到单个Actor ID时返回主行。
|
inline |
返回类型化的数据库客户端指针。
|
inline |
标记一行待删除。
| aid | Actor GUID |
|
inline |
查找第一个匹配自定义谓词的行。
| afun | 谓词函数,返回true表示匹配 |
|
inline |
通过Actor GUID查找特定行。
| aid | Actor GUID |
|
inline |
遍历此模块拥有的每个已加载行。
| afun | 遍历函数,接收每行的常量引用 |
|
inline |
返回用于遍历的数据映射。
|
inline |
返回绑定到拥有者Actor ID的行。
|
inline |
按Actor GUID获取或惰性创建一行。
| aid | Actor GUID |
|
inline |
返回类型化的数据库客户端指针。
|
finalvirtual |
从ndb_component到派生initdata()实现的适配钩子。
Reimplemented from ngl::ndb_component.
|
pure virtual |
子类必须实现的数据初始化钩子。
在数据库加载完成后调用,用于执行特定于Actor的数据初始化。
|
inline |
类型化访问拥有者Actor。
|
inline |
删除指定ID的数据行。
| aid | Actor ID |