00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _TxBuffer_
00022 #define _TxBuffer_
00023
00024 #include <algorithm>
00025 #include <functional>
00026 #include <vector>
00027 #include "TransactionalStore.h"
00028 #include "TxOp.h"
00029
00059 namespace qpid {
00060 namespace broker {
00061 class TxBuffer{
00062 typedef std::vector<TxOp::shared_ptr>::iterator op_iterator;
00063 std::vector<TxOp::shared_ptr> ops;
00064 protected:
00065
00066 public:
00067 typedef boost::shared_ptr<TxBuffer> shared_ptr;
00071 void enlist(TxOp::shared_ptr op);
00072
00084 bool prepare(TransactionContext* const ctxt);
00085
00094 void commit();
00095
00103 void rollback();
00104
00109 bool commitLocal(TransactionalStore* const store);
00110 };
00111 }
00112 }
00113
00114
00115 #endif