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