summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2008-05-28 09:51:12 +0000
committerGordon Sim <gsim@apache.org>2008-05-28 09:51:12 +0000
commit2366341dd03a1c66c4bf62a579cfc59603bd5d53 (patch)
tree6e4f33c67468ca2debdd6b783c40616aaded4079 /cpp
parent16d338dd2b0c820ec2d553d138b32aa9172948ae (diff)
downloadqpid-python-2366341dd03a1c66c4bf62a579cfc59603bd5d53.tar.gz
Fixes to binding of member functions as raised on qpid list by Manuel Teira.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@660886 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp')
-rw-r--r--cpp/src/qpid/broker/SemanticState.cpp21
1 files changed, 10 insertions, 11 deletions
diff --git a/cpp/src/qpid/broker/SemanticState.cpp b/cpp/src/qpid/broker/SemanticState.cpp
index 784c916528..151d372ebb 100644
--- a/cpp/src/qpid/broker/SemanticState.cpp
+++ b/cpp/src/qpid/broker/SemanticState.cpp
@@ -50,7 +50,6 @@ namespace qpid {
namespace broker {
using std::mem_fun_ref;
-using std::bind2nd;
using boost::intrusive_ptr;
using namespace qpid::broker;
using namespace qpid::framing;
@@ -106,7 +105,7 @@ void SemanticState::cancel(const string& tag){
consumers.erase(i);
//should cancel all unacked messages for this consumer so that
//they are not redelivered on recovery
- for_each(unacked.begin(), unacked.end(), boost::bind(mem_fun_ref(&DeliveryRecord::cancel), _1, tag));
+ for_each(unacked.begin(), unacked.end(), boost::bind(&DeliveryRecord::cancel, _1, tag));
}
}
@@ -387,12 +386,12 @@ void SemanticState::ack(DeliveryId first, DeliveryId last, bool cumulative)
{
{
ack_iterator start = cumulative ? unacked.begin() :
- find_if(unacked.begin(), unacked.end(), bind2nd(mem_fun_ref(&DeliveryRecord::matchOrAfter), first));
+ find_if(unacked.begin(), unacked.end(), boost::bind(&DeliveryRecord::matchOrAfter, _1, first));
ack_iterator end = start;
if (cumulative || first != last) {
//need to find end (position it just after the last record in range)
- end = find_if(start, unacked.end(), bind2nd(mem_fun_ref(&DeliveryRecord::after), last));
+ end = find_if(start, unacked.end(), boost::bind(&DeliveryRecord::after, _1, last));
} else if (start != unacked.end()) {
//just acked single element (move end past it)
++end;
@@ -410,12 +409,12 @@ void SemanticState::ack(DeliveryId first, DeliveryId last, bool cumulative)
//unacked and record it against that transaction:
TxOp::shared_ptr txAck(new DtxAck(accumulatedAck, unacked));
//then remove that slice from the unacked record:
- unacked.remove_if(bind2nd(mem_fun_ref(&DeliveryRecord::coveredBy), &accumulatedAck));
+ unacked.remove_if(boost::bind(&DeliveryRecord::coveredBy, _1, &accumulatedAck));
accumulatedAck.clear();
dtxBuffer->enlist(txAck);
}
} else {
- for_each(start, end, bind2nd(mem_fun_ref(&DeliveryRecord::dequeue), 0));
+ for_each(start, end, boost::bind(&DeliveryRecord::dequeue, _1, (TransactionContext*) 0));
unacked.erase(start, end);
}
}//end of lock scope for delivery lock (TODO this is ugly, make it prettier)
@@ -470,7 +469,7 @@ void SemanticState::recover(bool requeue)
unacked.clear();
for_each(copy.rbegin(), copy.rend(), mem_fun_ref(&DeliveryRecord::requeue));
}else{
- for_each(unacked.begin(), unacked.end(), bind2nd(mem_fun_ref(&DeliveryRecord::redeliver), this));
+ for_each(unacked.begin(), unacked.end(), boost::bind(&DeliveryRecord::redeliver, _1, this));
//unconfirmed messages re redelivered and therefore have their
//id adjusted, confirmed messages are not and so the ordering
//w.r.t id is lost
@@ -605,7 +604,7 @@ Queue::shared_ptr SemanticState::getQueue(const string& name) const {
AckRange SemanticState::findRange(DeliveryId first, DeliveryId last)
{
- ack_iterator start = find_if(unacked.begin(), unacked.end(), bind2nd(mem_fun_ref(&DeliveryRecord::matchOrAfter), first));
+ ack_iterator start = find_if(unacked.begin(), unacked.end(), boost::bind(&DeliveryRecord::matchOrAfter, _1, first));
ack_iterator end = start;
if (start != unacked.end()) {
@@ -614,7 +613,7 @@ AckRange SemanticState::findRange(DeliveryId first, DeliveryId last)
++end;
} else {
//need to find end (position it just after the last record in range)
- end = find_if(start, unacked.end(), bind2nd(mem_fun_ref(&DeliveryRecord::after), last));
+ end = find_if(start, unacked.end(), boost::bind(&DeliveryRecord::after, _1, last));
}
}
return AckRange(start, end);
@@ -633,7 +632,7 @@ void SemanticState::release(DeliveryId first, DeliveryId last, bool setRedeliver
//to release in reverse order to keep the original transfer order
DeliveryRecords::reverse_iterator start(range.end);
DeliveryRecords::reverse_iterator end(range.start);
- for_each(start, end, bind2nd(mem_fun_ref(&DeliveryRecord::release), setRedelivered));
+ for_each(start, end, boost::bind(&DeliveryRecord::release, _1, setRedelivered));
}
void SemanticState::reject(DeliveryId first, DeliveryId last)
@@ -681,7 +680,7 @@ void SemanticState::accepted(DeliveryId first, DeliveryId last)
}
} else {
- for_each(range.start, range.end, bind2nd(mem_fun_ref(&DeliveryRecord::accept), 0));
+ for_each(range.start, range.end, boost::bind(&DeliveryRecord::accept, _1, (TransactionContext*) 0));
unacked.remove_if(mem_fun_ref(&DeliveryRecord::isRedundant));
}
}