| OLD | NEW |
| 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 | 3 |
| 4 {%- set class_name = interface.name %} | 4 {%- set class_name = interface.name %} |
| 5 {%- set proxy_name = interface.name ~ "Proxy" %} | 5 {%- set proxy_name = interface.name ~ "Proxy" %} |
| 6 {%- set namespace_as_string = "%s"|format(namespace|replace(".","::")) %} | 6 {%- set namespace_as_string = "%s"|format(namespace|replace(".","::")) %} |
| 7 | 7 |
| 8 {%- macro alloc_params(struct, params, message, serialization_context, | 8 {%- macro alloc_params(struct, params, message, serialization_context, |
| 9 description) %} | 9 description) %} |
| 10 ({{serialization_context}})->handles.Swap(({{message}})->mutable_handles()); | 10 ({{serialization_context}})->handles.Swap(({{message}})->mutable_handles()); |
| (...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 288 ALLOW_UNUSED_LOCAL(ok); | 288 ALLOW_UNUSED_LOCAL(ok); |
| 289 // TODO(darin): !ok returned here indicates a malformed message, and that may | 289 // TODO(darin): !ok returned here indicates a malformed message, and that may |
| 290 // be good reason to close the connection. However, we don't have a way to do | 290 // be good reason to close the connection. However, we don't have a way to do |
| 291 // that from here. We should add a way. | 291 // that from here. We should add a way. |
| 292 delete responder_; | 292 delete responder_; |
| 293 responder_ = nullptr; | 293 responder_ = nullptr; |
| 294 } | 294 } |
| 295 {%- endif -%} | 295 {%- endif -%} |
| 296 {%- endfor %} | 296 {%- endfor %} |
| 297 | 297 |
| 298 {{class_name}}Stub::{{class_name}}Stub() | 298 {#--- StubDispatch definition #} |
| 299 : sink_(nullptr) { | |
| 300 } | |
| 301 | 299 |
| 302 {{class_name}}Stub::~{{interface.name}}Stub() {} | 300 // static |
| 303 | 301 bool {{class_name}}StubDispatch::Accept( |
| 304 {#--- Stub definition #} | 302 {{interface.name}}* impl, |
| 305 | 303 mojo::internal::SerializationContext* context, |
| 306 bool {{class_name}}Stub::Accept(mojo::Message* message) { | 304 mojo::Message* message) { |
| 307 {%- if interface.methods %} | 305 {%- if interface.methods %} |
| 308 switch (message->header()->name) { | 306 switch (message->header()->name) { |
| 309 {%- for method in interface.methods %} | 307 {%- for method in interface.methods %} |
| 310 case internal::k{{class_name}}_{{method.name}}_Name: { | 308 case internal::k{{class_name}}_{{method.name}}_Name: { |
| 311 {%- if method.response_parameters == None %} | 309 {%- if method.response_parameters == None %} |
| 312 internal::{{class_name}}_{{method.name}}_Params_Data* params = | 310 internal::{{class_name}}_{{method.name}}_Params_Data* params = |
| 313 reinterpret_cast<internal::{{class_name}}_{{method.name}}_Params_Data*
>( | 311 reinterpret_cast<internal::{{class_name}}_{{method.name}}_Params_Data*
>( |
| 314 message->mutable_payload()); | 312 message->mutable_payload()); |
| 315 | 313 |
| 316 {%- set desc = class_name~"::"~method.name %} | 314 {%- set desc = class_name~"::"~method.name %} |
| 317 {{alloc_params(method.param_struct, "params", "message", | 315 {{alloc_params(method.param_struct, "params", "message", "context", desc)| |
| 318 "&serialization_context_", desc)|indent(4)}} | 316 indent(4)}} |
| 319 // A null |sink_| means no implementation was bound. | 317 // A null |impl| means no implementation was bound. |
| 320 assert(sink_); | 318 assert(impl); |
| 321 TRACE_EVENT0("mojom", "{{class_name}}::{{method.name}}"); | 319 TRACE_EVENT0("mojom", "{{class_name}}::{{method.name}}"); |
| 322 mojo::internal::MessageDispatchContext context(message); | 320 mojo::internal::MessageDispatchContext context(message); |
| 323 sink_->{{method.name}}({{pass_params(method.parameters)}}); | 321 impl->{{method.name}}({{pass_params(method.parameters)}}); |
| 324 return true; | 322 return true; |
| 325 {%- else %} | 323 {%- else %} |
| 326 break; | 324 break; |
| 327 {%- endif %} | 325 {%- endif %} |
| 328 } | 326 } |
| 329 {%- endfor %} | 327 {%- endfor %} |
| 330 } | 328 } |
| 331 {%- endif %} | 329 {%- endif %} |
| 332 return false; | 330 return false; |
| 333 } | 331 } |
| 334 | 332 |
| 335 bool {{class_name}}Stub::AcceptWithResponder( | 333 // static |
| 336 mojo::Message* message, mojo::MessageReceiverWithStatus* responder) { | 334 bool {{class_name}}StubDispatch::AcceptWithResponder( |
| 335 {{interface.name}}* impl, |
| 336 mojo::internal::SerializationContext* context, |
| 337 mojo::Message* message, |
| 338 mojo::MessageReceiverWithStatus* responder) { |
| 337 {%- if interface.methods %} | 339 {%- if interface.methods %} |
| 338 switch (message->header()->name) { | 340 switch (message->header()->name) { |
| 339 {%- for method in interface.methods %} | 341 {%- for method in interface.methods %} |
| 340 case internal::k{{class_name}}_{{method.name}}_Name: { | 342 case internal::k{{class_name}}_{{method.name}}_Name: { |
| 341 {%- if method.response_parameters != None %} | 343 {%- if method.response_parameters != None %} |
| 342 internal::{{class_name}}_{{method.name}}_Params_Data* params = | 344 internal::{{class_name}}_{{method.name}}_Params_Data* params = |
| 343 reinterpret_cast<internal::{{class_name}}_{{method.name}}_Params_Data*
>( | 345 reinterpret_cast<internal::{{class_name}}_{{method.name}}_Params_Data*
>( |
| 344 message->mutable_payload()); | 346 message->mutable_payload()); |
| 345 | 347 |
| 346 {%- set desc = class_name~"::"~method.name %} | 348 {%- set desc = class_name~"::"~method.name %} |
| 347 {{alloc_params(method.param_struct, "params", "message", | 349 {{alloc_params(method.param_struct, "params", "message", "context", desc)| |
| 348 "&serialization_context_", desc)| | 350 indent(4)}} |
| 349 indent(4)}} | |
| 350 {{class_name}}::{{method.name}}Callback callback = | 351 {{class_name}}::{{method.name}}Callback callback = |
| 351 {{class_name}}_{{method.name}}_ProxyToResponder::CreateCallback( | 352 {{class_name}}_{{method.name}}_ProxyToResponder::CreateCallback( |
| 352 message->request_id(), | 353 message->request_id(), |
| 353 message->has_flag(mojo::Message::kFlagIsSync), | 354 message->has_flag(mojo::Message::kFlagIsSync), responder, |
| 354 responder, | 355 context->group_controller); |
| 355 serialization_context_.group_controller); | 356 // A null |impl| means no implementation was bound. |
| 356 // A null |sink_| means no implementation was bound. | 357 assert(impl); |
| 357 assert(sink_); | |
| 358 TRACE_EVENT0("mojom", "{{class_name}}::{{method.name}}"); | 358 TRACE_EVENT0("mojom", "{{class_name}}::{{method.name}}"); |
| 359 mojo::internal::MessageDispatchContext context(message); | 359 mojo::internal::MessageDispatchContext context(message); |
| 360 sink_->{{method.name}}( | 360 impl->{{method.name}}( |
| 361 {%- if method.parameters -%}{{pass_params(method.parameters)}}, {% endif -%}call
back); | 361 {%- if method.parameters -%}{{pass_params(method.parameters)}}, {% endif -%}call
back); |
| 362 return true; | 362 return true; |
| 363 {%- else %} | 363 {%- else %} |
| 364 break; | 364 break; |
| 365 {%- endif %} | 365 {%- endif %} |
| 366 } | 366 } |
| 367 {%- endfor %} | 367 {%- endfor %} |
| 368 } | 368 } |
| 369 {%- endif %} | 369 {%- endif %} |
| 370 return false; | 370 return false; |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 440 break; | 440 break; |
| 441 } | 441 } |
| 442 | 442 |
| 443 // Unrecognized message. | 443 // Unrecognized message. |
| 444 ReportValidationError( | 444 ReportValidationError( |
| 445 &validation_context, | 445 &validation_context, |
| 446 mojo::internal::VALIDATION_ERROR_MESSAGE_HEADER_UNKNOWN_METHOD); | 446 mojo::internal::VALIDATION_ERROR_MESSAGE_HEADER_UNKNOWN_METHOD); |
| 447 return false; | 447 return false; |
| 448 } | 448 } |
| 449 {%- endif -%} | 449 {%- endif -%} |
| OLD | NEW |