17#ifndef INCLUDED_BMQT_SESSIONOPTIONS
18#define INCLUDED_BMQT_SESSIONOPTIONS
128#include <bdlt_timeunitratio.h>
129#include <bsl_iosfwd.h>
130#include <bsl_memory.h>
131#include <bsl_string.h>
132#include <bsla_annotations.h>
133#include <bslma_allocator.h>
134#include <bslma_usesbslmaallocator.h>
135#include <bslmf_nestedtraitdeclaration.h>
136#include <bsls_assert.h>
137#include <bsls_timeinterval.h>
138#include <bsls_types.h>
150class HostHealthMonitor;
174 5 * bdlt::TimeUnitRatio::k_SECONDS_PER_MINUTE;
181 bsl::string d_brokerUri;
185 bsl::string d_processNameOverride;
188 int d_numProcessingThreads;
191 int d_blobBufferSize;
194 bsls::Types::Int64 d_channelHighWatermark;
197 bsls::TimeInterval d_statsDumpInterval;
199 bsls::TimeInterval d_connectTimeout;
201 bsls::TimeInterval d_disconnectTimeout;
203 bsls::TimeInterval d_openQueueTimeout;
205 bsls::TimeInterval d_configureQueueTimeout;
208 bsls::TimeInterval d_closeQueueTimeout;
210 int d_eventQueueLowWatermark;
213 int d_eventQueueHighWatermark;
217 int d_eventQueueSize;
219 bsl::shared_ptr<bmqpi::HostHealthMonitor> d_hostHealthMonitor_sp;
221 bsl::shared_ptr<bmqpi::DTContext> d_dtContext_sp;
222 bsl::shared_ptr<bmqpi::DTTracer> d_dtTracer_sp;
226 BSLMF_NESTED_TRAIT_DECLARATION(
SessionOptions, bslma::UsesBslmaAllocator)
237 bslma::Allocator* allocator = 0);
283 const bsl::shared_ptr<bmqpi::HostHealthMonitor>& monitor);
291 const bsl::shared_ptr<bmqpi::DTTracer>& dtTracer);
344 const bsl::shared_ptr<bmqpi::DTContext>&
traceContext() const;
347 const bsl::shared_ptr<bmqpi::DTTracer>&
tracer() const;
366 print(bsl::ostream& stream,
int level = 0,
int spacesPerLevel = 4) const;
383bsl::ostream& operator<<(bsl::ostream& stream, const
SessionOptions& rhs);
397 d_brokerUri.assign(value.data(), value.length());
404 d_processNameOverride.assign(value.data(), value.length());
410 d_numProcessingThreads = value;
416 d_blobBufferSize = value;
424 BSLS_ASSERT_OPT(8 * 1024 * 1024 < value);
429 d_channelHighWatermark = value;
437 BSLS_ASSERT_OPT(value.seconds() % 30 == 0 &&
438 "value must be a multiple of 30s");
439 BSLS_ASSERT_OPT(value.seconds() <
440 bdlt::TimeUnitRatio::k_SECONDS_PER_HOUR &&
441 "value must be < 10 min");
443 d_statsDumpInterval = value;
450 d_connectTimeout = value;
457 d_disconnectTimeout = value;
464 d_openQueueTimeout = value;
471 d_configureQueueTimeout = value;
478 d_closeQueueTimeout = value;
483 const bsl::shared_ptr<bmqpi::HostHealthMonitor>& monitor)
485 d_hostHealthMonitor_sp = monitor;
490 const bsl::shared_ptr<bmqpi::DTContext>& context,
491 const bsl::shared_ptr<bmqpi::DTTracer>&
tracer)
493 BSLS_ASSERT_OPT((context &&
tracer) || (!context && !
tracer));
495 d_dtContext_sp = context;
504 d_eventQueueSize = queueSize;
512 BSLS_ASSERT_OPT(lowWatermark < highWatermark);
514 d_eventQueueLowWatermark = lowWatermark;
515 d_eventQueueHighWatermark = highWatermark;
528 return d_processNameOverride;
533 return d_numProcessingThreads;
538 return d_blobBufferSize;
543 return d_channelHighWatermark;
548 return d_statsDumpInterval;
553 return d_connectTimeout;
558 return d_disconnectTimeout;
563 return d_openQueueTimeout;
568 return d_configureQueueTimeout;
573 return d_closeQueueTimeout;
576inline const bsl::shared_ptr<bmqpi::HostHealthMonitor>&
579 return d_hostHealthMonitor_sp;
582inline const bsl::shared_ptr<bmqpi::DTContext>&
585 return d_dtContext_sp;
590 return d_dtTracer_sp;
595 return d_eventQueueLowWatermark;
600 return d_eventQueueHighWatermark;
605 return d_eventQueueSize;
655 return rhs.
print(stream, 0, -1);
A pure interface for a context with a notion of a current span.
Definition bmqpi_dtcontext.h:55
Definition bmqt_sessionoptions.h:161
SessionOptions & setChannelHighWatermark(bsls::Types::Int64 value)
Definition bmqt_sessionoptions.h:421
bsls::Types::Int64 channelHighWatermark() const
Get the channel high watermark.
Definition bmqt_sessionoptions.h:541
SessionOptions & setCloseQueueTimeout(const bsls::TimeInterval &value)
Set the timeout for closing a queue to the specified value.
Definition bmqt_sessionoptions.h:476
int eventQueueSize() const
Definition bmqt_sessionoptions.h:603
const bsls::TimeInterval & closeQueueTimeout() const
Get the timeout for closing a queue.
Definition bmqt_sessionoptions.h:571
SessionOptions & setConfigureQueueTimeout(const bsls::TimeInterval &value)
Definition bmqt_sessionoptions.h:469
int eventQueueHighWatermark() const
Definition bmqt_sessionoptions.h:598
int numProcessingThreads() const
Get the number of processing threads.
Definition bmqt_sessionoptions.h:531
SessionOptions & setProcessNameOverride(const bslstl::StringRef &value)
Set an override of the proces name to the specified value.
Definition bmqt_sessionoptions.h:402
const bsls::TimeInterval & disconnectTimeout() const
Get the timeout for disconnecting from the broker.
Definition bmqt_sessionoptions.h:556
static const char k_BROKER_DEFAULT_URI[]
Default URI of the bmqbrkr to connect to.
Definition bmqt_sessionoptions.h:166
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
int blobBufferSize() const
Get the size of the blobs buffer.
Definition bmqt_sessionoptions.h:536
SessionOptions & setOpenQueueTimeout(const bsls::TimeInterval &value)
Set the timeout for opening a queue to the specified value.
Definition bmqt_sessionoptions.h:462
SessionOptions & setBrokerUri(const bslstl::StringRef &value)
Set the broker URI to the specified value.
Definition bmqt_sessionoptions.h:395
SessionOptions & setTraceOptions(const bsl::shared_ptr< bmqpi::DTContext > &dtContext, const bsl::shared_ptr< bmqpi::DTTracer > &dtTracer)
Definition bmqt_sessionoptions.h:489
const bsl::string & processNameOverride() const
Return the process name override.
Definition bmqt_sessionoptions.h:526
SessionOptions & setHostHealthMonitor(const bsl::shared_ptr< bmqpi::HostHealthMonitor > &monitor)
Definition bmqt_sessionoptions.h:482
const bsl::shared_ptr< bmqpi::HostHealthMonitor > & hostHealthMonitor() const
Definition bmqt_sessionoptions.h:577
static const int k_QUEUE_OPERATION_DEFAULT_TIMEOUT
Definition bmqt_sessionoptions.h:173
SessionOptions & configureEventQueue(int queueSize, int lowWatermark, int highWatermark)
Definition bmqt_sessionoptions.h:500
const bsls::TimeInterval & statsDumpInterval() const
Get the stats dump interval.
Definition bmqt_sessionoptions.h:546
const bsls::TimeInterval & configureQueueTimeout() const
Get the timeout for configuring or disconfiguring a queue.
Definition bmqt_sessionoptions.h:566
const bsl::string & brokerUri() const
Get the broker URI.
Definition bmqt_sessionoptions.h:521
static const int k_BROKER_DEFAULT_PORT
Default port the bmqbrkr is listening to for client to connect.
Definition bmqt_sessionoptions.h:169
SessionOptions & setConnectTimeout(const bsls::TimeInterval &value)
Set the timeout for connecting to the broker to the specified value.
Definition bmqt_sessionoptions.h:448
const bsl::shared_ptr< bmqpi::DTTracer > & tracer() const
Get the Distributed Trace tracer object.
Definition bmqt_sessionoptions.h:588
const bsls::TimeInterval & openQueueTimeout() const
Get the timeout for opening a queue.
Definition bmqt_sessionoptions.h:561
SessionOptions & setStatsDumpInterval(const bsls::TimeInterval &value)
Definition bmqt_sessionoptions.h:434
const bsl::shared_ptr< bmqpi::DTContext > & traceContext() const
Get the Distributed Trace context object.
Definition bmqt_sessionoptions.h:583
int eventQueueLowWatermark() const
Definition bmqt_sessionoptions.h:593
SessionOptions & setNumProcessingThreads(int value)
Set the number of processing threads to the specified value.
Definition bmqt_sessionoptions.h:408
const bsls::TimeInterval & connectTimeout() const
Get the timeout for connecting to the broker.
Definition bmqt_sessionoptions.h:551
SessionOptions & setDisconnectTimeout(const bsls::TimeInterval &value)
Definition bmqt_sessionoptions.h:455
SessionOptions & setBlobBufferSize(int value)
Set the specified value for the size of blobs buffers.
Definition bmqt_sessionoptions.h:414
bsl::ostream & operator<<(bsl::ostream &stream, CompressionAlgorithmType::Enum value)
Definition bmqt_compressionalgorithmtype.h:141
bool operator!=(const CorrelationId &lhs, const CorrelationId &rhs)
Definition bmqt_correlationid.h:582
bool operator==(const CorrelationId &lhs, const CorrelationId &rhs)
Definition bmqt_correlationid.h:576
Definition bmqa_abstractsession.h:42