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

客户端信道类 更多...

#include <channel.hpp>

Public 类型

using ptr = std::shared_ptr< Channel >
 信道句柄
 
using ptr = std::shared_ptr< Channel >
 

Public 成员函数

 Channel (const muduo::net::TcpConnectionPtr &conn, const ProtobufCodecPtr &codec)
 构造函数
 
 ~Channel ()
 
bool openChannel ()
 创建信道请求
 
void closeChannel ()
 关闭信道请求
 
bool declareExchange (const std::string &name, ExchangeType type, bool durable, bool auto_delete, google::protobuf::Map< std::string, std::string > &args)
 声明交换机
 
void deleteExchange (const std::string &name)
 删除指定交换机
 
bool declareQueue (const std::string &qname, bool qdurable, bool qexclusive, bool qauto_delete, google::protobuf::Map< std::string, std::string > &qargs)
 声明消息队列
 
void deleteQueue (const std::string &qname)
 删除消息队列
 
bool queueBind (const std::string &ename, const std::string &qname, const std::string &key)
 添加绑定信息
 
void queueUnBind (const std::string &ename, const std::string &qname)
 解除绑定信息
 
void basicPublish (const std::string &ename, const BasicProperties *bp, const std::string &body)
 向指定交换机发布消息
 
void basicAck (const std::string &msg_id)
 应答消息
 
bool basicConsume (const std::string &tag, const std::string &qname, bool auto_ack, const ConsumerCallback &cb)
 订阅消息
 
void basicCancel ()
 取消订阅
 
void putBasicResponse (const basicResponsePtr &resp)
 连接收到基础响应后向映射表添加
 
void consume (const basicConsumeResponsePtr &resp)
 连接收到推送消息 找到对应的消费者对象 通过回调函数进行消息处理
 
std::string cid ()
 
 Channel (const std::string &id, const VirtualHost::ptr &host, const ConsumerManager::ptr &cmp, const ProtobufCodecPtr &codec, const muduo::net::TcpConnectionPtr &conn, const threadpool::ptr &pool)
 信道构造函数
 
 ~Channel ()
 析构函数
 
void declareExchange (const declareExchangeRequestPtr &req)
 声明交换机请求处理函数
 
void deleteExchange (const deleteExchangeRequestPtr &req)
 删除交换机请求处理函数
 
void declareQueue (const declareQueueRequestPtr &req)
 声明队列请求处理函数
 
void deleteQueue (const deleteQueueRequestPtr &req)
 删除队列请求处理函数
 
void queueBind (const queueBindRequestPtr &req)
 队列绑定请求处理函数
 
void queueUnBind (const queueUnBindRequestPtr &req)
 队列解绑请求处理函数
 
void basicPublish (const basicPublishRequestPtr &req)
 消息发布请求处理函数
 
void basicAck (const basicAckRequestPtr &req)
 确认消息请求处理函数
 
void basicConsume (const basicConsumeRequestPtr &req)
 订阅消息请求处理函数
 
void basicCancel (const basicCancelRequestPtr &req)
 取消订阅请求处理函数
 

Private 成员函数

basicResponsePtr waitResponse (const std::string &rid)
 等待处理响应
 
void basicRespFunc (bool ok, const std::string &rid, const std::string &cid)
 基础响应发送函数
 
void consume (const std::string &qname)
 消费调用函数
 
void callback (const std::string &tag, const BasicProperties *bp, const std::string &body)
 消费者回调函数
 

Private 属性

std::string _cid
 信道id
 
muduo::net::TcpConnectionPtr _conn
 连接
 
ProtobufCodecPtr _codec
 协议处理句柄
 
Consumer::ptr _consumer
 信道角色描述
 
std::mutex _mutex
 互斥锁
 
std::condition_variable _cv
 条件变量
 
std::unordered_map< std::string, basicResponsePtr_basic_resp
 基础响应映射表
 
ConsumerManager::ptr _cmp
 消费者管理句柄
 
VirtualHost::ptr _host
 虚拟机
 
threadpool::ptr _pool
 线程池
 

详细描述

客户端信道类

信道类

成员类型定义说明

◆ ptr [1/2]

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

信道句柄

◆ ptr [2/2]

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

构造及析构函数说明

◆ Channel() [1/2]

XuMQ::Channel::Channel ( const muduo::net::TcpConnectionPtr &  conn,
const ProtobufCodecPtr codec 
)
inline

构造函数

参数
connmuduo连接句柄
codec协议处理句柄

◆ ~Channel() [1/2]

XuMQ::Channel::~Channel ( )
inline
函数调用图:

◆ Channel() [2/2]

XuMQ::Channel::Channel ( const std::string &  id,
const VirtualHost::ptr host,
const ConsumerManager::ptr cmp,
const ProtobufCodecPtr codec,
const muduo::net::TcpConnectionPtr &  conn,
const threadpool::ptr pool 
)
inline

信道构造函数

参数
id信道id
host虚拟机
cmp消费者管理句柄
codec协议处理句柄
connmuduo连接管理句柄
pool线程池管理句柄

◆ ~Channel() [2/2]

XuMQ::Channel::~Channel ( )
inline

析构函数

成员函数说明

◆ basicAck() [1/2]

void XuMQ::Channel::basicAck ( const basicAckRequestPtr req)
inline

确认消息请求处理函数

参数
req确认消息请求
函数调用图:

◆ basicAck() [2/2]

void XuMQ::Channel::basicAck ( const std::string &  msg_id)
inline

应答消息

参数
msg_id消息id
函数调用图:

◆ basicCancel() [1/2]

void XuMQ::Channel::basicCancel ( )
inline

取消订阅

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

◆ basicCancel() [2/2]

void XuMQ::Channel::basicCancel ( const basicCancelRequestPtr req)
inline

取消订阅请求处理函数

参数
req取消订阅请求
函数调用图:

◆ basicConsume() [1/2]

void XuMQ::Channel::basicConsume ( const basicConsumeRequestPtr req)
inline

订阅消息请求处理函数

参数
req订阅消息请求
函数调用图:

◆ basicConsume() [2/2]

bool XuMQ::Channel::basicConsume ( const std::string &  tag,
const std::string &  qname,
bool  auto_ack,
const ConsumerCallback cb 
)
inline

订阅消息

参数
tag消费者标识
qname队列名称
auto_ack自动应答标志
cb消费者回调函数
返回
成功返回true 失败返回false
函数调用图:

◆ basicPublish() [1/2]

void XuMQ::Channel::basicPublish ( const basicPublishRequestPtr req)
inline

消息发布请求处理函数

参数
req消息发布请求
函数调用图:

◆ basicPublish() [2/2]

void XuMQ::Channel::basicPublish ( const std::string &  ename,
const BasicProperties bp,
const std::string &  body 
)
inline

向指定交换机发布消息

参数
ename交换机名称
bp消息属性
body消息主体
函数调用图:

◆ basicRespFunc()

void XuMQ::Channel::basicRespFunc ( bool  ok,
const std::string &  rid,
const std::string &  cid 
)
inlineprivate

基础响应发送函数

参数
ok响应结果
rid信道id
cid请求id
函数调用图:
这是这个函数的调用关系图:

◆ callback()

void XuMQ::Channel::callback ( const std::string &  tag,
const BasicProperties bp,
const std::string &  body 
)
inlineprivate

消费者回调函数

参数
tag消费者标识
bp消息属性
body消息主体
函数调用图:
这是这个函数的调用关系图:

◆ cid()

std::string XuMQ::Channel::cid ( )
inline
这是这个函数的调用关系图:

◆ closeChannel()

void XuMQ::Channel::closeChannel ( )
inline

关闭信道请求

函数调用图:

◆ consume() [1/2]

void XuMQ::Channel::consume ( const basicConsumeResponsePtr resp)
inline

连接收到推送消息 找到对应的消费者对象 通过回调函数进行消息处理

参数
resp消费响应句柄
这是这个函数的调用关系图:

◆ consume() [2/2]

void XuMQ::Channel::consume ( const std::string &  qname)
inlineprivate

消费调用函数

参数
qname队列名称

◆ declareExchange() [1/2]

void XuMQ::Channel::declareExchange ( const declareExchangeRequestPtr req)
inline

声明交换机请求处理函数

参数
req声明交换机请求
函数调用图:

◆ declareExchange() [2/2]

bool XuMQ::Channel::declareExchange ( const std::string &  name,
ExchangeType  type,
bool  durable,
bool  auto_delete,
google::protobuf::Map< std::string, std::string > &  args 
)
inline

声明交换机

参数
name交换机名称
type交换机类型
durable数据持久化标志
auto_delete自动删除标志
args其他参数
返回
声明成功返回true 失败返回false
函数调用图:

◆ declareQueue() [1/2]

void XuMQ::Channel::declareQueue ( const declareQueueRequestPtr req)
inline

声明队列请求处理函数

参数
req声明队列请求
函数调用图:

◆ declareQueue() [2/2]

bool XuMQ::Channel::declareQueue ( const std::string &  qname,
bool  qdurable,
bool  qexclusive,
bool  qauto_delete,
google::protobuf::Map< std::string, std::string > &  qargs 
)
inline

声明消息队列

参数
qname消息队列名称
qdurable数据持久化标志
qexclusive独占标志
qauto_delete自动删除标志
qargs其他参数
返回
声明成功返回true 失败返回false
函数调用图:

◆ deleteExchange() [1/2]

void XuMQ::Channel::deleteExchange ( const deleteExchangeRequestPtr req)
inline

删除交换机请求处理函数

参数
req删除交换机请求
函数调用图:

◆ deleteExchange() [2/2]

void XuMQ::Channel::deleteExchange ( const std::string &  name)
inline

删除指定交换机

参数
name交换机名称
函数调用图:

◆ deleteQueue() [1/2]

void XuMQ::Channel::deleteQueue ( const deleteQueueRequestPtr req)
inline

删除队列请求处理函数

参数
req删除队列请求
函数调用图:

◆ deleteQueue() [2/2]

void XuMQ::Channel::deleteQueue ( const std::string &  qname)
inline

删除消息队列

参数
name消息队列名称
函数调用图:

◆ openChannel()

bool XuMQ::Channel::openChannel ( )
inline

创建信道请求

返回
成功返回true 失败返回false
函数调用图:

◆ putBasicResponse()

void XuMQ::Channel::putBasicResponse ( const basicResponsePtr resp)
inline

连接收到基础响应后向映射表添加

参数
resp响应句柄

◆ queueBind() [1/2]

void XuMQ::Channel::queueBind ( const queueBindRequestPtr req)
inline

队列绑定请求处理函数

参数
req队列绑定请求
函数调用图:

◆ queueBind() [2/2]

bool XuMQ::Channel::queueBind ( const std::string &  ename,
const std::string &  qname,
const std::string &  key 
)
inline

添加绑定信息

参数
ename交换机名称
qname消息队列名称
key绑定关键字
返回
添加成功则返回true 失败返回false
注解
当交换机和消息队列的持久化标志都为true时 绑定信息持久化标志为true才有意义
函数调用图:

◆ queueUnBind() [1/2]

void XuMQ::Channel::queueUnBind ( const queueUnBindRequestPtr req)
inline

队列解绑请求处理函数

参数
req队列解绑请求
函数调用图:

◆ queueUnBind() [2/2]

void XuMQ::Channel::queueUnBind ( const std::string &  ename,
const std::string &  qname 
)
inline

解除绑定信息

参数
ename交换机名称
qname消息队列名称
函数调用图:

◆ waitResponse()

basicResponsePtr XuMQ::Channel::waitResponse ( const std::string &  rid)
inlineprivate

等待处理响应

参数
rid响应id
返回
响应句柄
这是这个函数的调用关系图:

类成员变量说明

◆ _basic_resp

std::unordered_map<std::string, basicResponsePtr> XuMQ::Channel::_basic_resp
private

基础响应映射表

◆ _cid

std::string XuMQ::Channel::_cid
private

信道id

◆ _cmp

ConsumerManager::ptr XuMQ::Channel::_cmp
private

消费者管理句柄

◆ _codec

ProtobufCodecPtr XuMQ::Channel::_codec
private

协议处理句柄

◆ _conn

muduo::net::TcpConnectionPtr XuMQ::Channel::_conn
private

连接

muduo连接管理句柄

◆ _consumer

Consumer::ptr XuMQ::Channel::_consumer
private

信道角色描述

消费者对象

◆ _cv

std::condition_variable XuMQ::Channel::_cv
private

条件变量

◆ _host

VirtualHost::ptr XuMQ::Channel::_host
private

虚拟机

◆ _mutex

std::mutex XuMQ::Channel::_mutex
private

互斥锁

◆ _pool

threadpool::ptr XuMQ::Channel::_pool
private

线程池