first commit

This commit is contained in:
bing
2026-04-03 11:38:40 +08:00
commit b704b006c1
6 changed files with 336 additions and 0 deletions

19
include/IMessageQueue.h Normal file
View 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
View 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_;
};