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

邮件数据管理类 More...

#include <mail.h>

Inheritance diagram for ngl::mails:

Public Member Functions

void related_actorid () final
 关联ActorID
virtual void initdata ()
 数据加载完成回调:从持久化邮件重建每个角色的id计数器
int32_t & maxid (i64_actorid aroleid)
 获取指定角色的邮件最大ID引用
bool addmail (i64_actorid aroleid, int atid, const std::map< int32_t, int32_t > &aitem, const std::string &acontent, const std::string &aparm)
 添加邮件(带自定义内容)
bool addmail (i64_actorid aroleid, int atid, const std::map< int32_t, int32_t > &aitem, const std::string &aparm="")
 添加邮件(使用默认内容)
bool addmail (i64_actorid aroleid, const std::map< int32_t, int32_t > &aitem, const std::string &acontent)
 添加邮件(自定义内容,无模板)
pbdb::mail * get_mail (i64_actorid aroleid, int64_t aid)
 获取指定邮件
void one_touch (i64_actorid aroleid, std::function< bool(const pbdb::mail &)> acheck, const std::function< void(int32_t)> &afun)
 批量操作邮件
bool readmail (i64_actorid aroleid, int64_t aid)
 阅读邮件
bool drawmail (i64_actorid aroleid, int64_t aid)
 领取邮件附件
bool delmail (i64_actorid aroleid, int64_t aid, bool acheckdrawread=true)
 删除邮件
bool sync_mail (i64_actorid aroleid, i64_actorid amailid, pbnet::PROBUFF_NET_MAIL_LIST_RESPONSE &apro)
 同步邮件列表到客户端

Detailed Description

邮件数据管理类

继承自tdb_mail::db_modular,管理邮件数据的增删改查操作。 支持邮件添加、阅读、附件领取、删除及批量操作。

Member Function Documentation

◆ addmail() [1/3]

bool ngl::mails::addmail ( i64_actorid aroleid,
const std::map< int32_t, int32_t > & aitem,
const std::string & acontent )
inline

添加邮件(自定义内容,无模板)

Parameters
[in]aroleid目标角色ID
[in]aitem物品ID到数量的映射
[in]acontent邮件内容
Returns
添加成功返回true

◆ addmail() [2/3]

bool ngl::mails::addmail ( i64_actorid aroleid,
int atid,
const std::map< int32_t, int32_t > & aitem,
const std::string & acontent,
const std::string & aparm )
inline

添加邮件(带自定义内容)

Parameters
[in]aroleid目标角色ID
[in]atid邮件模板ID
[in]aitem物品ID到数量的映射
[in]acontent邮件内容
[in]aparm邮件参数
Returns
添加成功返回true

◆ addmail() [3/3]

bool ngl::mails::addmail ( i64_actorid aroleid,
int atid,
const std::map< int32_t, int32_t > & aitem,
const std::string & aparm = "" )
inline

添加邮件(使用默认内容)

Parameters
[in]aroleid目标角色ID
[in]atid邮件模板ID
[in]aitem物品ID到数量的映射
[in]aparm邮件参数
Returns
添加成功返回true

◆ delmail()

bool ngl::mails::delmail ( i64_actorid aroleid,
int64_t aid,
bool acheckdrawread = true )
inline

删除邮件

Parameters
[in]aroleid目标角色ID
[in]aid邮件ID,-1表示删除所有已读已领取的邮件
[in]acheckdrawread是否检查已读已领取状态
Returns
操作成功返回true

◆ drawmail()

bool ngl::mails::drawmail ( i64_actorid aroleid,
int64_t aid )

领取邮件附件

Parameters
[in]aroleid目标角色ID
[in]aid邮件ID,-1表示一键领取所有
Returns
操作成功返回true

◆ get_mail()

pbdb::mail * ngl::mails::get_mail ( i64_actorid aroleid,
int64_t aid )
inline

获取指定邮件

Parameters
[in]aroleid目标角色ID
[in]aid邮件ID
Returns
返回邮件指针,不存在返回nullptr

◆ one_touch()

void ngl::mails::one_touch ( i64_actorid aroleid,
std::function< bool(const pbdb::mail &)> acheck,
const std::function< void(int32_t)> & afun )
inline

批量操作邮件

Parameters
[in]aroleid目标角色ID
[in]acheck邮件检查条件函数
[in]afun对匹配邮件执行的操作函数

◆ readmail()

bool ngl::mails::readmail ( i64_actorid aroleid,
int64_t aid )
inline

阅读邮件

Parameters
[in]aroleid目标角色ID
[in]aid邮件ID,-1表示标记所有未读邮件为已读
Returns
操作成功返回true

◆ sync_mail()

bool ngl::mails::sync_mail ( i64_actorid aroleid,
i64_actorid amailid,
pbnet::PROBUFF_NET_MAIL_LIST_RESPONSE & apro )
inline

同步邮件列表到客户端

Parameters
[in]aroleid目标角色ID
[in]amailid邮件ID(未使用)
[out]apro邮件列表响应消息
Returns
同步成功返回true

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