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