GridGain C++
transaction_metrics.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_METRICS
23 #define _IGNITE_TRANSACTIONS_TRANSACTION_METRICS
24 
25 #include <stdint.h>
26 
27 #include <ignite/timestamp.h>
28 
29 namespace ignite
30 {
31  namespace transactions
32  {
36  class IGNITE_IMPORT_EXPORT TransactionMetrics
37  {
38  public:
45  valid(false),
46  commitTime(),
47  rollbackTime(),
48  commits(),
49  rollbacks()
50  {
51  // No-op.
52  }
53 
62  TransactionMetrics(const Timestamp& commitTime,
63  const Timestamp& rollbackTime, int32_t commits, int32_t rollbacks) :
64  valid(true),
65  commitTime(commitTime),
66  rollbackTime(rollbackTime),
67  commits(commits),
68  rollbacks(rollbacks)
69  {
70  //No-op.
71  }
72 
79  valid(other.valid),
80  commitTime(other.commitTime),
81  rollbackTime(other.rollbackTime),
82  commits(other.commits),
83  rollbacks(other.rollbacks)
84  {
85  // No-op.
86  }
87 
95  {
96  valid = other.valid;
97  commitTime = other.commitTime;
98  rollbackTime = other.rollbackTime;
99  commits = other.commits;
100  rollbacks = other.rollbacks;
101 
102  return *this;
103  }
104 
110  const Timestamp& GetCommitTime() const
111  {
112  return commitTime;
113  }
114 
120  const Timestamp& GetRollbackTime() const
121  {
122  return rollbackTime;
123  }
124 
130  int32_t GetCommits() const
131  {
132  return commits;
133  }
134 
140  int32_t GetRollbacks() const
141  {
142  return rollbacks;
143  }
144 
156  bool IsValid() const
157  {
158  return valid;
159  }
160 
161  private:
163  bool valid;
164 
166  Timestamp commitTime;
167 
169  Timestamp rollbackTime;
170 
172  int32_t commits;
173 
175  int32_t rollbacks;
176  };
177  }
178 }
179 
180 #endif //_IGNITE_TRANSACTIONS_TRANSACTION_METRICS
ignite::transactions::TransactionMetrics::TransactionMetrics
TransactionMetrics()
Default constructor.
Definition: transaction_metrics.h:44
ignite
Ignite API.
Definition: cache.h:47
ignite::transactions::TransactionMetrics::IsValid
bool IsValid() const
Check wheather the instance is valid.
Definition: transaction_metrics.h:156
ignite::transactions::TransactionMetrics::GetRollbacks
int32_t GetRollbacks() const
Get the total number of transaction rollbacks.
Definition: transaction_metrics.h:140
ignite::transactions::TransactionMetrics::TransactionMetrics
TransactionMetrics(const Timestamp &commitTime, const Timestamp &rollbackTime, int32_t commits, int32_t rollbacks)
Constructor.
Definition: transaction_metrics.h:62
ignite::transactions::TransactionMetrics::GetCommits
int32_t GetCommits() const
Get the total number of transaction commits.
Definition: transaction_metrics.h:130
ignite::transactions::TransactionMetrics::TransactionMetrics
TransactionMetrics(const TransactionMetrics &other)
Copy constructor.
Definition: transaction_metrics.h:78
ignite::Timestamp
Timestamp type.
Definition: timestamp.h:36
ignite::transactions::TransactionMetrics::GetRollbackTime
const Timestamp & GetRollbackTime() const
Get rollback time.
Definition: transaction_metrics.h:120
ignite::transactions::TransactionMetrics::operator=
TransactionMetrics & operator=(const TransactionMetrics &other)
Assignment operator.
Definition: transaction_metrics.h:94
ignite::transactions::TransactionMetrics::GetCommitTime
const Timestamp & GetCommitTime() const
Get commit time.
Definition: transaction_metrics.h:110
timestamp.h
ignite::transactions::TransactionMetrics
Transaction metrics, shared across all caches.
Definition: transaction_metrics.h:36