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

Side by Side Diff: mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl

Issue 1520153002: [mojo] Allow value deserialization to fail (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@bindings-3-misc-support
Patch Set: Created 5 years 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 {%- import "interface_macros.tmpl" as interface_macros %} 1 {%- import "interface_macros.tmpl" as interface_macros %}
2 {%- import "struct_macros.tmpl" as struct_macros %} 2 {%- import "struct_macros.tmpl" as struct_macros %}
3 {%- from "enum_macros.tmpl" import is_valid_enum_def %} 3 {%- from "enum_macros.tmpl" import is_valid_enum_def %}
4 4
5 {%- set class_name = interface.name %} 5 {%- set class_name = interface.name %}
6 {%- set proxy_name = interface.name ~ "Proxy" %} 6 {%- set proxy_name = interface.name ~ "Proxy" %}
7 {%- set namespace_as_string = "%s"|format(namespace|replace(".","::")) %} 7 {%- set namespace_as_string = "%s"|format(namespace|replace(".","::")) %}
8 8
9 {%- macro alloc_params(struct, serialization_context) %} 9 {%- macro alloc_params(struct, serialization_context) %}
10 {%- for param in struct.packed.packed_fields_in_ordinal_order %} 10 {%- for param in struct.packed.packed_fields_in_ordinal_order %}
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 switch (message->header()->name) { 217 switch (message->header()->name) {
218 {%- for method in interface.methods %} 218 {%- for method in interface.methods %}
219 case internal::k{{class_name}}_{{method.name}}_Name: { 219 case internal::k{{class_name}}_{{method.name}}_Name: {
220 mojo::internal::ScopedTaskTracking task_id("mojo::{{namespace_as_string}}: :{{class_name}}::{{method.name}}", __FILE__, __LINE__); 220 mojo::internal::ScopedTaskTracking task_id("mojo::{{namespace_as_string}}: :{{class_name}}::{{method.name}}", __FILE__, __LINE__);
221 {%- if method.response_parameters != None %} 221 {%- if method.response_parameters != None %}
222 internal::{{class_name}}_{{method.name}}_Params_Data* params = 222 internal::{{class_name}}_{{method.name}}_Params_Data* params =
223 reinterpret_cast<internal::{{class_name}}_{{method.name}}_Params_Data* >( 223 reinterpret_cast<internal::{{class_name}}_{{method.name}}_Params_Data* >(
224 message->mutable_payload()); 224 message->mutable_payload());
225 225
226 params->DecodePointersAndHandles(message->mutable_handles()); 226 params->DecodePointersAndHandles(message->mutable_handles());
227 {{alloc_params(method.param_struct, "&serialization_context_")|indent(4)}}
227 {{class_name}}::{{method.name}}Callback::Runnable* runnable = 228 {{class_name}}::{{method.name}}Callback::Runnable* runnable =
228 new {{class_name}}_{{method.name}}_ProxyToResponder( 229 new {{class_name}}_{{method.name}}_ProxyToResponder(
229 message->request_id(), responder); 230 message->request_id(), responder);
230 {{class_name}}::{{method.name}}Callback callback(runnable); 231 {{class_name}}::{{method.name}}Callback callback(runnable);
231 {{alloc_params(method.param_struct, "&serialization_context_")|indent(4)}}
232 // A null |sink_| means no implementation was bound. 232 // A null |sink_| means no implementation was bound.
233 assert(sink_); 233 assert(sink_);
234 TRACE_EVENT0("mojom", "{{class_name}}::{{method.name}}"); 234 TRACE_EVENT0("mojom", "{{class_name}}::{{method.name}}");
235 sink_->{{method.name}}( 235 sink_->{{method.name}}(
236 {%- if method.parameters -%}{{pass_params(method.parameters)}}, {% endif -%}call back); 236 {%- if method.parameters -%}{{pass_params(method.parameters)}}, {% endif -%}call back);
237 return true; 237 return true;
238 {%- else %} 238 {%- else %}
239 break; 239 break;
240 {%- endif %} 240 {%- endif %}
241 } 241 }
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 default: 317 default:
318 break; 318 break;
319 } 319 }
320 320
321 // Unrecognized message. 321 // Unrecognized message.
322 ReportValidationError( 322 ReportValidationError(
323 mojo::internal::VALIDATION_ERROR_MESSAGE_HEADER_UNKNOWN_METHOD); 323 mojo::internal::VALIDATION_ERROR_MESSAGE_HEADER_UNKNOWN_METHOD);
324 return false; 324 return false;
325 } 325 }
326 {%- endif -%} 326 {%- endif -%}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698