17#ifndef INCLUDED_RMQA_RABBITCONTEXTOPTIONS
18#define INCLUDED_RMQA_RABBITCONTEXTOPTIONS
20#include <rmqp_metricpublisher.h>
22#include <rmqp_consumertracing.h>
23#include <rmqp_producertracing.h>
24#include <rmqt_fieldvalue.h>
25#include <rmqt_properties.h>
26#include <rmqt_result.h>
28#include <bdlmt_threadpool.h>
29#include <bsl_memory.h>
31#include <bsls_timeinterval.h>
33namespace BloombergLP {
44 typedef bsl::set<bsl::string> Tunables;
74 const bsl::shared_ptr<rmqp::MetricPublisher>& metricPublisher);
88 const rmqt::FieldValue& value);
107 const bsl::optional<bsls::TimeInterval>& timeout);
115 const bsl::shared_ptr<rmqp::ConsumerTracing>& consumerTracing);
123 const bsl::shared_ptr<rmqp::ProducerTracing>& producerTracing);
138 bdlmt::ThreadPool* threadpool()
const {
return d_threadpool; }
140 const bsl::shared_ptr<rmqp::MetricPublisher>& metricPublisher()
const
142 return d_metricPublisher;
145 const rmqt::ErrorCallback& errorCallback()
const {
return d_onError; }
149 return d_clientProperties;
152 const bsls::TimeInterval& messageProcessingTimeout()
const
154 return d_messageProcessingTimeout;
157 const bsl::optional<bsls::TimeInterval>& connectionErrorThreshold()
const
159 return d_connectionErrorThreshold;
162 const rmqt::Tunables& tunables()
const {
return d_tunables; }
164 const bsl::shared_ptr<rmqp::ConsumerTracing>& consumerTracing()
const
166 return d_consumerTracing;
169 const bsl::shared_ptr<rmqp::ProducerTracing>& producerTracing()
const
171 return d_producerTracing;
174 const bsl::optional<bool>& shuffleConnectionEndpoints()
const
176 return d_shuffleConnectionEndpoints;
179#ifdef USES_LIBRMQ_EXPERIMENTAL_FEATURES
184 static const int DEFAULT_MESSAGE_PROCESSING_TIMEOUT = 60;
185 bdlmt::ThreadPool* d_threadpool;
186 rmqt::ErrorCallback d_onError;
187 bsl::shared_ptr<rmqp::MetricPublisher> d_metricPublisher;
189 bsls::TimeInterval d_messageProcessingTimeout;
190 rmqt::Tunables d_tunables;
191 bsl::optional<bsls::TimeInterval> d_connectionErrorThreshold;
192 bsl::shared_ptr<rmqp::ConsumerTracing> d_consumerTracing;
193 bsl::shared_ptr<rmqp::ProducerTracing> d_producerTracing;
194 bsl::optional<bool> d_shuffleConnectionEndpoints;
Class for passing arguments to RabbitContext.
Definition: rmqa_rabbitcontextoptions.h:42
RabbitContextOptions & setProducerTracing(const bsl::shared_ptr< rmqp::ProducerTracing > &producerTracing)
will be called back at message send, with meta data to establish a context, the context will be kept ...
Definition: rmqa_rabbitcontextoptions.cpp:124
RabbitContextOptions()
By Default RabbitContext will 1) Create it's own threadpool for calling back to client code e....
Definition: rmqa_rabbitcontextoptions.cpp:59
RabbitContextOptions & useRabbitMQFieldValueEncoding(bool rabbitEncoding)
DEPRECATED: Previously was used to switch between AMQP-spec and RabbitMQ-spec Field Value encoding....
Definition: rmqa_rabbitcontextoptions.cpp:131
RabbitContextOptions & setThreadpool(bdlmt::ThreadPool *threadpool)
Definition: rmqa_rabbitcontextoptions.cpp:75
RabbitContextOptions & setConnectionErrorThreshold(const bsl::optional< bsls::TimeInterval > &timeout)
Set time threshold at which point the error callback is called if there has been no success in establ...
Definition: rmqa_rabbitcontextoptions.cpp:110
RabbitContextOptions & setErrorCallback(const rmqt::ErrorCallback &errorCallback)
Definition: rmqa_rabbitcontextoptions.cpp:82
RabbitContextOptions & setShuffleConnectionEndpoints(bool shuffleConnectionEndpoints)
Shuffle endpoints rmq connects to. By default, boost asio (libc) resolves and connects to the node wi...
Definition: rmqa_rabbitcontextoptions.cpp:136
RabbitContextOptions & setMessageProcessingTimeout(const bsls::TimeInterval &timeout)
Set time in which consumers should process messages.
Definition: rmqa_rabbitcontextoptions.cpp:103
RabbitContextOptions & setMetricPublisher(const bsl::shared_ptr< rmqp::MetricPublisher > &metricPublisher)
Definition: rmqa_rabbitcontextoptions.cpp:88
RabbitContextOptions & setConsumerTracing(const bsl::shared_ptr< rmqp::ConsumerTracing > &consumerTracing)
will be called back to create a context which spans for the lifetime of the messageguard before it is...
Definition: rmqa_rabbitcontextoptions.cpp:117
RabbitContextOptions & setClientProperty(const bsl::string &name, const rmqt::FieldValue &value)
Definition: rmqa_rabbitcontextoptions.cpp:96
Represents AMQP 0.9.1 Field Table (dict of FieldValues)
Definition: rmqt_fieldvalue.h:108