V8 API Reference, 7.2.502.16 (for Deno 0.2.4)
traced-value.h
1 // Copyright 2016 the V8 project 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 V8_TRACING_TRACED_VALUE_H_
6 #define V8_TRACING_TRACED_VALUE_H_
7 
8 #include <stddef.h>
9 #include <memory>
10 #include <string>
11 #include <vector>
12 
13 #include "include/v8-platform.h"
14 #include "src/base/macros.h"
15 
16 namespace v8 {
17 namespace tracing {
18 
20  public:
21  ~TracedValue() override;
22 
23  static std::unique_ptr<TracedValue> Create();
24 
25  void EndDictionary();
26  void EndArray();
27 
28  // These methods assume that |name| is a long lived "quoted" string.
29  void SetInteger(const char* name, int value);
30  void SetDouble(const char* name, double value);
31  void SetBoolean(const char* name, bool value);
32  void SetString(const char* name, const char* value);
33  void SetString(const char* name, const std::string& value) {
34  SetString(name, value.c_str());
35  }
36  void BeginDictionary(const char* name);
37  void BeginArray(const char* name);
38 
39  void AppendInteger(int);
40  void AppendDouble(double);
41  void AppendBoolean(bool);
42  void AppendString(const char*);
43  void AppendString(const std::string& value) { AppendString(value.c_str()); }
44  void BeginArray();
45  void BeginDictionary();
46 
47  // ConvertableToTraceFormat implementation.
48  void AppendAsTraceFormat(std::string* out) const override;
49 
50  private:
51  TracedValue();
52 
53  void WriteComma();
54  void WriteName(const char* name);
55 
56 #ifdef DEBUG
57  // In debug builds checks the pairings of {Begin,End}{Dictionary,Array}
58  std::vector<bool> nesting_stack_;
59 #endif
60 
61  std::string data_;
62  bool first_item_;
63 
64  DISALLOW_COPY_AND_ASSIGN(TracedValue);
65 };
66 
67 } // namespace tracing
68 } // namespace v8
69 
70 #endif // V8_TRACING_TRACED_VALUE_H_
void AppendAsTraceFormat(std::string *out) const override
Definition: libplatform.h:13