【RabbitMQ 项目】客户端:消费者模块

和服务端的消费者实现方式一模一样,只不过服务端的消费者的回调函数是把消息封装成响应并发送,固定都是这个动作,而客户端消费者回调是用来处理消息,是用户自己设置的。

cpp 复制代码
#pragma once
#include "../common/Log.hpp"
#include "../common/message.pb.h"
#include <functional>
#include <memory>
#include <atomic>
#include <mutex>
#include <vector>
#include <unordered_map>
namespace ns_consumer
{
    using namespace ns_log;

    struct Consumer;
    using ConsumerPtr = std::shared_ptr<Consumer>;
    using ConsumerCallback_t = std::function<void(const ns_data::Message& msg)>;
    struct Consumer
    {
        std::string _id;
        std::string _qname;
        ConsumerCallback_t _callback;
        bool _autoAck;

        Consumer(const std::string id, const std::string &qname, ConsumerCallback_t callback, bool autoAck)
            : _id(id),
              _qname(qname),
              _callback(callback),
              _autoAck(autoAck)
        {
        }
    };
};
相关推荐
源代码•宸3 小时前
分布式缓存-GO(分布式算法之一致性哈希、缓存对外服务化)
开发语言·经验分享·分布式·后端·算法·缓存·golang
旖旎夜光4 小时前
多态(11)(下)
c++·学习
yangpipi-4 小时前
《C++并发编程实战》 第4章 并发操作的同步
开发语言·c++
Chance_to_win4 小时前
C++基础知识
c++
有趣的我4 小时前
C++ 多态介绍
开发语言·c++
Wang's Blog5 小时前
RabbitMQ: 消息中间件技术选型
分布式·rabbitmq
WBluuue5 小时前
Codeforces 1068 Div2(ABCD)
c++·算法
阿沁QWQ6 小时前
C++的map和set
开发语言·c++
charlie1145141917 小时前
现代C++工程实践:简单的IniParser3——改进我们的split
开发语言·c++·笔记·学习
fish_xk7 小时前
c++的引用和类的初见
开发语言·c++