diff options
author | yurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-31 17:59:29 +0000 |
---|---|---|
committer | yurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-31 17:59:29 +0000 |
commit | 21261ce03b92ce57e7efc19c681ff788e489de81 (patch) | |
tree | 25ff94bd4bd0b5181609638206f82ae83f6bf03c /cc/debug/traced_value.h | |
parent | 1ecb50f178b0539c3bc83772b5b6688320b4d824 (diff) | |
download | chromium_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.h | 50 |
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_ |