summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/asyncStore/TxnHandleImpl.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/asyncStore/TxnHandleImpl.h')
-rw-r--r--cpp/src/qpid/asyncStore/TxnHandleImpl.h24
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