// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef FLUTTER_BENCHMARKING_BENCHMARKING_H_
#define FLUTTER_BENCHMARKING_BENCHMARKING_H_

#include "benchmark/benchmark_api.h"

namespace benchmarking {

class ScopedPauseTiming {
 public:
  ScopedPauseTiming(::benchmark::State& state, bool enabled = true)
      : state_(state), enabled_(enabled) {
    if (enabled_) {
      state_.PauseTiming();
    }
  }
  ~ScopedPauseTiming() {
    if (enabled_) {
      state_.ResumeTiming();
    }
  }

 private:
  ::benchmark::State& state_;
  const bool enabled_;
};

}  // namespace benchmarking

#endif  // FLUTTER_BENCHMARKING_BENCHMARKING_H_