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

Side by Side Diff: third_party/WebKit/Source/platform/inspector_protocol/TypeBuilder_cpp.template

Issue 2164353002: [DevTools] Unify toValue and FromValue into ValueConversions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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 unified diff | Download patch
OLDNEW
1 // This file is generated 1 // This file is generated
2 2
3 // Copyright (c) 2016 The Chromium Authors. All rights reserved. 3 // Copyright (c) 2016 The Chromium Authors. All rights reserved.
4 // Use of this source code is governed by a BSD-style license that can be 4 // Use of this source code is governed by a BSD-style license that can be
5 // found in the LICENSE file. 5 // found in the LICENSE file.
6 6
7 #include "{{output_package}}/{{domain.domain}}.h" 7 #include "{{output_package}}/{{domain.domain}}.h"
8 8
9 #include "platform/inspector_protocol/DispatcherBase.h" 9 #include "platform/inspector_protocol/DispatcherBase.h"
10 10
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 } 42 }
43 43
44 std::unique_ptr<{{type.id}}> result(new {{type.id}}()); 44 std::unique_ptr<{{type.id}}> result(new {{type.id}}());
45 protocol::DictionaryValue* object = DictionaryValue::cast(value); 45 protocol::DictionaryValue* object = DictionaryValue::cast(value);
46 errors->push(); 46 errors->push();
47 {% for property in type.properties %} 47 {% for property in type.properties %}
48 protocol::Value* {{property.name}}Value = object->get("{{property.name}}"); 48 protocol::Value* {{property.name}}Value = object->get("{{property.name}}");
49 {% if property.optional %} 49 {% if property.optional %}
50 if ({{property.name}}Value) { 50 if ({{property.name}}Value) {
51 errors->setName("{{property.name}}"); 51 errors->setName("{{property.name}}");
52 result->m_{{property.name}} = FromValue<{{resolve_type(property).raw_typ e}}>::parse({{property.name}}Value, errors); 52 result->m_{{property.name}} = ValueConversions<{{resolve_type(property). raw_type}}>::parse({{property.name}}Value, errors);
53 } 53 }
54 {% else %} 54 {% else %}
55 errors->setName("{{property.name}}"); 55 errors->setName("{{property.name}}");
56 result->m_{{property.name}} = FromValue<{{resolve_type(property).raw_type}}> ::parse({{property.name}}Value, errors); 56 result->m_{{property.name}} = ValueConversions<{{resolve_type(property).raw_ type}}>::parse({{property.name}}Value, errors);
57 {% endif %} 57 {% endif %}
58 {% endfor %} 58 {% endfor %}
59 errors->pop(); 59 errors->pop();
60 if (errors->hasErrors()) 60 if (errors->hasErrors())
61 return nullptr; 61 return nullptr;
62 return result; 62 return result;
63 } 63 }
64 64
65 std::unique_ptr<protocol::DictionaryValue> {{type.id}}::serialize() const 65 std::unique_ptr<protocol::DictionaryValue> {{type.id}}::serialize() const
66 { 66 {
67 std::unique_ptr<protocol::DictionaryValue> result = DictionaryValue::create( ); 67 std::unique_ptr<protocol::DictionaryValue> result = DictionaryValue::create( );
68 {% for property in type.properties %} 68 {% for property in type.properties %}
69 {% if property.optional %} 69 {% if property.optional %}
70 if (m_{{property.name}}.isJust()) 70 if (m_{{property.name}}.isJust())
71 result->setValue("{{property.name}}", toValue(m_{{property.name}}.fromJu st())); 71 result->setValue("{{property.name}}", ValueConversions<{{resolve_type(pr operty).raw_type}}>::serialize(m_{{property.name}}.fromJust()));
72 {% else %} 72 {% else %}
73 result->setValue("{{property.name}}", toValue({{resolve_type(property).to_ra w_type % ("m_" + property.name)}})); 73 result->setValue("{{property.name}}", ValueConversions<{{resolve_type(proper ty).raw_type}}>::serialize({{resolve_type(property).to_raw_type % ("m_" + proper ty.name)}}));
74 {% endif %} 74 {% endif %}
75 {% endfor %} 75 {% endfor %}
76 return result; 76 return result;
77 } 77 }
78 78
79 std::unique_ptr<{{type.id}}> {{type.id}}::clone() const 79 std::unique_ptr<{{type.id}}> {{type.id}}::clone() const
80 { 80 {
81 ErrorSupport errors; 81 ErrorSupport errors;
82 return parse(serialize().get(), &errors); 82 return parse(serialize().get(), &errors);
83 } 83 }
(...skipping 28 matching lines...) Expand all
112 {{resolve_type(parameter).pass_type}} 112 {{resolve_type(parameter).pass_type}}
113 {%- endif %} {{parameter.name}}{%- if not loop.last -%}, {% endif -%} 113 {%- endif %} {{parameter.name}}{%- if not loop.last -%}, {% endif -%}
114 {% endfor -%}) 114 {% endfor -%})
115 { 115 {
116 std::unique_ptr<protocol::DictionaryValue> jsonMessage = DictionaryValue::cr eate(); 116 std::unique_ptr<protocol::DictionaryValue> jsonMessage = DictionaryValue::cr eate();
117 jsonMessage->setString("method", "{{domain.domain}}.{{event.name}}"); 117 jsonMessage->setString("method", "{{domain.domain}}.{{event.name}}");
118 std::unique_ptr<protocol::DictionaryValue> paramsObject = DictionaryValue::c reate(); 118 std::unique_ptr<protocol::DictionaryValue> paramsObject = DictionaryValue::c reate();
119 {% for parameter in event.parameters %} 119 {% for parameter in event.parameters %}
120 {% if "optional" in parameter %} 120 {% if "optional" in parameter %}
121 if ({{parameter.name}}.isJust()) 121 if ({{parameter.name}}.isJust())
122 paramsObject->setValue("{{parameter.name}}", toValue({{parameter.name}}. fromJust())); 122 paramsObject->setValue("{{parameter.name}}", ValueConversions<{{resolve_ type(parameter).raw_type}}>::serialize({{parameter.name}}.fromJust()));
123 {% else %} 123 {% else %}
124 paramsObject->setValue("{{parameter.name}}", toValue({{resolve_type(paramete r).to_raw_type % parameter.name}})); 124 paramsObject->setValue("{{parameter.name}}", ValueConversions<{{resolve_type (parameter).raw_type}}>::serialize({{resolve_type(parameter).to_raw_type % param eter.name}}));
125 {% endif %} 125 {% endif %}
126 {% endfor %} 126 {% endfor %}
127 jsonMessage->setObject("params", std::move(paramsObject)); 127 jsonMessage->setObject("params", std::move(paramsObject));
128 if (m_frontendChannel) 128 if (m_frontendChannel)
129 m_frontendChannel->sendProtocolNotification(jsonMessage->toJSONString()) ; 129 m_frontendChannel->sendProtocolNotification(jsonMessage->toJSONString()) ;
130 } 130 }
131 {% endfor %} 131 {% endfor %}
132 132
133 // --------------------- Dispatcher. 133 // --------------------- Dispatcher.
134 134
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 {%- else -%} 189 {%- else -%}
190 {{resolve_type(parameter).pass_type}} {{parameter.name}} 190 {{resolve_type(parameter).pass_type}} {{parameter.name}}
191 {%- endif -%} 191 {%- endif -%}
192 {%- if not loop.last -%}, {% endif -%} 192 {%- if not loop.last -%}, {% endif -%}
193 {%- endfor -%}) override 193 {%- endfor -%}) override
194 { 194 {
195 std::unique_ptr<protocol::DictionaryValue> resultObject = DictionaryValu e::create(); 195 std::unique_ptr<protocol::DictionaryValue> resultObject = DictionaryValu e::create();
196 {% for parameter in command.returns %} 196 {% for parameter in command.returns %}
197 {% if "optional" in parameter %} 197 {% if "optional" in parameter %}
198 if ({{parameter.name}}.isJust()) 198 if ({{parameter.name}}.isJust())
199 resultObject->setValue("{{parameter.name}}", toValue({{parameter.nam e}}.fromJust())); 199 resultObject->setValue("{{parameter.name}}", ValueConversions<{{reso lve_type(parameter).raw_type}}>::serialize({{parameter.name}}.fromJust()));
200 {% else %} 200 {% else %}
201 resultObject->setValue("{{parameter.name}}", toValue({{resolve_type(para meter).to_raw_type % parameter.name}})); 201 resultObject->setValue("{{parameter.name}}", ValueConversions<{{resolve_ type(parameter).raw_type}}>::serialize({{resolve_type(parameter).to_raw_type % p arameter.name}}));
202 {% endif %} 202 {% endif %}
203 {% endfor %} 203 {% endfor %}
204 sendIfActive(std::move(resultObject), ErrorString()); 204 sendIfActive(std::move(resultObject), ErrorString());
205 } 205 }
206 206
207 void sendFailure(const ErrorString& error) override 207 void sendFailure(const ErrorString& error) override
208 { 208 {
209 DCHECK(error.length()); 209 DCHECK(error.length());
210 sendIfActive(nullptr, error); 210 sendIfActive(nullptr, error);
211 } 211 }
212 212
213 }; 213 };
214 {% endif %} 214 {% endif %}
215 215
216 void DispatcherImpl::{{command.name}}(int callId, std::unique_ptr<DictionaryValu e> requestMessageObject, ErrorSupport* errors) 216 void DispatcherImpl::{{command.name}}(int callId, std::unique_ptr<DictionaryValu e> requestMessageObject, ErrorSupport* errors)
217 { 217 {
218 {% if "parameters" in command %} 218 {% if "parameters" in command %}
219 // Prepare input parameters. 219 // Prepare input parameters.
220 protocol::DictionaryValue* object = DictionaryValue::cast(requestMessageObje ct->get("params")); 220 protocol::DictionaryValue* object = DictionaryValue::cast(requestMessageObje ct->get("params"));
221 errors->push(); 221 errors->push();
222 {% for property in command.parameters %} 222 {% for property in command.parameters %}
223 protocol::Value* {{property.name}}Value = object ? object->get("{{property.n ame}}") : nullptr; 223 protocol::Value* {{property.name}}Value = object ? object->get("{{property.n ame}}") : nullptr;
224 {% if property.optional %} 224 {% if property.optional %}
225 Maybe<{{resolve_type(property).raw_type}}> in_{{property.name}}; 225 Maybe<{{resolve_type(property).raw_type}}> in_{{property.name}};
226 if ({{property.name}}Value) { 226 if ({{property.name}}Value) {
227 errors->setName("{{property.name}}"); 227 errors->setName("{{property.name}}");
228 in_{{property.name}} = FromValue<{{resolve_type(property).raw_type}}>::p arse({{property.name}}Value, errors); 228 in_{{property.name}} = ValueConversions<{{resolve_type(property).raw_typ e}}>::parse({{property.name}}Value, errors);
229 } 229 }
230 {% else %} 230 {% else %}
231 errors->setName("{{property.name}}"); 231 errors->setName("{{property.name}}");
232 {{resolve_type(property).type}} in_{{property.name}} = FromValue<{{resolve_t ype(property).raw_type}}>::parse({{property.name}}Value, errors); 232 {{resolve_type(property).type}} in_{{property.name}} = ValueConversions<{{re solve_type(property).raw_type}}>::parse({{property.name}}Value, errors);
233 {% endif %} 233 {% endif %}
234 {% endfor %} 234 {% endfor %}
235 errors->pop(); 235 errors->pop();
236 if (errors->hasErrors()) { 236 if (errors->hasErrors()) {
237 reportProtocolError(callId, InvalidParams, kInvalidRequest, errors); 237 reportProtocolError(callId, InvalidParams, kInvalidRequest, errors);
238 return; 238 return;
239 } 239 }
240 {% endif %} 240 {% endif %}
241 {% if "async" in command %} 241 {% if "async" in command %}
242 std::unique_ptr<{{command.name | to_title_case}}CallbackImpl> callback(new { {command.name | to_title_case}}CallbackImpl(weakPtr(), callId)); 242 std::unique_ptr<{{command.name | to_title_case}}CallbackImpl> callback(new { {command.name | to_title_case}}CallbackImpl(weakPtr(), callId));
(...skipping 24 matching lines...) Expand all
267 {%- elif "returns" in command %} 267 {%- elif "returns" in command %}
268 {%- for property in command.returns -%} 268 {%- for property in command.returns -%}
269 , &out_{{property.name}} 269 , &out_{{property.name}}
270 {%- endfor %} 270 {%- endfor %}
271 {% endif %}); 271 {% endif %});
272 {% if "returns" in command and not("async" in command) %} 272 {% if "returns" in command and not("async" in command) %}
273 if (!error.length()) { 273 if (!error.length()) {
274 {% for parameter in command.returns %} 274 {% for parameter in command.returns %}
275 {% if "optional" in parameter %} 275 {% if "optional" in parameter %}
276 if (out_{{parameter.name}}.isJust()) 276 if (out_{{parameter.name}}.isJust())
277 result->setValue("{{parameter.name}}", toValue(out_{{parameter.name} }.fromJust())); 277 result->setValue("{{parameter.name}}", ValueConversions<{{resolve_ty pe(parameter).raw_type}}>::serialize(out_{{parameter.name}}.fromJust()));
278 {% else %} 278 {% else %}
279 result->setValue("{{parameter.name}}", toValue({{resolve_type(parameter) .to_raw_type % ("out_" + parameter.name)}})); 279 result->setValue("{{parameter.name}}", ValueConversions<{{resolve_type(p arameter).raw_type}}>::serialize({{resolve_type(parameter).to_raw_type % ("out_" + parameter.name)}}));
280 {% endif %} 280 {% endif %}
281 {% endfor %} 281 {% endfor %}
282 } 282 }
283 if (weak->get()) 283 if (weak->get())
284 weak->get()->sendResponse(callId, error, std::move(result)); 284 weak->get()->sendResponse(callId, error, std::move(result));
285 {% elif not("async" in command) %} 285 {% elif not("async" in command) %}
286 if (weak->get()) 286 if (weak->get())
287 weak->get()->sendResponse(callId, error); 287 weak->get()->sendResponse(callId, error);
288 {% endif %} 288 {% endif %}
289 } 289 }
290 {% endfor %} 290 {% endfor %}
291 291
292 // static 292 // static
293 void Dispatcher::wire(UberDispatcher* dispatcher, Backend* backend) 293 void Dispatcher::wire(UberDispatcher* dispatcher, Backend* backend)
294 { 294 {
295 dispatcher->registerBackend("{{domain.domain}}", wrapUnique(new DispatcherIm pl(dispatcher->channel(), backend))); 295 dispatcher->registerBackend("{{domain.domain}}", wrapUnique(new DispatcherIm pl(dispatcher->channel(), backend)));
296 } 296 }
297 297
298 } // {{domain.domain}} 298 } // {{domain.domain}}
299 } // namespace protocol 299 } // namespace protocol
300 } // namespace blink 300 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698