summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/TxAck.cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2006-11-07 11:26:50 +0000
committerGordon Sim <gsim@apache.org>2006-11-07 11:26:50 +0000
commitc2a8f493b4d87c71dc04a432e686e2d9151a393f (patch)
tree1bb137e50aa711e6ead9e70e9117f04916b32b07 /cpp/src/qpid/broker/TxAck.cpp
parente4ec69544d05f04c64b92d85905978495c1aee77 (diff)
downloadqpid-python-c2a8f493b4d87c71dc04a432e686e2d9151a393f.tar.gz
Made passing of transaction context in message store explicit (to avoid thread local storage in case this doesn't fit with new io design).
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@472067 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/TxAck.cpp')
-rw-r--r--cpp/src/qpid/broker/TxAck.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/cpp/src/qpid/broker/TxAck.cpp b/cpp/src/qpid/broker/TxAck.cpp
index 6dba6fd79d..0bd525cc68 100644
--- a/cpp/src/qpid/broker/TxAck.cpp
+++ b/cpp/src/qpid/broker/TxAck.cpp
@@ -26,10 +26,15 @@ TxAck::TxAck(AccumulatedAck& _acked, std::list<DeliveryRecord>& _unacked) : acke
}
-bool TxAck::prepare() throw(){
+bool TxAck::prepare(TransactionContext* ctxt) throw(){
try{
//dequeue all acked messages from their queues
- for_each(unacked.begin(), unacked.end(), bind2nd(mem_fun_ref(&DeliveryRecord::discardIfCoveredBy), &acked));
+ for (ack_iterator i = unacked.begin(); i != unacked.end(); i++) {
+ if (i->coveredBy(&acked)) {
+ i->discard(ctxt);
+ }
+ }
+ //for_each(unacked.begin(), unacked.end(), bind2nd(mem_fun_ref(&DeliveryRecord::discardIfCoveredBy), &acked));
return true;
}catch(...){
std::cout << "TxAck::prepare() - Failed to prepare" << std::endl;