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