1b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
2b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// found in the LICENSE file.
4b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
5b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#ifndef CC_DEBUG_TRACED_VALUE_H_
6b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#define CC_DEBUG_TRACED_VALUE_H_
7b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
8b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)namespace base {
95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace debug {
105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class TracedValue;
115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
12b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)}
135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
14b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)namespace cc {
15b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class TracedValue {
17b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) public:
185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  static void AppendIDRef(const void* id, base::debug::TracedValue* array);
195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  static void SetIDRef(const void* id,
205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                       base::debug::TracedValue* dict,
215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                       const char* name);
225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  static void MakeDictIntoImplicitSnapshot(base::debug::TracedValue* dict,
235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                                           const char* object_name,
245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                                           const void* id);
25ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  static void MakeDictIntoImplicitSnapshotWithCategory(
26ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch      const char* category,
275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      base::debug::TracedValue* dict,
28ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch      const char* object_name,
29ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch      const void* id);
30a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  static void MakeDictIntoImplicitSnapshotWithCategory(
31a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      const char* category,
325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      base::debug::TracedValue* dict,
33a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      const char* object_base_type_name,
34a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      const char* object_name,
35a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      const void* id);
36b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)};
37b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
38b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)}  // namespace cc
39b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
40b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#endif  // CC_DEBUG_TRACED_VALUE_H_
41