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