diff options
Diffstat (limited to 'cpp/src/qpid/asyncStore/TxnHandleImpl.h')
-rw-r--r-- | cpp/src/qpid/asyncStore/TxnHandleImpl.h | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/cpp/src/qpid/asyncStore/TxnHandleImpl.h b/cpp/src/qpid/asyncStore/TxnHandleImpl.h index b28eb0cd4b..e357791508 100644 --- a/cpp/src/qpid/asyncStore/TxnHandleImpl.h +++ b/cpp/src/qpid/asyncStore/TxnHandleImpl.h @@ -24,23 +24,45 @@ #ifndef qpid_asyncStore_TxnHandleImpl_h_ #define qpid_asyncStore_TxnHandleImpl_h_ +#include "AtomicCounter.h" + #include "qpid/RefCounted.h" +#include <stdint.h> // uint32_t #include <string> namespace qpid { + +namespace broker { +class TxnBuffer; +} + namespace asyncStore { class TxnHandleImpl : public virtual qpid::RefCounted { public: - TxnHandleImpl(const std::string& xid = std::string()); + TxnHandleImpl(); + TxnHandleImpl(qpid::broker::TxnBuffer* tb); + TxnHandleImpl(const std::string& xid); + TxnHandleImpl(const std::string& xid, qpid::broker::TxnBuffer* tb); virtual ~TxnHandleImpl(); const std::string& getXid() const; bool is2pc() const; + + void submitPrepare(); + void submitCommit(); + void submitAbort(); + + void incrOpCnt(); + void decrOpCnt(); private: std::string m_xid; bool m_tpcFlag; + AsyncOpCounter m_asyncOpCnt; + qpid::broker::TxnBuffer* const m_txnBuffer; + + void createLocalXid(); }; }} // namespace qpid::asyncStore |