diff options
Diffstat (limited to 'cpp/src/qpid/ha/BrokerReplicator.cpp')
| -rw-r--r-- | cpp/src/qpid/ha/BrokerReplicator.cpp | 23 |
1 files changed, 5 insertions, 18 deletions
diff --git a/cpp/src/qpid/ha/BrokerReplicator.cpp b/cpp/src/qpid/ha/BrokerReplicator.cpp index 5e8da17a1b..1587b5b33f 100644 --- a/cpp/src/qpid/ha/BrokerReplicator.cpp +++ b/cpp/src/qpid/ha/BrokerReplicator.cpp @@ -865,27 +865,14 @@ bool BrokerReplicator::hasBindings() { return false; } string BrokerReplicator::getType() const { return QPID_CONFIGURATION_REPLICATOR; } -void BrokerReplicator::disconnectedExchange(boost::shared_ptr<Exchange> ex) { +void BrokerReplicator::disconnectedQueueReplicator(boost::shared_ptr<Exchange> ex) { boost::shared_ptr<QueueReplicator> qr(boost::dynamic_pointer_cast<QueueReplicator>(ex)); - // FIXME aconway 2013-11-01: move logic with releaseFromUse to QueueReplicator if (qr) { qr->disconnect(); if (TxReplicator::isTxQueue(qr->getQueue()->getName())) { // Transactions are aborted on failover so clean up tx-queues deleteQueue(qr->getQueue()->getName()); } - else if (qr->getQueue()->isAutoDelete() && qr->isSubscribed()) { - if (qr->getQueue()->getSettings().autoDeleteDelay) { - // Start the auto-delete timer - qr->getQueue()->releaseFromUse(); - qr->getQueue()->scheduleAutoDelete(); - } - else { - // Delete immediately. Don't purge, the primary is gone so we need - // to reroute the deleted messages. - deleteQueue(qr->getQueue()->getName(), false); - } - } } } @@ -893,9 +880,9 @@ typedef vector<boost::shared_ptr<Exchange> > ExchangeVector; // Callback function for accumulating exchange candidates namespace { - void exchangeAccumulatorCallback(ExchangeVector& ev, const Exchange::shared_ptr& i) { - ev.push_back(i); - } +void exchangeAccumulatorCallback(ExchangeVector& ev, const Exchange::shared_ptr& i) { + ev.push_back(i); +} } // Called by ConnectionObserver::disconnected, disconnected from the network side. @@ -907,7 +894,7 @@ void BrokerReplicator::disconnected() { ExchangeVector exs; exchanges.eachExchange(boost::bind(&exchangeAccumulatorCallback, boost::ref(exs), _1)); for_each(exs.begin(), exs.end(), - boost::bind(&BrokerReplicator::disconnectedExchange, this, _1)); + boost::bind(&BrokerReplicator::disconnectedQueueReplicator, this, _1)); } void BrokerReplicator::setMembership(const Variant::List& brokers) { |
