ngl_server 1.0
基于 Actor 模型的 C++ 服务器框架
ngl::rankset< ETYPE > Class Template Reference

排名集合模板实现 More...

#include <rankset.h>

Inheritance diagram for ngl::rankset< ETYPE >:
ngl::rankset_base

Public Member Functions

 rankset ()
 构造函数
virtual void erase (rank_item *aitem)
 删除条目
virtual void insert (rank_item *aitem)
 插入条目
virtual void foreach (const std::function< void(int32_t, const rank_item *)> &afun)
 遍历所有条目
int32_t get_showcount ()
 获取实际显示条目数
virtual int32_t getpage (i64_actorid aroleid, int32_t apage, const std::function< void(int32_t, const rank_item *)> &afun)
 分页获取条目
virtual int32_t role_rank (i64_actorid aroleid)
 获取角色排名
Public Member Functions inherited from ngl::rankset_base
 rankset_base (pbdb::eranklist aranktype)
 构造函数
virtual ~rankset_base ()=default
 虚析构函数
const tab_ranklisttab ()
 获取排行榜配置表
int32_t showitem ()
 获取显示条目数
int32_t everypagecount ()
 获取每页条目数
int32_t maxitem ()
 获取最大条目数
int32_t minvalue ()
 获取最低上榜数值

Detailed Description

template<pbdb::eranklist ETYPE>
class ngl::rankset< ETYPE >

排名集合模板实现

Template Parameters
ETYPE排行榜类型

使用std::set维护有序排名,支持分页缓存和角色排名查询。 当数据变化时通过版本号机制延迟刷新分页索引。

Member Function Documentation

◆ erase()

template<pbdb::eranklist ETYPE>
virtual void ngl::rankset< ETYPE >::erase ( rank_item * aitem)
inlinevirtual

删除条目

Parameters
[in]aitem要删除的排行榜条目

Implements ngl::rankset_base.

◆ foreach()

template<pbdb::eranklist ETYPE>
virtual void ngl::rankset< ETYPE >::foreach ( const std::function< void(int32_t, const rank_item *)> & afun)
inlinevirtual

遍历所有条目

Parameters
[in]afun回调函数,参数为序号和条目指针

Implements ngl::rankset_base.

◆ get_showcount()

template<pbdb::eranklist ETYPE>
int32_t ngl::rankset< ETYPE >::get_showcount ( )
inline

获取实际显示条目数

Returns
返回配置显示数与实际条目数的较小值

◆ getpage()

template<pbdb::eranklist ETYPE>
virtual int32_t ngl::rankset< ETYPE >::getpage ( i64_actorid aroleid,
int32_t apage,
const std::function< void(int32_t, const rank_item *)> & afun )
inlinevirtual

分页获取条目

Parameters
[in]aroleid请求者角色ID
[in]apage页码(从1开始)
[in]afun回调函数
Returns
总显示条目数

Implements ngl::rankset_base.

◆ insert()

template<pbdb::eranklist ETYPE>
virtual void ngl::rankset< ETYPE >::insert ( rank_item * aitem)
inlinevirtual

插入条目

Parameters
[in]aitem要插入的排行榜条目

低于最低值不插入,超过最大条目数时淘汰末位

Implements ngl::rankset_base.

◆ role_rank()

template<pbdb::eranklist ETYPE>
virtual int32_t ngl::rankset< ETYPE >::role_rank ( i64_actorid aroleid)
inlinevirtual

获取角色排名

Parameters
[in]aroleid角色ID
Returns
排名值,未上榜返回-1

Implements ngl::rankset_base.


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