Skip to content

Commit 6385c7a

Browse files
cola119richardlau
authored andcommitted
tools: update inspector_protocol to 83b1154
PR-URL: #51309 Reviewed-By: Stephen Belanger <[email protected]>
1 parent 43a8d3e commit 6385c7a

9 files changed

+110
-166
lines changed

src/inspector/node_inspector.gypi

-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
],
4040
'node_protocol_files': [
4141
'<(protocol_tool_path)/lib/Allocator_h.template',
42-
'<(protocol_tool_path)/lib/Array_h.template',
4342
'<(protocol_tool_path)/lib/base_string_adapter_cc.template',
4443
'<(protocol_tool_path)/lib/base_string_adapter_h.template',
4544
'<(protocol_tool_path)/lib/DispatcherBase_cpp.template',

src/inspector/tracing_agent.cc

+23-23
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,8 @@ DispatchResponse TracingAgent::start(
147147
std::set<std::string> categories_set;
148148
protocol::Array<std::string>* categories =
149149
traceConfig->getIncludedCategories();
150-
for (size_t i = 0; i < categories->length(); i++)
151-
categories_set.insert(categories->get(i));
150+
for (size_t i = 0; i < categories->size(); i++)
151+
categories_set.insert((*categories)[i]);
152152

153153
if (categories_set.empty())
154154
return DispatchResponse::Error("At least one category should be enabled");
@@ -172,29 +172,29 @@ DispatchResponse TracingAgent::stop() {
172172

173173
DispatchResponse TracingAgent::getCategories(
174174
std::unique_ptr<protocol::Array<String>>* categories) {
175-
*categories = Array<String>::create();
175+
*categories = std::make_unique<Array<String>>();
176176
protocol::Array<String>* categories_list = categories->get();
177177
// In alphabetical order
178-
categories_list->addItem("node");
179-
categories_list->addItem("node.async_hooks");
180-
categories_list->addItem("node.bootstrap");
181-
categories_list->addItem("node.console");
182-
categories_list->addItem("node.dns.native");
183-
categories_list->addItem("node.environment");
184-
categories_list->addItem("node.fs.async");
185-
categories_list->addItem("node.fs.sync");
186-
categories_list->addItem("node.fs_dir.async");
187-
categories_list->addItem("node.fs_dir.sync");
188-
categories_list->addItem("node.http");
189-
categories_list->addItem("node.net.native");
190-
categories_list->addItem("node.perf");
191-
categories_list->addItem("node.perf.timerify");
192-
categories_list->addItem("node.perf.usertiming");
193-
categories_list->addItem("node.promises.rejections");
194-
categories_list->addItem("node.threadpoolwork.async");
195-
categories_list->addItem("node.threadpoolwork.sync");
196-
categories_list->addItem("node.vm.script");
197-
categories_list->addItem("v8");
178+
categories_list->emplace_back("node");
179+
categories_list->emplace_back("node.async_hooks");
180+
categories_list->emplace_back("node.bootstrap");
181+
categories_list->emplace_back("node.console");
182+
categories_list->emplace_back("node.dns.native");
183+
categories_list->emplace_back("node.environment");
184+
categories_list->emplace_back("node.fs.async");
185+
categories_list->emplace_back("node.fs.sync");
186+
categories_list->emplace_back("node.fs_dir.async");
187+
categories_list->emplace_back("node.fs_dir.sync");
188+
categories_list->emplace_back("node.http");
189+
categories_list->emplace_back("node.net.native");
190+
categories_list->emplace_back("node.perf");
191+
categories_list->emplace_back("node.perf.timerify");
192+
categories_list->emplace_back("node.perf.usertiming");
193+
categories_list->emplace_back("node.promises.rejections");
194+
categories_list->emplace_back("node.threadpoolwork.async");
195+
categories_list->emplace_back("node.threadpoolwork.sync");
196+
categories_list->emplace_back("node.vm.script");
197+
categories_list->emplace_back("v8");
198198
return DispatchResponse::OK();
199199
}
200200

tools/inspector_protocol/code_generator.py

-1
Original file line numberDiff line numberDiff line change
@@ -638,7 +638,6 @@ def main():
638638
"Object_h.template",
639639
"ValueConversions_h.template",
640640
"Maybe_h.template",
641-
"Array_h.template",
642641
"DispatcherBase_h.template",
643642
"Parser_h.template",
644643
"encoding_h.template",

tools/inspector_protocol/inspector_protocol.gni

-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ template("inspector_protocol_generate") {
3636
"$inspector_protocol_dir/lib/encoding_h.template",
3737
"$inspector_protocol_dir/lib/encoding_cpp.template",
3838
"$inspector_protocol_dir/lib/Allocator_h.template",
39-
"$inspector_protocol_dir/lib/Array_h.template",
4039
"$inspector_protocol_dir/lib/DispatcherBase_cpp.template",
4140
"$inspector_protocol_dir/lib/DispatcherBase_h.template",
4241
"$inspector_protocol_dir/lib/ErrorSupport_cpp.template",

tools/inspector_protocol/inspector_protocol.gypi

-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
'lib/encoding_h.template',
99
'lib/encoding_cpp.template',
1010
'lib/Allocator_h.template',
11-
'lib/Array_h.template',
1211
'lib/DispatcherBase_cpp.template',
1312
'lib/DispatcherBase_h.template',
1413
'lib/ErrorSupport_cpp.template',

tools/inspector_protocol/lib/Array_h.template

-138
This file was deleted.

tools/inspector_protocol/lib/Forward_h.template

+20-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
namespace {{namespace}} {
2323
{% endfor %}
2424

25-
template<typename T> class Array;
2625
class DictionaryValue;
2726
class DispatchResponse;
2827
class ErrorSupport;
@@ -35,6 +34,26 @@ class StringValue;
3534
class UberDispatcher;
3635
class Value;
3736

37+
namespace detail {
38+
template <typename T>
39+
struct ArrayTypedef { typedef std::vector<std::unique_ptr<T>> type; };
40+
41+
template <>
42+
struct ArrayTypedef<String> { typedef std::vector<String> type; };
43+
44+
template <>
45+
struct ArrayTypedef<int> { typedef std::vector<int> type; };
46+
47+
template <>
48+
struct ArrayTypedef<double> { typedef std::vector<double> type; };
49+
50+
template <>
51+
struct ArrayTypedef<bool> { typedef std::vector<bool> type; };
52+
} // namespace detail
53+
54+
template <typename T>
55+
using Array = typename detail::ArrayTypedef<T>::type;
56+
3857
{% for namespace in config.protocol.namespace %}
3958
} // namespace {{namespace}}
4059
{% endfor %}

tools/inspector_protocol/lib/ValueConversions_h.template

+66
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,72 @@ struct ValueConversions<Binary> {
128128
}
129129
};
130130

131+
template<typename T>
132+
struct ValueConversions<std::vector<std::unique_ptr<T>>> {
133+
static std::unique_ptr<std::vector<std::unique_ptr<T>>> fromValue(protocol::Value* value, ErrorSupport* errors) {
134+
protocol::ListValue* array = ListValue::cast(value);
135+
if (!array) {
136+
errors->addError("array expected");
137+
return nullptr;
138+
}
139+
errors->push();
140+
std::unique_ptr<std::vector<std::unique_ptr<T>>> result(
141+
new std::vector<std::unique_ptr<T>>());
142+
result->reserve(array->size());
143+
for (size_t i = 0; i < array->size(); ++i) {
144+
errors->setName(StringUtil::fromInteger(i));
145+
auto item = ValueConversions<T>::fromValue(array->at(i), errors);
146+
result->emplace_back(std::move(item));
147+
}
148+
errors->pop();
149+
if (errors->hasErrors())
150+
return nullptr;
151+
return result;
152+
}
153+
154+
static std::unique_ptr<protocol::ListValue> toValue(std::vector<std::unique_ptr<T>>* v)
155+
{
156+
std::unique_ptr<protocol::ListValue> result = ListValue::create();
157+
result->reserve(v->size());
158+
for (auto& item : *v)
159+
result->pushValue(ValueConversions<T>::toValue(item.get()));
160+
return result;
161+
}
162+
163+
};
164+
165+
template<typename T>
166+
struct ValueConversions<std::vector<T>> {
167+
static std::unique_ptr<std::vector<T>> fromValue(protocol::Value* value, ErrorSupport* errors) {
168+
protocol::ListValue* array = ListValue::cast(value);
169+
if (!array) {
170+
errors->addError("array expected");
171+
return nullptr;
172+
}
173+
errors->push();
174+
std::unique_ptr<std::vector<T>> result(new std::vector<T>());
175+
result->reserve(array->size());
176+
for (size_t i = 0; i < array->size(); ++i) {
177+
errors->setName(StringUtil::fromInteger(i));
178+
auto item = ValueConversions<T>::fromValue(array->at(i), errors);
179+
result->emplace_back(std::move(item));
180+
}
181+
errors->pop();
182+
if (errors->hasErrors())
183+
return nullptr;
184+
return result;
185+
}
186+
187+
static std::unique_ptr<protocol::ListValue> toValue(std::vector<T>* v)
188+
{
189+
std::unique_ptr<protocol::ListValue> result = ListValue::create();
190+
result->reserve(v->size());
191+
for (auto& item : *v)
192+
result->pushValue(ValueConversions<T>::toValue(item));
193+
return result;
194+
}
195+
};
196+
131197
template<>
132198
struct ValueConversions<Value> {
133199
static std::unique_ptr<Value> fromValue(protocol::Value* value, ErrorSupport* errors)

tools/inspector_protocol/lib/Values_h.template

+1
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,7 @@ public:
271271

272272
Value* at(size_t index);
273273
size_t size() const { return m_data.size(); }
274+
void reserve(size_t capacity) { m_data.reserve(capacity); }
274275

275276
private:
276277
ListValue();

0 commit comments

Comments
 (0)