diff options
| author | Gordon Sim <gsim@apache.org> | 2008-10-24 12:34:29 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2008-10-24 12:34:29 +0000 |
| commit | 2effbc58544688cfeabc4d7d6dcbd59805233de0 (patch) | |
| tree | 8a3dd46362058dc64dd897e2aa32428b18b748e1 /cpp/src/qpid/broker/TxAccept.h | |
| parent | 93b372e4d8d51a3db161a95a8b1884ce6af117fd (diff) | |
| download | qpid-python-2effbc58544688cfeabc4d7d6dcbd59805233de0.tar.gz | |
Revised transactional options to perftest as they could not be used on older boost versions due to ambiguity.
Refactored TxAccept to avoid excessive testing and searching for delivery records.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@707615 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/TxAccept.h')
| -rw-r--r-- | cpp/src/qpid/broker/TxAccept.h | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/cpp/src/qpid/broker/TxAccept.h b/cpp/src/qpid/broker/TxAccept.h index 9548c50c2a..5474327f7c 100644 --- a/cpp/src/qpid/broker/TxAccept.h +++ b/cpp/src/qpid/broker/TxAccept.h @@ -34,9 +34,31 @@ namespace qpid { * Defines the transactional behaviour for accepts received by * a transactional channel. */ - class TxAccept : public TxOp{ + class TxAccept : public TxOp { + struct RangeOp + { + AckRange range; + + RangeOp(const AckRange& r); + void prepare(TransactionContext* ctxt); + void commit(); + }; + + struct RangeOps + { + std::vector<RangeOp> ranges; + DeliveryRecords& unacked; + + RangeOps(DeliveryRecords& u); + + void operator()(framing::SequenceNumber start, framing::SequenceNumber end); + void prepare(TransactionContext* ctxt); + void commit(); + }; + framing::SequenceSet& acked; std::list<DeliveryRecord>& unacked; + RangeOps ops; public: /** |
