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 39 class ClientTransactionManagerServiceImpl;
43 namespace connection {
44 class ClientConnectionManagerImpl;
64 std::string getTxnId()
const;
71 void beginTransaction();
78 void commitTransaction();
85 void rollbackTransaction();
95 template<
typename K,
typename V>
97 return getTransactionalObject< TransactionalMap<K, V> >(name);
109 return getTransactionalObject< TransactionalQueue< E > >(name);
119 template<
typename K,
typename V>
121 return getTransactionalObject< TransactionalMultiMap<K, V> >(name);
133 return getTransactionalObject< TransactionalList< E > >(name);
145 return getTransactionalObject< TransactionalSet< E > >(name);
157 if (transaction.getState() != txn::TxnState::ACTIVE) {
158 std::string message =
"No transaction is found while accessing ";
159 message +=
"transactional object -> [" + name +
"]!";
160 throw exception::IllegalStateException(
"TransactionContext::getMap(const std::string& name)", message);
162 T txnObject(name, &transaction);
168 boost::shared_ptr<connection::Connection> txnConnection;
169 txn::TransactionProxy transaction;
175 #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) 179 #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:132
TransactionalMap< K, V > getMap(const std::string &name)
Returns the transactional distributed map instance with the specified name.
Definition: TransactionContext.h:96
T getTransactionalObject(const std::string &name)
get any transactional object with template T.
Definition: TransactionContext.h:156
Transactional implementation of IMap.
Definition: TransactionalMap.h:44
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:144
TransactionalMultiMap< K, V > getMultiMap(const std::string &name)
Returns the transactional multimap instance with the specified name.
Definition: TransactionContext.h:120
TransactionalQueue< E > getQueue(const std::string &name)
Returns the transactional queue instance with the specified name.
Definition: TransactionContext.h:108
PN (Positive-Negative) CRDT counter.
Definition: MapEntryView.h:32
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:54