Author: gsim
Date: Wed May 28 02:51:12 2008
New Revision: 660886
URL: http://svn.apache.org/viewvc?rev=660886&view=rev
Log:
Fixes to binding of member functions as raised on qpid list by Manuel Teira.
Modified:
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp?rev=660886&r1=660885&r2=660886&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp Wed May 28
02:51:12 2008
@@ -50,7 +50,6 @@
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 @@
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 @@
{
{
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 @@
//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 @@
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 @@
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 @@
++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 @@
//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 @@
}
} 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));
}
}