16#ifndef INCLUDED_RMQA_MESSAGEGUARD
17#define INCLUDED_RMQA_MESSAGEGUARD
19#include <rmqp_messageguard.h>
20#include <rmqt_consumerack.h>
21#include <rmqt_envelope.h>
22#include <rmqt_message.h>
24#include <bsls_keyword.h>
26#include <bsl_functional.h>
27#include <bsl_memory.h>
28#include <bsl_ostream.h>
29#include <bslma_managedptr.h>
31namespace BloombergLP {
49 virtual bslma::ManagedPtr<rmqa::MessageGuard>
52 const MessageGuardCallback& ackCallback,
65 const MessageGuardCallback& ackCallback,
77 const rmqt::Message&
message() const BSLS_KEYWORD_OVERRIDE;
80 const rmqt::Envelope&
envelope() const BSLS_KEYWORD_OVERRIDE;
88 void ack() BSLS_KEYWORD_OVERRIDE;
95 void nack(
bool requeue = true) BSLS_KEYWORD_OVERRIDE;
111 enum
State { READY, TRANSFERRED, RESOLVED };
113 State state()
const {
return d_state; }
116 mutable State d_state;
120 MessageGuardCallback d_ackCallback;
124 void resolve(rmqt::ConsumerAck::Type ackOption);
133bsl::ostream& operator<<(bsl::ostream& os,
const MessageGuard& mg);
Provide a RabbitMQ Async Consumer API.
Definition: rmqa_consumer.h:41
Definition: rmqa_messageguard.h:47
Controls acknowledgements passed to broker for consumed messages.
Definition: rmqa_messageguard.h:45
void nack(bool requeue=true) BSLS_KEYWORD_OVERRIDE
Definition: rmqa_messageguard.cpp:108
virtual rmqp::Consumer * consumer() const BSLS_KEYWORD_OVERRIDE
Pointer to the Consumer, e.g. to cancel the message flow.
Definition: rmqa_messageguard.cpp:104
void ack() BSLS_KEYWORD_OVERRIDE
Definition: rmqa_messageguard.cpp:106
friend bsl::ostream & operator<<(bsl::ostream &os, const MessageGuard &mg)
Stream out.
Definition: rmqa_messageguard.cpp:138
MessageGuard(const rmqt::Message &message, const rmqt::Envelope &envelope, const MessageGuardCallback &ackCallback, rmqp::Consumer *consumer)
Definition: rmqa_messageguard.cpp:41
~MessageGuard() BSLS_KEYWORD_OVERRIDE
Definition: rmqa_messageguard.cpp:76
const rmqt::Message & message() const BSLS_KEYWORD_OVERRIDE
Access the received message.
Definition: rmqa_messageguard.cpp:102
rmqp::TransferrableMessageGuard transferOwnership() BSLS_KEYWORD_OVERRIDE
Definition: rmqa_messageguard.cpp:129
const rmqt::Envelope & envelope() const BSLS_KEYWORD_OVERRIDE
Access the received message envelope (delivery details)
Definition: rmqa_messageguard.cpp:103
State
Definition: rmqa_messageguard.h:111
Provide a RabbitMQ Async Consumer API.
Definition: rmqp_consumer.h:38
An interface for MessageGuard class.
Definition: rmqp_messageguard.h:39
Provide a class that holds additional data about rmqt::Message.
Definition: rmqt_envelope.h:32
An AMQP content message.
Definition: rmqt_message.h:43