Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(296)

Unified Diff: src/tracing/traced-value.h

Issue 2399463004: [tracing] Add support for TracedValue JSON serializer. (Closed)
Patch Set: addressing nits Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « BUILD.gn ('k') | src/tracing/traced-value.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/tracing/traced-value.h
diff --git a/src/tracing/traced-value.h b/src/tracing/traced-value.h
new file mode 100644
index 0000000000000000000000000000000000000000..befa387bc875c0dbb15c8c16f2776e6fd2cc823c
--- /dev/null
+++ b/src/tracing/traced-value.h
@@ -0,0 +1,66 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef V8_TRACING_TRACED_VALUE_H_
+#define V8_TRACING_TRACED_VALUE_H_
+
+#include <stddef.h>
+#include <memory>
+#include <string>
+#include <vector>
+
+#include "include/v8-platform.h"
+#include "src/base/macros.h"
+
+namespace v8 {
+namespace tracing {
+
+class TracedValue : public ConvertableToTraceFormat {
+ public:
+ ~TracedValue() override;
+
+ static std::unique_ptr<TracedValue> Create();
+
+ void EndDictionary();
+ void EndArray();
+
+ // These methods assume that |name| is a long lived "quoted" string.
+ void SetInteger(const char* name, int value);
+ void SetDouble(const char* name, double value);
+ void SetBoolean(const char* name, bool value);
+ void SetString(const char* name, const std::string& value);
+ void BeginDictionary(const char* name);
+ void BeginArray(const char* name);
+
+ void AppendInteger(int);
+ void AppendDouble(double);
+ void AppendBoolean(bool);
+ void AppendString(const std::string&);
+ void BeginArray();
+ void BeginDictionary();
+
+ // ConvertableToTraceFormat implementation.
+ void AppendAsTraceFormat(std::string* out) const override;
+
+ private:
+ TracedValue();
+
+ void WriteComma();
+ void WriteName(const char* name);
+
+#ifdef DEBUG
+ // In debug builds checks the pairings of {Begin,End}{Dictionary,Array}
+ std::vector<bool> nesting_stack_;
+#endif
+
+ std::string data_;
+ bool first_item_;
+
+ DISALLOW_COPY_AND_ASSIGN(TracedValue);
+};
+
+} // namespace tracing
+} // namespace v8
+
+#endif // V8_TRACING_TRACED_VALUE_H_
« no previous file with comments | « BUILD.gn ('k') | src/tracing/traced-value.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698