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

排行榜数据库组件 More...

#include <ranklist.h>

Inheritance diagram for ngl::ranklist:

Public Member Functions

 ranklist ()
 构造排行榜数据库组件,初始化默认排行榜类型
void related_actorid () final
 关联ActorID,设置组件的ActorID为自动生成的唯一标识
bool update_value (pbdb::eranklist atype, rank_item &litem, const pbdb::db_brief &abrief, bool afirstsynchronize)
 更新单个排行榜类型的值
bool update_value (const pbdb::db_brief &abrief, bool afirstsynchronize)
 更新玩家在所有排行榜中的排名
void add_data (const pbdb::db_ranklist &aitem)
 从数据库记录添加排行榜条目
virtual void initdata ()
 初始化排行榜数据,加载所有排行榜数据到内存
bool ranklist_get (i64_actorid aroleid, pbdb::eranklist atype, int32_t apage, pbnet::PROBUFF_NET_RANKLIST_RESPONSE &apro)
 分页获取排行榜数据
void ranklist_sync (i64_actorid aroleid, pbdb::eranklist atype, int32_t aactivityid, int32_t apage)
 同步排行榜数据到客户端
void rank_get (int32_t arankid, std::vector< int64_t > &arolerank)
 获取排行榜所有角色ID
void rank_remove (int32_t arankid)
 移除排行榜类型
void rank_add (int32_t arankid)
 添加排行榜类型

Detailed Description

排行榜数据库组件

管理排行榜数据的数据库操作,包括排行榜的初始化、更新和查询。 支持多种排行榜类型(等级、金币等),每种类型使用独立的rankset排序。 通过tdb_brief监听玩家数据变化,实时更新排行榜排名。 支持动态添加/删除排行榜类型和分页查询。

Member Function Documentation

◆ add_data()

void ngl::ranklist::add_data ( const pbdb::db_ranklist & aitem)

从数据库记录添加排行榜条目

Parameters
[in]aitem排行榜数据库记录

◆ rank_add()

void ngl::ranklist::rank_add ( int32_t arankid)

添加排行榜类型

Parameters
[in]arankid排行榜类型ID

◆ rank_get()

void ngl::ranklist::rank_get ( int32_t arankid,
std::vector< int64_t > & arolerank )

获取排行榜所有角色ID

Parameters
[in]arankid排行榜类型ID
[out]arolerank角色ID列表

◆ rank_remove()

void ngl::ranklist::rank_remove ( int32_t arankid)

移除排行榜类型

Parameters
[in]arankid排行榜类型ID

◆ ranklist_get()

bool ngl::ranklist::ranklist_get ( i64_actorid aroleid,
pbdb::eranklist atype,
int32_t apage,
pbnet::PROBUFF_NET_RANKLIST_RESPONSE & apro )

分页获取排行榜数据

Parameters
[in]aroleid请求者角色ID
[in]atype排行榜类型
[in]apage页码
[out]apro排行榜响应protobuf消息
Returns
操作成功返回true

◆ ranklist_sync()

void ngl::ranklist::ranklist_sync ( i64_actorid aroleid,
pbdb::eranklist atype,
int32_t aactivityid,
int32_t apage )

同步排行榜数据到客户端

Parameters
[in]aroleid目标玩家角色ID
[in]atype排行榜类型
[in]aactivityid活动ID(预留)
[in]apage页码

◆ update_value() [1/2]

bool ngl::ranklist::update_value ( const pbdb::db_brief & abrief,
bool afirstsynchronize )

更新玩家在所有排行榜中的排名

Parameters
[in]abrief玩家简要信息
[in]afirstsynchronize是否为首次同步
Returns
操作成功返回true

◆ update_value() [2/2]

bool ngl::ranklist::update_value ( pbdb::eranklist atype,
rank_item & litem,
const pbdb::db_brief & abrief,
bool afirstsynchronize )

更新单个排行榜类型的值

Parameters
[in]atype排行榜类型
[in,out]litem排行榜条目
[in]abrief玩家简要信息
[in]afirstsynchronize是否为首次同步
Returns
数据有变化返回true

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