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_TRACED_VALUE_H_ 6#define CC_DEBUG_TRACED_VALUE_H_ 7 8#include <string> 9 10#include "base/debug/trace_event.h" 11#include "base/memory/scoped_ptr.h" 12 13namespace base { 14class DictionaryValue; 15class Value; 16} 17namespace cc { 18 19class TracedValue : public base::debug::ConvertableToTraceFormat { 20 public: 21 static scoped_ptr<base::Value> CreateIDRef(const void* id); 22 static void MakeDictIntoImplicitSnapshot( 23 base::DictionaryValue* dict, const char* object_name, const void* id); 24 static void MakeDictIntoImplicitSnapshotWithCategory( 25 const char* category, 26 base::DictionaryValue* dict, 27 const char* object_name, 28 const void* id); 29 static scoped_ptr<ConvertableToTraceFormat> FromValue( 30 base::Value* value); 31 32 virtual ~TracedValue(); 33 34 virtual void AppendAsTraceFormat(std::string* out) const OVERRIDE; 35 36 private: 37 explicit TracedValue(base::Value* value); 38 39 scoped_ptr<base::Value> value_; 40 41 DISALLOW_COPY_AND_ASSIGN(TracedValue); 42}; 43 44} // namespace cc 45 46#endif // CC_DEBUG_TRACED_VALUE_H_ 47