| Index: cc/debug/micro_benchmark_controller.cc
|
| diff --git a/cc/debug/micro_benchmark_controller.cc b/cc/debug/micro_benchmark_controller.cc
|
| deleted file mode 100644
|
| index bf98100541921966b6b236ad869c7a169ecc1253..0000000000000000000000000000000000000000
|
| --- a/cc/debug/micro_benchmark_controller.cc
|
| +++ /dev/null
|
| @@ -1,131 +0,0 @@
|
| -// Copyright 2013 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "cc/debug/micro_benchmark_controller.h"
|
| -
|
| -#include <limits>
|
| -#include <string>
|
| -
|
| -#include "base/callback.h"
|
| -#include "base/message_loop/message_loop_proxy.h"
|
| -#include "base/values.h"
|
| -#include "cc/debug/invalidation_benchmark.h"
|
| -#include "cc/debug/picture_record_benchmark.h"
|
| -#include "cc/debug/rasterize_and_record_benchmark.h"
|
| -#include "cc/debug/unittest_only_benchmark.h"
|
| -#include "cc/trees/layer_tree_host.h"
|
| -#include "cc/trees/layer_tree_host_impl.h"
|
| -
|
| -namespace cc {
|
| -
|
| -int MicroBenchmarkController::next_id_ = 1;
|
| -
|
| -namespace {
|
| -
|
| -scoped_ptr<MicroBenchmark> CreateBenchmark(
|
| - const std::string& name,
|
| - scoped_ptr<base::Value> value,
|
| - const MicroBenchmark::DoneCallback& callback) {
|
| - if (name == "invalidation_benchmark") {
|
| - return make_scoped_ptr(new InvalidationBenchmark(value.Pass(), callback));
|
| - } else if (name == "picture_record_benchmark") {
|
| - return make_scoped_ptr(new PictureRecordBenchmark(value.Pass(), callback));
|
| - } else if (name == "rasterize_and_record_benchmark") {
|
| - return make_scoped_ptr(
|
| - new RasterizeAndRecordBenchmark(value.Pass(), callback));
|
| - } else if (name == "unittest_only_benchmark") {
|
| - return make_scoped_ptr(new UnittestOnlyBenchmark(value.Pass(), callback));
|
| - }
|
| - return nullptr;
|
| -}
|
| -
|
| -class IsDonePredicate {
|
| - public:
|
| - typedef const MicroBenchmark* argument_type;
|
| - typedef bool result_type;
|
| -
|
| - result_type operator()(argument_type benchmark) const {
|
| - return benchmark->IsDone();
|
| - }
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -MicroBenchmarkController::MicroBenchmarkController(LayerTreeHost* host)
|
| - : host_(host),
|
| - main_controller_message_loop_(base::MessageLoopProxy::current().get()) {
|
| - DCHECK(host_);
|
| -}
|
| -
|
| -MicroBenchmarkController::~MicroBenchmarkController() {}
|
| -
|
| -int MicroBenchmarkController::ScheduleRun(
|
| - const std::string& micro_benchmark_name,
|
| - scoped_ptr<base::Value> value,
|
| - const MicroBenchmark::DoneCallback& callback) {
|
| - scoped_ptr<MicroBenchmark> benchmark =
|
| - CreateBenchmark(micro_benchmark_name, value.Pass(), callback);
|
| - if (benchmark.get()) {
|
| - int id = GetNextIdAndIncrement();
|
| - benchmark->set_id(id);
|
| - benchmarks_.push_back(benchmark.Pass());
|
| - host_->SetNeedsCommit();
|
| - return id;
|
| - }
|
| - return 0;
|
| -}
|
| -
|
| -int MicroBenchmarkController::GetNextIdAndIncrement() {
|
| - int id = next_id_++;
|
| - // Wrap around to 1 if we overflow (very unlikely).
|
| - if (next_id_ == std::numeric_limits<int>::max())
|
| - next_id_ = 1;
|
| - return id;
|
| -}
|
| -
|
| -bool MicroBenchmarkController::SendMessage(int id,
|
| - scoped_ptr<base::Value> value) {
|
| - for (ScopedPtrVector<MicroBenchmark>::iterator it = benchmarks_.begin();
|
| - it != benchmarks_.end();
|
| - ++it) {
|
| - if ((*it)->id() == id)
|
| - return (*it)->ProcessMessage(value.Pass());
|
| - }
|
| - return false;
|
| -}
|
| -
|
| -void MicroBenchmarkController::ScheduleImplBenchmarks(
|
| - LayerTreeHostImpl* host_impl) {
|
| - for (ScopedPtrVector<MicroBenchmark>::iterator it = benchmarks_.begin();
|
| - it != benchmarks_.end();
|
| - ++it) {
|
| - scoped_ptr<MicroBenchmarkImpl> benchmark_impl;
|
| - if (!(*it)->ProcessedForBenchmarkImpl()) {
|
| - benchmark_impl =
|
| - (*it)->GetBenchmarkImpl(main_controller_message_loop_);
|
| - }
|
| -
|
| - if (benchmark_impl.get())
|
| - host_impl->ScheduleMicroBenchmark(benchmark_impl.Pass());
|
| - }
|
| -}
|
| -
|
| -void MicroBenchmarkController::DidUpdateLayers() {
|
| - for (ScopedPtrVector<MicroBenchmark>::iterator it = benchmarks_.begin();
|
| - it != benchmarks_.end();
|
| - ++it) {
|
| - if (!(*it)->IsDone())
|
| - (*it)->DidUpdateLayers(host_);
|
| - }
|
| -
|
| - CleanUpFinishedBenchmarks();
|
| -}
|
| -
|
| -void MicroBenchmarkController::CleanUpFinishedBenchmarks() {
|
| - benchmarks_.erase(
|
| - benchmarks_.partition(std::not1(IsDonePredicate())),
|
| - benchmarks_.end());
|
| -}
|
| -
|
| -} // namespace cc
|
|
|