diff options
Diffstat (limited to 'cpp/lib/broker/TransactionalStore.h')
-rw-r--r-- | cpp/lib/broker/TransactionalStore.h | 44 |
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(){} +}; + +} } |