1// Copyright 2013 The Chromium 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 CC_DEBUG_MICRO_BENCHMARK_CONTROLLER_IMPL_H_
6#define CC_DEBUG_MICRO_BENCHMARK_CONTROLLER_IMPL_H_
7
8#include <string>
9
10#include "base/basictypes.h"
11#include "cc/base/scoped_ptr_vector.h"
12#include "cc/debug/micro_benchmark_impl.h"
13
14namespace cc {
15
16class LayerTreeHostImpl;
17class CC_EXPORT MicroBenchmarkControllerImpl {
18 public:
19  explicit MicroBenchmarkControllerImpl(LayerTreeHostImpl* host);
20  ~MicroBenchmarkControllerImpl();
21
22  void DidCompleteCommit();
23
24  void ScheduleRun(scoped_ptr<MicroBenchmarkImpl> benchmark);
25
26 private:
27  void CleanUpFinishedBenchmarks();
28
29  LayerTreeHostImpl* host_;
30  ScopedPtrVector<MicroBenchmarkImpl> benchmarks_;
31
32  DISALLOW_COPY_AND_ASSIGN(MicroBenchmarkControllerImpl);
33};
34
35}  // namespace cc
36
37#endif  // CC_DEBUG_MICRO_BENCHMARK_CONTROLLER_IMPL_H_
38