18 #ifndef HAZELCAST_TransactionContext
19 #define HAZELCAST_TransactionContext
21 #include "hazelcast/client/TransactionOptions.h"
22 #include "hazelcast/client/txn/TransactionProxy.h"
23 #include "hazelcast/client/TransactionalMap.h"
24 #include "hazelcast/client/exception/IllegalStateException.h"
25 #include "hazelcast/client/TransactionalQueue.h"
26 #include "hazelcast/client/TransactionalMultiMap.h"
27 #include "hazelcast/client/TransactionalList.h"
28 #include "hazelcast/client/TransactionalSet.h"
30 #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
32 #pragma warning(disable: 4251) //for dll export
41 namespace connection {
42 class ConnectionManager;
62 std::string getTxnId()
const;
69 void beginTransaction();
76 void commitTransaction();
83 void rollbackTransaction();
93 template<
typename K,
typename V>
95 return getTransactionalObject< TransactionalMap<K, V> >(name);
107 return getTransactionalObject< TransactionalQueue< E > >(name);
117 template<
typename K,
typename V>
119 return getTransactionalObject< TransactionalMultiMap<K, V> >(name);
131 return getTransactionalObject< TransactionalList< E > >(name);
143 return getTransactionalObject< TransactionalSet< E > >(name);
155 if (transaction.getState() != txn::TxnState::ACTIVE) {
156 std::string message =
"No transaction is found while accessing ";
157 message +=
"transactional object -> [" + name +
"]!";
158 throw exception::IllegalStateException(
"TransactionContext::getMap(const std::string& name)", message);
160 T txnObject(name, &transaction);
165 const int CONNECTION_TRY_COUNT;
166 spi::ClientContext &clientContext;
168 boost::shared_ptr<connection::Connection> txnConnection;
169 txn::TransactionProxy transaction;
171 boost::shared_ptr<connection::Connection> connect();
178 #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
182 #endif //HAZELCAST_TransactionContext
Contains the configuration for a Hazelcast transaction.
Definition: TransactionOptions.h:67
TransactionalList< E > getList(const std::string &name)
Returns the transactional list instance with the specified name.
Definition: TransactionContext.h:130
TransactionalMap< K, V > getMap(const std::string &name)
Returns the transactional distributed map instance with the specified name.
Definition: TransactionContext.h:94
T getTransactionalObject(const std::string &name)
get any transactional object with template T.
Definition: TransactionContext.h:154
Transactional implementation of IMap.
Definition: TransactionalMap.h:43
Transactional implementation of MultiMap.
Definition: TransactionalMultiMap.h:40
Transactional implementation of IList.
Definition: TransactionalList.h:30
Transactional implementation of ISet.
Definition: TransactionalSet.h:34
TransactionalSet< E > getSet(const std::string &name)
Returns the transactional set instance with the specified name.
Definition: TransactionContext.h:142
TransactionalMultiMap< K, V > getMultiMap(const std::string &name)
Returns the transactional multimap instance with the specified name.
Definition: TransactionContext.h:118
TransactionalQueue< E > getQueue(const std::string &name)
Returns the transactional queue instance with the specified name.
Definition: TransactionContext.h:106
Transactional implementation of IQueue.
Definition: TransactionalQueue.h:38
Provides a context to do transactional operations; so beginning/committing transactions, but also retrieving transactional data-structures like the TransactionalMap.
Definition: TransactionContext.h:52