summaryrefslogtreecommitdiffstats
path: root/cc/debug/traced_value.h
diff options
context:
space:
mode:
authoryurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-31 17:59:29 +0000
committeryurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-31 17:59:29 +0000
commit21261ce03b92ce57e7efc19c681ff788e489de81 (patch)
tree25ff94bd4bd0b5181609638206f82ae83f6bf03c /cc/debug/traced_value.h
parent1ecb50f178b0539c3bc83772b5b6688320b4d824 (diff)
downloadchromium_src-21261ce03b92ce57e7efc19c681ff788e489de81.zip
chromium_src-21261ce03b92ce57e7efc19c681ff788e489de81.tar.gz
chromium_src-21261ce03b92ce57e7efc19c681ff788e489de81.tar.bz2
Add builders for tracing event's structural arguments
The new classes allow building JSON-like structural arguments. Current implementation uses base::Value as backing store but that can be replaced in the future with something more efficient without changing client code. All clients of cc/debug/traced_value.h should eventually switch to use the new builders. BUG=361045 Review URL: https://codereview.chromium.org/380763002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@286849 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/debug/traced_value.h')
-rw-r--r--cc/debug/traced_value.h50
1 files changed, 14 insertions, 36 deletions
diff --git a/cc/debug/traced_value.h b/cc/debug/traced_value.h
index 560eaf8..c5ea30a 100644
--- a/cc/debug/traced_value.h
+++ b/cc/debug/traced_value.h
@@ -5,58 +5,36 @@
#ifndef CC_DEBUG_TRACED_VALUE_H_
#define CC_DEBUG_TRACED_VALUE_H_
-#include <string>
-
-#include "base/debug/trace_event.h"
-#include "base/memory/scoped_ptr.h"
-
namespace base {
-class DictionaryValue;
-class Value;
+namespace debug {
+class TracedValue;
+}
}
+
namespace cc {
-class TracedValue : public base::debug::ConvertableToTraceFormat {
+class TracedValue {
public:
- static scoped_ptr<base::Value> CreateIDRef(const void* id);
- static void MakeDictIntoImplicitSnapshot(
- base::DictionaryValue* dict, const char* object_name, const void* id);
+ static void AppendIDRef(const void* id, base::debug::TracedValue* array);
+ static void SetIDRef(const void* id,
+ base::debug::TracedValue* dict,
+ const char* name);
+ static void MakeDictIntoImplicitSnapshot(base::debug::TracedValue* dict,
+ const char* object_name,
+ const void* id);
static void MakeDictIntoImplicitSnapshotWithCategory(
const char* category,
- base::DictionaryValue* dict,
+ base::debug::TracedValue* dict,
const char* object_name,
const void* id);
static void MakeDictIntoImplicitSnapshotWithCategory(
const char* category,
- base::DictionaryValue* dict,
+ base::debug::TracedValue* dict,
const char* object_base_type_name,
const char* object_name,
const void* id);
- static scoped_refptr<base::debug::ConvertableToTraceFormat> FromValue(
- base::Value* value);
-
- virtual void AppendAsTraceFormat(std::string* out) const OVERRIDE;
-
- private:
- explicit TracedValue(base::Value* value);
- virtual ~TracedValue();
-
- scoped_ptr<base::Value> value_;
-
- DISALLOW_COPY_AND_ASSIGN(TracedValue);
};
-template <class T>
-static scoped_refptr<base::debug::ConvertableToTraceFormat> ToTrace(T* t) {
- return TracedValue::FromValue(t->AsValue().release());
-}
-
-template <class T>
-static scoped_refptr<base::debug::ConvertableToTraceFormat> ToTrace(
- const T& t) {
- return ToTrace(&t);
-}
-
} // namespace cc
#endif // CC_DEBUG_TRACED_VALUE_H_