1 | // Copyright 2013 The Flutter Authors. All rights reserved. |
2 | // Use of this source code is governed by a BSD-style license that can be |
3 | // found in the LICENSE file. |
4 | |
5 | #ifndef FLUTTER_BENCHMARKING_BENCHMARKING_H_ |
6 | #define FLUTTER_BENCHMARKING_BENCHMARKING_H_ |
7 | |
8 | #include "benchmark/benchmark_api.h" |
9 | |
10 | namespace benchmarking { |
11 | |
12 | class ScopedPauseTiming { |
13 | public: |
14 | ScopedPauseTiming(::benchmark::State& state, bool enabled = true) |
15 | : state_(state), enabled_(enabled) { |
16 | if (enabled_) { |
17 | state_.PauseTiming(); |
18 | } |
19 | } |
20 | ~ScopedPauseTiming() { |
21 | if (enabled_) { |
22 | state_.ResumeTiming(); |
23 | } |
24 | } |
25 | |
26 | private: |
27 | ::benchmark::State& state_; |
28 | const bool enabled_; |
29 | }; |
30 | |
31 | } // namespace benchmarking |
32 | |
33 | #endif // FLUTTER_BENCHMARKING_BENCHMARKING_H_ |
34 | |