00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _DtxBuffer_
00022 #define _DtxBuffer_
00023
00024 #include "TxBuffer.h"
00025 #include "qpid/sys/Mutex.h"
00026
00027 namespace qpid {
00028 namespace broker {
00029 class DtxBuffer : public TxBuffer{
00030 sys::Mutex lock;
00031 const std::string xid;
00032 bool ended;
00033 bool suspended;
00034 bool failed;
00035 bool expired;
00036
00037 public:
00038 typedef boost::shared_ptr<DtxBuffer> shared_ptr;
00039
00040 DtxBuffer(const std::string& xid = "");
00041 ~DtxBuffer();
00042 void markEnded();
00043 bool isEnded();
00044 void setSuspended(bool suspended);
00045 bool isSuspended();
00046 void fail();
00047 bool isRollbackOnly();
00048 void timedout();
00049 bool isExpired();
00050 const std::string& getXid();
00051 };
00052 }
00053 }
00054
00055
00056 #endif