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_impl.h"
6
7#include "base/bind.h"
8#include "base/callback.h"
9#include "base/memory/scoped_ptr.h"
10#include "base/message_loop/message_loop.h"
11#include "base/values.h"
12
13namespace cc {
14
15namespace {
16
17void RunCallback(const MicroBenchmarkImpl::DoneCallback& callback,
18                 scoped_ptr<base::Value> result) {
19  callback.Run(result.Pass());
20}
21
22}
23
24MicroBenchmarkImpl::MicroBenchmarkImpl(
25    const DoneCallback& callback,
26    scoped_refptr<base::MessageLoopProxy> origin_loop)
27    : callback_(callback), is_done_(false), origin_loop_(origin_loop) {}
28
29MicroBenchmarkImpl::~MicroBenchmarkImpl() {}
30
31bool MicroBenchmarkImpl::IsDone() const {
32  return is_done_;
33}
34
35void MicroBenchmarkImpl::DidCompleteCommit(LayerTreeHostImpl* host) {}
36
37void MicroBenchmarkImpl::NotifyDone(scoped_ptr<base::Value> result) {
38  origin_loop_->PostTask(
39    FROM_HERE,
40    base::Bind(RunCallback, callback_, base::Passed(&result)));
41  is_done_ = true;
42}
43
44void MicroBenchmarkImpl::RunOnLayer(LayerImpl* layer) {}
45
46void MicroBenchmarkImpl::RunOnLayer(PictureLayerImpl* layer) {}
47
48}  // namespace cc
49