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#include "cc/debug/micro_benchmark.h"
6
7#include "base/callback.h"
8#include "base/logging.h"
9#include "base/memory/scoped_ptr.h"
10#include "base/message_loop/message_loop_proxy.h"
11#include "base/values.h"
12#include "cc/debug/micro_benchmark_impl.h"
13
14namespace cc {
15
16MicroBenchmark::MicroBenchmark(const DoneCallback& callback)
17    : callback_(callback),
18      is_done_(false),
19      processed_for_benchmark_impl_(false) {}
20
21MicroBenchmark::~MicroBenchmark() {}
22
23bool MicroBenchmark::IsDone() const {
24  return is_done_;
25}
26
27void MicroBenchmark::DidUpdateLayers(LayerTreeHost* host) {}
28
29void MicroBenchmark::NotifyDone(scoped_ptr<base::Value> result) {
30  callback_.Run(result.Pass());
31  is_done_ = true;
32}
33
34void MicroBenchmark::RunOnLayer(Layer* layer) {}
35
36void MicroBenchmark::RunOnLayer(PictureLayer* layer) {}
37
38bool MicroBenchmark::ProcessedForBenchmarkImpl() const {
39  return processed_for_benchmark_impl_;
40}
41
42scoped_ptr<MicroBenchmarkImpl> MicroBenchmark::GetBenchmarkImpl(
43    scoped_refptr<base::MessageLoopProxy> origin_loop) {
44  DCHECK(!processed_for_benchmark_impl_);
45  processed_for_benchmark_impl_ = true;
46  return CreateBenchmarkImpl(origin_loop);
47}
48
49scoped_ptr<MicroBenchmarkImpl> MicroBenchmark::CreateBenchmarkImpl(
50    scoped_refptr<base::MessageLoopProxy> origin_loop) {
51  return make_scoped_ptr<MicroBenchmarkImpl>(NULL);
52}
53
54}  // namespace cc
55