summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorCharles E. Rolke <chug@apache.org>2013-09-04 20:27:29 +0000
committerCharles E. Rolke <chug@apache.org>2013-09-04 20:27:29 +0000
commitdacf93f5eb49f7bb0684e3a570c1e258e84666af (patch)
tree72fa057e36bf159b27c8c30c2f79c9dd3de5e5b6 /cpp
parent4f40bc6a7d6b89c74ebb1e40cb97b3aa8e41668c (diff)
downloadqpid-python-dacf93f5eb49f7bb0684e3a570c1e258e84666af.tar.gz
NO-JIRA: repair build for VisualStudio 2010 and newer Boost
vector::push_back now has two signatures that confuse boost. Use an explicit callback and do the push_back there. This is a replay of r1418544. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1520133 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp')
-rw-r--r--cpp/src/qpid/ha/BrokerReplicator.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/cpp/src/qpid/ha/BrokerReplicator.cpp b/cpp/src/qpid/ha/BrokerReplicator.cpp
index e7a0218dd8..49fdee49d0 100644
--- a/cpp/src/qpid/ha/BrokerReplicator.cpp
+++ b/cpp/src/qpid/ha/BrokerReplicator.cpp
@@ -903,6 +903,13 @@ void BrokerReplicator::disconnectedExchange(boost::shared_ptr<Exchange> ex) {
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);
+ }
+}
+
// Called by ConnectionObserver::disconnected, disconnected from the network side.
void BrokerReplicator::disconnected() {
QPID_LOG(info, logPrefix << "Disconnected from primary " << primary);
@@ -910,7 +917,7 @@ void BrokerReplicator::disconnected() {
// Make copy of exchanges so we can work outside the registry lock.
ExchangeVector exs;
- exchanges.eachExchange(boost::bind(&ExchangeVector::push_back, &exs, _1));
+ exchanges.eachExchange(boost::bind(&exchangeAccumulatorCallback, boost::ref(exs), _1));
for_each(exs.begin(), exs.end(),
boost::bind(&BrokerReplicator::disconnectedExchange, this, _1));
}