Message-Queues beta 1.1
A Message-Queues based Cpp
 
载入中...
搜索中...
未找到
XuMQ::QueueMessage类 参考

推送消息队列管理 更多...

#include <message.hpp>

XuMQ::QueueMessage 的协作图:

Public 类型

using ptr = std::shared_ptr< QueueMessage >
 

Public 成员函数

 QueueMessage (std::string &basedir, const std::string &qname)
 推送消息队列构造函数 恢复历史消息
 
void recovery ()
 恢复历史消息
 
bool insert (const BasicProperties *bp, const std::string &body, bool queue_id_durable)
 插入推送消息队列
 
MessagePtr front ()
 获取队头消息
 
bool remove (const std::string &msg_id)
 移除接收到确认ack的消息
 
size_t availableCount ()
 获取可获取消息数量
 
size_t totalCount ()
 获取总消息数量
 
size_t waitAckCount ()
 获取待确认消息数量
 
size_t durableCount ()
 获取持久化消息数量
 
void clear ()
 清空数据
 

Private 成员函数

bool garbageCollectionCheck ()
 垃圾回收条件检测
 
void garbageCollection ()
 垃圾回收
 

Private 属性

std::mutex _mutex
 互斥锁
 
std::string _qname
 队列名称
 
size_t _valid_count
 有效消息数量
 
size_t _total_count
 总消息数量
 
MessageMapper _mapper
 消息队列持久化管理类
 
std::list< MessagePtr_msgs
 待推送消息列表
 
std::unordered_map< std::string, MessagePtr_durable_msgs
 持久化消息映射表
 
std::unordered_map< std::string, MessagePtr_waitack_msgs
 待确认消息映射表
 

详细描述

推送消息队列管理

成员类型定义说明

◆ ptr

using XuMQ::QueueMessage::ptr = std::shared_ptr<QueueMessage>

构造及析构函数说明

◆ QueueMessage()

XuMQ::QueueMessage::QueueMessage ( std::string &  basedir,
const std::string &  qname 
)
inline

推送消息队列构造函数 恢复历史消息

参数
basedir基础目录
qname队列名称

成员函数说明

◆ availableCount()

size_t XuMQ::QueueMessage::availableCount ( )
inline

获取可获取消息数量

返回
可获取消息数量

◆ clear()

void XuMQ::QueueMessage::clear ( )
inline

清空数据

函数调用图:

◆ durableCount()

size_t XuMQ::QueueMessage::durableCount ( )
inline

获取持久化消息数量

返回
持久化消息数量

◆ front()

MessagePtr XuMQ::QueueMessage::front ( )
inline

获取队头消息

返回
消息指针

◆ garbageCollection()

void XuMQ::QueueMessage::garbageCollection ( )
inlineprivate

垃圾回收

函数调用图:
这是这个函数的调用关系图:

◆ garbageCollectionCheck()

bool XuMQ::QueueMessage::garbageCollectionCheck ( )
inlineprivate

垃圾回收条件检测

返回
消息总量大于2000 且 有效消息占比小于50% 返回true 否则返回false
这是这个函数的调用关系图:

◆ insert()

bool XuMQ::QueueMessage::insert ( const BasicProperties bp,
const std::string &  body,
bool  queue_id_durable 
)
inline

插入推送消息队列

参数
bp消息属性
body消息内容主体
delivery_mode持久化标志
返回
成功返回true 失败返回false
函数调用图:

◆ recovery()

void XuMQ::QueueMessage::recovery ( )
inline

恢复历史消息

函数调用图:

◆ remove()

bool XuMQ::QueueMessage::remove ( const std::string &  msg_id)
inline

移除接收到确认ack的消息

参数
msg_id消息id
返回
成功返回true 失败返回false
函数调用图:

◆ totalCount()

size_t XuMQ::QueueMessage::totalCount ( )
inline

获取总消息数量

返回
总消息数量

◆ waitAckCount()

size_t XuMQ::QueueMessage::waitAckCount ( )
inline

获取待确认消息数量

返回
待确认消息数量

类成员变量说明

◆ _durable_msgs

std::unordered_map<std::string, MessagePtr> XuMQ::QueueMessage::_durable_msgs
private

持久化消息映射表

◆ _mapper

MessageMapper XuMQ::QueueMessage::_mapper
private

消息队列持久化管理类

◆ _msgs

std::list<MessagePtr> XuMQ::QueueMessage::_msgs
private

待推送消息列表

◆ _mutex

std::mutex XuMQ::QueueMessage::_mutex
private

互斥锁

◆ _qname

std::string XuMQ::QueueMessage::_qname
private

队列名称

◆ _total_count

size_t XuMQ::QueueMessage::_total_count
private

总消息数量

◆ _valid_count

size_t XuMQ::QueueMessage::_valid_count
private

有效消息数量

◆ _waitack_msgs

std::unordered_map<std::string, MessagePtr> XuMQ::QueueMessage::_waitack_msgs
private

待确认消息映射表