blob: fbe6a19455efae61766f7b0fb7fe392ae02caa6f [file] [log] [blame]
#pragma once
#include "MQMessageExt.h"
#include "MQMessageQueue.h"
ROCKETMQ_NAMESPACE_BEGIN
enum class ConsumeMessageResult : uint8_t
{
SUCCESS = 0,
FAILURE = 1
};
enum class MessageListenerType : uint8_t
{
STANDARD = 0,
FIFO = 1
};
class MessageListener {
public:
virtual ~MessageListener() = default;
virtual MessageListenerType listenerType() = 0;
};
class StandardMessageListener : public MessageListener {
public:
virtual ConsumeMessageResult consumeMessage(const std::vector<MQMessageExt>& msgs) = 0;
MessageListenerType listenerType() override {
return MessageListenerType::STANDARD;
}
};
class FifoMessageListener : public MessageListener {
public:
MessageListenerType listenerType() override {
return MessageListenerType::FIFO;
}
virtual ConsumeMessageResult consumeMessage(const MQMessageExt& msgs) = 0;
};
ROCKETMQ_NAMESPACE_END