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

Actor数据库客户端基类,定义数据库操作接口。 More...

#include <ndbclient.h>

Inheritance diagram for ngl::ndbclient_base:
ngl::ndbclient< ENUM, TDATA, TACTOR > ngl::ndbclient< ENUM, T, TDerived > ngl::ndbclient< DBTYPE, TDBTAB, TACTOR >

Public Member Functions

virtual bool isload ()=0
 检查数据是否已加载完成。
virtual void load ()=0
 从数据库加载数据。
virtual void savedb ()=0
 将修改保存到数据库。
virtual void deldb ()=0
 从数据库删除数据。
virtual bool create (const nguid &aid)=0
 创建新的数据记录。
virtual void init (nmanage_dbclient *amdb, actor_base *aactor, const nguid &aid)=0
 初始化数据库客户端。
virtual void clear_modified ()=0
 清除所有修改标记。
virtual void nscript_push_data ()=0
 将数据推送到脚本运行时。
pbdb::ENUM_DB type () const
 获取数据库类型。

Protected Member Functions

 ndbclient_base (pbdb::ENUM_DB atype)

Detailed Description

Actor数据库客户端基类,定义数据库操作接口。

该类是数据库客户端的抽象基类,定义了数据库操作的生命周期接口。 所有具体的数据库客户端(如MySQL、PostgreSQL、Redis)都必须实现这些接口。

生命周期:

  1. init() - 初始化客户端,绑定到Actor和数据库管理器
  2. load() - 从数据库加载数据
  3. savedb() - 将修改保存到数据库
  4. deldb() - 从数据库删除数据
  5. clear_modified() - 清除修改标记
  6. nscript_push_data() - 将数据推送到脚本运行时

Member Function Documentation

◆ clear_modified()

virtual void ngl::ndbclient_base::clear_modified ( )
pure virtual

◆ create()

virtual bool ngl::ndbclient_base::create ( const nguid & aid)
pure virtual

创建新的数据记录。

Parameters
aid记录ID
Returns
bool 创建是否成功

Implemented in ngl::ndbclient< DBTYPE, TDBTAB, TACTOR >, ngl::ndbclient< ENUM, T, TDerived >, and ngl::ndbclient< ENUM, TDATA, TACTOR >.

◆ deldb()

virtual void ngl::ndbclient_base::deldb ( )
pure virtual

从数据库删除数据。

Note
删除标记为待删除的数据

Implemented in ngl::ndbclient< DBTYPE, TDBTAB, TACTOR >, ngl::ndbclient< ENUM, T, TDerived >, and ngl::ndbclient< ENUM, TDATA, TACTOR >.

◆ init()

virtual void ngl::ndbclient_base::init ( nmanage_dbclient * amdb,
actor_base * aactor,
const nguid & aid )
pure virtual

初始化数据库客户端。

Parameters
amdb数据库管理器指针
aactor拥有此客户端的Actor指针
aid目标ID

Implemented in ngl::ndbclient< DBTYPE, TDBTAB, TACTOR >, ngl::ndbclient< ENUM, T, TDerived >, and ngl::ndbclient< ENUM, TDATA, TACTOR >.

◆ isload()

virtual bool ngl::ndbclient_base::isload ( )
pure virtual

检查数据是否已加载完成。

Returns
bool 是否已加载

Implemented in ngl::ndbclient< DBTYPE, TDBTAB, TACTOR >, ngl::ndbclient< ENUM, T, TDerived >, and ngl::ndbclient< ENUM, TDATA, TACTOR >.

◆ load()

virtual void ngl::ndbclient_base::load ( )
pure virtual

从数据库加载数据。

Note
异步操作,通过回调通知完成

Implemented in ngl::ndbclient< DBTYPE, TDBTAB, TACTOR >, ngl::ndbclient< ENUM, T, TDerived >, and ngl::ndbclient< ENUM, TDATA, TACTOR >.

◆ nscript_push_data()

virtual void ngl::ndbclient_base::nscript_push_data ( )
pure virtual

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

Note
用于脚本扩展和热更新

Implemented in ngl::ndbclient< DBTYPE, TDBTAB, TACTOR >, ngl::ndbclient< ENUM, T, TDerived >, and ngl::ndbclient< ENUM, TDATA, TACTOR >.

◆ savedb()

virtual void ngl::ndbclient_base::savedb ( )
pure virtual

将修改保存到数据库。

Note
只保存标记为脏的数据

Implemented in ngl::ndbclient< DBTYPE, TDBTAB, TACTOR >, ngl::ndbclient< ENUM, T, TDerived >, and ngl::ndbclient< ENUM, TDATA, TACTOR >.

◆ type()

pbdb::ENUM_DB ngl::ndbclient_base::type ( ) const
inline

获取数据库类型。

Returns
pbdb::ENUM_DB 数据库类型枚举

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