summaryrefslogtreecommitdiff
path: root/cpp/lib/broker/TransactionalStore.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/lib/broker/TransactionalStore.h')
-rw-r--r--cpp/lib/broker/TransactionalStore.h44
1 files changed, 27 insertions, 17 deletions
diff --git a/cpp/lib/broker/TransactionalStore.h b/cpp/lib/broker/TransactionalStore.h
index 17bca3878a..9347edf0ad 100644
--- a/cpp/lib/broker/TransactionalStore.h
+++ b/cpp/lib/broker/TransactionalStore.h
@@ -22,25 +22,35 @@
#define _TransactionalStore_
#include <memory>
+#include <string>
namespace qpid {
- namespace broker {
- struct InvalidTransactionContextException : public std::exception {};
-
- class TransactionContext{
- public:
- virtual ~TransactionContext(){}
- };
-
- class TransactionalStore{
- public:
- virtual std::auto_ptr<TransactionContext> begin() = 0;
- virtual void commit(TransactionContext*) = 0;
- virtual void abort(TransactionContext*) = 0;
-
- virtual ~TransactionalStore(){}
- };
- }
+namespace broker {
+
+struct InvalidTransactionContextException : public std::exception {};
+
+class TransactionContext {
+public:
+ virtual ~TransactionContext(){}
+};
+
+class TPCTransactionContext : public TransactionContext {
+public:
+ virtual ~TPCTransactionContext(){}
+};
+
+class TransactionalStore {
+public:
+ virtual std::auto_ptr<TransactionContext> begin() = 0;
+ virtual std::auto_ptr<TPCTransactionContext> begin(const std::string& xid) = 0;
+ virtual void prepare(TPCTransactionContext& txn) = 0;
+ virtual void commit(TransactionContext& txn) = 0;
+ virtual void abort(TransactionContext& txn) = 0;
+
+ virtual ~TransactionalStore(){}
+};
+
+}
}