diff options
| author | Gordon Sim <gsim@apache.org> | 2006-11-07 11:26:50 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2006-11-07 11:26:50 +0000 |
| commit | c2a8f493b4d87c71dc04a432e686e2d9151a393f (patch) | |
| tree | 1bb137e50aa711e6ead9e70e9117f04916b32b07 /cpp/src/qpid/broker/TxAck.cpp | |
| parent | e4ec69544d05f04c64b92d85905978495c1aee77 (diff) | |
| download | qpid-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.cpp | 9 |
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; |
