GridGain C++
core/include/ignite/transactions/transaction.h
Go to the documentation of this file.
1 /*
2  * Copyright 2019 GridGain Systems, Inc. and Contributors.
3  *
4  * Licensed under the GridGain Community Edition License (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * https://www.gridgain.com/products/software/community-edition/gridgain-community-edition-license
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
22 #ifndef _IGNITE_TRANSACTIONS_TRANSACTION
23 #define _IGNITE_TRANSACTIONS_TRANSACTION
24 
25 #include <ignite/common/concurrent.h>
26 
27 #include "ignite/impl/transactions/transaction_impl.h"
29 
30 namespace ignite
31 {
32  namespace transactions
33  {
46  class IGNITE_FRIEND_EXPORT Transaction
47  {
48  public:
56  Transaction(common::concurrent::SharedPointer<impl::transactions::TransactionImpl> impl);
57 
63  Transaction(const Transaction& other);
64 
71  Transaction& operator=(const Transaction& other);
72 
76  ~Transaction();
77 
85  void Commit();
86 
96  void Commit(IgniteError& err);
97 
105  void Rollback();
106 
116  void Rollback(IgniteError& err);
117 
125  void Close();
126 
136  void Close(IgniteError& err);
137 
149  void SetRollbackOnly();
150 
164  void SetRollbackOnly(IgniteError& err);
165 
177  bool IsRollbackOnly();
178 
193  bool IsRollbackOnly(IgniteError& err);
194 
204  TransactionState::Type GetState();
205 
216  TransactionState::Type GetState(IgniteError& err);
217 
226  {
227  return static_cast<TransactionConcurrency::Type>(impl.Get()->GetConcurrency());
228  }
229 
238  {
239  return static_cast<TransactionIsolation::Type>(impl.Get()->GetIsolation());
240  }
241 
249  int64_t GetTimeout() const
250  {
251  return impl.Get()->GetTimeout();
252  }
253 
265  bool IsValid() const
266  {
267  return impl.IsValid();
268  }
269 
270  private:
272  common::concurrent::SharedPointer<impl::transactions::TransactionImpl> impl;
273  };
274  }
275 }
276 
277 #endif //_IGNITE_TRANSACTIONS_TRANSACTION
ignite
Ignite API.
Definition: cache.h:47
ignite::transactions::Transaction::GetTimeout
int64_t GetTimeout() const
Get timeout.
Definition: core/include/ignite/transactions/transaction.h:249
ignite::transactions::TransactionState::Type
Type
Definition: core/include/ignite/transactions/transaction_consts.h:119
ignite::transactions::Transaction::GetIsolation
TransactionIsolation::Type GetIsolation() const
Get isolation.
Definition: core/include/ignite/transactions/transaction.h:237
transaction_consts.h
ignite::transactions::Transaction::IsValid
bool IsValid() const
Check if the instance is valid and can be used.
Definition: core/include/ignite/transactions/transaction.h:265
ignite::transactions::TransactionConcurrency::Type
Type
Definition: core/include/ignite/transactions/transaction_consts.h:34
ignite::transactions::Transaction
Ignite cache transaction.
Definition: core/include/ignite/transactions/transaction.h:46
ignite::IgniteError
Ignite error information.
Definition: ignite_error.h:93
ignite::transactions::Transaction::GetConcurrency
TransactionConcurrency::Type GetConcurrency() const
Get concurrency.
Definition: core/include/ignite/transactions/transaction.h:225
ignite::transactions::TransactionIsolation::Type
Type
Definition: core/include/ignite/transactions/transaction_consts.h:72