OLD | NEW |
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 "platform/inspector_protocol/{{class_name}}.h" | 7 #include "platform/inspector_protocol/{{class_name}}.h" |
8 | 8 |
9 #include "platform/inspector_protocol/Collections.h" | 9 #include "platform/inspector_protocol/Collections.h" |
10 #include "platform/inspector_protocol/FrontendChannel.h" | 10 #include "platform/inspector_protocol/FrontendChannel.h" |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 m_frontendChannel = nullptr; | 60 m_frontendChannel = nullptr; |
61 for (auto& weak : m_weakPtrs) | 61 for (auto& weak : m_weakPtrs) |
62 weak.first->dispose(); | 62 weak.first->dispose(); |
63 m_weakPtrs.clear(); | 63 m_weakPtrs.clear(); |
64 } | 64 } |
65 | 65 |
66 PassOwnPtr<DispatcherImplWeakPtr> weakPtr() | 66 PassOwnPtr<DispatcherImplWeakPtr> weakPtr() |
67 { | 67 { |
68 OwnPtr<DispatcherImplWeakPtr> weak = adoptPtr(new DispatcherImplWeakPtr(
this)); | 68 OwnPtr<DispatcherImplWeakPtr> weak = adoptPtr(new DispatcherImplWeakPtr(
this)); |
69 m_weakPtrs.add(weak.get()); | 69 m_weakPtrs.add(weak.get()); |
70 return weak.release(); | 70 return weak; |
71 } | 71 } |
72 | 72 |
73 virtual void dispatch(int sessionId, const String16& message); | 73 virtual void dispatch(int sessionId, const String16& message); |
74 virtual void reportProtocolError(int sessionId, int callId, CommonErrorCode,
const String16& errorMessage, ErrorSupport* errors) const; | 74 virtual void reportProtocolError(int sessionId, int callId, CommonErrorCode,
const String16& errorMessage, ErrorSupport* errors) const; |
75 using Dispatcher::reportProtocolError; | 75 using Dispatcher::reportProtocolError; |
76 | 76 |
77 void sendResponse(int sessionId, int callId, const ErrorString& invocationEr
ror, ErrorSupport* errors, PassOwnPtr<protocol::DictionaryValue> result); | 77 void sendResponse(int sessionId, int callId, const ErrorString& invocationEr
ror, ErrorSupport* errors, PassOwnPtr<protocol::DictionaryValue> result); |
78 | 78 |
79 {% for domain in api.domains %} | 79 {% for domain in api.domains %} |
80 virtual void registerAgent(blink::protocol::Backend::{{domain.domain}}* agen
t) { ASSERT(!m_{{domain.domain | lower}}Agent); m_{{domain.domain | lower}}Agent
= agent; } | 80 virtual void registerAgent(blink::protocol::Backend::{{domain.domain}}* agen
t) { ASSERT(!m_{{domain.domain | lower}}Agent); m_{{domain.domain | lower}}Agent
= agent; } |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
171 { | 171 { |
172 OwnPtr<protocol::DictionaryValue> resultObject = DictionaryValue::create
(); | 172 OwnPtr<protocol::DictionaryValue> resultObject = DictionaryValue::create
(); |
173 {% for parameter in command.returns %} | 173 {% for parameter in command.returns %} |
174 {% if "optional" in parameter %} | 174 {% if "optional" in parameter %} |
175 if ({{parameter.name}}.isJust()) | 175 if ({{parameter.name}}.isJust()) |
176 resultObject->setValue("{{parameter.name}}", toValue({{parameter.nam
e}}.fromJust())); | 176 resultObject->setValue("{{parameter.name}}", toValue({{parameter.nam
e}}.fromJust())); |
177 {% else %} | 177 {% else %} |
178 resultObject->setValue("{{parameter.name}}", toValue({{resolve_type(para
meter).to_raw_type % parameter.name}})); | 178 resultObject->setValue("{{parameter.name}}", toValue({{resolve_type(para
meter).to_raw_type % parameter.name}})); |
179 {% endif %} | 179 {% endif %} |
180 {% endfor %} | 180 {% endfor %} |
181 sendIfActive(resultObject.release(), ErrorString()); | 181 sendIfActive(std::move(resultObject), ErrorString()); |
182 } | 182 } |
183 | 183 |
184 void sendFailure(const ErrorString& error) override | 184 void sendFailure(const ErrorString& error) override |
185 { | 185 { |
186 ASSERT(error.length()); | 186 ASSERT(error.length()); |
187 sendIfActive(nullptr, error); | 187 sendIfActive(nullptr, error); |
188 } | 188 } |
189 }; | 189 }; |
190 {% endif %} | 190 {% endif %} |
191 | 191 |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
241 ErrorString error; | 241 ErrorString error; |
242 m_{{domain.domain | lower}}Agent->{{command.name}}(&error | 242 m_{{domain.domain | lower}}Agent->{{command.name}}(&error |
243 {%- for property in command.parameters -%} | 243 {%- for property in command.parameters -%} |
244 {%- if "optional" in property -%} | 244 {%- if "optional" in property -%} |
245 , in_{{property.name}} | 245 , in_{{property.name}} |
246 {%- else -%} | 246 {%- else -%} |
247 , {{resolve_type(property).to_pass_type % ("in_" + property.name)}} | 247 , {{resolve_type(property).to_pass_type % ("in_" + property.name)}} |
248 {%- endif -%} | 248 {%- endif -%} |
249 {%- endfor %} | 249 {%- endfor %} |
250 {%- if "async" in command -%} | 250 {%- if "async" in command -%} |
251 , callback.release() | 251 , std::move(callback) |
252 {%- elif "returns" in command %} | 252 {%- elif "returns" in command %} |
253 {%- for property in command.returns -%} | 253 {%- for property in command.returns -%} |
254 , &out_{{property.name}} | 254 , &out_{{property.name}} |
255 {%- endfor %} | 255 {%- endfor %} |
256 {% endif %}); | 256 {% endif %}); |
257 {% if "returns" in command and not("async" in command) %} | 257 {% if "returns" in command and not("async" in command) %} |
258 if (!error.length()) { | 258 if (!error.length()) { |
259 {% for parameter in command.returns %} | 259 {% for parameter in command.returns %} |
260 {% if "optional" in parameter %} | 260 {% if "optional" in parameter %} |
261 if (out_{{parameter.name}}.isJust()) | 261 if (out_{{parameter.name}}.isJust()) |
262 result->setValue("{{parameter.name}}", toValue(out_{{parameter.name}
}.fromJust())); | 262 result->setValue("{{parameter.name}}", toValue(out_{{parameter.name}
}.fromJust())); |
263 {% else %} | 263 {% else %} |
264 result->setValue("{{parameter.name}}", toValue({{resolve_type(parameter)
.to_raw_type % ("out_" + parameter.name)}})); | 264 result->setValue("{{parameter.name}}", toValue({{resolve_type(parameter)
.to_raw_type % ("out_" + parameter.name)}})); |
265 {% endif %} | 265 {% endif %} |
266 {% endfor %} | 266 {% endfor %} |
267 } | 267 } |
268 if (weak->get()) | 268 if (weak->get()) |
269 weak->get()->sendResponse(sessionId, callId, error, result.release()); | 269 weak->get()->sendResponse(sessionId, callId, error, std::move(result)); |
270 {% elif not("async" in command) %} | 270 {% elif not("async" in command) %} |
271 if (weak->get()) | 271 if (weak->get()) |
272 weak->get()->sendResponse(sessionId, callId, error); | 272 weak->get()->sendResponse(sessionId, callId, error); |
273 {% endif %} | 273 {% endif %} |
274 } | 274 } |
275 {% endfor %} | 275 {% endfor %} |
276 {% endfor %} | 276 {% endfor %} |
277 | 277 |
278 PassOwnPtr<Dispatcher> Dispatcher::create(FrontendChannel* frontendChannel) | 278 PassOwnPtr<Dispatcher> Dispatcher::create(FrontendChannel* frontendChannel) |
279 { | 279 { |
280 return adoptPtr(new DispatcherImpl(frontendChannel)); | 280 return adoptPtr(new DispatcherImpl(frontendChannel)); |
281 } | 281 } |
282 | 282 |
283 void DispatcherImpl::dispatch(int sessionId, const String16& message) | 283 void DispatcherImpl::dispatch(int sessionId, const String16& message) |
284 { | 284 { |
285 int callId = 0; | 285 int callId = 0; |
286 OwnPtr<protocol::Value> parsedMessage = parseJSON(message); | 286 OwnPtr<protocol::Value> parsedMessage = parseJSON(message); |
287 ASSERT(parsedMessage); | 287 ASSERT(parsedMessage); |
288 OwnPtr<protocol::DictionaryValue> messageObject = DictionaryValue::cast(pars
edMessage.release()); | 288 OwnPtr<protocol::DictionaryValue> messageObject = DictionaryValue::cast(std:
:move(parsedMessage)); |
289 ASSERT(messageObject); | 289 ASSERT(messageObject); |
290 | 290 |
291 protocol::Value* callIdValue = messageObject->get("id"); | 291 protocol::Value* callIdValue = messageObject->get("id"); |
292 bool success = callIdValue->asNumber(&callId); | 292 bool success = callIdValue->asNumber(&callId); |
293 ASSERT_UNUSED(success, success); | 293 ASSERT_UNUSED(success, success); |
294 | 294 |
295 protocol::Value* methodValue = messageObject->get("method"); | 295 protocol::Value* methodValue = messageObject->get("method"); |
296 String16 method; | 296 String16 method; |
297 success = methodValue && methodValue->asString(&method); | 297 success = methodValue && methodValue->asString(&method); |
298 ASSERT_UNUSED(success, success); | 298 ASSERT_UNUSED(success, success); |
299 | 299 |
300 protocol::HashMap<String16, CallHandler>::iterator it = m_dispatchMap.find(m
ethod); | 300 protocol::HashMap<String16, CallHandler>::iterator it = m_dispatchMap.find(m
ethod); |
301 if (it == m_dispatchMap.end()) { | 301 if (it == m_dispatchMap.end()) { |
302 reportProtocolError(sessionId, callId, MethodNotFound, "'" + method + "'
wasn't found"); | 302 reportProtocolError(sessionId, callId, MethodNotFound, "'" + method + "'
wasn't found"); |
303 return; | 303 return; |
304 } | 304 } |
305 | 305 |
306 protocol::ErrorSupport errors; | 306 protocol::ErrorSupport errors; |
307 ((*this).*(*it->second))(sessionId, callId, messageObject.release(), &errors
); | 307 ((*this).*(*it->second))(sessionId, callId, std::move(messageObject), &error
s); |
308 } | 308 } |
309 | 309 |
310 void DispatcherImpl::sendResponse(int sessionId, int callId, const ErrorString&
invocationError, ErrorSupport* errors, PassOwnPtr<protocol::DictionaryValue> res
ult) | 310 void DispatcherImpl::sendResponse(int sessionId, int callId, const ErrorString&
invocationError, ErrorSupport* errors, PassOwnPtr<protocol::DictionaryValue> res
ult) |
311 { | 311 { |
312 if (invocationError.length() || (errors && errors->hasErrors())) { | 312 if (invocationError.length() || (errors && errors->hasErrors())) { |
313 reportProtocolError(sessionId, callId, ServerError, invocationError, err
ors); | 313 reportProtocolError(sessionId, callId, ServerError, invocationError, err
ors); |
314 return; | 314 return; |
315 } | 315 } |
316 | 316 |
317 OwnPtr<protocol::DictionaryValue> responseMessage = DictionaryValue::create(
); | 317 OwnPtr<protocol::DictionaryValue> responseMessage = DictionaryValue::create(
); |
318 responseMessage->setNumber("id", callId); | 318 responseMessage->setNumber("id", callId); |
319 responseMessage->setObject("result", std::move(result)); | 319 responseMessage->setObject("result", std::move(result)); |
320 if (m_frontendChannel) | 320 if (m_frontendChannel) |
321 m_frontendChannel->sendProtocolResponse(sessionId, callId, responseMessa
ge.release()); | 321 m_frontendChannel->sendProtocolResponse(sessionId, callId, std::move(res
ponseMessage)); |
322 } | 322 } |
323 | 323 |
324 void Dispatcher::reportProtocolError(int sessionId, int callId, CommonErrorCode
code, const String16& errorMessage) const | 324 void Dispatcher::reportProtocolError(int sessionId, int callId, CommonErrorCode
code, const String16& errorMessage) const |
325 { | 325 { |
326 ErrorSupport errors; | 326 ErrorSupport errors; |
327 reportProtocolError(sessionId, callId, code, errorMessage, &errors); | 327 reportProtocolError(sessionId, callId, code, errorMessage, &errors); |
328 } | 328 } |
329 | 329 |
330 void DispatcherImpl::reportProtocolError(int sessionId, int callId, CommonErrorC
ode code, const String16& errorMessage, ErrorSupport* errors) const | 330 void DispatcherImpl::reportProtocolError(int sessionId, int callId, CommonErrorC
ode code, const String16& errorMessage, ErrorSupport* errors) const |
331 { | 331 { |
332 ASSERT(code >=0); | 332 ASSERT(code >=0); |
333 ASSERT((unsigned)code < m_commonErrors.size()); | 333 ASSERT((unsigned)code < m_commonErrors.size()); |
334 ASSERT(m_commonErrors[code]); | 334 ASSERT(m_commonErrors[code]); |
335 OwnPtr<protocol::DictionaryValue> error = DictionaryValue::create(); | 335 OwnPtr<protocol::DictionaryValue> error = DictionaryValue::create(); |
336 error->setNumber("code", m_commonErrors[code]); | 336 error->setNumber("code", m_commonErrors[code]); |
337 error->setString("message", errorMessage); | 337 error->setString("message", errorMessage); |
338 ASSERT(error); | 338 ASSERT(error); |
339 if (errors && errors->hasErrors()) | 339 if (errors && errors->hasErrors()) |
340 error->setString("data", errors->errors()); | 340 error->setString("data", errors->errors()); |
341 OwnPtr<protocol::DictionaryValue> message = DictionaryValue::create(); | 341 OwnPtr<protocol::DictionaryValue> message = DictionaryValue::create(); |
342 message->setObject("error", error.release()); | 342 message->setObject("error", std::move(error)); |
343 message->setNumber("id", callId); | 343 message->setNumber("id", callId); |
344 if (m_frontendChannel) | 344 if (m_frontendChannel) |
345 m_frontendChannel->sendProtocolResponse(sessionId, callId, message.relea
se()); | 345 m_frontendChannel->sendProtocolResponse(sessionId, callId, std::move(mes
sage)); |
346 } | 346 } |
347 | 347 |
348 bool Dispatcher::getCommandName(const String16& message, String16* result) | 348 bool Dispatcher::getCommandName(const String16& message, String16* result) |
349 { | 349 { |
350 OwnPtr<protocol::Value> value = parseJSON(message); | 350 OwnPtr<protocol::Value> value = parseJSON(message); |
351 if (!value) | 351 if (!value) |
352 return false; | 352 return false; |
353 | 353 |
354 protocol::DictionaryValue* object = DictionaryValue::cast(value.get()); | 354 protocol::DictionaryValue* object = DictionaryValue::cast(value.get()); |
355 if (!object) | 355 if (!object) |
356 return false; | 356 return false; |
357 | 357 |
358 if (!object->getString("method", result)) | 358 if (!object->getString("method", result)) |
359 return false; | 359 return false; |
360 | 360 |
361 return true; | 361 return true; |
362 } | 362 } |
363 | 363 |
364 } // namespace protocol | 364 } // namespace protocol |
365 } // namespace blink | 365 } // namespace blink |
OLD | NEW |