first commit
This commit is contained in:
19
include/IMessageQueue.h
Normal file
19
include/IMessageQueue.h
Normal file
@@ -0,0 +1,19 @@
|
||||
#pragma once
|
||||
#include <string>
|
||||
#include "XRabbitMQClient_export.h"
|
||||
|
||||
// 纯虚接口:隔离具体的消息队列实现
|
||||
class XRABBITMQCLIENT_EXPORT IMessageQueue
|
||||
{
|
||||
public:
|
||||
virtual ~IMessageQueue() = default;
|
||||
|
||||
// 连接到消息队列服务器
|
||||
virtual bool Connect() = 0;
|
||||
|
||||
// 发送消息
|
||||
virtual bool Publish(const std::string &routing_key, const std::string &message) = 0;
|
||||
|
||||
// 接收消息 (简单阻塞式示例)
|
||||
virtual std::string Consume(const std::string &queue_name) = 0;
|
||||
};
|
||||
25
include/RabbitMQClient.h
Normal file
25
include/RabbitMQClient.h
Normal file
@@ -0,0 +1,25 @@
|
||||
#pragma once
|
||||
#include "IMessageQueue.h"
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
class XRABBITMQCLIENT_EXPORT RabbitMQClient : public IMessageQueue
|
||||
{
|
||||
public:
|
||||
// 传入必要的连接参数
|
||||
RabbitMQClient(const std::string &host, int port, const std::string &username, const std::string &password);
|
||||
|
||||
// 注意:使用 unique_ptr 配合 Pimpl 时,析构函数必须在 .cpp 中实现
|
||||
~RabbitMQClient() override;
|
||||
|
||||
// 实现接口方法
|
||||
bool Connect() override;
|
||||
bool Publish(const std::string &routing_key, const std::string &message) override;
|
||||
std::string Consume(const std::string &queue_name) override;
|
||||
|
||||
private:
|
||||
// Pimpl 核心:前向声明具体的实现类
|
||||
struct Impl;
|
||||
// 使用 unique_ptr 管理实现类的生命周期
|
||||
std::unique_ptr<Impl> pimpl_;
|
||||
};
|
||||
Reference in New Issue
Block a user