16#ifndef INCLUDED_RMQA_CONNECTIONMONITOR
17#define INCLUDED_RMQA_CONNECTIONMONITOR
19#include <rmqamqp_channelcontainer.h>
20#include <rmqamqp_connection.h>
21#include <rmqamqp_connectionmonitor.h>
22#include <rmqamqp_messagestore.h>
23#include <rmqio_task.h>
24#include <rmqt_future.h>
25#include <rmqt_message.h>
27#include <bsl_functional.h>
28#include <bsls_timeinterval.h>
31#include <bsl_memory.h>
32#include <bsl_utility.h>
33#include <bsl_vector.h>
35namespace BloombergLP {
41 typedef bsl::function<void(
42 const rmqamqp::MessageStore<rmqt::Message>::Entry&)>
46 const bsls::TimeInterval& messageProcessingTimeout,
47 const HungMessageCallback& callback = HungMessageCallback());
50 addConnection(
const bsl::weak_ptr<rmqamqp::ChannelContainer>& connection)
51 BSLS_KEYWORD_OVERRIDE;
53 void run() BSLS_KEYWORD_OVERRIDE;
56 typedef bsl::pair<bsl::string, bsl::vector<bsl::string> >
57 ConnectionChannelsInfo;
59 bsl::vector<ConnectionChannelsInfo> aliveConnectionChannelInfo;
67 void processHungMessages(
68 const rmqamqp::MessageStore<rmqt::Message>::MessageList& hungMessages);
69 bsls::TimeInterval d_messageProcessingTimeout;
70 HungMessageCallback d_callback;
71 bsl::list<bsl::weak_ptr<rmqamqp::ChannelContainer> > d_connections;
Definition: rmqa_connectionmonitor.h:39
bsl::shared_ptr< AliveConnectionInfo > fetchAliveConnectionInfo()
Definition: rmqa_connectionmonitor.cpp:115
Definition: rmqa_connectionmonitor.h:55