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

服务器类,负责处理客户端请求、管理连接、分发消息。 更多...

#include <broker.hpp>

Public 类型

using MessagePtr = std::shared_ptr< google::protobuf::Message >
 protobuf消息的智能指针类型定义
 

Public 成员函数

 Server (int port, const std::string &basedir)
 Server类的构造函数
 
void start ()
 启动服务器,开始监听并处理客户端请求
 

Private 成员函数

bool onOpenChannel (const muduo::net::TcpConnectionPtr &conn, const openChannelRequestPtr message, muduo::Timestamp)
 处理打开信道的请求
 
void onCloseChannel (const muduo::net::TcpConnectionPtr &conn, const closeChannelRequestPtr message, muduo::Timestamp)
 处理关闭信道的请求
 
void onDeclareExchange (const muduo::net::TcpConnectionPtr &conn, const declareExchangeRequestPtr message, muduo::Timestamp)
 处理声明交换机的请求
 
void onDeleteExchange (const muduo::net::TcpConnectionPtr &conn, const deleteExchangeRequestPtr message, muduo::Timestamp)
 处理删除交换机的请求
 
void onDeClareQueue (const muduo::net::TcpConnectionPtr &conn, const declareQueueRequestPtr message, muduo::Timestamp)
 处理声明队列的请求
 
void onDeleteQueue (const muduo::net::TcpConnectionPtr &conn, const deleteQueueRequestPtr message, muduo::Timestamp)
 处理删除队列的请求
 
void onQueueBind (const muduo::net::TcpConnectionPtr &conn, const queueBindRequestPtr message, muduo::Timestamp)
 处理队列绑定的请求
 
void onQueueUnBind (const muduo::net::TcpConnectionPtr &conn, const queueUnBindRequestPtr message, muduo::Timestamp)
 处理队列解绑的请求
 
void onBasicPublish (const muduo::net::TcpConnectionPtr &conn, const basicPublishRequestPtr message, muduo::Timestamp)
 处理消息发布的请求
 
void onBasicAck (const muduo::net::TcpConnectionPtr &conn, const basicAckRequestPtr message, muduo::Timestamp)
 处理消息应答的请求
 
void onBasicConsume (const muduo::net::TcpConnectionPtr &conn, const basicConsumeRequestPtr message, muduo::Timestamp)
 处理消息订阅的请求
 
void onBasicCancel (const muduo::net::TcpConnectionPtr &conn, const basicCancelRequestPtr message, muduo::Timestamp)
 处理取消订阅的请求
 
void onUnknowMessage (const muduo::net::TcpConnectionPtr &conn, const Server::MessagePtr message, muduo::Timestamp)
 处理未知消息类型的请求
 
void onConnection (const muduo::net::TcpConnectionPtr &conn)
 处理新连接的回调函数
 

Private 属性

muduo::net::EventLoop _baseloop
 基础时间循环
 
muduo::net::TcpServer _server
 服务器对象
 
ProtobufDispatcher _dispatcher
 请求分发器对象 -> 注册请求处理函数
 
ProtobufCodecPtr _codec
 protobuf协议处理器 -> 对收到的请求数据进行protobuf协议处理
 
VirtualHost::ptr _virtual_host
 虚拟机句柄
 
ConsumerManager::ptr _consumer_manager
 消费者管理句柄
 
ConnectionManager::ptr _connection_manager
 连接管理句柄
 
threadpool::ptr _threadpool
 线程池管理句柄
 

详细描述

服务器类,负责处理客户端请求、管理连接、分发消息。

成员类型定义说明

◆ MessagePtr

using XuMQ::Server::MessagePtr = std::shared_ptr<google::protobuf::Message>

protobuf消息的智能指针类型定义

构造及析构函数说明

◆ Server()

XuMQ::Server::Server ( int  port,
const std::string &  basedir 
)
inline

Server类的构造函数

参数
port服务器监听的端口号
basedir基础目录,用于存储元数据等文件
函数调用图:

成员函数说明

◆ onBasicAck()

void XuMQ::Server::onBasicAck ( const muduo::net::TcpConnectionPtr &  conn,
const basicAckRequestPtr  message,
muduo::Timestamp   
)
inlineprivate

处理消息应答的请求

参数
conn客户端连接
message消息应答请求消息
timestamp消息时间戳
这是这个函数的调用关系图:

◆ onBasicCancel()

void XuMQ::Server::onBasicCancel ( const muduo::net::TcpConnectionPtr &  conn,
const basicCancelRequestPtr  message,
muduo::Timestamp   
)
inlineprivate

处理取消订阅的请求

参数
conn客户端连接
message取消订阅请求消息
timestamp消息时间戳
这是这个函数的调用关系图:

◆ onBasicConsume()

void XuMQ::Server::onBasicConsume ( const muduo::net::TcpConnectionPtr &  conn,
const basicConsumeRequestPtr  message,
muduo::Timestamp   
)
inlineprivate

处理消息订阅的请求

参数
conn客户端连接
message消息订阅请求消息
timestamp消息时间戳
这是这个函数的调用关系图:

◆ onBasicPublish()

void XuMQ::Server::onBasicPublish ( const muduo::net::TcpConnectionPtr &  conn,
const basicPublishRequestPtr  message,
muduo::Timestamp   
)
inlineprivate

处理消息发布的请求

参数
conn客户端连接
message消息发布请求消息
timestamp消息时间戳
这是这个函数的调用关系图:

◆ onCloseChannel()

void XuMQ::Server::onCloseChannel ( const muduo::net::TcpConnectionPtr &  conn,
const closeChannelRequestPtr  message,
muduo::Timestamp   
)
inlineprivate

处理关闭信道的请求

参数
conn客户端连接
message关闭信道请求消息
timestamp消息时间戳
这是这个函数的调用关系图:

◆ onConnection()

void XuMQ::Server::onConnection ( const muduo::net::TcpConnectionPtr &  conn)
inlineprivate

处理新连接的回调函数

参数
conn新建立的TCP连接
这是这个函数的调用关系图:

◆ onDeclareExchange()

void XuMQ::Server::onDeclareExchange ( const muduo::net::TcpConnectionPtr &  conn,
const declareExchangeRequestPtr  message,
muduo::Timestamp   
)
inlineprivate

处理声明交换机的请求

参数
conn客户端连接
message声明交换机请求消息
timestamp消息时间戳
这是这个函数的调用关系图:

◆ onDeClareQueue()

void XuMQ::Server::onDeClareQueue ( const muduo::net::TcpConnectionPtr &  conn,
const declareQueueRequestPtr  message,
muduo::Timestamp   
)
inlineprivate

处理声明队列的请求

参数
conn客户端连接
message声明队列请求消息
timestamp消息时间戳
这是这个函数的调用关系图:

◆ onDeleteExchange()

void XuMQ::Server::onDeleteExchange ( const muduo::net::TcpConnectionPtr &  conn,
const deleteExchangeRequestPtr  message,
muduo::Timestamp   
)
inlineprivate

处理删除交换机的请求

参数
conn客户端连接
message删除交换机请求消息
timestamp消息时间戳
这是这个函数的调用关系图:

◆ onDeleteQueue()

void XuMQ::Server::onDeleteQueue ( const muduo::net::TcpConnectionPtr &  conn,
const deleteQueueRequestPtr  message,
muduo::Timestamp   
)
inlineprivate

处理删除队列的请求

参数
conn客户端连接
message删除队列请求消息
timestamp消息时间戳
这是这个函数的调用关系图:

◆ onOpenChannel()

bool XuMQ::Server::onOpenChannel ( const muduo::net::TcpConnectionPtr &  conn,
const openChannelRequestPtr  message,
muduo::Timestamp   
)
inlineprivate

处理打开信道的请求

参数
conn客户端连接
message打开信道请求消息
timestamp消息时间戳
返回
操作是否成功
这是这个函数的调用关系图:

◆ onQueueBind()

void XuMQ::Server::onQueueBind ( const muduo::net::TcpConnectionPtr &  conn,
const queueBindRequestPtr  message,
muduo::Timestamp   
)
inlineprivate

处理队列绑定的请求

参数
conn客户端连接
message队列绑定请求消息
timestamp消息时间戳
这是这个函数的调用关系图:

◆ onQueueUnBind()

void XuMQ::Server::onQueueUnBind ( const muduo::net::TcpConnectionPtr &  conn,
const queueUnBindRequestPtr  message,
muduo::Timestamp   
)
inlineprivate

处理队列解绑的请求

参数
conn客户端连接
message队列解绑请求消息
timestamp消息时间戳
这是这个函数的调用关系图:

◆ onUnknowMessage()

void XuMQ::Server::onUnknowMessage ( const muduo::net::TcpConnectionPtr &  conn,
const Server::MessagePtr  message,
muduo::Timestamp   
)
inlineprivate

处理未知消息类型的请求

参数
conn客户端连接
message未知类型的消息
timestamp消息时间戳

◆ start()

void XuMQ::Server::start ( )
inline

启动服务器,开始监听并处理客户端请求

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

类成员变量说明

◆ _baseloop

muduo::net::EventLoop XuMQ::Server::_baseloop
private

基础时间循环

◆ _codec

ProtobufCodecPtr XuMQ::Server::_codec
private

protobuf协议处理器 -> 对收到的请求数据进行protobuf协议处理

◆ _connection_manager

ConnectionManager::ptr XuMQ::Server::_connection_manager
private

连接管理句柄

◆ _consumer_manager

ConsumerManager::ptr XuMQ::Server::_consumer_manager
private

消费者管理句柄

◆ _dispatcher

ProtobufDispatcher XuMQ::Server::_dispatcher
private

请求分发器对象 -> 注册请求处理函数

◆ _server

muduo::net::TcpServer XuMQ::Server::_server
private

服务器对象

◆ _threadpool

threadpool::ptr XuMQ::Server::_threadpool
private

线程池管理句柄

◆ _virtual_host

VirtualHost::ptr XuMQ::Server::_virtual_host
private

虚拟机句柄