23 #ifndef HAZELCAST_TransactionContext
24 #define HAZELCAST_TransactionContext
26 #include "hazelcast/client/TransactionOptions.h"
27 #include "hazelcast/client/txn/TransactionProxy.h"
28 #include "hazelcast/client/TransactionalMap.h"
29 #include "hazelcast/client/exception/IllegalStateException.h"
30 #include "hazelcast/client/TransactionalQueue.h"
31 #include "hazelcast/client/TransactionalMultiMap.h"
32 #include "hazelcast/client/TransactionalList.h"
33 #include "hazelcast/client/TransactionalSet.h"
35 #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
37 #pragma warning(disable: 4251) //for dll export
47 namespace connection {
48 class ConnectionManager;
67 std::string getTxnId()
const;
74 void beginTransaction();
81 void commitTransaction();
88 void rollbackTransaction();
98 template<
typename K,
typename V>
100 return getTransactionalObject< TransactionalMap<K, V> >(name);
112 return getTransactionalObject< TransactionalQueue< E > >(name);
122 template<
typename K,
typename V>
124 return getTransactionalObject< TransactionalMultiMap<K, V> >(name);
136 return getTransactionalObject< TransactionalList< E > >(name);
148 return getTransactionalObject< TransactionalSet< E > >(name);
160 if (transaction.getState() != txn::TxnState::ACTIVE) {
161 std::string message =
"No transaction is found while accessing ";
162 message +=
"transactional object -> [" + name +
"]!";
165 T txnObject(name, &transaction);
170 const int CONNECTION_TRY_COUNT;
171 spi::ClientContext &clientContext;
173 boost::shared_ptr<connection::Connection> txnConnection;
174 txn::TransactionProxy transaction;
176 boost::shared_ptr<connection::Connection> connect();
183 #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
187 #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:135
TransactionalMap< K, V > getMap(const std::string &name)
Returns the transactional distributed map instance with the specified name.
Definition: TransactionContext.h:99
T getTransactionalObject(const std::string &name)
get any transactional object with template T.
Definition: TransactionContext.h:159
Transactional implementation of IMap.
Definition: TransactionalMap.h:44
Transactional implementation of MultiMap.
Definition: TransactionalMultiMap.h:37
Transactional implementation of IList.
Definition: TransactionalList.h:35
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:147
TransactionalMultiMap< K, V > getMultiMap(const std::string &name)
Returns the transactional multimap instance with the specified name.
Definition: TransactionContext.h:123
Raised when method is called in a illegal state.
Definition: IllegalStateException.h:30
TransactionalQueue< E > getQueue(const std::string &name)
Returns the transactional queue instance with the specified name.
Definition: TransactionContext.h:111
Transactional implementation of IQueue.
Definition: TransactionalQueue.h:37
Provides a context to do transactional operations; so beginning/committing transactions, but also retrieving transactional data-structures like the TransactionalMap.
Definition: TransactionContext.h:57