17#ifndef INCLUDED_RMQT_CONSUMERCONFIG
18#define INCLUDED_RMQT_CONSUMERCONFIG
20#include <rmqt_properties.h>
21#include <rmqt_queue.h>
22#include <rmqt_topology.h>
24#include <bdlmt_threadpool.h>
26#include <bsl_cstdint.h>
27#include <bsl_memory.h>
28#include <bsl_optional.h>
29#include <bsl_vector.h>
31namespace BloombergLP {
33class MessageTransformer;
44 static const uint16_t s_defaultPrefetchCount;
70 uint16_t prefetchCount = s_defaultPrefetchCount,
71 bdlmt::ThreadPool* threadpool = 0,
72 rmqt::Exclusive::Value exclusiveFlag = rmqt::Exclusive::OFF,
73 bsl::optional<int64_t> consumerPriority = bsl::optional<int64_t>());
78 const bsl::string& consumerTag()
const {
return d_consumerTag; }
80 uint16_t prefetchCount()
const {
return d_prefetchCount; }
82 bdlmt::ThreadPool* threadpool()
const {
return d_threadpool; }
84 rmqt::Exclusive::Value exclusiveFlag()
const {
return d_exclusiveFlag; }
86 bsl::optional<int64_t> consumerPriority()
const
88 return d_consumerPriority;
91 const bsl::vector<bsl::shared_ptr<rmqp::MessageTransformer> >&
94 return d_transformers;
103 d_consumerTag = consumerTag;
113 d_prefetchCount = prefetchCount;
126 d_threadpool = threadpool;
137 d_exclusiveFlag = exclusiveFlag;
151 d_consumerPriority = consumerPriority;
162 d_transformers.push_back(transformer);
167 bsl::string d_consumerTag;
168 uint16_t d_prefetchCount;
169 bdlmt::ThreadPool* d_threadpool;
170 rmqt::Exclusive::Value d_exclusiveFlag;
171 bsl::optional<int64_t> d_consumerPriority;
172 bsl::vector<bsl::shared_ptr<rmqp::MessageTransformer> > d_transformers;
Class for passing arguments to Consumer.
Definition: rmqt_consumerconfig.h:42
ConsumerConfig & setExclusiveFlag(rmqt::Exclusive::Value exclusiveFlag=rmqt::Exclusive::ON)
Definition: rmqt_consumerconfig.h:135
ConsumerConfig & setConsumerPriority(const bsl::optional< int64_t > &consumerPriority)
Definition: rmqt_consumerconfig.h:149
ConsumerConfig & setPrefetchCount(uint16_t prefetchCount)
Definition: rmqt_consumerconfig.h:110
ConsumerConfig & setThreadpool(bdlmt::ThreadPool *threadpool)
Definition: rmqt_consumerconfig.h:124
static bsl::string generateConsumerTag()
Util method to generate a default Consumer tag.
Definition: rmqt_consumerconfig.cpp:42
ConsumerConfig & setConsumerTag(const bsl::string &consumerTag)
Definition: rmqt_consumerconfig.h:101
ConsumerConfig & addTransformer(const bsl::shared_ptr< rmqp::MessageTransformer > &transformer)
Definition: rmqt_consumerconfig.h:160
ConsumerConfig(const bsl::string &consumerTag=generateConsumerTag(), uint16_t prefetchCount=s_defaultPrefetchCount, bdlmt::ThreadPool *threadpool=0, rmqt::Exclusive::Value exclusiveFlag=rmqt::Exclusive::OFF, bsl::optional< int64_t > consumerPriority=bsl::optional< int64_t >())
Definition: rmqt_consumerconfig.cpp:25